pax_global_header00006660000000000000000000000064141125015250014506gustar00rootroot0000000000000052 comment=3c1ef83e7bfae781b2836d2af6bc54b851b8c8a7 golang-google-protobuf-1.27.1/000077500000000000000000000000001411250152500161555ustar00rootroot00000000000000golang-google-protobuf-1.27.1/.github/000077500000000000000000000000001411250152500175155ustar00rootroot00000000000000golang-google-protobuf-1.27.1/.github/workflows/000077500000000000000000000000001411250152500215525ustar00rootroot00000000000000golang-google-protobuf-1.27.1/.github/workflows/test.yml000066400000000000000000000014301411250152500232520ustar00rootroot00000000000000on: [push] name: Test jobs: test: strategy: matrix: go-version: [1.16.x] os: [ubuntu-latest] # TODO: Add [macos-latest, windows-latest] runs-on: ${{ matrix.os }} steps: - name: Install Linux dependencies if: runner.os == 'Linux' run: sudo apt-get -y install autoconf automake libtool curl make g++ unzip - name: Install Go uses: actions/setup-go@v2 with: go-version: ${{ matrix.go-version }} - name: Checkout code uses: actions/checkout@v2 - name: Cache dependencies uses: actions/cache@v2 with: path: .cache key: ${{ runner.os }}-${{ hashFiles('integration_test.go') }} - name: Test run: go test -v -mod=vendor -timeout=60m -count=1 integration_test.go -failfast golang-google-protobuf-1.27.1/.gitignore000066400000000000000000000004621411250152500201470ustar00rootroot00000000000000/.cache/ /.gocache/ /bin/ /vendor/ # This file includes artifacts of the system test that should not be checked in. # For files created by specific development environment (e.g. editor), # use alternative ways to exclude files from git. # For example, set up .git/info/exclude or use a global .gitignore. golang-google-protobuf-1.27.1/AUTHORS000066400000000000000000000002561411250152500172300ustar00rootroot00000000000000# This source code refers to The Go Authors for copyright purposes. # The master list of authors is in the main Go distribution, # visible at https://tip.golang.org/AUTHORS. golang-google-protobuf-1.27.1/CONTRIBUTING.md000066400000000000000000000052121411250152500204060ustar00rootroot00000000000000# Contributing to Go Protocol Buffers Go protocol buffers is an open source project and accepts contributions. The source of truth for this repository is at [go.googlesource.com/protobuf](https://go.googlesource.com/protobuf). The code review tool used is [Gerrit Code Review](https://www.gerritcodereview.com/). At this time, we are unfortunately unable to accept GitHub pull requests. ## Becoming a contributor The first step is to configure your environment. Please follow the steps outlined in ["Becoming a contributor" (golang.org)](https://golang.org/doc/contribute.html#contributor) as the setup for contributing to the `protobuf` project is identical to that for contributing to the `go` project. ## Before contributing code The project welcomes submissions, but to make sure things are well coordinated we ask that contributors discuss any significant changes before starting work. Best practice is to connect your work to the [issue tracker](https://github.com/golang/protobuf/issues), either by filing a new issue or by claiming an existing issue. ## Sending a change via Gerrit The `protobuf` project performs development in Gerrit. Below are the steps to send a change using Gerrit. **Step 1:** Clone the Go source code: ``` $ git clone https://go.googlesource.com/protobuf ``` **Step 2:** Setup a Git hook: Setup a hook to run the tests prior to submitting changes to Gerrit: ``` $ (cd protobuf/.git/hooks && echo -e '#!/bin/bash\n./test.bash' > pre-push && chmod a+x pre-push) ``` **Step 3:** Prepare changes in a new branch, created from the `master` branch. To commit the changes, use `git codereview change`; that will create or amend a single commit in the branch. ``` $ git checkout -b mybranch $ [edit files...] $ git add [files...] $ git codereview change # create commit in the branch $ [edit again...] $ git add [files...] $ git codereview change # amend the existing commit with new changes $ [etc.] ``` **Step 4:** Send the changes for review to Gerrit using `git codereview mail`. ``` $ git codereview mail # send changes to Gerrit ``` **Step 5:** After a review, there may be changes that are required. Do so by applying changes to the same commit and mail them to Gerrit again: ``` $ [edit files...] $ git add [files...] $ git codereview change # update same commit $ git codereview mail # send to Gerrit again ``` When calling `git codereview mail`, it will call `git push` under the hood, which will trigger the test hook that was setup in step 2. The [Contribution Guidelines](https://golang.org/doc/contribute.html) for the Go project provides additional details that are also relevant to contributing to the Go `protobuf` project. golang-google-protobuf-1.27.1/CONTRIBUTORS000066400000000000000000000002531411250152500200350ustar00rootroot00000000000000# This source code was written by the Go contributors. # The master list of contributors is in the main Go distribution, # visible at https://tip.golang.org/CONTRIBUTORS. golang-google-protobuf-1.27.1/LICENSE000066400000000000000000000027071411250152500171700ustar00rootroot00000000000000Copyright (c) 2018 The Go Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. golang-google-protobuf-1.27.1/PATENTS000066400000000000000000000024271411250152500172230ustar00rootroot00000000000000Additional IP Rights Grant (Patents) "This implementation" means the copyrightable works distributed by Google as part of the Go project. Google hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, transfer and otherwise run, modify and propagate the contents of this implementation of Go, where such license applies only to those patent claims, both currently owned or controlled by Google and acquired in the future, licensable by Google that are necessarily infringed by this implementation of Go. This grant does not include claims that would be infringed only as a consequence of further modification of this implementation. If you or your agent or exclusive licensee institute or order or agree to the institution of patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that this implementation of Go or any code incorporated within this implementation of Go constitutes direct or contributory patent infringement, or inducement of patent infringement, then any patent rights granted to you under this License for this implementation of Go shall terminate as of the date such litigation is filed. golang-google-protobuf-1.27.1/README.md000066400000000000000000000435751411250152500174520ustar00rootroot00000000000000# Go support for Protocol Buffers [![Go Reference](https://pkg.go.dev/badge/google.golang.org/protobuf.svg)](https://pkg.go.dev/google.golang.org/protobuf) [![Build Status](https://travis-ci.org/protocolbuffers/protobuf-go.svg?branch=master)](https://travis-ci.org/protocolbuffers/protobuf-go) This project hosts the Go implementation for [protocol buffers](https://developers.google.com/protocol-buffers), which is a language-neutral, platform-neutral, extensible mechanism for serializing structured data. The protocol buffer language is a language for specifying the schema for structured data. This schema is compiled into language specific bindings. This project provides both a tool to generate Go code for the protocol buffer language, and also the runtime implementation to handle serialization of messages in Go. See the [protocol buffer developer guide](https://developers.google.com/protocol-buffers/docs/overview) for more information about protocol buffers themselves. This project is comprised of two components: * Code generator: The [`protoc-gen-go`](https://pkg.go.dev/google.golang.org/protobuf/cmd/protoc-gen-go) tool is a compiler plugin to `protoc`, the protocol buffer compiler. It augments the `protoc` compiler so that it knows how to [generate Go specific code for a given `.proto` file](https://developers.google.com/protocol-buffers/docs/reference/go-generated). * Runtime library: The [`protobuf`](https://pkg.go.dev/mod/google.golang.org/protobuf) module contains a set of Go packages that form the runtime implementation of protobufs in Go. This provides the set of interfaces that [define what a message is](https://pkg.go.dev/google.golang.org/protobuf/reflect/protoreflect) and functionality to serialize message in various formats (e.g., [wire](https://pkg.go.dev/google.golang.org/protobuf/proto), [JSON](https://pkg.go.dev/google.golang.org/protobuf/encoding/protojson), and [text](https://pkg.go.dev/google.golang.org/protobuf/encoding/prototext)). See the [developer guide for protocol buffers in Go](https://developers.google.com/protocol-buffers/docs/gotutorial) for a general guide for how to get started using protobufs in Go. This project is the second major revision of the Go protocol buffer API implemented by the [`google.golang.org/protobuf`](https://pkg.go.dev/mod/google.golang.org/protobuf) module. The first major version is implemented by the [`github.com/golang/protobuf`](https://pkg.go.dev/mod/github.com/golang/protobuf) module. ## Package index Summary of the packages provided by this module: * [`proto`](https://pkg.go.dev/google.golang.org/protobuf/proto): Package `proto` provides functions operating on protobuf messages such as cloning, merging, and checking equality, as well as binary serialization. * [`encoding/protojson`](https://pkg.go.dev/google.golang.org/protobuf/encoding/protojson): Package `protojson` serializes protobuf messages as JSON. * [`encoding/prototext`](https://pkg.go.dev/google.golang.org/protobuf/encoding/prototext): Package `prototext` serializes protobuf messages as the text format. * [`encoding/protowire`](https://pkg.go.dev/google.golang.org/protobuf/encoding/protowire): Package `protowire` parses and formats the low-level raw wire encoding. Most users should use package `proto` to serialize messages in the wire format. * [`reflect/protoreflect`](https://pkg.go.dev/google.golang.org/protobuf/reflect/protoreflect): Package `protoreflect` provides interfaces to dynamically manipulate protobuf messages. * [`reflect/protoregistry`](https://pkg.go.dev/google.golang.org/protobuf/reflect/protoregistry): Package `protoregistry` provides data structures to register and lookup protobuf descriptor types. * [`reflect/protodesc`](https://pkg.go.dev/google.golang.org/protobuf/reflect/protodesc): Package `protodesc` provides functionality for converting `descriptorpb.FileDescriptorProto` messages to/from the reflective `protoreflect.FileDescriptor`. * [`reflect/protopath`](https://pkg.go.dev/google.golang.org/protobuf/reflect/protopath): Package `protopath` provides a representation of a sequence of protobuf reflection operations on a message. * [`reflect/protorange`](https://pkg.go.dev/google.golang.org/protobuf/reflect/protorange): Package `protorange` provides functionality to traverse a protobuf message. * [`testing/protocmp`](https://pkg.go.dev/google.golang.org/protobuf/testing/protocmp): Package `protocmp` provides protobuf specific options for the `cmp` package. * [`testing/protopack`](https://pkg.go.dev/google.golang.org/protobuf/testing/protopack): Package `protopack` aids manual encoding and decoding of the wire format. * [`testing/prototest`](https://pkg.go.dev/google.golang.org/protobuf/testing/prototest): Package `prototest` exercises the protobuf reflection implementation for concrete message types. * [`types/dynamicpb`](https://pkg.go.dev/google.golang.org/protobuf/types/dynamicpb): Package `dynamicpb` creates protobuf messages at runtime from protobuf descriptors. * [`types/known/anypb`](https://pkg.go.dev/google.golang.org/protobuf/types/known/anypb): Package `anypb` is the generated package for `google/protobuf/any.proto`. * [`types/known/timestamppb`](https://pkg.go.dev/google.golang.org/protobuf/types/known/timestamppb): Package `timestamppb` is the generated package for `google/protobuf/timestamp.proto`. * [`types/known/durationpb`](https://pkg.go.dev/google.golang.org/protobuf/types/known/durationpb): Package `durationpb` is the generated package for `google/protobuf/duration.proto`. * [`types/known/wrapperspb`](https://pkg.go.dev/google.golang.org/protobuf/types/known/wrapperspb): Package `wrapperspb` is the generated package for `google/protobuf/wrappers.proto`. * [`types/known/structpb`](https://pkg.go.dev/google.golang.org/protobuf/types/known/structpb): Package `structpb` is the generated package for `google/protobuf/struct.proto`. * [`types/known/fieldmaskpb`](https://pkg.go.dev/google.golang.org/protobuf/types/known/fieldmaskpb): Package `fieldmaskpb` is the generated package for `google/protobuf/field_mask.proto`. * [`types/known/apipb`](https://pkg.go.dev/google.golang.org/protobuf/types/known/apipb): Package `apipb` is the generated package for `google/protobuf/api.proto`. * [`types/known/typepb`](https://pkg.go.dev/google.golang.org/protobuf/types/known/typepb): Package `typepb` is the generated package for `google/protobuf/type.proto`. * [`types/known/sourcecontextpb`](https://pkg.go.dev/google.golang.org/protobuf/types/known/sourcecontextpb): Package `sourcecontextpb` is the generated package for `google/protobuf/source_context.proto`. * [`types/known/emptypb`](https://pkg.go.dev/google.golang.org/protobuf/types/known/emptypb): Package `emptypb` is the generated package for `google/protobuf/empty.proto`. * [`types/descriptorpb`](https://pkg.go.dev/google.golang.org/protobuf/types/descriptorpb): Package `descriptorpb` is the generated package for `google/protobuf/descriptor.proto`. * [`types/pluginpb`](https://pkg.go.dev/google.golang.org/protobuf/types/pluginpb): Package `pluginpb` is the generated package for `google/protobuf/compiler/plugin.proto`. * [`compiler/protogen`](https://pkg.go.dev/google.golang.org/protobuf/compiler/protogen): Package `protogen` provides support for writing protoc plugins. * [`cmd/protoc-gen-go`](https://pkg.go.dev/google.golang.org/protobuf/cmd/protoc-gen-go): The `protoc-gen-go` binary is a protoc plugin to generate a Go protocol buffer package. ## Reporting issues The issue tracker for this project is currently located at [golang/protobuf](https://github.com/golang/protobuf/issues). Please report any issues there with a sufficient description of the bug or feature request. Bug reports should ideally be accompanied by a minimal reproduction of the issue. Irreproducible bugs are difficult to diagnose and fix (and likely to be closed after some period of time). Bug reports must specify the version of the [Go protocol buffer module](https://github.com/protocolbuffers/protobuf-go/releases) and also the version of the [protocol buffer toolchain](https://github.com/protocolbuffers/protobuf/releases) being used. ## Contributing This project is open-source and accepts contributions. See the [contribution guide](https://github.com/protocolbuffers/protobuf-go/blob/master/CONTRIBUTING.md) for more information. ## Compatibility This module and the generated code are expected to be stable over time. However, we reserve the right to make breaking changes without notice for the following reasons: * **Security:** A security issue in the specification or implementation may come to light whose resolution requires breaking compatibility. We reserve the right to address such issues. * **Unspecified behavior:** There are some aspects of the protocol buffer specification that are undefined. Programs that depend on unspecified behavior may break in future releases. * **Specification changes:** It may become necessary to address an inconsistency, incompleteness, or change in the protocol buffer specification, which may affect the behavior of existing programs. We reserve the right to address such changes. * **Bugs:** If a package has a bug that violates correctness, a program depending on the buggy behavior may break if the bug is fixed. We reserve the right to fix such bugs. * **Generated additions**: We reserve the right to add new declarations to generated Go packages of `.proto` files. This includes declared constants, variables, functions, types, fields in structs, and methods on types. This may break attempts at injecting additional code on top of what is generated by `protoc-gen-go`. Such practice is not supported by this project. * **Internal changes**: We reserve the right to add, modify, and remove internal code, which includes all unexported declarations, the [`protoc-gen-go/internal_gengo`](https://pkg.go.dev/google.golang.org/protobuf/cmd/protoc-gen-go/internal_gengo) package, the [`runtime/protoimpl`](https://pkg.go.dev/google.golang.org/protobuf/runtime/protoimpl?tab=doc) package, and all packages under [`internal`](https://pkg.go.dev/google.golang.org/protobuf/internal). Any breaking changes outside of these will be announced 6 months in advance to [protobuf@googlegroups.com](https://groups.google.com/forum/#!forum/protobuf). Users should use generated code produced by a version of [`protoc-gen-go`](https://pkg.go.dev/google.golang.org/protobuf/cmd/protoc-gen-go) that is identical to the runtime version provided by the [protobuf module](https://pkg.go.dev/mod/google.golang.org/protobuf). This project promises that the runtime remains compatible with code produced by a version of the generator that is no older than 1 year from the version of the runtime used, according to the release dates of the minor version. Generated code is expected to use a runtime version that is at least as new as the generator used to produce it. Generated code contains references to [`protoimpl.EnforceVersion`](https://pkg.go.dev/google.golang.org/protobuf/runtime/protoimpl?tab=doc#EnforceVersion) to statically ensure that the generated code and runtime do not drift sufficiently far apart. ## Historical legacy This project is the second major revision ([released in 2020](https://blog.golang.org/a-new-go-api-for-protocol-buffers)) of the Go protocol buffer API implemented by the [`google.golang.org/protobuf`](https://pkg.go.dev/mod/google.golang.org/protobuf) module. The first major version ([released publicly in 2010](https://blog.golang.org/third-party-libraries-goprotobuf-and)) is implemented by the [`github.com/golang/protobuf`](https://pkg.go.dev/mod/github.com/golang/protobuf) module. The first version predates the release of Go 1 by several years. It has a long history as one of the first core pieces of infrastructure software ever written in Go. As such, the Go protobuf project was one of many pioneers for determining what the Go language should even look like and what would eventually be considered good design patterns and “idiomatic” Go (by simultaneously being both positive and negative examples of it). Consider the changing signature of the `proto.Unmarshal` function as an example of Go language and library evolution throughout the life of this project: ```go // 2007/09/25 - Conception of Go // 2008/11/12 export func UnMarshal(r io.Read, pb_e reflect.Empty) *os.Error // 2008/11/13 export func UnMarshal(buf *[]byte, pb_e reflect.Empty) *os.Error // 2008/11/24 export func UnMarshal(buf *[]byte, pb_e interface{}) *os.Error // 2008/12/18 export func UnMarshal(buf []byte, pb_e interface{}) *os.Error // 2009/01/20 func UnMarshal(buf []byte, pb_e interface{}) *os.Error // 2009/04/17 func UnMarshal(buf []byte, pb_e interface{}) os.Error // 2009/05/22 func Unmarshal(buf []byte, pb_e interface{}) os.Error // 2011/11/03 func Unmarshal(buf []byte, pb_e interface{}) error // 2012/03/28 - Release of Go 1 // 2012/06/12 func Unmarshal(buf []byte, pb Message) error ``` These changes demonstrate the difficulty of determining what the right API is for any new technology. It takes time multiplied by many users to determine what is best; even then, “best” is often still somewhere over the horizon. The change on June 6th, 2012 added a degree of type-safety to Go protobufs by declaring a new interface that all protobuf messages were required to implement: ```go type Message interface { Reset() String() string ProtoMessage() } ``` This interface reduced the set of types that can be passed to `proto.Unmarshal` from the universal set of all possible Go types to those with a special `ProtoMessage` marker method. The intention of this change is to limit the protobuf API to only operate on protobuf data types (i.e., protobuf messages). For example, there is no sensible operation if a Go channel were passed to the protobuf API as a channel cannot be serialized. The restricted interface would prevent that. This interface does not behaviorally describe what a protobuf message is, but acts as a marker with an undocumented expectation that protobuf messages must be a Go struct with a specific layout of fields with formatted tags. This expectation is not statically enforced by the Go language, for it is an implementation detail checked dynamically at runtime using Go reflection. Back in 2012, the only types with this marker were those generated by `protoc-gen-go`. Since `protoc-gen-go` would always generate messages with the proper layout of fields, this was deemed an acceptable and dramatic improvement over `interface{}`. Over the next 10 years, [use of Go would skyrocket](https://blog.golang.org/10years) and use of protobufs in Go would skyrocket as well. With increased popularity also came more diverse usages and requirements for Go protobufs and an increased number of custom `proto.Message` implementations that were not generated by `protoc-gen-go`. The increasingly diverse ecosystem of Go types implementing the `proto.Message` interface led to incompatibilities, which often occurred when: * **Passing custom `proto.Message` types to the protobuf APIs**: A concrete message implementation might work with some top-level functions (e.g., `proto.Marshal`), but cause others (e.g., `proto.Equal`) to choke and panic. This occurs because the type only had partial support for being an actual message by only implementing the `proto.Marshaler` interface or having malformed struct field tags that happened to work with one function, but not another. * **Using Go reflection on any `proto.Message` types**: A common desire is to write general-purpose code that operates on any protobuf message. For example, a microservice might want to populate a `trace_id` field if it is present in a message. To accomplish this, one would use Go reflection to introspect the message type, and assume it were a pointer to a Go struct with a field named `TraceId` (as would be commonly produced by `protoc-gen-go`). If the concrete message type did not match this expectation, it either failed to work or even resulted in a panic. Such was the case for concrete message types that might be backed by a Go map instead of a Go struct. Both of these issues are solved by following the idiom that _interfaces should describe behavior, not data_. This means that the interface itself should provide sufficient functionality through its methods that users can introspect and interact with all aspects of a protobuf message through a principled API. This feature is called _protobuf reflection_. Just as how Go reflection provides an API for programmatically interacting with any arbitrary Go value, protobuf reflection provides an API for programmatically interacting with any arbitrary protobuf message. Since an interface cannot be extended in a backwards compatible way, this suggested the need for a new major version that defines a new `proto.Message` interface: ```go type Message interface { ProtoReflect() protoreflect.Message } ``` The new [`proto.Message`](https://pkg.go.dev/google.golang.org/protobuf/proto?tab=doc#Message) interface contains a single `ProtoReflect` method that returns a [`protoreflect.Message`](https://pkg.go.dev/google.golang.org/protobuf/reflect/protoreflect?tab=doc#Message), which is a reflective view over a protobuf message. In addition to making a breaking change to the `proto.Message` interface, we took this opportunity to cleanup the supporting functionality that operate on a `proto.Message`, split up complicated functionality apart into manageable packages, and to hide implementation details away from the public API. The goal for this major revision is to improve upon all the benefits of, while addressing all the shortcomings of the old API. We hope that it will serve the Go ecosystem well for the next 10 years and beyond. golang-google-protobuf-1.27.1/cmd/000077500000000000000000000000001411250152500167205ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/000077500000000000000000000000001411250152500214005ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/annotation_test.go000066400000000000000000000047031411250152500251440ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main import ( "bytes" "io/ioutil" "testing" "google.golang.org/protobuf/encoding/prototext" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/types/descriptorpb" ) func TestAnnotations(t *testing.T) { sourceFile, err := ioutil.ReadFile("testdata/annotations/annotations.pb.go") if err != nil { t.Fatal(err) } metaFile, err := ioutil.ReadFile("testdata/annotations/annotations.pb.go.meta") if err != nil { t.Fatal(err) } gotInfo := &descriptorpb.GeneratedCodeInfo{} if err := prototext.Unmarshal(metaFile, gotInfo); err != nil { t.Fatalf("can't parse meta file: %v", err) } wantInfo := &descriptorpb.GeneratedCodeInfo{} for _, want := range []struct { prefix, text, suffix string path []int32 }{{ "type ", "AnnotationsTestEnum", " int32", []int32{int32(genid.FileDescriptorProto_EnumType_field_number), 0}, }, { "\t", "AnnotationsTestEnum_ANNOTATIONS_TEST_ENUM_VALUE", " AnnotationsTestEnum = 0", []int32{int32(genid.FileDescriptorProto_EnumType_field_number), 0, int32(genid.EnumDescriptorProto_Value_field_number), 0}, }, { "type ", "AnnotationsTestMessage", " struct {", []int32{int32(genid.FileDescriptorProto_MessageType_field_number), 0}, }, { "\t", "AnnotationsTestField", " ", []int32{int32(genid.FileDescriptorProto_MessageType_field_number), 0, int32(genid.DescriptorProto_Field_field_number), 0}, }, { "func (x *AnnotationsTestMessage) ", "GetAnnotationsTestField", "() string {", []int32{int32(genid.FileDescriptorProto_MessageType_field_number), 0, int32(genid.DescriptorProto_Field_field_number), 0}, }} { s := want.prefix + want.text + want.suffix pos := bytes.Index(sourceFile, []byte(s)) if pos < 0 { t.Errorf("source file does not contain: %v", s) continue } begin := pos + len(want.prefix) end := begin + len(want.text) wantInfo.Annotation = append(wantInfo.Annotation, &descriptorpb.GeneratedCodeInfo_Annotation{ Path: want.path, Begin: proto.Int32(int32(begin)), End: proto.Int32(int32(end)), SourceFile: proto.String("cmd/protoc-gen-go/testdata/annotations/annotations.proto"), }) } if !proto.Equal(gotInfo, wantInfo) { t.Errorf("unexpected annotations for annotations.proto; got:\n%v\nwant:\n%v", gotInfo, wantInfo) } } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/internal_gengo/000077500000000000000000000000001411250152500243735ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/internal_gengo/init.go000066400000000000000000000106121411250152500256650ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package internal_gengo import ( "unicode" "unicode/utf8" "google.golang.org/protobuf/compiler/protogen" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/types/descriptorpb" ) type fileInfo struct { *protogen.File allEnums []*enumInfo allMessages []*messageInfo allExtensions []*extensionInfo allEnumsByPtr map[*enumInfo]int // value is index into allEnums allMessagesByPtr map[*messageInfo]int // value is index into allMessages allMessageFieldsByPtr map[*messageInfo]*structFields // needRawDesc specifies whether the generator should emit logic to provide // the legacy raw descriptor in GZIP'd form. // This is updated by enum and message generation logic as necessary, // and checked at the end of file generation. needRawDesc bool } type structFields struct { count int unexported map[int]string } func (sf *structFields) append(name string) { if r, _ := utf8.DecodeRuneInString(name); !unicode.IsUpper(r) { if sf.unexported == nil { sf.unexported = make(map[int]string) } sf.unexported[sf.count] = name } sf.count++ } func newFileInfo(file *protogen.File) *fileInfo { f := &fileInfo{File: file} // Collect all enums, messages, and extensions in "flattened ordering". // See filetype.TypeBuilder. var walkMessages func([]*protogen.Message, func(*protogen.Message)) walkMessages = func(messages []*protogen.Message, f func(*protogen.Message)) { for _, m := range messages { f(m) walkMessages(m.Messages, f) } } initEnumInfos := func(enums []*protogen.Enum) { for _, enum := range enums { f.allEnums = append(f.allEnums, newEnumInfo(f, enum)) } } initMessageInfos := func(messages []*protogen.Message) { for _, message := range messages { f.allMessages = append(f.allMessages, newMessageInfo(f, message)) } } initExtensionInfos := func(extensions []*protogen.Extension) { for _, extension := range extensions { f.allExtensions = append(f.allExtensions, newExtensionInfo(f, extension)) } } initEnumInfos(f.Enums) initMessageInfos(f.Messages) initExtensionInfos(f.Extensions) walkMessages(f.Messages, func(m *protogen.Message) { initEnumInfos(m.Enums) initMessageInfos(m.Messages) initExtensionInfos(m.Extensions) }) // Derive a reverse mapping of enum and message pointers to their index // in allEnums and allMessages. if len(f.allEnums) > 0 { f.allEnumsByPtr = make(map[*enumInfo]int) for i, e := range f.allEnums { f.allEnumsByPtr[e] = i } } if len(f.allMessages) > 0 { f.allMessagesByPtr = make(map[*messageInfo]int) f.allMessageFieldsByPtr = make(map[*messageInfo]*structFields) for i, m := range f.allMessages { f.allMessagesByPtr[m] = i f.allMessageFieldsByPtr[m] = new(structFields) } } return f } type enumInfo struct { *protogen.Enum genJSONMethod bool genRawDescMethod bool } func newEnumInfo(f *fileInfo, enum *protogen.Enum) *enumInfo { e := &enumInfo{Enum: enum} e.genJSONMethod = true e.genRawDescMethod = true return e } type messageInfo struct { *protogen.Message genRawDescMethod bool genExtRangeMethod bool isTracked bool hasWeak bool } func newMessageInfo(f *fileInfo, message *protogen.Message) *messageInfo { m := &messageInfo{Message: message} m.genRawDescMethod = true m.genExtRangeMethod = true m.isTracked = isTrackedMessage(m) for _, field := range m.Fields { m.hasWeak = m.hasWeak || field.Desc.IsWeak() } return m } // isTrackedMessage reports whether field tracking is enabled on the message. func isTrackedMessage(m *messageInfo) (tracked bool) { const trackFieldUse_fieldNumber = 37383685 // Decode the option from unknown fields to avoid a dependency on the // annotation proto from protoc-gen-go. b := m.Desc.Options().(*descriptorpb.MessageOptions).ProtoReflect().GetUnknown() for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] if num == trackFieldUse_fieldNumber && typ == protowire.VarintType { v, _ := protowire.ConsumeVarint(b) tracked = protowire.DecodeBool(v) } m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] } return tracked } type extensionInfo struct { *protogen.Extension } func newExtensionInfo(f *fileInfo, extension *protogen.Extension) *extensionInfo { x := &extensionInfo{Extension: extension} return x } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/internal_gengo/main.go000066400000000000000000000702701411250152500256540ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package internal_gengo is internal to the protobuf module. package internal_gengo import ( "fmt" "go/ast" "go/parser" "go/token" "math" "strconv" "strings" "unicode" "unicode/utf8" "google.golang.org/protobuf/compiler/protogen" "google.golang.org/protobuf/internal/encoding/tag" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/internal/version" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/runtime/protoimpl" "google.golang.org/protobuf/types/descriptorpb" "google.golang.org/protobuf/types/pluginpb" ) // SupportedFeatures reports the set of supported protobuf language features. var SupportedFeatures = uint64(pluginpb.CodeGeneratorResponse_FEATURE_PROTO3_OPTIONAL) // GenerateVersionMarkers specifies whether to generate version markers. var GenerateVersionMarkers = true // Standard library dependencies. const ( base64Package = protogen.GoImportPath("encoding/base64") mathPackage = protogen.GoImportPath("math") reflectPackage = protogen.GoImportPath("reflect") sortPackage = protogen.GoImportPath("sort") stringsPackage = protogen.GoImportPath("strings") syncPackage = protogen.GoImportPath("sync") timePackage = protogen.GoImportPath("time") utf8Package = protogen.GoImportPath("unicode/utf8") ) // Protobuf library dependencies. // // These are declared as an interface type so that they can be more easily // patched to support unique build environments that impose restrictions // on the dependencies of generated source code. var ( protoPackage goImportPath = protogen.GoImportPath("google.golang.org/protobuf/proto") protoifacePackage goImportPath = protogen.GoImportPath("google.golang.org/protobuf/runtime/protoiface") protoimplPackage goImportPath = protogen.GoImportPath("google.golang.org/protobuf/runtime/protoimpl") protojsonPackage goImportPath = protogen.GoImportPath("google.golang.org/protobuf/encoding/protojson") protoreflectPackage goImportPath = protogen.GoImportPath("google.golang.org/protobuf/reflect/protoreflect") protoregistryPackage goImportPath = protogen.GoImportPath("google.golang.org/protobuf/reflect/protoregistry") ) type goImportPath interface { String() string Ident(string) protogen.GoIdent } // GenerateFile generates the contents of a .pb.go file. func GenerateFile(gen *protogen.Plugin, file *protogen.File) *protogen.GeneratedFile { filename := file.GeneratedFilenamePrefix + ".pb.go" g := gen.NewGeneratedFile(filename, file.GoImportPath) f := newFileInfo(file) genStandaloneComments(g, f, int32(genid.FileDescriptorProto_Syntax_field_number)) genGeneratedHeader(gen, g, f) genStandaloneComments(g, f, int32(genid.FileDescriptorProto_Package_field_number)) packageDoc := genPackageKnownComment(f) g.P(packageDoc, "package ", f.GoPackageName) g.P() // Emit a static check that enforces a minimum version of the proto package. if GenerateVersionMarkers { g.P("const (") g.P("// Verify that this generated code is sufficiently up-to-date.") g.P("_ = ", protoimplPackage.Ident("EnforceVersion"), "(", protoimpl.GenVersion, " - ", protoimplPackage.Ident("MinVersion"), ")") g.P("// Verify that runtime/protoimpl is sufficiently up-to-date.") g.P("_ = ", protoimplPackage.Ident("EnforceVersion"), "(", protoimplPackage.Ident("MaxVersion"), " - ", protoimpl.GenVersion, ")") g.P(")") g.P() } for i, imps := 0, f.Desc.Imports(); i < imps.Len(); i++ { genImport(gen, g, f, imps.Get(i)) } for _, enum := range f.allEnums { genEnum(g, f, enum) } for _, message := range f.allMessages { genMessage(g, f, message) } genExtensions(g, f) genReflectFileDescriptor(gen, g, f) return g } // genStandaloneComments prints all leading comments for a FileDescriptorProto // location identified by the field number n. func genStandaloneComments(g *protogen.GeneratedFile, f *fileInfo, n int32) { loc := f.Desc.SourceLocations().ByPath(protoreflect.SourcePath{n}) for _, s := range loc.LeadingDetachedComments { g.P(protogen.Comments(s)) g.P() } if s := loc.LeadingComments; s != "" { g.P(protogen.Comments(s)) g.P() } } func genGeneratedHeader(gen *protogen.Plugin, g *protogen.GeneratedFile, f *fileInfo) { g.P("// Code generated by protoc-gen-go. DO NOT EDIT.") if GenerateVersionMarkers { g.P("// versions:") protocGenGoVersion := version.String() protocVersion := "(unknown)" if v := gen.Request.GetCompilerVersion(); v != nil { protocVersion = fmt.Sprintf("v%v.%v.%v", v.GetMajor(), v.GetMinor(), v.GetPatch()) if s := v.GetSuffix(); s != "" { protocVersion += "-" + s } } g.P("// \tprotoc-gen-go ", protocGenGoVersion) g.P("// \tprotoc ", protocVersion) } if f.Proto.GetOptions().GetDeprecated() { g.P("// ", f.Desc.Path(), " is a deprecated file.") } else { g.P("// source: ", f.Desc.Path()) } g.P() } func genImport(gen *protogen.Plugin, g *protogen.GeneratedFile, f *fileInfo, imp protoreflect.FileImport) { impFile, ok := gen.FilesByPath[imp.Path()] if !ok { return } if impFile.GoImportPath == f.GoImportPath { // Don't generate imports or aliases for types in the same Go package. return } // Generate imports for all non-weak dependencies, even if they are not // referenced, because other code and tools depend on having the // full transitive closure of protocol buffer types in the binary. if !imp.IsWeak { g.Import(impFile.GoImportPath) } if !imp.IsPublic { return } // Generate public imports by generating the imported file, parsing it, // and extracting every symbol that should receive a forwarding declaration. impGen := GenerateFile(gen, impFile) impGen.Skip() b, err := impGen.Content() if err != nil { gen.Error(err) return } fset := token.NewFileSet() astFile, err := parser.ParseFile(fset, "", b, parser.ParseComments) if err != nil { gen.Error(err) return } genForward := func(tok token.Token, name string, expr ast.Expr) { // Don't import unexported symbols. r, _ := utf8.DecodeRuneInString(name) if !unicode.IsUpper(r) { return } // Don't import the FileDescriptor. if name == impFile.GoDescriptorIdent.GoName { return } // Don't import decls referencing a symbol defined in another package. // i.e., don't import decls which are themselves public imports: // // type T = somepackage.T if _, ok := expr.(*ast.SelectorExpr); ok { return } g.P(tok, " ", name, " = ", impFile.GoImportPath.Ident(name)) } g.P("// Symbols defined in public import of ", imp.Path(), ".") g.P() for _, decl := range astFile.Decls { switch decl := decl.(type) { case *ast.GenDecl: for _, spec := range decl.Specs { switch spec := spec.(type) { case *ast.TypeSpec: genForward(decl.Tok, spec.Name.Name, spec.Type) case *ast.ValueSpec: for i, name := range spec.Names { var expr ast.Expr if i < len(spec.Values) { expr = spec.Values[i] } genForward(decl.Tok, name.Name, expr) } case *ast.ImportSpec: default: panic(fmt.Sprintf("can't generate forward for spec type %T", spec)) } } } } g.P() } func genEnum(g *protogen.GeneratedFile, f *fileInfo, e *enumInfo) { // Enum type declaration. g.Annotate(e.GoIdent.GoName, e.Location) leadingComments := appendDeprecationSuffix(e.Comments.Leading, e.Desc.Options().(*descriptorpb.EnumOptions).GetDeprecated()) g.P(leadingComments, "type ", e.GoIdent, " int32") // Enum value constants. g.P("const (") for _, value := range e.Values { g.Annotate(value.GoIdent.GoName, value.Location) leadingComments := appendDeprecationSuffix(value.Comments.Leading, value.Desc.Options().(*descriptorpb.EnumValueOptions).GetDeprecated()) g.P(leadingComments, value.GoIdent, " ", e.GoIdent, " = ", value.Desc.Number(), trailingComment(value.Comments.Trailing)) } g.P(")") g.P() // Enum value maps. g.P("// Enum value maps for ", e.GoIdent, ".") g.P("var (") g.P(e.GoIdent.GoName+"_name", " = map[int32]string{") for _, value := range e.Values { duplicate := "" if value.Desc != e.Desc.Values().ByNumber(value.Desc.Number()) { duplicate = "// Duplicate value: " } g.P(duplicate, value.Desc.Number(), ": ", strconv.Quote(string(value.Desc.Name())), ",") } g.P("}") g.P(e.GoIdent.GoName+"_value", " = map[string]int32{") for _, value := range e.Values { g.P(strconv.Quote(string(value.Desc.Name())), ": ", value.Desc.Number(), ",") } g.P("}") g.P(")") g.P() // Enum method. // // NOTE: A pointer value is needed to represent presence in proto2. // Since a proto2 message can reference a proto3 enum, it is useful to // always generate this method (even on proto3 enums) to support that case. g.P("func (x ", e.GoIdent, ") Enum() *", e.GoIdent, " {") g.P("p := new(", e.GoIdent, ")") g.P("*p = x") g.P("return p") g.P("}") g.P() // String method. g.P("func (x ", e.GoIdent, ") String() string {") g.P("return ", protoimplPackage.Ident("X"), ".EnumStringOf(x.Descriptor(), ", protoreflectPackage.Ident("EnumNumber"), "(x))") g.P("}") g.P() genEnumReflectMethods(g, f, e) // UnmarshalJSON method. if e.genJSONMethod && e.Desc.Syntax() == protoreflect.Proto2 { g.P("// Deprecated: Do not use.") g.P("func (x *", e.GoIdent, ") UnmarshalJSON(b []byte) error {") g.P("num, err := ", protoimplPackage.Ident("X"), ".UnmarshalJSONEnum(x.Descriptor(), b)") g.P("if err != nil {") g.P("return err") g.P("}") g.P("*x = ", e.GoIdent, "(num)") g.P("return nil") g.P("}") g.P() } // EnumDescriptor method. if e.genRawDescMethod { var indexes []string for i := 1; i < len(e.Location.Path); i += 2 { indexes = append(indexes, strconv.Itoa(int(e.Location.Path[i]))) } g.P("// Deprecated: Use ", e.GoIdent, ".Descriptor instead.") g.P("func (", e.GoIdent, ") EnumDescriptor() ([]byte, []int) {") g.P("return ", rawDescVarName(f), "GZIP(), []int{", strings.Join(indexes, ","), "}") g.P("}") g.P() f.needRawDesc = true } } func genMessage(g *protogen.GeneratedFile, f *fileInfo, m *messageInfo) { if m.Desc.IsMapEntry() { return } // Message type declaration. g.Annotate(m.GoIdent.GoName, m.Location) leadingComments := appendDeprecationSuffix(m.Comments.Leading, m.Desc.Options().(*descriptorpb.MessageOptions).GetDeprecated()) g.P(leadingComments, "type ", m.GoIdent, " struct {") genMessageFields(g, f, m) g.P("}") g.P() genMessageKnownFunctions(g, f, m) genMessageDefaultDecls(g, f, m) genMessageMethods(g, f, m) genMessageOneofWrapperTypes(g, f, m) } func genMessageFields(g *protogen.GeneratedFile, f *fileInfo, m *messageInfo) { sf := f.allMessageFieldsByPtr[m] genMessageInternalFields(g, f, m, sf) for _, field := range m.Fields { genMessageField(g, f, m, field, sf) } } func genMessageInternalFields(g *protogen.GeneratedFile, f *fileInfo, m *messageInfo, sf *structFields) { g.P(genid.State_goname, " ", protoimplPackage.Ident("MessageState")) sf.append(genid.State_goname) g.P(genid.SizeCache_goname, " ", protoimplPackage.Ident("SizeCache")) sf.append(genid.SizeCache_goname) if m.hasWeak { g.P(genid.WeakFields_goname, " ", protoimplPackage.Ident("WeakFields")) sf.append(genid.WeakFields_goname) } g.P(genid.UnknownFields_goname, " ", protoimplPackage.Ident("UnknownFields")) sf.append(genid.UnknownFields_goname) if m.Desc.ExtensionRanges().Len() > 0 { g.P(genid.ExtensionFields_goname, " ", protoimplPackage.Ident("ExtensionFields")) sf.append(genid.ExtensionFields_goname) } if sf.count > 0 { g.P() } } func genMessageField(g *protogen.GeneratedFile, f *fileInfo, m *messageInfo, field *protogen.Field, sf *structFields) { if oneof := field.Oneof; oneof != nil && !oneof.Desc.IsSynthetic() { // It would be a bit simpler to iterate over the oneofs below, // but generating the field here keeps the contents of the Go // struct in the same order as the contents of the source // .proto file. if oneof.Fields[0] != field { return // only generate for first appearance } tags := structTags{ {"protobuf_oneof", string(oneof.Desc.Name())}, } if m.isTracked { tags = append(tags, gotrackTags...) } g.Annotate(m.GoIdent.GoName+"."+oneof.GoName, oneof.Location) leadingComments := oneof.Comments.Leading if leadingComments != "" { leadingComments += "\n" } ss := []string{fmt.Sprintf(" Types that are assignable to %s:\n", oneof.GoName)} for _, field := range oneof.Fields { ss = append(ss, "\t*"+field.GoIdent.GoName+"\n") } leadingComments += protogen.Comments(strings.Join(ss, "")) g.P(leadingComments, oneof.GoName, " ", oneofInterfaceName(oneof), tags) sf.append(oneof.GoName) return } goType, pointer := fieldGoType(g, f, field) if pointer { goType = "*" + goType } tags := structTags{ {"protobuf", fieldProtobufTagValue(field)}, {"json", fieldJSONTagValue(field)}, } if field.Desc.IsMap() { key := field.Message.Fields[0] val := field.Message.Fields[1] tags = append(tags, structTags{ {"protobuf_key", fieldProtobufTagValue(key)}, {"protobuf_val", fieldProtobufTagValue(val)}, }...) } if m.isTracked { tags = append(tags, gotrackTags...) } name := field.GoName if field.Desc.IsWeak() { name = genid.WeakFieldPrefix_goname + name } g.Annotate(m.GoIdent.GoName+"."+name, field.Location) leadingComments := appendDeprecationSuffix(field.Comments.Leading, field.Desc.Options().(*descriptorpb.FieldOptions).GetDeprecated()) g.P(leadingComments, name, " ", goType, tags, trailingComment(field.Comments.Trailing)) sf.append(field.GoName) } // genMessageDefaultDecls generates consts and vars holding the default // values of fields. func genMessageDefaultDecls(g *protogen.GeneratedFile, f *fileInfo, m *messageInfo) { var consts, vars []string for _, field := range m.Fields { if !field.Desc.HasDefault() { continue } name := "Default_" + m.GoIdent.GoName + "_" + field.GoName goType, _ := fieldGoType(g, f, field) defVal := field.Desc.Default() switch field.Desc.Kind() { case protoreflect.StringKind: consts = append(consts, fmt.Sprintf("%s = %s(%q)", name, goType, defVal.String())) case protoreflect.BytesKind: vars = append(vars, fmt.Sprintf("%s = %s(%q)", name, goType, defVal.Bytes())) case protoreflect.EnumKind: idx := field.Desc.DefaultEnumValue().Index() val := field.Enum.Values[idx] if val.GoIdent.GoImportPath == f.GoImportPath { consts = append(consts, fmt.Sprintf("%s = %s", name, g.QualifiedGoIdent(val.GoIdent))) } else { // If the enum value is declared in a different Go package, // reference it by number since the name may not be correct. // See https://github.com/golang/protobuf/issues/513. consts = append(consts, fmt.Sprintf("%s = %s(%d) // %s", name, g.QualifiedGoIdent(field.Enum.GoIdent), val.Desc.Number(), g.QualifiedGoIdent(val.GoIdent))) } case protoreflect.FloatKind, protoreflect.DoubleKind: if f := defVal.Float(); math.IsNaN(f) || math.IsInf(f, 0) { var fn, arg string switch f := defVal.Float(); { case math.IsInf(f, -1): fn, arg = g.QualifiedGoIdent(mathPackage.Ident("Inf")), "-1" case math.IsInf(f, +1): fn, arg = g.QualifiedGoIdent(mathPackage.Ident("Inf")), "+1" case math.IsNaN(f): fn, arg = g.QualifiedGoIdent(mathPackage.Ident("NaN")), "" } vars = append(vars, fmt.Sprintf("%s = %s(%s(%s))", name, goType, fn, arg)) } else { consts = append(consts, fmt.Sprintf("%s = %s(%v)", name, goType, f)) } default: consts = append(consts, fmt.Sprintf("%s = %s(%v)", name, goType, defVal.Interface())) } } if len(consts) > 0 { g.P("// Default values for ", m.GoIdent, " fields.") g.P("const (") for _, s := range consts { g.P(s) } g.P(")") } if len(vars) > 0 { g.P("// Default values for ", m.GoIdent, " fields.") g.P("var (") for _, s := range vars { g.P(s) } g.P(")") } g.P() } func genMessageMethods(g *protogen.GeneratedFile, f *fileInfo, m *messageInfo) { genMessageBaseMethods(g, f, m) genMessageGetterMethods(g, f, m) genMessageSetterMethods(g, f, m) } func genMessageBaseMethods(g *protogen.GeneratedFile, f *fileInfo, m *messageInfo) { // Reset method. g.P("func (x *", m.GoIdent, ") Reset() {") g.P("*x = ", m.GoIdent, "{}") g.P("if ", protoimplPackage.Ident("UnsafeEnabled"), " {") g.P("mi := &", messageTypesVarName(f), "[", f.allMessagesByPtr[m], "]") g.P("ms := ", protoimplPackage.Ident("X"), ".MessageStateOf(", protoimplPackage.Ident("Pointer"), "(x))") g.P("ms.StoreMessageInfo(mi)") g.P("}") g.P("}") g.P() // String method. g.P("func (x *", m.GoIdent, ") String() string {") g.P("return ", protoimplPackage.Ident("X"), ".MessageStringOf(x)") g.P("}") g.P() // ProtoMessage method. g.P("func (*", m.GoIdent, ") ProtoMessage() {}") g.P() // ProtoReflect method. genMessageReflectMethods(g, f, m) // Descriptor method. if m.genRawDescMethod { var indexes []string for i := 1; i < len(m.Location.Path); i += 2 { indexes = append(indexes, strconv.Itoa(int(m.Location.Path[i]))) } g.P("// Deprecated: Use ", m.GoIdent, ".ProtoReflect.Descriptor instead.") g.P("func (*", m.GoIdent, ") Descriptor() ([]byte, []int) {") g.P("return ", rawDescVarName(f), "GZIP(), []int{", strings.Join(indexes, ","), "}") g.P("}") g.P() f.needRawDesc = true } } func genMessageGetterMethods(g *protogen.GeneratedFile, f *fileInfo, m *messageInfo) { for _, field := range m.Fields { genNoInterfacePragma(g, m.isTracked) // Getter for parent oneof. if oneof := field.Oneof; oneof != nil && oneof.Fields[0] == field && !oneof.Desc.IsSynthetic() { g.Annotate(m.GoIdent.GoName+".Get"+oneof.GoName, oneof.Location) g.P("func (m *", m.GoIdent.GoName, ") Get", oneof.GoName, "() ", oneofInterfaceName(oneof), " {") g.P("if m != nil {") g.P("return m.", oneof.GoName) g.P("}") g.P("return nil") g.P("}") g.P() } // Getter for message field. goType, pointer := fieldGoType(g, f, field) defaultValue := fieldDefaultValue(g, f, m, field) g.Annotate(m.GoIdent.GoName+".Get"+field.GoName, field.Location) leadingComments := appendDeprecationSuffix("", field.Desc.Options().(*descriptorpb.FieldOptions).GetDeprecated()) switch { case field.Desc.IsWeak(): g.P(leadingComments, "func (x *", m.GoIdent, ") Get", field.GoName, "() ", protoPackage.Ident("Message"), "{") g.P("var w ", protoimplPackage.Ident("WeakFields")) g.P("if x != nil {") g.P("w = x.", genid.WeakFields_goname) if m.isTracked { g.P("_ = x.", genid.WeakFieldPrefix_goname+field.GoName) } g.P("}") g.P("return ", protoimplPackage.Ident("X"), ".GetWeak(w, ", field.Desc.Number(), ", ", strconv.Quote(string(field.Message.Desc.FullName())), ")") g.P("}") case field.Oneof != nil && !field.Oneof.Desc.IsSynthetic(): g.P(leadingComments, "func (x *", m.GoIdent, ") Get", field.GoName, "() ", goType, " {") g.P("if x, ok := x.Get", field.Oneof.GoName, "().(*", field.GoIdent, "); ok {") g.P("return x.", field.GoName) g.P("}") g.P("return ", defaultValue) g.P("}") default: g.P(leadingComments, "func (x *", m.GoIdent, ") Get", field.GoName, "() ", goType, " {") if !field.Desc.HasPresence() || defaultValue == "nil" { g.P("if x != nil {") } else { g.P("if x != nil && x.", field.GoName, " != nil {") } star := "" if pointer { star = "*" } g.P("return ", star, " x.", field.GoName) g.P("}") g.P("return ", defaultValue) g.P("}") } g.P() } } func genMessageSetterMethods(g *protogen.GeneratedFile, f *fileInfo, m *messageInfo) { for _, field := range m.Fields { if !field.Desc.IsWeak() { continue } genNoInterfacePragma(g, m.isTracked) g.Annotate(m.GoIdent.GoName+".Set"+field.GoName, field.Location) leadingComments := appendDeprecationSuffix("", field.Desc.Options().(*descriptorpb.FieldOptions).GetDeprecated()) g.P(leadingComments, "func (x *", m.GoIdent, ") Set", field.GoName, "(v ", protoPackage.Ident("Message"), ") {") g.P("var w *", protoimplPackage.Ident("WeakFields")) g.P("if x != nil {") g.P("w = &x.", genid.WeakFields_goname) if m.isTracked { g.P("_ = x.", genid.WeakFieldPrefix_goname+field.GoName) } g.P("}") g.P(protoimplPackage.Ident("X"), ".SetWeak(w, ", field.Desc.Number(), ", ", strconv.Quote(string(field.Message.Desc.FullName())), ", v)") g.P("}") g.P() } } // fieldGoType returns the Go type used for a field. // // If it returns pointer=true, the struct field is a pointer to the type. func fieldGoType(g *protogen.GeneratedFile, f *fileInfo, field *protogen.Field) (goType string, pointer bool) { if field.Desc.IsWeak() { return "struct{}", false } pointer = field.Desc.HasPresence() switch field.Desc.Kind() { case protoreflect.BoolKind: goType = "bool" case protoreflect.EnumKind: goType = g.QualifiedGoIdent(field.Enum.GoIdent) case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: goType = "int32" case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: goType = "uint32" case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: goType = "int64" case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: goType = "uint64" case protoreflect.FloatKind: goType = "float32" case protoreflect.DoubleKind: goType = "float64" case protoreflect.StringKind: goType = "string" case protoreflect.BytesKind: goType = "[]byte" pointer = false // rely on nullability of slices for presence case protoreflect.MessageKind, protoreflect.GroupKind: goType = "*" + g.QualifiedGoIdent(field.Message.GoIdent) pointer = false // pointer captured as part of the type } switch { case field.Desc.IsList(): return "[]" + goType, false case field.Desc.IsMap(): keyType, _ := fieldGoType(g, f, field.Message.Fields[0]) valType, _ := fieldGoType(g, f, field.Message.Fields[1]) return fmt.Sprintf("map[%v]%v", keyType, valType), false } return goType, pointer } func fieldProtobufTagValue(field *protogen.Field) string { var enumName string if field.Desc.Kind() == protoreflect.EnumKind { enumName = protoimpl.X.LegacyEnumName(field.Enum.Desc) } return tag.Marshal(field.Desc, enumName) } func fieldDefaultValue(g *protogen.GeneratedFile, f *fileInfo, m *messageInfo, field *protogen.Field) string { if field.Desc.IsList() { return "nil" } if field.Desc.HasDefault() { defVarName := "Default_" + m.GoIdent.GoName + "_" + field.GoName if field.Desc.Kind() == protoreflect.BytesKind { return "append([]byte(nil), " + defVarName + "...)" } return defVarName } switch field.Desc.Kind() { case protoreflect.BoolKind: return "false" case protoreflect.StringKind: return `""` case protoreflect.MessageKind, protoreflect.GroupKind, protoreflect.BytesKind: return "nil" case protoreflect.EnumKind: val := field.Enum.Values[0] if val.GoIdent.GoImportPath == f.GoImportPath { return g.QualifiedGoIdent(val.GoIdent) } else { // If the enum value is declared in a different Go package, // reference it by number since the name may not be correct. // See https://github.com/golang/protobuf/issues/513. return g.QualifiedGoIdent(field.Enum.GoIdent) + "(" + strconv.FormatInt(int64(val.Desc.Number()), 10) + ")" } default: return "0" } } func fieldJSONTagValue(field *protogen.Field) string { return string(field.Desc.Name()) + ",omitempty" } func genExtensions(g *protogen.GeneratedFile, f *fileInfo) { if len(f.allExtensions) == 0 { return } g.P("var ", extensionTypesVarName(f), " = []", protoimplPackage.Ident("ExtensionInfo"), "{") for _, x := range f.allExtensions { g.P("{") g.P("ExtendedType: (*", x.Extendee.GoIdent, ")(nil),") goType, pointer := fieldGoType(g, f, x.Extension) if pointer { goType = "*" + goType } g.P("ExtensionType: (", goType, ")(nil),") g.P("Field: ", x.Desc.Number(), ",") g.P("Name: ", strconv.Quote(string(x.Desc.FullName())), ",") g.P("Tag: ", strconv.Quote(fieldProtobufTagValue(x.Extension)), ",") g.P("Filename: ", strconv.Quote(f.Desc.Path()), ",") g.P("},") } g.P("}") g.P() // Group extensions by the target message. var orderedTargets []protogen.GoIdent allExtensionsByTarget := make(map[protogen.GoIdent][]*extensionInfo) allExtensionsByPtr := make(map[*extensionInfo]int) for i, x := range f.allExtensions { target := x.Extendee.GoIdent if len(allExtensionsByTarget[target]) == 0 { orderedTargets = append(orderedTargets, target) } allExtensionsByTarget[target] = append(allExtensionsByTarget[target], x) allExtensionsByPtr[x] = i } for _, target := range orderedTargets { g.P("// Extension fields to ", target, ".") g.P("var (") for _, x := range allExtensionsByTarget[target] { xd := x.Desc typeName := xd.Kind().String() switch xd.Kind() { case protoreflect.EnumKind: typeName = string(xd.Enum().FullName()) case protoreflect.MessageKind, protoreflect.GroupKind: typeName = string(xd.Message().FullName()) } fieldName := string(xd.Name()) leadingComments := x.Comments.Leading if leadingComments != "" { leadingComments += "\n" } leadingComments += protogen.Comments(fmt.Sprintf(" %v %v %v = %v;\n", xd.Cardinality(), typeName, fieldName, xd.Number())) leadingComments = appendDeprecationSuffix(leadingComments, x.Desc.Options().(*descriptorpb.FieldOptions).GetDeprecated()) g.P(leadingComments, "E_", x.GoIdent, " = &", extensionTypesVarName(f), "[", allExtensionsByPtr[x], "]", trailingComment(x.Comments.Trailing)) } g.P(")") g.P() } } // genMessageOneofWrapperTypes generates the oneof wrapper types and // associates the types with the parent message type. func genMessageOneofWrapperTypes(g *protogen.GeneratedFile, f *fileInfo, m *messageInfo) { for _, oneof := range m.Oneofs { if oneof.Desc.IsSynthetic() { continue } ifName := oneofInterfaceName(oneof) g.P("type ", ifName, " interface {") g.P(ifName, "()") g.P("}") g.P() for _, field := range oneof.Fields { g.Annotate(field.GoIdent.GoName, field.Location) g.Annotate(field.GoIdent.GoName+"."+field.GoName, field.Location) g.P("type ", field.GoIdent, " struct {") goType, _ := fieldGoType(g, f, field) tags := structTags{ {"protobuf", fieldProtobufTagValue(field)}, } if m.isTracked { tags = append(tags, gotrackTags...) } leadingComments := appendDeprecationSuffix(field.Comments.Leading, field.Desc.Options().(*descriptorpb.FieldOptions).GetDeprecated()) g.P(leadingComments, field.GoName, " ", goType, tags, trailingComment(field.Comments.Trailing)) g.P("}") g.P() } for _, field := range oneof.Fields { g.P("func (*", field.GoIdent, ") ", ifName, "() {}") g.P() } } } // oneofInterfaceName returns the name of the interface type implemented by // the oneof field value types. func oneofInterfaceName(oneof *protogen.Oneof) string { return "is" + oneof.GoIdent.GoName } // genNoInterfacePragma generates a standalone "nointerface" pragma to // decorate methods with field-tracking support. func genNoInterfacePragma(g *protogen.GeneratedFile, tracked bool) { if tracked { g.P("//go:nointerface") g.P() } } var gotrackTags = structTags{{"go", "track"}} // structTags is a data structure for build idiomatic Go struct tags. // Each [2]string is a key-value pair, where value is the unescaped string. // // Example: structTags{{"key", "value"}}.String() -> `key:"value"` type structTags [][2]string func (tags structTags) String() string { if len(tags) == 0 { return "" } var ss []string for _, tag := range tags { // NOTE: When quoting the value, we need to make sure the backtick // character does not appear. Convert all cases to the escaped hex form. key := tag[0] val := strings.Replace(strconv.Quote(tag[1]), "`", `\x60`, -1) ss = append(ss, fmt.Sprintf("%s:%s", key, val)) } return "`" + strings.Join(ss, " ") + "`" } // appendDeprecationSuffix optionally appends a deprecation notice as a suffix. func appendDeprecationSuffix(prefix protogen.Comments, deprecated bool) protogen.Comments { if !deprecated { return prefix } if prefix != "" { prefix += "\n" } return prefix + " Deprecated: Do not use.\n" } // trailingComment is like protogen.Comments, but lacks a trailing newline. type trailingComment protogen.Comments func (c trailingComment) String() string { s := strings.TrimSuffix(protogen.Comments(c).String(), "\n") if strings.Contains(s, "\n") { // We don't support multi-lined trailing comments as it is unclear // how to best render them in the generated code. return "" } return s } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/internal_gengo/reflect.go000066400000000000000000000245641411250152500263610ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package internal_gengo import ( "fmt" "math" "strings" "unicode/utf8" "google.golang.org/protobuf/compiler/protogen" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/types/descriptorpb" ) func genReflectFileDescriptor(gen *protogen.Plugin, g *protogen.GeneratedFile, f *fileInfo) { g.P("var ", f.GoDescriptorIdent, " ", protoreflectPackage.Ident("FileDescriptor")) g.P() genFileDescriptor(gen, g, f) if len(f.allEnums) > 0 { g.P("var ", enumTypesVarName(f), " = make([]", protoimplPackage.Ident("EnumInfo"), ",", len(f.allEnums), ")") } if len(f.allMessages) > 0 { g.P("var ", messageTypesVarName(f), " = make([]", protoimplPackage.Ident("MessageInfo"), ",", len(f.allMessages), ")") } // Generate a unique list of Go types for all declarations and dependencies, // and the associated index into the type list for all dependencies. var goTypes []string var depIdxs []string seen := map[protoreflect.FullName]int{} genDep := func(name protoreflect.FullName, depSource string) { if depSource != "" { line := fmt.Sprintf("%d, // %d: %s -> %s", seen[name], len(depIdxs), depSource, name) depIdxs = append(depIdxs, line) } } genEnum := func(e *protogen.Enum, depSource string) { if e != nil { name := e.Desc.FullName() if _, ok := seen[name]; !ok { line := fmt.Sprintf("(%s)(0), // %d: %s", g.QualifiedGoIdent(e.GoIdent), len(goTypes), name) goTypes = append(goTypes, line) seen[name] = len(seen) } if depSource != "" { genDep(name, depSource) } } } genMessage := func(m *protogen.Message, depSource string) { if m != nil { name := m.Desc.FullName() if _, ok := seen[name]; !ok { line := fmt.Sprintf("(*%s)(nil), // %d: %s", g.QualifiedGoIdent(m.GoIdent), len(goTypes), name) if m.Desc.IsMapEntry() { // Map entry messages have no associated Go type. line = fmt.Sprintf("nil, // %d: %s", len(goTypes), name) } goTypes = append(goTypes, line) seen[name] = len(seen) } if depSource != "" { genDep(name, depSource) } } } // This ordering is significant. // See filetype.TypeBuilder.DependencyIndexes. type offsetEntry struct { start int name string } var depOffsets []offsetEntry for _, enum := range f.allEnums { genEnum(enum.Enum, "") } for _, message := range f.allMessages { genMessage(message.Message, "") } depOffsets = append(depOffsets, offsetEntry{len(depIdxs), "field type_name"}) for _, message := range f.allMessages { for _, field := range message.Fields { if field.Desc.IsWeak() { continue } source := string(field.Desc.FullName()) genEnum(field.Enum, source+":type_name") genMessage(field.Message, source+":type_name") } } depOffsets = append(depOffsets, offsetEntry{len(depIdxs), "extension extendee"}) for _, extension := range f.allExtensions { source := string(extension.Desc.FullName()) genMessage(extension.Extendee, source+":extendee") } depOffsets = append(depOffsets, offsetEntry{len(depIdxs), "extension type_name"}) for _, extension := range f.allExtensions { source := string(extension.Desc.FullName()) genEnum(extension.Enum, source+":type_name") genMessage(extension.Message, source+":type_name") } depOffsets = append(depOffsets, offsetEntry{len(depIdxs), "method input_type"}) for _, service := range f.Services { for _, method := range service.Methods { source := string(method.Desc.FullName()) genMessage(method.Input, source+":input_type") } } depOffsets = append(depOffsets, offsetEntry{len(depIdxs), "method output_type"}) for _, service := range f.Services { for _, method := range service.Methods { source := string(method.Desc.FullName()) genMessage(method.Output, source+":output_type") } } depOffsets = append(depOffsets, offsetEntry{len(depIdxs), ""}) for i := len(depOffsets) - 2; i >= 0; i-- { curr, next := depOffsets[i], depOffsets[i+1] depIdxs = append(depIdxs, fmt.Sprintf("%d, // [%d:%d] is the sub-list for %s", curr.start, curr.start, next.start, curr.name)) } if len(depIdxs) > math.MaxInt32 { panic("too many dependencies") // sanity check } g.P("var ", goTypesVarName(f), " = []interface{}{") for _, s := range goTypes { g.P(s) } g.P("}") g.P("var ", depIdxsVarName(f), " = []int32{") for _, s := range depIdxs { g.P(s) } g.P("}") g.P("func init() { ", initFuncName(f.File), "() }") g.P("func ", initFuncName(f.File), "() {") g.P("if ", f.GoDescriptorIdent, " != nil {") g.P("return") g.P("}") // Ensure that initialization functions for different files in the same Go // package run in the correct order: Call the init funcs for every .proto file // imported by this one that is in the same Go package. for i, imps := 0, f.Desc.Imports(); i < imps.Len(); i++ { impFile := gen.FilesByPath[imps.Get(i).Path()] if impFile.GoImportPath != f.GoImportPath { continue } g.P(initFuncName(impFile), "()") } if len(f.allMessages) > 0 { // Populate MessageInfo.Exporters. g.P("if !", protoimplPackage.Ident("UnsafeEnabled"), " {") for _, message := range f.allMessages { if sf := f.allMessageFieldsByPtr[message]; len(sf.unexported) > 0 { idx := f.allMessagesByPtr[message] typesVar := messageTypesVarName(f) g.P(typesVar, "[", idx, "].Exporter = func(v interface{}, i int) interface{} {") g.P("switch v := v.(*", message.GoIdent, "); i {") for i := 0; i < sf.count; i++ { if name := sf.unexported[i]; name != "" { g.P("case ", i, ": return &v.", name) } } g.P("default: return nil") g.P("}") g.P("}") } } g.P("}") // Populate MessageInfo.OneofWrappers. for _, message := range f.allMessages { if len(message.Oneofs) > 0 { idx := f.allMessagesByPtr[message] typesVar := messageTypesVarName(f) // Associate the wrapper types by directly passing them to the MessageInfo. g.P(typesVar, "[", idx, "].OneofWrappers = []interface{} {") for _, oneof := range message.Oneofs { if !oneof.Desc.IsSynthetic() { for _, field := range oneof.Fields { g.P("(*", field.GoIdent, ")(nil),") } } } g.P("}") } } } g.P("type x struct{}") g.P("out := ", protoimplPackage.Ident("TypeBuilder"), "{") g.P("File: ", protoimplPackage.Ident("DescBuilder"), "{") g.P("GoPackagePath: ", reflectPackage.Ident("TypeOf"), "(x{}).PkgPath(),") g.P("RawDescriptor: ", rawDescVarName(f), ",") g.P("NumEnums: ", len(f.allEnums), ",") g.P("NumMessages: ", len(f.allMessages), ",") g.P("NumExtensions: ", len(f.allExtensions), ",") g.P("NumServices: ", len(f.Services), ",") g.P("},") g.P("GoTypes: ", goTypesVarName(f), ",") g.P("DependencyIndexes: ", depIdxsVarName(f), ",") if len(f.allEnums) > 0 { g.P("EnumInfos: ", enumTypesVarName(f), ",") } if len(f.allMessages) > 0 { g.P("MessageInfos: ", messageTypesVarName(f), ",") } if len(f.allExtensions) > 0 { g.P("ExtensionInfos: ", extensionTypesVarName(f), ",") } g.P("}.Build()") g.P(f.GoDescriptorIdent, " = out.File") // Set inputs to nil to allow GC to reclaim resources. g.P(rawDescVarName(f), " = nil") g.P(goTypesVarName(f), " = nil") g.P(depIdxsVarName(f), " = nil") g.P("}") } func genFileDescriptor(gen *protogen.Plugin, g *protogen.GeneratedFile, f *fileInfo) { descProto := proto.Clone(f.Proto).(*descriptorpb.FileDescriptorProto) descProto.SourceCodeInfo = nil // drop source code information b, err := proto.MarshalOptions{AllowPartial: true, Deterministic: true}.Marshal(descProto) if err != nil { gen.Error(err) return } g.P("var ", rawDescVarName(f), " = []byte{") for len(b) > 0 { n := 16 if n > len(b) { n = len(b) } s := "" for _, c := range b[:n] { s += fmt.Sprintf("0x%02x,", c) } g.P(s) b = b[n:] } g.P("}") g.P() if f.needRawDesc { onceVar := rawDescVarName(f) + "Once" dataVar := rawDescVarName(f) + "Data" g.P("var (") g.P(onceVar, " ", syncPackage.Ident("Once")) g.P(dataVar, " = ", rawDescVarName(f)) g.P(")") g.P() g.P("func ", rawDescVarName(f), "GZIP() []byte {") g.P(onceVar, ".Do(func() {") g.P(dataVar, " = ", protoimplPackage.Ident("X"), ".CompressGZIP(", dataVar, ")") g.P("})") g.P("return ", dataVar) g.P("}") g.P() } } func genEnumReflectMethods(g *protogen.GeneratedFile, f *fileInfo, e *enumInfo) { idx := f.allEnumsByPtr[e] typesVar := enumTypesVarName(f) // Descriptor method. g.P("func (", e.GoIdent, ") Descriptor() ", protoreflectPackage.Ident("EnumDescriptor"), " {") g.P("return ", typesVar, "[", idx, "].Descriptor()") g.P("}") g.P() // Type method. g.P("func (", e.GoIdent, ") Type() ", protoreflectPackage.Ident("EnumType"), " {") g.P("return &", typesVar, "[", idx, "]") g.P("}") g.P() // Number method. g.P("func (x ", e.GoIdent, ") Number() ", protoreflectPackage.Ident("EnumNumber"), " {") g.P("return ", protoreflectPackage.Ident("EnumNumber"), "(x)") g.P("}") g.P() } func genMessageReflectMethods(g *protogen.GeneratedFile, f *fileInfo, m *messageInfo) { idx := f.allMessagesByPtr[m] typesVar := messageTypesVarName(f) // ProtoReflect method. g.P("func (x *", m.GoIdent, ") ProtoReflect() ", protoreflectPackage.Ident("Message"), " {") g.P("mi := &", typesVar, "[", idx, "]") g.P("if ", protoimplPackage.Ident("UnsafeEnabled"), " && x != nil {") g.P("ms := ", protoimplPackage.Ident("X"), ".MessageStateOf(", protoimplPackage.Ident("Pointer"), "(x))") g.P("if ms.LoadMessageInfo() == nil {") g.P("ms.StoreMessageInfo(mi)") g.P("}") g.P("return ms") g.P("}") g.P("return mi.MessageOf(x)") g.P("}") g.P() } func fileVarName(f *protogen.File, suffix string) string { prefix := f.GoDescriptorIdent.GoName _, n := utf8.DecodeRuneInString(prefix) prefix = strings.ToLower(prefix[:n]) + prefix[n:] return prefix + "_" + suffix } func rawDescVarName(f *fileInfo) string { return fileVarName(f.File, "rawDesc") } func goTypesVarName(f *fileInfo) string { return fileVarName(f.File, "goTypes") } func depIdxsVarName(f *fileInfo) string { return fileVarName(f.File, "depIdxs") } func enumTypesVarName(f *fileInfo) string { return fileVarName(f.File, "enumTypes") } func messageTypesVarName(f *fileInfo) string { return fileVarName(f.File, "msgTypes") } func extensionTypesVarName(f *fileInfo) string { return fileVarName(f.File, "extTypes") } func initFuncName(f *protogen.File) string { return fileVarName(f, "init") } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/internal_gengo/well_known_types.go000066400000000000000000001151111411250152500303250ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package internal_gengo import ( "strings" "google.golang.org/protobuf/compiler/protogen" "google.golang.org/protobuf/internal/genid" ) // Specialized support for well-known types are hard-coded into the generator // as opposed to being injected in adjacent .go sources in the generated package // in order to support specialized build systems like Bazel that always generate // dynamically from the source .proto files. func genPackageKnownComment(f *fileInfo) protogen.Comments { switch f.Desc.Path() { case genid.File_google_protobuf_any_proto: return ` Package anypb contains generated types for ` + genid.File_google_protobuf_any_proto + `. The Any message is a dynamic representation of any other message value. It is functionally a tuple of the full name of the remote message type and the serialized bytes of the remote message value. Constructing an Any An Any message containing another message value is constructed using New: any, err := anypb.New(m) if err != nil { ... // handle error } ... // make use of any Unmarshaling an Any With a populated Any message, the underlying message can be serialized into a remote concrete message value in a few ways. If the exact concrete type is known, then a new (or pre-existing) instance of that message can be passed to the UnmarshalTo method: m := new(foopb.MyMessage) if err := any.UnmarshalTo(m); err != nil { ... // handle error } ... // make use of m If the exact concrete type is not known, then the UnmarshalNew method can be used to unmarshal the contents into a new instance of the remote message type: m, err := any.UnmarshalNew() if err != nil { ... // handle error } ... // make use of m UnmarshalNew uses the global type registry to resolve the message type and construct a new instance of that message to unmarshal into. In order for a message type to appear in the global registry, the Go type representing that protobuf message type must be linked into the Go binary. For messages generated by protoc-gen-go, this is achieved through an import of the generated Go package representing a .proto file. A common pattern with UnmarshalNew is to use a type switch with the resulting proto.Message value: switch m := m.(type) { case *foopb.MyMessage: ... // make use of m as a *foopb.MyMessage case *barpb.OtherMessage: ... // make use of m as a *barpb.OtherMessage case *bazpb.SomeMessage: ... // make use of m as a *bazpb.SomeMessage } This pattern ensures that the generated packages containing the message types listed in the case clauses are linked into the Go binary and therefore also registered in the global registry. Type checking an Any In order to type check whether an Any message represents some other message, then use the MessageIs method: if any.MessageIs((*foopb.MyMessage)(nil)) { ... // make use of any, knowing that it contains a foopb.MyMessage } The MessageIs method can also be used with an allocated instance of the target message type if the intention is to unmarshal into it if the type matches: m := new(foopb.MyMessage) if any.MessageIs(m) { if err := any.UnmarshalTo(m); err != nil { ... // handle error } ... // make use of m } ` case genid.File_google_protobuf_timestamp_proto: return ` Package timestamppb contains generated types for ` + genid.File_google_protobuf_timestamp_proto + `. The Timestamp message represents a timestamp, an instant in time since the Unix epoch (January 1st, 1970). Conversion to a Go Time The AsTime method can be used to convert a Timestamp message to a standard Go time.Time value in UTC: t := ts.AsTime() ... // make use of t as a time.Time Converting to a time.Time is a common operation so that the extensive set of time-based operations provided by the time package can be leveraged. See https://golang.org/pkg/time for more information. The AsTime method performs the conversion on a best-effort basis. Timestamps with denormal values (e.g., nanoseconds beyond 0 and 99999999, inclusive) are normalized during the conversion to a time.Time. To manually check for invalid Timestamps per the documented limitations in timestamp.proto, additionally call the CheckValid method: if err := ts.CheckValid(); err != nil { ... // handle error } Conversion from a Go Time The timestamppb.New function can be used to construct a Timestamp message from a standard Go time.Time value: ts := timestamppb.New(t) ... // make use of ts as a *timestamppb.Timestamp In order to construct a Timestamp representing the current time, use Now: ts := timestamppb.Now() ... // make use of ts as a *timestamppb.Timestamp ` case genid.File_google_protobuf_duration_proto: return ` Package durationpb contains generated types for ` + genid.File_google_protobuf_duration_proto + `. The Duration message represents a signed span of time. Conversion to a Go Duration The AsDuration method can be used to convert a Duration message to a standard Go time.Duration value: d := dur.AsDuration() ... // make use of d as a time.Duration Converting to a time.Duration is a common operation so that the extensive set of time-based operations provided by the time package can be leveraged. See https://golang.org/pkg/time for more information. The AsDuration method performs the conversion on a best-effort basis. Durations with denormal values (e.g., nanoseconds beyond -99999999 and +99999999, inclusive; or seconds and nanoseconds with opposite signs) are normalized during the conversion to a time.Duration. To manually check for invalid Duration per the documented limitations in duration.proto, additionally call the CheckValid method: if err := dur.CheckValid(); err != nil { ... // handle error } Note that the documented limitations in duration.proto does not protect a Duration from overflowing the representable range of a time.Duration in Go. The AsDuration method uses saturation arithmetic such that an overflow clamps the resulting value to the closest representable value (e.g., math.MaxInt64 for positive overflow and math.MinInt64 for negative overflow). Conversion from a Go Duration The durationpb.New function can be used to construct a Duration message from a standard Go time.Duration value: dur := durationpb.New(d) ... // make use of d as a *durationpb.Duration ` case genid.File_google_protobuf_struct_proto: return ` Package structpb contains generated types for ` + genid.File_google_protobuf_struct_proto + `. The messages (i.e., Value, Struct, and ListValue) defined in struct.proto are used to represent arbitrary JSON. The Value message represents a JSON value, the Struct message represents a JSON object, and the ListValue message represents a JSON array. See https://json.org for more information. The Value, Struct, and ListValue types have generated MarshalJSON and UnmarshalJSON methods such that they serialize JSON equivalent to what the messages themselves represent. Use of these types with the "google.golang.org/protobuf/encoding/protojson" package ensures that they will be serialized as their JSON equivalent. Conversion to and from a Go interface The standard Go "encoding/json" package has functionality to serialize arbitrary types to a large degree. The Value.AsInterface, Struct.AsMap, and ListValue.AsSlice methods can convert the protobuf message representation into a form represented by interface{}, map[string]interface{}, and []interface{}. This form can be used with other packages that operate on such data structures and also directly with the standard json package. In order to convert the interface{}, map[string]interface{}, and []interface{} forms back as Value, Struct, and ListValue messages, use the NewStruct, NewList, and NewValue constructor functions. Example usage Consider the following example JSON object: { "firstName": "John", "lastName": "Smith", "isAlive": true, "age": 27, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021-3100" }, "phoneNumbers": [ { "type": "home", "number": "212 555-1234" }, { "type": "office", "number": "646 555-4567" } ], "children": [], "spouse": null } To construct a Value message representing the above JSON object: m, err := structpb.NewValue(map[string]interface{}{ "firstName": "John", "lastName": "Smith", "isAlive": true, "age": 27, "address": map[string]interface{}{ "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021-3100", }, "phoneNumbers": []interface{}{ map[string]interface{}{ "type": "home", "number": "212 555-1234", }, map[string]interface{}{ "type": "office", "number": "646 555-4567", }, }, "children": []interface{}{}, "spouse": nil, }) if err != nil { ... // handle error } ... // make use of m as a *structpb.Value ` case genid.File_google_protobuf_field_mask_proto: return ` Package fieldmaskpb contains generated types for ` + genid.File_google_protobuf_field_mask_proto + `. The FieldMask message represents a set of symbolic field paths. The paths are specific to some target message type, which is not stored within the FieldMask message itself. Constructing a FieldMask The New function is used construct a FieldMask: var messageType *descriptorpb.DescriptorProto fm, err := fieldmaskpb.New(messageType, "field.name", "field.number") if err != nil { ... // handle error } ... // make use of fm The "field.name" and "field.number" paths are valid paths according to the google.protobuf.DescriptorProto message. Use of a path that does not correlate to valid fields reachable from DescriptorProto would result in an error. Once a FieldMask message has been constructed, the Append method can be used to insert additional paths to the path set: var messageType *descriptorpb.DescriptorProto if err := fm.Append(messageType, "options"); err != nil { ... // handle error } Type checking a FieldMask In order to verify that a FieldMask represents a set of fields that are reachable from some target message type, use the IsValid method: var messageType *descriptorpb.DescriptorProto if fm.IsValid(messageType) { ... // make use of fm } IsValid needs to be passed the target message type as an input since the FieldMask message itself does not store the message type that the set of paths are for. ` default: return "" } } func genMessageKnownFunctions(g *protogen.GeneratedFile, f *fileInfo, m *messageInfo) { switch m.Desc.FullName() { case genid.Any_message_fullname: g.P("// New marshals src into a new Any instance.") g.P("func New(src ", protoPackage.Ident("Message"), ") (*Any, error) {") g.P(" dst := new(Any)") g.P(" if err := dst.MarshalFrom(src); err != nil {") g.P(" return nil, err") g.P(" }") g.P(" return dst, nil") g.P("}") g.P() g.P("// MarshalFrom marshals src into dst as the underlying message") g.P("// using the provided marshal options.") g.P("//") g.P("// If no options are specified, call dst.MarshalFrom instead.") g.P("func MarshalFrom(dst *Any, src ", protoPackage.Ident("Message"), ", opts ", protoPackage.Ident("MarshalOptions"), ") error {") g.P(" const urlPrefix = \"type.googleapis.com/\"") g.P(" if src == nil {") g.P(" return ", protoimplPackage.Ident("X"), ".NewError(\"invalid nil source message\")") g.P(" }") g.P(" b, err := opts.Marshal(src)") g.P(" if err != nil {") g.P(" return err") g.P(" }") g.P(" dst.TypeUrl = urlPrefix + string(src.ProtoReflect().Descriptor().FullName())") g.P(" dst.Value = b") g.P(" return nil") g.P("}") g.P() g.P("// UnmarshalTo unmarshals the underlying message from src into dst") g.P("// using the provided unmarshal options.") g.P("// It reports an error if dst is not of the right message type.") g.P("//") g.P("// If no options are specified, call src.UnmarshalTo instead.") g.P("func UnmarshalTo(src *Any, dst ", protoPackage.Ident("Message"), ", opts ", protoPackage.Ident("UnmarshalOptions"), ") error {") g.P(" if src == nil {") g.P(" return ", protoimplPackage.Ident("X"), ".NewError(\"invalid nil source message\")") g.P(" }") g.P(" if !src.MessageIs(dst) {") g.P(" got := dst.ProtoReflect().Descriptor().FullName()") g.P(" want := src.MessageName()") g.P(" return ", protoimplPackage.Ident("X"), ".NewError(\"mismatched message type: got %q, want %q\", got, want)") g.P(" }") g.P(" return opts.Unmarshal(src.GetValue(), dst)") g.P("}") g.P() g.P("// UnmarshalNew unmarshals the underlying message from src into dst,") g.P("// which is newly created message using a type resolved from the type URL.") g.P("// The message type is resolved according to opt.Resolver,") g.P("// which should implement protoregistry.MessageTypeResolver.") g.P("// It reports an error if the underlying message type could not be resolved.") g.P("//") g.P("// If no options are specified, call src.UnmarshalNew instead.") g.P("func UnmarshalNew(src *Any, opts ", protoPackage.Ident("UnmarshalOptions"), ") (dst ", protoPackage.Ident("Message"), ", err error) {") g.P(" if src.GetTypeUrl() == \"\" {") g.P(" return nil, ", protoimplPackage.Ident("X"), ".NewError(\"invalid empty type URL\")") g.P(" }") g.P(" if opts.Resolver == nil {") g.P(" opts.Resolver = ", protoregistryPackage.Ident("GlobalTypes")) g.P(" }") g.P(" r, ok := opts.Resolver.(", protoregistryPackage.Ident("MessageTypeResolver"), ")") g.P(" if !ok {") g.P(" return nil, ", protoregistryPackage.Ident("NotFound")) g.P(" }") g.P(" mt, err := r.FindMessageByURL(src.GetTypeUrl())") g.P(" if err != nil {") g.P(" if err == ", protoregistryPackage.Ident("NotFound"), " {") g.P(" return nil, err") g.P(" }") g.P(" return nil, ", protoimplPackage.Ident("X"), ".NewError(\"could not resolve %q: %v\", src.GetTypeUrl(), err)") g.P(" }") g.P(" dst = mt.New().Interface()") g.P(" return dst, opts.Unmarshal(src.GetValue(), dst)") g.P("}") g.P() g.P("// MessageIs reports whether the underlying message is of the same type as m.") g.P("func (x *Any) MessageIs(m ", protoPackage.Ident("Message"), ") bool {") g.P(" if m == nil {") g.P(" return false") g.P(" }") g.P(" url := x.GetTypeUrl()") g.P(" name := string(m.ProtoReflect().Descriptor().FullName())") g.P(" if !", stringsPackage.Ident("HasSuffix"), "(url, name) {") g.P(" return false") g.P(" }") g.P(" return len(url) == len(name) || url[len(url)-len(name)-1] == '/'") g.P("}") g.P() g.P("// MessageName reports the full name of the underlying message,") g.P("// returning an empty string if invalid.") g.P("func (x *Any) MessageName() ", protoreflectPackage.Ident("FullName"), " {") g.P(" url := x.GetTypeUrl()") g.P(" name := ", protoreflectPackage.Ident("FullName"), "(url)") g.P(" if i := ", stringsPackage.Ident("LastIndexByte"), "(url, '/'); i >= 0 {") g.P(" name = name[i+len(\"/\"):]") g.P(" }") g.P(" if !name.IsValid() {") g.P(" return \"\"") g.P(" }") g.P(" return name") g.P("}") g.P() g.P("// MarshalFrom marshals m into x as the underlying message.") g.P("func (x *Any) MarshalFrom(m ", protoPackage.Ident("Message"), ") error {") g.P(" return MarshalFrom(x, m, ", protoPackage.Ident("MarshalOptions"), "{})") g.P("}") g.P() g.P("// UnmarshalTo unmarshals the contents of the underlying message of x into m.") g.P("// It resets m before performing the unmarshal operation.") g.P("// It reports an error if m is not of the right message type.") g.P("func (x *Any) UnmarshalTo(m ", protoPackage.Ident("Message"), ") error {") g.P(" return UnmarshalTo(x, m, ", protoPackage.Ident("UnmarshalOptions"), "{})") g.P("}") g.P() g.P("// UnmarshalNew unmarshals the contents of the underlying message of x into") g.P("// a newly allocated message of the specified type.") g.P("// It reports an error if the underlying message type could not be resolved.") g.P("func (x *Any) UnmarshalNew() (", protoPackage.Ident("Message"), ", error) {") g.P(" return UnmarshalNew(x, ", protoPackage.Ident("UnmarshalOptions"), "{})") g.P("}") g.P() case genid.Timestamp_message_fullname: g.P("// Now constructs a new Timestamp from the current time.") g.P("func Now() *Timestamp {") g.P(" return New(", timePackage.Ident("Now"), "())") g.P("}") g.P() g.P("// New constructs a new Timestamp from the provided time.Time.") g.P("func New(t ", timePackage.Ident("Time"), ") *Timestamp {") g.P(" return &Timestamp{Seconds: int64(t.Unix()), Nanos: int32(t.Nanosecond())}") g.P("}") g.P() g.P("// AsTime converts x to a time.Time.") g.P("func (x *Timestamp) AsTime() ", timePackage.Ident("Time"), " {") g.P(" return ", timePackage.Ident("Unix"), "(int64(x.GetSeconds()), int64(x.GetNanos())).UTC()") g.P("}") g.P() g.P("// IsValid reports whether the timestamp is valid.") g.P("// It is equivalent to CheckValid == nil.") g.P("func (x *Timestamp) IsValid() bool {") g.P(" return x.check() == 0") g.P("}") g.P() g.P("// CheckValid returns an error if the timestamp is invalid.") g.P("// In particular, it checks whether the value represents a date that is") g.P("// in the range of 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.") g.P("// An error is reported for a nil Timestamp.") g.P("func (x *Timestamp) CheckValid() error {") g.P(" switch x.check() {") g.P(" case invalidNil:") g.P(" return ", protoimplPackage.Ident("X"), ".NewError(\"invalid nil Timestamp\")") g.P(" case invalidUnderflow:") g.P(" return ", protoimplPackage.Ident("X"), ".NewError(\"timestamp (%v) before 0001-01-01\", x)") g.P(" case invalidOverflow:") g.P(" return ", protoimplPackage.Ident("X"), ".NewError(\"timestamp (%v) after 9999-12-31\", x)") g.P(" case invalidNanos:") g.P(" return ", protoimplPackage.Ident("X"), ".NewError(\"timestamp (%v) has out-of-range nanos\", x)") g.P(" default:") g.P(" return nil") g.P(" }") g.P("}") g.P() g.P("const (") g.P(" _ = iota") g.P(" invalidNil") g.P(" invalidUnderflow") g.P(" invalidOverflow") g.P(" invalidNanos") g.P(")") g.P() g.P("func (x *Timestamp) check() uint {") g.P(" const minTimestamp = -62135596800 // Seconds between 1970-01-01T00:00:00Z and 0001-01-01T00:00:00Z, inclusive") g.P(" const maxTimestamp = +253402300799 // Seconds between 1970-01-01T00:00:00Z and 9999-12-31T23:59:59Z, inclusive") g.P(" secs := x.GetSeconds()") g.P(" nanos := x.GetNanos()") g.P(" switch {") g.P(" case x == nil:") g.P(" return invalidNil") g.P(" case secs < minTimestamp:") g.P(" return invalidUnderflow") g.P(" case secs > maxTimestamp:") g.P(" return invalidOverflow") g.P(" case nanos < 0 || nanos >= 1e9:") g.P(" return invalidNanos") g.P(" default:") g.P(" return 0") g.P(" }") g.P("}") g.P() case genid.Duration_message_fullname: g.P("// New constructs a new Duration from the provided time.Duration.") g.P("func New(d ", timePackage.Ident("Duration"), ") *Duration {") g.P(" nanos := d.Nanoseconds()") g.P(" secs := nanos / 1e9") g.P(" nanos -= secs * 1e9") g.P(" return &Duration{Seconds: int64(secs), Nanos: int32(nanos)}") g.P("}") g.P() g.P("// AsDuration converts x to a time.Duration,") g.P("// returning the closest duration value in the event of overflow.") g.P("func (x *Duration) AsDuration() ", timePackage.Ident("Duration"), " {") g.P(" secs := x.GetSeconds()") g.P(" nanos := x.GetNanos()") g.P(" d := ", timePackage.Ident("Duration"), "(secs) * ", timePackage.Ident("Second")) g.P(" overflow := d/", timePackage.Ident("Second"), " != ", timePackage.Ident("Duration"), "(secs)") g.P(" d += ", timePackage.Ident("Duration"), "(nanos) * ", timePackage.Ident("Nanosecond")) g.P(" overflow = overflow || (secs < 0 && nanos < 0 && d > 0)") g.P(" overflow = overflow || (secs > 0 && nanos > 0 && d < 0)") g.P(" if overflow {") g.P(" switch {") g.P(" case secs < 0:") g.P(" return ", timePackage.Ident("Duration"), "(", mathPackage.Ident("MinInt64"), ")") g.P(" case secs > 0:") g.P(" return ", timePackage.Ident("Duration"), "(", mathPackage.Ident("MaxInt64"), ")") g.P(" }") g.P(" }") g.P(" return d") g.P("}") g.P() g.P("// IsValid reports whether the duration is valid.") g.P("// It is equivalent to CheckValid == nil.") g.P("func (x *Duration) IsValid() bool {") g.P(" return x.check() == 0") g.P("}") g.P() g.P("// CheckValid returns an error if the duration is invalid.") g.P("// In particular, it checks whether the value is within the range of") g.P("// -10000 years to +10000 years inclusive.") g.P("// An error is reported for a nil Duration.") g.P("func (x *Duration) CheckValid() error {") g.P(" switch x.check() {") g.P(" case invalidNil:") g.P(" return ", protoimplPackage.Ident("X"), ".NewError(\"invalid nil Duration\")") g.P(" case invalidUnderflow:") g.P(" return ", protoimplPackage.Ident("X"), ".NewError(\"duration (%v) exceeds -10000 years\", x)") g.P(" case invalidOverflow:") g.P(" return ", protoimplPackage.Ident("X"), ".NewError(\"duration (%v) exceeds +10000 years\", x)") g.P(" case invalidNanosRange:") g.P(" return ", protoimplPackage.Ident("X"), ".NewError(\"duration (%v) has out-of-range nanos\", x)") g.P(" case invalidNanosSign:") g.P(" return ", protoimplPackage.Ident("X"), ".NewError(\"duration (%v) has seconds and nanos with different signs\", x)") g.P(" default:") g.P(" return nil") g.P(" }") g.P("}") g.P() g.P("const (") g.P(" _ = iota") g.P(" invalidNil") g.P(" invalidUnderflow") g.P(" invalidOverflow") g.P(" invalidNanosRange") g.P(" invalidNanosSign") g.P(")") g.P() g.P("func (x *Duration) check() uint {") g.P(" const absDuration = 315576000000 // 10000yr * 365.25day/yr * 24hr/day * 60min/hr * 60sec/min") g.P(" secs := x.GetSeconds()") g.P(" nanos := x.GetNanos()") g.P(" switch {") g.P(" case x == nil:") g.P(" return invalidNil") g.P(" case secs < -absDuration:") g.P(" return invalidUnderflow") g.P(" case secs > +absDuration:") g.P(" return invalidOverflow") g.P(" case nanos <= -1e9 || nanos >= +1e9:") g.P(" return invalidNanosRange") g.P(" case (secs > 0 && nanos < 0) || (secs < 0 && nanos > 0):") g.P(" return invalidNanosSign") g.P(" default:") g.P(" return 0") g.P(" }") g.P("}") g.P() case genid.Struct_message_fullname: g.P("// NewStruct constructs a Struct from a general-purpose Go map.") g.P("// The map keys must be valid UTF-8.") g.P("// The map values are converted using NewValue.") g.P("func NewStruct(v map[string]interface{}) (*Struct, error) {") g.P(" x := &Struct{Fields: make(map[string]*Value, len(v))}") g.P(" for k, v := range v {") g.P(" if !", utf8Package.Ident("ValidString"), "(k) {") g.P(" return nil, ", protoimplPackage.Ident("X"), ".NewError(\"invalid UTF-8 in string: %q\", k)") g.P(" }") g.P(" var err error") g.P(" x.Fields[k], err = NewValue(v)") g.P(" if err != nil {") g.P(" return nil, err") g.P(" }") g.P(" }") g.P(" return x, nil") g.P("}") g.P() g.P("// AsMap converts x to a general-purpose Go map.") g.P("// The map values are converted by calling Value.AsInterface.") g.P("func (x *Struct) AsMap() map[string]interface{} {") g.P(" vs := make(map[string]interface{})") g.P(" for k, v := range x.GetFields() {") g.P(" vs[k] = v.AsInterface()") g.P(" }") g.P(" return vs") g.P("}") g.P() g.P("func (x *Struct) MarshalJSON() ([]byte, error) {") g.P(" return ", protojsonPackage.Ident("Marshal"), "(x)") g.P("}") g.P() g.P("func (x *Struct) UnmarshalJSON(b []byte) error {") g.P(" return ", protojsonPackage.Ident("Unmarshal"), "(b, x)") g.P("}") g.P() case genid.ListValue_message_fullname: g.P("// NewList constructs a ListValue from a general-purpose Go slice.") g.P("// The slice elements are converted using NewValue.") g.P("func NewList(v []interface{}) (*ListValue, error) {") g.P(" x := &ListValue{Values: make([]*Value, len(v))}") g.P(" for i, v := range v {") g.P(" var err error") g.P(" x.Values[i], err = NewValue(v)") g.P(" if err != nil {") g.P(" return nil, err") g.P(" }") g.P(" }") g.P(" return x, nil") g.P("}") g.P() g.P("// AsSlice converts x to a general-purpose Go slice.") g.P("// The slice elements are converted by calling Value.AsInterface.") g.P("func (x *ListValue) AsSlice() []interface{} {") g.P(" vs := make([]interface{}, len(x.GetValues()))") g.P(" for i, v := range x.GetValues() {") g.P(" vs[i] = v.AsInterface()") g.P(" }") g.P(" return vs") g.P("}") g.P() g.P("func (x *ListValue) MarshalJSON() ([]byte, error) {") g.P(" return ", protojsonPackage.Ident("Marshal"), "(x)") g.P("}") g.P() g.P("func (x *ListValue) UnmarshalJSON(b []byte) error {") g.P(" return ", protojsonPackage.Ident("Unmarshal"), "(b, x)") g.P("}") g.P() case genid.Value_message_fullname: g.P("// NewValue constructs a Value from a general-purpose Go interface.") g.P("//") g.P("// ╔════════════════════════╤════════════════════════════════════════════╗") g.P("// ║ Go type │ Conversion ║") g.P("// ╠════════════════════════╪════════════════════════════════════════════╣") g.P("// ║ nil │ stored as NullValue ║") g.P("// ║ bool │ stored as BoolValue ║") g.P("// ║ int, int32, int64 │ stored as NumberValue ║") g.P("// ║ uint, uint32, uint64 │ stored as NumberValue ║") g.P("// ║ float32, float64 │ stored as NumberValue ║") g.P("// ║ string │ stored as StringValue; must be valid UTF-8 ║") g.P("// ║ []byte │ stored as StringValue; base64-encoded ║") g.P("// ║ map[string]interface{} │ stored as StructValue ║") g.P("// ║ []interface{} │ stored as ListValue ║") g.P("// ╚════════════════════════╧════════════════════════════════════════════╝") g.P("//") g.P("// When converting an int64 or uint64 to a NumberValue, numeric precision loss") g.P("// is possible since they are stored as a float64.") g.P("func NewValue(v interface{}) (*Value, error) {") g.P(" switch v := v.(type) {") g.P(" case nil:") g.P(" return NewNullValue(), nil") g.P(" case bool:") g.P(" return NewBoolValue(v), nil") g.P(" case int:") g.P(" return NewNumberValue(float64(v)), nil") g.P(" case int32:") g.P(" return NewNumberValue(float64(v)), nil") g.P(" case int64:") g.P(" return NewNumberValue(float64(v)), nil") g.P(" case uint:") g.P(" return NewNumberValue(float64(v)), nil") g.P(" case uint32:") g.P(" return NewNumberValue(float64(v)), nil") g.P(" case uint64:") g.P(" return NewNumberValue(float64(v)), nil") g.P(" case float32:") g.P(" return NewNumberValue(float64(v)), nil") g.P(" case float64:") g.P(" return NewNumberValue(float64(v)), nil") g.P(" case string:") g.P(" if !", utf8Package.Ident("ValidString"), "(v) {") g.P(" return nil, ", protoimplPackage.Ident("X"), ".NewError(\"invalid UTF-8 in string: %q\", v)") g.P(" }") g.P(" return NewStringValue(v), nil") g.P(" case []byte:") g.P(" s := ", base64Package.Ident("StdEncoding"), ".EncodeToString(v)") g.P(" return NewStringValue(s), nil") g.P(" case map[string]interface{}:") g.P(" v2, err := NewStruct(v)") g.P(" if err != nil {") g.P(" return nil, err") g.P(" }") g.P(" return NewStructValue(v2), nil") g.P(" case []interface{}:") g.P(" v2, err := NewList(v)") g.P(" if err != nil {") g.P(" return nil, err") g.P(" }") g.P(" return NewListValue(v2), nil") g.P(" default:") g.P(" return nil, ", protoimplPackage.Ident("X"), ".NewError(\"invalid type: %T\", v)") g.P(" }") g.P("}") g.P() g.P("// NewNullValue constructs a new null Value.") g.P("func NewNullValue() *Value {") g.P(" return &Value{Kind: &Value_NullValue{NullValue: NullValue_NULL_VALUE}}") g.P("}") g.P() g.P("// NewBoolValue constructs a new boolean Value.") g.P("func NewBoolValue(v bool) *Value {") g.P(" return &Value{Kind: &Value_BoolValue{BoolValue: v}}") g.P("}") g.P() g.P("// NewNumberValue constructs a new number Value.") g.P("func NewNumberValue(v float64) *Value {") g.P(" return &Value{Kind: &Value_NumberValue{NumberValue: v}}") g.P("}") g.P() g.P("// NewStringValue constructs a new string Value.") g.P("func NewStringValue(v string) *Value {") g.P(" return &Value{Kind: &Value_StringValue{StringValue: v}}") g.P("}") g.P() g.P("// NewStructValue constructs a new struct Value.") g.P("func NewStructValue(v *Struct) *Value {") g.P(" return &Value{Kind: &Value_StructValue{StructValue: v}}") g.P("}") g.P() g.P("// NewListValue constructs a new list Value.") g.P("func NewListValue(v *ListValue) *Value {") g.P(" return &Value{Kind: &Value_ListValue{ListValue: v}}") g.P("}") g.P() g.P("// AsInterface converts x to a general-purpose Go interface.") g.P("//") g.P("// Calling Value.MarshalJSON and \"encoding/json\".Marshal on this output produce") g.P("// semantically equivalent JSON (assuming no errors occur).") g.P("//") g.P("// Floating-point values (i.e., \"NaN\", \"Infinity\", and \"-Infinity\") are") g.P("// converted as strings to remain compatible with MarshalJSON.") g.P("func (x *Value) AsInterface() interface{} {") g.P(" switch v := x.GetKind().(type) {") g.P(" case *Value_NumberValue:") g.P(" if v != nil {") g.P(" switch {") g.P(" case ", mathPackage.Ident("IsNaN"), "(v.NumberValue):") g.P(" return \"NaN\"") g.P(" case ", mathPackage.Ident("IsInf"), "(v.NumberValue, +1):") g.P(" return \"Infinity\"") g.P(" case ", mathPackage.Ident("IsInf"), "(v.NumberValue, -1):") g.P(" return \"-Infinity\"") g.P(" default:") g.P(" return v.NumberValue") g.P(" }") g.P(" }") g.P(" case *Value_StringValue:") g.P(" if v != nil {") g.P(" return v.StringValue") g.P(" }") g.P(" case *Value_BoolValue:") g.P(" if v != nil {") g.P(" return v.BoolValue") g.P(" }") g.P(" case *Value_StructValue:") g.P(" if v != nil {") g.P(" return v.StructValue.AsMap()") g.P(" }") g.P(" case *Value_ListValue:") g.P(" if v != nil {") g.P(" return v.ListValue.AsSlice()") g.P(" }") g.P(" }") g.P(" return nil") g.P("}") g.P() g.P("func (x *Value) MarshalJSON() ([]byte, error) {") g.P(" return ", protojsonPackage.Ident("Marshal"), "(x)") g.P("}") g.P() g.P("func (x *Value) UnmarshalJSON(b []byte) error {") g.P(" return ", protojsonPackage.Ident("Unmarshal"), "(b, x)") g.P("}") g.P() case genid.FieldMask_message_fullname: g.P("// New constructs a field mask from a list of paths and verifies that") g.P("// each one is valid according to the specified message type.") g.P("func New(m ", protoPackage.Ident("Message"), ", paths ...string) (*FieldMask, error) {") g.P(" x := new(FieldMask)") g.P(" return x, x.Append(m, paths...)") g.P("}") g.P() g.P("// Union returns the union of all the paths in the input field masks.") g.P("func Union(mx *FieldMask, my *FieldMask, ms ...*FieldMask) *FieldMask {") g.P(" var out []string") g.P(" out = append(out, mx.GetPaths()...)") g.P(" out = append(out, my.GetPaths()...)") g.P(" for _, m := range ms {") g.P(" out = append(out, m.GetPaths()...)") g.P(" }") g.P(" return &FieldMask{Paths: normalizePaths(out)}") g.P("}") g.P() g.P("// Intersect returns the intersection of all the paths in the input field masks.") g.P("func Intersect(mx *FieldMask, my *FieldMask, ms ...*FieldMask) *FieldMask {") g.P(" var ss1, ss2 []string // reused buffers for performance") g.P(" intersect := func(out, in []string) []string {") g.P(" ss1 = normalizePaths(append(ss1[:0], in...))") g.P(" ss2 = normalizePaths(append(ss2[:0], out...))") g.P(" out = out[:0]") g.P(" for i1, i2 := 0, 0; i1 < len(ss1) && i2 < len(ss2); {") g.P(" switch s1, s2 := ss1[i1], ss2[i2]; {") g.P(" case hasPathPrefix(s1, s2):") g.P(" out = append(out, s1)") g.P(" i1++") g.P(" case hasPathPrefix(s2, s1):") g.P(" out = append(out, s2)") g.P(" i2++") g.P(" case lessPath(s1, s2):") g.P(" i1++") g.P(" case lessPath(s2, s1):") g.P(" i2++") g.P(" }") g.P(" }") g.P(" return out") g.P(" }") g.P() g.P(" out := Union(mx, my, ms...).GetPaths()") g.P(" out = intersect(out, mx.GetPaths())") g.P(" out = intersect(out, my.GetPaths())") g.P(" for _, m := range ms {") g.P(" out = intersect(out, m.GetPaths())") g.P(" }") g.P(" return &FieldMask{Paths: normalizePaths(out)}") g.P("}") g.P() g.P("// IsValid reports whether all the paths are syntactically valid and") g.P("// refer to known fields in the specified message type.") g.P("// It reports false for a nil FieldMask.") g.P("func (x *FieldMask) IsValid(m ", protoPackage.Ident("Message"), ") bool {") g.P(" paths := x.GetPaths()") g.P(" return x != nil && numValidPaths(m, paths) == len(paths)") g.P("}") g.P() g.P("// Append appends a list of paths to the mask and verifies that each one") g.P("// is valid according to the specified message type.") g.P("// An invalid path is not appended and breaks insertion of subsequent paths.") g.P("func (x *FieldMask) Append(m ", protoPackage.Ident("Message"), ", paths ...string) error {") g.P(" numValid := numValidPaths(m, paths)") g.P(" x.Paths = append(x.Paths, paths[:numValid]...)") g.P(" paths = paths[numValid:]") g.P(" if len(paths) > 0 {") g.P(" name := m.ProtoReflect().Descriptor().FullName()") g.P(" return ", protoimplPackage.Ident("X"), ".NewError(\"invalid path %q for message %q\", paths[0], name)") g.P(" }") g.P(" return nil") g.P("}") g.P() g.P("func numValidPaths(m ", protoPackage.Ident("Message"), ", paths []string) int {") g.P(" md0 := m.ProtoReflect().Descriptor()") g.P(" for i, path := range paths {") g.P(" md := md0") g.P(" if !rangeFields(path, func(field string) bool {") g.P(" // Search the field within the message.") g.P(" if md == nil {") g.P(" return false // not within a message") g.P(" }") g.P(" fd := md.Fields().ByName(", protoreflectPackage.Ident("Name"), "(field))") g.P(" // The real field name of a group is the message name.") g.P(" if fd == nil {") g.P(" gd := md.Fields().ByName(", protoreflectPackage.Ident("Name"), "(", stringsPackage.Ident("ToLower"), "(field)))") g.P(" if gd != nil && gd.Kind() == ", protoreflectPackage.Ident("GroupKind"), " && string(gd.Message().Name()) == field {") g.P(" fd = gd") g.P(" }") g.P(" } else if fd.Kind() == ", protoreflectPackage.Ident("GroupKind"), " && string(fd.Message().Name()) != field {") g.P(" fd = nil") g.P(" }") g.P(" if fd == nil {") g.P(" return false // message has does not have this field") g.P(" }") g.P() g.P(" // Identify the next message to search within.") g.P(" md = fd.Message() // may be nil") g.P() g.P(" // Repeated fields are only allowed at the last postion.") g.P(" if fd.IsList() || fd.IsMap() {") g.P(" md = nil") g.P(" }") g.P() g.P(" return true") g.P(" }) {") g.P(" return i") g.P(" }") g.P(" }") g.P(" return len(paths)") g.P("}") g.P() g.P("// Normalize converts the mask to its canonical form where all paths are sorted") g.P("// and redundant paths are removed.") g.P("func (x *FieldMask) Normalize() {") g.P(" x.Paths = normalizePaths(x.Paths)") g.P("}") g.P() g.P("func normalizePaths(paths []string) []string {") g.P(" ", sortPackage.Ident("Slice"), "(paths, func(i, j int) bool {") g.P(" return lessPath(paths[i], paths[j])") g.P(" })") g.P() g.P(" // Elide any path that is a prefix match on the previous.") g.P(" out := paths[:0]") g.P(" for _, path := range paths {") g.P(" if len(out) > 0 && hasPathPrefix(path, out[len(out)-1]) {") g.P(" continue") g.P(" }") g.P(" out = append(out, path)") g.P(" }") g.P(" return out") g.P("}") g.P() g.P("// hasPathPrefix is like strings.HasPrefix, but further checks for either") g.P("// an exact matche or that the prefix is delimited by a dot.") g.P("func hasPathPrefix(path, prefix string) bool {") g.P(" return ", stringsPackage.Ident("HasPrefix"), "(path, prefix) && (len(path) == len(prefix) || path[len(prefix)] == '.')") g.P("}") g.P() g.P("// lessPath is a lexicographical comparison where dot is specially treated") g.P("// as the smallest symbol.") g.P("func lessPath(x, y string) bool {") g.P(" for i := 0; i < len(x) && i < len(y); i++ {") g.P(" if x[i] != y[i] {") g.P(" return (x[i] - '.') < (y[i] - '.')") g.P(" }") g.P(" }") g.P(" return len(x) < len(y)") g.P("}") g.P() g.P("// rangeFields is like strings.Split(path, \".\"), but avoids allocations by") g.P("// iterating over each field in place and calling a iterator function.") g.P("func rangeFields(path string, f func(field string) bool) bool {") g.P(" for {") g.P(" var field string") g.P(" if i := ", stringsPackage.Ident("IndexByte"), "(path, '.'); i >= 0 {") g.P(" field, path = path[:i], path[i:]") g.P(" } else {") g.P(" field, path = path, \"\"") g.P(" }") g.P() g.P(" if !f(field) {") g.P(" return false") g.P(" }") g.P() g.P(" if len(path) == 0 {") g.P(" return true") g.P(" }") g.P(" path = ", stringsPackage.Ident("TrimPrefix"), "(path, \".\")") g.P(" }") g.P("}") g.P() case genid.BoolValue_message_fullname, genid.Int32Value_message_fullname, genid.Int64Value_message_fullname, genid.UInt32Value_message_fullname, genid.UInt64Value_message_fullname, genid.FloatValue_message_fullname, genid.DoubleValue_message_fullname, genid.StringValue_message_fullname, genid.BytesValue_message_fullname: funcName := strings.TrimSuffix(m.GoIdent.GoName, "Value") typeName := strings.ToLower(funcName) switch typeName { case "float": typeName = "float32" case "double": typeName = "float64" case "bytes": typeName = "[]byte" } g.P("// ", funcName, " stores v in a new ", m.GoIdent, " and returns a pointer to it.") g.P("func ", funcName, "(v ", typeName, ") *", m.GoIdent, " {") g.P(" return &", m.GoIdent, "{Value: v}") g.P("}") g.P() } } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/main.go000066400000000000000000000032521411250152500226550ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // The protoc-gen-go binary is a protoc plugin to generate Go code for // both proto2 and proto3 versions of the protocol buffer language. // // For more information about the usage of this plugin, see: // https://developers.google.com/protocol-buffers/docs/reference/go-generated package main import ( "errors" "flag" "fmt" "os" "path/filepath" gengo "google.golang.org/protobuf/cmd/protoc-gen-go/internal_gengo" "google.golang.org/protobuf/compiler/protogen" "google.golang.org/protobuf/internal/version" ) const genGoDocURL = "https://developers.google.com/protocol-buffers/docs/reference/go-generated" const grpcDocURL = "https://grpc.io/docs/languages/go/quickstart/#regenerate-grpc-code" func main() { if len(os.Args) == 2 && os.Args[1] == "--version" { fmt.Fprintf(os.Stdout, "%v %v\n", filepath.Base(os.Args[0]), version.String()) os.Exit(0) } if len(os.Args) == 2 && os.Args[1] == "--help" { fmt.Fprintf(os.Stdout, "See "+genGoDocURL+" for usage information.\n") os.Exit(0) } var ( flags flag.FlagSet plugins = flags.String("plugins", "", "deprecated option") ) protogen.Options{ ParamFunc: flags.Set, }.Run(func(gen *protogen.Plugin) error { if *plugins != "" { return errors.New("protoc-gen-go: plugins are not supported; use 'protoc --go-grpc_out=...' to generate gRPC\n\n" + "See " + grpcDocURL + " for more information.") } for _, f := range gen.Files { if f.Generate { gengo.GenerateFile(gen, f) } } gen.SupportedFeatures = gengo.SupportedFeatures return nil }) } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/000077500000000000000000000000001411250152500232115ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/annotations/000077500000000000000000000000001411250152500255465ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/annotations/annotations.pb.go000066400000000000000000000203231411250152500310320ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/annotations/annotations.proto package annotations import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type AnnotationsTestEnum int32 const ( AnnotationsTestEnum_ANNOTATIONS_TEST_ENUM_VALUE AnnotationsTestEnum = 0 ) // Enum value maps for AnnotationsTestEnum. var ( AnnotationsTestEnum_name = map[int32]string{ 0: "ANNOTATIONS_TEST_ENUM_VALUE", } AnnotationsTestEnum_value = map[string]int32{ "ANNOTATIONS_TEST_ENUM_VALUE": 0, } ) func (x AnnotationsTestEnum) Enum() *AnnotationsTestEnum { p := new(AnnotationsTestEnum) *p = x return p } func (x AnnotationsTestEnum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (AnnotationsTestEnum) Descriptor() protoreflect.EnumDescriptor { return file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_enumTypes[0].Descriptor() } func (AnnotationsTestEnum) Type() protoreflect.EnumType { return &file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_enumTypes[0] } func (x AnnotationsTestEnum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *AnnotationsTestEnum) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = AnnotationsTestEnum(num) return nil } // Deprecated: Use AnnotationsTestEnum.Descriptor instead. func (AnnotationsTestEnum) EnumDescriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_rawDescGZIP(), []int{0} } type AnnotationsTestMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AnnotationsTestField *string `protobuf:"bytes,1,opt,name=AnnotationsTestField" json:"AnnotationsTestField,omitempty"` } func (x *AnnotationsTestMessage) Reset() { *x = AnnotationsTestMessage{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AnnotationsTestMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*AnnotationsTestMessage) ProtoMessage() {} func (x *AnnotationsTestMessage) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AnnotationsTestMessage.ProtoReflect.Descriptor instead. func (*AnnotationsTestMessage) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_rawDescGZIP(), []int{0} } func (x *AnnotationsTestMessage) GetAnnotationsTestField() string { if x != nil && x.AnnotationsTestField != nil { return *x.AnnotationsTestField } return "" } var File_cmd_protoc_gen_go_testdata_annotations_annotations_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_rawDesc = []byte{ 0x0a, 0x38, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x4c, 0x0a, 0x16, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x65, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x65, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x2a, 0x36, 0x0a, 0x13, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x00, 0x42, 0x43, 0x5a, 0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, } var ( file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_rawDescData = file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_goTypes = []interface{}{ (AnnotationsTestEnum)(0), // 0: goproto.protoc.annotations.AnnotationsTestEnum (*AnnotationsTestMessage)(nil), // 1: goproto.protoc.annotations.AnnotationsTestMessage } var file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_init() } func file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_init() { if File_cmd_protoc_gen_go_testdata_annotations_annotations_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnnotationsTestMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_rawDesc, NumEnums: 1, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_depIdxs, EnumInfos: file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_enumTypes, MessageInfos: file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_annotations_annotations_proto = out.File file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_annotations_annotations_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/annotations/annotations.pb.go.meta000066400000000000000000000011631411250152500317600ustar00rootroot00000000000000annotation:{path:5 path:0 source_file:"cmd/protoc-gen-go/testdata/annotations/annotations.proto" begin:470 end:489} annotation:{path:5 path:0 path:2 path:0 source_file:"cmd/protoc-gen-go/testdata/annotations/annotations.proto" begin:506 end:553} annotation:{path:4 path:0 source_file:"cmd/protoc-gen-go/testdata/annotations/annotations.proto" begin:1912 end:1934} annotation:{path:4 path:0 path:2 path:0 source_file:"cmd/protoc-gen-go/testdata/annotations/annotations.proto" begin:2058 end:2078} annotation:{path:4 path:0 path:2 path:0 source_file:"cmd/protoc-gen-go/testdata/annotations/annotations.proto" begin:3225 end:3248}golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/annotations/annotations.proto000066400000000000000000000007031411250152500311700ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.protoc.annotations; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/annotations"; message AnnotationsTestMessage { optional string AnnotationsTestField = 1; } enum AnnotationsTestEnum { ANNOTATIONS_TEST_ENUM_VALUE = 0; } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/comments/000077500000000000000000000000001411250152500250365ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/comments/comments.pb.go000066400000000000000000000433421411250152500276200ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/comments/comments.proto // COMMENT: package goproto.protoc.comments; package comments import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) // COMMENT: Enum1.Leading type Enum1 int32 const ( // COMMENT: FOO.Leading Enum1_FOO Enum1 = 0 // COMMENT: FOO.InlineTrailing // COMMENT: BAR.Leading Enum1_BAR Enum1 = 1 ) // Enum value maps for Enum1. var ( Enum1_name = map[int32]string{ 0: "FOO", 1: "BAR", } Enum1_value = map[string]int32{ "FOO": 0, "BAR": 1, } ) func (x Enum1) Enum() *Enum1 { p := new(Enum1) *p = x return p } func (x Enum1) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum1) Descriptor() protoreflect.EnumDescriptor { return file_cmd_protoc_gen_go_testdata_comments_comments_proto_enumTypes[0].Descriptor() } func (Enum1) Type() protoreflect.EnumType { return &file_cmd_protoc_gen_go_testdata_comments_comments_proto_enumTypes[0] } func (x Enum1) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum1) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum1(num) return nil } // Deprecated: Use Enum1.Descriptor instead. func (Enum1) EnumDescriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_comments_comments_proto_rawDescGZIP(), []int{0} } // COMMENT: Message1.Leading type Message1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields // COMMENT: Field1A.Leading Field1A *string `protobuf:"bytes,1,opt,name=Field1A" json:"Field1A,omitempty"` // COMMENT: Field1A.Trailing // COMMENT: Oneof1A.Leading // // Types that are assignable to Oneof1A: // *Message1_Oneof1AField1 Oneof1A isMessage1_Oneof1A `protobuf_oneof:"Oneof1a"` } func (x *Message1) Reset() { *x = Message1{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_comments_comments_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message1) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message1) ProtoMessage() {} func (x *Message1) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_comments_comments_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message1.ProtoReflect.Descriptor instead. func (*Message1) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_comments_comments_proto_rawDescGZIP(), []int{0} } func (x *Message1) GetField1A() string { if x != nil && x.Field1A != nil { return *x.Field1A } return "" } func (m *Message1) GetOneof1A() isMessage1_Oneof1A { if m != nil { return m.Oneof1A } return nil } func (x *Message1) GetOneof1AField1() string { if x, ok := x.GetOneof1A().(*Message1_Oneof1AField1); ok { return x.Oneof1AField1 } return "" } type isMessage1_Oneof1A interface { isMessage1_Oneof1A() } type Message1_Oneof1AField1 struct { // COMMENT: Oneof1AField1.Leading Oneof1AField1 string `protobuf:"bytes,2,opt,name=Oneof1AField1,oneof"` // COMMENT: Oneof1AField1.Trailing } func (*Message1_Oneof1AField1) isMessage1_Oneof1A() {} // COMMENT: Message2 type Message2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message2) Reset() { *x = Message2{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_comments_comments_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message2) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message2) ProtoMessage() {} func (x *Message2) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_comments_comments_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message2.ProtoReflect.Descriptor instead. func (*Message2) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_comments_comments_proto_rawDescGZIP(), []int{1} } // COMMENT: Message1A.Leading type Message1_Message1A struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message1_Message1A) Reset() { *x = Message1_Message1A{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_comments_comments_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message1_Message1A) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message1_Message1A) ProtoMessage() {} func (x *Message1_Message1A) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_comments_comments_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message1_Message1A.ProtoReflect.Descriptor instead. func (*Message1_Message1A) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_comments_comments_proto_rawDescGZIP(), []int{0, 0} } // COMMENT: Message1B type Message1_Message1B struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message1_Message1B) Reset() { *x = Message1_Message1B{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_comments_comments_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message1_Message1B) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message1_Message1B) ProtoMessage() {} func (x *Message1_Message1B) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_comments_comments_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message1_Message1B.ProtoReflect.Descriptor instead. func (*Message1_Message1B) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_comments_comments_proto_rawDescGZIP(), []int{0, 1} } // COMMENT: Message2A type Message2_Message2A struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message2_Message2A) Reset() { *x = Message2_Message2A{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_comments_comments_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message2_Message2A) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message2_Message2A) ProtoMessage() {} func (x *Message2_Message2A) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_comments_comments_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message2_Message2A.ProtoReflect.Descriptor instead. func (*Message2_Message2A) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_comments_comments_proto_rawDescGZIP(), []int{1, 0} } // COMMENT: Message2B type Message2_Message2B struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message2_Message2B) Reset() { *x = Message2_Message2B{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_comments_comments_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message2_Message2B) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message2_Message2B) ProtoMessage() {} func (x *Message2_Message2B) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_comments_comments_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message2_Message2B.ProtoReflect.Descriptor instead. func (*Message2_Message2B) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_comments_comments_proto_rawDescGZIP(), []int{1, 1} } var file_cmd_protoc_gen_go_testdata_comments_comments_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*Message1)(nil), ExtensionType: (*Message1)(nil), Field: 100, Name: "goproto.protoc.comments.extension", Tag: "bytes,100,opt,name=extension", Filename: "cmd/protoc-gen-go/testdata/comments/comments.proto", }, } // Extension fields to Message1. var ( // COMMENT: Extension.Leading // // optional goproto.protoc.comments.Message1 extension = 100; E_Extension = &file_cmd_protoc_gen_go_testdata_comments_comments_proto_extTypes[0] // COMMENT: Extension.Trailing ) var File_cmd_protoc_gen_go_testdata_comments_comments_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_comments_comments_proto_rawDesc = []byte{ 0x0a, 0x32, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x7b, 0x0a, 0x08, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x41, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x41, 0x12, 0x26, 0x0a, 0x0d, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x31, 0x41, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x31, 0x41, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x1a, 0x0b, 0x0a, 0x09, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x41, 0x1a, 0x0b, 0x0a, 0x09, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x42, 0x2a, 0x08, 0x08, 0x64, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x31, 0x61, 0x22, 0x24, 0x0a, 0x08, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x1a, 0x0b, 0x0a, 0x09, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x41, 0x1a, 0x0b, 0x0a, 0x09, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x42, 0x2a, 0x19, 0x0a, 0x05, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x12, 0x07, 0x0a, 0x03, 0x46, 0x4f, 0x4f, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x41, 0x52, 0x10, 0x01, 0x3a, 0x62, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x40, 0x5a, 0x3e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, } var ( file_cmd_protoc_gen_go_testdata_comments_comments_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_comments_comments_proto_rawDescData = file_cmd_protoc_gen_go_testdata_comments_comments_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_comments_comments_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_comments_comments_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_comments_comments_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_comments_comments_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_comments_comments_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_comments_comments_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_cmd_protoc_gen_go_testdata_comments_comments_proto_msgTypes = make([]protoimpl.MessageInfo, 6) var file_cmd_protoc_gen_go_testdata_comments_comments_proto_goTypes = []interface{}{ (Enum1)(0), // 0: goproto.protoc.comments.Enum1 (*Message1)(nil), // 1: goproto.protoc.comments.Message1 (*Message2)(nil), // 2: goproto.protoc.comments.Message2 (*Message1_Message1A)(nil), // 3: goproto.protoc.comments.Message1.Message1A (*Message1_Message1B)(nil), // 4: goproto.protoc.comments.Message1.Message1B (*Message2_Message2A)(nil), // 5: goproto.protoc.comments.Message2.Message2A (*Message2_Message2B)(nil), // 6: goproto.protoc.comments.Message2.Message2B } var file_cmd_protoc_gen_go_testdata_comments_comments_proto_depIdxs = []int32{ 1, // 0: goproto.protoc.comments.extension:extendee -> goproto.protoc.comments.Message1 1, // 1: goproto.protoc.comments.extension:type_name -> goproto.protoc.comments.Message1 2, // [2:2] is the sub-list for method output_type 2, // [2:2] is the sub-list for method input_type 1, // [1:2] is the sub-list for extension type_name 0, // [0:1] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_comments_comments_proto_init() } func file_cmd_protoc_gen_go_testdata_comments_comments_proto_init() { if File_cmd_protoc_gen_go_testdata_comments_comments_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_comments_comments_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message1); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_cmd_protoc_gen_go_testdata_comments_comments_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message2); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd_protoc_gen_go_testdata_comments_comments_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message1_Message1A); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd_protoc_gen_go_testdata_comments_comments_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message1_Message1B); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd_protoc_gen_go_testdata_comments_comments_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message2_Message2A); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd_protoc_gen_go_testdata_comments_comments_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message2_Message2B); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_cmd_protoc_gen_go_testdata_comments_comments_proto_msgTypes[0].OneofWrappers = []interface{}{ (*Message1_Oneof1AField1)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_comments_comments_proto_rawDesc, NumEnums: 1, NumMessages: 6, NumExtensions: 1, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_comments_comments_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_comments_comments_proto_depIdxs, EnumInfos: file_cmd_protoc_gen_go_testdata_comments_comments_proto_enumTypes, MessageInfos: file_cmd_protoc_gen_go_testdata_comments_comments_proto_msgTypes, ExtensionInfos: file_cmd_protoc_gen_go_testdata_comments_comments_proto_extTypes, }.Build() File_cmd_protoc_gen_go_testdata_comments_comments_proto = out.File file_cmd_protoc_gen_go_testdata_comments_comments_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_comments_comments_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_comments_comments_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/comments/comments.proto000066400000000000000000000025501411250152500277520ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; // COMMENT: package goproto.protoc.comments; package goproto.protoc.comments; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/comments"; // COMMENT: Enum1.Leading enum Enum1 { // COMMENT: FOO.Leading FOO = 0; // COMMENT: FOO.InlineTrailing // COMMENT: BAR.Leading BAR = 1; // COMMENT: BAR.Trailing1 // COMMENT: BAR.Trailing2 // COMMENT: Enum1.EndBody } // COMMENT: Message1.Leading message Message1 { // COMMENT: Message1A.Leading message Message1A { } // COMMENT: Message1A.Trailing // COMMENT: Message1B message Message1B { } // COMMENT: Field1A.Leading optional string Field1A = 1; // COMMENT: Field1A.Trailing // COMMENT: Oneof1A.Leading oneof Oneof1a { // COMMENT: Oneof1AField1.Leading string Oneof1AField1 = 2; // COMMENT: Oneof1AField1.Trailing } // COMMENT: Oneof1A.Trailing extensions 100 to max; } // COMMENT: Message1.Trailing // COMMENT: Extend extend Message1 { // COMMENT: Extension.Leading optional Message1 extension = 100; // COMMENT: Extension.Trailing } // COMMENT: Message2 message Message2 { // COMMENT: Message2A message Message2A { } // COMMENT: Message2B message Message2B { } } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/comments/deprecated.pb.go000066400000000000000000000172351411250152500300750ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // cmd/protoc-gen-go/testdata/comments/deprecated.proto is a deprecated file. package comments import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) // Deprecated: Do not use. type DeprecatedEnum int32 const ( // Deprecated: Do not use. DeprecatedEnum_DEPRECATED DeprecatedEnum = 0 ) // Enum value maps for DeprecatedEnum. var ( DeprecatedEnum_name = map[int32]string{ 0: "DEPRECATED", } DeprecatedEnum_value = map[string]int32{ "DEPRECATED": 0, } ) func (x DeprecatedEnum) Enum() *DeprecatedEnum { p := new(DeprecatedEnum) *p = x return p } func (x DeprecatedEnum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DeprecatedEnum) Descriptor() protoreflect.EnumDescriptor { return file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_enumTypes[0].Descriptor() } func (DeprecatedEnum) Type() protoreflect.EnumType { return &file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_enumTypes[0] } func (x DeprecatedEnum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use DeprecatedEnum.Descriptor instead. func (DeprecatedEnum) EnumDescriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_rawDescGZIP(), []int{0} } // Deprecated: Do not use. type DeprecatedMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Deprecated: Do not use. DeprecatedField string `protobuf:"bytes,1,opt,name=deprecated_field,json=deprecatedField,proto3" json:"deprecated_field,omitempty"` } func (x *DeprecatedMessage) Reset() { *x = DeprecatedMessage{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeprecatedMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeprecatedMessage) ProtoMessage() {} func (x *DeprecatedMessage) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DeprecatedMessage.ProtoReflect.Descriptor instead. func (*DeprecatedMessage) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_rawDescGZIP(), []int{0} } // Deprecated: Do not use. func (x *DeprecatedMessage) GetDeprecatedField() string { if x != nil { return x.DeprecatedField } return "" } var File_cmd_protoc_gen_go_testdata_comments_deprecated_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_rawDesc = []byte{ 0x0a, 0x34, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x46, 0x0a, 0x11, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2d, 0x0a, 0x10, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x3a, 0x02, 0x18, 0x01, 0x2a, 0x28, 0x0a, 0x0e, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x0a, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x1a, 0x02, 0x18, 0x01, 0x42, 0x43, 0x5a, 0x3e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0xb8, 0x01, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_rawDescData = file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_goTypes = []interface{}{ (DeprecatedEnum)(0), // 0: goproto.protoc.comments.DeprecatedEnum (*DeprecatedMessage)(nil), // 1: goproto.protoc.comments.DeprecatedMessage } var file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_init() } func file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_init() { if File_cmd_protoc_gen_go_testdata_comments_deprecated_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeprecatedMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_rawDesc, NumEnums: 1, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_depIdxs, EnumInfos: file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_enumTypes, MessageInfos: file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_comments_deprecated_proto = out.File file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_comments_deprecated_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/comments/deprecated.proto000066400000000000000000000010131411250152500302160ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package goproto.protoc.comments; option deprecated = true; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/comments"; message DeprecatedMessage { option deprecated = true; string deprecated_field = 1 [deprecated=true]; } enum DeprecatedEnum { option deprecated = true; DEPRECATED = 0 [deprecated=true]; } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/extensions/000077500000000000000000000000001411250152500254105ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/extensions/base/000077500000000000000000000000001411250152500263225ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/extensions/base/base.pb.go000066400000000000000000000174531411250152500301750ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/extensions/base/base.proto package base import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type BaseMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields Field *string `protobuf:"bytes,1,opt,name=field" json:"field,omitempty"` } func (x *BaseMessage) Reset() { *x = BaseMessage{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BaseMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*BaseMessage) ProtoMessage() {} func (x *BaseMessage) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BaseMessage.ProtoReflect.Descriptor instead. func (*BaseMessage) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_rawDescGZIP(), []int{0} } func (x *BaseMessage) GetField() string { if x != nil && x.Field != nil { return *x.Field } return "" } type MessageSetWireFormatMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields } func (x *MessageSetWireFormatMessage) Reset() { *x = MessageSetWireFormatMessage{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessageSetWireFormatMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessageSetWireFormatMessage) ProtoMessage() {} func (x *MessageSetWireFormatMessage) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MessageSetWireFormatMessage.ProtoReflect.Descriptor instead. func (*MessageSetWireFormatMessage) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_rawDescGZIP(), []int{1} } var File_cmd_protoc_gen_go_testdata_extensions_base_base_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_rawDesc = []byte{ 0x0a, 0x35, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1d, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x22, 0x33, 0x0a, 0x0b, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2a, 0x04, 0x08, 0x04, 0x10, 0x0a, 0x2a, 0x08, 0x08, 0x10, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x2b, 0x0a, 0x1b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2a, 0x08, 0x08, 0x64, 0x10, 0xff, 0xff, 0xff, 0xff, 0x07, 0x3a, 0x02, 0x08, 0x01, 0x42, 0x47, 0x5a, 0x45, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, } var ( file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_rawDescData = file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_msgTypes = make([]protoimpl.MessageInfo, 2) var file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_goTypes = []interface{}{ (*BaseMessage)(nil), // 0: goproto.protoc.extension.base.BaseMessage (*MessageSetWireFormatMessage)(nil), // 1: goproto.protoc.extension.base.MessageSetWireFormatMessage } var file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_init() } func file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_init() { if File_cmd_protoc_gen_go_testdata_extensions_base_base_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BaseMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageSetWireFormatMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_rawDesc, NumEnums: 0, NumMessages: 2, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_depIdxs, MessageInfos: file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_extensions_base_base_proto = out.File file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_extensions_base_base_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/extensions/base/base.proto000066400000000000000000000010071411250152500303170ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.protoc.extension.base; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/extensions/base"; message BaseMessage { optional string field = 1; extensions 4 to 9; extensions 16 to max; } message MessageSetWireFormatMessage { option message_set_wire_format = true; extensions 100 to max; } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/extensions/ext/000077500000000000000000000000001411250152500262105ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/extensions/ext/ext.pb.go000066400000000000000000002234771411250152500277560ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/extensions/ext/ext.proto package ext import ( base "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/extensions/base" extra "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/extensions/extra" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Enum int32 const ( Enum_ZERO Enum = 0 ) // Enum value maps for Enum. var ( Enum_name = map[int32]string{ 0: "ZERO", } Enum_value = map[string]int32{ "ZERO": 0, } ) func (x Enum) Enum() *Enum { p := new(Enum) *p = x return p } func (x Enum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum) Descriptor() protoreflect.EnumDescriptor { return file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_enumTypes[0].Descriptor() } func (Enum) Type() protoreflect.EnumType { return &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_enumTypes[0] } func (x Enum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum(num) return nil } // Deprecated: Use Enum.Descriptor instead. func (Enum) EnumDescriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_rawDescGZIP(), []int{0} } type Message struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Data []byte `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"` } func (x *Message) Reset() { *x = Message{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message) ProtoMessage() {} func (x *Message) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message.ProtoReflect.Descriptor instead. func (*Message) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_rawDescGZIP(), []int{0} } func (x *Message) GetData() []byte { if x != nil { return x.Data } return nil } type ExtensionGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ExtensionGroup *string `protobuf:"bytes,120,opt,name=extension_group,json=extensionGroup" json:"extension_group,omitempty"` } func (x *ExtensionGroup) Reset() { *x = ExtensionGroup{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExtensionGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExtensionGroup) ProtoMessage() {} func (x *ExtensionGroup) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ExtensionGroup.ProtoReflect.Descriptor instead. func (*ExtensionGroup) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_rawDescGZIP(), []int{1} } func (x *ExtensionGroup) GetExtensionGroup() string { if x != nil && x.ExtensionGroup != nil { return *x.ExtensionGroup } return "" } // Extend in the scope of another type. type ExtendingMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ExtendingMessage) Reset() { *x = ExtendingMessage{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExtendingMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExtendingMessage) ProtoMessage() {} func (x *ExtendingMessage) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ExtendingMessage.ProtoReflect.Descriptor instead. func (*ExtendingMessage) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_rawDescGZIP(), []int{2} } type RepeatedGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RepeatedXGroup []string `protobuf:"bytes,319,rep,name=repeated_x_group,json=repeatedXGroup" json:"repeated_x_group,omitempty"` } func (x *RepeatedGroup) Reset() { *x = RepeatedGroup{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RepeatedGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*RepeatedGroup) ProtoMessage() {} func (x *RepeatedGroup) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RepeatedGroup.ProtoReflect.Descriptor instead. func (*RepeatedGroup) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_rawDescGZIP(), []int{3} } func (x *RepeatedGroup) GetRepeatedXGroup() []string { if x != nil { return x.RepeatedXGroup } return nil } // An extension of an extension. type Extendable struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields } func (x *Extendable) Reset() { *x = Extendable{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Extendable) String() string { return protoimpl.X.MessageStringOf(x) } func (*Extendable) ProtoMessage() {} func (x *Extendable) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Extendable.ProtoReflect.Descriptor instead. func (*Extendable) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_rawDescGZIP(), []int{4} } // Message set wire format. type MessageSetWireFormatExtension struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *MessageSetWireFormatExtension) Reset() { *x = MessageSetWireFormatExtension{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessageSetWireFormatExtension) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessageSetWireFormatExtension) ProtoMessage() {} func (x *MessageSetWireFormatExtension) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MessageSetWireFormatExtension.ProtoReflect.Descriptor instead. func (*MessageSetWireFormatExtension) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_rawDescGZIP(), []int{5} } type Message_M struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message_M) Reset() { *x = Message_M{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message_M) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message_M) ProtoMessage() {} func (x *Message_M) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message_M.ProtoReflect.Descriptor instead. func (*Message_M) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_rawDescGZIP(), []int{0, 0} } type ExtendingMessage_ExtendingMessageSubmessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ExtendingMessage_ExtendingMessageSubmessage) Reset() { *x = ExtendingMessage_ExtendingMessageSubmessage{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExtendingMessage_ExtendingMessageSubmessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExtendingMessage_ExtendingMessageSubmessage) ProtoMessage() {} func (x *ExtendingMessage_ExtendingMessageSubmessage) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ExtendingMessage_ExtendingMessageSubmessage.ProtoReflect.Descriptor instead. func (*ExtendingMessage_ExtendingMessageSubmessage) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_rawDescGZIP(), []int{2, 0} } var file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: (*bool)(nil), Field: 101, Name: "goproto.protoc.extension.ext.extension_bool", Tag: "varint,101,opt,name=extension_bool", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: (*Enum)(nil), Field: 102, Name: "goproto.protoc.extension.ext.extension_enum", Tag: "varint,102,opt,name=extension_enum,enum=goproto.protoc.extension.ext.Enum", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: (*int32)(nil), Field: 103, Name: "goproto.protoc.extension.ext.extension_int32", Tag: "varint,103,opt,name=extension_int32", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: (*int32)(nil), Field: 104, Name: "goproto.protoc.extension.ext.extension_sint32", Tag: "zigzag32,104,opt,name=extension_sint32", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: (*uint32)(nil), Field: 105, Name: "goproto.protoc.extension.ext.extension_uint32", Tag: "varint,105,opt,name=extension_uint32", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: (*int64)(nil), Field: 106, Name: "goproto.protoc.extension.ext.extension_int64", Tag: "varint,106,opt,name=extension_int64", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: (*int64)(nil), Field: 107, Name: "goproto.protoc.extension.ext.extension_sint64", Tag: "zigzag64,107,opt,name=extension_sint64", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: (*uint64)(nil), Field: 108, Name: "goproto.protoc.extension.ext.extension_uint64", Tag: "varint,108,opt,name=extension_uint64", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: (*int32)(nil), Field: 109, Name: "goproto.protoc.extension.ext.extension_sfixed32", Tag: "fixed32,109,opt,name=extension_sfixed32", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: (*uint32)(nil), Field: 110, Name: "goproto.protoc.extension.ext.extension_fixed32", Tag: "fixed32,110,opt,name=extension_fixed32", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: (*float32)(nil), Field: 111, Name: "goproto.protoc.extension.ext.extension_float", Tag: "fixed32,111,opt,name=extension_float", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: (*int64)(nil), Field: 112, Name: "goproto.protoc.extension.ext.extension_sfixed64", Tag: "fixed64,112,opt,name=extension_sfixed64", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: (*uint64)(nil), Field: 113, Name: "goproto.protoc.extension.ext.extension_fixed64", Tag: "fixed64,113,opt,name=extension_fixed64", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: (*float64)(nil), Field: 114, Name: "goproto.protoc.extension.ext.extension_double", Tag: "fixed64,114,opt,name=extension_double", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: (*string)(nil), Field: 115, Name: "goproto.protoc.extension.ext.extension_string", Tag: "bytes,115,opt,name=extension_string", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: ([]byte)(nil), Field: 116, Name: "goproto.protoc.extension.ext.extension_bytes", Tag: "bytes,116,opt,name=extension_bytes", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: (*Message)(nil), Field: 117, Name: "goproto.protoc.extension.ext.extension_Message", Tag: "bytes,117,opt,name=extension_Message", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: (*Message_M)(nil), Field: 118, Name: "goproto.protoc.extension.ext.extension_MessageM", Tag: "bytes,118,opt,name=extension_MessageM", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: (*ExtensionGroup)(nil), Field: 119, Name: "goproto.protoc.extension.ext.extensiongroup", Tag: "group,119,opt,name=ExtensionGroup", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: (*extra.ExtraMessage)(nil), Field: 9, Name: "goproto.protoc.extension.ext.extra_message", Tag: "bytes,9,opt,name=extra_message", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: ([]bool)(nil), Field: 301, Name: "goproto.protoc.extension.ext.repeated_x_bool", Tag: "varint,301,rep,name=repeated_x_bool", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: ([]Enum)(nil), Field: 302, Name: "goproto.protoc.extension.ext.repeated_x_enum", Tag: "varint,302,rep,name=repeated_x_enum,enum=goproto.protoc.extension.ext.Enum", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: ([]int32)(nil), Field: 303, Name: "goproto.protoc.extension.ext.repeated_x_int32", Tag: "varint,303,rep,name=repeated_x_int32", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: ([]int32)(nil), Field: 304, Name: "goproto.protoc.extension.ext.repeated_x_sint32", Tag: "zigzag32,304,rep,name=repeated_x_sint32", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: ([]uint32)(nil), Field: 305, Name: "goproto.protoc.extension.ext.repeated_x_uint32", Tag: "varint,305,rep,name=repeated_x_uint32", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: ([]int64)(nil), Field: 306, Name: "goproto.protoc.extension.ext.repeated_x_int64", Tag: "varint,306,rep,name=repeated_x_int64", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: ([]int64)(nil), Field: 307, Name: "goproto.protoc.extension.ext.repeated_x_sint64", Tag: "zigzag64,307,rep,name=repeated_x_sint64", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: ([]uint64)(nil), Field: 308, Name: "goproto.protoc.extension.ext.repeated_x_uint64", Tag: "varint,308,rep,name=repeated_x_uint64", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: ([]int32)(nil), Field: 309, Name: "goproto.protoc.extension.ext.repeated_x_sfixed32", Tag: "fixed32,309,rep,name=repeated_x_sfixed32", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: ([]uint32)(nil), Field: 310, Name: "goproto.protoc.extension.ext.repeated_x_fixed32", Tag: "fixed32,310,rep,name=repeated_x_fixed32", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: ([]float32)(nil), Field: 311, Name: "goproto.protoc.extension.ext.repeated_x_float", Tag: "fixed32,311,rep,name=repeated_x_float", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: ([]int64)(nil), Field: 312, Name: "goproto.protoc.extension.ext.repeated_x_sfixed64", Tag: "fixed64,312,rep,name=repeated_x_sfixed64", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: ([]uint64)(nil), Field: 313, Name: "goproto.protoc.extension.ext.repeated_x_fixed64", Tag: "fixed64,313,rep,name=repeated_x_fixed64", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: ([]float64)(nil), Field: 314, Name: "goproto.protoc.extension.ext.repeated_x_double", Tag: "fixed64,314,rep,name=repeated_x_double", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: ([]string)(nil), Field: 315, Name: "goproto.protoc.extension.ext.repeated_x_string", Tag: "bytes,315,rep,name=repeated_x_string", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: ([][]byte)(nil), Field: 316, Name: "goproto.protoc.extension.ext.repeated_x_bytes", Tag: "bytes,316,rep,name=repeated_x_bytes", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: ([]*Message)(nil), Field: 317, Name: "goproto.protoc.extension.ext.repeated_x_Message", Tag: "bytes,317,rep,name=repeated_x_Message", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: ([]*RepeatedGroup)(nil), Field: 318, Name: "goproto.protoc.extension.ext.repeatedgroup", Tag: "group,318,rep,name=RepeatedGroup", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: (*Extendable)(nil), Field: 400, Name: "goproto.protoc.extension.ext.extendable_field", Tag: "bytes,400,opt,name=extendable_field", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*Extendable)(nil), ExtensionType: (*string)(nil), Field: 1, Name: "goproto.protoc.extension.ext.extendable_string_field", Tag: "bytes,1,opt,name=extendable_string_field", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.MessageSetWireFormatMessage)(nil), ExtensionType: (*MessageSetWireFormatExtension)(nil), Field: 101, Name: "goproto.protoc.extension.ext.message_set_extension", Tag: "bytes,101,opt,name=message_set_extension", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: (*string)(nil), Field: 200, Name: "goproto.protoc.extension.ext.ExtendingMessage.extending_message_string", Tag: "bytes,200,opt,name=extending_message_string", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.BaseMessage)(nil), ExtensionType: (*ExtendingMessage_ExtendingMessageSubmessage)(nil), Field: 201, Name: "goproto.protoc.extension.ext.ExtendingMessage.extending_message_submessage", Tag: "bytes,201,opt,name=extending_message_submessage", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, { ExtendedType: (*base.MessageSetWireFormatMessage)(nil), ExtensionType: (*MessageSetWireFormatExtension)(nil), Field: 100, Name: "goproto.protoc.extension.ext.MessageSetWireFormatExtension.message_set_extension", Tag: "bytes,100,opt,name=message_set_extension", Filename: "cmd/protoc-gen-go/testdata/extensions/ext/ext.proto", }, } // Extension fields to base.BaseMessage. var ( // optional bool extension_bool = 101; E_ExtensionBool = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[0] // optional goproto.protoc.extension.ext.Enum extension_enum = 102; E_ExtensionEnum = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[1] // optional int32 extension_int32 = 103; E_ExtensionInt32 = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[2] // optional sint32 extension_sint32 = 104; E_ExtensionSint32 = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[3] // optional uint32 extension_uint32 = 105; E_ExtensionUint32 = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[4] // optional int64 extension_int64 = 106; E_ExtensionInt64 = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[5] // optional sint64 extension_sint64 = 107; E_ExtensionSint64 = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[6] // optional uint64 extension_uint64 = 108; E_ExtensionUint64 = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[7] // optional sfixed32 extension_sfixed32 = 109; E_ExtensionSfixed32 = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[8] // optional fixed32 extension_fixed32 = 110; E_ExtensionFixed32 = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[9] // optional float extension_float = 111; E_ExtensionFloat = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[10] // optional sfixed64 extension_sfixed64 = 112; E_ExtensionSfixed64 = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[11] // optional fixed64 extension_fixed64 = 113; E_ExtensionFixed64 = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[12] // optional double extension_double = 114; E_ExtensionDouble = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[13] // optional string extension_string = 115; E_ExtensionString = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[14] // optional bytes extension_bytes = 116; E_ExtensionBytes = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[15] // optional goproto.protoc.extension.ext.Message extension_Message = 117; E_Extension_Message = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[16] // optional goproto.protoc.extension.ext.Message.M extension_MessageM = 118; E_Extension_MessageM = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[17] // optional goproto.protoc.extension.ext.ExtensionGroup extensiongroup = 119; E_Extensiongroup = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[18] // optional goproto.protoc.extension.extra.ExtraMessage extra_message = 9; E_ExtraMessage = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[19] // repeated bool repeated_x_bool = 301; E_RepeatedXBool = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[20] // repeated goproto.protoc.extension.ext.Enum repeated_x_enum = 302; E_RepeatedXEnum = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[21] // repeated int32 repeated_x_int32 = 303; E_RepeatedXInt32 = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[22] // repeated sint32 repeated_x_sint32 = 304; E_RepeatedXSint32 = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[23] // repeated uint32 repeated_x_uint32 = 305; E_RepeatedXUint32 = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[24] // repeated int64 repeated_x_int64 = 306; E_RepeatedXInt64 = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[25] // repeated sint64 repeated_x_sint64 = 307; E_RepeatedXSint64 = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[26] // repeated uint64 repeated_x_uint64 = 308; E_RepeatedXUint64 = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[27] // repeated sfixed32 repeated_x_sfixed32 = 309; E_RepeatedXSfixed32 = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[28] // repeated fixed32 repeated_x_fixed32 = 310; E_RepeatedXFixed32 = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[29] // repeated float repeated_x_float = 311; E_RepeatedXFloat = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[30] // repeated sfixed64 repeated_x_sfixed64 = 312; E_RepeatedXSfixed64 = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[31] // repeated fixed64 repeated_x_fixed64 = 313; E_RepeatedXFixed64 = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[32] // repeated double repeated_x_double = 314; E_RepeatedXDouble = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[33] // repeated string repeated_x_string = 315; E_RepeatedXString = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[34] // repeated bytes repeated_x_bytes = 316; E_RepeatedXBytes = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[35] // repeated goproto.protoc.extension.ext.Message repeated_x_Message = 317; E_RepeatedX_Message = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[36] // repeated goproto.protoc.extension.ext.RepeatedGroup repeatedgroup = 318; E_Repeatedgroup = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[37] // optional goproto.protoc.extension.ext.Extendable extendable_field = 400; E_ExtendableField = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[38] // optional string extending_message_string = 200; E_ExtendingMessage_ExtendingMessageString = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[41] // optional goproto.protoc.extension.ext.ExtendingMessage.ExtendingMessageSubmessage extending_message_submessage = 201; E_ExtendingMessage_ExtendingMessageSubmessage = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[42] ) // Extension fields to Extendable. var ( // optional string extendable_string_field = 1; E_ExtendableStringField = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[39] ) // Extension fields to base.MessageSetWireFormatMessage. var ( // optional goproto.protoc.extension.ext.MessageSetWireFormatExtension message_set_extension = 101; E_MessageSetExtension = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[40] // optional goproto.protoc.extension.ext.MessageSetWireFormatExtension message_set_extension = 100; E_MessageSetWireFormatExtension_MessageSetExtension = &file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes[43] ) var File_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_rawDesc = []byte{ 0x0a, 0x33, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x65, 0x78, 0x74, 0x2f, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x65, 0x78, 0x74, 0x1a, 0x35, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x37, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x2f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x22, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x03, 0x0a, 0x01, 0x4d, 0x22, 0x39, 0x0a, 0x0e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x78, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xd2, 0x02, 0x0a, 0x10, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1c, 0x0a, 0x1a, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x75, 0x62, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x65, 0x0a, 0x18, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x32, 0xb8, 0x01, 0x0a, 0x1c, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xc9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x75, 0x62, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x1a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x75, 0x62, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x78, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0xbf, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x58, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x16, 0x0a, 0x0a, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x2a, 0x08, 0x08, 0x01, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xcd, 0x01, 0x0a, 0x1d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0xab, 0x01, 0x0a, 0x15, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2a, 0x10, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x08, 0x0a, 0x04, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x3a, 0x51, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x65, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x6f, 0x6c, 0x3a, 0x75, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x53, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x67, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x55, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x68, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x55, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x69, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x53, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x55, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x55, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x6c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x59, 0x0a, 0x12, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x6d, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x11, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x57, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x07, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x53, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x59, 0x0a, 0x12, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x70, 0x20, 0x01, 0x28, 0x10, 0x52, 0x11, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x57, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x71, 0x20, 0x01, 0x28, 0x06, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x55, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x72, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x3a, 0x55, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x73, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x53, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x74, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x3a, 0x7e, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x75, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3a, 0x82, 0x01, 0x0a, 0x12, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x76, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x52, 0x11, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x3a, 0x80, 0x01, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x77, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3a, 0x7d, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x65, 0x78, 0x74, 0x72, 0x61, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x72, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3a, 0x53, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x78, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xad, 0x02, 0x20, 0x03, 0x28, 0x08, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x58, 0x42, 0x6f, 0x6f, 0x6c, 0x3a, 0x77, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x78, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xae, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x58, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x55, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x78, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xaf, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x58, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x57, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x78, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xb0, 0x02, 0x20, 0x03, 0x28, 0x11, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x58, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x57, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x78, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xb1, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x58, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x55, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x78, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xb2, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x58, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x57, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x78, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xb3, 0x02, 0x20, 0x03, 0x28, 0x12, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x58, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x57, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x78, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xb4, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x58, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x5b, 0x0a, 0x13, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x78, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xb5, 0x02, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x58, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x59, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x78, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xb6, 0x02, 0x20, 0x03, 0x28, 0x07, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x58, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x55, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x78, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xb7, 0x02, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x58, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x5b, 0x0a, 0x13, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x78, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xb8, 0x02, 0x20, 0x03, 0x28, 0x10, 0x52, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x58, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x59, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x78, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xb9, 0x02, 0x20, 0x03, 0x28, 0x06, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x58, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x57, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x78, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xba, 0x02, 0x20, 0x03, 0x28, 0x01, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x58, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x3a, 0x57, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x78, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xbb, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x58, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x55, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xbc, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x58, 0x42, 0x79, 0x74, 0x65, 0x73, 0x3a, 0x80, 0x01, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x78, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xbd, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x58, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3a, 0x7e, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xbe, 0x02, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3a, 0x80, 0x01, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x90, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x3a, 0x60, 0x0a, 0x17, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x3a, 0xab, 0x01, 0x0a, 0x15, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x46, 0x5a, 0x44, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x65, 0x78, 0x74, } var ( file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_rawDescData = file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes = make([]protoimpl.MessageInfo, 8) var file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_goTypes = []interface{}{ (Enum)(0), // 0: goproto.protoc.extension.ext.Enum (*Message)(nil), // 1: goproto.protoc.extension.ext.Message (*ExtensionGroup)(nil), // 2: goproto.protoc.extension.ext.ExtensionGroup (*ExtendingMessage)(nil), // 3: goproto.protoc.extension.ext.ExtendingMessage (*RepeatedGroup)(nil), // 4: goproto.protoc.extension.ext.RepeatedGroup (*Extendable)(nil), // 5: goproto.protoc.extension.ext.Extendable (*MessageSetWireFormatExtension)(nil), // 6: goproto.protoc.extension.ext.MessageSetWireFormatExtension (*Message_M)(nil), // 7: goproto.protoc.extension.ext.Message.M (*ExtendingMessage_ExtendingMessageSubmessage)(nil), // 8: goproto.protoc.extension.ext.ExtendingMessage.ExtendingMessageSubmessage (*base.BaseMessage)(nil), // 9: goproto.protoc.extension.base.BaseMessage (*base.MessageSetWireFormatMessage)(nil), // 10: goproto.protoc.extension.base.MessageSetWireFormatMessage (*extra.ExtraMessage)(nil), // 11: goproto.protoc.extension.extra.ExtraMessage } var file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_depIdxs = []int32{ 9, // 0: goproto.protoc.extension.ext.extension_bool:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 1: goproto.protoc.extension.ext.extension_enum:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 2: goproto.protoc.extension.ext.extension_int32:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 3: goproto.protoc.extension.ext.extension_sint32:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 4: goproto.protoc.extension.ext.extension_uint32:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 5: goproto.protoc.extension.ext.extension_int64:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 6: goproto.protoc.extension.ext.extension_sint64:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 7: goproto.protoc.extension.ext.extension_uint64:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 8: goproto.protoc.extension.ext.extension_sfixed32:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 9: goproto.protoc.extension.ext.extension_fixed32:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 10: goproto.protoc.extension.ext.extension_float:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 11: goproto.protoc.extension.ext.extension_sfixed64:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 12: goproto.protoc.extension.ext.extension_fixed64:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 13: goproto.protoc.extension.ext.extension_double:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 14: goproto.protoc.extension.ext.extension_string:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 15: goproto.protoc.extension.ext.extension_bytes:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 16: goproto.protoc.extension.ext.extension_Message:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 17: goproto.protoc.extension.ext.extension_MessageM:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 18: goproto.protoc.extension.ext.extensiongroup:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 19: goproto.protoc.extension.ext.extra_message:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 20: goproto.protoc.extension.ext.repeated_x_bool:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 21: goproto.protoc.extension.ext.repeated_x_enum:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 22: goproto.protoc.extension.ext.repeated_x_int32:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 23: goproto.protoc.extension.ext.repeated_x_sint32:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 24: goproto.protoc.extension.ext.repeated_x_uint32:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 25: goproto.protoc.extension.ext.repeated_x_int64:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 26: goproto.protoc.extension.ext.repeated_x_sint64:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 27: goproto.protoc.extension.ext.repeated_x_uint64:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 28: goproto.protoc.extension.ext.repeated_x_sfixed32:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 29: goproto.protoc.extension.ext.repeated_x_fixed32:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 30: goproto.protoc.extension.ext.repeated_x_float:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 31: goproto.protoc.extension.ext.repeated_x_sfixed64:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 32: goproto.protoc.extension.ext.repeated_x_fixed64:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 33: goproto.protoc.extension.ext.repeated_x_double:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 34: goproto.protoc.extension.ext.repeated_x_string:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 35: goproto.protoc.extension.ext.repeated_x_bytes:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 36: goproto.protoc.extension.ext.repeated_x_Message:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 37: goproto.protoc.extension.ext.repeatedgroup:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 38: goproto.protoc.extension.ext.extendable_field:extendee -> goproto.protoc.extension.base.BaseMessage 5, // 39: goproto.protoc.extension.ext.extendable_string_field:extendee -> goproto.protoc.extension.ext.Extendable 10, // 40: goproto.protoc.extension.ext.message_set_extension:extendee -> goproto.protoc.extension.base.MessageSetWireFormatMessage 9, // 41: goproto.protoc.extension.ext.ExtendingMessage.extending_message_string:extendee -> goproto.protoc.extension.base.BaseMessage 9, // 42: goproto.protoc.extension.ext.ExtendingMessage.extending_message_submessage:extendee -> goproto.protoc.extension.base.BaseMessage 10, // 43: goproto.protoc.extension.ext.MessageSetWireFormatExtension.message_set_extension:extendee -> goproto.protoc.extension.base.MessageSetWireFormatMessage 0, // 44: goproto.protoc.extension.ext.extension_enum:type_name -> goproto.protoc.extension.ext.Enum 1, // 45: goproto.protoc.extension.ext.extension_Message:type_name -> goproto.protoc.extension.ext.Message 7, // 46: goproto.protoc.extension.ext.extension_MessageM:type_name -> goproto.protoc.extension.ext.Message.M 2, // 47: goproto.protoc.extension.ext.extensiongroup:type_name -> goproto.protoc.extension.ext.ExtensionGroup 11, // 48: goproto.protoc.extension.ext.extra_message:type_name -> goproto.protoc.extension.extra.ExtraMessage 0, // 49: goproto.protoc.extension.ext.repeated_x_enum:type_name -> goproto.protoc.extension.ext.Enum 1, // 50: goproto.protoc.extension.ext.repeated_x_Message:type_name -> goproto.protoc.extension.ext.Message 4, // 51: goproto.protoc.extension.ext.repeatedgroup:type_name -> goproto.protoc.extension.ext.RepeatedGroup 5, // 52: goproto.protoc.extension.ext.extendable_field:type_name -> goproto.protoc.extension.ext.Extendable 6, // 53: goproto.protoc.extension.ext.message_set_extension:type_name -> goproto.protoc.extension.ext.MessageSetWireFormatExtension 8, // 54: goproto.protoc.extension.ext.ExtendingMessage.extending_message_submessage:type_name -> goproto.protoc.extension.ext.ExtendingMessage.ExtendingMessageSubmessage 6, // 55: goproto.protoc.extension.ext.MessageSetWireFormatExtension.message_set_extension:type_name -> goproto.protoc.extension.ext.MessageSetWireFormatExtension 56, // [56:56] is the sub-list for method output_type 56, // [56:56] is the sub-list for method input_type 44, // [44:56] is the sub-list for extension type_name 0, // [0:44] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_init() } func file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_init() { if File_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtensionGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtendingMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RepeatedGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Extendable); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageSetWireFormatExtension); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message_M); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtendingMessage_ExtendingMessageSubmessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_rawDesc, NumEnums: 1, NumMessages: 8, NumExtensions: 44, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_depIdxs, EnumInfos: file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_enumTypes, MessageInfos: file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_msgTypes, ExtensionInfos: file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_extTypes, }.Build() File_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto = out.File file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_extensions_ext_ext_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/extensions/ext/ext.proto000066400000000000000000000070621411250152500301020ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; import "cmd/protoc-gen-go/testdata/extensions/base/base.proto"; import "cmd/protoc-gen-go/testdata/extensions/extra/extra.proto"; package goproto.protoc.extension.ext; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/extensions/ext"; message Message { optional bytes data = 1; message M {} } enum Enum { ZERO = 0; } // Extend with various types. extend goproto.protoc.extension.base.BaseMessage { optional bool extension_bool = 101; optional Enum extension_enum = 102; optional int32 extension_int32 = 103; optional sint32 extension_sint32 = 104; optional uint32 extension_uint32 = 105; optional int64 extension_int64 = 106; optional sint64 extension_sint64 = 107; optional uint64 extension_uint64 = 108; optional sfixed32 extension_sfixed32 = 109; optional fixed32 extension_fixed32 = 110; optional float extension_float = 111; optional sfixed64 extension_sfixed64 = 112; optional fixed64 extension_fixed64 = 113; optional double extension_double = 114; optional string extension_string = 115; optional bytes extension_bytes = 116; optional Message extension_Message = 117; optional Message.M extension_MessageM = 118; optional group ExtensionGroup = 119 { optional string extension_group = 120; } } // Extend with a foreign message. extend goproto.protoc.extension.base.BaseMessage { optional goproto.protoc.extension.extra.ExtraMessage extra_message = 9; } // Extend in the scope of another type. message ExtendingMessage { extend goproto.protoc.extension.base.BaseMessage { optional string extending_message_string = 200; optional ExtendingMessageSubmessage extending_message_submessage = 201; } message ExtendingMessageSubmessage {} } // Extend with repeated fields. extend goproto.protoc.extension.base.BaseMessage { repeated bool repeated_x_bool = 301; repeated Enum repeated_x_enum = 302; repeated int32 repeated_x_int32 = 303; repeated sint32 repeated_x_sint32 = 304; repeated uint32 repeated_x_uint32 = 305; repeated int64 repeated_x_int64 = 306; repeated sint64 repeated_x_sint64 = 307; repeated uint64 repeated_x_uint64 = 308; repeated sfixed32 repeated_x_sfixed32 = 309; repeated fixed32 repeated_x_fixed32 = 310; repeated float repeated_x_float = 311; repeated sfixed64 repeated_x_sfixed64 = 312; repeated fixed64 repeated_x_fixed64 = 313; repeated double repeated_x_double = 314; repeated string repeated_x_string = 315; repeated bytes repeated_x_bytes = 316; repeated Message repeated_x_Message = 317; repeated group RepeatedGroup = 318 { repeated string repeated_x_group = 319; } } // An extension of an extension. message Extendable { extensions 1 to max; } extend goproto.protoc.extension.base.BaseMessage { optional Extendable extendable_field = 400; } extend Extendable { optional string extendable_string_field = 1; } // Message set wire format. message MessageSetWireFormatExtension { extend goproto.protoc.extension.base.MessageSetWireFormatMessage { optional MessageSetWireFormatExtension message_set_extension = 100; } } // Message set extension, not nested in a message. extend goproto.protoc.extension.base.MessageSetWireFormatMessage { optional MessageSetWireFormatExtension message_set_extension = 101; } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/extensions/extra/000077500000000000000000000000001411250152500265335ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/extensions/extra/extra.pb.go000066400000000000000000000133461411250152500306140ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/extensions/extra/extra.proto package extra import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type ExtraMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Data []byte `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"` } func (x *ExtraMessage) Reset() { *x = ExtraMessage{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExtraMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExtraMessage) ProtoMessage() {} func (x *ExtraMessage) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ExtraMessage.ProtoReflect.Descriptor instead. func (*ExtraMessage) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_rawDescGZIP(), []int{0} } func (x *ExtraMessage) GetData() []byte { if x != nil { return x.Data } return nil } var File_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_rawDesc = []byte{ 0x0a, 0x37, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x2f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x65, 0x78, 0x74, 0x72, 0x61, 0x22, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x74, 0x72, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x48, 0x5a, 0x46, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x65, 0x78, 0x74, 0x72, 0x61, } var ( file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_rawDescData = file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_goTypes = []interface{}{ (*ExtraMessage)(nil), // 0: goproto.protoc.extension.extra.ExtraMessage } var file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_init() } func file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_init() { if File_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtraMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_depIdxs, MessageInfos: file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto = out.File file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_extensions_extra_extra_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/extensions/extra/extra.proto000066400000000000000000000005601411250152500307440ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.protoc.extension.extra; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/extensions/extra"; message ExtraMessage { optional bytes data = 1; } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/extensions/proto3/000077500000000000000000000000001411250152500266365ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/extensions/proto3/ext3.pb.go000066400000000000000000001331631411250152500304570ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto package proto3 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" descriptorpb "google.golang.org/protobuf/types/descriptorpb" reflect "reflect" sync "sync" ) type Enum int32 const ( Enum_ZERO Enum = 0 ) // Enum value maps for Enum. var ( Enum_name = map[int32]string{ 0: "ZERO", } Enum_value = map[string]int32{ "ZERO": 0, } ) func (x Enum) Enum() *Enum { p := new(Enum) *p = x return p } func (x Enum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum) Descriptor() protoreflect.EnumDescriptor { return file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_enumTypes[0].Descriptor() } func (Enum) Type() protoreflect.EnumType { return &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_enumTypes[0] } func (x Enum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Enum.Descriptor instead. func (Enum) EnumDescriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_rawDescGZIP(), []int{0} } type Message struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message) Reset() { *x = Message{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message) ProtoMessage() {} func (x *Message) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message.ProtoReflect.Descriptor instead. func (*Message) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_rawDescGZIP(), []int{0} } var file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*bool)(nil), Field: 1001, Name: "goproto.protoc.extension.proto3.extension_bool", Tag: "varint,1001,opt,name=extension_bool", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*Enum)(nil), Field: 1002, Name: "goproto.protoc.extension.proto3.extension_enum", Tag: "varint,1002,opt,name=extension_enum,enum=goproto.protoc.extension.proto3.Enum", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*int32)(nil), Field: 1003, Name: "goproto.protoc.extension.proto3.extension_int32", Tag: "varint,1003,opt,name=extension_int32", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*int32)(nil), Field: 1004, Name: "goproto.protoc.extension.proto3.extension_sint32", Tag: "zigzag32,1004,opt,name=extension_sint32", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*uint32)(nil), Field: 1005, Name: "goproto.protoc.extension.proto3.extension_uint32", Tag: "varint,1005,opt,name=extension_uint32", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*int64)(nil), Field: 1006, Name: "goproto.protoc.extension.proto3.extension_int64", Tag: "varint,1006,opt,name=extension_int64", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*int64)(nil), Field: 1007, Name: "goproto.protoc.extension.proto3.extension_sint64", Tag: "zigzag64,1007,opt,name=extension_sint64", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*uint64)(nil), Field: 1008, Name: "goproto.protoc.extension.proto3.extension_uint64", Tag: "varint,1008,opt,name=extension_uint64", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*int32)(nil), Field: 1009, Name: "goproto.protoc.extension.proto3.extension_sfixed32", Tag: "fixed32,1009,opt,name=extension_sfixed32", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*uint32)(nil), Field: 1010, Name: "goproto.protoc.extension.proto3.extension_fixed32", Tag: "fixed32,1010,opt,name=extension_fixed32", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*float32)(nil), Field: 1011, Name: "goproto.protoc.extension.proto3.extension_float", Tag: "fixed32,1011,opt,name=extension_float", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*int64)(nil), Field: 1012, Name: "goproto.protoc.extension.proto3.extension_sfixed64", Tag: "fixed64,1012,opt,name=extension_sfixed64", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*uint64)(nil), Field: 1013, Name: "goproto.protoc.extension.proto3.extension_fixed64", Tag: "fixed64,1013,opt,name=extension_fixed64", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*float64)(nil), Field: 1014, Name: "goproto.protoc.extension.proto3.extension_double", Tag: "fixed64,1014,opt,name=extension_double", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*string)(nil), Field: 1015, Name: "goproto.protoc.extension.proto3.extension_string", Tag: "bytes,1015,opt,name=extension_string", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: ([]byte)(nil), Field: 1016, Name: "goproto.protoc.extension.proto3.extension_bytes", Tag: "bytes,1016,opt,name=extension_bytes", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*Message)(nil), Field: 1017, Name: "goproto.protoc.extension.proto3.extension_Message", Tag: "bytes,1017,opt,name=extension_Message", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: ([]bool)(nil), Field: 2001, Name: "goproto.protoc.extension.proto3.repeated_extension_bool", Tag: "varint,2001,rep,name=repeated_extension_bool", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: ([]Enum)(nil), Field: 2002, Name: "goproto.protoc.extension.proto3.repeated_extension_enum", Tag: "varint,2002,rep,name=repeated_extension_enum,enum=goproto.protoc.extension.proto3.Enum", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: ([]int32)(nil), Field: 2003, Name: "goproto.protoc.extension.proto3.repeated_extension_int32", Tag: "varint,2003,rep,name=repeated_extension_int32", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: ([]int32)(nil), Field: 2004, Name: "goproto.protoc.extension.proto3.repeated_extension_sint32", Tag: "zigzag32,2004,rep,name=repeated_extension_sint32", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: ([]uint32)(nil), Field: 2005, Name: "goproto.protoc.extension.proto3.repeated_extension_uint32", Tag: "varint,2005,rep,name=repeated_extension_uint32", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: ([]int64)(nil), Field: 2006, Name: "goproto.protoc.extension.proto3.repeated_extension_int64", Tag: "varint,2006,rep,name=repeated_extension_int64", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: ([]int64)(nil), Field: 2007, Name: "goproto.protoc.extension.proto3.repeated_extension_sint64", Tag: "zigzag64,2007,rep,name=repeated_extension_sint64", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: ([]uint64)(nil), Field: 2008, Name: "goproto.protoc.extension.proto3.repeated_extension_uint64", Tag: "varint,2008,rep,name=repeated_extension_uint64", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: ([]int32)(nil), Field: 2009, Name: "goproto.protoc.extension.proto3.repeated_extension_sfixed32", Tag: "fixed32,2009,rep,name=repeated_extension_sfixed32", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: ([]uint32)(nil), Field: 2010, Name: "goproto.protoc.extension.proto3.repeated_extension_fixed32", Tag: "fixed32,2010,rep,name=repeated_extension_fixed32", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: ([]float32)(nil), Field: 2011, Name: "goproto.protoc.extension.proto3.repeated_extension_float", Tag: "fixed32,2011,rep,name=repeated_extension_float", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: ([]int64)(nil), Field: 2012, Name: "goproto.protoc.extension.proto3.repeated_extension_sfixed64", Tag: "fixed64,2012,rep,name=repeated_extension_sfixed64", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: ([]uint64)(nil), Field: 2013, Name: "goproto.protoc.extension.proto3.repeated_extension_fixed64", Tag: "fixed64,2013,rep,name=repeated_extension_fixed64", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: ([]float64)(nil), Field: 2014, Name: "goproto.protoc.extension.proto3.repeated_extension_double", Tag: "fixed64,2014,rep,name=repeated_extension_double", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: ([]string)(nil), Field: 2015, Name: "goproto.protoc.extension.proto3.repeated_extension_string", Tag: "bytes,2015,rep,name=repeated_extension_string", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: ([][]byte)(nil), Field: 2016, Name: "goproto.protoc.extension.proto3.repeated_extension_bytes", Tag: "bytes,2016,rep,name=repeated_extension_bytes", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: ([]*Message)(nil), Field: 2017, Name: "goproto.protoc.extension.proto3.repeated_extension_Message", Tag: "bytes,2017,rep,name=repeated_extension_Message", Filename: "cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto", }, } // Extension fields to descriptorpb.MessageOptions. var ( // optional bool extension_bool = 1001; E_ExtensionBool = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[0] // optional goproto.protoc.extension.proto3.Enum extension_enum = 1002; E_ExtensionEnum = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[1] // optional int32 extension_int32 = 1003; E_ExtensionInt32 = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[2] // optional sint32 extension_sint32 = 1004; E_ExtensionSint32 = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[3] // optional uint32 extension_uint32 = 1005; E_ExtensionUint32 = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[4] // optional int64 extension_int64 = 1006; E_ExtensionInt64 = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[5] // optional sint64 extension_sint64 = 1007; E_ExtensionSint64 = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[6] // optional uint64 extension_uint64 = 1008; E_ExtensionUint64 = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[7] // optional sfixed32 extension_sfixed32 = 1009; E_ExtensionSfixed32 = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[8] // optional fixed32 extension_fixed32 = 1010; E_ExtensionFixed32 = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[9] // optional float extension_float = 1011; E_ExtensionFloat = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[10] // optional sfixed64 extension_sfixed64 = 1012; E_ExtensionSfixed64 = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[11] // optional fixed64 extension_fixed64 = 1013; E_ExtensionFixed64 = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[12] // optional double extension_double = 1014; E_ExtensionDouble = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[13] // optional string extension_string = 1015; E_ExtensionString = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[14] // optional bytes extension_bytes = 1016; E_ExtensionBytes = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[15] // optional goproto.protoc.extension.proto3.Message extension_Message = 1017; E_Extension_Message = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[16] // repeated bool repeated_extension_bool = 2001; E_RepeatedExtensionBool = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[17] // repeated goproto.protoc.extension.proto3.Enum repeated_extension_enum = 2002; E_RepeatedExtensionEnum = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[18] // repeated int32 repeated_extension_int32 = 2003; E_RepeatedExtensionInt32 = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[19] // repeated sint32 repeated_extension_sint32 = 2004; E_RepeatedExtensionSint32 = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[20] // repeated uint32 repeated_extension_uint32 = 2005; E_RepeatedExtensionUint32 = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[21] // repeated int64 repeated_extension_int64 = 2006; E_RepeatedExtensionInt64 = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[22] // repeated sint64 repeated_extension_sint64 = 2007; E_RepeatedExtensionSint64 = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[23] // repeated uint64 repeated_extension_uint64 = 2008; E_RepeatedExtensionUint64 = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[24] // repeated sfixed32 repeated_extension_sfixed32 = 2009; E_RepeatedExtensionSfixed32 = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[25] // repeated fixed32 repeated_extension_fixed32 = 2010; E_RepeatedExtensionFixed32 = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[26] // repeated float repeated_extension_float = 2011; E_RepeatedExtensionFloat = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[27] // repeated sfixed64 repeated_extension_sfixed64 = 2012; E_RepeatedExtensionSfixed64 = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[28] // repeated fixed64 repeated_extension_fixed64 = 2013; E_RepeatedExtensionFixed64 = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[29] // repeated double repeated_extension_double = 2014; E_RepeatedExtensionDouble = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[30] // repeated string repeated_extension_string = 2015; E_RepeatedExtensionString = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[31] // repeated bytes repeated_extension_bytes = 2016; E_RepeatedExtensionBytes = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[32] // repeated goproto.protoc.extension.proto3.Message repeated_extension_Message = 2017; E_RepeatedExtension_Message = &file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes[33] ) var File_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_rawDesc = []byte{ 0x0a, 0x37, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2f, 0x65, 0x78, 0x74, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x09, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2a, 0x10, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x08, 0x0a, 0x04, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x3a, 0x47, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x6f, 0x6c, 0x3a, 0x6e, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xea, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x49, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xeb, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x4b, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xec, 0x07, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x4b, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xed, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x49, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xee, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x4b, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xef, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x4b, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf0, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x4f, 0x0a, 0x12, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf1, 0x07, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x11, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf2, 0x07, 0x20, 0x01, 0x28, 0x07, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x49, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf3, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x4f, 0x0a, 0x12, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf4, 0x07, 0x20, 0x01, 0x28, 0x10, 0x52, 0x11, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf5, 0x07, 0x20, 0x01, 0x28, 0x06, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x4b, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf6, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x3a, 0x4b, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf7, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x49, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf8, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x3a, 0x77, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf9, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3a, 0x58, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd1, 0x0f, 0x20, 0x03, 0x28, 0x08, 0x52, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x6f, 0x6c, 0x3a, 0x7f, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd2, 0x0f, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x5a, 0x0a, 0x18, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd3, 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x5c, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd4, 0x0f, 0x20, 0x03, 0x28, 0x11, 0x52, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x5c, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd5, 0x0f, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x5a, 0x0a, 0x18, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd6, 0x0f, 0x20, 0x03, 0x28, 0x03, 0x52, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x5c, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd7, 0x0f, 0x20, 0x03, 0x28, 0x12, 0x52, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x5c, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd8, 0x0f, 0x20, 0x03, 0x28, 0x04, 0x52, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x60, 0x0a, 0x1b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd9, 0x0f, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x19, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x5e, 0x0a, 0x1a, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xda, 0x0f, 0x20, 0x03, 0x28, 0x07, 0x52, 0x18, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x5a, 0x0a, 0x18, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdb, 0x0f, 0x20, 0x03, 0x28, 0x02, 0x52, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x60, 0x0a, 0x1b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdc, 0x0f, 0x20, 0x03, 0x28, 0x10, 0x52, 0x19, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x5e, 0x0a, 0x1a, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdd, 0x0f, 0x20, 0x03, 0x28, 0x06, 0x52, 0x18, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x5c, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xde, 0x0f, 0x20, 0x03, 0x28, 0x01, 0x52, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x3a, 0x5c, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdf, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x5a, 0x0a, 0x18, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe0, 0x0f, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x3a, 0x88, 0x01, 0x0a, 0x1a, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe1, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x18, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x49, 0x5a, 0x47, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_rawDescData = file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_goTypes = []interface{}{ (Enum)(0), // 0: goproto.protoc.extension.proto3.Enum (*Message)(nil), // 1: goproto.protoc.extension.proto3.Message (*descriptorpb.MessageOptions)(nil), // 2: google.protobuf.MessageOptions } var file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_depIdxs = []int32{ 2, // 0: goproto.protoc.extension.proto3.extension_bool:extendee -> google.protobuf.MessageOptions 2, // 1: goproto.protoc.extension.proto3.extension_enum:extendee -> google.protobuf.MessageOptions 2, // 2: goproto.protoc.extension.proto3.extension_int32:extendee -> google.protobuf.MessageOptions 2, // 3: goproto.protoc.extension.proto3.extension_sint32:extendee -> google.protobuf.MessageOptions 2, // 4: goproto.protoc.extension.proto3.extension_uint32:extendee -> google.protobuf.MessageOptions 2, // 5: goproto.protoc.extension.proto3.extension_int64:extendee -> google.protobuf.MessageOptions 2, // 6: goproto.protoc.extension.proto3.extension_sint64:extendee -> google.protobuf.MessageOptions 2, // 7: goproto.protoc.extension.proto3.extension_uint64:extendee -> google.protobuf.MessageOptions 2, // 8: goproto.protoc.extension.proto3.extension_sfixed32:extendee -> google.protobuf.MessageOptions 2, // 9: goproto.protoc.extension.proto3.extension_fixed32:extendee -> google.protobuf.MessageOptions 2, // 10: goproto.protoc.extension.proto3.extension_float:extendee -> google.protobuf.MessageOptions 2, // 11: goproto.protoc.extension.proto3.extension_sfixed64:extendee -> google.protobuf.MessageOptions 2, // 12: goproto.protoc.extension.proto3.extension_fixed64:extendee -> google.protobuf.MessageOptions 2, // 13: goproto.protoc.extension.proto3.extension_double:extendee -> google.protobuf.MessageOptions 2, // 14: goproto.protoc.extension.proto3.extension_string:extendee -> google.protobuf.MessageOptions 2, // 15: goproto.protoc.extension.proto3.extension_bytes:extendee -> google.protobuf.MessageOptions 2, // 16: goproto.protoc.extension.proto3.extension_Message:extendee -> google.protobuf.MessageOptions 2, // 17: goproto.protoc.extension.proto3.repeated_extension_bool:extendee -> google.protobuf.MessageOptions 2, // 18: goproto.protoc.extension.proto3.repeated_extension_enum:extendee -> google.protobuf.MessageOptions 2, // 19: goproto.protoc.extension.proto3.repeated_extension_int32:extendee -> google.protobuf.MessageOptions 2, // 20: goproto.protoc.extension.proto3.repeated_extension_sint32:extendee -> google.protobuf.MessageOptions 2, // 21: goproto.protoc.extension.proto3.repeated_extension_uint32:extendee -> google.protobuf.MessageOptions 2, // 22: goproto.protoc.extension.proto3.repeated_extension_int64:extendee -> google.protobuf.MessageOptions 2, // 23: goproto.protoc.extension.proto3.repeated_extension_sint64:extendee -> google.protobuf.MessageOptions 2, // 24: goproto.protoc.extension.proto3.repeated_extension_uint64:extendee -> google.protobuf.MessageOptions 2, // 25: goproto.protoc.extension.proto3.repeated_extension_sfixed32:extendee -> google.protobuf.MessageOptions 2, // 26: goproto.protoc.extension.proto3.repeated_extension_fixed32:extendee -> google.protobuf.MessageOptions 2, // 27: goproto.protoc.extension.proto3.repeated_extension_float:extendee -> google.protobuf.MessageOptions 2, // 28: goproto.protoc.extension.proto3.repeated_extension_sfixed64:extendee -> google.protobuf.MessageOptions 2, // 29: goproto.protoc.extension.proto3.repeated_extension_fixed64:extendee -> google.protobuf.MessageOptions 2, // 30: goproto.protoc.extension.proto3.repeated_extension_double:extendee -> google.protobuf.MessageOptions 2, // 31: goproto.protoc.extension.proto3.repeated_extension_string:extendee -> google.protobuf.MessageOptions 2, // 32: goproto.protoc.extension.proto3.repeated_extension_bytes:extendee -> google.protobuf.MessageOptions 2, // 33: goproto.protoc.extension.proto3.repeated_extension_Message:extendee -> google.protobuf.MessageOptions 0, // 34: goproto.protoc.extension.proto3.extension_enum:type_name -> goproto.protoc.extension.proto3.Enum 1, // 35: goproto.protoc.extension.proto3.extension_Message:type_name -> goproto.protoc.extension.proto3.Message 0, // 36: goproto.protoc.extension.proto3.repeated_extension_enum:type_name -> goproto.protoc.extension.proto3.Enum 1, // 37: goproto.protoc.extension.proto3.repeated_extension_Message:type_name -> goproto.protoc.extension.proto3.Message 38, // [38:38] is the sub-list for method output_type 38, // [38:38] is the sub-list for method input_type 34, // [34:38] is the sub-list for extension type_name 0, // [0:34] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_init() } func file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_init() { if File_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_rawDesc, NumEnums: 1, NumMessages: 1, NumExtensions: 34, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_depIdxs, EnumInfos: file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_enumTypes, MessageInfos: file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_msgTypes, ExtensionInfos: file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_extTypes, }.Build() File_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto = out.File file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_extensions_proto3_ext3_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/extensions/proto3/ext3.proto000066400000000000000000000041051411250152500306060ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; import "google/protobuf/descriptor.proto"; package goproto.protoc.extension.proto3; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/extensions/proto3"; message Message {} enum Enum { ZERO = 0; } // The only types proto3 is allowed to extend are descriptor options. extend google.protobuf.MessageOptions { bool extension_bool = 1001; Enum extension_enum = 1002; int32 extension_int32 = 1003; sint32 extension_sint32 = 1004; uint32 extension_uint32 = 1005; int64 extension_int64 = 1006; sint64 extension_sint64 = 1007; uint64 extension_uint64 = 1008; sfixed32 extension_sfixed32 = 1009; fixed32 extension_fixed32 = 1010; float extension_float = 1011; sfixed64 extension_sfixed64 = 1012; fixed64 extension_fixed64 = 1013; double extension_double = 1014; string extension_string = 1015; bytes extension_bytes = 1016; Message extension_Message = 1017; repeated bool repeated_extension_bool = 2001; repeated Enum repeated_extension_enum = 2002; repeated int32 repeated_extension_int32 = 2003; repeated sint32 repeated_extension_sint32 = 2004; repeated uint32 repeated_extension_uint32 = 2005; repeated int64 repeated_extension_int64 = 2006; repeated sint64 repeated_extension_sint64 = 2007; repeated uint64 repeated_extension_uint64 = 2008; repeated sfixed32 repeated_extension_sfixed32 = 2009; repeated fixed32 repeated_extension_fixed32 = 2010; repeated float repeated_extension_float = 2011; repeated sfixed64 repeated_extension_sfixed64 = 2012; repeated fixed64 repeated_extension_fixed64 = 2013; repeated double repeated_extension_double = 2014; repeated string repeated_extension_string = 2015; repeated bytes repeated_extension_bytes = 2016; repeated Message repeated_extension_Message = 2017; } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/fieldnames/000077500000000000000000000000001411250152500253205ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/fieldnames/fieldnames.pb.go000066400000000000000000000425641411250152500303710ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/fieldnames/fieldnames.proto package fieldnames import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) // Assorted edge cases in field name conflict resolution. // // Not all (or possibly any) of these behave in an easily-understood fashion. // This exists to demonstrate the current behavior and catch unintended // changes in it. type Message struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Various CamelCase conversions. FieldOne *string `protobuf:"bytes,1,opt,name=field_one,json=fieldOne" json:"field_one,omitempty"` FieldTwo *string `protobuf:"bytes,2,opt,name=FieldTwo" json:"FieldTwo,omitempty"` FieldThree *string `protobuf:"bytes,3,opt,name=fieldThree" json:"fieldThree,omitempty"` Field_Four *string `protobuf:"bytes,4,opt,name=field__four,json=fieldFour" json:"field__four,omitempty"` // Field names that conflict with standard methods on the message struct. Descriptor_ *string `protobuf:"bytes,10,opt,name=descriptor" json:"descriptor,omitempty"` Marshal_ *string `protobuf:"bytes,11,opt,name=marshal" json:"marshal,omitempty"` Unmarshal_ *string `protobuf:"bytes,12,opt,name=unmarshal" json:"unmarshal,omitempty"` ProtoMessage_ *string `protobuf:"bytes,13,opt,name=proto_message,json=protoMessage" json:"proto_message,omitempty"` // Field names that conflict with each other after CamelCasing. CamelCase *string `protobuf:"bytes,20,opt,name=CamelCase" json:"CamelCase,omitempty"` CamelCase_ *string `protobuf:"bytes,21,opt,name=CamelCase_,json=CamelCase" json:"CamelCase_,omitempty"` CamelCase__ *string `protobuf:"bytes,22,opt,name=camel_case,json=camelCase" json:"camel_case,omitempty"` // conflicts with 20, 21 CamelCase___ *string `protobuf:"bytes,23,opt,name=CamelCase__,json=CamelCase" json:"CamelCase__,omitempty"` // conflicts with 21, 21, renamed 22 // Field with a getter that conflicts with another field. GetName *string `protobuf:"bytes,30,opt,name=get_name,json=getName" json:"get_name,omitempty"` Name_ *string `protobuf:"bytes,31,opt,name=name" json:"name,omitempty"` // Oneof that conflicts with its first field: The oneof is renamed. // // Types that are assignable to OneofConflictA_: // *Message_OneofConflictA OneofConflictA_ isMessage_OneofConflictA_ `protobuf_oneof:"oneof_conflict_a"` // Oneof that conflicts with its second field: The field is renamed. // // Types that are assignable to OneofConflictB: // *Message_OneofNoConflict // *Message_OneofConflictB_ OneofConflictB isMessage_OneofConflictB `protobuf_oneof:"oneof_conflict_b"` // Oneof with a field name that conflicts with a nested message. // // Types that are assignable to OneofConflictC: // *Message_OneofMessageConflict_ OneofConflictC isMessage_OneofConflictC `protobuf_oneof:"oneof_conflict_c"` } func (x *Message) Reset() { *x = Message{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message) ProtoMessage() {} func (x *Message) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message.ProtoReflect.Descriptor instead. func (*Message) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_rawDescGZIP(), []int{0} } func (x *Message) GetFieldOne() string { if x != nil && x.FieldOne != nil { return *x.FieldOne } return "" } func (x *Message) GetFieldTwo() string { if x != nil && x.FieldTwo != nil { return *x.FieldTwo } return "" } func (x *Message) GetFieldThree() string { if x != nil && x.FieldThree != nil { return *x.FieldThree } return "" } func (x *Message) GetField_Four() string { if x != nil && x.Field_Four != nil { return *x.Field_Four } return "" } func (x *Message) GetDescriptor_() string { if x != nil && x.Descriptor_ != nil { return *x.Descriptor_ } return "" } func (x *Message) GetMarshal_() string { if x != nil && x.Marshal_ != nil { return *x.Marshal_ } return "" } func (x *Message) GetUnmarshal_() string { if x != nil && x.Unmarshal_ != nil { return *x.Unmarshal_ } return "" } func (x *Message) GetProtoMessage_() string { if x != nil && x.ProtoMessage_ != nil { return *x.ProtoMessage_ } return "" } func (x *Message) GetCamelCase() string { if x != nil && x.CamelCase != nil { return *x.CamelCase } return "" } func (x *Message) GetCamelCase_() string { if x != nil && x.CamelCase_ != nil { return *x.CamelCase_ } return "" } func (x *Message) GetCamelCase__() string { if x != nil && x.CamelCase__ != nil { return *x.CamelCase__ } return "" } func (x *Message) GetCamelCase___() string { if x != nil && x.CamelCase___ != nil { return *x.CamelCase___ } return "" } func (x *Message) GetGetName() string { if x != nil && x.GetName != nil { return *x.GetName } return "" } func (x *Message) GetName_() string { if x != nil && x.Name_ != nil { return *x.Name_ } return "" } func (m *Message) GetOneofConflictA_() isMessage_OneofConflictA_ { if m != nil { return m.OneofConflictA_ } return nil } func (x *Message) GetOneofConflictA() string { if x, ok := x.GetOneofConflictA_().(*Message_OneofConflictA); ok { return x.OneofConflictA } return "" } func (m *Message) GetOneofConflictB() isMessage_OneofConflictB { if m != nil { return m.OneofConflictB } return nil } func (x *Message) GetOneofNoConflict() string { if x, ok := x.GetOneofConflictB().(*Message_OneofNoConflict); ok { return x.OneofNoConflict } return "" } func (x *Message) GetOneofConflictB_() string { if x, ok := x.GetOneofConflictB().(*Message_OneofConflictB_); ok { return x.OneofConflictB_ } return "" } func (m *Message) GetOneofConflictC() isMessage_OneofConflictC { if m != nil { return m.OneofConflictC } return nil } func (x *Message) GetOneofMessageConflict() string { if x, ok := x.GetOneofConflictC().(*Message_OneofMessageConflict_); ok { return x.OneofMessageConflict } return "" } type isMessage_OneofConflictA_ interface { isMessage_OneofConflictA_() } type Message_OneofConflictA struct { OneofConflictA string `protobuf:"bytes,40,opt,name=OneofConflictA,oneof"` } func (*Message_OneofConflictA) isMessage_OneofConflictA_() {} type isMessage_OneofConflictB interface { isMessage_OneofConflictB() } type Message_OneofNoConflict struct { OneofNoConflict string `protobuf:"bytes,50,opt,name=oneof_no_conflict,json=oneofNoConflict,oneof"` } type Message_OneofConflictB_ struct { OneofConflictB_ string `protobuf:"bytes,51,opt,name=OneofConflictB,oneof"` } func (*Message_OneofNoConflict) isMessage_OneofConflictB() {} func (*Message_OneofConflictB_) isMessage_OneofConflictB() {} type isMessage_OneofConflictC interface { isMessage_OneofConflictC() } type Message_OneofMessageConflict_ struct { OneofMessageConflict string `protobuf:"bytes,60,opt,name=oneof_message_conflict,json=oneofMessageConflict,oneof"` } func (*Message_OneofMessageConflict_) isMessage_OneofConflictC() {} type Message_OneofMessageConflict struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message_OneofMessageConflict) Reset() { *x = Message_OneofMessageConflict{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message_OneofMessageConflict) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message_OneofMessageConflict) ProtoMessage() {} func (x *Message_OneofMessageConflict) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message_OneofMessageConflict.ProtoReflect.Descriptor instead. func (*Message_OneofMessageConflict) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_rawDescGZIP(), []int{0, 0} } var File_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_rawDesc = []byte{ 0x0a, 0x36, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x19, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xb8, 0x05, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x6e, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x77, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x77, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x68, 0x72, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x68, 0x72, 0x65, 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x5f, 0x66, 0x6f, 0x75, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x6f, 0x75, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x72, 0x73, 0x68, 0x61, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x72, 0x73, 0x68, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x6e, 0x6d, 0x61, 0x72, 0x73, 0x68, 0x61, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x6e, 0x6d, 0x61, 0x72, 0x73, 0x68, 0x61, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x61, 0x6d, 0x65, 0x6c, 0x43, 0x61, 0x73, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x43, 0x61, 0x6d, 0x65, 0x6c, 0x43, 0x61, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x43, 0x61, 0x6d, 0x65, 0x6c, 0x43, 0x61, 0x73, 0x65, 0x5f, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x43, 0x61, 0x6d, 0x65, 0x6c, 0x43, 0x61, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x61, 0x6d, 0x65, 0x6c, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x6d, 0x65, 0x6c, 0x43, 0x61, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x43, 0x61, 0x6d, 0x65, 0x6c, 0x43, 0x61, 0x73, 0x65, 0x5f, 0x5f, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x43, 0x61, 0x6d, 0x65, 0x6c, 0x43, 0x61, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x41, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x41, 0x12, 0x2c, 0x0a, 0x11, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x6e, 0x6f, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x4e, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x12, 0x28, 0x0a, 0x0e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x42, 0x18, 0x33, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x42, 0x12, 0x36, 0x0a, 0x16, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x14, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x1a, 0x16, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x5f, 0x61, 0x42, 0x12, 0x0a, 0x10, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x5f, 0x62, 0x42, 0x12, 0x0a, 0x10, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x5f, 0x63, 0x42, 0x42, 0x5a, 0x40, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x73, } var ( file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_rawDescData = file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_msgTypes = make([]protoimpl.MessageInfo, 2) var file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_goTypes = []interface{}{ (*Message)(nil), // 0: goproto.protoc.fieldnames.Message (*Message_OneofMessageConflict)(nil), // 1: goproto.protoc.fieldnames.Message.OneofMessageConflict } var file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_init() } func file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_init() { if File_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message_OneofMessageConflict); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_msgTypes[0].OneofWrappers = []interface{}{ (*Message_OneofConflictA)(nil), (*Message_OneofNoConflict)(nil), (*Message_OneofConflictB_)(nil), (*Message_OneofMessageConflict_)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_rawDesc, NumEnums: 0, NumMessages: 2, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_depIdxs, MessageInfos: file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto = out.File file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_fieldnames_fieldnames_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/fieldnames/fieldnames.proto000066400000000000000000000034211411250152500305140ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.protoc.fieldnames; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/fieldnames"; // Assorted edge cases in field name conflict resolution. // // Not all (or possibly any) of these behave in an easily-understood fashion. // This exists to demonstrate the current behavior and catch unintended // changes in it. message Message { // Various CamelCase conversions. optional string field_one = 1; optional string FieldTwo = 2; optional string fieldThree = 3; optional string field__four = 4; // Field names that conflict with standard methods on the message struct. optional string descriptor = 10; optional string marshal = 11; optional string unmarshal = 12; optional string proto_message = 13; // Field names that conflict with each other after CamelCasing. optional string CamelCase = 20; optional string CamelCase_ = 21; optional string camel_case = 22; // conflicts with 20, 21 optional string CamelCase__ = 23; // conflicts with 21, 21, renamed 22 // Field with a getter that conflicts with another field. optional string get_name = 30; optional string name = 31; // Oneof that conflicts with its first field: The oneof is renamed. oneof oneof_conflict_a { string OneofConflictA = 40; } // Oneof that conflicts with its second field: The field is renamed. oneof oneof_conflict_b { string oneof_no_conflict = 50; string OneofConflictB = 51; } // Oneof with a field name that conflicts with a nested message. oneof oneof_conflict_c { string oneof_message_conflict = 60; } message OneofMessageConflict {} } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/gen_test.go000066400000000000000000000031321411250152500253470ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by generate-protos. DO NOT EDIT. package main import ( _ "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/annotations" _ "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/comments" _ "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/extensions/base" _ "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/extensions/ext" _ "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/extensions/extra" _ "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/extensions/proto3" _ "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/fieldnames" _ "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/import_public" _ "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/import_public/sub" _ "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/import_public/sub2" _ "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/imports" _ "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/imports/fmt" _ "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/imports/test_a_1" _ "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/imports/test_a_2" _ "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/imports/test_b_1" _ "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/issue780_oneof_conflict" _ "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/nopackage" _ "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/proto2" _ "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/proto3" ) golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/import_public/000077500000000000000000000000001411250152500260615ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/import_public/a.pb.go000066400000000000000000000215341411250152500272350ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/import_public/a.proto package import_public import ( sub "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/import_public/sub" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) // Symbols defined in public import of cmd/protoc-gen-go/testdata/import_public/sub/a.proto. type E = sub.E const E_ZERO = sub.E_ZERO var E_name = sub.E_name var E_value = sub.E_value type M_Subenum = sub.M_Subenum const M_M_ZERO = sub.M_M_ZERO var M_Subenum_name = sub.M_Subenum_name var M_Subenum_value = sub.M_Subenum_value type M_Submessage_Submessage_Subenum = sub.M_Submessage_Submessage_Subenum const M_Submessage_M_SUBMESSAGE_ZERO = sub.M_Submessage_M_SUBMESSAGE_ZERO var M_Submessage_Submessage_Subenum_name = sub.M_Submessage_Submessage_Subenum_name var M_Submessage_Submessage_Subenum_value = sub.M_Submessage_Submessage_Subenum_value type M = sub.M const Default_M_S = sub.Default_M_S var Default_M_B = sub.Default_M_B var Default_M_F = sub.Default_M_F type M_OneofInt32 = sub.M_OneofInt32 type M_OneofInt64 = sub.M_OneofInt64 type M_Submessage = sub.M_Submessage type M_Submessage_SubmessageOneofInt32 = sub.M_Submessage_SubmessageOneofInt32 type M_Submessage_SubmessageOneofInt64 = sub.M_Submessage_SubmessageOneofInt64 var E_ExtensionField = sub.E_ExtensionField type Public struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields M *sub.M `protobuf:"bytes,1,opt,name=m" json:"m,omitempty"` E *sub.E `protobuf:"varint,2,opt,name=e,enum=goproto.protoc.import_public.sub.E" json:"e,omitempty"` Local *Local `protobuf:"bytes,3,opt,name=local" json:"local,omitempty"` } func (x *Public) Reset() { *x = Public{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_import_public_a_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Public) String() string { return protoimpl.X.MessageStringOf(x) } func (*Public) ProtoMessage() {} func (x *Public) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_import_public_a_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Public.ProtoReflect.Descriptor instead. func (*Public) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_import_public_a_proto_rawDescGZIP(), []int{0} } func (x *Public) GetM() *sub.M { if x != nil { return x.M } return nil } func (x *Public) GetE() sub.E { if x != nil && x.E != nil { return *x.E } return sub.E(0) } func (x *Public) GetLocal() *Local { if x != nil { return x.Local } return nil } var File_cmd_protoc_gen_go_testdata_import_public_a_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_import_public_a_proto_rawDesc = []byte{ 0x0a, 0x30, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x1a, 0x34, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x73, 0x75, 0x62, 0x2f, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa9, 0x01, 0x0a, 0x06, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x31, 0x0a, 0x01, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x73, 0x75, 0x62, 0x2e, 0x4d, 0x52, 0x01, 0x6d, 0x12, 0x31, 0x0a, 0x01, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x73, 0x75, 0x62, 0x2e, 0x45, 0x52, 0x01, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x52, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x45, 0x5a, 0x43, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x50, 0x00, 0x50, 0x01, } var ( file_cmd_protoc_gen_go_testdata_import_public_a_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_import_public_a_proto_rawDescData = file_cmd_protoc_gen_go_testdata_import_public_a_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_import_public_a_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_import_public_a_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_import_public_a_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_import_public_a_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_import_public_a_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_import_public_a_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_cmd_protoc_gen_go_testdata_import_public_a_proto_goTypes = []interface{}{ (*Public)(nil), // 0: goproto.protoc.import_public.Public (*sub.M)(nil), // 1: goproto.protoc.import_public.sub.M (sub.E)(0), // 2: goproto.protoc.import_public.sub.E (*Local)(nil), // 3: goproto.protoc.import_public.Local } var file_cmd_protoc_gen_go_testdata_import_public_a_proto_depIdxs = []int32{ 1, // 0: goproto.protoc.import_public.Public.m:type_name -> goproto.protoc.import_public.sub.M 2, // 1: goproto.protoc.import_public.Public.e:type_name -> goproto.protoc.import_public.sub.E 3, // 2: goproto.protoc.import_public.Public.local:type_name -> goproto.protoc.import_public.Local 3, // [3:3] is the sub-list for method output_type 3, // [3:3] is the sub-list for method input_type 3, // [3:3] is the sub-list for extension type_name 3, // [3:3] is the sub-list for extension extendee 0, // [0:3] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_import_public_a_proto_init() } func file_cmd_protoc_gen_go_testdata_import_public_a_proto_init() { if File_cmd_protoc_gen_go_testdata_import_public_a_proto != nil { return } file_cmd_protoc_gen_go_testdata_import_public_b_proto_init() if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_import_public_a_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Public); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_import_public_a_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_import_public_a_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_import_public_a_proto_depIdxs, MessageInfos: file_cmd_protoc_gen_go_testdata_import_public_a_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_import_public_a_proto = out.File file_cmd_protoc_gen_go_testdata_import_public_a_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_import_public_a_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_import_public_a_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/import_public/a.proto000066400000000000000000000012141411250152500273640ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.protoc.import_public; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/import_public"; import public "cmd/protoc-gen-go/testdata/import_public/sub/a.proto"; // Different Go package. import public "cmd/protoc-gen-go/testdata/import_public/b.proto"; // Same Go package. message Public { optional goproto.protoc.import_public.sub.M m = 1; optional goproto.protoc.import_public.sub.E e = 2; optional Local local = 3; } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/import_public/b.pb.go000066400000000000000000000153111411250152500272320ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/import_public/b.proto package import_public import ( sub "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/import_public/sub" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Local struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields M *sub.M `protobuf:"bytes,1,opt,name=m" json:"m,omitempty"` E *sub.E `protobuf:"varint,2,opt,name=e,enum=goproto.protoc.import_public.sub.E" json:"e,omitempty"` } func (x *Local) Reset() { *x = Local{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_import_public_b_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Local) String() string { return protoimpl.X.MessageStringOf(x) } func (*Local) ProtoMessage() {} func (x *Local) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_import_public_b_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Local.ProtoReflect.Descriptor instead. func (*Local) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_import_public_b_proto_rawDescGZIP(), []int{0} } func (x *Local) GetM() *sub.M { if x != nil { return x.M } return nil } func (x *Local) GetE() sub.E { if x != nil && x.E != nil { return *x.E } return sub.E(0) } var File_cmd_protoc_gen_go_testdata_import_public_b_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_import_public_b_proto_rawDesc = []byte{ 0x0a, 0x30, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x1a, 0x34, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x73, 0x75, 0x62, 0x2f, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6d, 0x0a, 0x05, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x12, 0x31, 0x0a, 0x01, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x73, 0x75, 0x62, 0x2e, 0x4d, 0x52, 0x01, 0x6d, 0x12, 0x31, 0x0a, 0x01, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x73, 0x75, 0x62, 0x2e, 0x45, 0x52, 0x01, 0x65, 0x42, 0x45, 0x5a, 0x43, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, } var ( file_cmd_protoc_gen_go_testdata_import_public_b_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_import_public_b_proto_rawDescData = file_cmd_protoc_gen_go_testdata_import_public_b_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_import_public_b_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_import_public_b_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_import_public_b_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_import_public_b_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_import_public_b_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_import_public_b_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_cmd_protoc_gen_go_testdata_import_public_b_proto_goTypes = []interface{}{ (*Local)(nil), // 0: goproto.protoc.import_public.Local (*sub.M)(nil), // 1: goproto.protoc.import_public.sub.M (sub.E)(0), // 2: goproto.protoc.import_public.sub.E } var file_cmd_protoc_gen_go_testdata_import_public_b_proto_depIdxs = []int32{ 1, // 0: goproto.protoc.import_public.Local.m:type_name -> goproto.protoc.import_public.sub.M 2, // 1: goproto.protoc.import_public.Local.e:type_name -> goproto.protoc.import_public.sub.E 2, // [2:2] is the sub-list for method output_type 2, // [2:2] is the sub-list for method input_type 2, // [2:2] is the sub-list for extension type_name 2, // [2:2] is the sub-list for extension extendee 0, // [0:2] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_import_public_b_proto_init() } func file_cmd_protoc_gen_go_testdata_import_public_b_proto_init() { if File_cmd_protoc_gen_go_testdata_import_public_b_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_import_public_b_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Local); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_import_public_b_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_import_public_b_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_import_public_b_proto_depIdxs, MessageInfos: file_cmd_protoc_gen_go_testdata_import_public_b_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_import_public_b_proto = out.File file_cmd_protoc_gen_go_testdata_import_public_b_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_import_public_b_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_import_public_b_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/import_public/b.proto000066400000000000000000000007631411250152500273750ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.protoc.import_public; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/import_public"; import "cmd/protoc-gen-go/testdata/import_public/sub/a.proto"; message Local { optional goproto.protoc.import_public.sub.M m = 1; optional goproto.protoc.import_public.sub.E e = 2; } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/import_public/c.pb.go000066400000000000000000000166371411250152500272470ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/import_public/c.proto package import_public import ( sub2 "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/import_public/sub2" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type UsingPublicImport struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Local is declared in b.proto, which is a public import of a.proto. Local *Local `protobuf:"bytes,1,opt,name=local" json:"local,omitempty"` // Sub2Message is declared in sub2/a.proto, which is a public import of // sub/a.proto, which is a public import of a.proto. Sub2 *sub2.Sub2Message `protobuf:"bytes,2,opt,name=sub2" json:"sub2,omitempty"` // declared in sub2/a.proto } func (x *UsingPublicImport) Reset() { *x = UsingPublicImport{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_import_public_c_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UsingPublicImport) String() string { return protoimpl.X.MessageStringOf(x) } func (*UsingPublicImport) ProtoMessage() {} func (x *UsingPublicImport) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_import_public_c_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UsingPublicImport.ProtoReflect.Descriptor instead. func (*UsingPublicImport) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_import_public_c_proto_rawDescGZIP(), []int{0} } func (x *UsingPublicImport) GetLocal() *Local { if x != nil { return x.Local } return nil } func (x *UsingPublicImport) GetSub2() *sub2.Sub2Message { if x != nil { return x.Sub2 } return nil } var File_cmd_protoc_gen_go_testdata_import_public_c_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_import_public_c_proto_rawDesc = []byte{ 0x0a, 0x30, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x1a, 0x30, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x92, 0x01, 0x0a, 0x11, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x39, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x52, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x12, 0x42, 0x0a, 0x04, 0x73, 0x75, 0x62, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x73, 0x75, 0x62, 0x32, 0x2e, 0x53, 0x75, 0x62, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x04, 0x73, 0x75, 0x62, 0x32, 0x42, 0x45, 0x5a, 0x43, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, } var ( file_cmd_protoc_gen_go_testdata_import_public_c_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_import_public_c_proto_rawDescData = file_cmd_protoc_gen_go_testdata_import_public_c_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_import_public_c_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_import_public_c_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_import_public_c_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_import_public_c_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_import_public_c_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_import_public_c_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_cmd_protoc_gen_go_testdata_import_public_c_proto_goTypes = []interface{}{ (*UsingPublicImport)(nil), // 0: goproto.protoc.import_public.UsingPublicImport (*Local)(nil), // 1: goproto.protoc.import_public.Local (*sub2.Sub2Message)(nil), // 2: goproto.protoc.import_public.sub2.Sub2Message } var file_cmd_protoc_gen_go_testdata_import_public_c_proto_depIdxs = []int32{ 1, // 0: goproto.protoc.import_public.UsingPublicImport.local:type_name -> goproto.protoc.import_public.Local 2, // 1: goproto.protoc.import_public.UsingPublicImport.sub2:type_name -> goproto.protoc.import_public.sub2.Sub2Message 2, // [2:2] is the sub-list for method output_type 2, // [2:2] is the sub-list for method input_type 2, // [2:2] is the sub-list for extension type_name 2, // [2:2] is the sub-list for extension extendee 0, // [0:2] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_import_public_c_proto_init() } func file_cmd_protoc_gen_go_testdata_import_public_c_proto_init() { if File_cmd_protoc_gen_go_testdata_import_public_c_proto != nil { return } file_cmd_protoc_gen_go_testdata_import_public_a_proto_init() if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_import_public_c_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UsingPublicImport); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_import_public_c_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_import_public_c_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_import_public_c_proto_depIdxs, MessageInfos: file_cmd_protoc_gen_go_testdata_import_public_c_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_import_public_c_proto = out.File file_cmd_protoc_gen_go_testdata_import_public_c_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_import_public_c_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_import_public_c_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/import_public/c.proto000066400000000000000000000012701411250152500273700ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.protoc.import_public; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/import_public"; import "cmd/protoc-gen-go/testdata/import_public/a.proto"; message UsingPublicImport { // Local is declared in b.proto, which is a public import of a.proto. optional Local local = 1; // Sub2Message is declared in sub2/a.proto, which is a public import of // sub/a.proto, which is a public import of a.proto. optional sub2.Sub2Message sub2 = 2; // declared in sub2/a.proto } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/import_public/sub/000077500000000000000000000000001411250152500266525ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/import_public/sub/a.pb.go000066400000000000000000000465401411250152500300320ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/import_public/sub/a.proto package sub import ( sub2 "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/import_public/sub2" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" math "math" reflect "reflect" sync "sync" ) // Symbols defined in public import of cmd/protoc-gen-go/testdata/import_public/sub2/a.proto. type Sub2Message = sub2.Sub2Message type E int32 const ( E_ZERO E = 0 ) // Enum value maps for E. var ( E_name = map[int32]string{ 0: "ZERO", } E_value = map[string]int32{ "ZERO": 0, } ) func (x E) Enum() *E { p := new(E) *p = x return p } func (x E) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (E) Descriptor() protoreflect.EnumDescriptor { return file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_enumTypes[0].Descriptor() } func (E) Type() protoreflect.EnumType { return &file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_enumTypes[0] } func (x E) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *E) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = E(num) return nil } // Deprecated: Use E.Descriptor instead. func (E) EnumDescriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_rawDescGZIP(), []int{0} } type M_Subenum int32 const ( M_M_ZERO M_Subenum = 0 ) // Enum value maps for M_Subenum. var ( M_Subenum_name = map[int32]string{ 0: "M_ZERO", } M_Subenum_value = map[string]int32{ "M_ZERO": 0, } ) func (x M_Subenum) Enum() *M_Subenum { p := new(M_Subenum) *p = x return p } func (x M_Subenum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (M_Subenum) Descriptor() protoreflect.EnumDescriptor { return file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_enumTypes[1].Descriptor() } func (M_Subenum) Type() protoreflect.EnumType { return &file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_enumTypes[1] } func (x M_Subenum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *M_Subenum) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = M_Subenum(num) return nil } // Deprecated: Use M_Subenum.Descriptor instead. func (M_Subenum) EnumDescriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_rawDescGZIP(), []int{0, 0} } type M_Submessage_Submessage_Subenum int32 const ( M_Submessage_M_SUBMESSAGE_ZERO M_Submessage_Submessage_Subenum = 0 ) // Enum value maps for M_Submessage_Submessage_Subenum. var ( M_Submessage_Submessage_Subenum_name = map[int32]string{ 0: "M_SUBMESSAGE_ZERO", } M_Submessage_Submessage_Subenum_value = map[string]int32{ "M_SUBMESSAGE_ZERO": 0, } ) func (x M_Submessage_Submessage_Subenum) Enum() *M_Submessage_Submessage_Subenum { p := new(M_Submessage_Submessage_Subenum) *p = x return p } func (x M_Submessage_Submessage_Subenum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (M_Submessage_Submessage_Subenum) Descriptor() protoreflect.EnumDescriptor { return file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_enumTypes[2].Descriptor() } func (M_Submessage_Submessage_Subenum) Type() protoreflect.EnumType { return &file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_enumTypes[2] } func (x M_Submessage_Submessage_Subenum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *M_Submessage_Submessage_Subenum) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = M_Submessage_Submessage_Subenum(num) return nil } // Deprecated: Use M_Submessage_Submessage_Subenum.Descriptor instead. func (M_Submessage_Submessage_Subenum) EnumDescriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_rawDescGZIP(), []int{0, 0, 0} } type M struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields // Field using a type in the same Go package, but a different source file. M2 *M2 `protobuf:"bytes,1,opt,name=m2" json:"m2,omitempty"` S *string `protobuf:"bytes,4,opt,name=s,def=default" json:"s,omitempty"` B []byte `protobuf:"bytes,5,opt,name=b,def=default" json:"b,omitempty"` F *float64 `protobuf:"fixed64,6,opt,name=f,def=nan" json:"f,omitempty"` // Types that are assignable to OneofField: // *M_OneofInt32 // *M_OneofInt64 OneofField isM_OneofField `protobuf_oneof:"oneof_field"` } // Default values for M fields. const ( Default_M_S = string("default") ) // Default values for M fields. var ( Default_M_B = []byte("default") Default_M_F = float64(math.NaN()) ) func (x *M) Reset() { *x = M{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *M) String() string { return protoimpl.X.MessageStringOf(x) } func (*M) ProtoMessage() {} func (x *M) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use M.ProtoReflect.Descriptor instead. func (*M) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_rawDescGZIP(), []int{0} } func (x *M) GetM2() *M2 { if x != nil { return x.M2 } return nil } func (x *M) GetS() string { if x != nil && x.S != nil { return *x.S } return Default_M_S } func (x *M) GetB() []byte { if x != nil && x.B != nil { return x.B } return append([]byte(nil), Default_M_B...) } func (x *M) GetF() float64 { if x != nil && x.F != nil { return *x.F } return Default_M_F } func (m *M) GetOneofField() isM_OneofField { if m != nil { return m.OneofField } return nil } func (x *M) GetOneofInt32() int32 { if x, ok := x.GetOneofField().(*M_OneofInt32); ok { return x.OneofInt32 } return 0 } func (x *M) GetOneofInt64() int64 { if x, ok := x.GetOneofField().(*M_OneofInt64); ok { return x.OneofInt64 } return 0 } type isM_OneofField interface { isM_OneofField() } type M_OneofInt32 struct { OneofInt32 int32 `protobuf:"varint,2,opt,name=oneof_int32,json=oneofInt32,oneof"` } type M_OneofInt64 struct { OneofInt64 int64 `protobuf:"varint,3,opt,name=oneof_int64,json=oneofInt64,oneof"` } func (*M_OneofInt32) isM_OneofField() {} func (*M_OneofInt64) isM_OneofField() {} type M_Submessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to SubmessageOneofField: // *M_Submessage_SubmessageOneofInt32 // *M_Submessage_SubmessageOneofInt64 SubmessageOneofField isM_Submessage_SubmessageOneofField `protobuf_oneof:"submessage_oneof_field"` } func (x *M_Submessage) Reset() { *x = M_Submessage{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *M_Submessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*M_Submessage) ProtoMessage() {} func (x *M_Submessage) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use M_Submessage.ProtoReflect.Descriptor instead. func (*M_Submessage) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_rawDescGZIP(), []int{0, 0} } func (m *M_Submessage) GetSubmessageOneofField() isM_Submessage_SubmessageOneofField { if m != nil { return m.SubmessageOneofField } return nil } func (x *M_Submessage) GetSubmessageOneofInt32() int32 { if x, ok := x.GetSubmessageOneofField().(*M_Submessage_SubmessageOneofInt32); ok { return x.SubmessageOneofInt32 } return 0 } func (x *M_Submessage) GetSubmessageOneofInt64() int64 { if x, ok := x.GetSubmessageOneofField().(*M_Submessage_SubmessageOneofInt64); ok { return x.SubmessageOneofInt64 } return 0 } type isM_Submessage_SubmessageOneofField interface { isM_Submessage_SubmessageOneofField() } type M_Submessage_SubmessageOneofInt32 struct { SubmessageOneofInt32 int32 `protobuf:"varint,1,opt,name=submessage_oneof_int32,json=submessageOneofInt32,oneof"` } type M_Submessage_SubmessageOneofInt64 struct { SubmessageOneofInt64 int64 `protobuf:"varint,2,opt,name=submessage_oneof_int64,json=submessageOneofInt64,oneof"` } func (*M_Submessage_SubmessageOneofInt32) isM_Submessage_SubmessageOneofField() {} func (*M_Submessage_SubmessageOneofInt64) isM_Submessage_SubmessageOneofField() {} var file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*M)(nil), ExtensionType: (*string)(nil), Field: 100, Name: "goproto.protoc.import_public.sub.extension_field", Tag: "bytes,100,opt,name=extension_field", Filename: "cmd/protoc-gen-go/testdata/import_public/sub/a.proto", }, } // Extension fields to M. var ( // optional string extension_field = 100; E_ExtensionField = &file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_extTypes[0] ) var File_cmd_protoc_gen_go_testdata_import_public_sub_a_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_rawDesc = []byte{ 0x0a, 0x34, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x73, 0x75, 0x62, 0x2f, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x73, 0x75, 0x62, 0x1a, 0x34, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x73, 0x75, 0x62, 0x2f, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x35, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x73, 0x75, 0x62, 0x32, 0x2f, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb6, 0x03, 0x0a, 0x01, 0x4d, 0x12, 0x34, 0x0a, 0x02, 0x6d, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x73, 0x75, 0x62, 0x2e, 0x4d, 0x32, 0x52, 0x02, 0x6d, 0x32, 0x12, 0x15, 0x0a, 0x01, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x3a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x01, 0x73, 0x12, 0x15, 0x0a, 0x01, 0x62, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x3a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x01, 0x62, 0x12, 0x11, 0x0a, 0x01, 0x66, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x3a, 0x03, 0x6e, 0x61, 0x6e, 0x52, 0x01, 0x66, 0x12, 0x21, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x21, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x1a, 0xc3, 0x01, 0x0a, 0x0a, 0x53, 0x75, 0x62, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x73, 0x75, 0x62, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x14, 0x73, 0x75, 0x62, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x36, 0x0a, 0x16, 0x73, 0x75, 0x62, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x14, 0x73, 0x75, 0x62, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x22, 0x2b, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x53, 0x75, 0x62, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x15, 0x0a, 0x11, 0x4d, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x42, 0x18, 0x0a, 0x16, 0x73, 0x75, 0x62, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x15, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x2a, 0x08, 0x08, 0x64, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x42, 0x0d, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2a, 0x0d, 0x0a, 0x01, 0x45, 0x12, 0x08, 0x0a, 0x04, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x3a, 0x4c, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x23, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x73, 0x75, 0x62, 0x2e, 0x4d, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x49, 0x5a, 0x47, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x73, 0x75, 0x62, 0x50, 0x01, } var ( file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_rawDescData = file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_enumTypes = make([]protoimpl.EnumInfo, 3) var file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_msgTypes = make([]protoimpl.MessageInfo, 2) var file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_goTypes = []interface{}{ (E)(0), // 0: goproto.protoc.import_public.sub.E (M_Subenum)(0), // 1: goproto.protoc.import_public.sub.M.Subenum (M_Submessage_Submessage_Subenum)(0), // 2: goproto.protoc.import_public.sub.M.Submessage.Submessage_Subenum (*M)(nil), // 3: goproto.protoc.import_public.sub.M (*M_Submessage)(nil), // 4: goproto.protoc.import_public.sub.M.Submessage (*M2)(nil), // 5: goproto.protoc.import_public.sub.M2 } var file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_depIdxs = []int32{ 5, // 0: goproto.protoc.import_public.sub.M.m2:type_name -> goproto.protoc.import_public.sub.M2 3, // 1: goproto.protoc.import_public.sub.extension_field:extendee -> goproto.protoc.import_public.sub.M 2, // [2:2] is the sub-list for method output_type 2, // [2:2] is the sub-list for method input_type 2, // [2:2] is the sub-list for extension type_name 1, // [1:2] is the sub-list for extension extendee 0, // [0:1] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_init() } func file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_init() { if File_cmd_protoc_gen_go_testdata_import_public_sub_a_proto != nil { return } file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_init() if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*M); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*M_Submessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_msgTypes[0].OneofWrappers = []interface{}{ (*M_OneofInt32)(nil), (*M_OneofInt64)(nil), } file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_msgTypes[1].OneofWrappers = []interface{}{ (*M_Submessage_SubmessageOneofInt32)(nil), (*M_Submessage_SubmessageOneofInt64)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_rawDesc, NumEnums: 3, NumMessages: 2, NumExtensions: 1, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_depIdxs, EnumInfos: file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_enumTypes, MessageInfos: file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_msgTypes, ExtensionInfos: file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_extTypes, }.Build() File_cmd_protoc_gen_go_testdata_import_public_sub_a_proto = out.File file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_import_public_sub_a_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/import_public/sub/a.proto000066400000000000000000000021561411250152500301630ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.protoc.import_public.sub; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/import_public/sub"; import "cmd/protoc-gen-go/testdata/import_public/sub/b.proto"; import public "cmd/protoc-gen-go/testdata/import_public/sub2/a.proto"; message M { // Field using a type in the same Go package, but a different source file. optional M2 m2 = 1; optional string s = 4 [default="default"]; optional bytes b = 5 [default="default"]; optional double f = 6 [default=nan]; oneof oneof_field { int32 oneof_int32 = 2; int64 oneof_int64 = 3; } message Submessage { enum Submessage_Subenum { M_SUBMESSAGE_ZERO = 0; } oneof submessage_oneof_field { int32 submessage_oneof_int32 = 1; int64 submessage_oneof_int64 = 2; } } enum Subenum { M_ZERO = 0; } extensions 100 to max; } extend M { optional string extension_field = 100; } enum E { ZERO = 0; } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/import_public/sub/b.pb.go000066400000000000000000000123111411250152500300200ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/import_public/sub/b.proto package sub import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type M2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *M2) Reset() { *x = M2{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *M2) String() string { return protoimpl.X.MessageStringOf(x) } func (*M2) ProtoMessage() {} func (x *M2) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use M2.ProtoReflect.Descriptor instead. func (*M2) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_rawDescGZIP(), []int{0} } var File_cmd_protoc_gen_go_testdata_import_public_sub_b_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_rawDesc = []byte{ 0x0a, 0x34, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x73, 0x75, 0x62, 0x2f, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x73, 0x75, 0x62, 0x22, 0x04, 0x0a, 0x02, 0x4d, 0x32, 0x42, 0x49, 0x5a, 0x47, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x73, 0x75, 0x62, } var ( file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_rawDescData = file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_goTypes = []interface{}{ (*M2)(nil), // 0: goproto.protoc.import_public.sub.M2 } var file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_init() } func file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_init() { if File_cmd_protoc_gen_go_testdata_import_public_sub_b_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*M2); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_depIdxs, MessageInfos: file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_import_public_sub_b_proto = out.File file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_import_public_sub_b_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/import_public/sub/b.proto000066400000000000000000000005161411250152500301620ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.protoc.import_public.sub; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/import_public/sub"; message M2 { } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/import_public/sub2/000077500000000000000000000000001411250152500267345ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/import_public/sub2/a.pb.go000066400000000000000000000126241411250152500301100ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/import_public/sub2/a.proto package sub2 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Sub2Message struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Sub2Message) Reset() { *x = Sub2Message{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Sub2Message) String() string { return protoimpl.X.MessageStringOf(x) } func (*Sub2Message) ProtoMessage() {} func (x *Sub2Message) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Sub2Message.ProtoReflect.Descriptor instead. func (*Sub2Message) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_rawDescGZIP(), []int{0} } var File_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_rawDesc = []byte{ 0x0a, 0x35, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x73, 0x75, 0x62, 0x32, 0x2f, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x21, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x73, 0x75, 0x62, 0x32, 0x22, 0x0d, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x4a, 0x5a, 0x48, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x73, 0x75, 0x62, 0x32, } var ( file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_rawDescData = file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_goTypes = []interface{}{ (*Sub2Message)(nil), // 0: goproto.protoc.import_public.sub2.Sub2Message } var file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_init() } func file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_init() { if File_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Sub2Message); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_depIdxs, MessageInfos: file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto = out.File file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_import_public_sub2_a_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/import_public/sub2/a.proto000066400000000000000000000005301411250152500302370ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.protoc.import_public.sub2; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/import_public/sub2"; message Sub2Message {} golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/000077500000000000000000000000001411250152500247065ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/fmt/000077500000000000000000000000001411250152500254745ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/fmt/m.pb.go000066400000000000000000000114451411250152500266640ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/imports/fmt/m.proto package fmt import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type M struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *M) Reset() { *x = M{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *M) String() string { return protoimpl.X.MessageStringOf(x) } func (*M) ProtoMessage() {} func (x *M) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use M.ProtoReflect.Descriptor instead. func (*M) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_rawDescGZIP(), []int{0} } var File_cmd_protoc_gen_go_testdata_imports_fmt_m_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_rawDesc = []byte{ 0x0a, 0x2e, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x66, 0x6d, 0x74, 0x2f, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x66, 0x6d, 0x74, 0x22, 0x03, 0x0a, 0x01, 0x4d, 0x42, 0x43, 0x5a, 0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x66, 0x6d, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_rawDescData = file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_goTypes = []interface{}{ (*M)(nil), // 0: fmt.M } var file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_init() } func file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_init() { if File_cmd_protoc_gen_go_testdata_imports_fmt_m_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*M); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_depIdxs, MessageInfos: file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_imports_fmt_m_proto = out.File file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_imports_fmt_m_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/fmt/m.proto000066400000000000000000000004461411250152500270210ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package fmt; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/imports/fmt"; message M {} golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/test_a_1/000077500000000000000000000000001411250152500264055ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/test_a_1/m1.pb.go000066400000000000000000000177401411250152500276620ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/imports/test_a_1/m1.proto package test_a_1 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type E1 int32 const ( E1_E1_ZERO E1 = 0 ) // Enum value maps for E1. var ( E1_name = map[int32]string{ 0: "E1_ZERO", } E1_value = map[string]int32{ "E1_ZERO": 0, } ) func (x E1) Enum() *E1 { p := new(E1) *p = x return p } func (x E1) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (E1) Descriptor() protoreflect.EnumDescriptor { return file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_enumTypes[0].Descriptor() } func (E1) Type() protoreflect.EnumType { return &file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_enumTypes[0] } func (x E1) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use E1.Descriptor instead. func (E1) EnumDescriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_rawDescGZIP(), []int{0} } type M1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *M1) Reset() { *x = M1{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *M1) String() string { return protoimpl.X.MessageStringOf(x) } func (*M1) ProtoMessage() {} func (x *M1) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use M1.ProtoReflect.Descriptor instead. func (*M1) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_rawDescGZIP(), []int{0} } type M1_1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields M1 *M1 `protobuf:"bytes,1,opt,name=m1,proto3" json:"m1,omitempty"` } func (x *M1_1) Reset() { *x = M1_1{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *M1_1) String() string { return protoimpl.X.MessageStringOf(x) } func (*M1_1) ProtoMessage() {} func (x *M1_1) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use M1_1.ProtoReflect.Descriptor instead. func (*M1_1) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_rawDescGZIP(), []int{1} } func (x *M1_1) GetM1() *M1 { if x != nil { return x.M1 } return nil } var File_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_rawDesc = []byte{ 0x0a, 0x34, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x5f, 0x31, 0x2f, 0x6d, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x61, 0x22, 0x04, 0x0a, 0x02, 0x4d, 0x31, 0x22, 0x22, 0x0a, 0x04, 0x4d, 0x31, 0x5f, 0x31, 0x12, 0x1a, 0x0a, 0x02, 0x6d, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x61, 0x2e, 0x4d, 0x31, 0x52, 0x02, 0x6d, 0x31, 0x2a, 0x11, 0x0a, 0x02, 0x45, 0x31, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x31, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x42, 0x48, 0x5a, 0x46, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x5f, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_rawDescData = file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_msgTypes = make([]protoimpl.MessageInfo, 2) var file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_goTypes = []interface{}{ (E1)(0), // 0: test.a.E1 (*M1)(nil), // 1: test.a.M1 (*M1_1)(nil), // 2: test.a.M1_1 } var file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_depIdxs = []int32{ 1, // 0: test.a.M1_1.m1:type_name -> test.a.M1 1, // [1:1] is the sub-list for method output_type 1, // [1:1] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name 1, // [1:1] is the sub-list for extension extendee 0, // [0:1] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_init() } func file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_init() { if File_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*M1); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*M1_1); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_rawDesc, NumEnums: 1, NumMessages: 2, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_depIdxs, EnumInfos: file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_enumTypes, MessageInfos: file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto = out.File file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_imports_test_a_1_m1_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/test_a_1/m1.proto000066400000000000000000000005531411250152500300120ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package test.a; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/imports/test_a_1"; message M1 {} message M1_1 { M1 m1 = 1; } enum E1 { E1_ZERO = 0; } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/test_a_1/m2.pb.go000066400000000000000000000121011411250152500276450ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/imports/test_a_1/m2.proto package test_a_1 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type M2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *M2) Reset() { *x = M2{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *M2) String() string { return protoimpl.X.MessageStringOf(x) } func (*M2) ProtoMessage() {} func (x *M2) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use M2.ProtoReflect.Descriptor instead. func (*M2) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_rawDescGZIP(), []int{0} } var File_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_rawDesc = []byte{ 0x0a, 0x34, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x5f, 0x31, 0x2f, 0x6d, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x61, 0x22, 0x04, 0x0a, 0x02, 0x4d, 0x32, 0x42, 0x48, 0x5a, 0x46, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x5f, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_rawDescData = file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_goTypes = []interface{}{ (*M2)(nil), // 0: test.a.M2 } var file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_init() } func file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_init() { if File_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*M2); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_depIdxs, MessageInfos: file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto = out.File file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_imports_test_a_1_m2_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/test_a_1/m2.proto000066400000000000000000000004571411250152500300160ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package test.a; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/imports/test_a_1"; message M2 {} golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/test_a_2/000077500000000000000000000000001411250152500264065ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/test_a_2/m3.pb.go000066400000000000000000000121011411250152500276470ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/imports/test_a_2/m3.proto package test_a_2 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type M3 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *M3) Reset() { *x = M3{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *M3) String() string { return protoimpl.X.MessageStringOf(x) } func (*M3) ProtoMessage() {} func (x *M3) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use M3.ProtoReflect.Descriptor instead. func (*M3) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_rawDescGZIP(), []int{0} } var File_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_rawDesc = []byte{ 0x0a, 0x34, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x5f, 0x32, 0x2f, 0x6d, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x61, 0x22, 0x04, 0x0a, 0x02, 0x4d, 0x33, 0x42, 0x48, 0x5a, 0x46, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x5f, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_rawDescData = file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_goTypes = []interface{}{ (*M3)(nil), // 0: test.a.M3 } var file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_init() } func file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_init() { if File_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*M3); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_depIdxs, MessageInfos: file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto = out.File file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_imports_test_a_2_m3_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/test_a_2/m3.proto000066400000000000000000000004571411250152500300200ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package test.a; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/imports/test_a_2"; message M3 {} golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/test_a_2/m4.pb.go000066400000000000000000000121011411250152500276500ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/imports/test_a_2/m4.proto package test_a_2 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type M4 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *M4) Reset() { *x = M4{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *M4) String() string { return protoimpl.X.MessageStringOf(x) } func (*M4) ProtoMessage() {} func (x *M4) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use M4.ProtoReflect.Descriptor instead. func (*M4) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_rawDescGZIP(), []int{0} } var File_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_rawDesc = []byte{ 0x0a, 0x34, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x5f, 0x32, 0x2f, 0x6d, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x61, 0x22, 0x04, 0x0a, 0x02, 0x4d, 0x34, 0x42, 0x48, 0x5a, 0x46, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x5f, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_rawDescData = file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_goTypes = []interface{}{ (*M4)(nil), // 0: test.a.M4 } var file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_init() } func file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_init() { if File_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*M4); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_depIdxs, MessageInfos: file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto = out.File file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_imports_test_a_2_m4_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/test_a_2/m4.proto000066400000000000000000000004571411250152500300210ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package test.a; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/imports/test_a_2"; message M4 {} golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/test_b_1/000077500000000000000000000000001411250152500264065ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/test_b_1/m1.pb.go000066400000000000000000000122061411250152500276530ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/imports/test_b_1/m1.proto package beta import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type M1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *M1) Reset() { *x = M1{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *M1) String() string { return protoimpl.X.MessageStringOf(x) } func (*M1) ProtoMessage() {} func (x *M1) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use M1.ProtoReflect.Descriptor instead. func (*M1) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_rawDescGZIP(), []int{0} } var File_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_rawDesc = []byte{ 0x0a, 0x34, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x5f, 0x31, 0x2f, 0x6d, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x62, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x31, 0x22, 0x04, 0x0a, 0x02, 0x4d, 0x31, 0x42, 0x4d, 0x5a, 0x4b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x5f, 0x31, 0x3b, 0x62, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_rawDescData = file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_goTypes = []interface{}{ (*M1)(nil), // 0: test.b.part1.M1 } var file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_init() } func file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_init() { if File_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*M1); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_depIdxs, MessageInfos: file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto = out.File file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_imports_test_b_1_m1_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/test_b_1/m1.proto000066400000000000000000000004721411250152500300130ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package test.b.part1; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/imports/test_b_1;beta"; message M1 {} golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/test_b_1/m2.pb.go000066400000000000000000000122061411250152500276540ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/imports/test_b_1/m2.proto package beta import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type M2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *M2) Reset() { *x = M2{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *M2) String() string { return protoimpl.X.MessageStringOf(x) } func (*M2) ProtoMessage() {} func (x *M2) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use M2.ProtoReflect.Descriptor instead. func (*M2) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_rawDescGZIP(), []int{0} } var File_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_rawDesc = []byte{ 0x0a, 0x34, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x5f, 0x31, 0x2f, 0x6d, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x62, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x32, 0x22, 0x04, 0x0a, 0x02, 0x4d, 0x32, 0x42, 0x4d, 0x5a, 0x4b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x5f, 0x31, 0x3b, 0x62, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_rawDescData = file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_goTypes = []interface{}{ (*M2)(nil), // 0: test.b.part2.M2 } var file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_init() } func file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_init() { if File_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*M2); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_depIdxs, MessageInfos: file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto = out.File file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_imports_test_b_1_m2_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/test_b_1/m2.proto000066400000000000000000000004721411250152500300140ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package test.b.part2; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/imports/test_b_1;beta"; message M2 {} golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/test_import_a1m1.pb.go000066400000000000000000000137751411250152500310420ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/imports/test_import_a1m1.proto package imports import ( test_a_1 "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/imports/test_a_1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type A1M1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields F *test_a_1.M1 `protobuf:"bytes,1,opt,name=f,proto3" json:"f,omitempty"` } func (x *A1M1) Reset() { *x = A1M1{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *A1M1) String() string { return protoimpl.X.MessageStringOf(x) } func (*A1M1) ProtoMessage() {} func (x *A1M1) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use A1M1.ProtoReflect.Descriptor instead. func (*A1M1) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_rawDescGZIP(), []int{0} } func (x *A1M1) GetF() *test_a_1.M1 { if x != nil { return x.F } return nil } var File_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_rawDesc = []byte{ 0x0a, 0x39, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x31, 0x6d, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x74, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x5f, 0x31, 0x2f, 0x6d, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x20, 0x0a, 0x04, 0x41, 0x31, 0x4d, 0x31, 0x12, 0x18, 0x0a, 0x01, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x61, 0x2e, 0x4d, 0x31, 0x52, 0x01, 0x66, 0x42, 0x3f, 0x5a, 0x3d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_rawDescData = file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_goTypes = []interface{}{ (*A1M1)(nil), // 0: test.A1M1 (*test_a_1.M1)(nil), // 1: test.a.M1 } var file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_depIdxs = []int32{ 1, // 0: test.A1M1.f:type_name -> test.a.M1 1, // [1:1] is the sub-list for method output_type 1, // [1:1] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name 1, // [1:1] is the sub-list for extension extendee 0, // [0:1] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_init() } func file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_init() { if File_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*A1M1); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_depIdxs, MessageInfos: file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto = out.File file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_imports_test_import_a1m1_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/test_import_a1m1.proto000066400000000000000000000005751411250152500311720ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package test; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/imports"; import "cmd/protoc-gen-go/testdata/imports/test_a_1/m1.proto"; message A1M1 { test.a.M1 f = 1; } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/test_import_a1m2.pb.go000066400000000000000000000137751411250152500310430ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/imports/test_import_a1m2.proto package imports import ( test_a_1 "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/imports/test_a_1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type A1M2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields F *test_a_1.M2 `protobuf:"bytes,1,opt,name=f,proto3" json:"f,omitempty"` } func (x *A1M2) Reset() { *x = A1M2{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *A1M2) String() string { return protoimpl.X.MessageStringOf(x) } func (*A1M2) ProtoMessage() {} func (x *A1M2) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use A1M2.ProtoReflect.Descriptor instead. func (*A1M2) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_rawDescGZIP(), []int{0} } func (x *A1M2) GetF() *test_a_1.M2 { if x != nil { return x.F } return nil } var File_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_rawDesc = []byte{ 0x0a, 0x39, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x31, 0x6d, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x74, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x5f, 0x31, 0x2f, 0x6d, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x20, 0x0a, 0x04, 0x41, 0x31, 0x4d, 0x32, 0x12, 0x18, 0x0a, 0x01, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x61, 0x2e, 0x4d, 0x32, 0x52, 0x01, 0x66, 0x42, 0x3f, 0x5a, 0x3d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_rawDescData = file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_goTypes = []interface{}{ (*A1M2)(nil), // 0: test.A1M2 (*test_a_1.M2)(nil), // 1: test.a.M2 } var file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_depIdxs = []int32{ 1, // 0: test.A1M2.f:type_name -> test.a.M2 1, // [1:1] is the sub-list for method output_type 1, // [1:1] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name 1, // [1:1] is the sub-list for extension extendee 0, // [0:1] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_init() } func file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_init() { if File_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*A1M2); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_depIdxs, MessageInfos: file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto = out.File file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_imports_test_import_a1m2_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/test_import_a1m2.proto000066400000000000000000000005751411250152500311730ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package test; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/imports"; import "cmd/protoc-gen-go/testdata/imports/test_a_1/m2.proto"; message A1M2 { test.a.M2 f = 1; } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/test_import_all.pb.go000066400000000000000000000235341411250152500310450ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/imports/test_import_all.proto package imports import ( fmt "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/imports/fmt" test_a_1 "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/imports/test_a_1" _ "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/imports/test_a_2" test_b_1 "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/imports/test_b_1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type All struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Am1 *test_a_1.M1 `protobuf:"bytes,1,opt,name=am1,proto3" json:"am1,omitempty"` Am2 *test_a_1.M2 `protobuf:"bytes,2,opt,name=am2,proto3" json:"am2,omitempty"` Bm1 *test_b_1.M1 `protobuf:"bytes,5,opt,name=bm1,proto3" json:"bm1,omitempty"` Bm2 *test_b_1.M2 `protobuf:"bytes,6,opt,name=bm2,proto3" json:"bm2,omitempty"` Fmt *fmt.M `protobuf:"bytes,7,opt,name=fmt,proto3" json:"fmt,omitempty"` } func (x *All) Reset() { *x = All{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *All) String() string { return protoimpl.X.MessageStringOf(x) } func (*All) ProtoMessage() {} func (x *All) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use All.ProtoReflect.Descriptor instead. func (*All) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_rawDescGZIP(), []int{0} } func (x *All) GetAm1() *test_a_1.M1 { if x != nil { return x.Am1 } return nil } func (x *All) GetAm2() *test_a_1.M2 { if x != nil { return x.Am2 } return nil } func (x *All) GetBm1() *test_b_1.M1 { if x != nil { return x.Bm1 } return nil } func (x *All) GetBm2() *test_b_1.M2 { if x != nil { return x.Bm2 } return nil } func (x *All) GetFmt() *fmt.M { if x != nil { return x.Fmt } return nil } var File_cmd_protoc_gen_go_testdata_imports_test_import_all_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_rawDesc = []byte{ 0x0a, 0x38, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x74, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x5f, 0x31, 0x2f, 0x6d, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x34, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x5f, 0x31, 0x2f, 0x6d, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x34, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x5f, 0x32, 0x2f, 0x6d, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x34, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x5f, 0x32, 0x2f, 0x6d, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x34, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x5f, 0x31, 0x2f, 0x6d, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x34, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x5f, 0x31, 0x2f, 0x6d, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x66, 0x6d, 0x74, 0x2f, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa3, 0x01, 0x0a, 0x03, 0x41, 0x6c, 0x6c, 0x12, 0x1c, 0x0a, 0x03, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x61, 0x2e, 0x4d, 0x31, 0x52, 0x03, 0x61, 0x6d, 0x31, 0x12, 0x1c, 0x0a, 0x03, 0x61, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x61, 0x2e, 0x4d, 0x32, 0x52, 0x03, 0x61, 0x6d, 0x32, 0x12, 0x22, 0x0a, 0x03, 0x62, 0x6d, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x62, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x31, 0x2e, 0x4d, 0x31, 0x52, 0x03, 0x62, 0x6d, 0x31, 0x12, 0x22, 0x0a, 0x03, 0x62, 0x6d, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x62, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x32, 0x2e, 0x4d, 0x32, 0x52, 0x03, 0x62, 0x6d, 0x32, 0x12, 0x18, 0x0a, 0x03, 0x66, 0x6d, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x66, 0x6d, 0x74, 0x2e, 0x4d, 0x52, 0x03, 0x66, 0x6d, 0x74, 0x42, 0x3f, 0x5a, 0x3d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_rawDescData = file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_goTypes = []interface{}{ (*All)(nil), // 0: test.All (*test_a_1.M1)(nil), // 1: test.a.M1 (*test_a_1.M2)(nil), // 2: test.a.M2 (*test_b_1.M1)(nil), // 3: test.b.part1.M1 (*test_b_1.M2)(nil), // 4: test.b.part2.M2 (*fmt.M)(nil), // 5: fmt.M } var file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_depIdxs = []int32{ 1, // 0: test.All.am1:type_name -> test.a.M1 2, // 1: test.All.am2:type_name -> test.a.M2 3, // 2: test.All.bm1:type_name -> test.b.part1.M1 4, // 3: test.All.bm2:type_name -> test.b.part2.M2 5, // 4: test.All.fmt:type_name -> fmt.M 5, // [5:5] is the sub-list for method output_type 5, // [5:5] is the sub-list for method input_type 5, // [5:5] is the sub-list for extension type_name 5, // [5:5] is the sub-list for extension extendee 0, // [0:5] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_init() } func file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_init() { if File_cmd_protoc_gen_go_testdata_imports_test_import_all_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*All); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_depIdxs, MessageInfos: file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_imports_test_import_all_proto = out.File file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_imports_test_import_all_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/imports/test_import_all.proto000066400000000000000000000022311411250152500311720ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package test; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/imports"; // test_a_1/m*.proto are in the same Go package and proto package. // test_a_*/*.proto are in different Go packages, but the same proto package. // test_b_1/*.proto are in the same Go package, but different proto packages. // fmt/m.proto has a package name which conflicts with "fmt". import "cmd/protoc-gen-go/testdata/imports/test_a_1/m1.proto"; import "cmd/protoc-gen-go/testdata/imports/test_a_1/m2.proto"; import "cmd/protoc-gen-go/testdata/imports/test_a_2/m3.proto"; // unused in this file import "cmd/protoc-gen-go/testdata/imports/test_a_2/m4.proto"; // unused in this file import "cmd/protoc-gen-go/testdata/imports/test_b_1/m1.proto"; import "cmd/protoc-gen-go/testdata/imports/test_b_1/m2.proto"; import "cmd/protoc-gen-go/testdata/imports/fmt/m.proto"; message All { test.a.M1 am1 = 1; test.a.M2 am2 = 2; test.b.part1.M1 bm1 = 5; test.b.part2.M2 bm2 = 6; fmt.M fmt = 7; } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/issue780_oneof_conflict/000077500000000000000000000000001411250152500276475ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/issue780_oneof_conflict/test.pb.go000066400000000000000000000143251411250152500315620ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/issue780_oneof_conflict/test.proto package issue780_oneof_conflict import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Foo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to Bar: // *Foo_GetBar Bar isFoo_Bar `protobuf_oneof:"bar"` } func (x *Foo) Reset() { *x = Foo{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Foo) String() string { return protoimpl.X.MessageStringOf(x) } func (*Foo) ProtoMessage() {} func (x *Foo) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Foo.ProtoReflect.Descriptor instead. func (*Foo) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_rawDescGZIP(), []int{0} } func (m *Foo) GetBar() isFoo_Bar { if m != nil { return m.Bar } return nil } func (x *Foo) GetGetBar() string { if x, ok := x.GetBar().(*Foo_GetBar); ok { return x.GetBar } return "" } type isFoo_Bar interface { isFoo_Bar() } type Foo_GetBar struct { GetBar string `protobuf:"bytes,1,opt,name=get_bar,json=getBar,oneof"` } func (*Foo_GetBar) isFoo_Bar() {} var File_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_rawDesc = []byte{ 0x0a, 0x3d, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x37, 0x38, 0x30, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x74, 0x65, 0x73, 0x74, 0x22, 0x27, 0x0a, 0x03, 0x46, 0x6f, 0x6f, 0x12, 0x19, 0x0a, 0x07, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x67, 0x65, 0x74, 0x42, 0x61, 0x72, 0x42, 0x05, 0x0a, 0x03, 0x62, 0x61, 0x72, 0x42, 0x4f, 0x5a, 0x4d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x37, 0x38, 0x30, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, } var ( file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_rawDescData = file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_goTypes = []interface{}{ (*Foo)(nil), // 0: oneoftest.Foo } var file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_init() } func file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_init() { if File_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Foo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_msgTypes[0].OneofWrappers = []interface{}{ (*Foo_GetBar)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_depIdxs, MessageInfos: file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto = out.File file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_issue780_oneof_conflict_test_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/issue780_oneof_conflict/test.proto000066400000000000000000000006241411250152500317150ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package oneoftest; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/issue780_oneof_conflict"; message Foo { oneof bar { // must be generated as Bar field in Foo struct string get_bar = 1; } } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/nopackage/000077500000000000000000000000001411250152500251415ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/nopackage/nopackage.pb.go000066400000000000000000000161441411250152500300260ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/nopackage/nopackage.proto package nopackage import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Enum int32 const ( Enum_ZERO Enum = 0 ) // Enum value maps for Enum. var ( Enum_name = map[int32]string{ 0: "ZERO", } Enum_value = map[string]int32{ "ZERO": 0, } ) func (x Enum) Enum() *Enum { p := new(Enum) *p = x return p } func (x Enum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum) Descriptor() protoreflect.EnumDescriptor { return file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_enumTypes[0].Descriptor() } func (Enum) Type() protoreflect.EnumType { return &file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_enumTypes[0] } func (x Enum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum(num) return nil } // Deprecated: Use Enum.Descriptor instead. func (Enum) EnumDescriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_rawDescGZIP(), []int{0} } type Message struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StringField *string `protobuf:"bytes,1,opt,name=string_field,json=stringField" json:"string_field,omitempty"` EnumField *Enum `protobuf:"varint,2,opt,name=enum_field,json=enumField,enum=Enum,def=0" json:"enum_field,omitempty"` } // Default values for Message fields. const ( Default_Message_EnumField = Enum_ZERO ) func (x *Message) Reset() { *x = Message{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message) ProtoMessage() {} func (x *Message) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message.ProtoReflect.Descriptor instead. func (*Message) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_rawDescGZIP(), []int{0} } func (x *Message) GetStringField() string { if x != nil && x.StringField != nil { return *x.StringField } return "" } func (x *Message) GetEnumField() Enum { if x != nil && x.EnumField != nil { return *x.EnumField } return Default_Message_EnumField } var File_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_rawDesc = []byte{ 0x0a, 0x34, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x6e, 0x6f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2f, 0x6e, 0x6f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x58, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x2a, 0x0a, 0x0a, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x05, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x04, 0x5a, 0x45, 0x52, 0x4f, 0x52, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x2a, 0x10, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x08, 0x0a, 0x04, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, } var ( file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_rawDescData = file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_goTypes = []interface{}{ (Enum)(0), // 0: Enum (*Message)(nil), // 1: Message } var file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_depIdxs = []int32{ 0, // 0: Message.enum_field:type_name -> Enum 1, // [1:1] is the sub-list for method output_type 1, // [1:1] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name 1, // [1:1] is the sub-list for extension extendee 0, // [0:1] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_init() } func file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_init() { if File_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_rawDesc, NumEnums: 1, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_depIdxs, EnumInfos: file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_enumTypes, MessageInfos: file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto = out.File file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_nopackage_nopackage_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/nopackage/nopackage.proto000066400000000000000000000005441411250152500301610ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; // File contains no 'package' statement. enum Enum { ZERO = 0; } message Message { optional string string_field = 1; optional Enum enum_field = 2 [default=ZERO]; } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/proto2/000077500000000000000000000000001411250152500244365ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/proto2/enum.pb.go000066400000000000000000000533601411250152500263400ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/proto2/enum.proto package proto2 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) // EnumType1 comment. type EnumType1 int32 const ( // EnumType1_ONE comment. EnumType1_ONE EnumType1 = 1 // EnumType1_TWO comment. EnumType1_TWO EnumType1 = 2 ) // Enum value maps for EnumType1. var ( EnumType1_name = map[int32]string{ 1: "ONE", 2: "TWO", } EnumType1_value = map[string]int32{ "ONE": 1, "TWO": 2, } ) func (x EnumType1) Enum() *EnumType1 { p := new(EnumType1) *p = x return p } func (x EnumType1) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (EnumType1) Descriptor() protoreflect.EnumDescriptor { return file_cmd_protoc_gen_go_testdata_proto2_enum_proto_enumTypes[0].Descriptor() } func (EnumType1) Type() protoreflect.EnumType { return &file_cmd_protoc_gen_go_testdata_proto2_enum_proto_enumTypes[0] } func (x EnumType1) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *EnumType1) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = EnumType1(num) return nil } // Deprecated: Use EnumType1.Descriptor instead. func (EnumType1) EnumDescriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_proto2_enum_proto_rawDescGZIP(), []int{0} } type EnumType2 int32 const ( EnumType2_duplicate1 EnumType2 = 1 EnumType2_duplicate2 EnumType2 = 1 ) // Enum value maps for EnumType2. var ( EnumType2_name = map[int32]string{ 1: "duplicate1", // Duplicate value: 1: "duplicate2", } EnumType2_value = map[string]int32{ "duplicate1": 1, "duplicate2": 1, } ) func (x EnumType2) Enum() *EnumType2 { p := new(EnumType2) *p = x return p } func (x EnumType2) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (EnumType2) Descriptor() protoreflect.EnumDescriptor { return file_cmd_protoc_gen_go_testdata_proto2_enum_proto_enumTypes[1].Descriptor() } func (EnumType2) Type() protoreflect.EnumType { return &file_cmd_protoc_gen_go_testdata_proto2_enum_proto_enumTypes[1] } func (x EnumType2) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *EnumType2) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = EnumType2(num) return nil } // Deprecated: Use EnumType2.Descriptor instead. func (EnumType2) EnumDescriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_proto2_enum_proto_rawDescGZIP(), []int{1} } // NestedEnumType1A comment. type EnumContainerMessage1_NestedEnumType1A int32 const ( // NestedEnumType1A_VALUE comment. EnumContainerMessage1_NESTED_1A_VALUE EnumContainerMessage1_NestedEnumType1A = 0 ) // Enum value maps for EnumContainerMessage1_NestedEnumType1A. var ( EnumContainerMessage1_NestedEnumType1A_name = map[int32]string{ 0: "NESTED_1A_VALUE", } EnumContainerMessage1_NestedEnumType1A_value = map[string]int32{ "NESTED_1A_VALUE": 0, } ) func (x EnumContainerMessage1_NestedEnumType1A) Enum() *EnumContainerMessage1_NestedEnumType1A { p := new(EnumContainerMessage1_NestedEnumType1A) *p = x return p } func (x EnumContainerMessage1_NestedEnumType1A) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (EnumContainerMessage1_NestedEnumType1A) Descriptor() protoreflect.EnumDescriptor { return file_cmd_protoc_gen_go_testdata_proto2_enum_proto_enumTypes[2].Descriptor() } func (EnumContainerMessage1_NestedEnumType1A) Type() protoreflect.EnumType { return &file_cmd_protoc_gen_go_testdata_proto2_enum_proto_enumTypes[2] } func (x EnumContainerMessage1_NestedEnumType1A) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *EnumContainerMessage1_NestedEnumType1A) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = EnumContainerMessage1_NestedEnumType1A(num) return nil } // Deprecated: Use EnumContainerMessage1_NestedEnumType1A.Descriptor instead. func (EnumContainerMessage1_NestedEnumType1A) EnumDescriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_proto2_enum_proto_rawDescGZIP(), []int{0, 0} } type EnumContainerMessage1_NestedEnumType1B int32 const ( EnumContainerMessage1_NESTED_1B_VALUE EnumContainerMessage1_NestedEnumType1B = 0 ) // Enum value maps for EnumContainerMessage1_NestedEnumType1B. var ( EnumContainerMessage1_NestedEnumType1B_name = map[int32]string{ 0: "NESTED_1B_VALUE", } EnumContainerMessage1_NestedEnumType1B_value = map[string]int32{ "NESTED_1B_VALUE": 0, } ) func (x EnumContainerMessage1_NestedEnumType1B) Enum() *EnumContainerMessage1_NestedEnumType1B { p := new(EnumContainerMessage1_NestedEnumType1B) *p = x return p } func (x EnumContainerMessage1_NestedEnumType1B) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (EnumContainerMessage1_NestedEnumType1B) Descriptor() protoreflect.EnumDescriptor { return file_cmd_protoc_gen_go_testdata_proto2_enum_proto_enumTypes[3].Descriptor() } func (EnumContainerMessage1_NestedEnumType1B) Type() protoreflect.EnumType { return &file_cmd_protoc_gen_go_testdata_proto2_enum_proto_enumTypes[3] } func (x EnumContainerMessage1_NestedEnumType1B) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *EnumContainerMessage1_NestedEnumType1B) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = EnumContainerMessage1_NestedEnumType1B(num) return nil } // Deprecated: Use EnumContainerMessage1_NestedEnumType1B.Descriptor instead. func (EnumContainerMessage1_NestedEnumType1B) EnumDescriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_proto2_enum_proto_rawDescGZIP(), []int{0, 1} } // NestedEnumType2A comment. type EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2A int32 const ( // NestedEnumType2A_VALUE comment. EnumContainerMessage1_EnumContainerMessage2_NESTED_2A_VALUE EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2A = 0 ) // Enum value maps for EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2A. var ( EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2A_name = map[int32]string{ 0: "NESTED_2A_VALUE", } EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2A_value = map[string]int32{ "NESTED_2A_VALUE": 0, } ) func (x EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2A) Enum() *EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2A { p := new(EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2A) *p = x return p } func (x EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2A) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2A) Descriptor() protoreflect.EnumDescriptor { return file_cmd_protoc_gen_go_testdata_proto2_enum_proto_enumTypes[4].Descriptor() } func (EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2A) Type() protoreflect.EnumType { return &file_cmd_protoc_gen_go_testdata_proto2_enum_proto_enumTypes[4] } func (x EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2A) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2A) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2A(num) return nil } // Deprecated: Use EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2A.Descriptor instead. func (EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2A) EnumDescriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_proto2_enum_proto_rawDescGZIP(), []int{0, 0, 0} } type EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2B int32 const ( EnumContainerMessage1_EnumContainerMessage2_NESTED_2B_VALUE EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2B = 0 ) // Enum value maps for EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2B. var ( EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2B_name = map[int32]string{ 0: "NESTED_2B_VALUE", } EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2B_value = map[string]int32{ "NESTED_2B_VALUE": 0, } ) func (x EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2B) Enum() *EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2B { p := new(EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2B) *p = x return p } func (x EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2B) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2B) Descriptor() protoreflect.EnumDescriptor { return file_cmd_protoc_gen_go_testdata_proto2_enum_proto_enumTypes[5].Descriptor() } func (EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2B) Type() protoreflect.EnumType { return &file_cmd_protoc_gen_go_testdata_proto2_enum_proto_enumTypes[5] } func (x EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2B) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2B) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2B(num) return nil } // Deprecated: Use EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2B.Descriptor instead. func (EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2B) EnumDescriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_proto2_enum_proto_rawDescGZIP(), []int{0, 0, 1} } type EnumContainerMessage1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DefaultDuplicate1 *EnumType2 `protobuf:"varint,1,opt,name=default_duplicate1,json=defaultDuplicate1,enum=goproto.protoc.proto2.EnumType2,def=1" json:"default_duplicate1,omitempty"` DefaultDuplicate2 *EnumType2 `protobuf:"varint,2,opt,name=default_duplicate2,json=defaultDuplicate2,enum=goproto.protoc.proto2.EnumType2,def=1" json:"default_duplicate2,omitempty"` } // Default values for EnumContainerMessage1 fields. const ( Default_EnumContainerMessage1_DefaultDuplicate1 = EnumType2_duplicate1 Default_EnumContainerMessage1_DefaultDuplicate2 = EnumType2_duplicate2 ) func (x *EnumContainerMessage1) Reset() { *x = EnumContainerMessage1{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_proto2_enum_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EnumContainerMessage1) String() string { return protoimpl.X.MessageStringOf(x) } func (*EnumContainerMessage1) ProtoMessage() {} func (x *EnumContainerMessage1) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_proto2_enum_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use EnumContainerMessage1.ProtoReflect.Descriptor instead. func (*EnumContainerMessage1) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_proto2_enum_proto_rawDescGZIP(), []int{0} } func (x *EnumContainerMessage1) GetDefaultDuplicate1() EnumType2 { if x != nil && x.DefaultDuplicate1 != nil { return *x.DefaultDuplicate1 } return Default_EnumContainerMessage1_DefaultDuplicate1 } func (x *EnumContainerMessage1) GetDefaultDuplicate2() EnumType2 { if x != nil && x.DefaultDuplicate2 != nil { return *x.DefaultDuplicate2 } return Default_EnumContainerMessage1_DefaultDuplicate2 } type EnumContainerMessage1_EnumContainerMessage2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *EnumContainerMessage1_EnumContainerMessage2) Reset() { *x = EnumContainerMessage1_EnumContainerMessage2{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_proto2_enum_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EnumContainerMessage1_EnumContainerMessage2) String() string { return protoimpl.X.MessageStringOf(x) } func (*EnumContainerMessage1_EnumContainerMessage2) ProtoMessage() {} func (x *EnumContainerMessage1_EnumContainerMessage2) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_proto2_enum_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use EnumContainerMessage1_EnumContainerMessage2.ProtoReflect.Descriptor instead. func (*EnumContainerMessage1_EnumContainerMessage2) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_proto2_enum_proto_rawDescGZIP(), []int{0, 0} } var File_cmd_protoc_gen_go_testdata_proto2_enum_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_proto2_enum_proto_rawDesc = []byte{ 0x0a, 0x2c, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2f, 0x65, 0x6e, 0x75, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x22, 0x8e, 0x03, 0x0a, 0x15, 0x45, 0x6e, 0x75, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x12, 0x5b, 0x0a, 0x12, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x32, 0x3a, 0x0a, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x31, 0x52, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x31, 0x12, 0x5b, 0x0a, 0x12, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x32, 0x3a, 0x0a, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x32, 0x52, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x32, 0x1a, 0x69, 0x0a, 0x15, 0x45, 0x6e, 0x75, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x22, 0x27, 0x0a, 0x10, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x32, 0x41, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x45, 0x53, 0x54, 0x45, 0x44, 0x5f, 0x32, 0x41, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x00, 0x22, 0x27, 0x0a, 0x10, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x32, 0x42, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x45, 0x53, 0x54, 0x45, 0x44, 0x5f, 0x32, 0x42, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x00, 0x22, 0x27, 0x0a, 0x10, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x31, 0x41, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x45, 0x53, 0x54, 0x45, 0x44, 0x5f, 0x31, 0x41, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x00, 0x22, 0x27, 0x0a, 0x10, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x31, 0x42, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x45, 0x53, 0x54, 0x45, 0x44, 0x5f, 0x31, 0x42, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x00, 0x2a, 0x1d, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x31, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x57, 0x4f, 0x10, 0x02, 0x2a, 0x51, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x32, 0x12, 0x0e, 0x0a, 0x0a, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x31, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x32, 0x10, 0x01, 0x1a, 0x02, 0x10, 0x01, 0x22, 0x04, 0x08, 0x02, 0x10, 0x02, 0x22, 0x04, 0x08, 0x03, 0x10, 0x03, 0x2a, 0x09, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x31, 0x2a, 0x09, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x32, 0x42, 0x3e, 0x5a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, } var ( file_cmd_protoc_gen_go_testdata_proto2_enum_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_proto2_enum_proto_rawDescData = file_cmd_protoc_gen_go_testdata_proto2_enum_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_proto2_enum_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_proto2_enum_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_proto2_enum_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_proto2_enum_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_proto2_enum_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_proto2_enum_proto_enumTypes = make([]protoimpl.EnumInfo, 6) var file_cmd_protoc_gen_go_testdata_proto2_enum_proto_msgTypes = make([]protoimpl.MessageInfo, 2) var file_cmd_protoc_gen_go_testdata_proto2_enum_proto_goTypes = []interface{}{ (EnumType1)(0), // 0: goproto.protoc.proto2.EnumType1 (EnumType2)(0), // 1: goproto.protoc.proto2.EnumType2 (EnumContainerMessage1_NestedEnumType1A)(0), // 2: goproto.protoc.proto2.EnumContainerMessage1.NestedEnumType1A (EnumContainerMessage1_NestedEnumType1B)(0), // 3: goproto.protoc.proto2.EnumContainerMessage1.NestedEnumType1B (EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2A)(0), // 4: goproto.protoc.proto2.EnumContainerMessage1.EnumContainerMessage2.NestedEnumType2A (EnumContainerMessage1_EnumContainerMessage2_NestedEnumType2B)(0), // 5: goproto.protoc.proto2.EnumContainerMessage1.EnumContainerMessage2.NestedEnumType2B (*EnumContainerMessage1)(nil), // 6: goproto.protoc.proto2.EnumContainerMessage1 (*EnumContainerMessage1_EnumContainerMessage2)(nil), // 7: goproto.protoc.proto2.EnumContainerMessage1.EnumContainerMessage2 } var file_cmd_protoc_gen_go_testdata_proto2_enum_proto_depIdxs = []int32{ 1, // 0: goproto.protoc.proto2.EnumContainerMessage1.default_duplicate1:type_name -> goproto.protoc.proto2.EnumType2 1, // 1: goproto.protoc.proto2.EnumContainerMessage1.default_duplicate2:type_name -> goproto.protoc.proto2.EnumType2 2, // [2:2] is the sub-list for method output_type 2, // [2:2] is the sub-list for method input_type 2, // [2:2] is the sub-list for extension type_name 2, // [2:2] is the sub-list for extension extendee 0, // [0:2] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_proto2_enum_proto_init() } func file_cmd_protoc_gen_go_testdata_proto2_enum_proto_init() { if File_cmd_protoc_gen_go_testdata_proto2_enum_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_proto2_enum_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EnumContainerMessage1); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd_protoc_gen_go_testdata_proto2_enum_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EnumContainerMessage1_EnumContainerMessage2); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_proto2_enum_proto_rawDesc, NumEnums: 6, NumMessages: 2, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_proto2_enum_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_proto2_enum_proto_depIdxs, EnumInfos: file_cmd_protoc_gen_go_testdata_proto2_enum_proto_enumTypes, MessageInfos: file_cmd_protoc_gen_go_testdata_proto2_enum_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_proto2_enum_proto = out.File file_cmd_protoc_gen_go_testdata_proto2_enum_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_proto2_enum_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_proto2_enum_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/proto2/enum.proto000066400000000000000000000022001411250152500264610ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.protoc.proto2; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/proto2"; // EnumType1 comment. enum EnumType1 { // EnumType1_ONE comment. ONE = 1; // EnumType1_TWO comment. TWO = 2; } enum EnumType2 { option allow_alias = true; duplicate1 = 1; duplicate2 = 1; reserved "RESERVED1"; reserved "RESERVED2"; reserved 2, 3; } message EnumContainerMessage1 { optional EnumType2 default_duplicate1 = 1 [default=duplicate1]; optional EnumType2 default_duplicate2 = 2 [default=duplicate2]; // NestedEnumType1A comment. enum NestedEnumType1A { // NestedEnumType1A_VALUE comment. NESTED_1A_VALUE = 0; } enum NestedEnumType1B { NESTED_1B_VALUE = 0; } message EnumContainerMessage2 { // NestedEnumType2A comment. enum NestedEnumType2A { // NestedEnumType2A_VALUE comment. NESTED_2A_VALUE = 0; } enum NestedEnumType2B { NESTED_2B_VALUE = 0; } } } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/proto2/fields.pb.go000066400000000000000000002622151411250152500266430ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/proto2/fields.proto package proto2 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" math "math" reflect "reflect" sync "sync" ) type FieldTestMessage_Enum int32 const ( FieldTestMessage_ZERO FieldTestMessage_Enum = 0 FieldTestMessage_ONE FieldTestMessage_Enum = 1 ) // Enum value maps for FieldTestMessage_Enum. var ( FieldTestMessage_Enum_name = map[int32]string{ 0: "ZERO", 1: "ONE", } FieldTestMessage_Enum_value = map[string]int32{ "ZERO": 0, "ONE": 1, } ) func (x FieldTestMessage_Enum) Enum() *FieldTestMessage_Enum { p := new(FieldTestMessage_Enum) *p = x return p } func (x FieldTestMessage_Enum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (FieldTestMessage_Enum) Descriptor() protoreflect.EnumDescriptor { return file_cmd_protoc_gen_go_testdata_proto2_fields_proto_enumTypes[0].Descriptor() } func (FieldTestMessage_Enum) Type() protoreflect.EnumType { return &file_cmd_protoc_gen_go_testdata_proto2_fields_proto_enumTypes[0] } func (x FieldTestMessage_Enum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *FieldTestMessage_Enum) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = FieldTestMessage_Enum(num) return nil } // Deprecated: Use FieldTestMessage_Enum.Descriptor instead. func (FieldTestMessage_Enum) EnumDescriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_proto2_fields_proto_rawDescGZIP(), []int{0, 0} } type FieldTestMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OptionalBool *bool `protobuf:"varint,1,opt,name=optional_bool,json=optionalBool" json:"optional_bool,omitempty"` OptionalEnum *FieldTestMessage_Enum `protobuf:"varint,2,opt,name=optional_enum,json=optionalEnum,enum=goproto.protoc.proto2.FieldTestMessage_Enum" json:"optional_enum,omitempty"` OptionalInt32 *int32 `protobuf:"varint,3,opt,name=optional_int32,json=optionalInt32" json:"optional_int32,omitempty"` OptionalSint32 *int32 `protobuf:"zigzag32,4,opt,name=optional_sint32,json=optionalSint32" json:"optional_sint32,omitempty"` OptionalUint32 *uint32 `protobuf:"varint,5,opt,name=optional_uint32,json=optionalUint32" json:"optional_uint32,omitempty"` OptionalInt64 *int64 `protobuf:"varint,6,opt,name=optional_int64,json=optionalInt64" json:"optional_int64,omitempty"` OptionalSint64 *int64 `protobuf:"zigzag64,7,opt,name=optional_sint64,json=optionalSint64" json:"optional_sint64,omitempty"` OptionalUint64 *uint64 `protobuf:"varint,8,opt,name=optional_uint64,json=optionalUint64" json:"optional_uint64,omitempty"` OptionalSfixed32 *int32 `protobuf:"fixed32,9,opt,name=optional_sfixed32,json=optionalSfixed32" json:"optional_sfixed32,omitempty"` OptionalFixed32 *uint32 `protobuf:"fixed32,10,opt,name=optional_fixed32,json=optionalFixed32" json:"optional_fixed32,omitempty"` OptionalFloat *float32 `protobuf:"fixed32,11,opt,name=optional_float,json=optionalFloat" json:"optional_float,omitempty"` OptionalSfixed64 *int64 `protobuf:"fixed64,12,opt,name=optional_sfixed64,json=optionalSfixed64" json:"optional_sfixed64,omitempty"` OptionalFixed64 *uint64 `protobuf:"fixed64,13,opt,name=optional_fixed64,json=optionalFixed64" json:"optional_fixed64,omitempty"` OptionalDouble *float64 `protobuf:"fixed64,14,opt,name=optional_double,json=optionalDouble" json:"optional_double,omitempty"` OptionalString *string `protobuf:"bytes,15,opt,name=optional_string,json=optionalString" json:"optional_string,omitempty"` OptionalBytes []byte `protobuf:"bytes,16,opt,name=optional_bytes,json=optionalBytes" json:"optional_bytes,omitempty"` Optional_Message *FieldTestMessage_Message `protobuf:"bytes,17,opt,name=optional_Message,json=optionalMessage" json:"optional_Message,omitempty"` Optionalgroup *FieldTestMessage_OptionalGroup `protobuf:"group,18,opt,name=OptionalGroup,json=optionalgroup" json:"optionalgroup,omitempty"` RequiredBool *bool `protobuf:"varint,101,req,name=required_bool,json=requiredBool" json:"required_bool,omitempty"` RequiredEnum *FieldTestMessage_Enum `protobuf:"varint,102,req,name=required_enum,json=requiredEnum,enum=goproto.protoc.proto2.FieldTestMessage_Enum" json:"required_enum,omitempty"` RequiredInt32 *int32 `protobuf:"varint,103,req,name=required_int32,json=requiredInt32" json:"required_int32,omitempty"` RequiredSint32 *int32 `protobuf:"zigzag32,104,req,name=required_sint32,json=requiredSint32" json:"required_sint32,omitempty"` RequiredUint32 *uint32 `protobuf:"varint,105,req,name=required_uint32,json=requiredUint32" json:"required_uint32,omitempty"` RequiredInt64 *int64 `protobuf:"varint,106,req,name=required_int64,json=requiredInt64" json:"required_int64,omitempty"` RequiredSint64 *int64 `protobuf:"zigzag64,107,req,name=required_sint64,json=requiredSint64" json:"required_sint64,omitempty"` RequiredUint64 *uint64 `protobuf:"varint,108,req,name=required_uint64,json=requiredUint64" json:"required_uint64,omitempty"` RequiredSfixed32 *int32 `protobuf:"fixed32,109,req,name=required_sfixed32,json=requiredSfixed32" json:"required_sfixed32,omitempty"` RequiredFixed32 *uint32 `protobuf:"fixed32,110,req,name=required_fixed32,json=requiredFixed32" json:"required_fixed32,omitempty"` RequiredFloat *float32 `protobuf:"fixed32,111,req,name=required_float,json=requiredFloat" json:"required_float,omitempty"` RequiredSfixed64 *int64 `protobuf:"fixed64,112,req,name=required_sfixed64,json=requiredSfixed64" json:"required_sfixed64,omitempty"` RequiredFixed64 *uint64 `protobuf:"fixed64,113,req,name=required_fixed64,json=requiredFixed64" json:"required_fixed64,omitempty"` RequiredDouble *float64 `protobuf:"fixed64,114,req,name=required_double,json=requiredDouble" json:"required_double,omitempty"` RequiredString *string `protobuf:"bytes,115,req,name=required_string,json=requiredString" json:"required_string,omitempty"` RequiredBytes []byte `protobuf:"bytes,116,req,name=required_bytes,json=requiredBytes" json:"required_bytes,omitempty"` Required_Message *FieldTestMessage_Message `protobuf:"bytes,117,req,name=required_Message,json=requiredMessage" json:"required_Message,omitempty"` Requiredgroup *FieldTestMessage_RequiredGroup `protobuf:"group,118,req,name=RequiredGroup,json=requiredgroup" json:"requiredgroup,omitempty"` RepeatedBool []bool `protobuf:"varint,201,rep,name=repeated_bool,json=repeatedBool" json:"repeated_bool,omitempty"` RepeatedEnum []FieldTestMessage_Enum `protobuf:"varint,202,rep,name=repeated_enum,json=repeatedEnum,enum=goproto.protoc.proto2.FieldTestMessage_Enum" json:"repeated_enum,omitempty"` RepeatedInt32 []int32 `protobuf:"varint,203,rep,name=repeated_int32,json=repeatedInt32" json:"repeated_int32,omitempty"` RepeatedSint32 []int32 `protobuf:"zigzag32,204,rep,name=repeated_sint32,json=repeatedSint32" json:"repeated_sint32,omitempty"` RepeatedUint32 []uint32 `protobuf:"varint,205,rep,name=repeated_uint32,json=repeatedUint32" json:"repeated_uint32,omitempty"` RepeatedInt64 []int64 `protobuf:"varint,206,rep,name=repeated_int64,json=repeatedInt64" json:"repeated_int64,omitempty"` RepeatedSint64 []int64 `protobuf:"zigzag64,207,rep,name=repeated_sint64,json=repeatedSint64" json:"repeated_sint64,omitempty"` RepeatedUint64 []uint64 `protobuf:"varint,208,rep,name=repeated_uint64,json=repeatedUint64" json:"repeated_uint64,omitempty"` RepeatedSfixed32 []int32 `protobuf:"fixed32,209,rep,name=repeated_sfixed32,json=repeatedSfixed32" json:"repeated_sfixed32,omitempty"` RepeatedFixed32 []uint32 `protobuf:"fixed32,210,rep,name=repeated_fixed32,json=repeatedFixed32" json:"repeated_fixed32,omitempty"` RepeatedFloat []float32 `protobuf:"fixed32,211,rep,name=repeated_float,json=repeatedFloat" json:"repeated_float,omitempty"` RepeatedSfixed64 []int64 `protobuf:"fixed64,212,rep,name=repeated_sfixed64,json=repeatedSfixed64" json:"repeated_sfixed64,omitempty"` RepeatedFixed64 []uint64 `protobuf:"fixed64,213,rep,name=repeated_fixed64,json=repeatedFixed64" json:"repeated_fixed64,omitempty"` RepeatedDouble []float64 `protobuf:"fixed64,214,rep,name=repeated_double,json=repeatedDouble" json:"repeated_double,omitempty"` RepeatedString []string `protobuf:"bytes,215,rep,name=repeated_string,json=repeatedString" json:"repeated_string,omitempty"` RepeatedBytes [][]byte `protobuf:"bytes,216,rep,name=repeated_bytes,json=repeatedBytes" json:"repeated_bytes,omitempty"` Repeated_Message []*FieldTestMessage_Message `protobuf:"bytes,217,rep,name=repeated_Message,json=repeatedMessage" json:"repeated_Message,omitempty"` Repeatedgroup []*FieldTestMessage_RepeatedGroup `protobuf:"group,218,rep,name=RepeatedGroup,json=repeatedgroup" json:"repeatedgroup,omitempty"` DefaultBool *bool `protobuf:"varint,301,opt,name=default_bool,json=defaultBool,def=1" json:"default_bool,omitempty"` DefaultEnum *FieldTestMessage_Enum `protobuf:"varint,302,opt,name=default_enum,json=defaultEnum,enum=goproto.protoc.proto2.FieldTestMessage_Enum,def=1" json:"default_enum,omitempty"` DefaultInt32 *int32 `protobuf:"varint,303,opt,name=default_int32,json=defaultInt32,def=1" json:"default_int32,omitempty"` DefaultSint32 *int32 `protobuf:"zigzag32,304,opt,name=default_sint32,json=defaultSint32,def=1" json:"default_sint32,omitempty"` DefaultUint32 *uint32 `protobuf:"varint,305,opt,name=default_uint32,json=defaultUint32,def=1" json:"default_uint32,omitempty"` DefaultInt64 *int64 `protobuf:"varint,306,opt,name=default_int64,json=defaultInt64,def=1" json:"default_int64,omitempty"` DefaultSint64 *int64 `protobuf:"zigzag64,307,opt,name=default_sint64,json=defaultSint64,def=1" json:"default_sint64,omitempty"` DefaultUint64 *uint64 `protobuf:"varint,308,opt,name=default_uint64,json=defaultUint64,def=1" json:"default_uint64,omitempty"` DefaultSfixed32 *int32 `protobuf:"fixed32,309,opt,name=default_sfixed32,json=defaultSfixed32,def=1" json:"default_sfixed32,omitempty"` DefaultFixed32 *uint32 `protobuf:"fixed32,310,opt,name=default_fixed32,json=defaultFixed32,def=1" json:"default_fixed32,omitempty"` DefaultFloat *float32 `protobuf:"fixed32,311,opt,name=default_float,json=defaultFloat,def=3.14" json:"default_float,omitempty"` DefaultSfixed64 *int64 `protobuf:"fixed64,312,opt,name=default_sfixed64,json=defaultSfixed64,def=1" json:"default_sfixed64,omitempty"` DefaultFixed64 *uint64 `protobuf:"fixed64,313,opt,name=default_fixed64,json=defaultFixed64,def=1" json:"default_fixed64,omitempty"` DefaultDouble *float64 `protobuf:"fixed64,314,opt,name=default_double,json=defaultDouble,def=3.1415" json:"default_double,omitempty"` DefaultString *string `protobuf:"bytes,315,opt,name=default_string,json=defaultString,def=hello,\"world!\"\n" json:"default_string,omitempty"` DefaultBytes []byte `protobuf:"bytes,316,opt,name=default_bytes,json=defaultBytes,def=hello,\\336\\255\\276\\357" json:"default_bytes,omitempty"` DefaultZeroString *string `protobuf:"bytes,350,opt,name=default_zero_string,json=defaultZeroString,def=" json:"default_zero_string,omitempty"` DefaultZeroBytes []byte `protobuf:"bytes,351,opt,name=default_zero_bytes,json=defaultZeroBytes,def=" json:"default_zero_bytes,omitempty"` DefaultFloatNeginf *float32 `protobuf:"fixed32,400,opt,name=default_float_neginf,json=defaultFloatNeginf,def=-inf" json:"default_float_neginf,omitempty"` DefaultFloatPosinf *float32 `protobuf:"fixed32,401,opt,name=default_float_posinf,json=defaultFloatPosinf,def=inf" json:"default_float_posinf,omitempty"` DefaultFloatNan *float32 `protobuf:"fixed32,402,opt,name=default_float_nan,json=defaultFloatNan,def=nan" json:"default_float_nan,omitempty"` DefaultDoubleNeginf *float64 `protobuf:"fixed64,403,opt,name=default_double_neginf,json=defaultDoubleNeginf,def=-inf" json:"default_double_neginf,omitempty"` DefaultDoublePosinf *float64 `protobuf:"fixed64,404,opt,name=default_double_posinf,json=defaultDoublePosinf,def=inf" json:"default_double_posinf,omitempty"` DefaultDoubleNan *float64 `protobuf:"fixed64,405,opt,name=default_double_nan,json=defaultDoubleNan,def=nan" json:"default_double_nan,omitempty"` MapInt32Int64 map[int32]int64 `protobuf:"bytes,500,rep,name=map_int32_int64,json=mapInt32Int64" json:"map_int32_int64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapStringMessage map[string]*FieldTestMessage_Message `protobuf:"bytes,501,rep,name=map_string_message,json=mapStringMessage" json:"map_string_message,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapFixed64Enum map[uint64]FieldTestMessage_Enum `protobuf:"bytes,502,rep,name=map_fixed64_enum,json=mapFixed64Enum" json:"map_fixed64_enum,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=goproto.protoc.proto2.FieldTestMessage_Enum"` // Types that are assignable to OneofField: // *FieldTestMessage_OneofBool // *FieldTestMessage_OneofEnum // *FieldTestMessage_OneofInt32 // *FieldTestMessage_OneofSint32 // *FieldTestMessage_OneofUint32 // *FieldTestMessage_OneofInt64 // *FieldTestMessage_OneofSint64 // *FieldTestMessage_OneofUint64 // *FieldTestMessage_OneofSfixed32 // *FieldTestMessage_OneofFixed32 // *FieldTestMessage_OneofFloat // *FieldTestMessage_OneofSfixed64 // *FieldTestMessage_OneofFixed64 // *FieldTestMessage_OneofDouble // *FieldTestMessage_OneofString // *FieldTestMessage_OneofBytes // *FieldTestMessage_Oneof_Message // *FieldTestMessage_Oneofgroup // *FieldTestMessage_OneofLargestTag OneofField isFieldTestMessage_OneofField `protobuf_oneof:"oneof_field"` // Types that are assignable to OneofTwo: // *FieldTestMessage_OneofTwo_1 // *FieldTestMessage_OneofTwo_2 OneofTwo isFieldTestMessage_OneofTwo `protobuf_oneof:"oneof_two"` } // Default values for FieldTestMessage fields. const ( Default_FieldTestMessage_DefaultBool = bool(true) Default_FieldTestMessage_DefaultEnum = FieldTestMessage_ONE Default_FieldTestMessage_DefaultInt32 = int32(1) Default_FieldTestMessage_DefaultSint32 = int32(1) Default_FieldTestMessage_DefaultUint32 = uint32(1) Default_FieldTestMessage_DefaultInt64 = int64(1) Default_FieldTestMessage_DefaultSint64 = int64(1) Default_FieldTestMessage_DefaultUint64 = uint64(1) Default_FieldTestMessage_DefaultSfixed32 = int32(1) Default_FieldTestMessage_DefaultFixed32 = uint32(1) Default_FieldTestMessage_DefaultFloat = float32(3.140000104904175) Default_FieldTestMessage_DefaultSfixed64 = int64(1) Default_FieldTestMessage_DefaultFixed64 = uint64(1) Default_FieldTestMessage_DefaultDouble = float64(3.1415) Default_FieldTestMessage_DefaultString = string("hello,\"world!\"\n") Default_FieldTestMessage_DefaultZeroString = string("") ) // Default values for FieldTestMessage fields. var ( Default_FieldTestMessage_DefaultBytes = []byte("hello,ޭ\xbe\xef") Default_FieldTestMessage_DefaultZeroBytes = []byte("") Default_FieldTestMessage_DefaultFloatNeginf = float32(math.Inf(-1)) Default_FieldTestMessage_DefaultFloatPosinf = float32(math.Inf(+1)) Default_FieldTestMessage_DefaultFloatNan = float32(math.NaN()) Default_FieldTestMessage_DefaultDoubleNeginf = float64(math.Inf(-1)) Default_FieldTestMessage_DefaultDoublePosinf = float64(math.Inf(+1)) Default_FieldTestMessage_DefaultDoubleNan = float64(math.NaN()) ) func (x *FieldTestMessage) Reset() { *x = FieldTestMessage{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_proto2_fields_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FieldTestMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*FieldTestMessage) ProtoMessage() {} func (x *FieldTestMessage) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_proto2_fields_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FieldTestMessage.ProtoReflect.Descriptor instead. func (*FieldTestMessage) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_proto2_fields_proto_rawDescGZIP(), []int{0} } func (x *FieldTestMessage) GetOptionalBool() bool { if x != nil && x.OptionalBool != nil { return *x.OptionalBool } return false } func (x *FieldTestMessage) GetOptionalEnum() FieldTestMessage_Enum { if x != nil && x.OptionalEnum != nil { return *x.OptionalEnum } return FieldTestMessage_ZERO } func (x *FieldTestMessage) GetOptionalInt32() int32 { if x != nil && x.OptionalInt32 != nil { return *x.OptionalInt32 } return 0 } func (x *FieldTestMessage) GetOptionalSint32() int32 { if x != nil && x.OptionalSint32 != nil { return *x.OptionalSint32 } return 0 } func (x *FieldTestMessage) GetOptionalUint32() uint32 { if x != nil && x.OptionalUint32 != nil { return *x.OptionalUint32 } return 0 } func (x *FieldTestMessage) GetOptionalInt64() int64 { if x != nil && x.OptionalInt64 != nil { return *x.OptionalInt64 } return 0 } func (x *FieldTestMessage) GetOptionalSint64() int64 { if x != nil && x.OptionalSint64 != nil { return *x.OptionalSint64 } return 0 } func (x *FieldTestMessage) GetOptionalUint64() uint64 { if x != nil && x.OptionalUint64 != nil { return *x.OptionalUint64 } return 0 } func (x *FieldTestMessage) GetOptionalSfixed32() int32 { if x != nil && x.OptionalSfixed32 != nil { return *x.OptionalSfixed32 } return 0 } func (x *FieldTestMessage) GetOptionalFixed32() uint32 { if x != nil && x.OptionalFixed32 != nil { return *x.OptionalFixed32 } return 0 } func (x *FieldTestMessage) GetOptionalFloat() float32 { if x != nil && x.OptionalFloat != nil { return *x.OptionalFloat } return 0 } func (x *FieldTestMessage) GetOptionalSfixed64() int64 { if x != nil && x.OptionalSfixed64 != nil { return *x.OptionalSfixed64 } return 0 } func (x *FieldTestMessage) GetOptionalFixed64() uint64 { if x != nil && x.OptionalFixed64 != nil { return *x.OptionalFixed64 } return 0 } func (x *FieldTestMessage) GetOptionalDouble() float64 { if x != nil && x.OptionalDouble != nil { return *x.OptionalDouble } return 0 } func (x *FieldTestMessage) GetOptionalString() string { if x != nil && x.OptionalString != nil { return *x.OptionalString } return "" } func (x *FieldTestMessage) GetOptionalBytes() []byte { if x != nil { return x.OptionalBytes } return nil } func (x *FieldTestMessage) GetOptional_Message() *FieldTestMessage_Message { if x != nil { return x.Optional_Message } return nil } func (x *FieldTestMessage) GetOptionalgroup() *FieldTestMessage_OptionalGroup { if x != nil { return x.Optionalgroup } return nil } func (x *FieldTestMessage) GetRequiredBool() bool { if x != nil && x.RequiredBool != nil { return *x.RequiredBool } return false } func (x *FieldTestMessage) GetRequiredEnum() FieldTestMessage_Enum { if x != nil && x.RequiredEnum != nil { return *x.RequiredEnum } return FieldTestMessage_ZERO } func (x *FieldTestMessage) GetRequiredInt32() int32 { if x != nil && x.RequiredInt32 != nil { return *x.RequiredInt32 } return 0 } func (x *FieldTestMessage) GetRequiredSint32() int32 { if x != nil && x.RequiredSint32 != nil { return *x.RequiredSint32 } return 0 } func (x *FieldTestMessage) GetRequiredUint32() uint32 { if x != nil && x.RequiredUint32 != nil { return *x.RequiredUint32 } return 0 } func (x *FieldTestMessage) GetRequiredInt64() int64 { if x != nil && x.RequiredInt64 != nil { return *x.RequiredInt64 } return 0 } func (x *FieldTestMessage) GetRequiredSint64() int64 { if x != nil && x.RequiredSint64 != nil { return *x.RequiredSint64 } return 0 } func (x *FieldTestMessage) GetRequiredUint64() uint64 { if x != nil && x.RequiredUint64 != nil { return *x.RequiredUint64 } return 0 } func (x *FieldTestMessage) GetRequiredSfixed32() int32 { if x != nil && x.RequiredSfixed32 != nil { return *x.RequiredSfixed32 } return 0 } func (x *FieldTestMessage) GetRequiredFixed32() uint32 { if x != nil && x.RequiredFixed32 != nil { return *x.RequiredFixed32 } return 0 } func (x *FieldTestMessage) GetRequiredFloat() float32 { if x != nil && x.RequiredFloat != nil { return *x.RequiredFloat } return 0 } func (x *FieldTestMessage) GetRequiredSfixed64() int64 { if x != nil && x.RequiredSfixed64 != nil { return *x.RequiredSfixed64 } return 0 } func (x *FieldTestMessage) GetRequiredFixed64() uint64 { if x != nil && x.RequiredFixed64 != nil { return *x.RequiredFixed64 } return 0 } func (x *FieldTestMessage) GetRequiredDouble() float64 { if x != nil && x.RequiredDouble != nil { return *x.RequiredDouble } return 0 } func (x *FieldTestMessage) GetRequiredString() string { if x != nil && x.RequiredString != nil { return *x.RequiredString } return "" } func (x *FieldTestMessage) GetRequiredBytes() []byte { if x != nil { return x.RequiredBytes } return nil } func (x *FieldTestMessage) GetRequired_Message() *FieldTestMessage_Message { if x != nil { return x.Required_Message } return nil } func (x *FieldTestMessage) GetRequiredgroup() *FieldTestMessage_RequiredGroup { if x != nil { return x.Requiredgroup } return nil } func (x *FieldTestMessage) GetRepeatedBool() []bool { if x != nil { return x.RepeatedBool } return nil } func (x *FieldTestMessage) GetRepeatedEnum() []FieldTestMessage_Enum { if x != nil { return x.RepeatedEnum } return nil } func (x *FieldTestMessage) GetRepeatedInt32() []int32 { if x != nil { return x.RepeatedInt32 } return nil } func (x *FieldTestMessage) GetRepeatedSint32() []int32 { if x != nil { return x.RepeatedSint32 } return nil } func (x *FieldTestMessage) GetRepeatedUint32() []uint32 { if x != nil { return x.RepeatedUint32 } return nil } func (x *FieldTestMessage) GetRepeatedInt64() []int64 { if x != nil { return x.RepeatedInt64 } return nil } func (x *FieldTestMessage) GetRepeatedSint64() []int64 { if x != nil { return x.RepeatedSint64 } return nil } func (x *FieldTestMessage) GetRepeatedUint64() []uint64 { if x != nil { return x.RepeatedUint64 } return nil } func (x *FieldTestMessage) GetRepeatedSfixed32() []int32 { if x != nil { return x.RepeatedSfixed32 } return nil } func (x *FieldTestMessage) GetRepeatedFixed32() []uint32 { if x != nil { return x.RepeatedFixed32 } return nil } func (x *FieldTestMessage) GetRepeatedFloat() []float32 { if x != nil { return x.RepeatedFloat } return nil } func (x *FieldTestMessage) GetRepeatedSfixed64() []int64 { if x != nil { return x.RepeatedSfixed64 } return nil } func (x *FieldTestMessage) GetRepeatedFixed64() []uint64 { if x != nil { return x.RepeatedFixed64 } return nil } func (x *FieldTestMessage) GetRepeatedDouble() []float64 { if x != nil { return x.RepeatedDouble } return nil } func (x *FieldTestMessage) GetRepeatedString() []string { if x != nil { return x.RepeatedString } return nil } func (x *FieldTestMessage) GetRepeatedBytes() [][]byte { if x != nil { return x.RepeatedBytes } return nil } func (x *FieldTestMessage) GetRepeated_Message() []*FieldTestMessage_Message { if x != nil { return x.Repeated_Message } return nil } func (x *FieldTestMessage) GetRepeatedgroup() []*FieldTestMessage_RepeatedGroup { if x != nil { return x.Repeatedgroup } return nil } func (x *FieldTestMessage) GetDefaultBool() bool { if x != nil && x.DefaultBool != nil { return *x.DefaultBool } return Default_FieldTestMessage_DefaultBool } func (x *FieldTestMessage) GetDefaultEnum() FieldTestMessage_Enum { if x != nil && x.DefaultEnum != nil { return *x.DefaultEnum } return Default_FieldTestMessage_DefaultEnum } func (x *FieldTestMessage) GetDefaultInt32() int32 { if x != nil && x.DefaultInt32 != nil { return *x.DefaultInt32 } return Default_FieldTestMessage_DefaultInt32 } func (x *FieldTestMessage) GetDefaultSint32() int32 { if x != nil && x.DefaultSint32 != nil { return *x.DefaultSint32 } return Default_FieldTestMessage_DefaultSint32 } func (x *FieldTestMessage) GetDefaultUint32() uint32 { if x != nil && x.DefaultUint32 != nil { return *x.DefaultUint32 } return Default_FieldTestMessage_DefaultUint32 } func (x *FieldTestMessage) GetDefaultInt64() int64 { if x != nil && x.DefaultInt64 != nil { return *x.DefaultInt64 } return Default_FieldTestMessage_DefaultInt64 } func (x *FieldTestMessage) GetDefaultSint64() int64 { if x != nil && x.DefaultSint64 != nil { return *x.DefaultSint64 } return Default_FieldTestMessage_DefaultSint64 } func (x *FieldTestMessage) GetDefaultUint64() uint64 { if x != nil && x.DefaultUint64 != nil { return *x.DefaultUint64 } return Default_FieldTestMessage_DefaultUint64 } func (x *FieldTestMessage) GetDefaultSfixed32() int32 { if x != nil && x.DefaultSfixed32 != nil { return *x.DefaultSfixed32 } return Default_FieldTestMessage_DefaultSfixed32 } func (x *FieldTestMessage) GetDefaultFixed32() uint32 { if x != nil && x.DefaultFixed32 != nil { return *x.DefaultFixed32 } return Default_FieldTestMessage_DefaultFixed32 } func (x *FieldTestMessage) GetDefaultFloat() float32 { if x != nil && x.DefaultFloat != nil { return *x.DefaultFloat } return Default_FieldTestMessage_DefaultFloat } func (x *FieldTestMessage) GetDefaultSfixed64() int64 { if x != nil && x.DefaultSfixed64 != nil { return *x.DefaultSfixed64 } return Default_FieldTestMessage_DefaultSfixed64 } func (x *FieldTestMessage) GetDefaultFixed64() uint64 { if x != nil && x.DefaultFixed64 != nil { return *x.DefaultFixed64 } return Default_FieldTestMessage_DefaultFixed64 } func (x *FieldTestMessage) GetDefaultDouble() float64 { if x != nil && x.DefaultDouble != nil { return *x.DefaultDouble } return Default_FieldTestMessage_DefaultDouble } func (x *FieldTestMessage) GetDefaultString() string { if x != nil && x.DefaultString != nil { return *x.DefaultString } return Default_FieldTestMessage_DefaultString } func (x *FieldTestMessage) GetDefaultBytes() []byte { if x != nil && x.DefaultBytes != nil { return x.DefaultBytes } return append([]byte(nil), Default_FieldTestMessage_DefaultBytes...) } func (x *FieldTestMessage) GetDefaultZeroString() string { if x != nil && x.DefaultZeroString != nil { return *x.DefaultZeroString } return Default_FieldTestMessage_DefaultZeroString } func (x *FieldTestMessage) GetDefaultZeroBytes() []byte { if x != nil && x.DefaultZeroBytes != nil { return x.DefaultZeroBytes } return append([]byte(nil), Default_FieldTestMessage_DefaultZeroBytes...) } func (x *FieldTestMessage) GetDefaultFloatNeginf() float32 { if x != nil && x.DefaultFloatNeginf != nil { return *x.DefaultFloatNeginf } return Default_FieldTestMessage_DefaultFloatNeginf } func (x *FieldTestMessage) GetDefaultFloatPosinf() float32 { if x != nil && x.DefaultFloatPosinf != nil { return *x.DefaultFloatPosinf } return Default_FieldTestMessage_DefaultFloatPosinf } func (x *FieldTestMessage) GetDefaultFloatNan() float32 { if x != nil && x.DefaultFloatNan != nil { return *x.DefaultFloatNan } return Default_FieldTestMessage_DefaultFloatNan } func (x *FieldTestMessage) GetDefaultDoubleNeginf() float64 { if x != nil && x.DefaultDoubleNeginf != nil { return *x.DefaultDoubleNeginf } return Default_FieldTestMessage_DefaultDoubleNeginf } func (x *FieldTestMessage) GetDefaultDoublePosinf() float64 { if x != nil && x.DefaultDoublePosinf != nil { return *x.DefaultDoublePosinf } return Default_FieldTestMessage_DefaultDoublePosinf } func (x *FieldTestMessage) GetDefaultDoubleNan() float64 { if x != nil && x.DefaultDoubleNan != nil { return *x.DefaultDoubleNan } return Default_FieldTestMessage_DefaultDoubleNan } func (x *FieldTestMessage) GetMapInt32Int64() map[int32]int64 { if x != nil { return x.MapInt32Int64 } return nil } func (x *FieldTestMessage) GetMapStringMessage() map[string]*FieldTestMessage_Message { if x != nil { return x.MapStringMessage } return nil } func (x *FieldTestMessage) GetMapFixed64Enum() map[uint64]FieldTestMessage_Enum { if x != nil { return x.MapFixed64Enum } return nil } func (m *FieldTestMessage) GetOneofField() isFieldTestMessage_OneofField { if m != nil { return m.OneofField } return nil } func (x *FieldTestMessage) GetOneofBool() bool { if x, ok := x.GetOneofField().(*FieldTestMessage_OneofBool); ok { return x.OneofBool } return false } func (x *FieldTestMessage) GetOneofEnum() FieldTestMessage_Enum { if x, ok := x.GetOneofField().(*FieldTestMessage_OneofEnum); ok { return x.OneofEnum } return FieldTestMessage_ZERO } func (x *FieldTestMessage) GetOneofInt32() int32 { if x, ok := x.GetOneofField().(*FieldTestMessage_OneofInt32); ok { return x.OneofInt32 } return 0 } func (x *FieldTestMessage) GetOneofSint32() int32 { if x, ok := x.GetOneofField().(*FieldTestMessage_OneofSint32); ok { return x.OneofSint32 } return 0 } func (x *FieldTestMessage) GetOneofUint32() uint32 { if x, ok := x.GetOneofField().(*FieldTestMessage_OneofUint32); ok { return x.OneofUint32 } return 0 } func (x *FieldTestMessage) GetOneofInt64() int64 { if x, ok := x.GetOneofField().(*FieldTestMessage_OneofInt64); ok { return x.OneofInt64 } return 0 } func (x *FieldTestMessage) GetOneofSint64() int64 { if x, ok := x.GetOneofField().(*FieldTestMessage_OneofSint64); ok { return x.OneofSint64 } return 0 } func (x *FieldTestMessage) GetOneofUint64() uint64 { if x, ok := x.GetOneofField().(*FieldTestMessage_OneofUint64); ok { return x.OneofUint64 } return 0 } func (x *FieldTestMessage) GetOneofSfixed32() int32 { if x, ok := x.GetOneofField().(*FieldTestMessage_OneofSfixed32); ok { return x.OneofSfixed32 } return 0 } func (x *FieldTestMessage) GetOneofFixed32() uint32 { if x, ok := x.GetOneofField().(*FieldTestMessage_OneofFixed32); ok { return x.OneofFixed32 } return 0 } func (x *FieldTestMessage) GetOneofFloat() float32 { if x, ok := x.GetOneofField().(*FieldTestMessage_OneofFloat); ok { return x.OneofFloat } return 0 } func (x *FieldTestMessage) GetOneofSfixed64() int64 { if x, ok := x.GetOneofField().(*FieldTestMessage_OneofSfixed64); ok { return x.OneofSfixed64 } return 0 } func (x *FieldTestMessage) GetOneofFixed64() uint64 { if x, ok := x.GetOneofField().(*FieldTestMessage_OneofFixed64); ok { return x.OneofFixed64 } return 0 } func (x *FieldTestMessage) GetOneofDouble() float64 { if x, ok := x.GetOneofField().(*FieldTestMessage_OneofDouble); ok { return x.OneofDouble } return 0 } func (x *FieldTestMessage) GetOneofString() string { if x, ok := x.GetOneofField().(*FieldTestMessage_OneofString); ok { return x.OneofString } return "" } func (x *FieldTestMessage) GetOneofBytes() []byte { if x, ok := x.GetOneofField().(*FieldTestMessage_OneofBytes); ok { return x.OneofBytes } return nil } func (x *FieldTestMessage) GetOneof_Message() *FieldTestMessage_Message { if x, ok := x.GetOneofField().(*FieldTestMessage_Oneof_Message); ok { return x.Oneof_Message } return nil } func (x *FieldTestMessage) GetOneofgroup() *FieldTestMessage_OneofGroup { if x, ok := x.GetOneofField().(*FieldTestMessage_Oneofgroup); ok { return x.Oneofgroup } return nil } func (x *FieldTestMessage) GetOneofLargestTag() int32 { if x, ok := x.GetOneofField().(*FieldTestMessage_OneofLargestTag); ok { return x.OneofLargestTag } return 0 } func (m *FieldTestMessage) GetOneofTwo() isFieldTestMessage_OneofTwo { if m != nil { return m.OneofTwo } return nil } func (x *FieldTestMessage) GetOneofTwo_1() int32 { if x, ok := x.GetOneofTwo().(*FieldTestMessage_OneofTwo_1); ok { return x.OneofTwo_1 } return 0 } func (x *FieldTestMessage) GetOneofTwo_2() int64 { if x, ok := x.GetOneofTwo().(*FieldTestMessage_OneofTwo_2); ok { return x.OneofTwo_2 } return 0 } type isFieldTestMessage_OneofField interface { isFieldTestMessage_OneofField() } type FieldTestMessage_OneofBool struct { OneofBool bool `protobuf:"varint,601,opt,name=oneof_bool,json=oneofBool,oneof"` } type FieldTestMessage_OneofEnum struct { OneofEnum FieldTestMessage_Enum `protobuf:"varint,602,opt,name=oneof_enum,json=oneofEnum,enum=goproto.protoc.proto2.FieldTestMessage_Enum,oneof"` } type FieldTestMessage_OneofInt32 struct { OneofInt32 int32 `protobuf:"varint,603,opt,name=oneof_int32,json=oneofInt32,oneof"` } type FieldTestMessage_OneofSint32 struct { OneofSint32 int32 `protobuf:"zigzag32,604,opt,name=oneof_sint32,json=oneofSint32,oneof"` } type FieldTestMessage_OneofUint32 struct { OneofUint32 uint32 `protobuf:"varint,605,opt,name=oneof_uint32,json=oneofUint32,oneof"` } type FieldTestMessage_OneofInt64 struct { OneofInt64 int64 `protobuf:"varint,606,opt,name=oneof_int64,json=oneofInt64,oneof"` } type FieldTestMessage_OneofSint64 struct { OneofSint64 int64 `protobuf:"zigzag64,607,opt,name=oneof_sint64,json=oneofSint64,oneof"` } type FieldTestMessage_OneofUint64 struct { OneofUint64 uint64 `protobuf:"varint,608,opt,name=oneof_uint64,json=oneofUint64,oneof"` } type FieldTestMessage_OneofSfixed32 struct { OneofSfixed32 int32 `protobuf:"fixed32,609,opt,name=oneof_sfixed32,json=oneofSfixed32,oneof"` } type FieldTestMessage_OneofFixed32 struct { OneofFixed32 uint32 `protobuf:"fixed32,610,opt,name=oneof_fixed32,json=oneofFixed32,oneof"` } type FieldTestMessage_OneofFloat struct { OneofFloat float32 `protobuf:"fixed32,611,opt,name=oneof_float,json=oneofFloat,oneof"` } type FieldTestMessage_OneofSfixed64 struct { OneofSfixed64 int64 `protobuf:"fixed64,612,opt,name=oneof_sfixed64,json=oneofSfixed64,oneof"` } type FieldTestMessage_OneofFixed64 struct { OneofFixed64 uint64 `protobuf:"fixed64,613,opt,name=oneof_fixed64,json=oneofFixed64,oneof"` } type FieldTestMessage_OneofDouble struct { OneofDouble float64 `protobuf:"fixed64,614,opt,name=oneof_double,json=oneofDouble,oneof"` } type FieldTestMessage_OneofString struct { OneofString string `protobuf:"bytes,615,opt,name=oneof_string,json=oneofString,oneof"` } type FieldTestMessage_OneofBytes struct { OneofBytes []byte `protobuf:"bytes,616,opt,name=oneof_bytes,json=oneofBytes,oneof"` } type FieldTestMessage_Oneof_Message struct { Oneof_Message *FieldTestMessage_Message `protobuf:"bytes,617,opt,name=oneof_Message,json=oneofMessage,oneof"` } type FieldTestMessage_Oneofgroup struct { Oneofgroup *FieldTestMessage_OneofGroup `protobuf:"group,618,opt,name=OneofGroup,json=oneofgroup,oneof"` } type FieldTestMessage_OneofLargestTag struct { OneofLargestTag int32 `protobuf:"varint,536870911,opt,name=oneof_largest_tag,json=oneofLargestTag,oneof"` } func (*FieldTestMessage_OneofBool) isFieldTestMessage_OneofField() {} func (*FieldTestMessage_OneofEnum) isFieldTestMessage_OneofField() {} func (*FieldTestMessage_OneofInt32) isFieldTestMessage_OneofField() {} func (*FieldTestMessage_OneofSint32) isFieldTestMessage_OneofField() {} func (*FieldTestMessage_OneofUint32) isFieldTestMessage_OneofField() {} func (*FieldTestMessage_OneofInt64) isFieldTestMessage_OneofField() {} func (*FieldTestMessage_OneofSint64) isFieldTestMessage_OneofField() {} func (*FieldTestMessage_OneofUint64) isFieldTestMessage_OneofField() {} func (*FieldTestMessage_OneofSfixed32) isFieldTestMessage_OneofField() {} func (*FieldTestMessage_OneofFixed32) isFieldTestMessage_OneofField() {} func (*FieldTestMessage_OneofFloat) isFieldTestMessage_OneofField() {} func (*FieldTestMessage_OneofSfixed64) isFieldTestMessage_OneofField() {} func (*FieldTestMessage_OneofFixed64) isFieldTestMessage_OneofField() {} func (*FieldTestMessage_OneofDouble) isFieldTestMessage_OneofField() {} func (*FieldTestMessage_OneofString) isFieldTestMessage_OneofField() {} func (*FieldTestMessage_OneofBytes) isFieldTestMessage_OneofField() {} func (*FieldTestMessage_Oneof_Message) isFieldTestMessage_OneofField() {} func (*FieldTestMessage_Oneofgroup) isFieldTestMessage_OneofField() {} func (*FieldTestMessage_OneofLargestTag) isFieldTestMessage_OneofField() {} type isFieldTestMessage_OneofTwo interface { isFieldTestMessage_OneofTwo() } type FieldTestMessage_OneofTwo_1 struct { OneofTwo_1 int32 `protobuf:"varint,700,opt,name=oneof_two_1,json=oneofTwo1,oneof"` } type FieldTestMessage_OneofTwo_2 struct { OneofTwo_2 int64 `protobuf:"varint,701,opt,name=oneof_two_2,json=oneofTwo2,oneof"` } func (*FieldTestMessage_OneofTwo_1) isFieldTestMessage_OneofTwo() {} func (*FieldTestMessage_OneofTwo_2) isFieldTestMessage_OneofTwo() {} type FieldTestMessage_OptionalGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OptionalGroup *string `protobuf:"bytes,19,opt,name=optional_group,json=optionalGroup" json:"optional_group,omitempty"` } func (x *FieldTestMessage_OptionalGroup) Reset() { *x = FieldTestMessage_OptionalGroup{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_proto2_fields_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FieldTestMessage_OptionalGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*FieldTestMessage_OptionalGroup) ProtoMessage() {} func (x *FieldTestMessage_OptionalGroup) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_proto2_fields_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FieldTestMessage_OptionalGroup.ProtoReflect.Descriptor instead. func (*FieldTestMessage_OptionalGroup) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_proto2_fields_proto_rawDescGZIP(), []int{0, 0} } func (x *FieldTestMessage_OptionalGroup) GetOptionalGroup() string { if x != nil && x.OptionalGroup != nil { return *x.OptionalGroup } return "" } type FieldTestMessage_RequiredGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RequiredGroup *string `protobuf:"bytes,119,req,name=required_group,json=requiredGroup" json:"required_group,omitempty"` } func (x *FieldTestMessage_RequiredGroup) Reset() { *x = FieldTestMessage_RequiredGroup{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_proto2_fields_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FieldTestMessage_RequiredGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*FieldTestMessage_RequiredGroup) ProtoMessage() {} func (x *FieldTestMessage_RequiredGroup) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_proto2_fields_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FieldTestMessage_RequiredGroup.ProtoReflect.Descriptor instead. func (*FieldTestMessage_RequiredGroup) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_proto2_fields_proto_rawDescGZIP(), []int{0, 1} } func (x *FieldTestMessage_RequiredGroup) GetRequiredGroup() string { if x != nil && x.RequiredGroup != nil { return *x.RequiredGroup } return "" } type FieldTestMessage_RepeatedGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RepeatedGroup []string `protobuf:"bytes,219,rep,name=repeated_group,json=repeatedGroup" json:"repeated_group,omitempty"` } func (x *FieldTestMessage_RepeatedGroup) Reset() { *x = FieldTestMessage_RepeatedGroup{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_proto2_fields_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FieldTestMessage_RepeatedGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*FieldTestMessage_RepeatedGroup) ProtoMessage() {} func (x *FieldTestMessage_RepeatedGroup) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_proto2_fields_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FieldTestMessage_RepeatedGroup.ProtoReflect.Descriptor instead. func (*FieldTestMessage_RepeatedGroup) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_proto2_fields_proto_rawDescGZIP(), []int{0, 2} } func (x *FieldTestMessage_RepeatedGroup) GetRepeatedGroup() []string { if x != nil { return x.RepeatedGroup } return nil } type FieldTestMessage_OneofGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OneofGroupField *string `protobuf:"bytes,619,opt,name=oneof_group_field,json=oneofGroupField" json:"oneof_group_field,omitempty"` } func (x *FieldTestMessage_OneofGroup) Reset() { *x = FieldTestMessage_OneofGroup{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_proto2_fields_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FieldTestMessage_OneofGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*FieldTestMessage_OneofGroup) ProtoMessage() {} func (x *FieldTestMessage_OneofGroup) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_proto2_fields_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FieldTestMessage_OneofGroup.ProtoReflect.Descriptor instead. func (*FieldTestMessage_OneofGroup) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_proto2_fields_proto_rawDescGZIP(), []int{0, 6} } func (x *FieldTestMessage_OneofGroup) GetOneofGroupField() string { if x != nil && x.OneofGroupField != nil { return *x.OneofGroupField } return "" } type FieldTestMessage_Message struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *FieldTestMessage_Message) Reset() { *x = FieldTestMessage_Message{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_proto2_fields_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FieldTestMessage_Message) String() string { return protoimpl.X.MessageStringOf(x) } func (*FieldTestMessage_Message) ProtoMessage() {} func (x *FieldTestMessage_Message) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_proto2_fields_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FieldTestMessage_Message.ProtoReflect.Descriptor instead. func (*FieldTestMessage_Message) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_proto2_fields_proto_rawDescGZIP(), []int{0, 7} } var File_cmd_protoc_gen_go_testdata_proto2_fields_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_proto2_fields_proto_rawDesc = []byte{ 0x0a, 0x2e, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x22, 0xa7, 0x2d, 0x0a, 0x10, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x51, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x10, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x5a, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x5b, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x65, 0x20, 0x02, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x51, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x66, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x67, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x68, 0x20, 0x02, 0x28, 0x11, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x69, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x6a, 0x20, 0x02, 0x28, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x6b, 0x20, 0x02, 0x28, 0x12, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x6c, 0x20, 0x02, 0x28, 0x04, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x6d, 0x20, 0x02, 0x28, 0x0f, 0x52, 0x10, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x6e, 0x20, 0x02, 0x28, 0x07, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x6f, 0x20, 0x02, 0x28, 0x02, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x70, 0x20, 0x02, 0x28, 0x10, 0x52, 0x10, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x71, 0x20, 0x02, 0x28, 0x06, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x72, 0x20, 0x02, 0x28, 0x01, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x73, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x74, 0x20, 0x02, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x5a, 0x0a, 0x10, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x75, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x5b, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x76, 0x20, 0x02, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0xc9, 0x01, 0x20, 0x03, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0xca, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0xcb, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0xcc, 0x01, 0x20, 0x03, 0x28, 0x11, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0xcd, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0xce, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0xcf, 0x01, 0x20, 0x03, 0x28, 0x12, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0xd0, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2c, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0xd1, 0x01, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0xd2, 0x01, 0x20, 0x03, 0x28, 0x07, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0xd3, 0x01, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0xd4, 0x01, 0x20, 0x03, 0x28, 0x10, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0xd5, 0x01, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0xd6, 0x01, 0x20, 0x03, 0x28, 0x01, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0xd7, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0xd8, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x5b, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xd9, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x5c, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0xda, 0x01, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x28, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0xad, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x55, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0xae, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x03, 0x4f, 0x4e, 0x45, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x27, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0xaf, 0x02, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x31, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0xb0, 0x02, 0x20, 0x01, 0x28, 0x11, 0x3a, 0x01, 0x31, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0xb1, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x3a, 0x01, 0x31, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0xb2, 0x02, 0x20, 0x01, 0x28, 0x03, 0x3a, 0x01, 0x31, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0xb3, 0x02, 0x20, 0x01, 0x28, 0x12, 0x3a, 0x01, 0x31, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0xb4, 0x02, 0x20, 0x01, 0x28, 0x04, 0x3a, 0x01, 0x31, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2d, 0x0a, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0xb5, 0x02, 0x20, 0x01, 0x28, 0x0f, 0x3a, 0x01, 0x31, 0x52, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0xb6, 0x02, 0x20, 0x01, 0x28, 0x07, 0x3a, 0x01, 0x31, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2a, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0xb7, 0x02, 0x20, 0x01, 0x28, 0x02, 0x3a, 0x04, 0x33, 0x2e, 0x31, 0x34, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x2d, 0x0a, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0xb8, 0x02, 0x20, 0x01, 0x28, 0x10, 0x3a, 0x01, 0x31, 0x52, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0xb9, 0x02, 0x20, 0x01, 0x28, 0x06, 0x3a, 0x01, 0x31, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2e, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0xba, 0x02, 0x20, 0x01, 0x28, 0x01, 0x3a, 0x06, 0x33, 0x2e, 0x31, 0x34, 0x31, 0x35, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x37, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0xbb, 0x02, 0x20, 0x01, 0x28, 0x09, 0x3a, 0x0f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x22, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x21, 0x22, 0x0a, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x3c, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0xbc, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x3a, 0x16, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x5c, 0x33, 0x33, 0x36, 0x5c, 0x32, 0x35, 0x35, 0x5c, 0x32, 0x37, 0x36, 0x5c, 0x33, 0x35, 0x37, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0xde, 0x02, 0x20, 0x01, 0x28, 0x09, 0x3a, 0x00, 0x52, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5a, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x12, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0xdf, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x3a, 0x00, 0x52, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5a, 0x65, 0x72, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x14, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x6e, 0x65, 0x67, 0x69, 0x6e, 0x66, 0x18, 0x90, 0x03, 0x20, 0x01, 0x28, 0x02, 0x3a, 0x04, 0x2d, 0x69, 0x6e, 0x66, 0x52, 0x12, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x4e, 0x65, 0x67, 0x69, 0x6e, 0x66, 0x12, 0x36, 0x0a, 0x14, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x6e, 0x66, 0x18, 0x91, 0x03, 0x20, 0x01, 0x28, 0x02, 0x3a, 0x03, 0x69, 0x6e, 0x66, 0x52, 0x12, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x6e, 0x66, 0x12, 0x30, 0x0a, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x6e, 0x61, 0x6e, 0x18, 0x92, 0x03, 0x20, 0x01, 0x28, 0x02, 0x3a, 0x03, 0x6e, 0x61, 0x6e, 0x52, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x4e, 0x61, 0x6e, 0x12, 0x39, 0x0a, 0x15, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x65, 0x67, 0x69, 0x6e, 0x66, 0x18, 0x93, 0x03, 0x20, 0x01, 0x28, 0x01, 0x3a, 0x04, 0x2d, 0x69, 0x6e, 0x66, 0x52, 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x4e, 0x65, 0x67, 0x69, 0x6e, 0x66, 0x12, 0x38, 0x0a, 0x15, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x6e, 0x66, 0x18, 0x94, 0x03, 0x20, 0x01, 0x28, 0x01, 0x3a, 0x03, 0x69, 0x6e, 0x66, 0x52, 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x6e, 0x66, 0x12, 0x32, 0x0a, 0x12, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6e, 0x18, 0x95, 0x03, 0x20, 0x01, 0x28, 0x01, 0x3a, 0x03, 0x6e, 0x61, 0x6e, 0x52, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6e, 0x12, 0x63, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0xf4, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x6c, 0x0a, 0x12, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xf5, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x66, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0xf6, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0xd9, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x4e, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0xda, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0xdb, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x24, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0xdc, 0x04, 0x20, 0x01, 0x28, 0x11, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x24, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0xdd, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x22, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0xde, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x24, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0xdf, 0x04, 0x20, 0x01, 0x28, 0x12, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x24, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0xe0, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x28, 0x0a, 0x0e, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0xe1, 0x04, 0x20, 0x01, 0x28, 0x0f, 0x48, 0x00, 0x52, 0x0d, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x26, 0x0a, 0x0d, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0xe2, 0x04, 0x20, 0x01, 0x28, 0x07, 0x48, 0x00, 0x52, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x22, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0xe3, 0x04, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x28, 0x0a, 0x0e, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0xe4, 0x04, 0x20, 0x01, 0x28, 0x10, 0x48, 0x00, 0x52, 0x0d, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x26, 0x0a, 0x0d, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0xe5, 0x04, 0x20, 0x01, 0x28, 0x06, 0x48, 0x00, 0x52, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x24, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0xe6, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x24, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0xe7, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x22, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0xe8, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x57, 0x0a, 0x0d, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xe9, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x55, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0xea, 0x04, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x30, 0x0a, 0x11, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x18, 0xff, 0xff, 0xff, 0xff, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x4c, 0x61, 0x72, 0x67, 0x65, 0x73, 0x74, 0x54, 0x61, 0x67, 0x12, 0x21, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x74, 0x77, 0x6f, 0x5f, 0x31, 0x18, 0xbc, 0x05, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x54, 0x77, 0x6f, 0x31, 0x12, 0x21, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x74, 0x77, 0x6f, 0x5f, 0x32, 0x18, 0xbd, 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x54, 0x77, 0x6f, 0x32, 0x1a, 0x36, 0x0a, 0x0d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x36, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x77, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x37, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0xdb, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x74, 0x0a, 0x15, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x45, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x6f, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x42, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0a, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0xeb, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x1a, 0x09, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x19, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x08, 0x0a, 0x04, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x74, 0x77, 0x6f, 0x4a, 0x06, 0x08, 0x90, 0x4e, 0x10, 0x91, 0x4e, 0x4a, 0x06, 0x08, 0x91, 0x4e, 0x10, 0x92, 0x4e, 0x52, 0x0c, 0x54, 0x45, 0x4e, 0x5f, 0x54, 0x48, 0x4f, 0x55, 0x53, 0x41, 0x4e, 0x44, 0x52, 0x14, 0x54, 0x45, 0x4e, 0x5f, 0x54, 0x48, 0x4f, 0x55, 0x53, 0x41, 0x4e, 0x44, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x4f, 0x4e, 0x45, 0x42, 0x3e, 0x5a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, } var ( file_cmd_protoc_gen_go_testdata_proto2_fields_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_proto2_fields_proto_rawDescData = file_cmd_protoc_gen_go_testdata_proto2_fields_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_proto2_fields_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_proto2_fields_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_proto2_fields_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_proto2_fields_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_proto2_fields_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_proto2_fields_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_cmd_protoc_gen_go_testdata_proto2_fields_proto_msgTypes = make([]protoimpl.MessageInfo, 9) var file_cmd_protoc_gen_go_testdata_proto2_fields_proto_goTypes = []interface{}{ (FieldTestMessage_Enum)(0), // 0: goproto.protoc.proto2.FieldTestMessage.Enum (*FieldTestMessage)(nil), // 1: goproto.protoc.proto2.FieldTestMessage (*FieldTestMessage_OptionalGroup)(nil), // 2: goproto.protoc.proto2.FieldTestMessage.OptionalGroup (*FieldTestMessage_RequiredGroup)(nil), // 3: goproto.protoc.proto2.FieldTestMessage.RequiredGroup (*FieldTestMessage_RepeatedGroup)(nil), // 4: goproto.protoc.proto2.FieldTestMessage.RepeatedGroup nil, // 5: goproto.protoc.proto2.FieldTestMessage.MapInt32Int64Entry nil, // 6: goproto.protoc.proto2.FieldTestMessage.MapStringMessageEntry nil, // 7: goproto.protoc.proto2.FieldTestMessage.MapFixed64EnumEntry (*FieldTestMessage_OneofGroup)(nil), // 8: goproto.protoc.proto2.FieldTestMessage.OneofGroup (*FieldTestMessage_Message)(nil), // 9: goproto.protoc.proto2.FieldTestMessage.Message } var file_cmd_protoc_gen_go_testdata_proto2_fields_proto_depIdxs = []int32{ 0, // 0: goproto.protoc.proto2.FieldTestMessage.optional_enum:type_name -> goproto.protoc.proto2.FieldTestMessage.Enum 9, // 1: goproto.protoc.proto2.FieldTestMessage.optional_Message:type_name -> goproto.protoc.proto2.FieldTestMessage.Message 2, // 2: goproto.protoc.proto2.FieldTestMessage.optionalgroup:type_name -> goproto.protoc.proto2.FieldTestMessage.OptionalGroup 0, // 3: goproto.protoc.proto2.FieldTestMessage.required_enum:type_name -> goproto.protoc.proto2.FieldTestMessage.Enum 9, // 4: goproto.protoc.proto2.FieldTestMessage.required_Message:type_name -> goproto.protoc.proto2.FieldTestMessage.Message 3, // 5: goproto.protoc.proto2.FieldTestMessage.requiredgroup:type_name -> goproto.protoc.proto2.FieldTestMessage.RequiredGroup 0, // 6: goproto.protoc.proto2.FieldTestMessage.repeated_enum:type_name -> goproto.protoc.proto2.FieldTestMessage.Enum 9, // 7: goproto.protoc.proto2.FieldTestMessage.repeated_Message:type_name -> goproto.protoc.proto2.FieldTestMessage.Message 4, // 8: goproto.protoc.proto2.FieldTestMessage.repeatedgroup:type_name -> goproto.protoc.proto2.FieldTestMessage.RepeatedGroup 0, // 9: goproto.protoc.proto2.FieldTestMessage.default_enum:type_name -> goproto.protoc.proto2.FieldTestMessage.Enum 5, // 10: goproto.protoc.proto2.FieldTestMessage.map_int32_int64:type_name -> goproto.protoc.proto2.FieldTestMessage.MapInt32Int64Entry 6, // 11: goproto.protoc.proto2.FieldTestMessage.map_string_message:type_name -> goproto.protoc.proto2.FieldTestMessage.MapStringMessageEntry 7, // 12: goproto.protoc.proto2.FieldTestMessage.map_fixed64_enum:type_name -> goproto.protoc.proto2.FieldTestMessage.MapFixed64EnumEntry 0, // 13: goproto.protoc.proto2.FieldTestMessage.oneof_enum:type_name -> goproto.protoc.proto2.FieldTestMessage.Enum 9, // 14: goproto.protoc.proto2.FieldTestMessage.oneof_Message:type_name -> goproto.protoc.proto2.FieldTestMessage.Message 8, // 15: goproto.protoc.proto2.FieldTestMessage.oneofgroup:type_name -> goproto.protoc.proto2.FieldTestMessage.OneofGroup 9, // 16: goproto.protoc.proto2.FieldTestMessage.MapStringMessageEntry.value:type_name -> goproto.protoc.proto2.FieldTestMessage.Message 0, // 17: goproto.protoc.proto2.FieldTestMessage.MapFixed64EnumEntry.value:type_name -> goproto.protoc.proto2.FieldTestMessage.Enum 18, // [18:18] is the sub-list for method output_type 18, // [18:18] is the sub-list for method input_type 18, // [18:18] is the sub-list for extension type_name 18, // [18:18] is the sub-list for extension extendee 0, // [0:18] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_proto2_fields_proto_init() } func file_cmd_protoc_gen_go_testdata_proto2_fields_proto_init() { if File_cmd_protoc_gen_go_testdata_proto2_fields_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_proto2_fields_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FieldTestMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd_protoc_gen_go_testdata_proto2_fields_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FieldTestMessage_OptionalGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd_protoc_gen_go_testdata_proto2_fields_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FieldTestMessage_RequiredGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd_protoc_gen_go_testdata_proto2_fields_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FieldTestMessage_RepeatedGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd_protoc_gen_go_testdata_proto2_fields_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FieldTestMessage_OneofGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd_protoc_gen_go_testdata_proto2_fields_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FieldTestMessage_Message); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_cmd_protoc_gen_go_testdata_proto2_fields_proto_msgTypes[0].OneofWrappers = []interface{}{ (*FieldTestMessage_OneofBool)(nil), (*FieldTestMessage_OneofEnum)(nil), (*FieldTestMessage_OneofInt32)(nil), (*FieldTestMessage_OneofSint32)(nil), (*FieldTestMessage_OneofUint32)(nil), (*FieldTestMessage_OneofInt64)(nil), (*FieldTestMessage_OneofSint64)(nil), (*FieldTestMessage_OneofUint64)(nil), (*FieldTestMessage_OneofSfixed32)(nil), (*FieldTestMessage_OneofFixed32)(nil), (*FieldTestMessage_OneofFloat)(nil), (*FieldTestMessage_OneofSfixed64)(nil), (*FieldTestMessage_OneofFixed64)(nil), (*FieldTestMessage_OneofDouble)(nil), (*FieldTestMessage_OneofString)(nil), (*FieldTestMessage_OneofBytes)(nil), (*FieldTestMessage_Oneof_Message)(nil), (*FieldTestMessage_Oneofgroup)(nil), (*FieldTestMessage_OneofLargestTag)(nil), (*FieldTestMessage_OneofTwo_1)(nil), (*FieldTestMessage_OneofTwo_2)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_proto2_fields_proto_rawDesc, NumEnums: 1, NumMessages: 9, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_proto2_fields_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_proto2_fields_proto_depIdxs, EnumInfos: file_cmd_protoc_gen_go_testdata_proto2_fields_proto_enumTypes, MessageInfos: file_cmd_protoc_gen_go_testdata_proto2_fields_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_proto2_fields_proto = out.File file_cmd_protoc_gen_go_testdata_proto2_fields_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_proto2_fields_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_proto2_fields_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/proto2/fields.proto000066400000000000000000000124351411250152500267760ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.protoc.proto2; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/proto2"; message FieldTestMessage { optional bool optional_bool = 1; optional Enum optional_enum = 2; optional int32 optional_int32 = 3; optional sint32 optional_sint32 = 4; optional uint32 optional_uint32 = 5; optional int64 optional_int64 = 6; optional sint64 optional_sint64 = 7; optional uint64 optional_uint64 = 8; optional sfixed32 optional_sfixed32 = 9; optional fixed32 optional_fixed32 = 10; optional float optional_float = 11; optional sfixed64 optional_sfixed64 = 12; optional fixed64 optional_fixed64 = 13; optional double optional_double = 14; optional string optional_string = 15; optional bytes optional_bytes = 16; optional Message optional_Message = 17; optional group OptionalGroup = 18 { optional string optional_group = 19; } required bool required_bool = 101; required Enum required_enum = 102; required int32 required_int32 = 103; required sint32 required_sint32 = 104; required uint32 required_uint32 = 105; required int64 required_int64 = 106; required sint64 required_sint64 = 107; required uint64 required_uint64 = 108; required sfixed32 required_sfixed32 = 109; required fixed32 required_fixed32 = 110; required float required_float = 111; required sfixed64 required_sfixed64 = 112; required fixed64 required_fixed64 = 113; required double required_double = 114; required string required_string = 115; required bytes required_bytes = 116; required Message required_Message = 117; required group RequiredGroup = 118 { required string required_group = 119; } repeated bool repeated_bool = 201; repeated Enum repeated_enum = 202; repeated int32 repeated_int32 = 203; repeated sint32 repeated_sint32 = 204; repeated uint32 repeated_uint32 = 205; repeated int64 repeated_int64 = 206; repeated sint64 repeated_sint64 = 207; repeated uint64 repeated_uint64 = 208; repeated sfixed32 repeated_sfixed32 = 209; repeated fixed32 repeated_fixed32 = 210; repeated float repeated_float = 211; repeated sfixed64 repeated_sfixed64 = 212; repeated fixed64 repeated_fixed64 = 213; repeated double repeated_double = 214; repeated string repeated_string = 215; repeated bytes repeated_bytes = 216; repeated Message repeated_Message = 217; repeated group RepeatedGroup = 218 { repeated string repeated_group = 219; } optional bool default_bool = 301 [default=true]; optional Enum default_enum = 302 [default=ONE]; optional int32 default_int32 = 303 [default=1]; optional sint32 default_sint32 = 304 [default=1]; optional uint32 default_uint32 = 305 [default=1]; optional int64 default_int64 = 306 [default=1]; optional sint64 default_sint64 = 307 [default=1]; optional uint64 default_uint64 = 308 [default=1]; optional sfixed32 default_sfixed32 = 309 [default=1]; optional fixed32 default_fixed32 = 310 [default=1]; optional float default_float = 311 [default=3.14]; optional sfixed64 default_sfixed64 = 312 [default=1]; optional fixed64 default_fixed64 = 313 [default=1]; optional double default_double = 314 [default=3.1415]; optional string default_string = 315 [default="hello,\"world!\"\n"]; optional bytes default_bytes = 316 [default="hello,\xde\xad\xbe\xef"]; optional string default_zero_string = 350 [default=""]; optional bytes default_zero_bytes = 351 [default=""]; optional float default_float_neginf = 400 [default=-inf]; optional float default_float_posinf = 401 [default=inf]; optional float default_float_nan = 402 [default=nan]; optional double default_double_neginf = 403 [default=-inf]; optional double default_double_posinf = 404 [default=inf]; optional double default_double_nan = 405 [default=nan]; map map_int32_int64 = 500; map map_string_message = 501; map map_fixed64_enum = 502; oneof oneof_field { bool oneof_bool = 601; Enum oneof_enum = 602; int32 oneof_int32 = 603; sint32 oneof_sint32 = 604; uint32 oneof_uint32 = 605; int64 oneof_int64 = 606; sint64 oneof_sint64 = 607; uint64 oneof_uint64 = 608; sfixed32 oneof_sfixed32 = 609; fixed32 oneof_fixed32 = 610; float oneof_float = 611; sfixed64 oneof_sfixed64 = 612; fixed64 oneof_fixed64 = 613; double oneof_double = 614; string oneof_string = 615; bytes oneof_bytes = 616; Message oneof_Message = 617; group OneofGroup = 618 { optional string oneof_group_field = 619; } int32 oneof_largest_tag = 536870911; } oneof oneof_two { int32 oneof_two_1 = 700; int64 oneof_two_2 = 701; } enum Enum { ZERO = 0; ONE = 1; } message Message {} reserved 10000, 10001; reserved "TEN_THOUSAND", "TEN_THOUSAND_AND_ONE"; } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/proto2/nested_messages.pb.go000066400000000000000000000242411411250152500305410ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/proto2/nested_messages.proto package proto2 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Layer1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields L2 *Layer1_Layer2 `protobuf:"bytes,1,opt,name=l2" json:"l2,omitempty"` L3 *Layer1_Layer2_Layer3 `protobuf:"bytes,2,opt,name=l3" json:"l3,omitempty"` } func (x *Layer1) Reset() { *x = Layer1{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Layer1) String() string { return protoimpl.X.MessageStringOf(x) } func (*Layer1) ProtoMessage() {} func (x *Layer1) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Layer1.ProtoReflect.Descriptor instead. func (*Layer1) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_rawDescGZIP(), []int{0} } func (x *Layer1) GetL2() *Layer1_Layer2 { if x != nil { return x.L2 } return nil } func (x *Layer1) GetL3() *Layer1_Layer2_Layer3 { if x != nil { return x.L3 } return nil } type Layer1_Layer2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields L3 *Layer1_Layer2_Layer3 `protobuf:"bytes,1,opt,name=l3" json:"l3,omitempty"` } func (x *Layer1_Layer2) Reset() { *x = Layer1_Layer2{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Layer1_Layer2) String() string { return protoimpl.X.MessageStringOf(x) } func (*Layer1_Layer2) ProtoMessage() {} func (x *Layer1_Layer2) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Layer1_Layer2.ProtoReflect.Descriptor instead. func (*Layer1_Layer2) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_rawDescGZIP(), []int{0, 0} } func (x *Layer1_Layer2) GetL3() *Layer1_Layer2_Layer3 { if x != nil { return x.L3 } return nil } type Layer1_Layer2_Layer3 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Layer1_Layer2_Layer3) Reset() { *x = Layer1_Layer2_Layer3{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Layer1_Layer2_Layer3) String() string { return protoimpl.X.MessageStringOf(x) } func (*Layer1_Layer2_Layer3) ProtoMessage() {} func (x *Layer1_Layer2_Layer3) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Layer1_Layer2_Layer3.ProtoReflect.Descriptor instead. func (*Layer1_Layer2_Layer3) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_rawDescGZIP(), []int{0, 0, 0} } var File_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_rawDesc = []byte{ 0x0a, 0x37, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x22, 0xcc, 0x01, 0x0a, 0x06, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x12, 0x34, 0x0a, 0x02, 0x6c, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x52, 0x02, 0x6c, 0x32, 0x12, 0x3b, 0x0a, 0x02, 0x6c, 0x33, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x33, 0x52, 0x02, 0x6c, 0x33, 0x1a, 0x4f, 0x0a, 0x06, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x12, 0x3b, 0x0a, 0x02, 0x6c, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x33, 0x52, 0x02, 0x6c, 0x33, 0x1a, 0x08, 0x0a, 0x06, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x33, 0x42, 0x3e, 0x5a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, } var ( file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_rawDescData = file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_msgTypes = make([]protoimpl.MessageInfo, 3) var file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_goTypes = []interface{}{ (*Layer1)(nil), // 0: goproto.protoc.proto2.Layer1 (*Layer1_Layer2)(nil), // 1: goproto.protoc.proto2.Layer1.Layer2 (*Layer1_Layer2_Layer3)(nil), // 2: goproto.protoc.proto2.Layer1.Layer2.Layer3 } var file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_depIdxs = []int32{ 1, // 0: goproto.protoc.proto2.Layer1.l2:type_name -> goproto.protoc.proto2.Layer1.Layer2 2, // 1: goproto.protoc.proto2.Layer1.l3:type_name -> goproto.protoc.proto2.Layer1.Layer2.Layer3 2, // 2: goproto.protoc.proto2.Layer1.Layer2.l3:type_name -> goproto.protoc.proto2.Layer1.Layer2.Layer3 3, // [3:3] is the sub-list for method output_type 3, // [3:3] is the sub-list for method input_type 3, // [3:3] is the sub-list for extension type_name 3, // [3:3] is the sub-list for extension extendee 0, // [0:3] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_init() } func file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_init() { if File_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Layer1); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Layer1_Layer2); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Layer1_Layer2_Layer3); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_rawDesc, NumEnums: 0, NumMessages: 3, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_depIdxs, MessageInfos: file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto = out.File file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_proto2_nested_messages_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/proto2/nested_messages.proto000066400000000000000000000007051411250152500306760ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.protoc.proto2; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/proto2"; message Layer1 { message Layer2 { message Layer3 { } optional Layer3 l3 = 1; } optional Layer2 l2 = 1; optional Layer2.Layer3 l3 = 2; } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/proto2/proto2.pb.go000066400000000000000000000133241411250152500266150ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/proto2/proto2.proto package proto2 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Message struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields I32 *int32 `protobuf:"varint,1,opt,name=i32" json:"i32,omitempty"` M *Message `protobuf:"bytes,2,opt,name=m" json:"m,omitempty"` } func (x *Message) Reset() { *x = Message{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message) ProtoMessage() {} func (x *Message) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message.ProtoReflect.Descriptor instead. func (*Message) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_rawDescGZIP(), []int{0} } func (x *Message) GetI32() int32 { if x != nil && x.I32 != nil { return *x.I32 } return 0 } func (x *Message) GetM() *Message { if x != nil { return x.M } return nil } var File_cmd_protoc_gen_go_testdata_proto2_proto2_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_rawDesc = []byte{ 0x0a, 0x2e, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x22, 0x49, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x33, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x69, 0x33, 0x32, 0x12, 0x2c, 0x0a, 0x01, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x01, 0x6d, 0x42, 0x3e, 0x5a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, } var ( file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_rawDescData = file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_goTypes = []interface{}{ (*Message)(nil), // 0: goproto.protoc.proto2.Message } var file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_depIdxs = []int32{ 0, // 0: goproto.protoc.proto2.Message.m:type_name -> goproto.protoc.proto2.Message 1, // [1:1] is the sub-list for method output_type 1, // [1:1] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name 1, // [1:1] is the sub-list for extension extendee 0, // [0:1] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_init() } func file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_init() { if File_cmd_protoc_gen_go_testdata_proto2_proto2_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_depIdxs, MessageInfos: file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_proto2_proto2_proto = out.File file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_proto2_proto2_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/proto2/proto2.proto000066400000000000000000000005621411250152500267530ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.protoc.proto2; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/proto2"; message Message { optional int32 i32 = 1; optional Message m = 2; } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/proto3/000077500000000000000000000000001411250152500244375ustar00rootroot00000000000000golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/proto3/enum.pb.go000066400000000000000000000113161411250152500263340ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/proto3/enum.proto package proto3 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Enum int32 const ( Enum_ZERO Enum = 0 Enum_ONE Enum = 1 Enum_TWO Enum = 2 ) // Enum value maps for Enum. var ( Enum_name = map[int32]string{ 0: "ZERO", 1: "ONE", 2: "TWO", } Enum_value = map[string]int32{ "ZERO": 0, "ONE": 1, "TWO": 2, } ) func (x Enum) Enum() *Enum { p := new(Enum) *p = x return p } func (x Enum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum) Descriptor() protoreflect.EnumDescriptor { return file_cmd_protoc_gen_go_testdata_proto3_enum_proto_enumTypes[0].Descriptor() } func (Enum) Type() protoreflect.EnumType { return &file_cmd_protoc_gen_go_testdata_proto3_enum_proto_enumTypes[0] } func (x Enum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Enum.Descriptor instead. func (Enum) EnumDescriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_proto3_enum_proto_rawDescGZIP(), []int{0} } var File_cmd_protoc_gen_go_testdata_proto3_enum_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_proto3_enum_proto_rawDesc = []byte{ 0x0a, 0x2c, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2f, 0x65, 0x6e, 0x75, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2a, 0x22, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x08, 0x0a, 0x04, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x57, 0x4f, 0x10, 0x02, 0x42, 0x3e, 0x5a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_cmd_protoc_gen_go_testdata_proto3_enum_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_proto3_enum_proto_rawDescData = file_cmd_protoc_gen_go_testdata_proto3_enum_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_proto3_enum_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_proto3_enum_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_proto3_enum_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_proto3_enum_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_proto3_enum_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_proto3_enum_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_cmd_protoc_gen_go_testdata_proto3_enum_proto_goTypes = []interface{}{ (Enum)(0), // 0: goproto.protoc.proto3.Enum } var file_cmd_protoc_gen_go_testdata_proto3_enum_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_proto3_enum_proto_init() } func file_cmd_protoc_gen_go_testdata_proto3_enum_proto_init() { if File_cmd_protoc_gen_go_testdata_proto3_enum_proto != nil { return } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_proto3_enum_proto_rawDesc, NumEnums: 1, NumMessages: 0, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_proto3_enum_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_proto3_enum_proto_depIdxs, EnumInfos: file_cmd_protoc_gen_go_testdata_proto3_enum_proto_enumTypes, }.Build() File_cmd_protoc_gen_go_testdata_proto3_enum_proto = out.File file_cmd_protoc_gen_go_testdata_proto3_enum_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_proto3_enum_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_proto3_enum_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/proto3/enum.proto000066400000000000000000000005311411250152500264670ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package goproto.protoc.proto3; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/proto3"; enum Enum { ZERO = 0; ONE = 1; TWO = 2; } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/proto3/fields.pb.go000066400000000000000000001027141411250152500266410ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: cmd/protoc-gen-go/testdata/proto3/fields.proto package proto3 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type FieldTestMessage_Enum int32 const ( FieldTestMessage_ZERO FieldTestMessage_Enum = 0 ) // Enum value maps for FieldTestMessage_Enum. var ( FieldTestMessage_Enum_name = map[int32]string{ 0: "ZERO", } FieldTestMessage_Enum_value = map[string]int32{ "ZERO": 0, } ) func (x FieldTestMessage_Enum) Enum() *FieldTestMessage_Enum { p := new(FieldTestMessage_Enum) *p = x return p } func (x FieldTestMessage_Enum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (FieldTestMessage_Enum) Descriptor() protoreflect.EnumDescriptor { return file_cmd_protoc_gen_go_testdata_proto3_fields_proto_enumTypes[0].Descriptor() } func (FieldTestMessage_Enum) Type() protoreflect.EnumType { return &file_cmd_protoc_gen_go_testdata_proto3_fields_proto_enumTypes[0] } func (x FieldTestMessage_Enum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use FieldTestMessage_Enum.Descriptor instead. func (FieldTestMessage_Enum) EnumDescriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_proto3_fields_proto_rawDescGZIP(), []int{0, 0} } type FieldTestMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OptionalBool string `protobuf:"bytes,1,opt,name=optional_bool,json=optionalBool,proto3" json:"optional_bool,omitempty"` OptionalEnum FieldTestMessage_Enum `protobuf:"varint,2,opt,name=optional_enum,json=optionalEnum,proto3,enum=goproto.protoc.proto3.FieldTestMessage_Enum" json:"optional_enum,omitempty"` OptionalInt32 int32 `protobuf:"varint,3,opt,name=optional_int32,json=optionalInt32,proto3" json:"optional_int32,omitempty"` OptionalSint32 int32 `protobuf:"zigzag32,4,opt,name=optional_sint32,json=optionalSint32,proto3" json:"optional_sint32,omitempty"` OptionalUint32 uint32 `protobuf:"varint,5,opt,name=optional_uint32,json=optionalUint32,proto3" json:"optional_uint32,omitempty"` OptionalInt64 int64 `protobuf:"varint,6,opt,name=optional_int64,json=optionalInt64,proto3" json:"optional_int64,omitempty"` OptionalSint64 int64 `protobuf:"zigzag64,7,opt,name=optional_sint64,json=optionalSint64,proto3" json:"optional_sint64,omitempty"` OptionalUint64 uint64 `protobuf:"varint,8,opt,name=optional_uint64,json=optionalUint64,proto3" json:"optional_uint64,omitempty"` OptionalSfixed32 int32 `protobuf:"fixed32,9,opt,name=optional_sfixed32,json=optionalSfixed32,proto3" json:"optional_sfixed32,omitempty"` OptionalFixed32 uint32 `protobuf:"fixed32,10,opt,name=optional_fixed32,json=optionalFixed32,proto3" json:"optional_fixed32,omitempty"` OptionalFloat float32 `protobuf:"fixed32,11,opt,name=optional_float,json=optionalFloat,proto3" json:"optional_float,omitempty"` OptionalSfixed64 int64 `protobuf:"fixed64,12,opt,name=optional_sfixed64,json=optionalSfixed64,proto3" json:"optional_sfixed64,omitempty"` OptionalFixed64 uint64 `protobuf:"fixed64,13,opt,name=optional_fixed64,json=optionalFixed64,proto3" json:"optional_fixed64,omitempty"` OptionalDouble float64 `protobuf:"fixed64,14,opt,name=optional_double,json=optionalDouble,proto3" json:"optional_double,omitempty"` OptionalString string `protobuf:"bytes,15,opt,name=optional_string,json=optionalString,proto3" json:"optional_string,omitempty"` OptionalBytes []byte `protobuf:"bytes,16,opt,name=optional_bytes,json=optionalBytes,proto3" json:"optional_bytes,omitempty"` Optional_Message *FieldTestMessage_Message `protobuf:"bytes,17,opt,name=optional_Message,json=optionalMessage,proto3" json:"optional_Message,omitempty"` RepeatedBool []bool `protobuf:"varint,201,rep,packed,name=repeated_bool,json=repeatedBool,proto3" json:"repeated_bool,omitempty"` RepeatedEnum []FieldTestMessage_Enum `protobuf:"varint,202,rep,packed,name=repeated_enum,json=repeatedEnum,proto3,enum=goproto.protoc.proto3.FieldTestMessage_Enum" json:"repeated_enum,omitempty"` RepeatedInt32 []int32 `protobuf:"varint,203,rep,packed,name=repeated_int32,json=repeatedInt32,proto3" json:"repeated_int32,omitempty"` RepeatedSint32 []int32 `protobuf:"zigzag32,204,rep,packed,name=repeated_sint32,json=repeatedSint32,proto3" json:"repeated_sint32,omitempty"` RepeatedUint32 []uint32 `protobuf:"varint,205,rep,packed,name=repeated_uint32,json=repeatedUint32,proto3" json:"repeated_uint32,omitempty"` RepeatedInt64 []int64 `protobuf:"varint,206,rep,packed,name=repeated_int64,json=repeatedInt64,proto3" json:"repeated_int64,omitempty"` RepeatedSint64 []int64 `protobuf:"zigzag64,207,rep,packed,name=repeated_sint64,json=repeatedSint64,proto3" json:"repeated_sint64,omitempty"` RepeatedUint64 []uint64 `protobuf:"varint,208,rep,packed,name=repeated_uint64,json=repeatedUint64,proto3" json:"repeated_uint64,omitempty"` RepeatedSfixed32 []int32 `protobuf:"fixed32,209,rep,packed,name=repeated_sfixed32,json=repeatedSfixed32,proto3" json:"repeated_sfixed32,omitempty"` RepeatedFixed32 []uint32 `protobuf:"fixed32,210,rep,packed,name=repeated_fixed32,json=repeatedFixed32,proto3" json:"repeated_fixed32,omitempty"` RepeatedFloat []float32 `protobuf:"fixed32,211,rep,packed,name=repeated_float,json=repeatedFloat,proto3" json:"repeated_float,omitempty"` RepeatedSfixed64 []int64 `protobuf:"fixed64,212,rep,packed,name=repeated_sfixed64,json=repeatedSfixed64,proto3" json:"repeated_sfixed64,omitempty"` RepeatedFixed64 []uint64 `protobuf:"fixed64,213,rep,packed,name=repeated_fixed64,json=repeatedFixed64,proto3" json:"repeated_fixed64,omitempty"` RepeatedDouble []float64 `protobuf:"fixed64,214,rep,packed,name=repeated_double,json=repeatedDouble,proto3" json:"repeated_double,omitempty"` RepeatedString []string `protobuf:"bytes,215,rep,name=repeated_string,json=repeatedString,proto3" json:"repeated_string,omitempty"` RepeatedBytes [][]byte `protobuf:"bytes,216,rep,name=repeated_bytes,json=repeatedBytes,proto3" json:"repeated_bytes,omitempty"` Repeated_Message []*FieldTestMessage_Message `protobuf:"bytes,217,rep,name=repeated_Message,json=repeatedMessage,proto3" json:"repeated_Message,omitempty"` MapInt32Int64 map[int32]int64 `protobuf:"bytes,500,rep,name=map_int32_int64,json=mapInt32Int64,proto3" json:"map_int32_int64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapStringMessage map[string]*FieldTestMessage_Message `protobuf:"bytes,501,rep,name=map_string_message,json=mapStringMessage,proto3" json:"map_string_message,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` MapFixed64Enum map[uint64]FieldTestMessage_Enum `protobuf:"bytes,502,rep,name=map_fixed64_enum,json=mapFixed64Enum,proto3" json:"map_fixed64_enum,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=goproto.protoc.proto3.FieldTestMessage_Enum"` } func (x *FieldTestMessage) Reset() { *x = FieldTestMessage{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_proto3_fields_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FieldTestMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*FieldTestMessage) ProtoMessage() {} func (x *FieldTestMessage) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_proto3_fields_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FieldTestMessage.ProtoReflect.Descriptor instead. func (*FieldTestMessage) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_proto3_fields_proto_rawDescGZIP(), []int{0} } func (x *FieldTestMessage) GetOptionalBool() string { if x != nil { return x.OptionalBool } return "" } func (x *FieldTestMessage) GetOptionalEnum() FieldTestMessage_Enum { if x != nil { return x.OptionalEnum } return FieldTestMessage_ZERO } func (x *FieldTestMessage) GetOptionalInt32() int32 { if x != nil { return x.OptionalInt32 } return 0 } func (x *FieldTestMessage) GetOptionalSint32() int32 { if x != nil { return x.OptionalSint32 } return 0 } func (x *FieldTestMessage) GetOptionalUint32() uint32 { if x != nil { return x.OptionalUint32 } return 0 } func (x *FieldTestMessage) GetOptionalInt64() int64 { if x != nil { return x.OptionalInt64 } return 0 } func (x *FieldTestMessage) GetOptionalSint64() int64 { if x != nil { return x.OptionalSint64 } return 0 } func (x *FieldTestMessage) GetOptionalUint64() uint64 { if x != nil { return x.OptionalUint64 } return 0 } func (x *FieldTestMessage) GetOptionalSfixed32() int32 { if x != nil { return x.OptionalSfixed32 } return 0 } func (x *FieldTestMessage) GetOptionalFixed32() uint32 { if x != nil { return x.OptionalFixed32 } return 0 } func (x *FieldTestMessage) GetOptionalFloat() float32 { if x != nil { return x.OptionalFloat } return 0 } func (x *FieldTestMessage) GetOptionalSfixed64() int64 { if x != nil { return x.OptionalSfixed64 } return 0 } func (x *FieldTestMessage) GetOptionalFixed64() uint64 { if x != nil { return x.OptionalFixed64 } return 0 } func (x *FieldTestMessage) GetOptionalDouble() float64 { if x != nil { return x.OptionalDouble } return 0 } func (x *FieldTestMessage) GetOptionalString() string { if x != nil { return x.OptionalString } return "" } func (x *FieldTestMessage) GetOptionalBytes() []byte { if x != nil { return x.OptionalBytes } return nil } func (x *FieldTestMessage) GetOptional_Message() *FieldTestMessage_Message { if x != nil { return x.Optional_Message } return nil } func (x *FieldTestMessage) GetRepeatedBool() []bool { if x != nil { return x.RepeatedBool } return nil } func (x *FieldTestMessage) GetRepeatedEnum() []FieldTestMessage_Enum { if x != nil { return x.RepeatedEnum } return nil } func (x *FieldTestMessage) GetRepeatedInt32() []int32 { if x != nil { return x.RepeatedInt32 } return nil } func (x *FieldTestMessage) GetRepeatedSint32() []int32 { if x != nil { return x.RepeatedSint32 } return nil } func (x *FieldTestMessage) GetRepeatedUint32() []uint32 { if x != nil { return x.RepeatedUint32 } return nil } func (x *FieldTestMessage) GetRepeatedInt64() []int64 { if x != nil { return x.RepeatedInt64 } return nil } func (x *FieldTestMessage) GetRepeatedSint64() []int64 { if x != nil { return x.RepeatedSint64 } return nil } func (x *FieldTestMessage) GetRepeatedUint64() []uint64 { if x != nil { return x.RepeatedUint64 } return nil } func (x *FieldTestMessage) GetRepeatedSfixed32() []int32 { if x != nil { return x.RepeatedSfixed32 } return nil } func (x *FieldTestMessage) GetRepeatedFixed32() []uint32 { if x != nil { return x.RepeatedFixed32 } return nil } func (x *FieldTestMessage) GetRepeatedFloat() []float32 { if x != nil { return x.RepeatedFloat } return nil } func (x *FieldTestMessage) GetRepeatedSfixed64() []int64 { if x != nil { return x.RepeatedSfixed64 } return nil } func (x *FieldTestMessage) GetRepeatedFixed64() []uint64 { if x != nil { return x.RepeatedFixed64 } return nil } func (x *FieldTestMessage) GetRepeatedDouble() []float64 { if x != nil { return x.RepeatedDouble } return nil } func (x *FieldTestMessage) GetRepeatedString() []string { if x != nil { return x.RepeatedString } return nil } func (x *FieldTestMessage) GetRepeatedBytes() [][]byte { if x != nil { return x.RepeatedBytes } return nil } func (x *FieldTestMessage) GetRepeated_Message() []*FieldTestMessage_Message { if x != nil { return x.Repeated_Message } return nil } func (x *FieldTestMessage) GetMapInt32Int64() map[int32]int64 { if x != nil { return x.MapInt32Int64 } return nil } func (x *FieldTestMessage) GetMapStringMessage() map[string]*FieldTestMessage_Message { if x != nil { return x.MapStringMessage } return nil } func (x *FieldTestMessage) GetMapFixed64Enum() map[uint64]FieldTestMessage_Enum { if x != nil { return x.MapFixed64Enum } return nil } type FieldTestMessage_Message struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *FieldTestMessage_Message) Reset() { *x = FieldTestMessage_Message{} if protoimpl.UnsafeEnabled { mi := &file_cmd_protoc_gen_go_testdata_proto3_fields_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FieldTestMessage_Message) String() string { return protoimpl.X.MessageStringOf(x) } func (*FieldTestMessage_Message) ProtoMessage() {} func (x *FieldTestMessage_Message) ProtoReflect() protoreflect.Message { mi := &file_cmd_protoc_gen_go_testdata_proto3_fields_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FieldTestMessage_Message.ProtoReflect.Descriptor instead. func (*FieldTestMessage_Message) Descriptor() ([]byte, []int) { return file_cmd_protoc_gen_go_testdata_proto3_fields_proto_rawDescGZIP(), []int{0, 3} } var File_cmd_protoc_gen_go_testdata_proto3_fields_proto protoreflect.FileDescriptor var file_cmd_protoc_gen_go_testdata_proto3_fields_proto_rawDesc = []byte{ 0x0a, 0x2e, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x22, 0xd0, 0x11, 0x0a, 0x10, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x51, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x10, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x5a, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0xc9, 0x01, 0x20, 0x03, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0xca, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0xcb, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0xcc, 0x01, 0x20, 0x03, 0x28, 0x11, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0xcd, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0xce, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0xcf, 0x01, 0x20, 0x03, 0x28, 0x12, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0xd0, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2c, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0xd1, 0x01, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0xd2, 0x01, 0x20, 0x03, 0x28, 0x07, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0xd3, 0x01, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0xd4, 0x01, 0x20, 0x03, 0x28, 0x10, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0xd5, 0x01, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0xd6, 0x01, 0x20, 0x03, 0x28, 0x01, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0xd7, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0xd8, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x5b, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xd9, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x63, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0xf4, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x6c, 0x0a, 0x12, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xf5, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x66, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0xf6, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x75, 0x6d, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x74, 0x0a, 0x15, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x45, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x6f, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x42, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x09, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x10, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x08, 0x0a, 0x04, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x42, 0x3e, 0x5a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_cmd_protoc_gen_go_testdata_proto3_fields_proto_rawDescOnce sync.Once file_cmd_protoc_gen_go_testdata_proto3_fields_proto_rawDescData = file_cmd_protoc_gen_go_testdata_proto3_fields_proto_rawDesc ) func file_cmd_protoc_gen_go_testdata_proto3_fields_proto_rawDescGZIP() []byte { file_cmd_protoc_gen_go_testdata_proto3_fields_proto_rawDescOnce.Do(func() { file_cmd_protoc_gen_go_testdata_proto3_fields_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd_protoc_gen_go_testdata_proto3_fields_proto_rawDescData) }) return file_cmd_protoc_gen_go_testdata_proto3_fields_proto_rawDescData } var file_cmd_protoc_gen_go_testdata_proto3_fields_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_cmd_protoc_gen_go_testdata_proto3_fields_proto_msgTypes = make([]protoimpl.MessageInfo, 5) var file_cmd_protoc_gen_go_testdata_proto3_fields_proto_goTypes = []interface{}{ (FieldTestMessage_Enum)(0), // 0: goproto.protoc.proto3.FieldTestMessage.Enum (*FieldTestMessage)(nil), // 1: goproto.protoc.proto3.FieldTestMessage nil, // 2: goproto.protoc.proto3.FieldTestMessage.MapInt32Int64Entry nil, // 3: goproto.protoc.proto3.FieldTestMessage.MapStringMessageEntry nil, // 4: goproto.protoc.proto3.FieldTestMessage.MapFixed64EnumEntry (*FieldTestMessage_Message)(nil), // 5: goproto.protoc.proto3.FieldTestMessage.Message } var file_cmd_protoc_gen_go_testdata_proto3_fields_proto_depIdxs = []int32{ 0, // 0: goproto.protoc.proto3.FieldTestMessage.optional_enum:type_name -> goproto.protoc.proto3.FieldTestMessage.Enum 5, // 1: goproto.protoc.proto3.FieldTestMessage.optional_Message:type_name -> goproto.protoc.proto3.FieldTestMessage.Message 0, // 2: goproto.protoc.proto3.FieldTestMessage.repeated_enum:type_name -> goproto.protoc.proto3.FieldTestMessage.Enum 5, // 3: goproto.protoc.proto3.FieldTestMessage.repeated_Message:type_name -> goproto.protoc.proto3.FieldTestMessage.Message 2, // 4: goproto.protoc.proto3.FieldTestMessage.map_int32_int64:type_name -> goproto.protoc.proto3.FieldTestMessage.MapInt32Int64Entry 3, // 5: goproto.protoc.proto3.FieldTestMessage.map_string_message:type_name -> goproto.protoc.proto3.FieldTestMessage.MapStringMessageEntry 4, // 6: goproto.protoc.proto3.FieldTestMessage.map_fixed64_enum:type_name -> goproto.protoc.proto3.FieldTestMessage.MapFixed64EnumEntry 5, // 7: goproto.protoc.proto3.FieldTestMessage.MapStringMessageEntry.value:type_name -> goproto.protoc.proto3.FieldTestMessage.Message 0, // 8: goproto.protoc.proto3.FieldTestMessage.MapFixed64EnumEntry.value:type_name -> goproto.protoc.proto3.FieldTestMessage.Enum 9, // [9:9] is the sub-list for method output_type 9, // [9:9] is the sub-list for method input_type 9, // [9:9] is the sub-list for extension type_name 9, // [9:9] is the sub-list for extension extendee 0, // [0:9] is the sub-list for field type_name } func init() { file_cmd_protoc_gen_go_testdata_proto3_fields_proto_init() } func file_cmd_protoc_gen_go_testdata_proto3_fields_proto_init() { if File_cmd_protoc_gen_go_testdata_proto3_fields_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd_protoc_gen_go_testdata_proto3_fields_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FieldTestMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd_protoc_gen_go_testdata_proto3_fields_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FieldTestMessage_Message); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cmd_protoc_gen_go_testdata_proto3_fields_proto_rawDesc, NumEnums: 1, NumMessages: 5, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd_protoc_gen_go_testdata_proto3_fields_proto_goTypes, DependencyIndexes: file_cmd_protoc_gen_go_testdata_proto3_fields_proto_depIdxs, EnumInfos: file_cmd_protoc_gen_go_testdata_proto3_fields_proto_enumTypes, MessageInfos: file_cmd_protoc_gen_go_testdata_proto3_fields_proto_msgTypes, }.Build() File_cmd_protoc_gen_go_testdata_proto3_fields_proto = out.File file_cmd_protoc_gen_go_testdata_proto3_fields_proto_rawDesc = nil file_cmd_protoc_gen_go_testdata_proto3_fields_proto_goTypes = nil file_cmd_protoc_gen_go_testdata_proto3_fields_proto_depIdxs = nil } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/proto3/fields.proto000066400000000000000000000035201411250152500267720ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package goproto.protoc.proto3; option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/proto3"; message FieldTestMessage { string optional_bool = 1; Enum optional_enum = 2; int32 optional_int32 = 3; sint32 optional_sint32 = 4; uint32 optional_uint32 = 5; int64 optional_int64 = 6; sint64 optional_sint64 = 7; uint64 optional_uint64 = 8; sfixed32 optional_sfixed32 = 9; fixed32 optional_fixed32 = 10; float optional_float = 11; sfixed64 optional_sfixed64 = 12; fixed64 optional_fixed64 = 13; double optional_double = 14; string optional_string = 15; bytes optional_bytes = 16; Message optional_Message = 17; repeated bool repeated_bool = 201; repeated Enum repeated_enum = 202; repeated int32 repeated_int32 = 203; repeated sint32 repeated_sint32 = 204; repeated uint32 repeated_uint32 = 205; repeated int64 repeated_int64 = 206; repeated sint64 repeated_sint64 = 207; repeated uint64 repeated_uint64 = 208; repeated sfixed32 repeated_sfixed32 = 209; repeated fixed32 repeated_fixed32 = 210; repeated float repeated_float = 211; repeated sfixed64 repeated_sfixed64 = 212; repeated fixed64 repeated_fixed64 = 213; repeated double repeated_double = 214; repeated string repeated_string = 215; repeated bytes repeated_bytes = 216; repeated Message repeated_Message = 217; map map_int32_int64 = 500; map map_string_message = 501; map map_fixed64_enum = 502; enum Enum { ZERO = 0; } message Message {} } golang-google-protobuf-1.27.1/cmd/protoc-gen-go/testdata/registry_test.go000066400000000000000000000013021411250152500264430ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main import ( "testing" "google.golang.org/protobuf/internal/filedesc" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" ) func TestRegistry(t *testing.T) { var hasFiles bool protoregistry.GlobalFiles.RangeFiles(func(fd protoreflect.FileDescriptor) bool { if fd.(*filedesc.File).L2 != nil { t.Errorf("file %q eagerly went through lazy initialization", fd.Path()) } hasFiles = true return true }) if !hasFiles { t.Errorf("protoregistry.GlobalFiles is empty") } } golang-google-protobuf-1.27.1/compiler/000077500000000000000000000000001411250152500177675ustar00rootroot00000000000000golang-google-protobuf-1.27.1/compiler/protogen/000077500000000000000000000000001411250152500216245ustar00rootroot00000000000000golang-google-protobuf-1.27.1/compiler/protogen/protogen.go000066400000000000000000001173611411250152500240210ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package protogen provides support for writing protoc plugins. // // Plugins for protoc, the Protocol Buffer compiler, // are programs which read a CodeGeneratorRequest message from standard input // and write a CodeGeneratorResponse message to standard output. // This package provides support for writing plugins which generate Go code. package protogen import ( "bufio" "bytes" "fmt" "go/ast" "go/parser" "go/printer" "go/token" "go/types" "io/ioutil" "os" "path" "path/filepath" "sort" "strconv" "strings" "google.golang.org/protobuf/encoding/prototext" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/internal/strs" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protodesc" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/types/descriptorpb" "google.golang.org/protobuf/types/pluginpb" ) const goPackageDocURL = "https://developers.google.com/protocol-buffers/docs/reference/go-generated#package" // Run executes a function as a protoc plugin. // // It reads a CodeGeneratorRequest message from os.Stdin, invokes the plugin // function, and writes a CodeGeneratorResponse message to os.Stdout. // // If a failure occurs while reading or writing, Run prints an error to // os.Stderr and calls os.Exit(1). func (opts Options) Run(f func(*Plugin) error) { if err := run(opts, f); err != nil { fmt.Fprintf(os.Stderr, "%s: %v\n", filepath.Base(os.Args[0]), err) os.Exit(1) } } func run(opts Options, f func(*Plugin) error) error { if len(os.Args) > 1 { return fmt.Errorf("unknown argument %q (this program should be run by protoc, not directly)", os.Args[1]) } in, err := ioutil.ReadAll(os.Stdin) if err != nil { return err } req := &pluginpb.CodeGeneratorRequest{} if err := proto.Unmarshal(in, req); err != nil { return err } gen, err := opts.New(req) if err != nil { return err } if err := f(gen); err != nil { // Errors from the plugin function are reported by setting the // error field in the CodeGeneratorResponse. // // In contrast, errors that indicate a problem in protoc // itself (unparsable input, I/O errors, etc.) are reported // to stderr. gen.Error(err) } resp := gen.Response() out, err := proto.Marshal(resp) if err != nil { return err } if _, err := os.Stdout.Write(out); err != nil { return err } return nil } // A Plugin is a protoc plugin invocation. type Plugin struct { // Request is the CodeGeneratorRequest provided by protoc. Request *pluginpb.CodeGeneratorRequest // Files is the set of files to generate and everything they import. // Files appear in topological order, so each file appears before any // file that imports it. Files []*File FilesByPath map[string]*File // SupportedFeatures is the set of protobuf language features supported by // this generator plugin. See the documentation for // google.protobuf.CodeGeneratorResponse.supported_features for details. SupportedFeatures uint64 fileReg *protoregistry.Files enumsByName map[protoreflect.FullName]*Enum messagesByName map[protoreflect.FullName]*Message annotateCode bool pathType pathType module string genFiles []*GeneratedFile opts Options err error } type Options struct { // If ParamFunc is non-nil, it will be called with each unknown // generator parameter. // // Plugins for protoc can accept parameters from the command line, // passed in the --_out protoc, separated from the output // directory with a colon; e.g., // // --go_out==,=: // // Parameters passed in this fashion as a comma-separated list of // key=value pairs will be passed to the ParamFunc. // // The (flag.FlagSet).Set method matches this function signature, // so parameters can be converted into flags as in the following: // // var flags flag.FlagSet // value := flags.Bool("param", false, "") // opts := &protogen.Options{ // ParamFunc: flags.Set, // } // protogen.Run(opts, func(p *protogen.Plugin) error { // if *value { ... } // }) ParamFunc func(name, value string) error // ImportRewriteFunc is called with the import path of each package // imported by a generated file. It returns the import path to use // for this package. ImportRewriteFunc func(GoImportPath) GoImportPath } // New returns a new Plugin. func (opts Options) New(req *pluginpb.CodeGeneratorRequest) (*Plugin, error) { gen := &Plugin{ Request: req, FilesByPath: make(map[string]*File), fileReg: new(protoregistry.Files), enumsByName: make(map[protoreflect.FullName]*Enum), messagesByName: make(map[protoreflect.FullName]*Message), opts: opts, } packageNames := make(map[string]GoPackageName) // filename -> package name importPaths := make(map[string]GoImportPath) // filename -> import path for _, param := range strings.Split(req.GetParameter(), ",") { var value string if i := strings.Index(param, "="); i >= 0 { value = param[i+1:] param = param[0:i] } switch param { case "": // Ignore. case "module": gen.module = value case "paths": switch value { case "import": gen.pathType = pathTypeImport case "source_relative": gen.pathType = pathTypeSourceRelative default: return nil, fmt.Errorf(`unknown path type %q: want "import" or "source_relative"`, value) } case "annotate_code": switch value { case "true", "": gen.annotateCode = true case "false": default: return nil, fmt.Errorf(`bad value for parameter %q: want "true" or "false"`, param) } default: if param[0] == 'M' { impPath, pkgName := splitImportPathAndPackageName(value) if pkgName != "" { packageNames[param[1:]] = pkgName } if impPath != "" { importPaths[param[1:]] = impPath } continue } if opts.ParamFunc != nil { if err := opts.ParamFunc(param, value); err != nil { return nil, err } } } } // When the module= option is provided, we strip the module name // prefix from generated files. This only makes sense if generated // filenames are based on the import path. if gen.module != "" && gen.pathType == pathTypeSourceRelative { return nil, fmt.Errorf("cannot use module= with paths=source_relative") } // Figure out the import path and package name for each file. // // The rules here are complicated and have grown organically over time. // Interactions between different ways of specifying package information // may be surprising. // // The recommended approach is to include a go_package option in every // .proto source file specifying the full import path of the Go package // associated with this file. // // option go_package = "google.golang.org/protobuf/types/known/anypb"; // // Alternatively, build systems which want to exert full control over // import paths may specify M= flags. for _, fdesc := range gen.Request.ProtoFile { // The "M" command-line flags take precedence over // the "go_package" option in the .proto source file. filename := fdesc.GetName() impPath, pkgName := splitImportPathAndPackageName(fdesc.GetOptions().GetGoPackage()) if importPaths[filename] == "" && impPath != "" { importPaths[filename] = impPath } if packageNames[filename] == "" && pkgName != "" { packageNames[filename] = pkgName } switch { case importPaths[filename] == "": // The import path must be specified one way or another. return nil, fmt.Errorf( "unable to determine Go import path for %q\n\n"+ "Please specify either:\n"+ "\t• a \"go_package\" option in the .proto source file, or\n"+ "\t• a \"M\" argument on the command line.\n\n"+ "See %v for more information.\n", fdesc.GetName(), goPackageDocURL) case !strings.Contains(string(importPaths[filename]), ".") && !strings.Contains(string(importPaths[filename]), "/"): // Check that import paths contain at least a dot or slash to avoid // a common mistake where import path is confused with package name. return nil, fmt.Errorf( "invalid Go import path %q for %q\n\n"+ "The import path must contain at least one period ('.') or forward slash ('/') character.\n\n"+ "See %v for more information.\n", string(importPaths[filename]), fdesc.GetName(), goPackageDocURL) case packageNames[filename] == "": // If the package name is not explicitly specified, // then derive a reasonable package name from the import path. // // NOTE: The package name is derived first from the import path in // the "go_package" option (if present) before trying the "M" flag. // The inverted order for this is because the primary use of the "M" // flag is by build systems that have full control over the // import paths all packages, where it is generally expected that // the Go package name still be identical for the Go toolchain and // for custom build systems like Bazel. if impPath == "" { impPath = importPaths[filename] } packageNames[filename] = cleanPackageName(path.Base(string(impPath))) } } // Consistency check: Every file with the same Go import path should have // the same Go package name. packageFiles := make(map[GoImportPath][]string) for filename, importPath := range importPaths { if _, ok := packageNames[filename]; !ok { // Skip files mentioned in a M= parameter // but which do not appear in the CodeGeneratorRequest. continue } packageFiles[importPath] = append(packageFiles[importPath], filename) } for importPath, filenames := range packageFiles { for i := 1; i < len(filenames); i++ { if a, b := packageNames[filenames[0]], packageNames[filenames[i]]; a != b { return nil, fmt.Errorf("Go package %v has inconsistent names %v (%v) and %v (%v)", importPath, a, filenames[0], b, filenames[i]) } } } for _, fdesc := range gen.Request.ProtoFile { filename := fdesc.GetName() if gen.FilesByPath[filename] != nil { return nil, fmt.Errorf("duplicate file name: %q", filename) } f, err := newFile(gen, fdesc, packageNames[filename], importPaths[filename]) if err != nil { return nil, err } gen.Files = append(gen.Files, f) gen.FilesByPath[filename] = f } for _, filename := range gen.Request.FileToGenerate { f, ok := gen.FilesByPath[filename] if !ok { return nil, fmt.Errorf("no descriptor for generated file: %v", filename) } f.Generate = true } return gen, nil } // Error records an error in code generation. The generator will report the // error back to protoc and will not produce output. func (gen *Plugin) Error(err error) { if gen.err == nil { gen.err = err } } // Response returns the generator output. func (gen *Plugin) Response() *pluginpb.CodeGeneratorResponse { resp := &pluginpb.CodeGeneratorResponse{} if gen.err != nil { resp.Error = proto.String(gen.err.Error()) return resp } for _, g := range gen.genFiles { if g.skip { continue } content, err := g.Content() if err != nil { return &pluginpb.CodeGeneratorResponse{ Error: proto.String(err.Error()), } } filename := g.filename if gen.module != "" { trim := gen.module + "/" if !strings.HasPrefix(filename, trim) { return &pluginpb.CodeGeneratorResponse{ Error: proto.String(fmt.Sprintf("%v: generated file does not match prefix %q", filename, gen.module)), } } filename = strings.TrimPrefix(filename, trim) } resp.File = append(resp.File, &pluginpb.CodeGeneratorResponse_File{ Name: proto.String(filename), Content: proto.String(string(content)), }) if gen.annotateCode && strings.HasSuffix(g.filename, ".go") { meta, err := g.metaFile(content) if err != nil { return &pluginpb.CodeGeneratorResponse{ Error: proto.String(err.Error()), } } resp.File = append(resp.File, &pluginpb.CodeGeneratorResponse_File{ Name: proto.String(filename + ".meta"), Content: proto.String(meta), }) } } if gen.SupportedFeatures > 0 { resp.SupportedFeatures = proto.Uint64(gen.SupportedFeatures) } return resp } // A File describes a .proto source file. type File struct { Desc protoreflect.FileDescriptor Proto *descriptorpb.FileDescriptorProto GoDescriptorIdent GoIdent // name of Go variable for the file descriptor GoPackageName GoPackageName // name of this file's Go package GoImportPath GoImportPath // import path of this file's Go package Enums []*Enum // top-level enum declarations Messages []*Message // top-level message declarations Extensions []*Extension // top-level extension declarations Services []*Service // top-level service declarations Generate bool // true if we should generate code for this file // GeneratedFilenamePrefix is used to construct filenames for generated // files associated with this source file. // // For example, the source file "dir/foo.proto" might have a filename prefix // of "dir/foo". Appending ".pb.go" produces an output file of "dir/foo.pb.go". GeneratedFilenamePrefix string location Location } func newFile(gen *Plugin, p *descriptorpb.FileDescriptorProto, packageName GoPackageName, importPath GoImportPath) (*File, error) { desc, err := protodesc.NewFile(p, gen.fileReg) if err != nil { return nil, fmt.Errorf("invalid FileDescriptorProto %q: %v", p.GetName(), err) } if err := gen.fileReg.RegisterFile(desc); err != nil { return nil, fmt.Errorf("cannot register descriptor %q: %v", p.GetName(), err) } f := &File{ Desc: desc, Proto: p, GoPackageName: packageName, GoImportPath: importPath, location: Location{SourceFile: desc.Path()}, } // Determine the prefix for generated Go files. prefix := p.GetName() if ext := path.Ext(prefix); ext == ".proto" || ext == ".protodevel" { prefix = prefix[:len(prefix)-len(ext)] } switch gen.pathType { case pathTypeImport: // If paths=import, the output filename is derived from the Go import path. prefix = path.Join(string(f.GoImportPath), path.Base(prefix)) case pathTypeSourceRelative: // If paths=source_relative, the output filename is derived from // the input filename. } f.GoDescriptorIdent = GoIdent{ GoName: "File_" + strs.GoSanitized(p.GetName()), GoImportPath: f.GoImportPath, } f.GeneratedFilenamePrefix = prefix for i, eds := 0, desc.Enums(); i < eds.Len(); i++ { f.Enums = append(f.Enums, newEnum(gen, f, nil, eds.Get(i))) } for i, mds := 0, desc.Messages(); i < mds.Len(); i++ { f.Messages = append(f.Messages, newMessage(gen, f, nil, mds.Get(i))) } for i, xds := 0, desc.Extensions(); i < xds.Len(); i++ { f.Extensions = append(f.Extensions, newField(gen, f, nil, xds.Get(i))) } for i, sds := 0, desc.Services(); i < sds.Len(); i++ { f.Services = append(f.Services, newService(gen, f, sds.Get(i))) } for _, message := range f.Messages { if err := message.resolveDependencies(gen); err != nil { return nil, err } } for _, extension := range f.Extensions { if err := extension.resolveDependencies(gen); err != nil { return nil, err } } for _, service := range f.Services { for _, method := range service.Methods { if err := method.resolveDependencies(gen); err != nil { return nil, err } } } return f, nil } // splitImportPathAndPackageName splits off the optional Go package name // from the Go import path when seperated by a ';' delimiter. func splitImportPathAndPackageName(s string) (GoImportPath, GoPackageName) { if i := strings.Index(s, ";"); i >= 0 { return GoImportPath(s[:i]), GoPackageName(s[i+1:]) } return GoImportPath(s), "" } // An Enum describes an enum. type Enum struct { Desc protoreflect.EnumDescriptor GoIdent GoIdent // name of the generated Go type Values []*EnumValue // enum value declarations Location Location // location of this enum Comments CommentSet // comments associated with this enum } func newEnum(gen *Plugin, f *File, parent *Message, desc protoreflect.EnumDescriptor) *Enum { var loc Location if parent != nil { loc = parent.Location.appendPath(genid.DescriptorProto_EnumType_field_number, desc.Index()) } else { loc = f.location.appendPath(genid.FileDescriptorProto_EnumType_field_number, desc.Index()) } enum := &Enum{ Desc: desc, GoIdent: newGoIdent(f, desc), Location: loc, Comments: makeCommentSet(f.Desc.SourceLocations().ByDescriptor(desc)), } gen.enumsByName[desc.FullName()] = enum for i, vds := 0, enum.Desc.Values(); i < vds.Len(); i++ { enum.Values = append(enum.Values, newEnumValue(gen, f, parent, enum, vds.Get(i))) } return enum } // An EnumValue describes an enum value. type EnumValue struct { Desc protoreflect.EnumValueDescriptor GoIdent GoIdent // name of the generated Go declaration Parent *Enum // enum in which this value is declared Location Location // location of this enum value Comments CommentSet // comments associated with this enum value } func newEnumValue(gen *Plugin, f *File, message *Message, enum *Enum, desc protoreflect.EnumValueDescriptor) *EnumValue { // A top-level enum value's name is: EnumName_ValueName // An enum value contained in a message is: MessageName_ValueName // // For historical reasons, enum value names are not camel-cased. parentIdent := enum.GoIdent if message != nil { parentIdent = message.GoIdent } name := parentIdent.GoName + "_" + string(desc.Name()) loc := enum.Location.appendPath(genid.EnumDescriptorProto_Value_field_number, desc.Index()) return &EnumValue{ Desc: desc, GoIdent: f.GoImportPath.Ident(name), Parent: enum, Location: loc, Comments: makeCommentSet(f.Desc.SourceLocations().ByDescriptor(desc)), } } // A Message describes a message. type Message struct { Desc protoreflect.MessageDescriptor GoIdent GoIdent // name of the generated Go type Fields []*Field // message field declarations Oneofs []*Oneof // message oneof declarations Enums []*Enum // nested enum declarations Messages []*Message // nested message declarations Extensions []*Extension // nested extension declarations Location Location // location of this message Comments CommentSet // comments associated with this message } func newMessage(gen *Plugin, f *File, parent *Message, desc protoreflect.MessageDescriptor) *Message { var loc Location if parent != nil { loc = parent.Location.appendPath(genid.DescriptorProto_NestedType_field_number, desc.Index()) } else { loc = f.location.appendPath(genid.FileDescriptorProto_MessageType_field_number, desc.Index()) } message := &Message{ Desc: desc, GoIdent: newGoIdent(f, desc), Location: loc, Comments: makeCommentSet(f.Desc.SourceLocations().ByDescriptor(desc)), } gen.messagesByName[desc.FullName()] = message for i, eds := 0, desc.Enums(); i < eds.Len(); i++ { message.Enums = append(message.Enums, newEnum(gen, f, message, eds.Get(i))) } for i, mds := 0, desc.Messages(); i < mds.Len(); i++ { message.Messages = append(message.Messages, newMessage(gen, f, message, mds.Get(i))) } for i, fds := 0, desc.Fields(); i < fds.Len(); i++ { message.Fields = append(message.Fields, newField(gen, f, message, fds.Get(i))) } for i, ods := 0, desc.Oneofs(); i < ods.Len(); i++ { message.Oneofs = append(message.Oneofs, newOneof(gen, f, message, ods.Get(i))) } for i, xds := 0, desc.Extensions(); i < xds.Len(); i++ { message.Extensions = append(message.Extensions, newField(gen, f, message, xds.Get(i))) } // Resolve local references between fields and oneofs. for _, field := range message.Fields { if od := field.Desc.ContainingOneof(); od != nil { oneof := message.Oneofs[od.Index()] field.Oneof = oneof oneof.Fields = append(oneof.Fields, field) } } // Field name conflict resolution. // // We assume well-known method names that may be attached to a generated // message type, as well as a 'Get*' method for each field. For each // field in turn, we add _s to its name until there are no conflicts. // // Any change to the following set of method names is a potential // incompatible API change because it may change generated field names. // // TODO: If we ever support a 'go_name' option to set the Go name of a // field, we should consider dropping this entirely. The conflict // resolution algorithm is subtle and surprising (changing the order // in which fields appear in the .proto source file can change the // names of fields in generated code), and does not adapt well to // adding new per-field methods such as setters. usedNames := map[string]bool{ "Reset": true, "String": true, "ProtoMessage": true, "Marshal": true, "Unmarshal": true, "ExtensionRangeArray": true, "ExtensionMap": true, "Descriptor": true, } makeNameUnique := func(name string, hasGetter bool) string { for usedNames[name] || (hasGetter && usedNames["Get"+name]) { name += "_" } usedNames[name] = true usedNames["Get"+name] = hasGetter return name } for _, field := range message.Fields { field.GoName = makeNameUnique(field.GoName, true) field.GoIdent.GoName = message.GoIdent.GoName + "_" + field.GoName if field.Oneof != nil && field.Oneof.Fields[0] == field { // Make the name for a oneof unique as well. For historical reasons, // this assumes that a getter method is not generated for oneofs. // This is incorrect, but fixing it breaks existing code. field.Oneof.GoName = makeNameUnique(field.Oneof.GoName, false) field.Oneof.GoIdent.GoName = message.GoIdent.GoName + "_" + field.Oneof.GoName } } // Oneof field name conflict resolution. // // This conflict resolution is incomplete as it does not consider collisions // with other oneof field types, but fixing it breaks existing code. for _, field := range message.Fields { if field.Oneof != nil { Loop: for { for _, nestedMessage := range message.Messages { if nestedMessage.GoIdent == field.GoIdent { field.GoIdent.GoName += "_" continue Loop } } for _, nestedEnum := range message.Enums { if nestedEnum.GoIdent == field.GoIdent { field.GoIdent.GoName += "_" continue Loop } } break Loop } } } return message } func (message *Message) resolveDependencies(gen *Plugin) error { for _, field := range message.Fields { if err := field.resolveDependencies(gen); err != nil { return err } } for _, message := range message.Messages { if err := message.resolveDependencies(gen); err != nil { return err } } for _, extension := range message.Extensions { if err := extension.resolveDependencies(gen); err != nil { return err } } return nil } // A Field describes a message field. type Field struct { Desc protoreflect.FieldDescriptor // GoName is the base name of this field's Go field and methods. // For code generated by protoc-gen-go, this means a field named // '{{GoName}}' and a getter method named 'Get{{GoName}}'. GoName string // e.g., "FieldName" // GoIdent is the base name of a top-level declaration for this field. // For code generated by protoc-gen-go, this means a wrapper type named // '{{GoIdent}}' for members fields of a oneof, and a variable named // 'E_{{GoIdent}}' for extension fields. GoIdent GoIdent // e.g., "MessageName_FieldName" Parent *Message // message in which this field is declared; nil if top-level extension Oneof *Oneof // containing oneof; nil if not part of a oneof Extendee *Message // extended message for extension fields; nil otherwise Enum *Enum // type for enum fields; nil otherwise Message *Message // type for message or group fields; nil otherwise Location Location // location of this field Comments CommentSet // comments associated with this field } func newField(gen *Plugin, f *File, message *Message, desc protoreflect.FieldDescriptor) *Field { var loc Location switch { case desc.IsExtension() && message == nil: loc = f.location.appendPath(genid.FileDescriptorProto_Extension_field_number, desc.Index()) case desc.IsExtension() && message != nil: loc = message.Location.appendPath(genid.DescriptorProto_Extension_field_number, desc.Index()) default: loc = message.Location.appendPath(genid.DescriptorProto_Field_field_number, desc.Index()) } camelCased := strs.GoCamelCase(string(desc.Name())) var parentPrefix string if message != nil { parentPrefix = message.GoIdent.GoName + "_" } field := &Field{ Desc: desc, GoName: camelCased, GoIdent: GoIdent{ GoImportPath: f.GoImportPath, GoName: parentPrefix + camelCased, }, Parent: message, Location: loc, Comments: makeCommentSet(f.Desc.SourceLocations().ByDescriptor(desc)), } return field } func (field *Field) resolveDependencies(gen *Plugin) error { desc := field.Desc switch desc.Kind() { case protoreflect.EnumKind: name := field.Desc.Enum().FullName() enum, ok := gen.enumsByName[name] if !ok { return fmt.Errorf("field %v: no descriptor for enum %v", desc.FullName(), name) } field.Enum = enum case protoreflect.MessageKind, protoreflect.GroupKind: name := desc.Message().FullName() message, ok := gen.messagesByName[name] if !ok { return fmt.Errorf("field %v: no descriptor for type %v", desc.FullName(), name) } field.Message = message } if desc.IsExtension() { name := desc.ContainingMessage().FullName() message, ok := gen.messagesByName[name] if !ok { return fmt.Errorf("field %v: no descriptor for type %v", desc.FullName(), name) } field.Extendee = message } return nil } // A Oneof describes a message oneof. type Oneof struct { Desc protoreflect.OneofDescriptor // GoName is the base name of this oneof's Go field and methods. // For code generated by protoc-gen-go, this means a field named // '{{GoName}}' and a getter method named 'Get{{GoName}}'. GoName string // e.g., "OneofName" // GoIdent is the base name of a top-level declaration for this oneof. GoIdent GoIdent // e.g., "MessageName_OneofName" Parent *Message // message in which this oneof is declared Fields []*Field // fields that are part of this oneof Location Location // location of this oneof Comments CommentSet // comments associated with this oneof } func newOneof(gen *Plugin, f *File, message *Message, desc protoreflect.OneofDescriptor) *Oneof { loc := message.Location.appendPath(genid.DescriptorProto_OneofDecl_field_number, desc.Index()) camelCased := strs.GoCamelCase(string(desc.Name())) parentPrefix := message.GoIdent.GoName + "_" return &Oneof{ Desc: desc, Parent: message, GoName: camelCased, GoIdent: GoIdent{ GoImportPath: f.GoImportPath, GoName: parentPrefix + camelCased, }, Location: loc, Comments: makeCommentSet(f.Desc.SourceLocations().ByDescriptor(desc)), } } // Extension is an alias of Field for documentation. type Extension = Field // A Service describes a service. type Service struct { Desc protoreflect.ServiceDescriptor GoName string Methods []*Method // service method declarations Location Location // location of this service Comments CommentSet // comments associated with this service } func newService(gen *Plugin, f *File, desc protoreflect.ServiceDescriptor) *Service { loc := f.location.appendPath(genid.FileDescriptorProto_Service_field_number, desc.Index()) service := &Service{ Desc: desc, GoName: strs.GoCamelCase(string(desc.Name())), Location: loc, Comments: makeCommentSet(f.Desc.SourceLocations().ByDescriptor(desc)), } for i, mds := 0, desc.Methods(); i < mds.Len(); i++ { service.Methods = append(service.Methods, newMethod(gen, f, service, mds.Get(i))) } return service } // A Method describes a method in a service. type Method struct { Desc protoreflect.MethodDescriptor GoName string Parent *Service // service in which this method is declared Input *Message Output *Message Location Location // location of this method Comments CommentSet // comments associated with this method } func newMethod(gen *Plugin, f *File, service *Service, desc protoreflect.MethodDescriptor) *Method { loc := service.Location.appendPath(genid.ServiceDescriptorProto_Method_field_number, desc.Index()) method := &Method{ Desc: desc, GoName: strs.GoCamelCase(string(desc.Name())), Parent: service, Location: loc, Comments: makeCommentSet(f.Desc.SourceLocations().ByDescriptor(desc)), } return method } func (method *Method) resolveDependencies(gen *Plugin) error { desc := method.Desc inName := desc.Input().FullName() in, ok := gen.messagesByName[inName] if !ok { return fmt.Errorf("method %v: no descriptor for type %v", desc.FullName(), inName) } method.Input = in outName := desc.Output().FullName() out, ok := gen.messagesByName[outName] if !ok { return fmt.Errorf("method %v: no descriptor for type %v", desc.FullName(), outName) } method.Output = out return nil } // A GeneratedFile is a generated file. type GeneratedFile struct { gen *Plugin skip bool filename string goImportPath GoImportPath buf bytes.Buffer packageNames map[GoImportPath]GoPackageName usedPackageNames map[GoPackageName]bool manualImports map[GoImportPath]bool annotations map[string][]Location } // NewGeneratedFile creates a new generated file with the given filename // and import path. func (gen *Plugin) NewGeneratedFile(filename string, goImportPath GoImportPath) *GeneratedFile { g := &GeneratedFile{ gen: gen, filename: filename, goImportPath: goImportPath, packageNames: make(map[GoImportPath]GoPackageName), usedPackageNames: make(map[GoPackageName]bool), manualImports: make(map[GoImportPath]bool), annotations: make(map[string][]Location), } // All predeclared identifiers in Go are already used. for _, s := range types.Universe.Names() { g.usedPackageNames[GoPackageName(s)] = true } gen.genFiles = append(gen.genFiles, g) return g } // P prints a line to the generated output. It converts each parameter to a // string following the same rules as fmt.Print. It never inserts spaces // between parameters. func (g *GeneratedFile) P(v ...interface{}) { for _, x := range v { switch x := x.(type) { case GoIdent: fmt.Fprint(&g.buf, g.QualifiedGoIdent(x)) default: fmt.Fprint(&g.buf, x) } } fmt.Fprintln(&g.buf) } // QualifiedGoIdent returns the string to use for a Go identifier. // // If the identifier is from a different Go package than the generated file, // the returned name will be qualified (package.name) and an import statement // for the identifier's package will be included in the file. func (g *GeneratedFile) QualifiedGoIdent(ident GoIdent) string { if ident.GoImportPath == g.goImportPath { return ident.GoName } if packageName, ok := g.packageNames[ident.GoImportPath]; ok { return string(packageName) + "." + ident.GoName } packageName := cleanPackageName(path.Base(string(ident.GoImportPath))) for i, orig := 1, packageName; g.usedPackageNames[packageName]; i++ { packageName = orig + GoPackageName(strconv.Itoa(i)) } g.packageNames[ident.GoImportPath] = packageName g.usedPackageNames[packageName] = true return string(packageName) + "." + ident.GoName } // Import ensures a package is imported by the generated file. // // Packages referenced by QualifiedGoIdent are automatically imported. // Explicitly importing a package with Import is generally only necessary // when the import will be blank (import _ "package"). func (g *GeneratedFile) Import(importPath GoImportPath) { g.manualImports[importPath] = true } // Write implements io.Writer. func (g *GeneratedFile) Write(p []byte) (n int, err error) { return g.buf.Write(p) } // Skip removes the generated file from the plugin output. func (g *GeneratedFile) Skip() { g.skip = true } // Unskip reverts a previous call to Skip, re-including the generated file in // the plugin output. func (g *GeneratedFile) Unskip() { g.skip = false } // Annotate associates a symbol in a generated Go file with a location in a // source .proto file. // // The symbol may refer to a type, constant, variable, function, method, or // struct field. The "T.sel" syntax is used to identify the method or field // 'sel' on type 'T'. func (g *GeneratedFile) Annotate(symbol string, loc Location) { g.annotations[symbol] = append(g.annotations[symbol], loc) } // Content returns the contents of the generated file. func (g *GeneratedFile) Content() ([]byte, error) { if !strings.HasSuffix(g.filename, ".go") { return g.buf.Bytes(), nil } // Reformat generated code. original := g.buf.Bytes() fset := token.NewFileSet() file, err := parser.ParseFile(fset, "", original, parser.ParseComments) if err != nil { // Print out the bad code with line numbers. // This should never happen in practice, but it can while changing generated code // so consider this a debugging aid. var src bytes.Buffer s := bufio.NewScanner(bytes.NewReader(original)) for line := 1; s.Scan(); line++ { fmt.Fprintf(&src, "%5d\t%s\n", line, s.Bytes()) } return nil, fmt.Errorf("%v: unparsable Go source: %v\n%v", g.filename, err, src.String()) } // Collect a sorted list of all imports. var importPaths [][2]string rewriteImport := func(importPath string) string { if f := g.gen.opts.ImportRewriteFunc; f != nil { return string(f(GoImportPath(importPath))) } return importPath } for importPath := range g.packageNames { pkgName := string(g.packageNames[GoImportPath(importPath)]) pkgPath := rewriteImport(string(importPath)) importPaths = append(importPaths, [2]string{pkgName, pkgPath}) } for importPath := range g.manualImports { if _, ok := g.packageNames[importPath]; !ok { pkgPath := rewriteImport(string(importPath)) importPaths = append(importPaths, [2]string{"_", pkgPath}) } } sort.Slice(importPaths, func(i, j int) bool { return importPaths[i][1] < importPaths[j][1] }) // Modify the AST to include a new import block. if len(importPaths) > 0 { // Insert block after package statement or // possible comment attached to the end of the package statement. pos := file.Package tokFile := fset.File(file.Package) pkgLine := tokFile.Line(file.Package) for _, c := range file.Comments { if tokFile.Line(c.Pos()) > pkgLine { break } pos = c.End() } // Construct the import block. impDecl := &ast.GenDecl{ Tok: token.IMPORT, TokPos: pos, Lparen: pos, Rparen: pos, } for _, importPath := range importPaths { impDecl.Specs = append(impDecl.Specs, &ast.ImportSpec{ Name: &ast.Ident{ Name: importPath[0], NamePos: pos, }, Path: &ast.BasicLit{ Kind: token.STRING, Value: strconv.Quote(importPath[1]), ValuePos: pos, }, EndPos: pos, }) } file.Decls = append([]ast.Decl{impDecl}, file.Decls...) } var out bytes.Buffer if err = (&printer.Config{Mode: printer.TabIndent | printer.UseSpaces, Tabwidth: 8}).Fprint(&out, fset, file); err != nil { return nil, fmt.Errorf("%v: can not reformat Go source: %v", g.filename, err) } return out.Bytes(), nil } // metaFile returns the contents of the file's metadata file, which is a // text formatted string of the google.protobuf.GeneratedCodeInfo. func (g *GeneratedFile) metaFile(content []byte) (string, error) { fset := token.NewFileSet() astFile, err := parser.ParseFile(fset, "", content, 0) if err != nil { return "", err } info := &descriptorpb.GeneratedCodeInfo{} seenAnnotations := make(map[string]bool) annotate := func(s string, ident *ast.Ident) { seenAnnotations[s] = true for _, loc := range g.annotations[s] { info.Annotation = append(info.Annotation, &descriptorpb.GeneratedCodeInfo_Annotation{ SourceFile: proto.String(loc.SourceFile), Path: loc.Path, Begin: proto.Int32(int32(fset.Position(ident.Pos()).Offset)), End: proto.Int32(int32(fset.Position(ident.End()).Offset)), }) } } for _, decl := range astFile.Decls { switch decl := decl.(type) { case *ast.GenDecl: for _, spec := range decl.Specs { switch spec := spec.(type) { case *ast.TypeSpec: annotate(spec.Name.Name, spec.Name) switch st := spec.Type.(type) { case *ast.StructType: for _, field := range st.Fields.List { for _, name := range field.Names { annotate(spec.Name.Name+"."+name.Name, name) } } case *ast.InterfaceType: for _, field := range st.Methods.List { for _, name := range field.Names { annotate(spec.Name.Name+"."+name.Name, name) } } } case *ast.ValueSpec: for _, name := range spec.Names { annotate(name.Name, name) } } } case *ast.FuncDecl: if decl.Recv == nil { annotate(decl.Name.Name, decl.Name) } else { recv := decl.Recv.List[0].Type if s, ok := recv.(*ast.StarExpr); ok { recv = s.X } if id, ok := recv.(*ast.Ident); ok { annotate(id.Name+"."+decl.Name.Name, decl.Name) } } } } for a := range g.annotations { if !seenAnnotations[a] { return "", fmt.Errorf("%v: no symbol matching annotation %q", g.filename, a) } } b, err := prototext.Marshal(info) if err != nil { return "", err } return string(b), nil } // A GoIdent is a Go identifier, consisting of a name and import path. // The name is a single identifier and may not be a dot-qualified selector. type GoIdent struct { GoName string GoImportPath GoImportPath } func (id GoIdent) String() string { return fmt.Sprintf("%q.%v", id.GoImportPath, id.GoName) } // newGoIdent returns the Go identifier for a descriptor. func newGoIdent(f *File, d protoreflect.Descriptor) GoIdent { name := strings.TrimPrefix(string(d.FullName()), string(f.Desc.Package())+".") return GoIdent{ GoName: strs.GoCamelCase(name), GoImportPath: f.GoImportPath, } } // A GoImportPath is the import path of a Go package. // For example: "google.golang.org/protobuf/compiler/protogen" type GoImportPath string func (p GoImportPath) String() string { return strconv.Quote(string(p)) } // Ident returns a GoIdent with s as the GoName and p as the GoImportPath. func (p GoImportPath) Ident(s string) GoIdent { return GoIdent{GoName: s, GoImportPath: p} } // A GoPackageName is the name of a Go package. e.g., "protobuf". type GoPackageName string // cleanPackageName converts a string to a valid Go package name. func cleanPackageName(name string) GoPackageName { return GoPackageName(strs.GoSanitized(name)) } type pathType int const ( pathTypeImport pathType = iota pathTypeSourceRelative ) // A Location is a location in a .proto source file. // // See the google.protobuf.SourceCodeInfo documentation in descriptor.proto // for details. type Location struct { SourceFile string Path protoreflect.SourcePath } // appendPath add elements to a Location's path, returning a new Location. func (loc Location) appendPath(num protoreflect.FieldNumber, idx int) Location { loc.Path = append(protoreflect.SourcePath(nil), loc.Path...) // make copy loc.Path = append(loc.Path, int32(num), int32(idx)) return loc } // CommentSet is a set of leading and trailing comments associated // with a .proto descriptor declaration. type CommentSet struct { LeadingDetached []Comments Leading Comments Trailing Comments } func makeCommentSet(loc protoreflect.SourceLocation) CommentSet { var leadingDetached []Comments for _, s := range loc.LeadingDetachedComments { leadingDetached = append(leadingDetached, Comments(s)) } return CommentSet{ LeadingDetached: leadingDetached, Leading: Comments(loc.LeadingComments), Trailing: Comments(loc.TrailingComments), } } // Comments is a comments string as provided by protoc. type Comments string // String formats the comments by inserting // to the start of each line, // ensuring that there is a trailing newline. // An empty comment is formatted as an empty string. func (c Comments) String() string { if c == "" { return "" } var b []byte for _, line := range strings.Split(strings.TrimSuffix(string(c), "\n"), "\n") { b = append(b, "//"...) b = append(b, line...) b = append(b, "\n"...) } return string(b) } golang-google-protobuf-1.27.1/compiler/protogen/protogen_test.go000066400000000000000000000231671411250152500250600ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protogen import ( "flag" "fmt" "testing" "github.com/google/go-cmp/cmp" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/types/descriptorpb" "google.golang.org/protobuf/types/pluginpb" ) func TestPluginParameters(t *testing.T) { var flags flag.FlagSet value := flags.Int("integer", 0, "") const params = "integer=2" _, err := Options{ ParamFunc: flags.Set, }.New(&pluginpb.CodeGeneratorRequest{ Parameter: proto.String(params), }) if err != nil { t.Errorf("New(generator parameters %q): %v", params, err) } if *value != 2 { t.Errorf("New(generator parameters %q): integer=%v, want 2", params, *value) } } func TestPluginParameterErrors(t *testing.T) { for _, parameter := range []string{ "unknown=1", "boolean=error", } { var flags flag.FlagSet flags.Bool("boolean", false, "") _, err := Options{ ParamFunc: flags.Set, }.New(&pluginpb.CodeGeneratorRequest{ Parameter: proto.String(parameter), }) if err == nil { t.Errorf("New(generator parameters %q): want error, got nil", parameter) } } } func TestNoGoPackage(t *testing.T) { _, err := Options{}.New(&pluginpb.CodeGeneratorRequest{ ProtoFile: []*descriptorpb.FileDescriptorProto{ { Name: proto.String("testdata/go_package/no_go_package.proto"), Syntax: proto.String(protoreflect.Proto3.String()), Package: proto.String("goproto.testdata"), }, }, }) if err == nil { t.Fatalf("missing go_package option: New(req) = nil, want error") } } func TestInvalidImportPath(t *testing.T) { _, err := Options{}.New(&pluginpb.CodeGeneratorRequest{ ProtoFile: []*descriptorpb.FileDescriptorProto{ { Name: proto.String("testdata/go_package/no_go_package.proto"), Syntax: proto.String(protoreflect.Proto3.String()), Package: proto.String("goproto.testdata"), Options: &descriptorpb.FileOptions{ GoPackage: proto.String("foo"), }, }, }, }) if err == nil { t.Fatalf("missing go_package option: New(req) = nil, want error") } } func TestPackageNamesAndPaths(t *testing.T) { const ( filename = "dir/filename.proto" protoPackageName = "proto.package" ) for _, test := range []struct { desc string parameter string goPackageOption string generate bool wantPackageName GoPackageName wantImportPath GoImportPath wantFilename string }{ { desc: "go_package option sets import path", goPackageOption: "golang.org/x/foo", generate: true, wantPackageName: "foo", wantImportPath: "golang.org/x/foo", wantFilename: "golang.org/x/foo/filename", }, { desc: "go_package option sets import path without slashes", goPackageOption: "golang.org;foo", generate: true, wantPackageName: "foo", wantImportPath: "golang.org", wantFilename: "golang.org/filename", }, { desc: "go_package option sets import path and package", goPackageOption: "golang.org/x/foo;bar", generate: true, wantPackageName: "bar", wantImportPath: "golang.org/x/foo", wantFilename: "golang.org/x/foo/filename", }, { desc: "command line sets import path for a file", parameter: "Mdir/filename.proto=golang.org/x/bar", goPackageOption: "golang.org/x/foo", generate: true, wantPackageName: "foo", wantImportPath: "golang.org/x/bar", wantFilename: "golang.org/x/bar/filename", }, { desc: "command line sets import path for a file with package name specified", parameter: "Mdir/filename.proto=golang.org/x/bar;bar", goPackageOption: "golang.org/x/foo", generate: true, wantPackageName: "bar", wantImportPath: "golang.org/x/bar", wantFilename: "golang.org/x/bar/filename", }, { desc: "module option set", parameter: "module=golang.org/x", goPackageOption: "golang.org/x/foo", generate: false, wantPackageName: "foo", wantImportPath: "golang.org/x/foo", wantFilename: "foo/filename", }, { desc: "paths=import uses import path from command line", parameter: "paths=import,Mdir/filename.proto=golang.org/x/bar", goPackageOption: "golang.org/x/foo", generate: true, wantPackageName: "foo", wantImportPath: "golang.org/x/bar", wantFilename: "golang.org/x/bar/filename", }, { desc: "module option implies paths=import", parameter: "module=golang.org/x,Mdir/filename.proto=golang.org/x/foo", generate: false, wantPackageName: "foo", wantImportPath: "golang.org/x/foo", wantFilename: "foo/filename", }, } { context := fmt.Sprintf(` TEST: %v --go_out=%v:. file %q: generate=%v option go_package = %q; `, test.desc, test.parameter, filename, test.generate, test.goPackageOption) req := &pluginpb.CodeGeneratorRequest{ Parameter: proto.String(test.parameter), ProtoFile: []*descriptorpb.FileDescriptorProto{ { Name: proto.String(filename), Package: proto.String(protoPackageName), Options: &descriptorpb.FileOptions{ GoPackage: proto.String(test.goPackageOption), }, }, }, } if test.generate { req.FileToGenerate = []string{filename} } gen, err := Options{}.New(req) if err != nil { t.Errorf("%vNew(req) = %v", context, err) continue } gotFile, ok := gen.FilesByPath[filename] if !ok { t.Errorf("%v%v: missing file info", context, filename) continue } if got, want := gotFile.GoPackageName, test.wantPackageName; got != want { t.Errorf("%vGoPackageName=%v, want %v", context, got, want) } if got, want := gotFile.GoImportPath, test.wantImportPath; got != want { t.Errorf("%vGoImportPath=%v, want %v", context, got, want) } gen.NewGeneratedFile(gotFile.GeneratedFilenamePrefix, "") resp := gen.Response() if got, want := resp.File[0].GetName(), test.wantFilename; got != want { t.Errorf("%vgenerated filename=%v, want %v", context, got, want) } } } func TestPackageNameInference(t *testing.T) { gen, err := Options{}.New(&pluginpb.CodeGeneratorRequest{ Parameter: proto.String("Mdir/file1.proto=path/to/file1"), ProtoFile: []*descriptorpb.FileDescriptorProto{ { Name: proto.String("dir/file1.proto"), Package: proto.String("proto.package"), }, { Name: proto.String("dir/file2.proto"), Package: proto.String("proto.package"), Options: &descriptorpb.FileOptions{ GoPackage: proto.String("path/to/file2"), }, }, }, FileToGenerate: []string{"dir/file1.proto", "dir/file2.proto"}, }) if err != nil { t.Fatalf("New(req) = %v", err) } if f1, ok := gen.FilesByPath["dir/file1.proto"]; !ok { t.Errorf("missing file info for dir/file1.proto") } else if f1.GoPackageName != "file1" { t.Errorf("dir/file1.proto: GoPackageName=%v, want foo; package name should be derived from dir/file2.proto", f1.GoPackageName) } } func TestInconsistentPackageNames(t *testing.T) { _, err := Options{}.New(&pluginpb.CodeGeneratorRequest{ ProtoFile: []*descriptorpb.FileDescriptorProto{ { Name: proto.String("dir/file1.proto"), Package: proto.String("proto.package"), Options: &descriptorpb.FileOptions{ GoPackage: proto.String("golang.org/x/foo"), }, }, { Name: proto.String("dir/file2.proto"), Package: proto.String("proto.package"), Options: &descriptorpb.FileOptions{ GoPackage: proto.String("golang.org/x/foo;bar"), }, }, }, FileToGenerate: []string{"dir/file1.proto", "dir/file2.proto"}, }) if err == nil { t.Fatalf("inconsistent package names for the same import path: New(req) = nil, want error") } } func TestImports(t *testing.T) { gen, err := Options{}.New(&pluginpb.CodeGeneratorRequest{}) if err != nil { t.Fatal(err) } g := gen.NewGeneratedFile("foo.go", "golang.org/x/foo") g.P("package foo") g.P() for _, importPath := range []GoImportPath{ "golang.org/x/foo", // Multiple references to the same package. "golang.org/x/bar", "golang.org/x/bar", // Reference to a different package with the same basename. "golang.org/y/bar", "golang.org/x/baz", // Reference to a package conflicting with a predeclared identifier. "golang.org/z/string", } { g.P("var _ = ", GoIdent{GoName: "X", GoImportPath: importPath}, " // ", importPath) } want := `package foo import ( bar "golang.org/x/bar" baz "golang.org/x/baz" bar1 "golang.org/y/bar" string1 "golang.org/z/string" ) var _ = X // "golang.org/x/foo" var _ = bar.X // "golang.org/x/bar" var _ = bar.X // "golang.org/x/bar" var _ = bar1.X // "golang.org/y/bar" var _ = baz.X // "golang.org/x/baz" var _ = string1.X // "golang.org/z/string" ` got, err := g.Content() if err != nil { t.Fatalf("g.Content() = %v", err) } if diff := cmp.Diff(string(want), string(got)); diff != "" { t.Fatalf("content mismatch (-want +got):\n%s", diff) } } func TestImportRewrites(t *testing.T) { gen, err := Options{ ImportRewriteFunc: func(i GoImportPath) GoImportPath { return "prefix/" + i }, }.New(&pluginpb.CodeGeneratorRequest{}) if err != nil { t.Fatal(err) } g := gen.NewGeneratedFile("foo.go", "golang.org/x/foo") g.P("package foo") g.P("var _ = ", GoIdent{GoName: "X", GoImportPath: "golang.org/x/bar"}) want := `package foo import ( bar "prefix/golang.org/x/bar" ) var _ = bar.X ` got, err := g.Content() if err != nil { t.Fatalf("g.Content() = %v", err) } if diff := cmp.Diff(string(want), string(got)); diff != "" { t.Fatalf("content mismatch (-want +got):\n%s", diff) } } golang-google-protobuf-1.27.1/encoding/000077500000000000000000000000001411250152500177435ustar00rootroot00000000000000golang-google-protobuf-1.27.1/encoding/bench_test.go000066400000000000000000000076611411250152500224220ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package encoding_test import ( "fmt" "testing" "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/encoding/prototext" pref "google.golang.org/protobuf/reflect/protoreflect" tpb "google.golang.org/protobuf/internal/testprotos/test" ) // The results of these microbenchmarks are unlikely to correspond well // to real world peformance. They are mainly useful as a quick check to // detect unexpected regressions and for profiling specific cases. const maxRecurseLevel = 3 func makeProto() *tpb.TestAllTypes { m := &tpb.TestAllTypes{} fillMessage(m.ProtoReflect(), 0) return m } func fillMessage(m pref.Message, level int) { if level > maxRecurseLevel { return } fieldDescs := m.Descriptor().Fields() for i := 0; i < fieldDescs.Len(); i++ { fd := fieldDescs.Get(i) switch { case fd.IsList(): setList(m.Mutable(fd).List(), fd, level) case fd.IsMap(): setMap(m.Mutable(fd).Map(), fd, level) default: setScalarField(m, fd, level) } } } func setScalarField(m pref.Message, fd pref.FieldDescriptor, level int) { switch fd.Kind() { case pref.MessageKind, pref.GroupKind: val := m.NewField(fd) fillMessage(val.Message(), level+1) m.Set(fd, val) default: m.Set(fd, scalarField(fd.Kind())) } } func scalarField(kind pref.Kind) pref.Value { switch kind { case pref.BoolKind: return pref.ValueOfBool(true) case pref.Int32Kind, pref.Sint32Kind, pref.Sfixed32Kind: return pref.ValueOfInt32(1 << 30) case pref.Int64Kind, pref.Sint64Kind, pref.Sfixed64Kind: return pref.ValueOfInt64(1 << 30) case pref.Uint32Kind, pref.Fixed32Kind: return pref.ValueOfUint32(1 << 30) case pref.Uint64Kind, pref.Fixed64Kind: return pref.ValueOfUint64(1 << 30) case pref.FloatKind: return pref.ValueOfFloat32(3.14159265) case pref.DoubleKind: return pref.ValueOfFloat64(3.14159265) case pref.BytesKind: return pref.ValueOfBytes([]byte("hello world")) case pref.StringKind: return pref.ValueOfString("hello world") case pref.EnumKind: return pref.ValueOfEnum(42) } panic(fmt.Sprintf("FieldDescriptor.Kind %v is not valid", kind)) } func setList(list pref.List, fd pref.FieldDescriptor, level int) { switch fd.Kind() { case pref.MessageKind, pref.GroupKind: for i := 0; i < 10; i++ { val := list.NewElement() fillMessage(val.Message(), level+1) list.Append(val) } default: for i := 0; i < 100; i++ { list.Append(scalarField(fd.Kind())) } } } func setMap(mmap pref.Map, fd pref.FieldDescriptor, level int) { fields := fd.Message().Fields() keyDesc := fields.ByNumber(1) valDesc := fields.ByNumber(2) pkey := scalarField(keyDesc.Kind()) switch kind := valDesc.Kind(); kind { case pref.MessageKind, pref.GroupKind: val := mmap.NewValue() fillMessage(val.Message(), level+1) mmap.Set(pkey.MapKey(), val) default: mmap.Set(pkey.MapKey(), scalarField(kind)) } } func BenchmarkTextEncode(b *testing.B) { m := makeProto() for i := 0; i < b.N; i++ { _, err := prototext.MarshalOptions{Indent: " "}.Marshal(m) if err != nil { b.Fatal(err) } } } func BenchmarkTextDecode(b *testing.B) { m := makeProto() in, err := prototext.MarshalOptions{Indent: " "}.Marshal(m) if err != nil { b.Fatal(err) } for i := 0; i < b.N; i++ { m := &tpb.TestAllTypes{} if err := prototext.Unmarshal(in, m); err != nil { b.Fatal(err) } } } func BenchmarkJSONEncode(b *testing.B) { m := makeProto() for i := 0; i < b.N; i++ { _, err := protojson.MarshalOptions{Indent: " "}.Marshal(m) if err != nil { b.Fatal(err) } } } func BenchmarkJSONDecode(b *testing.B) { m := makeProto() out, err := protojson.MarshalOptions{Indent: " "}.Marshal(m) if err != nil { b.Fatal(err) } for i := 0; i < b.N; i++ { m := &tpb.TestAllTypes{} if err := protojson.Unmarshal(out, m); err != nil { b.Fatal(err) } } } golang-google-protobuf-1.27.1/encoding/protojson/000077500000000000000000000000001411250152500220005ustar00rootroot00000000000000golang-google-protobuf-1.27.1/encoding/protojson/bench_test.go000066400000000000000000000010301411250152500244370ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protojson_test import ( "testing" "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/types/known/durationpb" ) func BenchmarkUnmarshal_Duration(b *testing.B) { input := []byte(`"-123456789.123456789s"`) for i := 0; i < b.N; i++ { err := protojson.Unmarshal(input, &durationpb.Duration{}) if err != nil { b.Fatal(err) } } } golang-google-protobuf-1.27.1/encoding/protojson/decode.go000066400000000000000000000407311411250152500235570ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protojson import ( "encoding/base64" "fmt" "math" "strconv" "strings" "google.golang.org/protobuf/internal/encoding/json" "google.golang.org/protobuf/internal/encoding/messageset" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/internal/pragma" "google.golang.org/protobuf/internal/set" "google.golang.org/protobuf/proto" pref "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" ) // Unmarshal reads the given []byte into the given proto.Message. // The provided message must be mutable (e.g., a non-nil pointer to a message). func Unmarshal(b []byte, m proto.Message) error { return UnmarshalOptions{}.Unmarshal(b, m) } // UnmarshalOptions is a configurable JSON format parser. type UnmarshalOptions struct { pragma.NoUnkeyedLiterals // If AllowPartial is set, input for messages that will result in missing // required fields will not return an error. AllowPartial bool // If DiscardUnknown is set, unknown fields are ignored. DiscardUnknown bool // Resolver is used for looking up types when unmarshaling // google.protobuf.Any messages or extension fields. // If nil, this defaults to using protoregistry.GlobalTypes. Resolver interface { protoregistry.MessageTypeResolver protoregistry.ExtensionTypeResolver } } // Unmarshal reads the given []byte and populates the given proto.Message // using options in the UnmarshalOptions object. // It will clear the message first before setting the fields. // If it returns an error, the given message may be partially set. // The provided message must be mutable (e.g., a non-nil pointer to a message). func (o UnmarshalOptions) Unmarshal(b []byte, m proto.Message) error { return o.unmarshal(b, m) } // unmarshal is a centralized function that all unmarshal operations go through. // For profiling purposes, avoid changing the name of this function or // introducing other code paths for unmarshal that do not go through this. func (o UnmarshalOptions) unmarshal(b []byte, m proto.Message) error { proto.Reset(m) if o.Resolver == nil { o.Resolver = protoregistry.GlobalTypes } dec := decoder{json.NewDecoder(b), o} if err := dec.unmarshalMessage(m.ProtoReflect(), false); err != nil { return err } // Check for EOF. tok, err := dec.Read() if err != nil { return err } if tok.Kind() != json.EOF { return dec.unexpectedTokenError(tok) } if o.AllowPartial { return nil } return proto.CheckInitialized(m) } type decoder struct { *json.Decoder opts UnmarshalOptions } // newError returns an error object with position info. func (d decoder) newError(pos int, f string, x ...interface{}) error { line, column := d.Position(pos) head := fmt.Sprintf("(line %d:%d): ", line, column) return errors.New(head+f, x...) } // unexpectedTokenError returns a syntax error for the given unexpected token. func (d decoder) unexpectedTokenError(tok json.Token) error { return d.syntaxError(tok.Pos(), "unexpected token %s", tok.RawString()) } // syntaxError returns a syntax error for given position. func (d decoder) syntaxError(pos int, f string, x ...interface{}) error { line, column := d.Position(pos) head := fmt.Sprintf("syntax error (line %d:%d): ", line, column) return errors.New(head+f, x...) } // unmarshalMessage unmarshals a message into the given protoreflect.Message. func (d decoder) unmarshalMessage(m pref.Message, skipTypeURL bool) error { if unmarshal := wellKnownTypeUnmarshaler(m.Descriptor().FullName()); unmarshal != nil { return unmarshal(d, m) } tok, err := d.Read() if err != nil { return err } if tok.Kind() != json.ObjectOpen { return d.unexpectedTokenError(tok) } messageDesc := m.Descriptor() if !flags.ProtoLegacy && messageset.IsMessageSet(messageDesc) { return errors.New("no support for proto1 MessageSets") } var seenNums set.Ints var seenOneofs set.Ints fieldDescs := messageDesc.Fields() for { // Read field name. tok, err := d.Read() if err != nil { return err } switch tok.Kind() { default: return d.unexpectedTokenError(tok) case json.ObjectClose: return nil case json.Name: // Continue below. } name := tok.Name() // Unmarshaling a non-custom embedded message in Any will contain the // JSON field "@type" which should be skipped because it is not a field // of the embedded message, but simply an artifact of the Any format. if skipTypeURL && name == "@type" { d.Read() continue } // Get the FieldDescriptor. var fd pref.FieldDescriptor if strings.HasPrefix(name, "[") && strings.HasSuffix(name, "]") { // Only extension names are in [name] format. extName := pref.FullName(name[1 : len(name)-1]) extType, err := d.opts.Resolver.FindExtensionByName(extName) if err != nil && err != protoregistry.NotFound { return d.newError(tok.Pos(), "unable to resolve %s: %v", tok.RawString(), err) } if extType != nil { fd = extType.TypeDescriptor() if !messageDesc.ExtensionRanges().Has(fd.Number()) || fd.ContainingMessage().FullName() != messageDesc.FullName() { return d.newError(tok.Pos(), "message %v cannot be extended by %v", messageDesc.FullName(), fd.FullName()) } } } else { // The name can either be the JSON name or the proto field name. fd = fieldDescs.ByJSONName(name) if fd == nil { fd = fieldDescs.ByTextName(name) } } if flags.ProtoLegacy { if fd != nil && fd.IsWeak() && fd.Message().IsPlaceholder() { fd = nil // reset since the weak reference is not linked in } } if fd == nil { // Field is unknown. if d.opts.DiscardUnknown { if err := d.skipJSONValue(); err != nil { return err } continue } return d.newError(tok.Pos(), "unknown field %v", tok.RawString()) } // Do not allow duplicate fields. num := uint64(fd.Number()) if seenNums.Has(num) { return d.newError(tok.Pos(), "duplicate field %v", tok.RawString()) } seenNums.Set(num) // No need to set values for JSON null unless the field type is // google.protobuf.Value or google.protobuf.NullValue. if tok, _ := d.Peek(); tok.Kind() == json.Null && !isKnownValue(fd) && !isNullValue(fd) { d.Read() continue } switch { case fd.IsList(): list := m.Mutable(fd).List() if err := d.unmarshalList(list, fd); err != nil { return err } case fd.IsMap(): mmap := m.Mutable(fd).Map() if err := d.unmarshalMap(mmap, fd); err != nil { return err } default: // If field is a oneof, check if it has already been set. if od := fd.ContainingOneof(); od != nil { idx := uint64(od.Index()) if seenOneofs.Has(idx) { return d.newError(tok.Pos(), "error parsing %s, oneof %v is already set", tok.RawString(), od.FullName()) } seenOneofs.Set(idx) } // Required or optional fields. if err := d.unmarshalSingular(m, fd); err != nil { return err } } } } func isKnownValue(fd pref.FieldDescriptor) bool { md := fd.Message() return md != nil && md.FullName() == genid.Value_message_fullname } func isNullValue(fd pref.FieldDescriptor) bool { ed := fd.Enum() return ed != nil && ed.FullName() == genid.NullValue_enum_fullname } // unmarshalSingular unmarshals to the non-repeated field specified // by the given FieldDescriptor. func (d decoder) unmarshalSingular(m pref.Message, fd pref.FieldDescriptor) error { var val pref.Value var err error switch fd.Kind() { case pref.MessageKind, pref.GroupKind: val = m.NewField(fd) err = d.unmarshalMessage(val.Message(), false) default: val, err = d.unmarshalScalar(fd) } if err != nil { return err } m.Set(fd, val) return nil } // unmarshalScalar unmarshals to a scalar/enum protoreflect.Value specified by // the given FieldDescriptor. func (d decoder) unmarshalScalar(fd pref.FieldDescriptor) (pref.Value, error) { const b32 int = 32 const b64 int = 64 tok, err := d.Read() if err != nil { return pref.Value{}, err } kind := fd.Kind() switch kind { case pref.BoolKind: if tok.Kind() == json.Bool { return pref.ValueOfBool(tok.Bool()), nil } case pref.Int32Kind, pref.Sint32Kind, pref.Sfixed32Kind: if v, ok := unmarshalInt(tok, b32); ok { return v, nil } case pref.Int64Kind, pref.Sint64Kind, pref.Sfixed64Kind: if v, ok := unmarshalInt(tok, b64); ok { return v, nil } case pref.Uint32Kind, pref.Fixed32Kind: if v, ok := unmarshalUint(tok, b32); ok { return v, nil } case pref.Uint64Kind, pref.Fixed64Kind: if v, ok := unmarshalUint(tok, b64); ok { return v, nil } case pref.FloatKind: if v, ok := unmarshalFloat(tok, b32); ok { return v, nil } case pref.DoubleKind: if v, ok := unmarshalFloat(tok, b64); ok { return v, nil } case pref.StringKind: if tok.Kind() == json.String { return pref.ValueOfString(tok.ParsedString()), nil } case pref.BytesKind: if v, ok := unmarshalBytes(tok); ok { return v, nil } case pref.EnumKind: if v, ok := unmarshalEnum(tok, fd); ok { return v, nil } default: panic(fmt.Sprintf("unmarshalScalar: invalid scalar kind %v", kind)) } return pref.Value{}, d.newError(tok.Pos(), "invalid value for %v type: %v", kind, tok.RawString()) } func unmarshalInt(tok json.Token, bitSize int) (pref.Value, bool) { switch tok.Kind() { case json.Number: return getInt(tok, bitSize) case json.String: // Decode number from string. s := strings.TrimSpace(tok.ParsedString()) if len(s) != len(tok.ParsedString()) { return pref.Value{}, false } dec := json.NewDecoder([]byte(s)) tok, err := dec.Read() if err != nil { return pref.Value{}, false } return getInt(tok, bitSize) } return pref.Value{}, false } func getInt(tok json.Token, bitSize int) (pref.Value, bool) { n, ok := tok.Int(bitSize) if !ok { return pref.Value{}, false } if bitSize == 32 { return pref.ValueOfInt32(int32(n)), true } return pref.ValueOfInt64(n), true } func unmarshalUint(tok json.Token, bitSize int) (pref.Value, bool) { switch tok.Kind() { case json.Number: return getUint(tok, bitSize) case json.String: // Decode number from string. s := strings.TrimSpace(tok.ParsedString()) if len(s) != len(tok.ParsedString()) { return pref.Value{}, false } dec := json.NewDecoder([]byte(s)) tok, err := dec.Read() if err != nil { return pref.Value{}, false } return getUint(tok, bitSize) } return pref.Value{}, false } func getUint(tok json.Token, bitSize int) (pref.Value, bool) { n, ok := tok.Uint(bitSize) if !ok { return pref.Value{}, false } if bitSize == 32 { return pref.ValueOfUint32(uint32(n)), true } return pref.ValueOfUint64(n), true } func unmarshalFloat(tok json.Token, bitSize int) (pref.Value, bool) { switch tok.Kind() { case json.Number: return getFloat(tok, bitSize) case json.String: s := tok.ParsedString() switch s { case "NaN": if bitSize == 32 { return pref.ValueOfFloat32(float32(math.NaN())), true } return pref.ValueOfFloat64(math.NaN()), true case "Infinity": if bitSize == 32 { return pref.ValueOfFloat32(float32(math.Inf(+1))), true } return pref.ValueOfFloat64(math.Inf(+1)), true case "-Infinity": if bitSize == 32 { return pref.ValueOfFloat32(float32(math.Inf(-1))), true } return pref.ValueOfFloat64(math.Inf(-1)), true } // Decode number from string. if len(s) != len(strings.TrimSpace(s)) { return pref.Value{}, false } dec := json.NewDecoder([]byte(s)) tok, err := dec.Read() if err != nil { return pref.Value{}, false } return getFloat(tok, bitSize) } return pref.Value{}, false } func getFloat(tok json.Token, bitSize int) (pref.Value, bool) { n, ok := tok.Float(bitSize) if !ok { return pref.Value{}, false } if bitSize == 32 { return pref.ValueOfFloat32(float32(n)), true } return pref.ValueOfFloat64(n), true } func unmarshalBytes(tok json.Token) (pref.Value, bool) { if tok.Kind() != json.String { return pref.Value{}, false } s := tok.ParsedString() enc := base64.StdEncoding if strings.ContainsAny(s, "-_") { enc = base64.URLEncoding } if len(s)%4 != 0 { enc = enc.WithPadding(base64.NoPadding) } b, err := enc.DecodeString(s) if err != nil { return pref.Value{}, false } return pref.ValueOfBytes(b), true } func unmarshalEnum(tok json.Token, fd pref.FieldDescriptor) (pref.Value, bool) { switch tok.Kind() { case json.String: // Lookup EnumNumber based on name. s := tok.ParsedString() if enumVal := fd.Enum().Values().ByName(pref.Name(s)); enumVal != nil { return pref.ValueOfEnum(enumVal.Number()), true } case json.Number: if n, ok := tok.Int(32); ok { return pref.ValueOfEnum(pref.EnumNumber(n)), true } case json.Null: // This is only valid for google.protobuf.NullValue. if isNullValue(fd) { return pref.ValueOfEnum(0), true } } return pref.Value{}, false } func (d decoder) unmarshalList(list pref.List, fd pref.FieldDescriptor) error { tok, err := d.Read() if err != nil { return err } if tok.Kind() != json.ArrayOpen { return d.unexpectedTokenError(tok) } switch fd.Kind() { case pref.MessageKind, pref.GroupKind: for { tok, err := d.Peek() if err != nil { return err } if tok.Kind() == json.ArrayClose { d.Read() return nil } val := list.NewElement() if err := d.unmarshalMessage(val.Message(), false); err != nil { return err } list.Append(val) } default: for { tok, err := d.Peek() if err != nil { return err } if tok.Kind() == json.ArrayClose { d.Read() return nil } val, err := d.unmarshalScalar(fd) if err != nil { return err } list.Append(val) } } return nil } func (d decoder) unmarshalMap(mmap pref.Map, fd pref.FieldDescriptor) error { tok, err := d.Read() if err != nil { return err } if tok.Kind() != json.ObjectOpen { return d.unexpectedTokenError(tok) } // Determine ahead whether map entry is a scalar type or a message type in // order to call the appropriate unmarshalMapValue func inside the for loop // below. var unmarshalMapValue func() (pref.Value, error) switch fd.MapValue().Kind() { case pref.MessageKind, pref.GroupKind: unmarshalMapValue = func() (pref.Value, error) { val := mmap.NewValue() if err := d.unmarshalMessage(val.Message(), false); err != nil { return pref.Value{}, err } return val, nil } default: unmarshalMapValue = func() (pref.Value, error) { return d.unmarshalScalar(fd.MapValue()) } } Loop: for { // Read field name. tok, err := d.Read() if err != nil { return err } switch tok.Kind() { default: return d.unexpectedTokenError(tok) case json.ObjectClose: break Loop case json.Name: // Continue. } // Unmarshal field name. pkey, err := d.unmarshalMapKey(tok, fd.MapKey()) if err != nil { return err } // Check for duplicate field name. if mmap.Has(pkey) { return d.newError(tok.Pos(), "duplicate map key %v", tok.RawString()) } // Read and unmarshal field value. pval, err := unmarshalMapValue() if err != nil { return err } mmap.Set(pkey, pval) } return nil } // unmarshalMapKey converts given token of Name kind into a protoreflect.MapKey. // A map key type is any integral or string type. func (d decoder) unmarshalMapKey(tok json.Token, fd pref.FieldDescriptor) (pref.MapKey, error) { const b32 = 32 const b64 = 64 const base10 = 10 name := tok.Name() kind := fd.Kind() switch kind { case pref.StringKind: return pref.ValueOfString(name).MapKey(), nil case pref.BoolKind: switch name { case "true": return pref.ValueOfBool(true).MapKey(), nil case "false": return pref.ValueOfBool(false).MapKey(), nil } case pref.Int32Kind, pref.Sint32Kind, pref.Sfixed32Kind: if n, err := strconv.ParseInt(name, base10, b32); err == nil { return pref.ValueOfInt32(int32(n)).MapKey(), nil } case pref.Int64Kind, pref.Sint64Kind, pref.Sfixed64Kind: if n, err := strconv.ParseInt(name, base10, b64); err == nil { return pref.ValueOfInt64(int64(n)).MapKey(), nil } case pref.Uint32Kind, pref.Fixed32Kind: if n, err := strconv.ParseUint(name, base10, b32); err == nil { return pref.ValueOfUint32(uint32(n)).MapKey(), nil } case pref.Uint64Kind, pref.Fixed64Kind: if n, err := strconv.ParseUint(name, base10, b64); err == nil { return pref.ValueOfUint64(uint64(n)).MapKey(), nil } default: panic(fmt.Sprintf("invalid kind for map key: %v", kind)) } return pref.MapKey{}, d.newError(tok.Pos(), "invalid value for %v key: %s", kind, tok.RawString()) } golang-google-protobuf-1.27.1/encoding/protojson/decode_test.go000066400000000000000000002035401411250152500246150ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protojson_test import ( "math" "strings" "testing" "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/proto" preg "google.golang.org/protobuf/reflect/protoregistry" testpb "google.golang.org/protobuf/internal/testprotos/test" weakpb "google.golang.org/protobuf/internal/testprotos/test/weak1" pb2 "google.golang.org/protobuf/internal/testprotos/textpb2" pb3 "google.golang.org/protobuf/internal/testprotos/textpb3" "google.golang.org/protobuf/types/known/anypb" "google.golang.org/protobuf/types/known/durationpb" "google.golang.org/protobuf/types/known/emptypb" "google.golang.org/protobuf/types/known/fieldmaskpb" "google.golang.org/protobuf/types/known/structpb" "google.golang.org/protobuf/types/known/timestamppb" "google.golang.org/protobuf/types/known/wrapperspb" ) func TestUnmarshal(t *testing.T) { tests := []struct { desc string umo protojson.UnmarshalOptions inputMessage proto.Message inputText string wantMessage proto.Message wantErr string // Expected error substring. skip bool }{{ desc: "proto2 empty message", inputMessage: &pb2.Scalars{}, inputText: "{}", wantMessage: &pb2.Scalars{}, }, { desc: "unexpected value instead of EOF", inputMessage: &pb2.Scalars{}, inputText: "{} {}", wantErr: `(line 1:4): unexpected token {`, }, { desc: "proto2 optional scalars set to zero values", inputMessage: &pb2.Scalars{}, inputText: `{ "optBool": false, "optInt32": 0, "optInt64": 0, "optUint32": 0, "optUint64": 0, "optSint32": 0, "optSint64": 0, "optFixed32": 0, "optFixed64": 0, "optSfixed32": 0, "optSfixed64": 0, "optFloat": 0, "optDouble": 0, "optBytes": "", "optString": "" }`, wantMessage: &pb2.Scalars{ OptBool: proto.Bool(false), OptInt32: proto.Int32(0), OptInt64: proto.Int64(0), OptUint32: proto.Uint32(0), OptUint64: proto.Uint64(0), OptSint32: proto.Int32(0), OptSint64: proto.Int64(0), OptFixed32: proto.Uint32(0), OptFixed64: proto.Uint64(0), OptSfixed32: proto.Int32(0), OptSfixed64: proto.Int64(0), OptFloat: proto.Float32(0), OptDouble: proto.Float64(0), OptBytes: []byte{}, OptString: proto.String(""), }, }, { desc: "proto3 scalars set to zero values", inputMessage: &pb3.Scalars{}, inputText: `{ "sBool": false, "sInt32": 0, "sInt64": 0, "sUint32": 0, "sUint64": 0, "sSint32": 0, "sSint64": 0, "sFixed32": 0, "sFixed64": 0, "sSfixed32": 0, "sSfixed64": 0, "sFloat": 0, "sDouble": 0, "sBytes": "", "sString": "" }`, wantMessage: &pb3.Scalars{}, }, { desc: "proto3 optional set to zero values", inputMessage: &pb3.Proto3Optional{}, inputText: `{ "optBool": false, "optInt32": 0, "optInt64": 0, "optUint32": 0, "optUint64": 0, "optFloat": 0, "optDouble": 0, "optString": "", "optBytes": "", "optEnum": "ZERO", "optMessage": {} }`, wantMessage: &pb3.Proto3Optional{ OptBool: proto.Bool(false), OptInt32: proto.Int32(0), OptInt64: proto.Int64(0), OptUint32: proto.Uint32(0), OptUint64: proto.Uint64(0), OptFloat: proto.Float32(0), OptDouble: proto.Float64(0), OptString: proto.String(""), OptBytes: []byte{}, OptEnum: pb3.Enum_ZERO.Enum(), OptMessage: &pb3.Nested{}, }, }, { desc: "proto2 optional scalars set to null", inputMessage: &pb2.Scalars{}, inputText: `{ "optBool": null, "optInt32": null, "optInt64": null, "optUint32": null, "optUint64": null, "optSint32": null, "optSint64": null, "optFixed32": null, "optFixed64": null, "optSfixed32": null, "optSfixed64": null, "optFloat": null, "optDouble": null, "optBytes": null, "optString": null }`, wantMessage: &pb2.Scalars{}, }, { desc: "proto3 scalars set to null", inputMessage: &pb3.Scalars{}, inputText: `{ "sBool": null, "sInt32": null, "sInt64": null, "sUint32": null, "sUint64": null, "sSint32": null, "sSint64": null, "sFixed32": null, "sFixed64": null, "sSfixed32": null, "sSfixed64": null, "sFloat": null, "sDouble": null, "sBytes": null, "sString": null }`, wantMessage: &pb3.Scalars{}, }, { desc: "boolean", inputMessage: &pb3.Scalars{}, inputText: `{"sBool": true}`, wantMessage: &pb3.Scalars{ SBool: true, }, }, { desc: "not boolean", inputMessage: &pb3.Scalars{}, inputText: `{"sBool": "true"}`, wantErr: `invalid value for bool type: "true"`, }, { desc: "float and double", inputMessage: &pb3.Scalars{}, inputText: `{ "sFloat": 1.234, "sDouble": 5.678 }`, wantMessage: &pb3.Scalars{ SFloat: 1.234, SDouble: 5.678, }, }, { desc: "float and double in string", inputMessage: &pb3.Scalars{}, inputText: `{ "sFloat": "1.234", "sDouble": "5.678" }`, wantMessage: &pb3.Scalars{ SFloat: 1.234, SDouble: 5.678, }, }, { desc: "float and double in E notation", inputMessage: &pb3.Scalars{}, inputText: `{ "sFloat": 12.34E-1, "sDouble": 5.678e4 }`, wantMessage: &pb3.Scalars{ SFloat: 1.234, SDouble: 56780, }, }, { desc: "float and double in string E notation", inputMessage: &pb3.Scalars{}, inputText: `{ "sFloat": "12.34E-1", "sDouble": "5.678e4" }`, wantMessage: &pb3.Scalars{ SFloat: 1.234, SDouble: 56780, }, }, { desc: "float exceeds limit", inputMessage: &pb3.Scalars{}, inputText: `{"sFloat": 3.4e39}`, wantErr: `invalid value for float type: 3.4e39`, }, { desc: "float in string exceeds limit", inputMessage: &pb3.Scalars{}, inputText: `{"sFloat": "-3.4e39"}`, wantErr: `invalid value for float type: "-3.4e39"`, }, { desc: "double exceeds limit", inputMessage: &pb3.Scalars{}, inputText: `{"sDouble": -1.79e+309}`, wantErr: `invalid value for double type: -1.79e+309`, }, { desc: "double in string exceeds limit", inputMessage: &pb3.Scalars{}, inputText: `{"sDouble": "1.79e+309"}`, wantErr: `invalid value for double type: "1.79e+309"`, }, { desc: "infinites", inputMessage: &pb3.Scalars{}, inputText: `{"sFloat": "Infinity", "sDouble": "-Infinity"}`, wantMessage: &pb3.Scalars{ SFloat: float32(math.Inf(+1)), SDouble: math.Inf(-1), }, }, { desc: "float string with leading space", inputMessage: &pb3.Scalars{}, inputText: `{"sFloat": " 1.234"}`, wantErr: `invalid value for float type: " 1.234"`, }, { desc: "double string with trailing space", inputMessage: &pb3.Scalars{}, inputText: `{"sDouble": "5.678 "}`, wantErr: `invalid value for double type: "5.678 "`, }, { desc: "not float", inputMessage: &pb3.Scalars{}, inputText: `{"sFloat": true}`, wantErr: `invalid value for float type: true`, }, { desc: "not double", inputMessage: &pb3.Scalars{}, inputText: `{"sDouble": "not a number"}`, wantErr: `invalid value for double type: "not a number"`, }, { desc: "integers", inputMessage: &pb3.Scalars{}, inputText: `{ "sInt32": 1234, "sInt64": -1234, "sUint32": 1e2, "sUint64": 100E-2, "sSint32": 1.0, "sSint64": -1.0, "sFixed32": 1.234e+5, "sFixed64": 1200E-2, "sSfixed32": -1.234e05, "sSfixed64": -1200e-02 }`, wantMessage: &pb3.Scalars{ SInt32: 1234, SInt64: -1234, SUint32: 100, SUint64: 1, SSint32: 1, SSint64: -1, SFixed32: 123400, SFixed64: 12, SSfixed32: -123400, SSfixed64: -12, }, }, { desc: "integers in string", inputMessage: &pb3.Scalars{}, inputText: `{ "sInt32": "1234", "sInt64": "-1234", "sUint32": "1e2", "sUint64": "100E-2", "sSint32": "1.0", "sSint64": "-1.0", "sFixed32": "1.234e+5", "sFixed64": "1200E-2", "sSfixed32": "-1.234e05", "sSfixed64": "-1200e-02" }`, wantMessage: &pb3.Scalars{ SInt32: 1234, SInt64: -1234, SUint32: 100, SUint64: 1, SSint32: 1, SSint64: -1, SFixed32: 123400, SFixed64: 12, SSfixed32: -123400, SSfixed64: -12, }, }, { desc: "integers in escaped string", inputMessage: &pb3.Scalars{}, inputText: `{"sInt32": "\u0031\u0032"}`, wantMessage: &pb3.Scalars{ SInt32: 12, }, }, { desc: "integer string with leading space", inputMessage: &pb3.Scalars{}, inputText: `{"sInt32": " 1234"}`, wantErr: `invalid value for int32 type: " 1234"`, }, { desc: "integer string with trailing space", inputMessage: &pb3.Scalars{}, inputText: `{"sUint32": "1e2 "}`, wantErr: `invalid value for uint32 type: "1e2 "`, }, { desc: "number is not an integer", inputMessage: &pb3.Scalars{}, inputText: `{"sInt32": 1.001}`, wantErr: `invalid value for int32 type: 1.001`, }, { desc: "32-bit int exceeds limit", inputMessage: &pb3.Scalars{}, inputText: `{"sInt32": 2e10}`, wantErr: `invalid value for int32 type: 2e10`, }, { desc: "64-bit int exceeds limit", inputMessage: &pb3.Scalars{}, inputText: `{"sSfixed64": -9e19}`, wantErr: `invalid value for sfixed64 type: -9e19`, }, { desc: "not integer", inputMessage: &pb3.Scalars{}, inputText: `{"sInt32": "not a number"}`, wantErr: `invalid value for int32 type: "not a number"`, }, { desc: "not unsigned integer", inputMessage: &pb3.Scalars{}, inputText: `{"sUint32": "not a number"}`, wantErr: `invalid value for uint32 type: "not a number"`, }, { desc: "number is not an unsigned integer", inputMessage: &pb3.Scalars{}, inputText: `{"sUint32": -1}`, wantErr: `invalid value for uint32 type: -1`, }, { desc: "string", inputMessage: &pb2.Scalars{}, inputText: `{"optString": "谷歌"}`, wantMessage: &pb2.Scalars{ OptString: proto.String("谷歌"), }, }, { desc: "string with invalid UTF-8", inputMessage: &pb3.Scalars{}, inputText: "{\"sString\": \"\xff\"}", wantErr: `(line 1:13): invalid UTF-8 in string`, }, { desc: "not string", inputMessage: &pb2.Scalars{}, inputText: `{"optString": 42}`, wantErr: `invalid value for string type: 42`, }, { desc: "bytes", inputMessage: &pb3.Scalars{}, inputText: `{"sBytes": "aGVsbG8gd29ybGQ"}`, wantMessage: &pb3.Scalars{ SBytes: []byte("hello world"), }, }, { desc: "bytes padded", inputMessage: &pb3.Scalars{}, inputText: `{"sBytes": "aGVsbG8gd29ybGQ="}`, wantMessage: &pb3.Scalars{ SBytes: []byte("hello world"), }, }, { desc: "not bytes", inputMessage: &pb3.Scalars{}, inputText: `{"sBytes": true}`, wantErr: `invalid value for bytes type: true`, }, { desc: "proto2 enum", inputMessage: &pb2.Enums{}, inputText: `{ "optEnum": "ONE", "optNestedEnum": "UNO" }`, wantMessage: &pb2.Enums{ OptEnum: pb2.Enum_ONE.Enum(), OptNestedEnum: pb2.Enums_UNO.Enum(), }, }, { desc: "proto3 enum", inputMessage: &pb3.Enums{}, inputText: `{ "sEnum": "ONE", "sNestedEnum": "DIEZ" }`, wantMessage: &pb3.Enums{ SEnum: pb3.Enum_ONE, SNestedEnum: pb3.Enums_DIEZ, }, }, { desc: "enum numeric value", inputMessage: &pb3.Enums{}, inputText: `{ "sEnum": 2, "sNestedEnum": 2 }`, wantMessage: &pb3.Enums{ SEnum: pb3.Enum_TWO, SNestedEnum: pb3.Enums_DOS, }, }, { desc: "enum unnamed numeric value", inputMessage: &pb3.Enums{}, inputText: `{ "sEnum": 101, "sNestedEnum": -101 }`, wantMessage: &pb3.Enums{ SEnum: 101, SNestedEnum: -101, }, }, { desc: "enum set to number string", inputMessage: &pb3.Enums{}, inputText: `{ "sEnum": "1" }`, wantErr: `invalid value for enum type: "1"`, }, { desc: "enum set to invalid named", inputMessage: &pb3.Enums{}, inputText: `{ "sEnum": "UNNAMED" }`, wantErr: `invalid value for enum type: "UNNAMED"`, }, { desc: "enum set to not enum", inputMessage: &pb3.Enums{}, inputText: `{ "sEnum": true }`, wantErr: `invalid value for enum type: true`, }, { desc: "enum set to JSON null", inputMessage: &pb3.Enums{}, inputText: `{ "sEnum": null }`, wantMessage: &pb3.Enums{}, }, { desc: "proto name", inputMessage: &pb3.JSONNames{}, inputText: `{ "s_string": "proto name used" }`, wantMessage: &pb3.JSONNames{ SString: "proto name used", }, }, { desc: "proto group name", inputMessage: &pb2.Nests{}, inputText: `{ "OptGroup": {"optString": "hello"}, "RptGroup": [{"rptString": ["goodbye"]}] }`, wantMessage: &pb2.Nests{ Optgroup: &pb2.Nests_OptGroup{OptString: proto.String("hello")}, Rptgroup: []*pb2.Nests_RptGroup{{RptString: []string{"goodbye"}}}, }, }, { desc: "json_name", inputMessage: &pb3.JSONNames{}, inputText: `{ "foo_bar": "json_name used" }`, wantMessage: &pb3.JSONNames{ SString: "json_name used", }, }, { desc: "camelCase name", inputMessage: &pb3.JSONNames{}, inputText: `{ "sString": "camelcase used" }`, wantErr: `unknown field "sString"`, }, { desc: "proto name and json_name", inputMessage: &pb3.JSONNames{}, inputText: `{ "foo_bar": "json_name used", "s_string": "proto name used" }`, wantErr: `(line 3:3): duplicate field "s_string"`, }, { desc: "duplicate field names", inputMessage: &pb3.JSONNames{}, inputText: `{ "foo_bar": "one", "foo_bar": "two", }`, wantErr: `(line 3:3): duplicate field "foo_bar"`, }, { desc: "null message", inputMessage: &pb2.Nests{}, inputText: "null", wantErr: `unexpected token null`, }, { desc: "proto2 nested message not set", inputMessage: &pb2.Nests{}, inputText: "{}", wantMessage: &pb2.Nests{}, }, { desc: "proto2 nested message set to null", inputMessage: &pb2.Nests{}, inputText: `{ "optNested": null, "optgroup": null }`, wantMessage: &pb2.Nests{}, }, { desc: "proto2 nested message set to empty", inputMessage: &pb2.Nests{}, inputText: `{ "optNested": {}, "optgroup": {} }`, wantMessage: &pb2.Nests{ OptNested: &pb2.Nested{}, Optgroup: &pb2.Nests_OptGroup{}, }, }, { desc: "proto2 nested messages", inputMessage: &pb2.Nests{}, inputText: `{ "optNested": { "optString": "nested message", "optNested": { "optString": "another nested message" } } }`, wantMessage: &pb2.Nests{ OptNested: &pb2.Nested{ OptString: proto.String("nested message"), OptNested: &pb2.Nested{ OptString: proto.String("another nested message"), }, }, }, }, { desc: "proto2 groups", inputMessage: &pb2.Nests{}, inputText: `{ "optgroup": { "optString": "inside a group", "optNested": { "optString": "nested message inside a group" }, "optnestedgroup": { "optFixed32": 47 } } }`, wantMessage: &pb2.Nests{ Optgroup: &pb2.Nests_OptGroup{ OptString: proto.String("inside a group"), OptNested: &pb2.Nested{ OptString: proto.String("nested message inside a group"), }, Optnestedgroup: &pb2.Nests_OptGroup_OptNestedGroup{ OptFixed32: proto.Uint32(47), }, }, }, }, { desc: "proto3 nested message not set", inputMessage: &pb3.Nests{}, inputText: "{}", wantMessage: &pb3.Nests{}, }, { desc: "proto3 nested message set to null", inputMessage: &pb3.Nests{}, inputText: `{"sNested": null}`, wantMessage: &pb3.Nests{}, }, { desc: "proto3 nested message set to empty", inputMessage: &pb3.Nests{}, inputText: `{"sNested": {}}`, wantMessage: &pb3.Nests{ SNested: &pb3.Nested{}, }, }, { desc: "proto3 nested message", inputMessage: &pb3.Nests{}, inputText: `{ "sNested": { "sString": "nested message", "sNested": { "sString": "another nested message" } } }`, wantMessage: &pb3.Nests{ SNested: &pb3.Nested{ SString: "nested message", SNested: &pb3.Nested{ SString: "another nested message", }, }, }, }, { desc: "message set to non-message", inputMessage: &pb3.Nests{}, inputText: `"not valid"`, wantErr: `unexpected token "not valid"`, }, { desc: "nested message set to non-message", inputMessage: &pb3.Nests{}, inputText: `{"sNested": true}`, wantErr: `(line 1:13): unexpected token true`, }, { desc: "oneof not set", inputMessage: &pb3.Oneofs{}, inputText: "{}", wantMessage: &pb3.Oneofs{}, }, { desc: "oneof set to empty string", inputMessage: &pb3.Oneofs{}, inputText: `{"oneofString": ""}`, wantMessage: &pb3.Oneofs{ Union: &pb3.Oneofs_OneofString{}, }, }, { desc: "oneof set to string", inputMessage: &pb3.Oneofs{}, inputText: `{"oneofString": "hello"}`, wantMessage: &pb3.Oneofs{ Union: &pb3.Oneofs_OneofString{ OneofString: "hello", }, }, }, { desc: "oneof set to enum", inputMessage: &pb3.Oneofs{}, inputText: `{"oneofEnum": "ZERO"}`, wantMessage: &pb3.Oneofs{ Union: &pb3.Oneofs_OneofEnum{ OneofEnum: pb3.Enum_ZERO, }, }, }, { desc: "oneof set to empty message", inputMessage: &pb3.Oneofs{}, inputText: `{"oneofNested": {}}`, wantMessage: &pb3.Oneofs{ Union: &pb3.Oneofs_OneofNested{ OneofNested: &pb3.Nested{}, }, }, }, { desc: "oneof set to message", inputMessage: &pb3.Oneofs{}, inputText: `{ "oneofNested": { "sString": "nested message" } }`, wantMessage: &pb3.Oneofs{ Union: &pb3.Oneofs_OneofNested{ OneofNested: &pb3.Nested{ SString: "nested message", }, }, }, }, { desc: "oneof set to more than one field", inputMessage: &pb3.Oneofs{}, inputText: `{ "oneofEnum": "ZERO", "oneofString": "hello" }`, wantErr: `(line 3:3): error parsing "oneofString", oneof pb3.Oneofs.union is already set`, }, { desc: "oneof set to null and value", inputMessage: &pb3.Oneofs{}, inputText: `{ "oneofEnum": "ZERO", "oneofString": null }`, wantMessage: &pb3.Oneofs{ Union: &pb3.Oneofs_OneofEnum{ OneofEnum: pb3.Enum_ZERO, }, }, }, { desc: "repeated null fields", inputMessage: &pb2.Repeats{}, inputText: `{ "rptString": null, "rptInt32" : null, "rptFloat" : null, "rptBytes" : null }`, wantMessage: &pb2.Repeats{}, }, { desc: "repeated scalars", inputMessage: &pb2.Repeats{}, inputText: `{ "rptString": ["hello", "world"], "rptInt32" : [-1, 0, 1], "rptBool" : [false, true] }`, wantMessage: &pb2.Repeats{ RptString: []string{"hello", "world"}, RptInt32: []int32{-1, 0, 1}, RptBool: []bool{false, true}, }, }, { desc: "repeated enums", inputMessage: &pb2.Enums{}, inputText: `{ "rptEnum" : ["TEN", 1, 42], "rptNestedEnum": ["DOS", 2, -47] }`, wantMessage: &pb2.Enums{ RptEnum: []pb2.Enum{pb2.Enum_TEN, pb2.Enum_ONE, 42}, RptNestedEnum: []pb2.Enums_NestedEnum{pb2.Enums_DOS, pb2.Enums_DOS, -47}, }, }, { desc: "repeated messages", inputMessage: &pb2.Nests{}, inputText: `{ "rptNested": [ { "optString": "repeat nested one" }, { "optString": "repeat nested two", "optNested": { "optString": "inside repeat nested two" } }, {} ] }`, wantMessage: &pb2.Nests{ RptNested: []*pb2.Nested{ { OptString: proto.String("repeat nested one"), }, { OptString: proto.String("repeat nested two"), OptNested: &pb2.Nested{ OptString: proto.String("inside repeat nested two"), }, }, {}, }, }, }, { desc: "repeated groups", inputMessage: &pb2.Nests{}, inputText: `{ "rptgroup": [ { "rptString": ["hello", "world"] }, {} ] } `, wantMessage: &pb2.Nests{ Rptgroup: []*pb2.Nests_RptGroup{ { RptString: []string{"hello", "world"}, }, {}, }, }, }, { desc: "repeated string contains invalid UTF8", inputMessage: &pb2.Repeats{}, inputText: `{"rptString": ["` + "abc\xff" + `"]}`, wantErr: `invalid UTF-8`, }, { desc: "repeated messages contain invalid UTF8", inputMessage: &pb2.Nests{}, inputText: `{"rptNested": [{"optString": "` + "abc\xff" + `"}]}`, wantErr: `invalid UTF-8`, }, { desc: "repeated scalars contain invalid type", inputMessage: &pb2.Repeats{}, inputText: `{"rptString": ["hello", null, "world"]}`, wantErr: `invalid value for string type: null`, }, { desc: "repeated messages contain invalid type", inputMessage: &pb2.Nests{}, inputText: `{"rptNested": [{}, null]}`, wantErr: `unexpected token null`, }, { desc: "map fields 1", inputMessage: &pb3.Maps{}, inputText: `{ "int32ToStr": { "-101": "-101", "0" : "zero", "255" : "0xff" }, "boolToUint32": { "false": 101, "true" : "42" } }`, wantMessage: &pb3.Maps{ Int32ToStr: map[int32]string{ -101: "-101", 0xff: "0xff", 0: "zero", }, BoolToUint32: map[bool]uint32{ true: 42, false: 101, }, }, }, { desc: "map fields 2", inputMessage: &pb3.Maps{}, inputText: `{ "uint64ToEnum": { "1" : "ONE", "2" : 2, "10": 101 } }`, wantMessage: &pb3.Maps{ Uint64ToEnum: map[uint64]pb3.Enum{ 1: pb3.Enum_ONE, 2: pb3.Enum_TWO, 10: 101, }, }, }, { desc: "map fields 3", inputMessage: &pb3.Maps{}, inputText: `{ "strToNested": { "nested_one": { "sString": "nested in a map" }, "nested_two": {} } }`, wantMessage: &pb3.Maps{ StrToNested: map[string]*pb3.Nested{ "nested_one": { SString: "nested in a map", }, "nested_two": {}, }, }, }, { desc: "map fields 4", inputMessage: &pb3.Maps{}, inputText: `{ "strToOneofs": { "nested": { "oneofNested": { "sString": "nested oneof in map field value" } }, "string": { "oneofString": "hello" } } }`, wantMessage: &pb3.Maps{ StrToOneofs: map[string]*pb3.Oneofs{ "string": { Union: &pb3.Oneofs_OneofString{ OneofString: "hello", }, }, "nested": { Union: &pb3.Oneofs_OneofNested{ OneofNested: &pb3.Nested{ SString: "nested oneof in map field value", }, }, }, }, }, }, { desc: "map contains duplicate keys", inputMessage: &pb3.Maps{}, inputText: `{ "int32ToStr": { "0": "cero", "0": "zero" } } `, wantErr: `(line 4:5): duplicate map key "0"`, }, { desc: "map key empty string", inputMessage: &pb3.Maps{}, inputText: `{ "strToNested": { "": {} } }`, wantMessage: &pb3.Maps{ StrToNested: map[string]*pb3.Nested{ "": {}, }, }, }, { desc: "map contains invalid key 1", inputMessage: &pb3.Maps{}, inputText: `{ "int32ToStr": { "invalid": "cero" } }`, wantErr: `invalid value for int32 key: "invalid"`, }, { desc: "map contains invalid key 2", inputMessage: &pb3.Maps{}, inputText: `{ "int32ToStr": { "1.02": "float" } }`, wantErr: `invalid value for int32 key: "1.02"`, }, { desc: "map contains invalid key 3", inputMessage: &pb3.Maps{}, inputText: `{ "int32ToStr": { "2147483648": "exceeds 32-bit integer max limit" } }`, wantErr: `invalid value for int32 key: "2147483648"`, }, { desc: "map contains invalid key 4", inputMessage: &pb3.Maps{}, inputText: `{ "uint64ToEnum": { "-1": 0 } }`, wantErr: `invalid value for uint64 key: "-1"`, }, { desc: "map contains invalid value", inputMessage: &pb3.Maps{}, inputText: `{ "int32ToStr": { "101": true }`, wantErr: `invalid value for string type: true`, }, { desc: "map contains null for scalar value", inputMessage: &pb3.Maps{}, inputText: `{ "int32ToStr": { "101": null }`, wantErr: `invalid value for string type: null`, }, { desc: "map contains null for message value", inputMessage: &pb3.Maps{}, inputText: `{ "strToNested": { "hello": null } }`, wantErr: `unexpected token null`, }, { desc: "map contains contains message value with invalid UTF8", inputMessage: &pb3.Maps{}, inputText: `{ "strToNested": { "hello": { "sString": "` + "abc\xff" + `" } } }`, wantErr: `invalid UTF-8`, }, { desc: "map key contains invalid UTF8", inputMessage: &pb3.Maps{}, inputText: `{ "strToNested": { "` + "abc\xff" + `": {} } }`, wantErr: `invalid UTF-8`, }, { desc: "required fields not set", inputMessage: &pb2.Requireds{}, inputText: `{}`, wantErr: errors.RequiredNotSet("pb2.Requireds.req_bool").Error(), }, { desc: "required field set", inputMessage: &pb2.PartialRequired{}, inputText: `{ "reqString": "this is required" }`, wantMessage: &pb2.PartialRequired{ ReqString: proto.String("this is required"), }, }, { desc: "required fields partially set", inputMessage: &pb2.Requireds{}, inputText: `{ "reqBool": false, "reqSfixed64": 42, "reqString": "hello", "reqEnum": "ONE" }`, wantMessage: &pb2.Requireds{ ReqBool: proto.Bool(false), ReqSfixed64: proto.Int64(42), ReqString: proto.String("hello"), ReqEnum: pb2.Enum_ONE.Enum(), }, wantErr: errors.RequiredNotSet("pb2.Requireds.req_double").Error(), }, { desc: "required fields partially set with AllowPartial", umo: protojson.UnmarshalOptions{AllowPartial: true}, inputMessage: &pb2.Requireds{}, inputText: `{ "reqBool": false, "reqSfixed64": 42, "reqString": "hello", "reqEnum": "ONE" }`, wantMessage: &pb2.Requireds{ ReqBool: proto.Bool(false), ReqSfixed64: proto.Int64(42), ReqString: proto.String("hello"), ReqEnum: pb2.Enum_ONE.Enum(), }, }, { desc: "required fields all set", inputMessage: &pb2.Requireds{}, inputText: `{ "reqBool": false, "reqSfixed64": 42, "reqDouble": 1.23, "reqString": "hello", "reqEnum": "ONE", "reqNested": {} }`, wantMessage: &pb2.Requireds{ ReqBool: proto.Bool(false), ReqSfixed64: proto.Int64(42), ReqDouble: proto.Float64(1.23), ReqString: proto.String("hello"), ReqEnum: pb2.Enum_ONE.Enum(), ReqNested: &pb2.Nested{}, }, }, { desc: "indirect required field", inputMessage: &pb2.IndirectRequired{}, inputText: `{ "optNested": {} }`, wantMessage: &pb2.IndirectRequired{ OptNested: &pb2.NestedWithRequired{}, }, wantErr: errors.RequiredNotSet("pb2.NestedWithRequired.req_string").Error(), }, { desc: "indirect required field with AllowPartial", umo: protojson.UnmarshalOptions{AllowPartial: true}, inputMessage: &pb2.IndirectRequired{}, inputText: `{ "optNested": {} }`, wantMessage: &pb2.IndirectRequired{ OptNested: &pb2.NestedWithRequired{}, }, }, { desc: "indirect required field in repeated", inputMessage: &pb2.IndirectRequired{}, inputText: `{ "rptNested": [ {"reqString": "one"}, {} ] }`, wantMessage: &pb2.IndirectRequired{ RptNested: []*pb2.NestedWithRequired{ { ReqString: proto.String("one"), }, {}, }, }, wantErr: errors.RequiredNotSet("pb2.NestedWithRequired.req_string").Error(), }, { desc: "indirect required field in repeated with AllowPartial", umo: protojson.UnmarshalOptions{AllowPartial: true}, inputMessage: &pb2.IndirectRequired{}, inputText: `{ "rptNested": [ {"reqString": "one"}, {} ] }`, wantMessage: &pb2.IndirectRequired{ RptNested: []*pb2.NestedWithRequired{ { ReqString: proto.String("one"), }, {}, }, }, }, { desc: "indirect required field in map", inputMessage: &pb2.IndirectRequired{}, inputText: `{ "strToNested": { "missing": {}, "contains": { "reqString": "here" } } }`, wantMessage: &pb2.IndirectRequired{ StrToNested: map[string]*pb2.NestedWithRequired{ "missing": &pb2.NestedWithRequired{}, "contains": &pb2.NestedWithRequired{ ReqString: proto.String("here"), }, }, }, wantErr: errors.RequiredNotSet("pb2.NestedWithRequired.req_string").Error(), }, { desc: "indirect required field in map with AllowPartial", umo: protojson.UnmarshalOptions{AllowPartial: true}, inputMessage: &pb2.IndirectRequired{}, inputText: `{ "strToNested": { "missing": {}, "contains": { "reqString": "here" } } }`, wantMessage: &pb2.IndirectRequired{ StrToNested: map[string]*pb2.NestedWithRequired{ "missing": &pb2.NestedWithRequired{}, "contains": &pb2.NestedWithRequired{ ReqString: proto.String("here"), }, }, }, }, { desc: "indirect required field in oneof", inputMessage: &pb2.IndirectRequired{}, inputText: `{ "oneofNested": {} }`, wantMessage: &pb2.IndirectRequired{ Union: &pb2.IndirectRequired_OneofNested{ OneofNested: &pb2.NestedWithRequired{}, }, }, wantErr: errors.RequiredNotSet("pb2.NestedWithRequired.req_string").Error(), }, { desc: "indirect required field in oneof with AllowPartial", umo: protojson.UnmarshalOptions{AllowPartial: true}, inputMessage: &pb2.IndirectRequired{}, inputText: `{ "oneofNested": {} }`, wantMessage: &pb2.IndirectRequired{ Union: &pb2.IndirectRequired_OneofNested{ OneofNested: &pb2.NestedWithRequired{}, }, }, }, { desc: "extensions of non-repeated fields", inputMessage: &pb2.Extensions{}, inputText: `{ "optString": "non-extension field", "optBool": true, "optInt32": 42, "[pb2.opt_ext_bool]": true, "[pb2.opt_ext_nested]": { "optString": "nested in an extension", "optNested": { "optString": "another nested in an extension" } }, "[pb2.opt_ext_string]": "extension field", "[pb2.opt_ext_enum]": "TEN" }`, wantMessage: func() proto.Message { m := &pb2.Extensions{ OptString: proto.String("non-extension field"), OptBool: proto.Bool(true), OptInt32: proto.Int32(42), } proto.SetExtension(m, pb2.E_OptExtBool, true) proto.SetExtension(m, pb2.E_OptExtString, "extension field") proto.SetExtension(m, pb2.E_OptExtEnum, pb2.Enum_TEN) proto.SetExtension(m, pb2.E_OptExtNested, &pb2.Nested{ OptString: proto.String("nested in an extension"), OptNested: &pb2.Nested{ OptString: proto.String("another nested in an extension"), }, }) return m }(), }, { desc: "extensions of repeated fields", inputMessage: &pb2.Extensions{}, inputText: `{ "[pb2.rpt_ext_enum]": ["TEN", 101, "ONE"], "[pb2.rpt_ext_fixed32]": [42, 47], "[pb2.rpt_ext_nested]": [ {"optString": "one"}, {"optString": "two"}, {"optString": "three"} ] }`, wantMessage: func() proto.Message { m := &pb2.Extensions{} proto.SetExtension(m, pb2.E_RptExtEnum, []pb2.Enum{pb2.Enum_TEN, 101, pb2.Enum_ONE}) proto.SetExtension(m, pb2.E_RptExtFixed32, []uint32{42, 47}) proto.SetExtension(m, pb2.E_RptExtNested, []*pb2.Nested{ &pb2.Nested{OptString: proto.String("one")}, &pb2.Nested{OptString: proto.String("two")}, &pb2.Nested{OptString: proto.String("three")}, }) return m }(), }, { desc: "extensions of non-repeated fields in another message", inputMessage: &pb2.Extensions{}, inputText: `{ "[pb2.ExtensionsContainer.opt_ext_bool]": true, "[pb2.ExtensionsContainer.opt_ext_enum]": "TEN", "[pb2.ExtensionsContainer.opt_ext_nested]": { "optString": "nested in an extension", "optNested": { "optString": "another nested in an extension" } }, "[pb2.ExtensionsContainer.opt_ext_string]": "extension field" }`, wantMessage: func() proto.Message { m := &pb2.Extensions{} proto.SetExtension(m, pb2.E_ExtensionsContainer_OptExtBool, true) proto.SetExtension(m, pb2.E_ExtensionsContainer_OptExtString, "extension field") proto.SetExtension(m, pb2.E_ExtensionsContainer_OptExtEnum, pb2.Enum_TEN) proto.SetExtension(m, pb2.E_ExtensionsContainer_OptExtNested, &pb2.Nested{ OptString: proto.String("nested in an extension"), OptNested: &pb2.Nested{ OptString: proto.String("another nested in an extension"), }, }) return m }(), }, { desc: "extensions of repeated fields in another message", inputMessage: &pb2.Extensions{}, inputText: `{ "optString": "non-extension field", "optBool": true, "optInt32": 42, "[pb2.ExtensionsContainer.rpt_ext_nested]": [ {"optString": "one"}, {"optString": "two"}, {"optString": "three"} ], "[pb2.ExtensionsContainer.rpt_ext_enum]": ["TEN", 101, "ONE"], "[pb2.ExtensionsContainer.rpt_ext_string]": ["hello", "world"] }`, wantMessage: func() proto.Message { m := &pb2.Extensions{ OptString: proto.String("non-extension field"), OptBool: proto.Bool(true), OptInt32: proto.Int32(42), } proto.SetExtension(m, pb2.E_ExtensionsContainer_RptExtEnum, []pb2.Enum{pb2.Enum_TEN, 101, pb2.Enum_ONE}) proto.SetExtension(m, pb2.E_ExtensionsContainer_RptExtString, []string{"hello", "world"}) proto.SetExtension(m, pb2.E_ExtensionsContainer_RptExtNested, []*pb2.Nested{ &pb2.Nested{OptString: proto.String("one")}, &pb2.Nested{OptString: proto.String("two")}, &pb2.Nested{OptString: proto.String("three")}, }) return m }(), }, { desc: "invalid extension field name", inputMessage: &pb2.Extensions{}, inputText: `{ "[pb2.invalid_message_field]": true }`, wantErr: `(line 1:3): unknown field "[pb2.invalid_message_field]"`, }, { desc: "extensions of repeated field contains null", inputMessage: &pb2.Extensions{}, inputText: `{ "[pb2.ExtensionsContainer.rpt_ext_nested]": [ {"optString": "one"}, null, {"optString": "three"} ], }`, wantErr: `(line 4:5): unexpected token null`, }, { desc: "MessageSet", inputMessage: &pb2.MessageSet{}, inputText: `{ "[pb2.MessageSetExtension]": { "optString": "a messageset extension" }, "[pb2.MessageSetExtension.ext_nested]": { "optString": "just a regular extension" }, "[pb2.MessageSetExtension.not_message_set_extension]": { "optString": "not a messageset extension" } }`, wantMessage: func() proto.Message { m := &pb2.MessageSet{} proto.SetExtension(m, pb2.E_MessageSetExtension_MessageSetExtension, &pb2.MessageSetExtension{ OptString: proto.String("a messageset extension"), }) proto.SetExtension(m, pb2.E_MessageSetExtension_NotMessageSetExtension, &pb2.MessageSetExtension{ OptString: proto.String("not a messageset extension"), }) proto.SetExtension(m, pb2.E_MessageSetExtension_ExtNested, &pb2.Nested{ OptString: proto.String("just a regular extension"), }) return m }(), skip: !flags.ProtoLegacy, }, { desc: "not real MessageSet 1", inputMessage: &pb2.FakeMessageSet{}, inputText: `{ "[pb2.FakeMessageSetExtension.message_set_extension]": { "optString": "not a messageset extension" } }`, wantMessage: func() proto.Message { m := &pb2.FakeMessageSet{} proto.SetExtension(m, pb2.E_FakeMessageSetExtension_MessageSetExtension, &pb2.FakeMessageSetExtension{ OptString: proto.String("not a messageset extension"), }) return m }(), skip: !flags.ProtoLegacy, }, { desc: "not real MessageSet 2", inputMessage: &pb2.FakeMessageSet{}, inputText: `{ "[pb2.FakeMessageSetExtension]": { "optString": "not a messageset extension" } }`, wantErr: `unable to resolve "[pb2.FakeMessageSetExtension]": found wrong type`, skip: !flags.ProtoLegacy, }, { desc: "not real MessageSet 3", inputMessage: &pb2.MessageSet{}, inputText: `{ "[pb2.message_set_extension]": { "optString": "another not a messageset extension" } }`, wantMessage: func() proto.Message { m := &pb2.MessageSet{} proto.SetExtension(m, pb2.E_MessageSetExtension, &pb2.FakeMessageSetExtension{ OptString: proto.String("another not a messageset extension"), }) return m }(), skip: !flags.ProtoLegacy, }, { desc: "Empty", inputMessage: &emptypb.Empty{}, inputText: `{}`, wantMessage: &emptypb.Empty{}, }, { desc: "Empty contains unknown", inputMessage: &emptypb.Empty{}, inputText: `{"unknown": null}`, wantErr: `unknown field "unknown"`, }, { desc: "BoolValue false", inputMessage: &wrapperspb.BoolValue{}, inputText: `false`, wantMessage: &wrapperspb.BoolValue{}, }, { desc: "BoolValue true", inputMessage: &wrapperspb.BoolValue{}, inputText: `true`, wantMessage: &wrapperspb.BoolValue{Value: true}, }, { desc: "BoolValue invalid value", inputMessage: &wrapperspb.BoolValue{}, inputText: `{}`, wantErr: `invalid value for bool type: {`, }, { desc: "Int32Value", inputMessage: &wrapperspb.Int32Value{}, inputText: `42`, wantMessage: &wrapperspb.Int32Value{Value: 42}, }, { desc: "Int32Value in JSON string", inputMessage: &wrapperspb.Int32Value{}, inputText: `"1.23e3"`, wantMessage: &wrapperspb.Int32Value{Value: 1230}, }, { desc: "Int64Value", inputMessage: &wrapperspb.Int64Value{}, inputText: `"42"`, wantMessage: &wrapperspb.Int64Value{Value: 42}, }, { desc: "UInt32Value", inputMessage: &wrapperspb.UInt32Value{}, inputText: `42`, wantMessage: &wrapperspb.UInt32Value{Value: 42}, }, { desc: "UInt64Value", inputMessage: &wrapperspb.UInt64Value{}, inputText: `"42"`, wantMessage: &wrapperspb.UInt64Value{Value: 42}, }, { desc: "FloatValue", inputMessage: &wrapperspb.FloatValue{}, inputText: `1.02`, wantMessage: &wrapperspb.FloatValue{Value: 1.02}, }, { desc: "FloatValue exceeds max limit", inputMessage: &wrapperspb.FloatValue{}, inputText: `1.23e+40`, wantErr: `invalid value for float type: 1.23e+40`, }, { desc: "FloatValue Infinity", inputMessage: &wrapperspb.FloatValue{}, inputText: `"-Infinity"`, wantMessage: &wrapperspb.FloatValue{Value: float32(math.Inf(-1))}, }, { desc: "DoubleValue", inputMessage: &wrapperspb.DoubleValue{}, inputText: `1.02`, wantMessage: &wrapperspb.DoubleValue{Value: 1.02}, }, { desc: "DoubleValue Infinity", inputMessage: &wrapperspb.DoubleValue{}, inputText: `"Infinity"`, wantMessage: &wrapperspb.DoubleValue{Value: math.Inf(+1)}, }, { desc: "StringValue empty", inputMessage: &wrapperspb.StringValue{}, inputText: `""`, wantMessage: &wrapperspb.StringValue{}, }, { desc: "StringValue", inputMessage: &wrapperspb.StringValue{}, inputText: `"谷歌"`, wantMessage: &wrapperspb.StringValue{Value: "谷歌"}, }, { desc: "StringValue with invalid UTF8 error", inputMessage: &wrapperspb.StringValue{}, inputText: "\"abc\xff\"", wantErr: `invalid UTF-8`, }, { desc: "StringValue field with invalid UTF8 error", inputMessage: &pb2.KnownTypes{}, inputText: "{\n \"optString\": \"abc\xff\"\n}", wantErr: `invalid UTF-8`, }, { desc: "NullValue field with JSON null", inputMessage: &pb2.KnownTypes{}, inputText: `{ "optNull": null }`, wantMessage: &pb2.KnownTypes{OptNull: new(structpb.NullValue)}, }, { desc: "NullValue field with string", inputMessage: &pb2.KnownTypes{}, inputText: `{ "optNull": "NULL_VALUE" }`, wantMessage: &pb2.KnownTypes{OptNull: new(structpb.NullValue)}, }, { desc: "BytesValue", inputMessage: &wrapperspb.BytesValue{}, inputText: `"aGVsbG8="`, wantMessage: &wrapperspb.BytesValue{Value: []byte("hello")}, }, { desc: "Value null", inputMessage: &structpb.Value{}, inputText: `null`, wantMessage: &structpb.Value{Kind: &structpb.Value_NullValue{}}, }, { desc: "Value field null", inputMessage: &pb2.KnownTypes{}, inputText: `{ "optValue": null }`, wantMessage: &pb2.KnownTypes{ OptValue: &structpb.Value{Kind: &structpb.Value_NullValue{}}, }, }, { desc: "Value bool", inputMessage: &structpb.Value{}, inputText: `false`, wantMessage: &structpb.Value{Kind: &structpb.Value_BoolValue{}}, }, { desc: "Value field bool", inputMessage: &pb2.KnownTypes{}, inputText: `{ "optValue": true }`, wantMessage: &pb2.KnownTypes{ OptValue: &structpb.Value{Kind: &structpb.Value_BoolValue{true}}, }, }, { desc: "Value number", inputMessage: &structpb.Value{}, inputText: `1.02`, wantMessage: &structpb.Value{Kind: &structpb.Value_NumberValue{1.02}}, }, { desc: "Value field number", inputMessage: &pb2.KnownTypes{}, inputText: `{ "optValue": 1.02 }`, wantMessage: &pb2.KnownTypes{ OptValue: &structpb.Value{Kind: &structpb.Value_NumberValue{1.02}}, }, }, { desc: "Value string", inputMessage: &structpb.Value{}, inputText: `"hello"`, wantMessage: &structpb.Value{Kind: &structpb.Value_StringValue{"hello"}}, }, { desc: "Value string with invalid UTF8", inputMessage: &structpb.Value{}, inputText: "\"\xff\"", wantErr: `invalid UTF-8`, }, { desc: "Value field string", inputMessage: &pb2.KnownTypes{}, inputText: `{ "optValue": "NaN" }`, wantMessage: &pb2.KnownTypes{ OptValue: &structpb.Value{Kind: &structpb.Value_StringValue{"NaN"}}, }, }, { desc: "Value field string with invalid UTF8", inputMessage: &pb2.KnownTypes{}, inputText: `{ "optValue": "` + "\xff" + `" }`, wantErr: `invalid UTF-8`, }, { desc: "Value empty struct", inputMessage: &structpb.Value{}, inputText: `{}`, wantMessage: &structpb.Value{ Kind: &structpb.Value_StructValue{ &structpb.Struct{Fields: map[string]*structpb.Value{}}, }, }, }, { desc: "Value struct", inputMessage: &structpb.Value{}, inputText: `{ "string": "hello", "number": 123, "null": null, "bool": false, "struct": { "string": "world" }, "list": [] }`, wantMessage: &structpb.Value{ Kind: &structpb.Value_StructValue{ &structpb.Struct{ Fields: map[string]*structpb.Value{ "string": {Kind: &structpb.Value_StringValue{"hello"}}, "number": {Kind: &structpb.Value_NumberValue{123}}, "null": {Kind: &structpb.Value_NullValue{}}, "bool": {Kind: &structpb.Value_BoolValue{false}}, "struct": { Kind: &structpb.Value_StructValue{ &structpb.Struct{ Fields: map[string]*structpb.Value{ "string": {Kind: &structpb.Value_StringValue{"world"}}, }, }, }, }, "list": { Kind: &structpb.Value_ListValue{&structpb.ListValue{}}, }, }, }, }, }, }, { desc: "Value struct with invalid UTF8 string", inputMessage: &structpb.Value{}, inputText: "{\"string\": \"abc\xff\"}", wantErr: `invalid UTF-8`, }, { desc: "Value field struct", inputMessage: &pb2.KnownTypes{}, inputText: `{ "optValue": { "string": "hello" } }`, wantMessage: &pb2.KnownTypes{ OptValue: &structpb.Value{ Kind: &structpb.Value_StructValue{ &structpb.Struct{ Fields: map[string]*structpb.Value{ "string": {Kind: &structpb.Value_StringValue{"hello"}}, }, }, }, }, }, }, { desc: "Value empty list", inputMessage: &structpb.Value{}, inputText: `[]`, wantMessage: &structpb.Value{ Kind: &structpb.Value_ListValue{ &structpb.ListValue{Values: []*structpb.Value{}}, }, }, }, { desc: "Value list", inputMessage: &structpb.Value{}, inputText: `[ "string", 123, null, true, {}, [ "string", 1.23, null, false ] ]`, wantMessage: &structpb.Value{ Kind: &structpb.Value_ListValue{ &structpb.ListValue{ Values: []*structpb.Value{ {Kind: &structpb.Value_StringValue{"string"}}, {Kind: &structpb.Value_NumberValue{123}}, {Kind: &structpb.Value_NullValue{}}, {Kind: &structpb.Value_BoolValue{true}}, {Kind: &structpb.Value_StructValue{&structpb.Struct{}}}, { Kind: &structpb.Value_ListValue{ &structpb.ListValue{ Values: []*structpb.Value{ {Kind: &structpb.Value_StringValue{"string"}}, {Kind: &structpb.Value_NumberValue{1.23}}, {Kind: &structpb.Value_NullValue{}}, {Kind: &structpb.Value_BoolValue{false}}, }, }, }, }, }, }, }, }, }, { desc: "Value list with invalid UTF8 string", inputMessage: &structpb.Value{}, inputText: "[\"abc\xff\"]", wantErr: `invalid UTF-8`, }, { desc: "Value field list with invalid UTF8 string", inputMessage: &pb2.KnownTypes{}, inputText: `{ "optValue": [ "` + "abc\xff" + `"] }`, wantErr: `(line 2:17): invalid UTF-8`, }, { desc: "Duration empty string", inputMessage: &durationpb.Duration{}, inputText: `""`, wantErr: `invalid google.protobuf.Duration value ""`, }, { desc: "Duration with secs", inputMessage: &durationpb.Duration{}, inputText: `"3s"`, wantMessage: &durationpb.Duration{Seconds: 3}, }, { desc: "Duration with escaped unicode", inputMessage: &durationpb.Duration{}, inputText: `"\u0033s"`, wantMessage: &durationpb.Duration{Seconds: 3}, }, { desc: "Duration with -secs", inputMessage: &durationpb.Duration{}, inputText: `"-3s"`, wantMessage: &durationpb.Duration{Seconds: -3}, }, { desc: "Duration with plus sign", inputMessage: &durationpb.Duration{}, inputText: `"+3s"`, wantMessage: &durationpb.Duration{Seconds: 3}, }, { desc: "Duration with nanos", inputMessage: &durationpb.Duration{}, inputText: `"0.001s"`, wantMessage: &durationpb.Duration{Nanos: 1e6}, }, { desc: "Duration with -nanos", inputMessage: &durationpb.Duration{}, inputText: `"-0.001s"`, wantMessage: &durationpb.Duration{Nanos: -1e6}, }, { desc: "Duration with -nanos", inputMessage: &durationpb.Duration{}, inputText: `"-.001s"`, wantMessage: &durationpb.Duration{Nanos: -1e6}, }, { desc: "Duration with +nanos", inputMessage: &durationpb.Duration{}, inputText: `"+.001s"`, wantMessage: &durationpb.Duration{Nanos: 1e6}, }, { desc: "Duration with -secs -nanos", inputMessage: &durationpb.Duration{}, inputText: `"-123.000000450s"`, wantMessage: &durationpb.Duration{Seconds: -123, Nanos: -450}, }, { desc: "Duration with large secs", inputMessage: &durationpb.Duration{}, inputText: `"10000000000.000000001s"`, wantMessage: &durationpb.Duration{Seconds: 1e10, Nanos: 1}, }, { desc: "Duration with decimal without fractional", inputMessage: &durationpb.Duration{}, inputText: `"3.s"`, wantMessage: &durationpb.Duration{Seconds: 3}, }, { desc: "Duration with decimal without integer", inputMessage: &durationpb.Duration{}, inputText: `"0.5s"`, wantMessage: &durationpb.Duration{Nanos: 5e8}, }, { desc: "Duration max value", inputMessage: &durationpb.Duration{}, inputText: `"315576000000.999999999s"`, wantMessage: &durationpb.Duration{Seconds: 315576000000, Nanos: 999999999}, }, { desc: "Duration min value", inputMessage: &durationpb.Duration{}, inputText: `"-315576000000.999999999s"`, wantMessage: &durationpb.Duration{Seconds: -315576000000, Nanos: -999999999}, }, { desc: "Duration with +secs out of range", inputMessage: &durationpb.Duration{}, inputText: `"315576000001s"`, wantErr: `google.protobuf.Duration value out of range: "315576000001s"`, }, { desc: "Duration with -secs out of range", inputMessage: &durationpb.Duration{}, inputText: `"-315576000001s"`, wantErr: `google.protobuf.Duration value out of range: "-315576000001s"`, }, { desc: "Duration with nanos beyond 9 digits", inputMessage: &durationpb.Duration{}, inputText: `"0.1000000000s"`, wantErr: `invalid google.protobuf.Duration value "0.1000000000s"`, }, { desc: "Duration without suffix s", inputMessage: &durationpb.Duration{}, inputText: `"123"`, wantErr: `invalid google.protobuf.Duration value "123"`, }, { desc: "Duration invalid signed fraction", inputMessage: &durationpb.Duration{}, inputText: `"123.+123s"`, wantErr: `invalid google.protobuf.Duration value "123.+123s"`, }, { desc: "Duration invalid multiple .", inputMessage: &durationpb.Duration{}, inputText: `"123.123.s"`, wantErr: `invalid google.protobuf.Duration value "123.123.s"`, }, { desc: "Duration invalid integer", inputMessage: &durationpb.Duration{}, inputText: `"01s"`, wantErr: `invalid google.protobuf.Duration value "01s"`, }, { desc: "Timestamp zero", inputMessage: ×tamppb.Timestamp{}, inputText: `"1970-01-01T00:00:00Z"`, wantMessage: ×tamppb.Timestamp{}, }, { desc: "Timestamp with tz adjustment", inputMessage: ×tamppb.Timestamp{}, inputText: `"1970-01-01T00:00:00+01:00"`, wantMessage: ×tamppb.Timestamp{Seconds: -3600}, }, { desc: "Timestamp UTC", inputMessage: ×tamppb.Timestamp{}, inputText: `"2019-03-19T23:03:21Z"`, wantMessage: ×tamppb.Timestamp{Seconds: 1553036601}, }, { desc: "Timestamp with escaped unicode", inputMessage: ×tamppb.Timestamp{}, inputText: `"2019-0\u0033-19T23:03:21Z"`, wantMessage: ×tamppb.Timestamp{Seconds: 1553036601}, }, { desc: "Timestamp with nanos", inputMessage: ×tamppb.Timestamp{}, inputText: `"2019-03-19T23:03:21.000000001Z"`, wantMessage: ×tamppb.Timestamp{Seconds: 1553036601, Nanos: 1}, }, { desc: "Timestamp max value", inputMessage: ×tamppb.Timestamp{}, inputText: `"9999-12-31T23:59:59.999999999Z"`, wantMessage: ×tamppb.Timestamp{Seconds: 253402300799, Nanos: 999999999}, }, { desc: "Timestamp above max value", inputMessage: ×tamppb.Timestamp{}, inputText: `"9999-12-31T23:59:59-01:00"`, wantErr: `google.protobuf.Timestamp value out of range: "9999-12-31T23:59:59-01:00"`, }, { desc: "Timestamp min value", inputMessage: ×tamppb.Timestamp{}, inputText: `"0001-01-01T00:00:00Z"`, wantMessage: ×tamppb.Timestamp{Seconds: -62135596800}, }, { desc: "Timestamp below min value", inputMessage: ×tamppb.Timestamp{}, inputText: `"0001-01-01T00:00:00+01:00"`, wantErr: `google.protobuf.Timestamp value out of range: "0001-01-01T00:00:00+01:00"`, }, { desc: "Timestamp with nanos beyond 9 digits", inputMessage: ×tamppb.Timestamp{}, inputText: `"1970-01-01T00:00:00.0000000001Z"`, wantErr: `invalid google.protobuf.Timestamp value`, }, { desc: "FieldMask empty", inputMessage: &fieldmaskpb.FieldMask{}, inputText: `""`, wantMessage: &fieldmaskpb.FieldMask{Paths: []string{}}, }, { desc: "FieldMask", inputMessage: &fieldmaskpb.FieldMask{}, inputText: `"foo,fooBar,foo.barQux,Foo"`, wantMessage: &fieldmaskpb.FieldMask{ Paths: []string{ "foo", "foo_bar", "foo.bar_qux", "_foo", }, }, }, { desc: "FieldMask empty path 1", inputMessage: &fieldmaskpb.FieldMask{}, inputText: `"foo,"`, wantErr: `google.protobuf.FieldMask.paths contains invalid path: ""`, }, { desc: "FieldMask empty path 2", inputMessage: &fieldmaskpb.FieldMask{}, inputText: `"foo, ,bar"`, wantErr: `google.protobuf.FieldMask.paths contains invalid path: " "`, }, { desc: "FieldMask invalid char 1", inputMessage: &fieldmaskpb.FieldMask{}, inputText: `"foo_bar"`, wantErr: `google.protobuf.FieldMask.paths contains invalid path: "foo_bar"`, }, { desc: "FieldMask invalid char 2", inputMessage: &fieldmaskpb.FieldMask{}, inputText: `"foo@bar"`, wantErr: `google.protobuf.FieldMask.paths contains invalid path: "foo@bar"`, }, { desc: "FieldMask field", inputMessage: &pb2.KnownTypes{}, inputText: `{ "optFieldmask": "foo,qux.fooBar" }`, wantMessage: &pb2.KnownTypes{ OptFieldmask: &fieldmaskpb.FieldMask{ Paths: []string{ "foo", "qux.foo_bar", }, }, }, }, { desc: "Any empty", inputMessage: &anypb.Any{}, inputText: `{}`, wantMessage: &anypb.Any{}, }, { desc: "Any with non-custom message", inputMessage: &anypb.Any{}, inputText: `{ "@type": "foo/pb2.Nested", "optString": "embedded inside Any", "optNested": { "optString": "inception" } }`, wantMessage: func() proto.Message { m := &pb2.Nested{ OptString: proto.String("embedded inside Any"), OptNested: &pb2.Nested{ OptString: proto.String("inception"), }, } b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: "foo/pb2.Nested", Value: b, } }(), }, { desc: "Any with empty embedded message", inputMessage: &anypb.Any{}, inputText: `{"@type": "foo/pb2.Nested"}`, wantMessage: &anypb.Any{TypeUrl: "foo/pb2.Nested"}, }, { desc: "Any without registered type", umo: protojson.UnmarshalOptions{Resolver: new(preg.Types)}, inputMessage: &anypb.Any{}, inputText: `{"@type": "foo/pb2.Nested"}`, wantErr: `(line 1:11): unable to resolve "foo/pb2.Nested":`, }, { desc: "Any with missing required", inputMessage: &anypb.Any{}, inputText: `{ "@type": "pb2.PartialRequired", "optString": "embedded inside Any" }`, wantMessage: func() proto.Message { m := &pb2.PartialRequired{ OptString: proto.String("embedded inside Any"), } b, err := proto.MarshalOptions{ Deterministic: true, AllowPartial: true, }.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: string(m.ProtoReflect().Descriptor().FullName()), Value: b, } }(), }, { desc: "Any with partial required and AllowPartial", umo: protojson.UnmarshalOptions{ AllowPartial: true, }, inputMessage: &anypb.Any{}, inputText: `{ "@type": "pb2.PartialRequired", "optString": "embedded inside Any" }`, wantMessage: func() proto.Message { m := &pb2.PartialRequired{ OptString: proto.String("embedded inside Any"), } b, err := proto.MarshalOptions{ Deterministic: true, AllowPartial: true, }.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: string(m.ProtoReflect().Descriptor().FullName()), Value: b, } }(), }, { desc: "Any with invalid UTF8", inputMessage: &anypb.Any{}, inputText: `{ "optString": "` + "abc\xff" + `", "@type": "foo/pb2.Nested" }`, wantErr: `(line 2:16): invalid UTF-8`, }, { desc: "Any with BoolValue", inputMessage: &anypb.Any{}, inputText: `{ "@type": "type.googleapis.com/google.protobuf.BoolValue", "value": true }`, wantMessage: func() proto.Message { m := &wrapperspb.BoolValue{Value: true} b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: "type.googleapis.com/google.protobuf.BoolValue", Value: b, } }(), }, { desc: "Any with Empty", inputMessage: &anypb.Any{}, inputText: `{ "value": {}, "@type": "type.googleapis.com/google.protobuf.Empty" }`, wantMessage: &anypb.Any{ TypeUrl: "type.googleapis.com/google.protobuf.Empty", }, }, { desc: "Any with missing Empty", inputMessage: &anypb.Any{}, inputText: `{ "@type": "type.googleapis.com/google.protobuf.Empty" }`, wantErr: `(line 3:1): missing "value" field`, }, { desc: "Any with StringValue containing invalid UTF8", inputMessage: &anypb.Any{}, inputText: `{ "@type": "google.protobuf.StringValue", "value": "` + "abc\xff" + `" }`, wantErr: `(line 3:12): invalid UTF-8`, }, { desc: "Any with Int64Value", inputMessage: &anypb.Any{}, inputText: `{ "@type": "google.protobuf.Int64Value", "value": "42" }`, wantMessage: func() proto.Message { m := &wrapperspb.Int64Value{Value: 42} b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: "google.protobuf.Int64Value", Value: b, } }(), }, { desc: "Any with invalid Int64Value", inputMessage: &anypb.Any{}, inputText: `{ "@type": "google.protobuf.Int64Value", "value": "forty-two" }`, wantErr: `(line 3:12): invalid value for int64 type: "forty-two"`, }, { desc: "Any with invalid UInt64Value", inputMessage: &anypb.Any{}, inputText: `{ "@type": "google.protobuf.UInt64Value", "value": -42 }`, wantErr: `(line 3:12): invalid value for uint64 type: -42`, }, { desc: "Any with Duration", inputMessage: &anypb.Any{}, inputText: `{ "@type": "type.googleapis.com/google.protobuf.Duration", "value": "0s" }`, wantMessage: func() proto.Message { m := &durationpb.Duration{} b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: "type.googleapis.com/google.protobuf.Duration", Value: b, } }(), }, { desc: "Any with Value of StringValue", inputMessage: &anypb.Any{}, inputText: `{ "@type": "google.protobuf.Value", "value": "` + "abc\xff" + `" }`, wantErr: `(line 3:12): invalid UTF-8`, }, { desc: "Any with Value of NullValue", inputMessage: &anypb.Any{}, inputText: `{ "@type": "google.protobuf.Value", "value": null }`, wantMessage: func() proto.Message { m := &structpb.Value{Kind: &structpb.Value_NullValue{}} b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: "google.protobuf.Value", Value: b, } }(), }, { desc: "Any with Struct", inputMessage: &anypb.Any{}, inputText: `{ "@type": "google.protobuf.Struct", "value": { "bool": true, "null": null, "string": "hello", "struct": { "string": "world" } } }`, wantMessage: func() proto.Message { m := &structpb.Struct{ Fields: map[string]*structpb.Value{ "bool": {Kind: &structpb.Value_BoolValue{true}}, "null": {Kind: &structpb.Value_NullValue{}}, "string": {Kind: &structpb.Value_StringValue{"hello"}}, "struct": { Kind: &structpb.Value_StructValue{ &structpb.Struct{ Fields: map[string]*structpb.Value{ "string": {Kind: &structpb.Value_StringValue{"world"}}, }, }, }, }, }, } b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: "google.protobuf.Struct", Value: b, } }(), }, { desc: "Any with missing @type", umo: protojson.UnmarshalOptions{}, inputMessage: &anypb.Any{}, inputText: `{ "value": {} }`, wantErr: `(line 1:1): missing "@type" field`, }, { desc: "Any with empty @type", inputMessage: &anypb.Any{}, inputText: `{ "@type": "" }`, wantErr: `(line 2:12): @type field contains empty value`, }, { desc: "Any with duplicate @type", inputMessage: &anypb.Any{}, inputText: `{ "@type": "google.protobuf.StringValue", "value": "hello", "@type": "pb2.Nested" }`, wantErr: `(line 4:3): duplicate "@type" field`, }, { desc: "Any with duplicate value", inputMessage: &anypb.Any{}, inputText: `{ "@type": "google.protobuf.StringValue", "value": "hello", "value": "world" }`, wantErr: `(line 4:3): duplicate "value" field`, }, { desc: "Any with unknown field", inputMessage: &anypb.Any{}, inputText: `{ "@type": "pb2.Nested", "optString": "hello", "unknown": "world" }`, wantErr: `(line 4:3): unknown field "unknown"`, }, { desc: "Any with embedded type containing Any", inputMessage: &anypb.Any{}, inputText: `{ "@type": "pb2.KnownTypes", "optAny": { "@type": "google.protobuf.StringValue", "value": "` + "abc\xff" + `" } }`, wantErr: `(line 5:14): invalid UTF-8`, }, { desc: "well known types as field values", inputMessage: &pb2.KnownTypes{}, inputText: `{ "optBool": false, "optInt32": 42, "optInt64": "42", "optUint32": 42, "optUint64": "42", "optFloat": 1.23, "optDouble": 3.1415, "optString": "hello", "optBytes": "aGVsbG8=", "optDuration": "123s", "optTimestamp": "2019-03-19T23:03:21Z", "optStruct": { "string": "hello" }, "optList": [ null, "", {}, [] ], "optValue": "world", "optEmpty": {}, "optAny": { "@type": "google.protobuf.Empty", "value": {} }, "optFieldmask": "fooBar,barFoo" }`, wantMessage: &pb2.KnownTypes{ OptBool: &wrapperspb.BoolValue{Value: false}, OptInt32: &wrapperspb.Int32Value{Value: 42}, OptInt64: &wrapperspb.Int64Value{Value: 42}, OptUint32: &wrapperspb.UInt32Value{Value: 42}, OptUint64: &wrapperspb.UInt64Value{Value: 42}, OptFloat: &wrapperspb.FloatValue{Value: 1.23}, OptDouble: &wrapperspb.DoubleValue{Value: 3.1415}, OptString: &wrapperspb.StringValue{Value: "hello"}, OptBytes: &wrapperspb.BytesValue{Value: []byte("hello")}, OptDuration: &durationpb.Duration{Seconds: 123}, OptTimestamp: ×tamppb.Timestamp{Seconds: 1553036601}, OptStruct: &structpb.Struct{ Fields: map[string]*structpb.Value{ "string": {Kind: &structpb.Value_StringValue{"hello"}}, }, }, OptList: &structpb.ListValue{ Values: []*structpb.Value{ {Kind: &structpb.Value_NullValue{}}, {Kind: &structpb.Value_StringValue{}}, { Kind: &structpb.Value_StructValue{ &structpb.Struct{Fields: map[string]*structpb.Value{}}, }, }, { Kind: &structpb.Value_ListValue{ &structpb.ListValue{Values: []*structpb.Value{}}, }, }, }, }, OptValue: &structpb.Value{ Kind: &structpb.Value_StringValue{"world"}, }, OptEmpty: &emptypb.Empty{}, OptAny: &anypb.Any{ TypeUrl: "google.protobuf.Empty", }, OptFieldmask: &fieldmaskpb.FieldMask{ Paths: []string{"foo_bar", "bar_foo"}, }, }, }, { desc: "DiscardUnknown: regular messages", umo: protojson.UnmarshalOptions{DiscardUnknown: true}, inputMessage: &pb3.Nests{}, inputText: `{ "sNested": { "unknown": { "foo": 1, "bar": [1, 2, 3] } }, "unknown": "not known" }`, wantMessage: &pb3.Nests{SNested: &pb3.Nested{}}, }, { desc: "DiscardUnknown: repeated", umo: protojson.UnmarshalOptions{DiscardUnknown: true}, inputMessage: &pb2.Nests{}, inputText: `{ "rptNested": [ {"unknown": "blah"}, {"optString": "hello"} ] }`, wantMessage: &pb2.Nests{ RptNested: []*pb2.Nested{ {}, {OptString: proto.String("hello")}, }, }, }, { desc: "DiscardUnknown: map", umo: protojson.UnmarshalOptions{DiscardUnknown: true}, inputMessage: &pb3.Maps{}, inputText: `{ "strToNested": { "nested_one": { "unknown": "what you see is not" } } }`, wantMessage: &pb3.Maps{ StrToNested: map[string]*pb3.Nested{ "nested_one": {}, }, }, }, { desc: "DiscardUnknown: extension", umo: protojson.UnmarshalOptions{DiscardUnknown: true}, inputMessage: &pb2.Extensions{}, inputText: `{ "[pb2.opt_ext_nested]": { "unknown": [] } }`, wantMessage: func() proto.Message { m := &pb2.Extensions{} proto.SetExtension(m, pb2.E_OptExtNested, &pb2.Nested{}) return m }(), }, { desc: "DiscardUnknown: Empty", umo: protojson.UnmarshalOptions{DiscardUnknown: true}, inputMessage: &emptypb.Empty{}, inputText: `{"unknown": "something"}`, wantMessage: &emptypb.Empty{}, }, { desc: "DiscardUnknown: Any without type", umo: protojson.UnmarshalOptions{DiscardUnknown: true}, inputMessage: &anypb.Any{}, inputText: `{ "value": {"foo": "bar"}, "unknown": true }`, wantMessage: &anypb.Any{}, }, { desc: "DiscardUnknown: Any", umo: protojson.UnmarshalOptions{ DiscardUnknown: true, }, inputMessage: &anypb.Any{}, inputText: `{ "@type": "foo/pb2.Nested", "unknown": "none" }`, wantMessage: &anypb.Any{ TypeUrl: "foo/pb2.Nested", }, }, { desc: "DiscardUnknown: Any with Empty", umo: protojson.UnmarshalOptions{ DiscardUnknown: true, }, inputMessage: &anypb.Any{}, inputText: `{ "@type": "type.googleapis.com/google.protobuf.Empty", "value": {"unknown": 47} }`, wantMessage: &anypb.Any{ TypeUrl: "type.googleapis.com/google.protobuf.Empty", }, }, { desc: "weak fields", inputMessage: &testpb.TestWeak{}, inputText: `{"weak_message1":{"a":1}}`, wantMessage: func() *testpb.TestWeak { m := new(testpb.TestWeak) m.SetWeakMessage1(&weakpb.WeakImportMessage1{A: proto.Int32(1)}) return m }(), skip: !flags.ProtoLegacy, }, { desc: "weak fields; unknown field", inputMessage: &testpb.TestWeak{}, inputText: `{"weak_message1":{"a":1}, "weak_message2":{"a":1}}`, wantErr: `unknown field "weak_message2"`, // weak_message2 is unknown since the package containing it is not imported skip: !flags.ProtoLegacy, }} for _, tt := range tests { tt := tt if tt.skip { continue } t.Run(tt.desc, func(t *testing.T) { err := tt.umo.Unmarshal([]byte(tt.inputText), tt.inputMessage) if err != nil { if tt.wantErr == "" { t.Errorf("Unmarshal() got unexpected error: %v", err) } else if !strings.Contains(err.Error(), tt.wantErr) { t.Errorf("Unmarshal() error got %q, want %q", err, tt.wantErr) } return } if tt.wantErr != "" { t.Errorf("Unmarshal() got nil error, want error %q", tt.wantErr) } if tt.wantMessage != nil && !proto.Equal(tt.inputMessage, tt.wantMessage) { t.Errorf("Unmarshal()\n\n%v\n\n%v\n", tt.inputMessage, tt.wantMessage) } }) } } golang-google-protobuf-1.27.1/encoding/protojson/doc.go000066400000000000000000000010021411250152500230650ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package protojson marshals and unmarshals protocol buffer messages as JSON // format. It follows the guide at // https://developers.google.com/protocol-buffers/docs/proto3#json. // // This package produces a different output than the standard "encoding/json" // package, which does not operate correctly on protocol buffer messages. package protojson golang-google-protobuf-1.27.1/encoding/protojson/encode.go000066400000000000000000000250341411250152500235700ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protojson import ( "encoding/base64" "fmt" "google.golang.org/protobuf/internal/encoding/json" "google.golang.org/protobuf/internal/encoding/messageset" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/filedesc" "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/internal/order" "google.golang.org/protobuf/internal/pragma" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" pref "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" ) const defaultIndent = " " // Format formats the message as a multiline string. // This function is only intended for human consumption and ignores errors. // Do not depend on the output being stable. It may change over time across // different versions of the program. func Format(m proto.Message) string { return MarshalOptions{Multiline: true}.Format(m) } // Marshal writes the given proto.Message in JSON format using default options. // Do not depend on the output being stable. It may change over time across // different versions of the program. func Marshal(m proto.Message) ([]byte, error) { return MarshalOptions{}.Marshal(m) } // MarshalOptions is a configurable JSON format marshaler. type MarshalOptions struct { pragma.NoUnkeyedLiterals // Multiline specifies whether the marshaler should format the output in // indented-form with every textual element on a new line. // If Indent is an empty string, then an arbitrary indent is chosen. Multiline bool // Indent specifies the set of indentation characters to use in a multiline // formatted output such that every entry is preceded by Indent and // terminated by a newline. If non-empty, then Multiline is treated as true. // Indent can only be composed of space or tab characters. Indent string // AllowPartial allows messages that have missing required fields to marshal // without returning an error. If AllowPartial is false (the default), // Marshal will return error if there are any missing required fields. AllowPartial bool // UseProtoNames uses proto field name instead of lowerCamelCase name in JSON // field names. UseProtoNames bool // UseEnumNumbers emits enum values as numbers. UseEnumNumbers bool // EmitUnpopulated specifies whether to emit unpopulated fields. It does not // emit unpopulated oneof fields or unpopulated extension fields. // The JSON value emitted for unpopulated fields are as follows: // ╔═══════╤════════════════════════════╗ // ║ JSON │ Protobuf field ║ // ╠═══════╪════════════════════════════╣ // ║ false │ proto3 boolean fields ║ // ║ 0 │ proto3 numeric fields ║ // ║ "" │ proto3 string/bytes fields ║ // ║ null │ proto2 scalar fields ║ // ║ null │ message fields ║ // ║ [] │ list fields ║ // ║ {} │ map fields ║ // ╚═══════╧════════════════════════════╝ EmitUnpopulated bool // Resolver is used for looking up types when expanding google.protobuf.Any // messages. If nil, this defaults to using protoregistry.GlobalTypes. Resolver interface { protoregistry.ExtensionTypeResolver protoregistry.MessageTypeResolver } } // Format formats the message as a string. // This method is only intended for human consumption and ignores errors. // Do not depend on the output being stable. It may change over time across // different versions of the program. func (o MarshalOptions) Format(m proto.Message) string { if m == nil || !m.ProtoReflect().IsValid() { return "" // invalid syntax, but okay since this is for debugging } o.AllowPartial = true b, _ := o.Marshal(m) return string(b) } // Marshal marshals the given proto.Message in the JSON format using options in // MarshalOptions. Do not depend on the output being stable. It may change over // time across different versions of the program. func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) { return o.marshal(m) } // marshal is a centralized function that all marshal operations go through. // For profiling purposes, avoid changing the name of this function or // introducing other code paths for marshal that do not go through this. func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { if o.Multiline && o.Indent == "" { o.Indent = defaultIndent } if o.Resolver == nil { o.Resolver = protoregistry.GlobalTypes } internalEnc, err := json.NewEncoder(o.Indent) if err != nil { return nil, err } // Treat nil message interface as an empty message, // in which case the output in an empty JSON object. if m == nil { return []byte("{}"), nil } enc := encoder{internalEnc, o} if err := enc.marshalMessage(m.ProtoReflect(), ""); err != nil { return nil, err } if o.AllowPartial { return enc.Bytes(), nil } return enc.Bytes(), proto.CheckInitialized(m) } type encoder struct { *json.Encoder opts MarshalOptions } // typeFieldDesc is a synthetic field descriptor used for the "@type" field. var typeFieldDesc = func() protoreflect.FieldDescriptor { var fd filedesc.Field fd.L0.FullName = "@type" fd.L0.Index = -1 fd.L1.Cardinality = protoreflect.Optional fd.L1.Kind = protoreflect.StringKind return &fd }() // typeURLFieldRanger wraps a protoreflect.Message and modifies its Range method // to additionally iterate over a synthetic field for the type URL. type typeURLFieldRanger struct { order.FieldRanger typeURL string } func (m typeURLFieldRanger) Range(f func(pref.FieldDescriptor, pref.Value) bool) { if !f(typeFieldDesc, pref.ValueOfString(m.typeURL)) { return } m.FieldRanger.Range(f) } // unpopulatedFieldRanger wraps a protoreflect.Message and modifies its Range // method to additionally iterate over unpopulated fields. type unpopulatedFieldRanger struct{ pref.Message } func (m unpopulatedFieldRanger) Range(f func(pref.FieldDescriptor, pref.Value) bool) { fds := m.Descriptor().Fields() for i := 0; i < fds.Len(); i++ { fd := fds.Get(i) if m.Has(fd) || fd.ContainingOneof() != nil { continue // ignore populated fields and fields within a oneofs } v := m.Get(fd) isProto2Scalar := fd.Syntax() == pref.Proto2 && fd.Default().IsValid() isSingularMessage := fd.Cardinality() != pref.Repeated && fd.Message() != nil if isProto2Scalar || isSingularMessage { v = pref.Value{} // use invalid value to emit null } if !f(fd, v) { return } } m.Message.Range(f) } // marshalMessage marshals the fields in the given protoreflect.Message. // If the typeURL is non-empty, then a synthetic "@type" field is injected // containing the URL as the value. func (e encoder) marshalMessage(m pref.Message, typeURL string) error { if !flags.ProtoLegacy && messageset.IsMessageSet(m.Descriptor()) { return errors.New("no support for proto1 MessageSets") } if marshal := wellKnownTypeMarshaler(m.Descriptor().FullName()); marshal != nil { return marshal(e, m) } e.StartObject() defer e.EndObject() var fields order.FieldRanger = m if e.opts.EmitUnpopulated { fields = unpopulatedFieldRanger{m} } if typeURL != "" { fields = typeURLFieldRanger{fields, typeURL} } var err error order.RangeFields(fields, order.IndexNameFieldOrder, func(fd pref.FieldDescriptor, v pref.Value) bool { name := fd.JSONName() if e.opts.UseProtoNames { name = fd.TextName() } if err = e.WriteName(name); err != nil { return false } if err = e.marshalValue(v, fd); err != nil { return false } return true }) return err } // marshalValue marshals the given protoreflect.Value. func (e encoder) marshalValue(val pref.Value, fd pref.FieldDescriptor) error { switch { case fd.IsList(): return e.marshalList(val.List(), fd) case fd.IsMap(): return e.marshalMap(val.Map(), fd) default: return e.marshalSingular(val, fd) } } // marshalSingular marshals the given non-repeated field value. This includes // all scalar types, enums, messages, and groups. func (e encoder) marshalSingular(val pref.Value, fd pref.FieldDescriptor) error { if !val.IsValid() { e.WriteNull() return nil } switch kind := fd.Kind(); kind { case pref.BoolKind: e.WriteBool(val.Bool()) case pref.StringKind: if e.WriteString(val.String()) != nil { return errors.InvalidUTF8(string(fd.FullName())) } case pref.Int32Kind, pref.Sint32Kind, pref.Sfixed32Kind: e.WriteInt(val.Int()) case pref.Uint32Kind, pref.Fixed32Kind: e.WriteUint(val.Uint()) case pref.Int64Kind, pref.Sint64Kind, pref.Uint64Kind, pref.Sfixed64Kind, pref.Fixed64Kind: // 64-bit integers are written out as JSON string. e.WriteString(val.String()) case pref.FloatKind: // Encoder.WriteFloat handles the special numbers NaN and infinites. e.WriteFloat(val.Float(), 32) case pref.DoubleKind: // Encoder.WriteFloat handles the special numbers NaN and infinites. e.WriteFloat(val.Float(), 64) case pref.BytesKind: e.WriteString(base64.StdEncoding.EncodeToString(val.Bytes())) case pref.EnumKind: if fd.Enum().FullName() == genid.NullValue_enum_fullname { e.WriteNull() } else { desc := fd.Enum().Values().ByNumber(val.Enum()) if e.opts.UseEnumNumbers || desc == nil { e.WriteInt(int64(val.Enum())) } else { e.WriteString(string(desc.Name())) } } case pref.MessageKind, pref.GroupKind: if err := e.marshalMessage(val.Message(), ""); err != nil { return err } default: panic(fmt.Sprintf("%v has unknown kind: %v", fd.FullName(), kind)) } return nil } // marshalList marshals the given protoreflect.List. func (e encoder) marshalList(list pref.List, fd pref.FieldDescriptor) error { e.StartArray() defer e.EndArray() for i := 0; i < list.Len(); i++ { item := list.Get(i) if err := e.marshalSingular(item, fd); err != nil { return err } } return nil } // marshalMap marshals given protoreflect.Map. func (e encoder) marshalMap(mmap pref.Map, fd pref.FieldDescriptor) error { e.StartObject() defer e.EndObject() var err error order.RangeEntries(mmap, order.GenericKeyOrder, func(k pref.MapKey, v pref.Value) bool { if err = e.WriteName(k.String()); err != nil { return false } if err = e.marshalSingular(v, fd.MapValue()); err != nil { return false } return true }) return err } golang-google-protobuf-1.27.1/encoding/protojson/encode_test.go000066400000000000000000001505061411250152500246320ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protojson_test import ( "bytes" "math" "testing" "github.com/google/go-cmp/cmp" "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/internal/detrand" "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/proto" preg "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/testing/protopack" pb2 "google.golang.org/protobuf/internal/testprotos/textpb2" pb3 "google.golang.org/protobuf/internal/testprotos/textpb3" "google.golang.org/protobuf/types/known/anypb" "google.golang.org/protobuf/types/known/durationpb" "google.golang.org/protobuf/types/known/emptypb" "google.golang.org/protobuf/types/known/fieldmaskpb" "google.golang.org/protobuf/types/known/structpb" "google.golang.org/protobuf/types/known/timestamppb" "google.golang.org/protobuf/types/known/wrapperspb" ) // Disable detrand to enable direct comparisons on outputs. func init() { detrand.Disable() } func TestMarshal(t *testing.T) { tests := []struct { desc string mo protojson.MarshalOptions input proto.Message want string wantErr bool // TODO: Verify error message substring. skip bool }{{ desc: "proto2 optional scalars not set", input: &pb2.Scalars{}, want: "{}", }, { desc: "proto3 scalars not set", input: &pb3.Scalars{}, want: "{}", }, { desc: "proto3 optional not set", input: &pb3.Proto3Optional{}, want: "{}", }, { desc: "proto2 optional scalars set to zero values", input: &pb2.Scalars{ OptBool: proto.Bool(false), OptInt32: proto.Int32(0), OptInt64: proto.Int64(0), OptUint32: proto.Uint32(0), OptUint64: proto.Uint64(0), OptSint32: proto.Int32(0), OptSint64: proto.Int64(0), OptFixed32: proto.Uint32(0), OptFixed64: proto.Uint64(0), OptSfixed32: proto.Int32(0), OptSfixed64: proto.Int64(0), OptFloat: proto.Float32(0), OptDouble: proto.Float64(0), OptBytes: []byte{}, OptString: proto.String(""), }, want: `{ "optBool": false, "optInt32": 0, "optInt64": "0", "optUint32": 0, "optUint64": "0", "optSint32": 0, "optSint64": "0", "optFixed32": 0, "optFixed64": "0", "optSfixed32": 0, "optSfixed64": "0", "optFloat": 0, "optDouble": 0, "optBytes": "", "optString": "" }`, }, { desc: "proto3 optional set to zero values", input: &pb3.Proto3Optional{ OptBool: proto.Bool(false), OptInt32: proto.Int32(0), OptInt64: proto.Int64(0), OptUint32: proto.Uint32(0), OptUint64: proto.Uint64(0), OptFloat: proto.Float32(0), OptDouble: proto.Float64(0), OptString: proto.String(""), OptBytes: []byte{}, OptEnum: pb3.Enum_ZERO.Enum(), OptMessage: &pb3.Nested{}, }, want: `{ "optBool": false, "optInt32": 0, "optInt64": "0", "optUint32": 0, "optUint64": "0", "optFloat": 0, "optDouble": 0, "optString": "", "optBytes": "", "optEnum": "ZERO", "optMessage": {} }`, }, { desc: "proto2 optional scalars set to some values", input: &pb2.Scalars{ OptBool: proto.Bool(true), OptInt32: proto.Int32(0xff), OptInt64: proto.Int64(0xdeadbeef), OptUint32: proto.Uint32(47), OptUint64: proto.Uint64(0xdeadbeef), OptSint32: proto.Int32(-1001), OptSint64: proto.Int64(-0xffff), OptFixed64: proto.Uint64(64), OptSfixed32: proto.Int32(-32), OptFloat: proto.Float32(1.02), OptDouble: proto.Float64(1.234), OptBytes: []byte("谷歌"), OptString: proto.String("谷歌"), }, want: `{ "optBool": true, "optInt32": 255, "optInt64": "3735928559", "optUint32": 47, "optUint64": "3735928559", "optSint32": -1001, "optSint64": "-65535", "optFixed64": "64", "optSfixed32": -32, "optFloat": 1.02, "optDouble": 1.234, "optBytes": "6LC35q2M", "optString": "谷歌" }`, }, { desc: "string", input: &pb3.Scalars{ SString: "谷歌", }, want: `{ "sString": "谷歌" }`, }, { desc: "string with invalid UTF8", input: &pb3.Scalars{ SString: "abc\xff", }, wantErr: true, }, { desc: "float nan", input: &pb3.Scalars{ SFloat: float32(math.NaN()), }, want: `{ "sFloat": "NaN" }`, }, { desc: "float positive infinity", input: &pb3.Scalars{ SFloat: float32(math.Inf(1)), }, want: `{ "sFloat": "Infinity" }`, }, { desc: "float negative infinity", input: &pb3.Scalars{ SFloat: float32(math.Inf(-1)), }, want: `{ "sFloat": "-Infinity" }`, }, { desc: "double nan", input: &pb3.Scalars{ SDouble: math.NaN(), }, want: `{ "sDouble": "NaN" }`, }, { desc: "double positive infinity", input: &pb3.Scalars{ SDouble: math.Inf(1), }, want: `{ "sDouble": "Infinity" }`, }, { desc: "double negative infinity", input: &pb3.Scalars{ SDouble: math.Inf(-1), }, want: `{ "sDouble": "-Infinity" }`, }, { desc: "proto2 enum not set", input: &pb2.Enums{}, want: "{}", }, { desc: "proto2 enum set to zero value", input: &pb2.Enums{ OptEnum: pb2.Enum(0).Enum(), OptNestedEnum: pb2.Enums_NestedEnum(0).Enum(), }, want: `{ "optEnum": 0, "optNestedEnum": 0 }`, }, { desc: "proto2 enum", input: &pb2.Enums{ OptEnum: pb2.Enum_ONE.Enum(), OptNestedEnum: pb2.Enums_UNO.Enum(), }, want: `{ "optEnum": "ONE", "optNestedEnum": "UNO" }`, }, { desc: "proto2 enum set to numeric values", input: &pb2.Enums{ OptEnum: pb2.Enum(2).Enum(), OptNestedEnum: pb2.Enums_NestedEnum(2).Enum(), }, want: `{ "optEnum": "TWO", "optNestedEnum": "DOS" }`, }, { desc: "proto2 enum set to unnamed numeric values", input: &pb2.Enums{ OptEnum: pb2.Enum(101).Enum(), OptNestedEnum: pb2.Enums_NestedEnum(-101).Enum(), }, want: `{ "optEnum": 101, "optNestedEnum": -101 }`, }, { desc: "proto3 enum not set", input: &pb3.Enums{}, want: "{}", }, { desc: "proto3 enum set to zero value", input: &pb3.Enums{ SEnum: pb3.Enum_ZERO, SNestedEnum: pb3.Enums_CERO, }, want: "{}", }, { desc: "proto3 enum", input: &pb3.Enums{ SEnum: pb3.Enum_ONE, SNestedEnum: pb3.Enums_UNO, }, want: `{ "sEnum": "ONE", "sNestedEnum": "UNO" }`, }, { desc: "proto3 enum set to numeric values", input: &pb3.Enums{ SEnum: 2, SNestedEnum: 2, }, want: `{ "sEnum": "TWO", "sNestedEnum": "DOS" }`, }, { desc: "proto3 enum set to unnamed numeric values", input: &pb3.Enums{ SEnum: -47, SNestedEnum: 47, }, want: `{ "sEnum": -47, "sNestedEnum": 47 }`, }, { desc: "proto2 nested message not set", input: &pb2.Nests{}, want: "{}", }, { desc: "proto2 nested message set to empty", input: &pb2.Nests{ OptNested: &pb2.Nested{}, Optgroup: &pb2.Nests_OptGroup{}, }, want: `{ "optNested": {}, "optgroup": {} }`, }, { desc: "proto2 nested messages", input: &pb2.Nests{ OptNested: &pb2.Nested{ OptString: proto.String("nested message"), OptNested: &pb2.Nested{ OptString: proto.String("another nested message"), }, }, }, want: `{ "optNested": { "optString": "nested message", "optNested": { "optString": "another nested message" } } }`, }, { desc: "proto2 groups", input: &pb2.Nests{ Optgroup: &pb2.Nests_OptGroup{ OptString: proto.String("inside a group"), OptNested: &pb2.Nested{ OptString: proto.String("nested message inside a group"), }, Optnestedgroup: &pb2.Nests_OptGroup_OptNestedGroup{ OptFixed32: proto.Uint32(47), }, }, }, want: `{ "optgroup": { "optString": "inside a group", "optNested": { "optString": "nested message inside a group" }, "optnestedgroup": { "optFixed32": 47 } } }`, }, { desc: "proto3 nested message not set", input: &pb3.Nests{}, want: "{}", }, { desc: "proto3 nested message set to empty", input: &pb3.Nests{ SNested: &pb3.Nested{}, }, want: `{ "sNested": {} }`, }, { desc: "proto3 nested message", input: &pb3.Nests{ SNested: &pb3.Nested{ SString: "nested message", SNested: &pb3.Nested{ SString: "another nested message", }, }, }, want: `{ "sNested": { "sString": "nested message", "sNested": { "sString": "another nested message" } } }`, }, { desc: "oneof not set", input: &pb3.Oneofs{}, want: "{}", }, { desc: "oneof set to empty string", input: &pb3.Oneofs{ Union: &pb3.Oneofs_OneofString{}, }, want: `{ "oneofString": "" }`, }, { desc: "oneof set to string", input: &pb3.Oneofs{ Union: &pb3.Oneofs_OneofString{ OneofString: "hello", }, }, want: `{ "oneofString": "hello" }`, }, { desc: "oneof set to enum", input: &pb3.Oneofs{ Union: &pb3.Oneofs_OneofEnum{ OneofEnum: pb3.Enum_ZERO, }, }, want: `{ "oneofEnum": "ZERO" }`, }, { desc: "oneof set to empty message", input: &pb3.Oneofs{ Union: &pb3.Oneofs_OneofNested{ OneofNested: &pb3.Nested{}, }, }, want: `{ "oneofNested": {} }`, }, { desc: "oneof set to message", input: &pb3.Oneofs{ Union: &pb3.Oneofs_OneofNested{ OneofNested: &pb3.Nested{ SString: "nested message", }, }, }, want: `{ "oneofNested": { "sString": "nested message" } }`, }, { desc: "repeated fields not set", input: &pb2.Repeats{}, want: "{}", }, { desc: "repeated fields set to empty slices", input: &pb2.Repeats{ RptBool: []bool{}, RptInt32: []int32{}, RptInt64: []int64{}, RptUint32: []uint32{}, RptUint64: []uint64{}, RptFloat: []float32{}, RptDouble: []float64{}, RptBytes: [][]byte{}, }, want: "{}", }, { desc: "repeated fields set to some values", input: &pb2.Repeats{ RptBool: []bool{true, false, true, true}, RptInt32: []int32{1, 6, 0, 0}, RptInt64: []int64{-64, 47}, RptUint32: []uint32{0xff, 0xffff}, RptUint64: []uint64{0xdeadbeef}, RptFloat: []float32{float32(math.NaN()), float32(math.Inf(1)), float32(math.Inf(-1)), 1.034}, RptDouble: []float64{math.NaN(), math.Inf(1), math.Inf(-1), 1.23e-308}, RptString: []string{"hello", "世界"}, RptBytes: [][]byte{ []byte("hello"), []byte("\xe4\xb8\x96\xe7\x95\x8c"), }, }, want: `{ "rptBool": [ true, false, true, true ], "rptInt32": [ 1, 6, 0, 0 ], "rptInt64": [ "-64", "47" ], "rptUint32": [ 255, 65535 ], "rptUint64": [ "3735928559" ], "rptFloat": [ "NaN", "Infinity", "-Infinity", 1.034 ], "rptDouble": [ "NaN", "Infinity", "-Infinity", 1.23e-308 ], "rptString": [ "hello", "世界" ], "rptBytes": [ "aGVsbG8=", "5LiW55WM" ] }`, }, { desc: "repeated enums", input: &pb2.Enums{ RptEnum: []pb2.Enum{pb2.Enum_ONE, 2, pb2.Enum_TEN, 42}, RptNestedEnum: []pb2.Enums_NestedEnum{2, 47, 10}, }, want: `{ "rptEnum": [ "ONE", "TWO", "TEN", 42 ], "rptNestedEnum": [ "DOS", 47, "DIEZ" ] }`, }, { desc: "repeated messages set to empty", input: &pb2.Nests{ RptNested: []*pb2.Nested{}, Rptgroup: []*pb2.Nests_RptGroup{}, }, want: "{}", }, { desc: "repeated messages", input: &pb2.Nests{ RptNested: []*pb2.Nested{ { OptString: proto.String("repeat nested one"), }, { OptString: proto.String("repeat nested two"), OptNested: &pb2.Nested{ OptString: proto.String("inside repeat nested two"), }, }, {}, }, }, want: `{ "rptNested": [ { "optString": "repeat nested one" }, { "optString": "repeat nested two", "optNested": { "optString": "inside repeat nested two" } }, {} ] }`, }, { desc: "repeated messages contains nil value", input: &pb2.Nests{ RptNested: []*pb2.Nested{nil, {}}, }, want: `{ "rptNested": [ {}, {} ] }`, }, { desc: "repeated groups", input: &pb2.Nests{ Rptgroup: []*pb2.Nests_RptGroup{ { RptString: []string{"hello", "world"}, }, {}, nil, }, }, want: `{ "rptgroup": [ { "rptString": [ "hello", "world" ] }, {}, {} ] }`, }, { desc: "map fields not set", input: &pb3.Maps{}, want: "{}", }, { desc: "map fields set to empty", input: &pb3.Maps{ Int32ToStr: map[int32]string{}, BoolToUint32: map[bool]uint32{}, Uint64ToEnum: map[uint64]pb3.Enum{}, StrToNested: map[string]*pb3.Nested{}, StrToOneofs: map[string]*pb3.Oneofs{}, }, want: "{}", }, { desc: "map fields 1", input: &pb3.Maps{ BoolToUint32: map[bool]uint32{ true: 42, false: 101, }, }, want: `{ "boolToUint32": { "false": 101, "true": 42 } }`, }, { desc: "map fields 2", input: &pb3.Maps{ Int32ToStr: map[int32]string{ -101: "-101", 0xff: "0xff", 0: "zero", }, }, want: `{ "int32ToStr": { "-101": "-101", "0": "zero", "255": "0xff" } }`, }, { desc: "map fields 3", input: &pb3.Maps{ Uint64ToEnum: map[uint64]pb3.Enum{ 1: pb3.Enum_ONE, 2: pb3.Enum_TWO, 10: pb3.Enum_TEN, 47: 47, }, }, want: `{ "uint64ToEnum": { "1": "ONE", "2": "TWO", "10": "TEN", "47": 47 } }`, }, { desc: "map fields 4", input: &pb3.Maps{ StrToNested: map[string]*pb3.Nested{ "nested": &pb3.Nested{ SString: "nested in a map", }, }, }, want: `{ "strToNested": { "nested": { "sString": "nested in a map" } } }`, }, { desc: "map fields 5", input: &pb3.Maps{ StrToOneofs: map[string]*pb3.Oneofs{ "string": &pb3.Oneofs{ Union: &pb3.Oneofs_OneofString{ OneofString: "hello", }, }, "nested": &pb3.Oneofs{ Union: &pb3.Oneofs_OneofNested{ OneofNested: &pb3.Nested{ SString: "nested oneof in map field value", }, }, }, }, }, want: `{ "strToOneofs": { "nested": { "oneofNested": { "sString": "nested oneof in map field value" } }, "string": { "oneofString": "hello" } } }`, }, { desc: "map field contains nil value", input: &pb3.Maps{ StrToNested: map[string]*pb3.Nested{ "nil": nil, }, }, want: `{ "strToNested": { "nil": {} } }`, }, { desc: "required fields not set", input: &pb2.Requireds{}, want: `{}`, wantErr: true, }, { desc: "required fields partially set", input: &pb2.Requireds{ ReqBool: proto.Bool(false), ReqSfixed64: proto.Int64(0), ReqDouble: proto.Float64(1.23), ReqString: proto.String("hello"), ReqEnum: pb2.Enum_ONE.Enum(), }, want: `{ "reqBool": false, "reqSfixed64": "0", "reqDouble": 1.23, "reqString": "hello", "reqEnum": "ONE" }`, wantErr: true, }, { desc: "required fields not set with AllowPartial", mo: protojson.MarshalOptions{AllowPartial: true}, input: &pb2.Requireds{ ReqBool: proto.Bool(false), ReqSfixed64: proto.Int64(0), ReqDouble: proto.Float64(1.23), ReqString: proto.String("hello"), ReqEnum: pb2.Enum_ONE.Enum(), }, want: `{ "reqBool": false, "reqSfixed64": "0", "reqDouble": 1.23, "reqString": "hello", "reqEnum": "ONE" }`, }, { desc: "required fields all set", input: &pb2.Requireds{ ReqBool: proto.Bool(false), ReqSfixed64: proto.Int64(0), ReqDouble: proto.Float64(1.23), ReqString: proto.String("hello"), ReqEnum: pb2.Enum_ONE.Enum(), ReqNested: &pb2.Nested{}, }, want: `{ "reqBool": false, "reqSfixed64": "0", "reqDouble": 1.23, "reqString": "hello", "reqEnum": "ONE", "reqNested": {} }`, }, { desc: "indirect required field", input: &pb2.IndirectRequired{ OptNested: &pb2.NestedWithRequired{}, }, want: `{ "optNested": {} }`, wantErr: true, }, { desc: "indirect required field with AllowPartial", mo: protojson.MarshalOptions{AllowPartial: true}, input: &pb2.IndirectRequired{ OptNested: &pb2.NestedWithRequired{}, }, want: `{ "optNested": {} }`, }, { desc: "indirect required field in empty repeated", input: &pb2.IndirectRequired{ RptNested: []*pb2.NestedWithRequired{}, }, want: `{}`, }, { desc: "indirect required field in repeated", input: &pb2.IndirectRequired{ RptNested: []*pb2.NestedWithRequired{ &pb2.NestedWithRequired{}, }, }, want: `{ "rptNested": [ {} ] }`, wantErr: true, }, { desc: "indirect required field in repeated with AllowPartial", mo: protojson.MarshalOptions{AllowPartial: true}, input: &pb2.IndirectRequired{ RptNested: []*pb2.NestedWithRequired{ &pb2.NestedWithRequired{}, }, }, want: `{ "rptNested": [ {} ] }`, }, { desc: "indirect required field in empty map", input: &pb2.IndirectRequired{ StrToNested: map[string]*pb2.NestedWithRequired{}, }, want: "{}", }, { desc: "indirect required field in map", input: &pb2.IndirectRequired{ StrToNested: map[string]*pb2.NestedWithRequired{ "fail": &pb2.NestedWithRequired{}, }, }, want: `{ "strToNested": { "fail": {} } }`, wantErr: true, }, { desc: "indirect required field in map with AllowPartial", mo: protojson.MarshalOptions{AllowPartial: true}, input: &pb2.IndirectRequired{ StrToNested: map[string]*pb2.NestedWithRequired{ "fail": &pb2.NestedWithRequired{}, }, }, want: `{ "strToNested": { "fail": {} } }`, }, { desc: "indirect required field in oneof", input: &pb2.IndirectRequired{ Union: &pb2.IndirectRequired_OneofNested{ OneofNested: &pb2.NestedWithRequired{}, }, }, want: `{ "oneofNested": {} }`, wantErr: true, }, { desc: "indirect required field in oneof with AllowPartial", mo: protojson.MarshalOptions{AllowPartial: true}, input: &pb2.IndirectRequired{ Union: &pb2.IndirectRequired_OneofNested{ OneofNested: &pb2.NestedWithRequired{}, }, }, want: `{ "oneofNested": {} }`, }, { desc: "unknown fields are ignored", input: func() proto.Message { m := &pb2.Scalars{ OptString: proto.String("no unknowns"), } m.ProtoReflect().SetUnknown(protopack.Message{ protopack.Tag{101, protopack.BytesType}, protopack.String("hello world"), }.Marshal()) return m }(), want: `{ "optString": "no unknowns" }`, }, { desc: "json_name", input: &pb3.JSONNames{ SString: "json_name", }, want: `{ "foo_bar": "json_name" }`, }, { desc: "extensions of non-repeated fields", input: func() proto.Message { m := &pb2.Extensions{ OptString: proto.String("non-extension field"), OptBool: proto.Bool(true), OptInt32: proto.Int32(42), } proto.SetExtension(m, pb2.E_OptExtBool, true) proto.SetExtension(m, pb2.E_OptExtString, "extension field") proto.SetExtension(m, pb2.E_OptExtEnum, pb2.Enum_TEN) proto.SetExtension(m, pb2.E_OptExtNested, &pb2.Nested{ OptString: proto.String("nested in an extension"), OptNested: &pb2.Nested{ OptString: proto.String("another nested in an extension"), }, }) return m }(), want: `{ "optString": "non-extension field", "optBool": true, "optInt32": 42, "[pb2.opt_ext_bool]": true, "[pb2.opt_ext_enum]": "TEN", "[pb2.opt_ext_nested]": { "optString": "nested in an extension", "optNested": { "optString": "another nested in an extension" } }, "[pb2.opt_ext_string]": "extension field" }`, }, { desc: "extensions of repeated fields", input: func() proto.Message { m := &pb2.Extensions{} proto.SetExtension(m, pb2.E_RptExtEnum, []pb2.Enum{pb2.Enum_TEN, 101, pb2.Enum_ONE}) proto.SetExtension(m, pb2.E_RptExtFixed32, []uint32{42, 47}) proto.SetExtension(m, pb2.E_RptExtNested, []*pb2.Nested{ &pb2.Nested{OptString: proto.String("one")}, &pb2.Nested{OptString: proto.String("two")}, &pb2.Nested{OptString: proto.String("three")}, }) return m }(), want: `{ "[pb2.rpt_ext_enum]": [ "TEN", 101, "ONE" ], "[pb2.rpt_ext_fixed32]": [ 42, 47 ], "[pb2.rpt_ext_nested]": [ { "optString": "one" }, { "optString": "two" }, { "optString": "three" } ] }`, }, { desc: "extensions of non-repeated fields in another message", input: func() proto.Message { m := &pb2.Extensions{} proto.SetExtension(m, pb2.E_ExtensionsContainer_OptExtBool, true) proto.SetExtension(m, pb2.E_ExtensionsContainer_OptExtString, "extension field") proto.SetExtension(m, pb2.E_ExtensionsContainer_OptExtEnum, pb2.Enum_TEN) proto.SetExtension(m, pb2.E_ExtensionsContainer_OptExtNested, &pb2.Nested{ OptString: proto.String("nested in an extension"), OptNested: &pb2.Nested{ OptString: proto.String("another nested in an extension"), }, }) return m }(), want: `{ "[pb2.ExtensionsContainer.opt_ext_bool]": true, "[pb2.ExtensionsContainer.opt_ext_enum]": "TEN", "[pb2.ExtensionsContainer.opt_ext_nested]": { "optString": "nested in an extension", "optNested": { "optString": "another nested in an extension" } }, "[pb2.ExtensionsContainer.opt_ext_string]": "extension field" }`, }, { desc: "extensions of repeated fields in another message", input: func() proto.Message { m := &pb2.Extensions{ OptString: proto.String("non-extension field"), OptBool: proto.Bool(true), OptInt32: proto.Int32(42), } proto.SetExtension(m, pb2.E_ExtensionsContainer_RptExtEnum, []pb2.Enum{pb2.Enum_TEN, 101, pb2.Enum_ONE}) proto.SetExtension(m, pb2.E_ExtensionsContainer_RptExtString, []string{"hello", "world"}) proto.SetExtension(m, pb2.E_ExtensionsContainer_RptExtNested, []*pb2.Nested{ &pb2.Nested{OptString: proto.String("one")}, &pb2.Nested{OptString: proto.String("two")}, &pb2.Nested{OptString: proto.String("three")}, }) return m }(), want: `{ "optString": "non-extension field", "optBool": true, "optInt32": 42, "[pb2.ExtensionsContainer.rpt_ext_enum]": [ "TEN", 101, "ONE" ], "[pb2.ExtensionsContainer.rpt_ext_nested]": [ { "optString": "one" }, { "optString": "two" }, { "optString": "three" } ], "[pb2.ExtensionsContainer.rpt_ext_string]": [ "hello", "world" ] }`, }, { desc: "MessageSet", input: func() proto.Message { m := &pb2.MessageSet{} proto.SetExtension(m, pb2.E_MessageSetExtension_MessageSetExtension, &pb2.MessageSetExtension{ OptString: proto.String("a messageset extension"), }) proto.SetExtension(m, pb2.E_MessageSetExtension_NotMessageSetExtension, &pb2.MessageSetExtension{ OptString: proto.String("not a messageset extension"), }) proto.SetExtension(m, pb2.E_MessageSetExtension_ExtNested, &pb2.Nested{ OptString: proto.String("just a regular extension"), }) return m }(), want: `{ "[pb2.MessageSetExtension.ext_nested]": { "optString": "just a regular extension" }, "[pb2.MessageSetExtension]": { "optString": "a messageset extension" }, "[pb2.MessageSetExtension.not_message_set_extension]": { "optString": "not a messageset extension" } }`, skip: !flags.ProtoLegacy, }, { desc: "not real MessageSet 1", input: func() proto.Message { m := &pb2.FakeMessageSet{} proto.SetExtension(m, pb2.E_FakeMessageSetExtension_MessageSetExtension, &pb2.FakeMessageSetExtension{ OptString: proto.String("not a messageset extension"), }) return m }(), want: `{ "[pb2.FakeMessageSetExtension.message_set_extension]": { "optString": "not a messageset extension" } }`, skip: !flags.ProtoLegacy, }, { desc: "not real MessageSet 2", input: func() proto.Message { m := &pb2.MessageSet{} proto.SetExtension(m, pb2.E_MessageSetExtension, &pb2.FakeMessageSetExtension{ OptString: proto.String("another not a messageset extension"), }) return m }(), want: `{ "[pb2.message_set_extension]": { "optString": "another not a messageset extension" } }`, skip: !flags.ProtoLegacy, }, { desc: "BoolValue empty", input: &wrapperspb.BoolValue{}, want: `false`, }, { desc: "BoolValue", input: &wrapperspb.BoolValue{Value: true}, want: `true`, }, { desc: "Int32Value empty", input: &wrapperspb.Int32Value{}, want: `0`, }, { desc: "Int32Value", input: &wrapperspb.Int32Value{Value: 42}, want: `42`, }, { desc: "Int64Value", input: &wrapperspb.Int64Value{Value: 42}, want: `"42"`, }, { desc: "UInt32Value", input: &wrapperspb.UInt32Value{Value: 42}, want: `42`, }, { desc: "UInt64Value", input: &wrapperspb.UInt64Value{Value: 42}, want: `"42"`, }, { desc: "FloatValue", input: &wrapperspb.FloatValue{Value: 1.02}, want: `1.02`, }, { desc: "FloatValue Infinity", input: &wrapperspb.FloatValue{Value: float32(math.Inf(-1))}, want: `"-Infinity"`, }, { desc: "DoubleValue", input: &wrapperspb.DoubleValue{Value: 1.02}, want: `1.02`, }, { desc: "DoubleValue NaN", input: &wrapperspb.DoubleValue{Value: math.NaN()}, want: `"NaN"`, }, { desc: "StringValue empty", input: &wrapperspb.StringValue{}, want: `""`, }, { desc: "StringValue", input: &wrapperspb.StringValue{Value: "谷歌"}, want: `"谷歌"`, }, { desc: "StringValue with invalid UTF8 error", input: &wrapperspb.StringValue{Value: "abc\xff"}, wantErr: true, }, { desc: "StringValue field with invalid UTF8 error", input: &pb2.KnownTypes{ OptString: &wrapperspb.StringValue{Value: "abc\xff"}, }, wantErr: true, }, { desc: "BytesValue", input: &wrapperspb.BytesValue{Value: []byte("hello")}, want: `"aGVsbG8="`, }, { desc: "Empty", input: &emptypb.Empty{}, want: `{}`, }, { desc: "NullValue field", input: &pb2.KnownTypes{OptNull: new(structpb.NullValue)}, want: `{ "optNull": null }`, }, { desc: "Value empty", input: &structpb.Value{}, wantErr: true, }, { desc: "Value empty field", input: &pb2.KnownTypes{ OptValue: &structpb.Value{}, }, wantErr: true, }, { desc: "Value contains NullValue", input: &structpb.Value{Kind: &structpb.Value_NullValue{}}, want: `null`, }, { desc: "Value contains BoolValue", input: &structpb.Value{Kind: &structpb.Value_BoolValue{}}, want: `false`, }, { desc: "Value contains NumberValue", input: &structpb.Value{Kind: &structpb.Value_NumberValue{1.02}}, want: `1.02`, }, { desc: "Value contains StringValue", input: &structpb.Value{Kind: &structpb.Value_StringValue{"hello"}}, want: `"hello"`, }, { desc: "Value contains StringValue with invalid UTF8", input: &structpb.Value{Kind: &structpb.Value_StringValue{"\xff"}}, wantErr: true, }, { desc: "Value contains Struct", input: &structpb.Value{ Kind: &structpb.Value_StructValue{ &structpb.Struct{ Fields: map[string]*structpb.Value{ "null": {Kind: &structpb.Value_NullValue{}}, "number": {Kind: &structpb.Value_NumberValue{}}, "string": {Kind: &structpb.Value_StringValue{}}, "struct": {Kind: &structpb.Value_StructValue{}}, "list": {Kind: &structpb.Value_ListValue{}}, "bool": {Kind: &structpb.Value_BoolValue{}}, }, }, }, }, want: `{ "bool": false, "list": [], "null": null, "number": 0, "string": "", "struct": {} }`, }, { desc: "Value contains ListValue", input: &structpb.Value{ Kind: &structpb.Value_ListValue{ &structpb.ListValue{ Values: []*structpb.Value{ {Kind: &structpb.Value_BoolValue{}}, {Kind: &structpb.Value_NullValue{}}, {Kind: &structpb.Value_NumberValue{}}, {Kind: &structpb.Value_StringValue{}}, {Kind: &structpb.Value_StructValue{}}, {Kind: &structpb.Value_ListValue{}}, }, }, }, }, want: `[ false, null, 0, "", {}, [] ]`, }, { desc: "Value with NaN", input: structpb.NewNumberValue(math.NaN()), wantErr: true, }, { desc: "Value with -Inf", input: structpb.NewNumberValue(math.Inf(-1)), wantErr: true, }, { desc: "Value with +Inf", input: structpb.NewNumberValue(math.Inf(+1)), wantErr: true, }, { desc: "Struct with nil map", input: &structpb.Struct{}, want: `{}`, }, { desc: "Struct with empty map", input: &structpb.Struct{ Fields: map[string]*structpb.Value{}, }, want: `{}`, }, { desc: "Struct", input: &structpb.Struct{ Fields: map[string]*structpb.Value{ "bool": {Kind: &structpb.Value_BoolValue{true}}, "null": {Kind: &structpb.Value_NullValue{}}, "number": {Kind: &structpb.Value_NumberValue{3.1415}}, "string": {Kind: &structpb.Value_StringValue{"hello"}}, "struct": { Kind: &structpb.Value_StructValue{ &structpb.Struct{ Fields: map[string]*structpb.Value{ "string": {Kind: &structpb.Value_StringValue{"world"}}, }, }, }, }, "list": { Kind: &structpb.Value_ListValue{ &structpb.ListValue{ Values: []*structpb.Value{ {Kind: &structpb.Value_BoolValue{}}, {Kind: &structpb.Value_NullValue{}}, {Kind: &structpb.Value_NumberValue{}}, }, }, }, }, }, }, want: `{ "bool": true, "list": [ false, null, 0 ], "null": null, "number": 3.1415, "string": "hello", "struct": { "string": "world" } }`, }, { desc: "Struct message with invalid UTF8 string", input: &structpb.Struct{ Fields: map[string]*structpb.Value{ "string": {Kind: &structpb.Value_StringValue{"\xff"}}, }, }, wantErr: true, }, { desc: "ListValue with nil values", input: &structpb.ListValue{}, want: `[]`, }, { desc: "ListValue with empty values", input: &structpb.ListValue{ Values: []*structpb.Value{}, }, want: `[]`, }, { desc: "ListValue", input: &structpb.ListValue{ Values: []*structpb.Value{ {Kind: &structpb.Value_BoolValue{true}}, {Kind: &structpb.Value_NullValue{}}, {Kind: &structpb.Value_NumberValue{3.1415}}, {Kind: &structpb.Value_StringValue{"hello"}}, { Kind: &structpb.Value_ListValue{ &structpb.ListValue{ Values: []*structpb.Value{ {Kind: &structpb.Value_BoolValue{}}, {Kind: &structpb.Value_NullValue{}}, {Kind: &structpb.Value_NumberValue{}}, }, }, }, }, { Kind: &structpb.Value_StructValue{ &structpb.Struct{ Fields: map[string]*structpb.Value{ "string": {Kind: &structpb.Value_StringValue{"world"}}, }, }, }, }, }, }, want: `[ true, null, 3.1415, "hello", [ false, null, 0 ], { "string": "world" } ]`, }, { desc: "ListValue with invalid UTF8 string", input: &structpb.ListValue{ Values: []*structpb.Value{ {Kind: &structpb.Value_StringValue{"\xff"}}, }, }, wantErr: true, }, { desc: "Duration empty", input: &durationpb.Duration{}, want: `"0s"`, }, { desc: "Duration with secs", input: &durationpb.Duration{Seconds: 3}, want: `"3s"`, }, { desc: "Duration with -secs", input: &durationpb.Duration{Seconds: -3}, want: `"-3s"`, }, { desc: "Duration with nanos", input: &durationpb.Duration{Nanos: 1e6}, want: `"0.001s"`, }, { desc: "Duration with -nanos", input: &durationpb.Duration{Nanos: -1e6}, want: `"-0.001s"`, }, { desc: "Duration with large secs", input: &durationpb.Duration{Seconds: 1e10, Nanos: 1}, want: `"10000000000.000000001s"`, }, { desc: "Duration with 6-digit nanos", input: &durationpb.Duration{Nanos: 1e4}, want: `"0.000010s"`, }, { desc: "Duration with 3-digit nanos", input: &durationpb.Duration{Nanos: 1e6}, want: `"0.001s"`, }, { desc: "Duration with -secs -nanos", input: &durationpb.Duration{Seconds: -123, Nanos: -450}, want: `"-123.000000450s"`, }, { desc: "Duration max value", input: &durationpb.Duration{Seconds: 315576000000, Nanos: 999999999}, want: `"315576000000.999999999s"`, }, { desc: "Duration min value", input: &durationpb.Duration{Seconds: -315576000000, Nanos: -999999999}, want: `"-315576000000.999999999s"`, }, { desc: "Duration with +secs -nanos", input: &durationpb.Duration{Seconds: 1, Nanos: -1}, wantErr: true, }, { desc: "Duration with -secs +nanos", input: &durationpb.Duration{Seconds: -1, Nanos: 1}, wantErr: true, }, { desc: "Duration with +secs out of range", input: &durationpb.Duration{Seconds: 315576000001}, wantErr: true, }, { desc: "Duration with -secs out of range", input: &durationpb.Duration{Seconds: -315576000001}, wantErr: true, }, { desc: "Duration with +nanos out of range", input: &durationpb.Duration{Seconds: 0, Nanos: 1e9}, wantErr: true, }, { desc: "Duration with -nanos out of range", input: &durationpb.Duration{Seconds: 0, Nanos: -1e9}, wantErr: true, }, { desc: "Timestamp zero", input: ×tamppb.Timestamp{}, want: `"1970-01-01T00:00:00Z"`, }, { desc: "Timestamp", input: ×tamppb.Timestamp{Seconds: 1553036601}, want: `"2019-03-19T23:03:21Z"`, }, { desc: "Timestamp with nanos", input: ×tamppb.Timestamp{Seconds: 1553036601, Nanos: 1}, want: `"2019-03-19T23:03:21.000000001Z"`, }, { desc: "Timestamp with 6-digit nanos", input: ×tamppb.Timestamp{Nanos: 1e3}, want: `"1970-01-01T00:00:00.000001Z"`, }, { desc: "Timestamp with 3-digit nanos", input: ×tamppb.Timestamp{Nanos: 1e7}, want: `"1970-01-01T00:00:00.010Z"`, }, { desc: "Timestamp max value", input: ×tamppb.Timestamp{Seconds: 253402300799, Nanos: 999999999}, want: `"9999-12-31T23:59:59.999999999Z"`, }, { desc: "Timestamp min value", input: ×tamppb.Timestamp{Seconds: -62135596800}, want: `"0001-01-01T00:00:00Z"`, }, { desc: "Timestamp with +secs out of range", input: ×tamppb.Timestamp{Seconds: 253402300800}, wantErr: true, }, { desc: "Timestamp with -secs out of range", input: ×tamppb.Timestamp{Seconds: -62135596801}, wantErr: true, }, { desc: "Timestamp with -nanos", input: ×tamppb.Timestamp{Nanos: -1}, wantErr: true, }, { desc: "Timestamp with +nanos out of range", input: ×tamppb.Timestamp{Nanos: 1e9}, wantErr: true, }, { desc: "FieldMask empty", input: &fieldmaskpb.FieldMask{}, want: `""`, }, { desc: "FieldMask", input: &fieldmaskpb.FieldMask{ Paths: []string{ "foo", "foo_bar", "foo.bar_qux", "_foo", }, }, want: `"foo,fooBar,foo.barQux,Foo"`, }, { desc: "FieldMask empty string path", input: &fieldmaskpb.FieldMask{ Paths: []string{""}, }, wantErr: true, }, { desc: "FieldMask path contains spaces only", input: &fieldmaskpb.FieldMask{ Paths: []string{" "}, }, wantErr: true, }, { desc: "FieldMask irreversible error 1", input: &fieldmaskpb.FieldMask{ Paths: []string{"foo_"}, }, wantErr: true, }, { desc: "FieldMask irreversible error 2", input: &fieldmaskpb.FieldMask{ Paths: []string{"foo__bar"}, }, wantErr: true, }, { desc: "FieldMask invalid char", input: &fieldmaskpb.FieldMask{ Paths: []string{"foo@bar"}, }, wantErr: true, }, { desc: "Any empty", input: &anypb.Any{}, want: `{}`, }, { desc: "Any with non-custom message", input: func() proto.Message { m := &pb2.Nested{ OptString: proto.String("embedded inside Any"), OptNested: &pb2.Nested{ OptString: proto.String("inception"), }, } b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: "foo/pb2.Nested", Value: b, } }(), want: `{ "@type": "foo/pb2.Nested", "optString": "embedded inside Any", "optNested": { "optString": "inception" } }`, }, { desc: "Any with empty embedded message", input: &anypb.Any{TypeUrl: "foo/pb2.Nested"}, want: `{ "@type": "foo/pb2.Nested" }`, }, { desc: "Any without registered type", mo: protojson.MarshalOptions{Resolver: new(preg.Types)}, input: &anypb.Any{TypeUrl: "foo/pb2.Nested"}, wantErr: true, }, { desc: "Any with missing required", input: func() proto.Message { m := &pb2.PartialRequired{ OptString: proto.String("embedded inside Any"), } b, err := proto.MarshalOptions{ AllowPartial: true, Deterministic: true, }.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: string(m.ProtoReflect().Descriptor().FullName()), Value: b, } }(), want: `{ "@type": "pb2.PartialRequired", "optString": "embedded inside Any" }`, }, { desc: "Any with partial required and AllowPartial", mo: protojson.MarshalOptions{ AllowPartial: true, }, input: func() proto.Message { m := &pb2.PartialRequired{ OptString: proto.String("embedded inside Any"), } b, err := proto.MarshalOptions{ AllowPartial: true, Deterministic: true, }.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: string(m.ProtoReflect().Descriptor().FullName()), Value: b, } }(), want: `{ "@type": "pb2.PartialRequired", "optString": "embedded inside Any" }`, }, { desc: "Any with EmitUnpopulated", mo: protojson.MarshalOptions{ EmitUnpopulated: true, }, input: func() proto.Message { return &anypb.Any{ TypeUrl: string(new(pb3.Scalars).ProtoReflect().Descriptor().FullName()), } }(), want: `{ "@type": "pb3.Scalars", "sBool": false, "sInt32": 0, "sInt64": "0", "sUint32": 0, "sUint64": "0", "sSint32": 0, "sSint64": "0", "sFixed32": 0, "sFixed64": "0", "sSfixed32": 0, "sSfixed64": "0", "sFloat": 0, "sDouble": 0, "sBytes": "", "sString": "" }`, }, { desc: "Any with invalid UTF8", input: func() proto.Message { m := &pb2.Nested{ OptString: proto.String("abc\xff"), } b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: "foo/pb2.Nested", Value: b, } }(), wantErr: true, }, { desc: "Any with invalid value", input: &anypb.Any{ TypeUrl: "foo/pb2.Nested", Value: []byte("\x80"), }, wantErr: true, }, { desc: "Any with BoolValue", input: func() proto.Message { m := &wrapperspb.BoolValue{Value: true} b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: "type.googleapis.com/google.protobuf.BoolValue", Value: b, } }(), want: `{ "@type": "type.googleapis.com/google.protobuf.BoolValue", "value": true }`, }, { desc: "Any with Empty", input: func() proto.Message { m := &emptypb.Empty{} b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: "type.googleapis.com/google.protobuf.Empty", Value: b, } }(), want: `{ "@type": "type.googleapis.com/google.protobuf.Empty", "value": {} }`, }, { desc: "Any with StringValue containing invalid UTF8", input: func() proto.Message { m := &wrapperspb.StringValue{Value: "abcd"} b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: "google.protobuf.StringValue", Value: bytes.Replace(b, []byte("abcd"), []byte("abc\xff"), -1), } }(), wantErr: true, }, { desc: "Any with Int64Value", input: func() proto.Message { m := &wrapperspb.Int64Value{Value: 42} b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: "google.protobuf.Int64Value", Value: b, } }(), want: `{ "@type": "google.protobuf.Int64Value", "value": "42" }`, }, { desc: "Any with Duration", input: func() proto.Message { m := &durationpb.Duration{} b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: "type.googleapis.com/google.protobuf.Duration", Value: b, } }(), want: `{ "@type": "type.googleapis.com/google.protobuf.Duration", "value": "0s" }`, }, { desc: "Any with empty Value", input: func() proto.Message { m := &structpb.Value{} b, err := proto.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: "type.googleapis.com/google.protobuf.Value", Value: b, } }(), wantErr: true, }, { desc: "Any with Value of StringValue", input: func() proto.Message { m := &structpb.Value{Kind: &structpb.Value_StringValue{"abcd"}} b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: "type.googleapis.com/google.protobuf.Value", Value: bytes.Replace(b, []byte("abcd"), []byte("abc\xff"), -1), } }(), wantErr: true, }, { desc: "Any with Value of NullValue", input: func() proto.Message { m := &structpb.Value{Kind: &structpb.Value_NullValue{}} b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: "type.googleapis.com/google.protobuf.Value", Value: b, } }(), want: `{ "@type": "type.googleapis.com/google.protobuf.Value", "value": null }`, }, { desc: "Any with Struct", input: func() proto.Message { m := &structpb.Struct{ Fields: map[string]*structpb.Value{ "bool": {Kind: &structpb.Value_BoolValue{true}}, "null": {Kind: &structpb.Value_NullValue{}}, "string": {Kind: &structpb.Value_StringValue{"hello"}}, "struct": { Kind: &structpb.Value_StructValue{ &structpb.Struct{ Fields: map[string]*structpb.Value{ "string": {Kind: &structpb.Value_StringValue{"world"}}, }, }, }, }, }, } b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: "google.protobuf.Struct", Value: b, } }(), want: `{ "@type": "google.protobuf.Struct", "value": { "bool": true, "null": null, "string": "hello", "struct": { "string": "world" } } }`, }, { desc: "Any with missing type_url", input: func() proto.Message { m := &wrapperspb.BoolValue{Value: true} b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ Value: b, } }(), wantErr: true, }, { desc: "well known types as field values", input: &pb2.KnownTypes{ OptBool: &wrapperspb.BoolValue{Value: false}, OptInt32: &wrapperspb.Int32Value{Value: 42}, OptInt64: &wrapperspb.Int64Value{Value: 42}, OptUint32: &wrapperspb.UInt32Value{Value: 42}, OptUint64: &wrapperspb.UInt64Value{Value: 42}, OptFloat: &wrapperspb.FloatValue{Value: 1.23}, OptDouble: &wrapperspb.DoubleValue{Value: 3.1415}, OptString: &wrapperspb.StringValue{Value: "hello"}, OptBytes: &wrapperspb.BytesValue{Value: []byte("hello")}, OptDuration: &durationpb.Duration{Seconds: 123}, OptTimestamp: ×tamppb.Timestamp{Seconds: 1553036601}, OptStruct: &structpb.Struct{ Fields: map[string]*structpb.Value{ "string": {Kind: &structpb.Value_StringValue{"hello"}}, }, }, OptList: &structpb.ListValue{ Values: []*structpb.Value{ {Kind: &structpb.Value_NullValue{}}, {Kind: &structpb.Value_StringValue{}}, {Kind: &structpb.Value_StructValue{}}, {Kind: &structpb.Value_ListValue{}}, }, }, OptValue: &structpb.Value{ Kind: &structpb.Value_StringValue{"world"}, }, OptEmpty: &emptypb.Empty{}, OptAny: &anypb.Any{ TypeUrl: "google.protobuf.Empty", }, OptFieldmask: &fieldmaskpb.FieldMask{ Paths: []string{"foo_bar", "bar_foo"}, }, }, want: `{ "optBool": false, "optInt32": 42, "optInt64": "42", "optUint32": 42, "optUint64": "42", "optFloat": 1.23, "optDouble": 3.1415, "optString": "hello", "optBytes": "aGVsbG8=", "optDuration": "123s", "optTimestamp": "2019-03-19T23:03:21Z", "optStruct": { "string": "hello" }, "optList": [ null, "", {}, [] ], "optValue": "world", "optEmpty": {}, "optAny": { "@type": "google.protobuf.Empty", "value": {} }, "optFieldmask": "fooBar,barFoo" }`, }, { desc: "EmitUnpopulated: proto2 optional scalars", mo: protojson.MarshalOptions{EmitUnpopulated: true}, input: &pb2.Scalars{}, want: `{ "optBool": null, "optInt32": null, "optInt64": null, "optUint32": null, "optUint64": null, "optSint32": null, "optSint64": null, "optFixed32": null, "optFixed64": null, "optSfixed32": null, "optSfixed64": null, "optFloat": null, "optDouble": null, "optBytes": null, "optString": null }`, }, { desc: "EmitUnpopulated: proto3 scalars", mo: protojson.MarshalOptions{EmitUnpopulated: true}, input: &pb3.Scalars{}, want: `{ "sBool": false, "sInt32": 0, "sInt64": "0", "sUint32": 0, "sUint64": "0", "sSint32": 0, "sSint64": "0", "sFixed32": 0, "sFixed64": "0", "sSfixed32": 0, "sSfixed64": "0", "sFloat": 0, "sDouble": 0, "sBytes": "", "sString": "" }`, }, { desc: "EmitUnpopulated: proto2 enum", mo: protojson.MarshalOptions{EmitUnpopulated: true}, input: &pb2.Enums{}, want: `{ "optEnum": null, "rptEnum": [], "optNestedEnum": null, "rptNestedEnum": [] }`, }, { desc: "EmitUnpopulated: proto3 enum", mo: protojson.MarshalOptions{EmitUnpopulated: true}, input: &pb3.Enums{}, want: `{ "sEnum": "ZERO", "sNestedEnum": "CERO" }`, }, { desc: "EmitUnpopulated: proto2 message and group fields", mo: protojson.MarshalOptions{EmitUnpopulated: true}, input: &pb2.Nests{}, want: `{ "optNested": null, "optgroup": null, "rptNested": [], "rptgroup": [] }`, }, { desc: "EmitUnpopulated: proto3 message field", mo: protojson.MarshalOptions{EmitUnpopulated: true}, input: &pb3.Nests{}, want: `{ "sNested": null }`, }, { desc: "EmitUnpopulated: proto2 empty message and group fields", mo: protojson.MarshalOptions{EmitUnpopulated: true}, input: &pb2.Nests{ OptNested: &pb2.Nested{}, Optgroup: &pb2.Nests_OptGroup{}, }, want: `{ "optNested": { "optString": null, "optNested": null }, "optgroup": { "optString": null, "optNested": null, "optnestedgroup": null }, "rptNested": [], "rptgroup": [] }`, }, { desc: "EmitUnpopulated: proto3 empty message field", mo: protojson.MarshalOptions{EmitUnpopulated: true}, input: &pb3.Nests{ SNested: &pb3.Nested{}, }, want: `{ "sNested": { "sString": "", "sNested": null } }`, }, { desc: "EmitUnpopulated: proto2 required fields", mo: protojson.MarshalOptions{ AllowPartial: true, EmitUnpopulated: true, }, input: &pb2.Requireds{}, want: `{ "reqBool": null, "reqSfixed64": null, "reqDouble": null, "reqString": null, "reqEnum": null, "reqNested": null }`, }, { desc: "EmitUnpopulated: repeated fields", mo: protojson.MarshalOptions{EmitUnpopulated: true}, input: &pb2.Repeats{}, want: `{ "rptBool": [], "rptInt32": [], "rptInt64": [], "rptUint32": [], "rptUint64": [], "rptFloat": [], "rptDouble": [], "rptString": [], "rptBytes": [] }`, }, { desc: "EmitUnpopulated: repeated containing empty message", mo: protojson.MarshalOptions{EmitUnpopulated: true}, input: &pb2.Nests{ RptNested: []*pb2.Nested{nil, {}}, }, want: `{ "optNested": null, "optgroup": null, "rptNested": [ { "optString": null, "optNested": null }, { "optString": null, "optNested": null } ], "rptgroup": [] }`, }, { desc: "EmitUnpopulated: map fields", mo: protojson.MarshalOptions{EmitUnpopulated: true}, input: &pb3.Maps{}, want: `{ "int32ToStr": {}, "boolToUint32": {}, "uint64ToEnum": {}, "strToNested": {}, "strToOneofs": {} }`, }, { desc: "EmitUnpopulated: map containing empty message", mo: protojson.MarshalOptions{EmitUnpopulated: true}, input: &pb3.Maps{ StrToNested: map[string]*pb3.Nested{ "nested": &pb3.Nested{}, }, StrToOneofs: map[string]*pb3.Oneofs{ "nested": &pb3.Oneofs{}, }, }, want: `{ "int32ToStr": {}, "boolToUint32": {}, "uint64ToEnum": {}, "strToNested": { "nested": { "sString": "", "sNested": null } }, "strToOneofs": { "nested": {} } }`, }, { desc: "EmitUnpopulated: oneof fields", mo: protojson.MarshalOptions{EmitUnpopulated: true}, input: &pb3.Oneofs{}, want: `{}`, }, { desc: "EmitUnpopulated: extensions", mo: protojson.MarshalOptions{EmitUnpopulated: true}, input: func() proto.Message { m := &pb2.Extensions{} proto.SetExtension(m, pb2.E_OptExtNested, &pb2.Nested{}) proto.SetExtension(m, pb2.E_RptExtNested, []*pb2.Nested{ nil, {}, }) return m }(), want: `{ "optString": null, "optBool": null, "optInt32": null, "[pb2.opt_ext_nested]": { "optString": null, "optNested": null }, "[pb2.rpt_ext_nested]": [ { "optString": null, "optNested": null }, { "optString": null, "optNested": null } ] }`, }, { desc: "EmitUnpopulated: with populated fields", mo: protojson.MarshalOptions{EmitUnpopulated: true}, input: &pb2.Scalars{ OptInt32: proto.Int32(0xff), OptUint32: proto.Uint32(47), OptSint32: proto.Int32(-1001), OptFixed32: proto.Uint32(32), OptSfixed32: proto.Int32(-32), OptFloat: proto.Float32(1.02), OptBytes: []byte("谷歌"), }, want: `{ "optBool": null, "optInt32": 255, "optInt64": null, "optUint32": 47, "optUint64": null, "optSint32": -1001, "optSint64": null, "optFixed32": 32, "optFixed64": null, "optSfixed32": -32, "optSfixed64": null, "optFloat": 1.02, "optDouble": null, "optBytes": "6LC35q2M", "optString": null }`, }, { desc: "UseEnumNumbers in singular field", mo: protojson.MarshalOptions{UseEnumNumbers: true}, input: &pb2.Enums{ OptEnum: pb2.Enum_ONE.Enum(), OptNestedEnum: pb2.Enums_UNO.Enum(), }, want: `{ "optEnum": 1, "optNestedEnum": 1 }`, }, { desc: "UseEnumNumbers in repeated field", mo: protojson.MarshalOptions{UseEnumNumbers: true}, input: &pb2.Enums{ RptEnum: []pb2.Enum{pb2.Enum_ONE, 2, pb2.Enum_TEN, 42}, RptNestedEnum: []pb2.Enums_NestedEnum{pb2.Enums_UNO, pb2.Enums_DOS, 47}, }, want: `{ "rptEnum": [ 1, 2, 10, 42 ], "rptNestedEnum": [ 1, 2, 47 ] }`, }, { desc: "UseEnumNumbers in map field", mo: protojson.MarshalOptions{UseEnumNumbers: true}, input: &pb3.Maps{ Uint64ToEnum: map[uint64]pb3.Enum{ 1: pb3.Enum_ONE, 2: pb3.Enum_TWO, 10: pb3.Enum_TEN, 47: 47, }, }, want: `{ "uint64ToEnum": { "1": 1, "2": 2, "10": 10, "47": 47 } }`, }, { desc: "UseProtoNames", mo: protojson.MarshalOptions{UseProtoNames: true}, input: &pb2.Nests{ OptNested: &pb2.Nested{}, Optgroup: &pb2.Nests_OptGroup{ OptString: proto.String("inside a group"), OptNested: &pb2.Nested{ OptString: proto.String("nested message inside a group"), }, Optnestedgroup: &pb2.Nests_OptGroup_OptNestedGroup{ OptFixed32: proto.Uint32(47), }, }, Rptgroup: []*pb2.Nests_RptGroup{ { RptString: []string{"hello", "world"}, }, }, }, want: `{ "opt_nested": {}, "OptGroup": { "opt_string": "inside a group", "opt_nested": { "opt_string": "nested message inside a group" }, "OptNestedGroup": { "opt_fixed32": 47 } }, "RptGroup": [ { "rpt_string": [ "hello", "world" ] } ] }`, }} for _, tt := range tests { tt := tt if tt.skip { continue } t.Run(tt.desc, func(t *testing.T) { // Use 2-space indentation on all MarshalOptions. tt.mo.Indent = " " b, err := tt.mo.Marshal(tt.input) if err != nil && !tt.wantErr { t.Errorf("Marshal() returned error: %v\n", err) } if err == nil && tt.wantErr { t.Errorf("Marshal() got nil error, want error\n") } got := string(b) if got != tt.want { t.Errorf("Marshal()\n\n%v\n\n%v\n", got, tt.want) if diff := cmp.Diff(tt.want, got); diff != "" { t.Errorf("Marshal() diff -want +got\n%v\n", diff) } } }) } } golang-google-protobuf-1.27.1/encoding/protojson/well_known_types.go000066400000000000000000000620761411250152500257450ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protojson import ( "bytes" "fmt" "math" "strconv" "strings" "time" "google.golang.org/protobuf/internal/encoding/json" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/internal/strs" "google.golang.org/protobuf/proto" pref "google.golang.org/protobuf/reflect/protoreflect" ) type marshalFunc func(encoder, pref.Message) error // wellKnownTypeMarshaler returns a marshal function if the message type // has specialized serialization behavior. It returns nil otherwise. func wellKnownTypeMarshaler(name pref.FullName) marshalFunc { if name.Parent() == genid.GoogleProtobuf_package { switch name.Name() { case genid.Any_message_name: return encoder.marshalAny case genid.Timestamp_message_name: return encoder.marshalTimestamp case genid.Duration_message_name: return encoder.marshalDuration case genid.BoolValue_message_name, genid.Int32Value_message_name, genid.Int64Value_message_name, genid.UInt32Value_message_name, genid.UInt64Value_message_name, genid.FloatValue_message_name, genid.DoubleValue_message_name, genid.StringValue_message_name, genid.BytesValue_message_name: return encoder.marshalWrapperType case genid.Struct_message_name: return encoder.marshalStruct case genid.ListValue_message_name: return encoder.marshalListValue case genid.Value_message_name: return encoder.marshalKnownValue case genid.FieldMask_message_name: return encoder.marshalFieldMask case genid.Empty_message_name: return encoder.marshalEmpty } } return nil } type unmarshalFunc func(decoder, pref.Message) error // wellKnownTypeUnmarshaler returns a unmarshal function if the message type // has specialized serialization behavior. It returns nil otherwise. func wellKnownTypeUnmarshaler(name pref.FullName) unmarshalFunc { if name.Parent() == genid.GoogleProtobuf_package { switch name.Name() { case genid.Any_message_name: return decoder.unmarshalAny case genid.Timestamp_message_name: return decoder.unmarshalTimestamp case genid.Duration_message_name: return decoder.unmarshalDuration case genid.BoolValue_message_name, genid.Int32Value_message_name, genid.Int64Value_message_name, genid.UInt32Value_message_name, genid.UInt64Value_message_name, genid.FloatValue_message_name, genid.DoubleValue_message_name, genid.StringValue_message_name, genid.BytesValue_message_name: return decoder.unmarshalWrapperType case genid.Struct_message_name: return decoder.unmarshalStruct case genid.ListValue_message_name: return decoder.unmarshalListValue case genid.Value_message_name: return decoder.unmarshalKnownValue case genid.FieldMask_message_name: return decoder.unmarshalFieldMask case genid.Empty_message_name: return decoder.unmarshalEmpty } } return nil } // The JSON representation of an Any message uses the regular representation of // the deserialized, embedded message, with an additional field `@type` which // contains the type URL. If the embedded message type is well-known and has a // custom JSON representation, that representation will be embedded adding a // field `value` which holds the custom JSON in addition to the `@type` field. func (e encoder) marshalAny(m pref.Message) error { fds := m.Descriptor().Fields() fdType := fds.ByNumber(genid.Any_TypeUrl_field_number) fdValue := fds.ByNumber(genid.Any_Value_field_number) if !m.Has(fdType) { if !m.Has(fdValue) { // If message is empty, marshal out empty JSON object. e.StartObject() e.EndObject() return nil } else { // Return error if type_url field is not set, but value is set. return errors.New("%s: %v is not set", genid.Any_message_fullname, genid.Any_TypeUrl_field_name) } } typeVal := m.Get(fdType) valueVal := m.Get(fdValue) // Resolve the type in order to unmarshal value field. typeURL := typeVal.String() emt, err := e.opts.Resolver.FindMessageByURL(typeURL) if err != nil { return errors.New("%s: unable to resolve %q: %v", genid.Any_message_fullname, typeURL, err) } em := emt.New() err = proto.UnmarshalOptions{ AllowPartial: true, // never check required fields inside an Any Resolver: e.opts.Resolver, }.Unmarshal(valueVal.Bytes(), em.Interface()) if err != nil { return errors.New("%s: unable to unmarshal %q: %v", genid.Any_message_fullname, typeURL, err) } // If type of value has custom JSON encoding, marshal out a field "value" // with corresponding custom JSON encoding of the embedded message as a // field. if marshal := wellKnownTypeMarshaler(emt.Descriptor().FullName()); marshal != nil { e.StartObject() defer e.EndObject() // Marshal out @type field. e.WriteName("@type") if err := e.WriteString(typeURL); err != nil { return err } e.WriteName("value") return marshal(e, em) } // Else, marshal out the embedded message's fields in this Any object. if err := e.marshalMessage(em, typeURL); err != nil { return err } return nil } func (d decoder) unmarshalAny(m pref.Message) error { // Peek to check for json.ObjectOpen to avoid advancing a read. start, err := d.Peek() if err != nil { return err } if start.Kind() != json.ObjectOpen { return d.unexpectedTokenError(start) } // Use another decoder to parse the unread bytes for @type field. This // avoids advancing a read from current decoder because the current JSON // object may contain the fields of the embedded type. dec := decoder{d.Clone(), UnmarshalOptions{}} tok, err := findTypeURL(dec) switch err { case errEmptyObject: // An empty JSON object translates to an empty Any message. d.Read() // Read json.ObjectOpen. d.Read() // Read json.ObjectClose. return nil case errMissingType: if d.opts.DiscardUnknown { // Treat all fields as unknowns, similar to an empty object. return d.skipJSONValue() } // Use start.Pos() for line position. return d.newError(start.Pos(), err.Error()) default: if err != nil { return err } } typeURL := tok.ParsedString() emt, err := d.opts.Resolver.FindMessageByURL(typeURL) if err != nil { return d.newError(tok.Pos(), "unable to resolve %v: %q", tok.RawString(), err) } // Create new message for the embedded message type and unmarshal into it. em := emt.New() if unmarshal := wellKnownTypeUnmarshaler(emt.Descriptor().FullName()); unmarshal != nil { // If embedded message is a custom type, // unmarshal the JSON "value" field into it. if err := d.unmarshalAnyValue(unmarshal, em); err != nil { return err } } else { // Else unmarshal the current JSON object into it. if err := d.unmarshalMessage(em, true); err != nil { return err } } // Serialize the embedded message and assign the resulting bytes to the // proto value field. b, err := proto.MarshalOptions{ AllowPartial: true, // No need to check required fields inside an Any. Deterministic: true, }.Marshal(em.Interface()) if err != nil { return d.newError(start.Pos(), "error in marshaling Any.value field: %v", err) } fds := m.Descriptor().Fields() fdType := fds.ByNumber(genid.Any_TypeUrl_field_number) fdValue := fds.ByNumber(genid.Any_Value_field_number) m.Set(fdType, pref.ValueOfString(typeURL)) m.Set(fdValue, pref.ValueOfBytes(b)) return nil } var errEmptyObject = fmt.Errorf(`empty object`) var errMissingType = fmt.Errorf(`missing "@type" field`) // findTypeURL returns the token for the "@type" field value from the given // JSON bytes. It is expected that the given bytes start with json.ObjectOpen. // It returns errEmptyObject if the JSON object is empty or errMissingType if // @type field does not exist. It returns other error if the @type field is not // valid or other decoding issues. func findTypeURL(d decoder) (json.Token, error) { var typeURL string var typeTok json.Token numFields := 0 // Skip start object. d.Read() Loop: for { tok, err := d.Read() if err != nil { return json.Token{}, err } switch tok.Kind() { case json.ObjectClose: if typeURL == "" { // Did not find @type field. if numFields > 0 { return json.Token{}, errMissingType } return json.Token{}, errEmptyObject } break Loop case json.Name: numFields++ if tok.Name() != "@type" { // Skip value. if err := d.skipJSONValue(); err != nil { return json.Token{}, err } continue } // Return error if this was previously set already. if typeURL != "" { return json.Token{}, d.newError(tok.Pos(), `duplicate "@type" field`) } // Read field value. tok, err := d.Read() if err != nil { return json.Token{}, err } if tok.Kind() != json.String { return json.Token{}, d.newError(tok.Pos(), `@type field value is not a string: %v`, tok.RawString()) } typeURL = tok.ParsedString() if typeURL == "" { return json.Token{}, d.newError(tok.Pos(), `@type field contains empty value`) } typeTok = tok } } return typeTok, nil } // skipJSONValue parses a JSON value (null, boolean, string, number, object and // array) in order to advance the read to the next JSON value. It relies on // the decoder returning an error if the types are not in valid sequence. func (d decoder) skipJSONValue() error { tok, err := d.Read() if err != nil { return err } // Only need to continue reading for objects and arrays. switch tok.Kind() { case json.ObjectOpen: for { tok, err := d.Read() if err != nil { return err } switch tok.Kind() { case json.ObjectClose: return nil case json.Name: // Skip object field value. if err := d.skipJSONValue(); err != nil { return err } } } case json.ArrayOpen: for { tok, err := d.Peek() if err != nil { return err } switch tok.Kind() { case json.ArrayClose: d.Read() return nil default: // Skip array item. if err := d.skipJSONValue(); err != nil { return err } } } } return nil } // unmarshalAnyValue unmarshals the given custom-type message from the JSON // object's "value" field. func (d decoder) unmarshalAnyValue(unmarshal unmarshalFunc, m pref.Message) error { // Skip ObjectOpen, and start reading the fields. d.Read() var found bool // Used for detecting duplicate "value". for { tok, err := d.Read() if err != nil { return err } switch tok.Kind() { case json.ObjectClose: if !found { return d.newError(tok.Pos(), `missing "value" field`) } return nil case json.Name: switch tok.Name() { case "@type": // Skip the value as this was previously parsed already. d.Read() case "value": if found { return d.newError(tok.Pos(), `duplicate "value" field`) } // Unmarshal the field value into the given message. if err := unmarshal(d, m); err != nil { return err } found = true default: if d.opts.DiscardUnknown { if err := d.skipJSONValue(); err != nil { return err } continue } return d.newError(tok.Pos(), "unknown field %v", tok.RawString()) } } } } // Wrapper types are encoded as JSON primitives like string, number or boolean. func (e encoder) marshalWrapperType(m pref.Message) error { fd := m.Descriptor().Fields().ByNumber(genid.WrapperValue_Value_field_number) val := m.Get(fd) return e.marshalSingular(val, fd) } func (d decoder) unmarshalWrapperType(m pref.Message) error { fd := m.Descriptor().Fields().ByNumber(genid.WrapperValue_Value_field_number) val, err := d.unmarshalScalar(fd) if err != nil { return err } m.Set(fd, val) return nil } // The JSON representation for Empty is an empty JSON object. func (e encoder) marshalEmpty(pref.Message) error { e.StartObject() e.EndObject() return nil } func (d decoder) unmarshalEmpty(pref.Message) error { tok, err := d.Read() if err != nil { return err } if tok.Kind() != json.ObjectOpen { return d.unexpectedTokenError(tok) } for { tok, err := d.Read() if err != nil { return err } switch tok.Kind() { case json.ObjectClose: return nil case json.Name: if d.opts.DiscardUnknown { if err := d.skipJSONValue(); err != nil { return err } continue } return d.newError(tok.Pos(), "unknown field %v", tok.RawString()) default: return d.unexpectedTokenError(tok) } } } // The JSON representation for Struct is a JSON object that contains the encoded // Struct.fields map and follows the serialization rules for a map. func (e encoder) marshalStruct(m pref.Message) error { fd := m.Descriptor().Fields().ByNumber(genid.Struct_Fields_field_number) return e.marshalMap(m.Get(fd).Map(), fd) } func (d decoder) unmarshalStruct(m pref.Message) error { fd := m.Descriptor().Fields().ByNumber(genid.Struct_Fields_field_number) return d.unmarshalMap(m.Mutable(fd).Map(), fd) } // The JSON representation for ListValue is JSON array that contains the encoded // ListValue.values repeated field and follows the serialization rules for a // repeated field. func (e encoder) marshalListValue(m pref.Message) error { fd := m.Descriptor().Fields().ByNumber(genid.ListValue_Values_field_number) return e.marshalList(m.Get(fd).List(), fd) } func (d decoder) unmarshalListValue(m pref.Message) error { fd := m.Descriptor().Fields().ByNumber(genid.ListValue_Values_field_number) return d.unmarshalList(m.Mutable(fd).List(), fd) } // The JSON representation for a Value is dependent on the oneof field that is // set. Each of the field in the oneof has its own custom serialization rule. A // Value message needs to be a oneof field set, else it is an error. func (e encoder) marshalKnownValue(m pref.Message) error { od := m.Descriptor().Oneofs().ByName(genid.Value_Kind_oneof_name) fd := m.WhichOneof(od) if fd == nil { return errors.New("%s: none of the oneof fields is set", genid.Value_message_fullname) } if fd.Number() == genid.Value_NumberValue_field_number { if v := m.Get(fd).Float(); math.IsNaN(v) || math.IsInf(v, 0) { return errors.New("%s: invalid %v value", genid.Value_NumberValue_field_fullname, v) } } return e.marshalSingular(m.Get(fd), fd) } func (d decoder) unmarshalKnownValue(m pref.Message) error { tok, err := d.Peek() if err != nil { return err } var fd pref.FieldDescriptor var val pref.Value switch tok.Kind() { case json.Null: d.Read() fd = m.Descriptor().Fields().ByNumber(genid.Value_NullValue_field_number) val = pref.ValueOfEnum(0) case json.Bool: tok, err := d.Read() if err != nil { return err } fd = m.Descriptor().Fields().ByNumber(genid.Value_BoolValue_field_number) val = pref.ValueOfBool(tok.Bool()) case json.Number: tok, err := d.Read() if err != nil { return err } fd = m.Descriptor().Fields().ByNumber(genid.Value_NumberValue_field_number) var ok bool val, ok = unmarshalFloat(tok, 64) if !ok { return d.newError(tok.Pos(), "invalid %v: %v", genid.Value_message_fullname, tok.RawString()) } case json.String: // A JSON string may have been encoded from the number_value field, // e.g. "NaN", "Infinity", etc. Parsing a proto double type also allows // for it to be in JSON string form. Given this custom encoding spec, // however, there is no way to identify that and hence a JSON string is // always assigned to the string_value field, which means that certain // encoding cannot be parsed back to the same field. tok, err := d.Read() if err != nil { return err } fd = m.Descriptor().Fields().ByNumber(genid.Value_StringValue_field_number) val = pref.ValueOfString(tok.ParsedString()) case json.ObjectOpen: fd = m.Descriptor().Fields().ByNumber(genid.Value_StructValue_field_number) val = m.NewField(fd) if err := d.unmarshalStruct(val.Message()); err != nil { return err } case json.ArrayOpen: fd = m.Descriptor().Fields().ByNumber(genid.Value_ListValue_field_number) val = m.NewField(fd) if err := d.unmarshalListValue(val.Message()); err != nil { return err } default: return d.newError(tok.Pos(), "invalid %v: %v", genid.Value_message_fullname, tok.RawString()) } m.Set(fd, val) return nil } // The JSON representation for a Duration is a JSON string that ends in the // suffix "s" (indicating seconds) and is preceded by the number of seconds, // with nanoseconds expressed as fractional seconds. // // Durations less than one second are represented with a 0 seconds field and a // positive or negative nanos field. For durations of one second or more, a // non-zero value for the nanos field must be of the same sign as the seconds // field. // // Duration.seconds must be from -315,576,000,000 to +315,576,000,000 inclusive. // Duration.nanos must be from -999,999,999 to +999,999,999 inclusive. const ( secondsInNanos = 999999999 maxSecondsInDuration = 315576000000 ) func (e encoder) marshalDuration(m pref.Message) error { fds := m.Descriptor().Fields() fdSeconds := fds.ByNumber(genid.Duration_Seconds_field_number) fdNanos := fds.ByNumber(genid.Duration_Nanos_field_number) secsVal := m.Get(fdSeconds) nanosVal := m.Get(fdNanos) secs := secsVal.Int() nanos := nanosVal.Int() if secs < -maxSecondsInDuration || secs > maxSecondsInDuration { return errors.New("%s: seconds out of range %v", genid.Duration_message_fullname, secs) } if nanos < -secondsInNanos || nanos > secondsInNanos { return errors.New("%s: nanos out of range %v", genid.Duration_message_fullname, nanos) } if (secs > 0 && nanos < 0) || (secs < 0 && nanos > 0) { return errors.New("%s: signs of seconds and nanos do not match", genid.Duration_message_fullname) } // Generated output always contains 0, 3, 6, or 9 fractional digits, // depending on required precision, followed by the suffix "s". var sign string if secs < 0 || nanos < 0 { sign, secs, nanos = "-", -1*secs, -1*nanos } x := fmt.Sprintf("%s%d.%09d", sign, secs, nanos) x = strings.TrimSuffix(x, "000") x = strings.TrimSuffix(x, "000") x = strings.TrimSuffix(x, ".000") e.WriteString(x + "s") return nil } func (d decoder) unmarshalDuration(m pref.Message) error { tok, err := d.Read() if err != nil { return err } if tok.Kind() != json.String { return d.unexpectedTokenError(tok) } secs, nanos, ok := parseDuration(tok.ParsedString()) if !ok { return d.newError(tok.Pos(), "invalid %v value %v", genid.Duration_message_fullname, tok.RawString()) } // Validate seconds. No need to validate nanos because parseDuration would // have covered that already. if secs < -maxSecondsInDuration || secs > maxSecondsInDuration { return d.newError(tok.Pos(), "%v value out of range: %v", genid.Duration_message_fullname, tok.RawString()) } fds := m.Descriptor().Fields() fdSeconds := fds.ByNumber(genid.Duration_Seconds_field_number) fdNanos := fds.ByNumber(genid.Duration_Nanos_field_number) m.Set(fdSeconds, pref.ValueOfInt64(secs)) m.Set(fdNanos, pref.ValueOfInt32(nanos)) return nil } // parseDuration parses the given input string for seconds and nanoseconds value // for the Duration JSON format. The format is a decimal number with a suffix // 's'. It can have optional plus/minus sign. There needs to be at least an // integer or fractional part. Fractional part is limited to 9 digits only for // nanoseconds precision, regardless of whether there are trailing zero digits. // Example values are 1s, 0.1s, 1.s, .1s, +1s, -1s, -.1s. func parseDuration(input string) (int64, int32, bool) { b := []byte(input) size := len(b) if size < 2 { return 0, 0, false } if b[size-1] != 's' { return 0, 0, false } b = b[:size-1] // Read optional plus/minus symbol. var neg bool switch b[0] { case '-': neg = true b = b[1:] case '+': b = b[1:] } if len(b) == 0 { return 0, 0, false } // Read the integer part. var intp []byte switch { case b[0] == '0': b = b[1:] case '1' <= b[0] && b[0] <= '9': intp = b[0:] b = b[1:] n := 1 for len(b) > 0 && '0' <= b[0] && b[0] <= '9' { n++ b = b[1:] } intp = intp[:n] case b[0] == '.': // Continue below. default: return 0, 0, false } hasFrac := false var frac [9]byte if len(b) > 0 { if b[0] != '.' { return 0, 0, false } // Read the fractional part. b = b[1:] n := 0 for len(b) > 0 && n < 9 && '0' <= b[0] && b[0] <= '9' { frac[n] = b[0] n++ b = b[1:] } // It is not valid if there are more bytes left. if len(b) > 0 { return 0, 0, false } // Pad fractional part with 0s. for i := n; i < 9; i++ { frac[i] = '0' } hasFrac = true } var secs int64 if len(intp) > 0 { var err error secs, err = strconv.ParseInt(string(intp), 10, 64) if err != nil { return 0, 0, false } } var nanos int64 if hasFrac { nanob := bytes.TrimLeft(frac[:], "0") if len(nanob) > 0 { var err error nanos, err = strconv.ParseInt(string(nanob), 10, 32) if err != nil { return 0, 0, false } } } if neg { if secs > 0 { secs = -secs } if nanos > 0 { nanos = -nanos } } return secs, int32(nanos), true } // The JSON representation for a Timestamp is a JSON string in the RFC 3339 // format, i.e. "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where // {year} is always expressed using four digits while {month}, {day}, {hour}, // {min}, and {sec} are zero-padded to two digits each. The fractional seconds, // which can go up to 9 digits, up to 1 nanosecond resolution, is optional. The // "Z" suffix indicates the timezone ("UTC"); the timezone is required. Encoding // should always use UTC (as indicated by "Z") and a decoder should be able to // accept both UTC and other timezones (as indicated by an offset). // // Timestamp.seconds must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z // inclusive. // Timestamp.nanos must be from 0 to 999,999,999 inclusive. const ( maxTimestampSeconds = 253402300799 minTimestampSeconds = -62135596800 ) func (e encoder) marshalTimestamp(m pref.Message) error { fds := m.Descriptor().Fields() fdSeconds := fds.ByNumber(genid.Timestamp_Seconds_field_number) fdNanos := fds.ByNumber(genid.Timestamp_Nanos_field_number) secsVal := m.Get(fdSeconds) nanosVal := m.Get(fdNanos) secs := secsVal.Int() nanos := nanosVal.Int() if secs < minTimestampSeconds || secs > maxTimestampSeconds { return errors.New("%s: seconds out of range %v", genid.Timestamp_message_fullname, secs) } if nanos < 0 || nanos > secondsInNanos { return errors.New("%s: nanos out of range %v", genid.Timestamp_message_fullname, nanos) } // Uses RFC 3339, where generated output will be Z-normalized and uses 0, 3, // 6 or 9 fractional digits. t := time.Unix(secs, nanos).UTC() x := t.Format("2006-01-02T15:04:05.000000000") x = strings.TrimSuffix(x, "000") x = strings.TrimSuffix(x, "000") x = strings.TrimSuffix(x, ".000") e.WriteString(x + "Z") return nil } func (d decoder) unmarshalTimestamp(m pref.Message) error { tok, err := d.Read() if err != nil { return err } if tok.Kind() != json.String { return d.unexpectedTokenError(tok) } t, err := time.Parse(time.RFC3339Nano, tok.ParsedString()) if err != nil { return d.newError(tok.Pos(), "invalid %v value %v", genid.Timestamp_message_fullname, tok.RawString()) } // Validate seconds. No need to validate nanos because time.Parse would have // covered that already. secs := t.Unix() if secs < minTimestampSeconds || secs > maxTimestampSeconds { return d.newError(tok.Pos(), "%v value out of range: %v", genid.Timestamp_message_fullname, tok.RawString()) } fds := m.Descriptor().Fields() fdSeconds := fds.ByNumber(genid.Timestamp_Seconds_field_number) fdNanos := fds.ByNumber(genid.Timestamp_Nanos_field_number) m.Set(fdSeconds, pref.ValueOfInt64(secs)) m.Set(fdNanos, pref.ValueOfInt32(int32(t.Nanosecond()))) return nil } // The JSON representation for a FieldMask is a JSON string where paths are // separated by a comma. Fields name in each path are converted to/from // lower-camel naming conventions. Encoding should fail if the path name would // end up differently after a round-trip. func (e encoder) marshalFieldMask(m pref.Message) error { fd := m.Descriptor().Fields().ByNumber(genid.FieldMask_Paths_field_number) list := m.Get(fd).List() paths := make([]string, 0, list.Len()) for i := 0; i < list.Len(); i++ { s := list.Get(i).String() if !pref.FullName(s).IsValid() { return errors.New("%s contains invalid path: %q", genid.FieldMask_Paths_field_fullname, s) } // Return error if conversion to camelCase is not reversible. cc := strs.JSONCamelCase(s) if s != strs.JSONSnakeCase(cc) { return errors.New("%s contains irreversible value %q", genid.FieldMask_Paths_field_fullname, s) } paths = append(paths, cc) } e.WriteString(strings.Join(paths, ",")) return nil } func (d decoder) unmarshalFieldMask(m pref.Message) error { tok, err := d.Read() if err != nil { return err } if tok.Kind() != json.String { return d.unexpectedTokenError(tok) } str := strings.TrimSpace(tok.ParsedString()) if str == "" { return nil } paths := strings.Split(str, ",") fd := m.Descriptor().Fields().ByNumber(genid.FieldMask_Paths_field_number) list := m.Mutable(fd).List() for _, s0 := range paths { s := strs.JSONSnakeCase(s0) if strings.Contains(s0, "_") || !pref.FullName(s).IsValid() { return d.newError(tok.Pos(), "%v contains invalid path: %q", genid.FieldMask_Paths_field_fullname, s0) } list.Append(pref.ValueOfString(s)) } return nil } golang-google-protobuf-1.27.1/encoding/prototext/000077500000000000000000000000001411250152500220135ustar00rootroot00000000000000golang-google-protobuf-1.27.1/encoding/prototext/decode.go000066400000000000000000000501771411250152500235770ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package prototext import ( "fmt" "unicode/utf8" "google.golang.org/protobuf/internal/encoding/messageset" "google.golang.org/protobuf/internal/encoding/text" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/internal/pragma" "google.golang.org/protobuf/internal/set" "google.golang.org/protobuf/internal/strs" "google.golang.org/protobuf/proto" pref "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" ) // Unmarshal reads the given []byte into the given proto.Message. // The provided message must be mutable (e.g., a non-nil pointer to a message). func Unmarshal(b []byte, m proto.Message) error { return UnmarshalOptions{}.Unmarshal(b, m) } // UnmarshalOptions is a configurable textproto format unmarshaler. type UnmarshalOptions struct { pragma.NoUnkeyedLiterals // AllowPartial accepts input for messages that will result in missing // required fields. If AllowPartial is false (the default), Unmarshal will // return error if there are any missing required fields. AllowPartial bool // DiscardUnknown specifies whether to ignore unknown fields when parsing. // An unknown field is any field whose field name or field number does not // resolve to any known or extension field in the message. // By default, unmarshal rejects unknown fields as an error. DiscardUnknown bool // Resolver is used for looking up types when unmarshaling // google.protobuf.Any messages or extension fields. // If nil, this defaults to using protoregistry.GlobalTypes. Resolver interface { protoregistry.MessageTypeResolver protoregistry.ExtensionTypeResolver } } // Unmarshal reads the given []byte and populates the given proto.Message // using options in the UnmarshalOptions object. // The provided message must be mutable (e.g., a non-nil pointer to a message). func (o UnmarshalOptions) Unmarshal(b []byte, m proto.Message) error { return o.unmarshal(b, m) } // unmarshal is a centralized function that all unmarshal operations go through. // For profiling purposes, avoid changing the name of this function or // introducing other code paths for unmarshal that do not go through this. func (o UnmarshalOptions) unmarshal(b []byte, m proto.Message) error { proto.Reset(m) if o.Resolver == nil { o.Resolver = protoregistry.GlobalTypes } dec := decoder{text.NewDecoder(b), o} if err := dec.unmarshalMessage(m.ProtoReflect(), false); err != nil { return err } if o.AllowPartial { return nil } return proto.CheckInitialized(m) } type decoder struct { *text.Decoder opts UnmarshalOptions } // newError returns an error object with position info. func (d decoder) newError(pos int, f string, x ...interface{}) error { line, column := d.Position(pos) head := fmt.Sprintf("(line %d:%d): ", line, column) return errors.New(head+f, x...) } // unexpectedTokenError returns a syntax error for the given unexpected token. func (d decoder) unexpectedTokenError(tok text.Token) error { return d.syntaxError(tok.Pos(), "unexpected token: %s", tok.RawString()) } // syntaxError returns a syntax error for given position. func (d decoder) syntaxError(pos int, f string, x ...interface{}) error { line, column := d.Position(pos) head := fmt.Sprintf("syntax error (line %d:%d): ", line, column) return errors.New(head+f, x...) } // unmarshalMessage unmarshals into the given protoreflect.Message. func (d decoder) unmarshalMessage(m pref.Message, checkDelims bool) error { messageDesc := m.Descriptor() if !flags.ProtoLegacy && messageset.IsMessageSet(messageDesc) { return errors.New("no support for proto1 MessageSets") } if messageDesc.FullName() == genid.Any_message_fullname { return d.unmarshalAny(m, checkDelims) } if checkDelims { tok, err := d.Read() if err != nil { return err } if tok.Kind() != text.MessageOpen { return d.unexpectedTokenError(tok) } } var seenNums set.Ints var seenOneofs set.Ints fieldDescs := messageDesc.Fields() for { // Read field name. tok, err := d.Read() if err != nil { return err } switch typ := tok.Kind(); typ { case text.Name: // Continue below. case text.EOF: if checkDelims { return text.ErrUnexpectedEOF } return nil default: if checkDelims && typ == text.MessageClose { return nil } return d.unexpectedTokenError(tok) } // Resolve the field descriptor. var name pref.Name var fd pref.FieldDescriptor var xt pref.ExtensionType var xtErr error var isFieldNumberName bool switch tok.NameKind() { case text.IdentName: name = pref.Name(tok.IdentName()) fd = fieldDescs.ByTextName(string(name)) case text.TypeName: // Handle extensions only. This code path is not for Any. xt, xtErr = d.opts.Resolver.FindExtensionByName(pref.FullName(tok.TypeName())) case text.FieldNumber: isFieldNumberName = true num := pref.FieldNumber(tok.FieldNumber()) if !num.IsValid() { return d.newError(tok.Pos(), "invalid field number: %d", num) } fd = fieldDescs.ByNumber(num) if fd == nil { xt, xtErr = d.opts.Resolver.FindExtensionByNumber(messageDesc.FullName(), num) } } if xt != nil { fd = xt.TypeDescriptor() if !messageDesc.ExtensionRanges().Has(fd.Number()) || fd.ContainingMessage().FullName() != messageDesc.FullName() { return d.newError(tok.Pos(), "message %v cannot be extended by %v", messageDesc.FullName(), fd.FullName()) } } else if xtErr != nil && xtErr != protoregistry.NotFound { return d.newError(tok.Pos(), "unable to resolve [%s]: %v", tok.RawString(), xtErr) } if flags.ProtoLegacy { if fd != nil && fd.IsWeak() && fd.Message().IsPlaceholder() { fd = nil // reset since the weak reference is not linked in } } // Handle unknown fields. if fd == nil { if d.opts.DiscardUnknown || messageDesc.ReservedNames().Has(name) { d.skipValue() continue } return d.newError(tok.Pos(), "unknown field: %v", tok.RawString()) } // Handle fields identified by field number. if isFieldNumberName { // TODO: Add an option to permit parsing field numbers. // // This requires careful thought as the MarshalOptions.EmitUnknown // option allows formatting unknown fields as the field number and the // best-effort textual representation of the field value. In that case, // it may not be possible to unmarshal the value from a parser that does // have information about the unknown field. return d.newError(tok.Pos(), "cannot specify field by number: %v", tok.RawString()) } switch { case fd.IsList(): kind := fd.Kind() if kind != pref.MessageKind && kind != pref.GroupKind && !tok.HasSeparator() { return d.syntaxError(tok.Pos(), "missing field separator :") } list := m.Mutable(fd).List() if err := d.unmarshalList(fd, list); err != nil { return err } case fd.IsMap(): mmap := m.Mutable(fd).Map() if err := d.unmarshalMap(fd, mmap); err != nil { return err } default: kind := fd.Kind() if kind != pref.MessageKind && kind != pref.GroupKind && !tok.HasSeparator() { return d.syntaxError(tok.Pos(), "missing field separator :") } // If field is a oneof, check if it has already been set. if od := fd.ContainingOneof(); od != nil { idx := uint64(od.Index()) if seenOneofs.Has(idx) { return d.newError(tok.Pos(), "error parsing %q, oneof %v is already set", tok.RawString(), od.FullName()) } seenOneofs.Set(idx) } num := uint64(fd.Number()) if seenNums.Has(num) { return d.newError(tok.Pos(), "non-repeated field %q is repeated", tok.RawString()) } if err := d.unmarshalSingular(fd, m); err != nil { return err } seenNums.Set(num) } } return nil } // unmarshalSingular unmarshals a non-repeated field value specified by the // given FieldDescriptor. func (d decoder) unmarshalSingular(fd pref.FieldDescriptor, m pref.Message) error { var val pref.Value var err error switch fd.Kind() { case pref.MessageKind, pref.GroupKind: val = m.NewField(fd) err = d.unmarshalMessage(val.Message(), true) default: val, err = d.unmarshalScalar(fd) } if err == nil { m.Set(fd, val) } return err } // unmarshalScalar unmarshals a scalar/enum protoreflect.Value specified by the // given FieldDescriptor. func (d decoder) unmarshalScalar(fd pref.FieldDescriptor) (pref.Value, error) { tok, err := d.Read() if err != nil { return pref.Value{}, err } if tok.Kind() != text.Scalar { return pref.Value{}, d.unexpectedTokenError(tok) } kind := fd.Kind() switch kind { case pref.BoolKind: if b, ok := tok.Bool(); ok { return pref.ValueOfBool(b), nil } case pref.Int32Kind, pref.Sint32Kind, pref.Sfixed32Kind: if n, ok := tok.Int32(); ok { return pref.ValueOfInt32(n), nil } case pref.Int64Kind, pref.Sint64Kind, pref.Sfixed64Kind: if n, ok := tok.Int64(); ok { return pref.ValueOfInt64(n), nil } case pref.Uint32Kind, pref.Fixed32Kind: if n, ok := tok.Uint32(); ok { return pref.ValueOfUint32(n), nil } case pref.Uint64Kind, pref.Fixed64Kind: if n, ok := tok.Uint64(); ok { return pref.ValueOfUint64(n), nil } case pref.FloatKind: if n, ok := tok.Float32(); ok { return pref.ValueOfFloat32(n), nil } case pref.DoubleKind: if n, ok := tok.Float64(); ok { return pref.ValueOfFloat64(n), nil } case pref.StringKind: if s, ok := tok.String(); ok { if strs.EnforceUTF8(fd) && !utf8.ValidString(s) { return pref.Value{}, d.newError(tok.Pos(), "contains invalid UTF-8") } return pref.ValueOfString(s), nil } case pref.BytesKind: if b, ok := tok.String(); ok { return pref.ValueOfBytes([]byte(b)), nil } case pref.EnumKind: if lit, ok := tok.Enum(); ok { // Lookup EnumNumber based on name. if enumVal := fd.Enum().Values().ByName(pref.Name(lit)); enumVal != nil { return pref.ValueOfEnum(enumVal.Number()), nil } } if num, ok := tok.Int32(); ok { return pref.ValueOfEnum(pref.EnumNumber(num)), nil } default: panic(fmt.Sprintf("invalid scalar kind %v", kind)) } return pref.Value{}, d.newError(tok.Pos(), "invalid value for %v type: %v", kind, tok.RawString()) } // unmarshalList unmarshals into given protoreflect.List. A list value can // either be in [] syntax or simply just a single scalar/message value. func (d decoder) unmarshalList(fd pref.FieldDescriptor, list pref.List) error { tok, err := d.Peek() if err != nil { return err } switch fd.Kind() { case pref.MessageKind, pref.GroupKind: switch tok.Kind() { case text.ListOpen: d.Read() for { tok, err := d.Peek() if err != nil { return err } switch tok.Kind() { case text.ListClose: d.Read() return nil case text.MessageOpen: pval := list.NewElement() if err := d.unmarshalMessage(pval.Message(), true); err != nil { return err } list.Append(pval) default: return d.unexpectedTokenError(tok) } } case text.MessageOpen: pval := list.NewElement() if err := d.unmarshalMessage(pval.Message(), true); err != nil { return err } list.Append(pval) return nil } default: switch tok.Kind() { case text.ListOpen: d.Read() for { tok, err := d.Peek() if err != nil { return err } switch tok.Kind() { case text.ListClose: d.Read() return nil case text.Scalar: pval, err := d.unmarshalScalar(fd) if err != nil { return err } list.Append(pval) default: return d.unexpectedTokenError(tok) } } case text.Scalar: pval, err := d.unmarshalScalar(fd) if err != nil { return err } list.Append(pval) return nil } } return d.unexpectedTokenError(tok) } // unmarshalMap unmarshals into given protoreflect.Map. A map value is a // textproto message containing {key: , value: }. func (d decoder) unmarshalMap(fd pref.FieldDescriptor, mmap pref.Map) error { // Determine ahead whether map entry is a scalar type or a message type in // order to call the appropriate unmarshalMapValue func inside // unmarshalMapEntry. var unmarshalMapValue func() (pref.Value, error) switch fd.MapValue().Kind() { case pref.MessageKind, pref.GroupKind: unmarshalMapValue = func() (pref.Value, error) { pval := mmap.NewValue() if err := d.unmarshalMessage(pval.Message(), true); err != nil { return pref.Value{}, err } return pval, nil } default: unmarshalMapValue = func() (pref.Value, error) { return d.unmarshalScalar(fd.MapValue()) } } tok, err := d.Read() if err != nil { return err } switch tok.Kind() { case text.MessageOpen: return d.unmarshalMapEntry(fd, mmap, unmarshalMapValue) case text.ListOpen: for { tok, err := d.Read() if err != nil { return err } switch tok.Kind() { case text.ListClose: return nil case text.MessageOpen: if err := d.unmarshalMapEntry(fd, mmap, unmarshalMapValue); err != nil { return err } default: return d.unexpectedTokenError(tok) } } default: return d.unexpectedTokenError(tok) } } // unmarshalMap unmarshals into given protoreflect.Map. A map value is a // textproto message containing {key: , value: }. func (d decoder) unmarshalMapEntry(fd pref.FieldDescriptor, mmap pref.Map, unmarshalMapValue func() (pref.Value, error)) error { var key pref.MapKey var pval pref.Value Loop: for { // Read field name. tok, err := d.Read() if err != nil { return err } switch tok.Kind() { case text.Name: if tok.NameKind() != text.IdentName { if !d.opts.DiscardUnknown { return d.newError(tok.Pos(), "unknown map entry field %q", tok.RawString()) } d.skipValue() continue Loop } // Continue below. case text.MessageClose: break Loop default: return d.unexpectedTokenError(tok) } switch name := pref.Name(tok.IdentName()); name { case genid.MapEntry_Key_field_name: if !tok.HasSeparator() { return d.syntaxError(tok.Pos(), "missing field separator :") } if key.IsValid() { return d.newError(tok.Pos(), "map entry %q cannot be repeated", name) } val, err := d.unmarshalScalar(fd.MapKey()) if err != nil { return err } key = val.MapKey() case genid.MapEntry_Value_field_name: if kind := fd.MapValue().Kind(); (kind != pref.MessageKind) && (kind != pref.GroupKind) { if !tok.HasSeparator() { return d.syntaxError(tok.Pos(), "missing field separator :") } } if pval.IsValid() { return d.newError(tok.Pos(), "map entry %q cannot be repeated", name) } pval, err = unmarshalMapValue() if err != nil { return err } default: if !d.opts.DiscardUnknown { return d.newError(tok.Pos(), "unknown map entry field %q", name) } d.skipValue() } } if !key.IsValid() { key = fd.MapKey().Default().MapKey() } if !pval.IsValid() { switch fd.MapValue().Kind() { case pref.MessageKind, pref.GroupKind: // If value field is not set for message/group types, construct an // empty one as default. pval = mmap.NewValue() default: pval = fd.MapValue().Default() } } mmap.Set(key, pval) return nil } // unmarshalAny unmarshals an Any textproto. It can either be in expanded form // or non-expanded form. func (d decoder) unmarshalAny(m pref.Message, checkDelims bool) error { var typeURL string var bValue []byte var seenTypeUrl bool var seenValue bool var isExpanded bool if checkDelims { tok, err := d.Read() if err != nil { return err } if tok.Kind() != text.MessageOpen { return d.unexpectedTokenError(tok) } } Loop: for { // Read field name. Can only have 3 possible field names, i.e. type_url, // value and type URL name inside []. tok, err := d.Read() if err != nil { return err } if typ := tok.Kind(); typ != text.Name { if checkDelims { if typ == text.MessageClose { break Loop } } else if typ == text.EOF { break Loop } return d.unexpectedTokenError(tok) } switch tok.NameKind() { case text.IdentName: // Both type_url and value fields require field separator :. if !tok.HasSeparator() { return d.syntaxError(tok.Pos(), "missing field separator :") } switch name := pref.Name(tok.IdentName()); name { case genid.Any_TypeUrl_field_name: if seenTypeUrl { return d.newError(tok.Pos(), "duplicate %v field", genid.Any_TypeUrl_field_fullname) } if isExpanded { return d.newError(tok.Pos(), "conflict with [%s] field", typeURL) } tok, err := d.Read() if err != nil { return err } var ok bool typeURL, ok = tok.String() if !ok { return d.newError(tok.Pos(), "invalid %v field value: %v", genid.Any_TypeUrl_field_fullname, tok.RawString()) } seenTypeUrl = true case genid.Any_Value_field_name: if seenValue { return d.newError(tok.Pos(), "duplicate %v field", genid.Any_Value_field_fullname) } if isExpanded { return d.newError(tok.Pos(), "conflict with [%s] field", typeURL) } tok, err := d.Read() if err != nil { return err } s, ok := tok.String() if !ok { return d.newError(tok.Pos(), "invalid %v field value: %v", genid.Any_Value_field_fullname, tok.RawString()) } bValue = []byte(s) seenValue = true default: if !d.opts.DiscardUnknown { return d.newError(tok.Pos(), "invalid field name %q in %v message", tok.RawString(), genid.Any_message_fullname) } } case text.TypeName: if isExpanded { return d.newError(tok.Pos(), "cannot have more than one type") } if seenTypeUrl { return d.newError(tok.Pos(), "conflict with type_url field") } typeURL = tok.TypeName() var err error bValue, err = d.unmarshalExpandedAny(typeURL, tok.Pos()) if err != nil { return err } isExpanded = true default: if !d.opts.DiscardUnknown { return d.newError(tok.Pos(), "invalid field name %q in %v message", tok.RawString(), genid.Any_message_fullname) } } } fds := m.Descriptor().Fields() if len(typeURL) > 0 { m.Set(fds.ByNumber(genid.Any_TypeUrl_field_number), pref.ValueOfString(typeURL)) } if len(bValue) > 0 { m.Set(fds.ByNumber(genid.Any_Value_field_number), pref.ValueOfBytes(bValue)) } return nil } func (d decoder) unmarshalExpandedAny(typeURL string, pos int) ([]byte, error) { mt, err := d.opts.Resolver.FindMessageByURL(typeURL) if err != nil { return nil, d.newError(pos, "unable to resolve message [%v]: %v", typeURL, err) } // Create new message for the embedded message type and unmarshal the value // field into it. m := mt.New() if err := d.unmarshalMessage(m, true); err != nil { return nil, err } // Serialize the embedded message and return the resulting bytes. b, err := proto.MarshalOptions{ AllowPartial: true, // Never check required fields inside an Any. Deterministic: true, }.Marshal(m.Interface()) if err != nil { return nil, d.newError(pos, "error in marshaling message into Any.value: %v", err) } return b, nil } // skipValue makes the decoder parse a field value in order to advance the read // to the next field. It relies on Read returning an error if the types are not // in valid sequence. func (d decoder) skipValue() error { tok, err := d.Read() if err != nil { return err } // Only need to continue reading for messages and lists. switch tok.Kind() { case text.MessageOpen: return d.skipMessageValue() case text.ListOpen: for { tok, err := d.Read() if err != nil { return err } switch tok.Kind() { case text.ListClose: return nil case text.MessageOpen: return d.skipMessageValue() default: // Skip items. This will not validate whether skipped values are // of the same type or not, same behavior as C++ // TextFormat::Parser::AllowUnknownField(true) version 3.8.0. } } } return nil } // skipMessageValue makes the decoder parse and skip over all fields in a // message. It assumes that the previous read type is MessageOpen. func (d decoder) skipMessageValue() error { for { tok, err := d.Read() if err != nil { return err } switch tok.Kind() { case text.MessageClose: return nil case text.Name: if err := d.skipValue(); err != nil { return err } } } } golang-google-protobuf-1.27.1/encoding/prototext/decode_test.go000066400000000000000000001214631411250152500246330ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package prototext_test import ( "math" "strings" "testing" "google.golang.org/protobuf/encoding/prototext" "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/proto" preg "google.golang.org/protobuf/reflect/protoregistry" testpb "google.golang.org/protobuf/internal/testprotos/test" weakpb "google.golang.org/protobuf/internal/testprotos/test/weak1" pb2 "google.golang.org/protobuf/internal/testprotos/textpb2" pb3 "google.golang.org/protobuf/internal/testprotos/textpb3" "google.golang.org/protobuf/types/known/anypb" ) func TestUnmarshal(t *testing.T) { tests := []struct { desc string umo prototext.UnmarshalOptions inputMessage proto.Message inputText string wantMessage proto.Message wantErr string // Expected error substring. skip bool }{{ desc: "proto2 empty message", inputMessage: &pb2.Scalars{}, wantMessage: &pb2.Scalars{}, }, { desc: "proto2 optional scalars set to zero values", inputMessage: &pb2.Scalars{}, inputText: `opt_bool: false opt_int32: 0 opt_int64: 0 opt_uint32: 0 opt_uint64: 0 opt_sint32: 0 opt_sint64: 0 opt_fixed32: 0 opt_fixed64: 0 opt_sfixed32: 0 opt_sfixed64: 0 opt_float: 0 opt_double: 0 opt_bytes: "" opt_string: "" `, wantMessage: &pb2.Scalars{ OptBool: proto.Bool(false), OptInt32: proto.Int32(0), OptInt64: proto.Int64(0), OptUint32: proto.Uint32(0), OptUint64: proto.Uint64(0), OptSint32: proto.Int32(0), OptSint64: proto.Int64(0), OptFixed32: proto.Uint32(0), OptFixed64: proto.Uint64(0), OptSfixed32: proto.Int32(0), OptSfixed64: proto.Int64(0), OptFloat: proto.Float32(0), OptDouble: proto.Float64(0), OptBytes: []byte{}, OptString: proto.String(""), }, }, { desc: "proto3 scalars set to zero values", inputMessage: &pb3.Scalars{}, inputText: `s_bool: false s_int32: 0 s_int64: 0 s_uint32: 0 s_uint64: 0 s_sint32: 0 s_sint64: 0 s_fixed32: 0 s_fixed64: 0 s_sfixed32: 0 s_sfixed64: 0 s_float: 0 s_double: 0 s_bytes: "" s_string: "" `, wantMessage: &pb3.Scalars{}, }, { desc: "proto3 optional set to zero values", inputMessage: &pb3.Proto3Optional{}, inputText: `opt_bool: false opt_int32: 0 opt_int64: 0 opt_uint32: 0 opt_uint64: 0 opt_float: 0 opt_double: 0 opt_string: "" opt_bytes: "" opt_enum: ZERO opt_message: {} `, wantMessage: &pb3.Proto3Optional{ OptBool: proto.Bool(false), OptInt32: proto.Int32(0), OptInt64: proto.Int64(0), OptUint32: proto.Uint32(0), OptUint64: proto.Uint64(0), OptFloat: proto.Float32(0), OptDouble: proto.Float64(0), OptString: proto.String(""), OptBytes: []byte{}, OptEnum: pb3.Enum_ZERO.Enum(), OptMessage: &pb3.Nested{}, }, }, { desc: "proto2 optional scalars", inputMessage: &pb2.Scalars{}, inputText: `opt_bool: true opt_int32: 255 opt_int64: 3735928559 opt_uint32: 0xff opt_uint64: 0xdeadbeef opt_sint32: -1001 opt_sint64: -0xffff opt_fixed64: 64 opt_sfixed32: -32 opt_float: 1.234 opt_double: 1.23e+100 opt_bytes: "\xe8\xb0\xb7\xe6\xad\x8c" opt_string: "谷歌" `, wantMessage: &pb2.Scalars{ OptBool: proto.Bool(true), OptInt32: proto.Int32(0xff), OptInt64: proto.Int64(0xdeadbeef), OptUint32: proto.Uint32(0xff), OptUint64: proto.Uint64(0xdeadbeef), OptSint32: proto.Int32(-1001), OptSint64: proto.Int64(-0xffff), OptFixed64: proto.Uint64(64), OptSfixed32: proto.Int32(-32), OptFloat: proto.Float32(1.234), OptDouble: proto.Float64(1.23e100), OptBytes: []byte("\xe8\xb0\xb7\xe6\xad\x8c"), OptString: proto.String("谷歌"), }, }, { desc: "case sensitive", inputMessage: &pb3.Scalars{}, inputText: `S_BOOL: true`, wantErr: "unknown field: S_BOOL", }, { desc: "proto3 scalars", inputMessage: &pb3.Scalars{}, inputText: `s_bool: true s_int32: 255 s_int64: 3735928559 s_uint32: 0xff s_uint64: 0xdeadbeef s_sint32: -1001 s_sint64: -0xffff s_fixed64: 64 s_sfixed32: -32 s_float: 1.234 s_double: 1.23e+100 s_bytes: "\xe8\xb0\xb7\xe6\xad\x8c" s_string: "谷歌" `, wantMessage: &pb3.Scalars{ SBool: true, SInt32: 0xff, SInt64: 0xdeadbeef, SUint32: 0xff, SUint64: 0xdeadbeef, SSint32: -1001, SSint64: -0xffff, SFixed64: 64, SSfixed32: -32, SFloat: 1.234, SDouble: 1.23e100, SBytes: []byte("\xe8\xb0\xb7\xe6\xad\x8c"), SString: "谷歌", }, }, { desc: "proto2 string with invalid UTF-8", inputMessage: &pb2.Scalars{}, inputText: `opt_string: "abc\xff"`, wantMessage: &pb2.Scalars{ OptString: proto.String("abc\xff"), }, }, { desc: "proto3 string with invalid UTF-8", inputMessage: &pb3.Scalars{}, inputText: `s_string: "abc\xff"`, wantErr: "(line 1:11): contains invalid UTF-8", }, { desc: "proto2 message contains unknown field", inputMessage: &pb2.Scalars{}, inputText: "unknown_field: 123", wantErr: "unknown field", }, { desc: "proto3 message contains unknown field", inputMessage: &pb3.Scalars{}, inputText: "unknown_field: 456", wantErr: "unknown field", }, { desc: "proto2 message contains discarded unknown field", umo: prototext.UnmarshalOptions{DiscardUnknown: true}, inputMessage: &pb2.Scalars{}, inputText: `unknown_field:123 1000:"hello"`, }, { desc: "proto3 message contains discarded unknown field", umo: prototext.UnmarshalOptions{DiscardUnknown: true}, inputMessage: &pb3.Scalars{}, inputText: `unknown_field:456 1000:"goodbye"`, }, { desc: "proto2 message cannot parse field number", umo: prototext.UnmarshalOptions{DiscardUnknown: true}, inputMessage: &pb2.Scalars{}, inputText: `13:"hello"`, wantErr: "cannot specify field by number", }, { desc: "unknown list field", umo: prototext.UnmarshalOptions{DiscardUnknown: true}, inputMessage: &pb2.Scalars{}, inputText: `unknown_field: { strings: [ "" ] }`, }, { desc: "unknown list of list field", umo: prototext.UnmarshalOptions{DiscardUnknown: true}, inputMessage: &pb2.Scalars{}, inputText: `unknown_field: { strings: [ [ ] ] }`, wantErr: `(line 1:29): invalid scalar value: [`, }, { desc: "proto3 message cannot parse field number", umo: prototext.UnmarshalOptions{DiscardUnknown: true}, inputMessage: &pb3.Scalars{}, inputText: `13:"goodbye"`, wantErr: "cannot specify field by number", }, { desc: "proto2 numeric key field", inputMessage: &pb2.Scalars{}, inputText: "1: true", wantErr: "cannot specify field by number", }, { desc: "proto3 numeric key field", inputMessage: &pb3.Scalars{}, inputText: "1: true", wantErr: "cannot specify field by number", }, { desc: "invalid bool value", inputMessage: &pb3.Scalars{}, inputText: "s_bool: 123", wantErr: "invalid value for bool", }, { desc: "invalid int32 value", inputMessage: &pb3.Scalars{}, inputText: "s_int32: not_a_num", wantErr: "invalid value for int32", }, { desc: "invalid int64 value", inputMessage: &pb3.Scalars{}, inputText: "s_int64: 'not a num either'", wantErr: "invalid value for int64", }, { desc: "invalid uint32 value", inputMessage: &pb3.Scalars{}, inputText: "s_fixed32: -42", wantErr: "invalid value for fixed32", }, { desc: "invalid uint64 value", inputMessage: &pb3.Scalars{}, inputText: "s_uint64: -47", wantErr: "invalid value for uint64", }, { desc: "invalid sint32 value", inputMessage: &pb3.Scalars{}, inputText: "s_sint32: '42'", wantErr: "invalid value for sint32", }, { desc: "invalid sint64 value", inputMessage: &pb3.Scalars{}, inputText: "s_sint64: '-47'", wantErr: "invalid value for sint64", }, { desc: "invalid fixed32 value", inputMessage: &pb3.Scalars{}, inputText: "s_fixed32: -42", wantErr: "invalid value for fixed32", }, { desc: "invalid fixed64 value", inputMessage: &pb3.Scalars{}, inputText: "s_fixed64: -42", wantErr: "invalid value for fixed64", }, { desc: "invalid sfixed32 value", inputMessage: &pb3.Scalars{}, inputText: "s_sfixed32: 'not valid'", wantErr: "invalid value for sfixed32", }, { desc: "invalid sfixed64 value", inputMessage: &pb3.Scalars{}, inputText: "s_sfixed64: bad", wantErr: "invalid value for sfixed64", }, { desc: "conformance: FloatFieldMaxValue", inputMessage: &pb2.Scalars{}, inputText: `opt_float: 3.4028235e+38`, wantMessage: &pb2.Scalars{ OptFloat: proto.Float32(3.40282347e+38), }, }, { desc: "conformance: FloatFieldLargerThanUint64", inputMessage: &pb2.Scalars{}, inputText: `opt_float: 18446744073709551616`, wantMessage: &pb2.Scalars{ OptFloat: proto.Float32(1.84467441e+19), }, }, { desc: "conformance: FloatFieldTooLarge", inputMessage: &pb2.Scalars{}, inputText: `opt_float: 3.4028235e+39`, wantMessage: &pb2.Scalars{ OptFloat: proto.Float32(float32(math.Inf(1))), }, }, { desc: "invalid string value", inputMessage: &pb3.Scalars{}, inputText: "s_string: invalid_string", wantErr: "invalid value for string type", }, { desc: "proto2 bytes set to empty string", inputMessage: &pb2.Scalars{}, inputText: "opt_bytes: ''", wantMessage: &pb2.Scalars{ OptBytes: []byte(""), }, }, { desc: "proto3 bytes set to empty string", inputMessage: &pb3.Scalars{}, inputText: "s_bytes: ''", wantMessage: &pb3.Scalars{}, }, { desc: "proto2 duplicate singular field", inputMessage: &pb2.Scalars{}, inputText: ` opt_bool: true opt_bool: false `, wantErr: `(line 3:1): non-repeated field "opt_bool" is repeated`, }, { desc: "proto2 more duplicate singular field", inputMessage: &pb2.Scalars{}, inputText: ` opt_bool: true opt_string: "hello" opt_bool: false `, wantErr: `(line 4:1): non-repeated field "opt_bool" is repeated`, }, { desc: "proto2 invalid singular field", inputMessage: &pb2.Scalars{}, inputText: ` opt_bool: [true, false] `, wantErr: "(line 2:11): unexpected token: [", }, { desc: "proto3 duplicate singular field", inputMessage: &pb3.Scalars{}, inputText: ` s_bool: false s_bool: true `, wantErr: `non-repeated field "s_bool" is repeated`, }, { desc: "proto3 more duplicate singular field", inputMessage: &pb3.Scalars{}, inputText: ` s_bool: false s_string: "" s_bool: true `, wantErr: `non-repeated field "s_bool" is repeated`, }, { desc: "proto2 enum", inputMessage: &pb2.Enums{}, inputText: ` opt_enum: ONE opt_nested_enum: UNO `, wantMessage: &pb2.Enums{ OptEnum: pb2.Enum_ONE.Enum(), OptNestedEnum: pb2.Enums_UNO.Enum(), }, }, { desc: "proto2 enum set to numeric values", inputMessage: &pb2.Enums{}, inputText: ` opt_enum: 2 opt_nested_enum: 2 `, wantMessage: &pb2.Enums{ OptEnum: pb2.Enum_TWO.Enum(), OptNestedEnum: pb2.Enums_DOS.Enum(), }, }, { desc: "proto2 enum set to unnamed numeric values", inputMessage: &pb2.Enums{}, inputText: ` opt_enum: 101 opt_nested_enum: -101 `, wantMessage: &pb2.Enums{ OptEnum: pb2.Enum(101).Enum(), OptNestedEnum: pb2.Enums_NestedEnum(-101).Enum(), }, }, { desc: "proto2 enum set to invalid named", inputMessage: &pb2.Enums{}, inputText: ` opt_enum: UNNAMED opt_nested_enum: UNNAMED_TOO `, wantErr: "invalid value for enum type: UNNAMED", }, { desc: "proto3 enum name value", inputMessage: &pb3.Enums{}, inputText: ` s_enum: ONE s_nested_enum: DIEZ `, wantMessage: &pb3.Enums{ SEnum: pb3.Enum_ONE, SNestedEnum: pb3.Enums_DIEZ, }, }, { desc: "proto3 enum numeric value", inputMessage: &pb3.Enums{}, inputText: ` s_enum: 2 s_nested_enum: 2 `, wantMessage: &pb3.Enums{ SEnum: pb3.Enum_TWO, SNestedEnum: pb3.Enums_DOS, }, }, { desc: "proto3 enum unnamed numeric value", inputMessage: &pb3.Enums{}, inputText: ` s_enum: 0x7fffffff s_nested_enum: -0x80000000 `, wantMessage: &pb3.Enums{ SEnum: 0x7fffffff, SNestedEnum: -0x80000000, }, }, { desc: "proto2 nested empty messages", inputMessage: &pb2.Nests{}, inputText: ` opt_nested: {} OptGroup: {} `, wantMessage: &pb2.Nests{ OptNested: &pb2.Nested{}, Optgroup: &pb2.Nests_OptGroup{}, }, }, { desc: "message fields with no field separator", inputMessage: &pb2.Nests{}, inputText: ` opt_nested {} OptGroup {} `, wantMessage: &pb2.Nests{ OptNested: &pb2.Nested{}, Optgroup: &pb2.Nests_OptGroup{}, }, }, { desc: "group field name", inputMessage: &pb2.Nests{}, inputText: `optgroup: {}`, wantErr: "unknown field: optgroup", }, { desc: "proto2 nested messages", inputMessage: &pb2.Nests{}, inputText: ` opt_nested: { opt_string: "nested message" opt_nested: { opt_string: "another nested message" } } `, wantMessage: &pb2.Nests{ OptNested: &pb2.Nested{ OptString: proto.String("nested message"), OptNested: &pb2.Nested{ OptString: proto.String("another nested message"), }, }, }, }, { desc: "proto3 nested empty message", inputMessage: &pb3.Nests{}, inputText: "s_nested: {}", wantMessage: &pb3.Nests{ SNested: &pb3.Nested{}, }, }, { desc: "proto3 nested message", inputMessage: &pb3.Nests{}, inputText: ` s_nested: { s_string: "nested message" s_nested: { s_string: "another nested message" } } `, wantMessage: &pb3.Nests{ SNested: &pb3.Nested{ SString: "nested message", SNested: &pb3.Nested{ SString: "another nested message", }, }, }, }, { desc: "proto3 nested message contains invalid UTF-8", inputMessage: &pb3.Nests{}, inputText: `s_nested: { s_string: "abc\xff" } `, wantErr: "contains invalid UTF-8", }, { desc: "oneof set to empty string", inputMessage: &pb3.Oneofs{}, inputText: "oneof_string: ''", wantMessage: &pb3.Oneofs{ Union: &pb3.Oneofs_OneofString{}, }, }, { desc: "oneof set to string", inputMessage: &pb3.Oneofs{}, inputText: "oneof_string: 'hello'", wantMessage: &pb3.Oneofs{ Union: &pb3.Oneofs_OneofString{ OneofString: "hello", }, }, }, { desc: "oneof set to enum", inputMessage: &pb3.Oneofs{}, inputText: "oneof_enum: TEN", wantMessage: &pb3.Oneofs{ Union: &pb3.Oneofs_OneofEnum{ OneofEnum: pb3.Enum_TEN, }, }, }, { desc: "oneof set to empty message", inputMessage: &pb3.Oneofs{}, inputText: "oneof_nested: {}", wantMessage: &pb3.Oneofs{ Union: &pb3.Oneofs_OneofNested{ OneofNested: &pb3.Nested{}, }, }, }, { desc: "oneof set to message", inputMessage: &pb3.Oneofs{}, inputText: ` oneof_nested: { s_string: "nested message" } `, wantMessage: &pb3.Oneofs{ Union: &pb3.Oneofs_OneofNested{ OneofNested: &pb3.Nested{ SString: "nested message", }, }, }, }, { desc: "oneof set to more than one field", inputMessage: &pb3.Oneofs{}, inputText: ` oneof_enum: ZERO oneof_string: "hello" `, wantErr: `error parsing "oneof_string", oneof pb3.Oneofs.union is already set`, }, { desc: "repeated scalar using same field name", inputMessage: &pb2.Repeats{}, inputText: ` rpt_string: "a" rpt_string: "b" rpt_int32: 0xff rpt_float: 1.23 rpt_bytes: "bytes" `, wantMessage: &pb2.Repeats{ RptString: []string{"a", "b"}, RptInt32: []int32{0xff}, RptFloat: []float32{1.23}, RptBytes: [][]byte{[]byte("bytes")}, }, }, { desc: "repeated using mix of [] and repeated field name", inputMessage: &pb2.Repeats{}, inputText: ` rpt_string: "a" rpt_bool: true rpt_string: ["x", "y"] rpt_bool: [ false, true ] rpt_string: "b" `, wantMessage: &pb2.Repeats{ RptString: []string{"a", "x", "y", "b"}, RptBool: []bool{true, false, true}, }, }, { desc: "repeated proto2 contains invalid UTF-8", inputMessage: &pb2.Repeats{}, inputText: `rpt_string: "abc\xff"`, wantMessage: &pb2.Repeats{ RptString: []string{"abc\xff"}, }, }, { desc: "repeated proto3 contains invalid UTF-8", inputMessage: &pb3.Repeats{}, inputText: `rpt_string: "abc\xff"`, wantErr: "contains invalid UTF-8", }, { desc: "repeated enums", inputMessage: &pb2.Enums{}, inputText: ` rpt_enum: TEN rpt_enum: 1 rpt_nested_enum: [DOS, 2] rpt_enum: 42 rpt_nested_enum: -47 `, wantMessage: &pb2.Enums{ RptEnum: []pb2.Enum{pb2.Enum_TEN, pb2.Enum_ONE, 42}, RptNestedEnum: []pb2.Enums_NestedEnum{pb2.Enums_DOS, pb2.Enums_DOS, -47}, }, }, { desc: "repeated nested messages", inputMessage: &pb2.Nests{}, inputText: ` rpt_nested: { opt_string: "repeat nested one" } rpt_nested: { opt_string: "repeat nested two" opt_nested: { opt_string: "inside repeat nested two" } } rpt_nested: {} `, wantMessage: &pb2.Nests{ RptNested: []*pb2.Nested{ { OptString: proto.String("repeat nested one"), }, { OptString: proto.String("repeat nested two"), OptNested: &pb2.Nested{ OptString: proto.String("inside repeat nested two"), }, }, {}, }, }, }, { desc: "repeated group fields", inputMessage: &pb2.Nests{}, inputText: ` RptGroup: { rpt_string: "hello" rpt_string: "world" } RptGroup: {} `, wantMessage: &pb2.Nests{ Rptgroup: []*pb2.Nests_RptGroup{ { RptString: []string{"hello", "world"}, }, {}, }, }, }, { desc: "repeated message fields without field separator", inputMessage: &pb2.Nests{}, inputText: ` rpt_nested { opt_string: "repeat nested one" } rpt_nested: [ { opt_string: "repeat nested two" }, {} ] `, wantMessage: &pb2.Nests{ RptNested: []*pb2.Nested{ { OptString: proto.String("repeat nested one"), }, { OptString: proto.String("repeat nested two"), }, {}, }, }, }, { desc: "bools", inputMessage: &pb2.Repeats{}, inputText: ` rpt_bool: [ True, true, t, 1, False, false, f, 0 ] `, wantMessage: &pb2.Repeats{ RptBool: []bool{true, true, true, true, false, false, false, false}, }, }, { desc: "special floats and doubles", inputMessage: &pb2.Repeats{}, inputText: ` rpt_float: [ inf, Inf, infinity, InFiniTy, -inf, -inF, -infinitY, -InfinitY, nan, NaN, Nan ], rpt_double: [ inf, Inf, infinity, InFiniTy, -inf, -inF, -infinitY, -InfinitY, nan, NaN, Nan ], `, wantMessage: &pb2.Repeats{ RptFloat: []float32{ float32(math.Inf(1)), float32(math.Inf(1)), float32(math.Inf(1)), float32(math.Inf(1)), float32(math.Inf(-1)), float32(math.Inf(-1)), float32(math.Inf(-1)), float32(math.Inf(-1)), float32(math.NaN()), float32(math.NaN()), float32(math.NaN()), }, RptDouble: []float64{ math.Inf(1), math.Inf(1), math.Inf(1), math.Inf(1), math.Inf(-1), math.Inf(-1), math.Inf(-1), math.Inf(-1), math.NaN(), math.NaN(), math.NaN(), }, }, }, { desc: "map fields 1", inputMessage: &pb3.Maps{}, inputText: ` int32_to_str: { key: -101 value: "-101" } int32_to_str { key: 0 value: "zero" } bool_to_uint32: { key: false value: 101 } int32_to_str: { key: 255 value: "0xff" } bool_to_uint32 { key: true value: 42 } `, wantMessage: &pb3.Maps{ Int32ToStr: map[int32]string{ -101: "-101", 0xff: "0xff", 0: "zero", }, BoolToUint32: map[bool]uint32{ true: 42, false: 101, }, }, }, { desc: "map fields 2", inputMessage: &pb3.Maps{}, inputText: ` uint64_to_enum: { key: 1 value: ONE } uint64_to_enum: { key: 2 value: 2 } uint64_to_enum: { key: 10 value: 101 } `, wantMessage: &pb3.Maps{ Uint64ToEnum: map[uint64]pb3.Enum{ 1: pb3.Enum_ONE, 2: pb3.Enum_TWO, 10: 101, }, }, }, { desc: "map fields 3", inputMessage: &pb3.Maps{}, inputText: ` str_to_nested: { key: "nested_one" value { s_string: "nested in a map" } } `, wantMessage: &pb3.Maps{ StrToNested: map[string]*pb3.Nested{ "nested_one": &pb3.Nested{ SString: "nested in a map", }, }, }, }, { desc: "map fields 4", inputMessage: &pb3.Maps{}, inputText: ` str_to_oneofs: { key: "nested" value: { oneof_nested: { s_string: "nested oneof in map field value" } } } str_to_oneofs: { key: "string" value: { oneof_string: "hello" } } `, wantMessage: &pb3.Maps{ StrToOneofs: map[string]*pb3.Oneofs{ "string": &pb3.Oneofs{ Union: &pb3.Oneofs_OneofString{ OneofString: "hello", }, }, "nested": &pb3.Oneofs{ Union: &pb3.Oneofs_OneofNested{ OneofNested: &pb3.Nested{ SString: "nested oneof in map field value", }, }, }, }, }, }, { desc: "map contains duplicate keys", inputMessage: &pb3.Maps{}, inputText: ` int32_to_str: { key: 0 value: "cero" } int32_to_str: { key: 0 value: "zero" } `, wantMessage: &pb3.Maps{ Int32ToStr: map[int32]string{ 0: "zero", }, }, }, { desc: "map contains duplicate key fields", inputMessage: &pb3.Maps{}, inputText: ` int32_to_str: { key: 0 key: 1 value: "cero" } `, wantErr: `map entry "key" cannot be repeated`, }, { desc: "map contains duplicate value fields", inputMessage: &pb3.Maps{}, inputText: ` int32_to_str: { key: 1 value: "cero" value: "uno" } `, wantErr: `map entry "value" cannot be repeated`, }, { desc: "map contains missing key", inputMessage: &pb3.Maps{}, inputText: ` int32_to_str: { value: "zero" } bool_to_uint32: { value: 47 } str_to_nested: { value: {} } `, wantMessage: &pb3.Maps{ Int32ToStr: map[int32]string{ 0: "zero", }, BoolToUint32: map[bool]uint32{ false: 47, }, StrToNested: map[string]*pb3.Nested{ "": {}, }, }, }, { desc: "map contains missing value", inputMessage: &pb3.Maps{}, inputText: ` int32_to_str: { key: 100 } bool_to_uint32: { key: true } uint64_to_enum: { key: 101 } str_to_nested: { key: "hello" } `, wantMessage: &pb3.Maps{ Int32ToStr: map[int32]string{ 100: "", }, BoolToUint32: map[bool]uint32{ true: 0, }, Uint64ToEnum: map[uint64]pb3.Enum{ 101: pb3.Enum_ZERO, }, StrToNested: map[string]*pb3.Nested{ "hello": {}, }, }, }, { desc: "map contains missing key and value", inputMessage: &pb3.Maps{}, inputText: ` int32_to_str: {} bool_to_uint32: {} uint64_to_enum: {} str_to_nested: {} `, wantMessage: &pb3.Maps{ Int32ToStr: map[int32]string{ 0: "", }, BoolToUint32: map[bool]uint32{ false: 0, }, Uint64ToEnum: map[uint64]pb3.Enum{ 0: pb3.Enum_ZERO, }, StrToNested: map[string]*pb3.Nested{ "": {}, }, }, }, { desc: "map contains overriding entries", inputMessage: &pb3.Maps{}, inputText: ` int32_to_str: { key: 0 } int32_to_str: { value: "empty" } int32_to_str: {} `, wantMessage: &pb3.Maps{ Int32ToStr: map[int32]string{ 0: "", }, }, }, { desc: "proto2 map field value contains invalid UTF-8", inputMessage: &pb2.Maps{}, inputText: `int32_to_str: { key: 101 value: "abc\xff" } `, wantMessage: &pb2.Maps{ Int32ToStr: map[int32]string{101: "abc\xff"}, }, }, { desc: "proto2 map field key contains invalid UTF-8", inputMessage: &pb2.Maps{}, inputText: `str_to_nested: { key: "abc\xff" value: {} } `, wantMessage: &pb2.Maps{ StrToNested: map[string]*pb2.Nested{"abc\xff": {}}, }, }, { desc: "proto3 map field value contains invalid UTF-8", inputMessage: &pb3.Maps{}, inputText: `int32_to_str: { key: 101 value: "abc\xff" } `, wantErr: "contains invalid UTF-8", }, { desc: "proto3 map field key contains invalid UTF-8", inputMessage: &pb3.Maps{}, inputText: `str_to_nested: { key: "abc\xff" value: {} } `, wantErr: "contains invalid UTF-8", }, { desc: "map contains unknown field", inputMessage: &pb3.Maps{}, inputText: ` int32_to_str: { key: 0 value: "cero" unknown: "bad" } `, wantErr: `(line 5:3): unknown map entry field "unknown"`, }, { desc: "map contains extension-like key field", inputMessage: &pb3.Maps{}, inputText: ` int32_to_str: { [key]: 10 value: "ten" } `, wantErr: `unknown map entry field "[key]"`, }, { desc: "map contains invalid key", inputMessage: &pb3.Maps{}, inputText: ` int32_to_str: { key: "invalid" value: "cero" } `, wantErr: "(line 3:8): invalid value for int32 type", }, { desc: "map contains invalid value", inputMessage: &pb3.Maps{}, inputText: ` int32_to_str: { key: 100 value: 101 } `, wantErr: "(line 4:10): invalid value for string type", }, { desc: "map contains invalid message value", inputMessage: &pb3.Maps{}, inputText: ` str_to_nested: { key: "one" value: 1 } `, wantErr: "syntax error (line 4:10): unexpected token: 1", }, { desc: "map using mix of [] and repeated", inputMessage: &pb3.Maps{}, inputText: ` int32_to_str: { key: 1 value: "one" } int32_to_str: [ { key: 2 value: "not this" }, { }, { key: 3 value: "three" } ] int32_to_str: { key: 2 value: "two" } `, wantMessage: &pb3.Maps{ Int32ToStr: map[int32]string{ 0: "", 1: "one", 2: "two", 3: "three", }, }, }, { desc: "required fields not set", inputMessage: &pb2.Requireds{}, wantErr: "required field", }, { desc: "required field set", inputMessage: &pb2.PartialRequired{}, inputText: "req_string: 'this is required'", wantMessage: &pb2.PartialRequired{ ReqString: proto.String("this is required"), }, }, { desc: "required fields partially set", inputMessage: &pb2.Requireds{}, inputText: ` req_bool: false req_sfixed64: 3203386110 req_string: "hello" req_enum: ONE `, wantMessage: &pb2.Requireds{ ReqBool: proto.Bool(false), ReqSfixed64: proto.Int64(0xbeefcafe), ReqString: proto.String("hello"), ReqEnum: pb2.Enum_ONE.Enum(), }, wantErr: "required field", }, { desc: "required fields partially set with AllowPartial", umo: prototext.UnmarshalOptions{AllowPartial: true}, inputMessage: &pb2.Requireds{}, inputText: ` req_bool: false req_sfixed64: 3203386110 req_string: "hello" req_enum: ONE `, wantMessage: &pb2.Requireds{ ReqBool: proto.Bool(false), ReqSfixed64: proto.Int64(0xbeefcafe), ReqString: proto.String("hello"), ReqEnum: pb2.Enum_ONE.Enum(), }, }, { desc: "required fields all set", inputMessage: &pb2.Requireds{}, inputText: ` req_bool: false req_sfixed64: 0 req_double: 0 req_string: "" req_enum: ONE req_nested: {} `, wantMessage: &pb2.Requireds{ ReqBool: proto.Bool(false), ReqSfixed64: proto.Int64(0), ReqDouble: proto.Float64(0), ReqString: proto.String(""), ReqEnum: pb2.Enum_ONE.Enum(), ReqNested: &pb2.Nested{}, }, }, { desc: "indirect required field", inputMessage: &pb2.IndirectRequired{}, inputText: "opt_nested: {}", wantMessage: &pb2.IndirectRequired{ OptNested: &pb2.NestedWithRequired{}, }, wantErr: "required field", }, { desc: "indirect required field with AllowPartial", umo: prototext.UnmarshalOptions{AllowPartial: true}, inputMessage: &pb2.IndirectRequired{}, inputText: "opt_nested: {}", wantMessage: &pb2.IndirectRequired{ OptNested: &pb2.NestedWithRequired{}, }, }, { desc: "indirect required field in repeated", inputMessage: &pb2.IndirectRequired{}, inputText: ` rpt_nested: { req_string: "one" } rpt_nested: {} `, wantMessage: &pb2.IndirectRequired{ RptNested: []*pb2.NestedWithRequired{ { ReqString: proto.String("one"), }, {}, }, }, wantErr: "required field", }, { desc: "indirect required field in repeated with AllowPartial", umo: prototext.UnmarshalOptions{AllowPartial: true}, inputMessage: &pb2.IndirectRequired{}, inputText: ` rpt_nested: { req_string: "one" } rpt_nested: {} `, wantMessage: &pb2.IndirectRequired{ RptNested: []*pb2.NestedWithRequired{ { ReqString: proto.String("one"), }, {}, }, }, }, { desc: "indirect required field in map", inputMessage: &pb2.IndirectRequired{}, inputText: ` str_to_nested: { key: "missing" } str_to_nested: { key: "contains" value: { req_string: "here" } } `, wantMessage: &pb2.IndirectRequired{ StrToNested: map[string]*pb2.NestedWithRequired{ "missing": &pb2.NestedWithRequired{}, "contains": &pb2.NestedWithRequired{ ReqString: proto.String("here"), }, }, }, wantErr: "required field", }, { desc: "indirect required field in map with AllowPartial", umo: prototext.UnmarshalOptions{AllowPartial: true}, inputMessage: &pb2.IndirectRequired{}, inputText: ` str_to_nested: { key: "missing" } str_to_nested: { key: "contains" value: { req_string: "here" } } `, wantMessage: &pb2.IndirectRequired{ StrToNested: map[string]*pb2.NestedWithRequired{ "missing": &pb2.NestedWithRequired{}, "contains": &pb2.NestedWithRequired{ ReqString: proto.String("here"), }, }, }, }, { desc: "indirect required field in oneof", inputMessage: &pb2.IndirectRequired{}, inputText: `oneof_nested: {} `, wantMessage: &pb2.IndirectRequired{ Union: &pb2.IndirectRequired_OneofNested{ OneofNested: &pb2.NestedWithRequired{}, }, }, wantErr: "required field", }, { desc: "indirect required field in oneof with AllowPartial", umo: prototext.UnmarshalOptions{AllowPartial: true}, inputMessage: &pb2.IndirectRequired{}, inputText: `oneof_nested: {} `, wantMessage: &pb2.IndirectRequired{ Union: &pb2.IndirectRequired_OneofNested{ OneofNested: &pb2.NestedWithRequired{}, }, }, }, { desc: "ignore reserved field", inputMessage: &pb2.Nests{}, inputText: "reserved_field: 'ignore this'", wantMessage: &pb2.Nests{}, }, { desc: "extensions of non-repeated fields", inputMessage: &pb2.Extensions{}, inputText: `opt_string: "non-extension field" [pb2.opt_ext_bool]: true opt_bool: true [pb2.opt_ext_nested]: { opt_string: "nested in an extension" opt_nested: { opt_string: "another nested in an extension" } } [pb2.opt_ext_string]: "extension field" opt_int32: 42 [pb2.opt_ext_enum]: TEN `, wantMessage: func() proto.Message { m := &pb2.Extensions{ OptString: proto.String("non-extension field"), OptBool: proto.Bool(true), OptInt32: proto.Int32(42), } proto.SetExtension(m, pb2.E_OptExtBool, true) proto.SetExtension(m, pb2.E_OptExtString, "extension field") proto.SetExtension(m, pb2.E_OptExtEnum, pb2.Enum_TEN) proto.SetExtension(m, pb2.E_OptExtNested, &pb2.Nested{ OptString: proto.String("nested in an extension"), OptNested: &pb2.Nested{ OptString: proto.String("another nested in an extension"), }, }) return m }(), }, { desc: "extension field contains invalid UTF-8", inputMessage: &pb2.Extensions{}, inputText: `[pb2.opt_ext_string]: "abc\xff"`, wantMessage: func() proto.Message { m := &pb2.Extensions{} proto.SetExtension(m, pb2.E_OptExtString, "abc\xff") return m }(), }, { desc: "extensions of repeated fields", inputMessage: &pb2.Extensions{}, inputText: `[pb2.rpt_ext_enum]: TEN [pb2.rpt_ext_enum]: 101 [pb2.rpt_ext_fixed32]: 42 [pb2.rpt_ext_enum]: ONE [pb2.rpt_ext_nested]: { opt_string: "one" } [pb2.rpt_ext_nested]: { opt_string: "two" } [pb2.rpt_ext_fixed32]: 47 [pb2.rpt_ext_nested]: { opt_string: "three" } `, wantMessage: func() proto.Message { m := &pb2.Extensions{} proto.SetExtension(m, pb2.E_RptExtEnum, []pb2.Enum{pb2.Enum_TEN, 101, pb2.Enum_ONE}) proto.SetExtension(m, pb2.E_RptExtFixed32, []uint32{42, 47}) proto.SetExtension(m, pb2.E_RptExtNested, []*pb2.Nested{ &pb2.Nested{OptString: proto.String("one")}, &pb2.Nested{OptString: proto.String("two")}, &pb2.Nested{OptString: proto.String("three")}, }) return m }(), }, { desc: "extensions of non-repeated fields in another message", inputMessage: &pb2.Extensions{}, inputText: `[pb2.ExtensionsContainer.opt_ext_bool]: true [pb2.ExtensionsContainer.opt_ext_enum]: TEN [pb2.ExtensionsContainer.opt_ext_nested]: { opt_string: "nested in an extension" opt_nested: { opt_string: "another nested in an extension" } } [pb2.ExtensionsContainer.opt_ext_string]: "extension field" `, wantMessage: func() proto.Message { m := &pb2.Extensions{} proto.SetExtension(m, pb2.E_ExtensionsContainer_OptExtBool, true) proto.SetExtension(m, pb2.E_ExtensionsContainer_OptExtString, "extension field") proto.SetExtension(m, pb2.E_ExtensionsContainer_OptExtEnum, pb2.Enum_TEN) proto.SetExtension(m, pb2.E_ExtensionsContainer_OptExtNested, &pb2.Nested{ OptString: proto.String("nested in an extension"), OptNested: &pb2.Nested{ OptString: proto.String("another nested in an extension"), }, }) return m }(), }, { desc: "extensions of repeated fields in another message", inputMessage: &pb2.Extensions{}, inputText: `opt_string: "non-extension field" opt_bool: true opt_int32: 42 [pb2.ExtensionsContainer.rpt_ext_nested]: { opt_string: "one" } [pb2.ExtensionsContainer.rpt_ext_enum]: TEN [pb2.ExtensionsContainer.rpt_ext_nested]: { opt_string: "two" } [pb2.ExtensionsContainer.rpt_ext_enum]: 101 [pb2.ExtensionsContainer.rpt_ext_string]: "hello" [pb2.ExtensionsContainer.rpt_ext_enum]: ONE [pb2.ExtensionsContainer.rpt_ext_nested]: { opt_string: "three" } [pb2.ExtensionsContainer.rpt_ext_string]: "world" `, wantMessage: func() proto.Message { m := &pb2.Extensions{ OptString: proto.String("non-extension field"), OptBool: proto.Bool(true), OptInt32: proto.Int32(42), } proto.SetExtension(m, pb2.E_ExtensionsContainer_RptExtEnum, []pb2.Enum{pb2.Enum_TEN, 101, pb2.Enum_ONE}) proto.SetExtension(m, pb2.E_ExtensionsContainer_RptExtString, []string{"hello", "world"}) proto.SetExtension(m, pb2.E_ExtensionsContainer_RptExtNested, []*pb2.Nested{ &pb2.Nested{OptString: proto.String("one")}, &pb2.Nested{OptString: proto.String("two")}, &pb2.Nested{OptString: proto.String("three")}, }) return m }(), }, { desc: "invalid extension field name", inputMessage: &pb2.Extensions{}, inputText: "[pb2.invalid_message_field]: true", wantErr: "unknown field", }, { desc: "MessageSet", inputMessage: &pb2.MessageSet{}, inputText: ` [pb2.MessageSetExtension]: { opt_string: "a messageset extension" } [pb2.MessageSetExtension.ext_nested]: { opt_string: "just a regular extension" } [pb2.MessageSetExtension.not_message_set_extension]: { opt_string: "not a messageset extension" } `, wantMessage: func() proto.Message { m := &pb2.MessageSet{} proto.SetExtension(m, pb2.E_MessageSetExtension_MessageSetExtension, &pb2.MessageSetExtension{ OptString: proto.String("a messageset extension"), }) proto.SetExtension(m, pb2.E_MessageSetExtension_NotMessageSetExtension, &pb2.MessageSetExtension{ OptString: proto.String("not a messageset extension"), }) proto.SetExtension(m, pb2.E_MessageSetExtension_ExtNested, &pb2.Nested{ OptString: proto.String("just a regular extension"), }) return m }(), skip: !flags.ProtoLegacy, }, { desc: "not real MessageSet 1", inputMessage: &pb2.FakeMessageSet{}, inputText: ` [pb2.FakeMessageSetExtension.message_set_extension]: { opt_string: "not a messageset extension" } `, wantMessage: func() proto.Message { m := &pb2.FakeMessageSet{} proto.SetExtension(m, pb2.E_FakeMessageSetExtension_MessageSetExtension, &pb2.FakeMessageSetExtension{ OptString: proto.String("not a messageset extension"), }) return m }(), skip: !flags.ProtoLegacy, }, { desc: "not real MessageSet 2", inputMessage: &pb2.FakeMessageSet{}, inputText: ` [pb2.FakeMessageSetExtension]: { opt_string: "not a messageset extension" } `, wantErr: `unable to resolve [[pb2.FakeMessageSetExtension]]: found wrong type`, skip: !flags.ProtoLegacy, }, { desc: "not real MessageSet 3", inputMessage: &pb2.MessageSet{}, inputText: ` [pb2.message_set_extension]: { opt_string: "another not a messageset extension" }`, wantMessage: func() proto.Message { m := &pb2.MessageSet{} proto.SetExtension(m, pb2.E_MessageSetExtension, &pb2.FakeMessageSetExtension{ OptString: proto.String("another not a messageset extension"), }) return m }(), skip: !flags.ProtoLegacy, }, { desc: "Any not expanded", inputMessage: &anypb.Any{}, inputText: ` type_url: "pb2.Nested" value: "some bytes" `, wantMessage: &anypb.Any{ TypeUrl: "pb2.Nested", Value: []byte("some bytes"), }, }, { desc: "Any not expanded missing value", inputMessage: &anypb.Any{}, inputText: `type_url: "pb2.Nested"`, wantMessage: &anypb.Any{ TypeUrl: "pb2.Nested", }, }, { desc: "Any not expanded missing type_url", inputMessage: &anypb.Any{}, inputText: `value: "some bytes"`, wantMessage: &anypb.Any{ Value: []byte("some bytes"), }, }, { desc: "Any expanded", inputMessage: &anypb.Any{}, inputText: ` [foobar/pb2.Nested]: { opt_string: "embedded inside Any" opt_nested: { opt_string: "inception" } } `, wantMessage: func() proto.Message { m := &pb2.Nested{ OptString: proto.String("embedded inside Any"), OptNested: &pb2.Nested{ OptString: proto.String("inception"), }, } b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: "foobar/pb2.Nested", Value: b, } }(), }, { desc: "Any expanded with empty value", inputMessage: &anypb.Any{}, inputText: `[foo.com/pb2.Nested]: {}`, wantMessage: &anypb.Any{ TypeUrl: "foo.com/pb2.Nested", }, }, { desc: "Any expanded with missing required", inputMessage: &anypb.Any{}, inputText: ` [pb2.PartialRequired]: { opt_string: "embedded inside Any" } `, wantMessage: func() proto.Message { m := &pb2.PartialRequired{ OptString: proto.String("embedded inside Any"), } b, err := proto.MarshalOptions{ AllowPartial: true, Deterministic: true, }.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: "pb2.PartialRequired", Value: b, } }(), }, { desc: "Any with invalid UTF-8", inputMessage: &anypb.Any{}, inputText: ` [pb3.Nested]: { s_string: "abc\xff" } `, wantErr: "contains invalid UTF-8", }, { desc: "Any expanded with unregistered type", umo: prototext.UnmarshalOptions{Resolver: new(preg.Types)}, inputMessage: &anypb.Any{}, inputText: `[SomeMessage]: {}`, wantErr: "unable to resolve message [SomeMessage]", }, { desc: "Any expanded with invalid value", inputMessage: &anypb.Any{}, inputText: `[pb2.Nested]: 123`, wantErr: "unexpected token: 123", }, { desc: "Any expanded with unknown fields", inputMessage: &anypb.Any{}, inputText: ` [pb2.Nested]: {} unknown: "" `, wantErr: `invalid field name "unknown" in google.protobuf.Any message`, }, { desc: "Any contains expanded and unexpanded fields", inputMessage: &anypb.Any{}, inputText: ` [pb2.Nested]: {} type_url: "pb2.Nested" `, wantErr: "(line 3:1): conflict with [pb2.Nested] field", }, { desc: "weak fields", inputMessage: &testpb.TestWeak{}, inputText: `weak_message1:{a:1}`, wantMessage: func() *testpb.TestWeak { m := new(testpb.TestWeak) m.SetWeakMessage1(&weakpb.WeakImportMessage1{A: proto.Int32(1)}) return m }(), skip: !flags.ProtoLegacy, }, { desc: "weak fields; unknown field", inputMessage: &testpb.TestWeak{}, inputText: `weak_message1:{a:1} weak_message2:{a:1}`, wantErr: "unknown field: weak_message2", // weak_message2 is unknown since the package containing it is not imported skip: !flags.ProtoLegacy, }} for _, tt := range tests { tt := tt if tt.skip { continue } t.Run(tt.desc, func(t *testing.T) { err := tt.umo.Unmarshal([]byte(tt.inputText), tt.inputMessage) if err != nil { if tt.wantErr == "" { t.Errorf("Unmarshal() got unexpected error: %v", err) } else if !strings.Contains(err.Error(), tt.wantErr) { t.Errorf("Unmarshal() error got %q, want %q", err, tt.wantErr) } return } if tt.wantErr != "" { t.Errorf("Unmarshal() got nil error, want error %q", tt.wantErr) return } if tt.wantMessage != nil && !proto.Equal(tt.inputMessage, tt.wantMessage) { t.Errorf("Unmarshal()\n\n%v\n\n%v\n", tt.inputMessage, tt.wantMessage) } }) } } golang-google-protobuf-1.27.1/encoding/prototext/doc.go000066400000000000000000000004241411250152500231070ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package prototext marshals and unmarshals protocol buffer messages as the // textproto format. package prototext golang-google-protobuf-1.27.1/encoding/prototext/encode.go000066400000000000000000000254431411250152500236070ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package prototext import ( "fmt" "strconv" "unicode/utf8" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/encoding/messageset" "google.golang.org/protobuf/internal/encoding/text" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/internal/order" "google.golang.org/protobuf/internal/pragma" "google.golang.org/protobuf/internal/strs" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" pref "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" ) const defaultIndent = " " // Format formats the message as a multiline string. // This function is only intended for human consumption and ignores errors. // Do not depend on the output being stable. It may change over time across // different versions of the program. func Format(m proto.Message) string { return MarshalOptions{Multiline: true}.Format(m) } // Marshal writes the given proto.Message in textproto format using default // options. Do not depend on the output being stable. It may change over time // across different versions of the program. func Marshal(m proto.Message) ([]byte, error) { return MarshalOptions{}.Marshal(m) } // MarshalOptions is a configurable text format marshaler. type MarshalOptions struct { pragma.NoUnkeyedLiterals // Multiline specifies whether the marshaler should format the output in // indented-form with every textual element on a new line. // If Indent is an empty string, then an arbitrary indent is chosen. Multiline bool // Indent specifies the set of indentation characters to use in a multiline // formatted output such that every entry is preceded by Indent and // terminated by a newline. If non-empty, then Multiline is treated as true. // Indent can only be composed of space or tab characters. Indent string // EmitASCII specifies whether to format strings and bytes as ASCII only // as opposed to using UTF-8 encoding when possible. EmitASCII bool // allowInvalidUTF8 specifies whether to permit the encoding of strings // with invalid UTF-8. This is unexported as it is intended to only // be specified by the Format method. allowInvalidUTF8 bool // AllowPartial allows messages that have missing required fields to marshal // without returning an error. If AllowPartial is false (the default), // Marshal will return error if there are any missing required fields. AllowPartial bool // EmitUnknown specifies whether to emit unknown fields in the output. // If specified, the unmarshaler may be unable to parse the output. // The default is to exclude unknown fields. EmitUnknown bool // Resolver is used for looking up types when expanding google.protobuf.Any // messages. If nil, this defaults to using protoregistry.GlobalTypes. Resolver interface { protoregistry.ExtensionTypeResolver protoregistry.MessageTypeResolver } } // Format formats the message as a string. // This method is only intended for human consumption and ignores errors. // Do not depend on the output being stable. It may change over time across // different versions of the program. func (o MarshalOptions) Format(m proto.Message) string { if m == nil || !m.ProtoReflect().IsValid() { return "" // invalid syntax, but okay since this is for debugging } o.allowInvalidUTF8 = true o.AllowPartial = true o.EmitUnknown = true b, _ := o.Marshal(m) return string(b) } // Marshal writes the given proto.Message in textproto format using options in // MarshalOptions object. Do not depend on the output being stable. It may // change over time across different versions of the program. func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) { return o.marshal(m) } // marshal is a centralized function that all marshal operations go through. // For profiling purposes, avoid changing the name of this function or // introducing other code paths for marshal that do not go through this. func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { var delims = [2]byte{'{', '}'} if o.Multiline && o.Indent == "" { o.Indent = defaultIndent } if o.Resolver == nil { o.Resolver = protoregistry.GlobalTypes } internalEnc, err := text.NewEncoder(o.Indent, delims, o.EmitASCII) if err != nil { return nil, err } // Treat nil message interface as an empty message, // in which case there is nothing to output. if m == nil { return []byte{}, nil } enc := encoder{internalEnc, o} err = enc.marshalMessage(m.ProtoReflect(), false) if err != nil { return nil, err } out := enc.Bytes() if len(o.Indent) > 0 && len(out) > 0 { out = append(out, '\n') } if o.AllowPartial { return out, nil } return out, proto.CheckInitialized(m) } type encoder struct { *text.Encoder opts MarshalOptions } // marshalMessage marshals the given protoreflect.Message. func (e encoder) marshalMessage(m pref.Message, inclDelims bool) error { messageDesc := m.Descriptor() if !flags.ProtoLegacy && messageset.IsMessageSet(messageDesc) { return errors.New("no support for proto1 MessageSets") } if inclDelims { e.StartMessage() defer e.EndMessage() } // Handle Any expansion. if messageDesc.FullName() == genid.Any_message_fullname { if e.marshalAny(m) { return nil } // If unable to expand, continue on to marshal Any as a regular message. } // Marshal fields. var err error order.RangeFields(m, order.IndexNameFieldOrder, func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { if err = e.marshalField(fd.TextName(), v, fd); err != nil { return false } return true }) if err != nil { return err } // Marshal unknown fields. if e.opts.EmitUnknown { e.marshalUnknown(m.GetUnknown()) } return nil } // marshalField marshals the given field with protoreflect.Value. func (e encoder) marshalField(name string, val pref.Value, fd pref.FieldDescriptor) error { switch { case fd.IsList(): return e.marshalList(name, val.List(), fd) case fd.IsMap(): return e.marshalMap(name, val.Map(), fd) default: e.WriteName(name) return e.marshalSingular(val, fd) } } // marshalSingular marshals the given non-repeated field value. This includes // all scalar types, enums, messages, and groups. func (e encoder) marshalSingular(val pref.Value, fd pref.FieldDescriptor) error { kind := fd.Kind() switch kind { case pref.BoolKind: e.WriteBool(val.Bool()) case pref.StringKind: s := val.String() if !e.opts.allowInvalidUTF8 && strs.EnforceUTF8(fd) && !utf8.ValidString(s) { return errors.InvalidUTF8(string(fd.FullName())) } e.WriteString(s) case pref.Int32Kind, pref.Int64Kind, pref.Sint32Kind, pref.Sint64Kind, pref.Sfixed32Kind, pref.Sfixed64Kind: e.WriteInt(val.Int()) case pref.Uint32Kind, pref.Uint64Kind, pref.Fixed32Kind, pref.Fixed64Kind: e.WriteUint(val.Uint()) case pref.FloatKind: // Encoder.WriteFloat handles the special numbers NaN and infinites. e.WriteFloat(val.Float(), 32) case pref.DoubleKind: // Encoder.WriteFloat handles the special numbers NaN and infinites. e.WriteFloat(val.Float(), 64) case pref.BytesKind: e.WriteString(string(val.Bytes())) case pref.EnumKind: num := val.Enum() if desc := fd.Enum().Values().ByNumber(num); desc != nil { e.WriteLiteral(string(desc.Name())) } else { // Use numeric value if there is no enum description. e.WriteInt(int64(num)) } case pref.MessageKind, pref.GroupKind: return e.marshalMessage(val.Message(), true) default: panic(fmt.Sprintf("%v has unknown kind: %v", fd.FullName(), kind)) } return nil } // marshalList marshals the given protoreflect.List as multiple name-value fields. func (e encoder) marshalList(name string, list pref.List, fd pref.FieldDescriptor) error { size := list.Len() for i := 0; i < size; i++ { e.WriteName(name) if err := e.marshalSingular(list.Get(i), fd); err != nil { return err } } return nil } // marshalMap marshals the given protoreflect.Map as multiple name-value fields. func (e encoder) marshalMap(name string, mmap pref.Map, fd pref.FieldDescriptor) error { var err error order.RangeEntries(mmap, order.GenericKeyOrder, func(key pref.MapKey, val pref.Value) bool { e.WriteName(name) e.StartMessage() defer e.EndMessage() e.WriteName(string(genid.MapEntry_Key_field_name)) err = e.marshalSingular(key.Value(), fd.MapKey()) if err != nil { return false } e.WriteName(string(genid.MapEntry_Value_field_name)) err = e.marshalSingular(val, fd.MapValue()) if err != nil { return false } return true }) return err } // marshalUnknown parses the given []byte and marshals fields out. // This function assumes proper encoding in the given []byte. func (e encoder) marshalUnknown(b []byte) { const dec = 10 const hex = 16 for len(b) > 0 { num, wtype, n := protowire.ConsumeTag(b) b = b[n:] e.WriteName(strconv.FormatInt(int64(num), dec)) switch wtype { case protowire.VarintType: var v uint64 v, n = protowire.ConsumeVarint(b) e.WriteUint(v) case protowire.Fixed32Type: var v uint32 v, n = protowire.ConsumeFixed32(b) e.WriteLiteral("0x" + strconv.FormatUint(uint64(v), hex)) case protowire.Fixed64Type: var v uint64 v, n = protowire.ConsumeFixed64(b) e.WriteLiteral("0x" + strconv.FormatUint(v, hex)) case protowire.BytesType: var v []byte v, n = protowire.ConsumeBytes(b) e.WriteString(string(v)) case protowire.StartGroupType: e.StartMessage() var v []byte v, n = protowire.ConsumeGroup(num, b) e.marshalUnknown(v) e.EndMessage() default: panic(fmt.Sprintf("prototext: error parsing unknown field wire type: %v", wtype)) } b = b[n:] } } // marshalAny marshals the given google.protobuf.Any message in expanded form. // It returns true if it was able to marshal, else false. func (e encoder) marshalAny(any pref.Message) bool { // Construct the embedded message. fds := any.Descriptor().Fields() fdType := fds.ByNumber(genid.Any_TypeUrl_field_number) typeURL := any.Get(fdType).String() mt, err := e.opts.Resolver.FindMessageByURL(typeURL) if err != nil { return false } m := mt.New().Interface() // Unmarshal bytes into embedded message. fdValue := fds.ByNumber(genid.Any_Value_field_number) value := any.Get(fdValue) err = proto.UnmarshalOptions{ AllowPartial: true, Resolver: e.opts.Resolver, }.Unmarshal(value.Bytes(), m) if err != nil { return false } // Get current encoder position. If marshaling fails, reset encoder output // back to this position. pos := e.Snapshot() // Field name is the proto field name enclosed in []. e.WriteName("[" + typeURL + "]") err = e.marshalMessage(m.ProtoReflect(), true) if err != nil { e.Reset(pos) return false } return true } golang-google-protobuf-1.27.1/encoding/prototext/encode_test.go000066400000000000000000001032771411250152500246500ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package prototext_test import ( "math" "testing" "github.com/google/go-cmp/cmp" "google.golang.org/protobuf/encoding/prototext" "google.golang.org/protobuf/internal/detrand" "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/proto" preg "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/testing/protopack" pb2 "google.golang.org/protobuf/internal/testprotos/textpb2" pb3 "google.golang.org/protobuf/internal/testprotos/textpb3" "google.golang.org/protobuf/types/known/anypb" ) func init() { // Disable detrand to enable direct comparisons on outputs. detrand.Disable() } func TestMarshal(t *testing.T) { tests := []struct { desc string mo prototext.MarshalOptions input proto.Message want string wantErr bool // TODO: Verify error message content. skip bool }{{ desc: "proto2 optional scalars not set", input: &pb2.Scalars{}, want: "", }, { desc: "proto3 scalars not set", input: &pb3.Scalars{}, want: "", }, { desc: "proto3 optional not set", input: &pb3.Proto3Optional{}, want: "", }, { desc: "proto2 optional scalars set to zero values", input: &pb2.Scalars{ OptBool: proto.Bool(false), OptInt32: proto.Int32(0), OptInt64: proto.Int64(0), OptUint32: proto.Uint32(0), OptUint64: proto.Uint64(0), OptSint32: proto.Int32(0), OptSint64: proto.Int64(0), OptFixed32: proto.Uint32(0), OptFixed64: proto.Uint64(0), OptSfixed32: proto.Int32(0), OptSfixed64: proto.Int64(0), OptFloat: proto.Float32(0), OptDouble: proto.Float64(0), OptBytes: []byte{}, OptString: proto.String(""), }, want: `opt_bool: false opt_int32: 0 opt_int64: 0 opt_uint32: 0 opt_uint64: 0 opt_sint32: 0 opt_sint64: 0 opt_fixed32: 0 opt_fixed64: 0 opt_sfixed32: 0 opt_sfixed64: 0 opt_float: 0 opt_double: 0 opt_bytes: "" opt_string: "" `, }, { desc: "proto3 optional set to zero values", input: &pb3.Proto3Optional{ OptBool: proto.Bool(false), OptInt32: proto.Int32(0), OptInt64: proto.Int64(0), OptUint32: proto.Uint32(0), OptUint64: proto.Uint64(0), OptFloat: proto.Float32(0), OptDouble: proto.Float64(0), OptString: proto.String(""), OptBytes: []byte{}, OptEnum: pb3.Enum_ZERO.Enum(), OptMessage: &pb3.Nested{}, }, want: `opt_bool: false opt_int32: 0 opt_int64: 0 opt_uint32: 0 opt_uint64: 0 opt_float: 0 opt_double: 0 opt_string: "" opt_bytes: "" opt_enum: ZERO opt_message: {} `, }, { desc: "proto3 scalars set to zero values", input: &pb3.Scalars{ SBool: false, SInt32: 0, SInt64: 0, SUint32: 0, SUint64: 0, SSint32: 0, SSint64: 0, SFixed32: 0, SFixed64: 0, SSfixed32: 0, SSfixed64: 0, SFloat: 0, SDouble: 0, SBytes: []byte{}, SString: "", }, want: "", }, { desc: "proto2 optional scalars set to some values", input: &pb2.Scalars{ OptBool: proto.Bool(true), OptInt32: proto.Int32(0xff), OptInt64: proto.Int64(0xdeadbeef), OptUint32: proto.Uint32(47), OptUint64: proto.Uint64(0xdeadbeef), OptSint32: proto.Int32(-1001), OptSint64: proto.Int64(-0xffff), OptFixed64: proto.Uint64(64), OptSfixed32: proto.Int32(-32), OptFloat: proto.Float32(1.02), OptDouble: proto.Float64(1.0199999809265137), OptBytes: []byte("\xe8\xb0\xb7\xe6\xad\x8c"), OptString: proto.String("谷歌"), }, want: `opt_bool: true opt_int32: 255 opt_int64: 3735928559 opt_uint32: 47 opt_uint64: 3735928559 opt_sint32: -1001 opt_sint64: -65535 opt_fixed64: 64 opt_sfixed32: -32 opt_float: 1.02 opt_double: 1.0199999809265137 opt_bytes: "谷歌" opt_string: "谷歌" `, }, { desc: "proto2 string with invalid UTF-8", input: &pb2.Scalars{ OptString: proto.String("abc\xff"), }, want: `opt_string: "abc\xff" `, }, { desc: "proto3 string with invalid UTF-8", input: &pb3.Scalars{ SString: "abc\xff", }, wantErr: true, }, { desc: "float nan", input: &pb3.Scalars{ SFloat: float32(math.NaN()), }, want: "s_float: nan\n", }, { desc: "float positive infinity", input: &pb3.Scalars{ SFloat: float32(math.Inf(1)), }, want: "s_float: inf\n", }, { desc: "float negative infinity", input: &pb3.Scalars{ SFloat: float32(math.Inf(-1)), }, want: "s_float: -inf\n", }, { desc: "double nan", input: &pb3.Scalars{ SDouble: math.NaN(), }, want: "s_double: nan\n", }, { desc: "double positive infinity", input: &pb3.Scalars{ SDouble: math.Inf(1), }, want: "s_double: inf\n", }, { desc: "double negative infinity", input: &pb3.Scalars{ SDouble: math.Inf(-1), }, want: "s_double: -inf\n", }, { desc: "proto2 enum not set", input: &pb2.Enums{}, want: "", }, { desc: "proto2 enum set to zero value", input: &pb2.Enums{ OptEnum: pb2.Enum(0).Enum(), OptNestedEnum: pb2.Enums_NestedEnum(0).Enum(), }, want: `opt_enum: 0 opt_nested_enum: 0 `, }, { desc: "proto2 enum", input: &pb2.Enums{ OptEnum: pb2.Enum_ONE.Enum(), OptNestedEnum: pb2.Enums_UNO.Enum(), }, want: `opt_enum: ONE opt_nested_enum: UNO `, }, { desc: "proto2 enum set to numeric values", input: &pb2.Enums{ OptEnum: pb2.Enum(2).Enum(), OptNestedEnum: pb2.Enums_NestedEnum(2).Enum(), }, want: `opt_enum: TWO opt_nested_enum: DOS `, }, { desc: "proto2 enum set to unnamed numeric values", input: &pb2.Enums{ OptEnum: pb2.Enum(101).Enum(), OptNestedEnum: pb2.Enums_NestedEnum(-101).Enum(), }, want: `opt_enum: 101 opt_nested_enum: -101 `, }, { desc: "proto3 enum not set", input: &pb3.Enums{}, want: "", }, { desc: "proto3 enum set to zero value", input: &pb3.Enums{ SEnum: pb3.Enum_ZERO, SNestedEnum: pb3.Enums_CERO, }, want: "", }, { desc: "proto3 enum", input: &pb3.Enums{ SEnum: pb3.Enum_ONE, SNestedEnum: pb3.Enums_UNO, }, want: `s_enum: ONE s_nested_enum: UNO `, }, { desc: "proto3 enum set to numeric values", input: &pb3.Enums{ SEnum: 2, SNestedEnum: 2, }, want: `s_enum: TWO s_nested_enum: DOS `, }, { desc: "proto3 enum set to unnamed numeric values", input: &pb3.Enums{ SEnum: -47, SNestedEnum: 47, }, want: `s_enum: -47 s_nested_enum: 47 `, }, { desc: "proto2 nested message not set", input: &pb2.Nests{}, want: "", }, { desc: "proto2 nested message set to empty", input: &pb2.Nests{ OptNested: &pb2.Nested{}, Optgroup: &pb2.Nests_OptGroup{}, }, want: `opt_nested: {} OptGroup: {} `, }, { desc: "proto2 nested messages", input: &pb2.Nests{ OptNested: &pb2.Nested{ OptString: proto.String("nested message"), OptNested: &pb2.Nested{ OptString: proto.String("another nested message"), }, }, }, want: `opt_nested: { opt_string: "nested message" opt_nested: { opt_string: "another nested message" } } `, }, { desc: "proto2 groups", input: &pb2.Nests{ Optgroup: &pb2.Nests_OptGroup{ OptString: proto.String("inside a group"), OptNested: &pb2.Nested{ OptString: proto.String("nested message inside a group"), }, Optnestedgroup: &pb2.Nests_OptGroup_OptNestedGroup{ OptFixed32: proto.Uint32(47), }, }, }, want: `OptGroup: { opt_string: "inside a group" opt_nested: { opt_string: "nested message inside a group" } OptNestedGroup: { opt_fixed32: 47 } } `, }, { desc: "proto3 nested message not set", input: &pb3.Nests{}, want: "", }, { desc: "proto3 nested message set to empty", input: &pb3.Nests{ SNested: &pb3.Nested{}, }, want: "s_nested: {}\n", }, { desc: "proto3 nested message", input: &pb3.Nests{ SNested: &pb3.Nested{ SString: "nested message", SNested: &pb3.Nested{ SString: "another nested message", }, }, }, want: `s_nested: { s_string: "nested message" s_nested: { s_string: "another nested message" } } `, }, { desc: "proto3 nested message contains invalid UTF-8", input: &pb3.Nests{ SNested: &pb3.Nested{ SString: "abc\xff", }, }, wantErr: true, }, { desc: "oneof not set", input: &pb3.Oneofs{}, want: "", }, { desc: "oneof set to empty string", input: &pb3.Oneofs{ Union: &pb3.Oneofs_OneofString{}, }, want: `oneof_string: "" `, }, { desc: "oneof set to string", input: &pb3.Oneofs{ Union: &pb3.Oneofs_OneofString{ OneofString: "hello", }, }, want: `oneof_string: "hello" `, }, { desc: "oneof set to enum", input: &pb3.Oneofs{ Union: &pb3.Oneofs_OneofEnum{ OneofEnum: pb3.Enum_ZERO, }, }, want: `oneof_enum: ZERO `, }, { desc: "oneof set to empty message", input: &pb3.Oneofs{ Union: &pb3.Oneofs_OneofNested{ OneofNested: &pb3.Nested{}, }, }, want: "oneof_nested: {}\n", }, { desc: "oneof set to message", input: &pb3.Oneofs{ Union: &pb3.Oneofs_OneofNested{ OneofNested: &pb3.Nested{ SString: "nested message", }, }, }, want: `oneof_nested: { s_string: "nested message" } `, }, { desc: "repeated fields not set", input: &pb2.Repeats{}, want: "", }, { desc: "repeated fields set to empty slices", input: &pb2.Repeats{ RptBool: []bool{}, RptInt32: []int32{}, RptInt64: []int64{}, RptUint32: []uint32{}, RptUint64: []uint64{}, RptFloat: []float32{}, RptDouble: []float64{}, RptBytes: [][]byte{}, }, want: "", }, { desc: "repeated fields set to some values", input: &pb2.Repeats{ RptBool: []bool{true, false, true, true}, RptInt32: []int32{1, 6, 0, 0}, RptInt64: []int64{-64, 47}, RptUint32: []uint32{0xff, 0xffff}, RptUint64: []uint64{0xdeadbeef}, RptFloat: []float32{float32(math.NaN()), float32(math.Inf(1)), float32(math.Inf(-1)), 1.034}, RptDouble: []float64{math.NaN(), math.Inf(1), math.Inf(-1), 1.23e-308}, RptString: []string{"hello", "世界"}, RptBytes: [][]byte{ []byte("hello"), []byte("\xe4\xb8\x96\xe7\x95\x8c"), }, }, want: `rpt_bool: true rpt_bool: false rpt_bool: true rpt_bool: true rpt_int32: 1 rpt_int32: 6 rpt_int32: 0 rpt_int32: 0 rpt_int64: -64 rpt_int64: 47 rpt_uint32: 255 rpt_uint32: 65535 rpt_uint64: 3735928559 rpt_float: nan rpt_float: inf rpt_float: -inf rpt_float: 1.034 rpt_double: nan rpt_double: inf rpt_double: -inf rpt_double: 1.23e-308 rpt_string: "hello" rpt_string: "世界" rpt_bytes: "hello" rpt_bytes: "世界" `, }, { desc: "repeated proto2 contains invalid UTF-8", input: &pb2.Repeats{ RptString: []string{"abc\xff"}, }, want: `rpt_string: "abc\xff" `, }, { desc: "repeated proto3 contains invalid UTF-8", input: &pb3.Repeats{ RptString: []string{"abc\xff"}, }, wantErr: true, }, { desc: "repeated enums", input: &pb2.Enums{ RptEnum: []pb2.Enum{pb2.Enum_ONE, 2, pb2.Enum_TEN, 42}, RptNestedEnum: []pb2.Enums_NestedEnum{2, 47, 10}, }, want: `rpt_enum: ONE rpt_enum: TWO rpt_enum: TEN rpt_enum: 42 rpt_nested_enum: DOS rpt_nested_enum: 47 rpt_nested_enum: DIEZ `, }, { desc: "repeated messages set to empty", input: &pb2.Nests{ RptNested: []*pb2.Nested{}, Rptgroup: []*pb2.Nests_RptGroup{}, }, want: "", }, { desc: "repeated messages", input: &pb2.Nests{ RptNested: []*pb2.Nested{ { OptString: proto.String("repeat nested one"), }, { OptString: proto.String("repeat nested two"), OptNested: &pb2.Nested{ OptString: proto.String("inside repeat nested two"), }, }, {}, }, }, want: `rpt_nested: { opt_string: "repeat nested one" } rpt_nested: { opt_string: "repeat nested two" opt_nested: { opt_string: "inside repeat nested two" } } rpt_nested: {} `, }, { desc: "repeated messages contains nil value", input: &pb2.Nests{ RptNested: []*pb2.Nested{nil, {}}, }, want: `rpt_nested: {} rpt_nested: {} `, }, { desc: "repeated groups", input: &pb2.Nests{ Rptgroup: []*pb2.Nests_RptGroup{ { RptString: []string{"hello", "world"}, }, {}, nil, }, }, want: `RptGroup: { rpt_string: "hello" rpt_string: "world" } RptGroup: {} RptGroup: {} `, }, { desc: "map fields not set", input: &pb3.Maps{}, want: "", }, { desc: "map fields set to empty", input: &pb3.Maps{ Int32ToStr: map[int32]string{}, BoolToUint32: map[bool]uint32{}, Uint64ToEnum: map[uint64]pb3.Enum{}, StrToNested: map[string]*pb3.Nested{}, StrToOneofs: map[string]*pb3.Oneofs{}, }, want: "", }, { desc: "map fields 1", input: &pb3.Maps{ Int32ToStr: map[int32]string{ -101: "-101", 0xff: "0xff", 0: "zero", }, BoolToUint32: map[bool]uint32{ true: 42, false: 101, }, }, want: `int32_to_str: { key: -101 value: "-101" } int32_to_str: { key: 0 value: "zero" } int32_to_str: { key: 255 value: "0xff" } bool_to_uint32: { key: false value: 101 } bool_to_uint32: { key: true value: 42 } `, }, { desc: "map fields 2", input: &pb3.Maps{ Uint64ToEnum: map[uint64]pb3.Enum{ 1: pb3.Enum_ONE, 2: pb3.Enum_TWO, 10: pb3.Enum_TEN, 47: 47, }, }, want: `uint64_to_enum: { key: 1 value: ONE } uint64_to_enum: { key: 2 value: TWO } uint64_to_enum: { key: 10 value: TEN } uint64_to_enum: { key: 47 value: 47 } `, }, { desc: "map fields 3", input: &pb3.Maps{ StrToNested: map[string]*pb3.Nested{ "nested": &pb3.Nested{ SString: "nested in a map", }, }, }, want: `str_to_nested: { key: "nested" value: { s_string: "nested in a map" } } `, }, { desc: "map fields 4", input: &pb3.Maps{ StrToOneofs: map[string]*pb3.Oneofs{ "string": &pb3.Oneofs{ Union: &pb3.Oneofs_OneofString{ OneofString: "hello", }, }, "nested": &pb3.Oneofs{ Union: &pb3.Oneofs_OneofNested{ OneofNested: &pb3.Nested{ SString: "nested oneof in map field value", }, }, }, }, }, want: `str_to_oneofs: { key: "nested" value: { oneof_nested: { s_string: "nested oneof in map field value" } } } str_to_oneofs: { key: "string" value: { oneof_string: "hello" } } `, }, { desc: "proto2 map field value contains invalid UTF-8", input: &pb2.Maps{ Int32ToStr: map[int32]string{ 101: "abc\xff", }, }, want: `int32_to_str: { key: 101 value: "abc\xff" } `, }, { desc: "proto2 map field key contains invalid UTF-8", input: &pb2.Maps{ StrToNested: map[string]*pb2.Nested{ "abc\xff": {}, }, }, want: `str_to_nested: { key: "abc\xff" value: {} } `, }, { desc: "proto3 map field value contains invalid UTF-8", input: &pb3.Maps{ Int32ToStr: map[int32]string{ 101: "abc\xff", }, }, wantErr: true, }, { desc: "proto3 map field key contains invalid UTF-8", input: &pb3.Maps{ StrToNested: map[string]*pb3.Nested{ "abc\xff": {}, }, }, wantErr: true, }, { desc: "map field contains nil value", input: &pb3.Maps{ StrToNested: map[string]*pb3.Nested{ "nil": nil, }, }, want: `str_to_nested: { key: "nil" value: {} } `, }, { desc: "required fields not set", input: &pb2.Requireds{}, want: "", wantErr: true, }, { desc: "required fields partially set", input: &pb2.Requireds{ ReqBool: proto.Bool(false), ReqSfixed64: proto.Int64(0xbeefcafe), ReqDouble: proto.Float64(math.NaN()), ReqString: proto.String("hello"), ReqEnum: pb2.Enum_ONE.Enum(), }, want: `req_bool: false req_sfixed64: 3203386110 req_double: nan req_string: "hello" req_enum: ONE `, wantErr: true, }, { desc: "required fields not set with AllowPartial", mo: prototext.MarshalOptions{AllowPartial: true}, input: &pb2.Requireds{ ReqBool: proto.Bool(false), ReqSfixed64: proto.Int64(0xbeefcafe), ReqDouble: proto.Float64(math.NaN()), ReqString: proto.String("hello"), ReqEnum: pb2.Enum_ONE.Enum(), }, want: `req_bool: false req_sfixed64: 3203386110 req_double: nan req_string: "hello" req_enum: ONE `, }, { desc: "required fields all set", input: &pb2.Requireds{ ReqBool: proto.Bool(false), ReqSfixed64: proto.Int64(0), ReqDouble: proto.Float64(1.23), ReqString: proto.String(""), ReqEnum: pb2.Enum_ONE.Enum(), ReqNested: &pb2.Nested{}, }, want: `req_bool: false req_sfixed64: 0 req_double: 1.23 req_string: "" req_enum: ONE req_nested: {} `, }, { desc: "indirect required field", input: &pb2.IndirectRequired{ OptNested: &pb2.NestedWithRequired{}, }, want: "opt_nested: {}\n", wantErr: true, }, { desc: "indirect required field with AllowPartial", mo: prototext.MarshalOptions{AllowPartial: true}, input: &pb2.IndirectRequired{ OptNested: &pb2.NestedWithRequired{}, }, want: "opt_nested: {}\n", }, { desc: "indirect required field in empty repeated", input: &pb2.IndirectRequired{ RptNested: []*pb2.NestedWithRequired{}, }, want: "", }, { desc: "indirect required field in repeated", input: &pb2.IndirectRequired{ RptNested: []*pb2.NestedWithRequired{ &pb2.NestedWithRequired{}, }, }, want: "rpt_nested: {}\n", wantErr: true, }, { desc: "indirect required field in repeated with AllowPartial", mo: prototext.MarshalOptions{AllowPartial: true}, input: &pb2.IndirectRequired{ RptNested: []*pb2.NestedWithRequired{ &pb2.NestedWithRequired{}, }, }, want: "rpt_nested: {}\n", }, { desc: "indirect required field in empty map", input: &pb2.IndirectRequired{ StrToNested: map[string]*pb2.NestedWithRequired{}, }, want: "", }, { desc: "indirect required field in map", input: &pb2.IndirectRequired{ StrToNested: map[string]*pb2.NestedWithRequired{ "fail": &pb2.NestedWithRequired{}, }, }, want: `str_to_nested: { key: "fail" value: {} } `, wantErr: true, }, { desc: "indirect required field in map with AllowPartial", mo: prototext.MarshalOptions{AllowPartial: true}, input: &pb2.IndirectRequired{ StrToNested: map[string]*pb2.NestedWithRequired{ "fail": &pb2.NestedWithRequired{}, }, }, want: `str_to_nested: { key: "fail" value: {} } `, }, { desc: "indirect required field in oneof", input: &pb2.IndirectRequired{ Union: &pb2.IndirectRequired_OneofNested{ OneofNested: &pb2.NestedWithRequired{}, }, }, want: "oneof_nested: {}\n", wantErr: true, }, { desc: "indirect required field in oneof with AllowPartial", mo: prototext.MarshalOptions{AllowPartial: true}, input: &pb2.IndirectRequired{ Union: &pb2.IndirectRequired_OneofNested{ OneofNested: &pb2.NestedWithRequired{}, }, }, want: "oneof_nested: {}\n", }, { desc: "unknown fields not printed", input: func() proto.Message { m := &pb2.Scalars{ OptString: proto.String("this message contains unknown fields"), } m.ProtoReflect().SetUnknown(protopack.Message{ protopack.Tag{101, protopack.VarintType}, protopack.Bool(true), protopack.Tag{102, protopack.VarintType}, protopack.Varint(0xff), protopack.Tag{103, protopack.Fixed32Type}, protopack.Uint32(47), protopack.Tag{104, protopack.Fixed64Type}, protopack.Int64(0xdeadbeef), }.Marshal()) return m }(), want: `opt_string: "this message contains unknown fields" `, }, { desc: "unknown varint and fixed types", mo: prototext.MarshalOptions{EmitUnknown: true}, input: func() proto.Message { m := &pb2.Scalars{ OptString: proto.String("this message contains unknown fields"), } m.ProtoReflect().SetUnknown(protopack.Message{ protopack.Tag{101, protopack.VarintType}, protopack.Bool(true), protopack.Tag{102, protopack.VarintType}, protopack.Varint(0xff), protopack.Tag{103, protopack.Fixed32Type}, protopack.Uint32(0x47), protopack.Tag{104, protopack.Fixed64Type}, protopack.Int64(0xdeadbeef), }.Marshal()) return m }(), want: `opt_string: "this message contains unknown fields" 101: 1 102: 255 103: 0x47 104: 0xdeadbeef `, }, { desc: "unknown length-delimited", mo: prototext.MarshalOptions{EmitUnknown: true}, input: func() proto.Message { m := new(pb2.Scalars) m.ProtoReflect().SetUnknown(protopack.Message{ protopack.Tag{101, protopack.BytesType}, protopack.LengthPrefix{protopack.Bool(true), protopack.Bool(false)}, protopack.Tag{102, protopack.BytesType}, protopack.String("hello world"), protopack.Tag{103, protopack.BytesType}, protopack.Bytes("\xe4\xb8\x96\xe7\x95\x8c"), }.Marshal()) return m }(), want: `101: "\x01\x00" 102: "hello world" 103: "世界" `, }, { desc: "unknown group type", mo: prototext.MarshalOptions{EmitUnknown: true}, input: func() proto.Message { m := new(pb2.Scalars) m.ProtoReflect().SetUnknown(protopack.Message{ protopack.Tag{101, protopack.StartGroupType}, protopack.Tag{101, protopack.EndGroupType}, protopack.Tag{102, protopack.StartGroupType}, protopack.Tag{101, protopack.VarintType}, protopack.Bool(false), protopack.Tag{102, protopack.BytesType}, protopack.String("inside a group"), protopack.Tag{102, protopack.EndGroupType}, }.Marshal()) return m }(), want: `101: {} 102: { 101: 0 102: "inside a group" } `, }, { desc: "unknown unpack repeated field", mo: prototext.MarshalOptions{EmitUnknown: true}, input: func() proto.Message { m := new(pb2.Scalars) m.ProtoReflect().SetUnknown(protopack.Message{ protopack.Tag{101, protopack.BytesType}, protopack.LengthPrefix{protopack.Bool(true), protopack.Bool(false), protopack.Bool(true)}, protopack.Tag{102, protopack.BytesType}, protopack.String("hello"), protopack.Tag{101, protopack.VarintType}, protopack.Bool(true), protopack.Tag{102, protopack.BytesType}, protopack.String("世界"), }.Marshal()) return m }(), want: `101: "\x01\x00\x01" 102: "hello" 101: 1 102: "世界" `, }, { desc: "extensions of non-repeated fields", input: func() proto.Message { m := &pb2.Extensions{ OptString: proto.String("non-extension field"), OptBool: proto.Bool(true), OptInt32: proto.Int32(42), } proto.SetExtension(m, pb2.E_OptExtBool, true) proto.SetExtension(m, pb2.E_OptExtString, "extension field") proto.SetExtension(m, pb2.E_OptExtEnum, pb2.Enum_TEN) proto.SetExtension(m, pb2.E_OptExtNested, &pb2.Nested{ OptString: proto.String("nested in an extension"), OptNested: &pb2.Nested{ OptString: proto.String("another nested in an extension"), }, }) return m }(), want: `opt_string: "non-extension field" opt_bool: true opt_int32: 42 [pb2.opt_ext_bool]: true [pb2.opt_ext_enum]: TEN [pb2.opt_ext_nested]: { opt_string: "nested in an extension" opt_nested: { opt_string: "another nested in an extension" } } [pb2.opt_ext_string]: "extension field" `, }, { desc: "proto2 extension field contains invalid UTF-8", input: func() proto.Message { m := &pb2.Extensions{} proto.SetExtension(m, pb2.E_OptExtString, "abc\xff") return m }(), want: `[pb2.opt_ext_string]: "abc\xff" `, }, { desc: "extension partial returns error", input: func() proto.Message { m := &pb2.Extensions{} proto.SetExtension(m, pb2.E_OptExtPartial, &pb2.PartialRequired{ OptString: proto.String("partial1"), }) proto.SetExtension(m, pb2.E_ExtensionsContainer_OptExtPartial, &pb2.PartialRequired{ OptString: proto.String("partial2"), }) return m }(), want: `[pb2.ExtensionsContainer.opt_ext_partial]: { opt_string: "partial2" } [pb2.opt_ext_partial]: { opt_string: "partial1" } `, wantErr: true, }, { desc: "extension partial with AllowPartial", mo: prototext.MarshalOptions{AllowPartial: true}, input: func() proto.Message { m := &pb2.Extensions{} proto.SetExtension(m, pb2.E_OptExtPartial, &pb2.PartialRequired{ OptString: proto.String("partial1"), }) return m }(), want: `[pb2.opt_ext_partial]: { opt_string: "partial1" } `, }, { desc: "extensions of repeated fields", input: func() proto.Message { m := &pb2.Extensions{} proto.SetExtension(m, pb2.E_RptExtEnum, []pb2.Enum{pb2.Enum_TEN, 101, pb2.Enum_ONE}) proto.SetExtension(m, pb2.E_RptExtFixed32, []uint32{42, 47}) proto.SetExtension(m, pb2.E_RptExtNested, []*pb2.Nested{ &pb2.Nested{OptString: proto.String("one")}, &pb2.Nested{OptString: proto.String("two")}, &pb2.Nested{OptString: proto.String("three")}, }) return m }(), want: `[pb2.rpt_ext_enum]: TEN [pb2.rpt_ext_enum]: 101 [pb2.rpt_ext_enum]: ONE [pb2.rpt_ext_fixed32]: 42 [pb2.rpt_ext_fixed32]: 47 [pb2.rpt_ext_nested]: { opt_string: "one" } [pb2.rpt_ext_nested]: { opt_string: "two" } [pb2.rpt_ext_nested]: { opt_string: "three" } `, }, { desc: "extensions of non-repeated fields in another message", input: func() proto.Message { m := &pb2.Extensions{} proto.SetExtension(m, pb2.E_ExtensionsContainer_OptExtBool, true) proto.SetExtension(m, pb2.E_ExtensionsContainer_OptExtString, "extension field") proto.SetExtension(m, pb2.E_ExtensionsContainer_OptExtEnum, pb2.Enum_TEN) proto.SetExtension(m, pb2.E_ExtensionsContainer_OptExtNested, &pb2.Nested{ OptString: proto.String("nested in an extension"), OptNested: &pb2.Nested{ OptString: proto.String("another nested in an extension"), }, }) return m }(), want: `[pb2.ExtensionsContainer.opt_ext_bool]: true [pb2.ExtensionsContainer.opt_ext_enum]: TEN [pb2.ExtensionsContainer.opt_ext_nested]: { opt_string: "nested in an extension" opt_nested: { opt_string: "another nested in an extension" } } [pb2.ExtensionsContainer.opt_ext_string]: "extension field" `, }, { desc: "extensions of repeated fields in another message", input: func() proto.Message { m := &pb2.Extensions{ OptString: proto.String("non-extension field"), OptBool: proto.Bool(true), OptInt32: proto.Int32(42), } proto.SetExtension(m, pb2.E_ExtensionsContainer_RptExtEnum, []pb2.Enum{pb2.Enum_TEN, 101, pb2.Enum_ONE}) proto.SetExtension(m, pb2.E_ExtensionsContainer_RptExtString, []string{"hello", "world"}) proto.SetExtension(m, pb2.E_ExtensionsContainer_RptExtNested, []*pb2.Nested{ &pb2.Nested{OptString: proto.String("one")}, &pb2.Nested{OptString: proto.String("two")}, &pb2.Nested{OptString: proto.String("three")}, }) return m }(), want: `opt_string: "non-extension field" opt_bool: true opt_int32: 42 [pb2.ExtensionsContainer.rpt_ext_enum]: TEN [pb2.ExtensionsContainer.rpt_ext_enum]: 101 [pb2.ExtensionsContainer.rpt_ext_enum]: ONE [pb2.ExtensionsContainer.rpt_ext_nested]: { opt_string: "one" } [pb2.ExtensionsContainer.rpt_ext_nested]: { opt_string: "two" } [pb2.ExtensionsContainer.rpt_ext_nested]: { opt_string: "three" } [pb2.ExtensionsContainer.rpt_ext_string]: "hello" [pb2.ExtensionsContainer.rpt_ext_string]: "world" `, }, { desc: "MessageSet", input: func() proto.Message { m := &pb2.MessageSet{} proto.SetExtension(m, pb2.E_MessageSetExtension_MessageSetExtension, &pb2.MessageSetExtension{ OptString: proto.String("a messageset extension"), }) proto.SetExtension(m, pb2.E_MessageSetExtension_NotMessageSetExtension, &pb2.MessageSetExtension{ OptString: proto.String("not a messageset extension"), }) proto.SetExtension(m, pb2.E_MessageSetExtension_ExtNested, &pb2.Nested{ OptString: proto.String("just a regular extension"), }) return m }(), want: `[pb2.MessageSetExtension.ext_nested]: { opt_string: "just a regular extension" } [pb2.MessageSetExtension]: { opt_string: "a messageset extension" } [pb2.MessageSetExtension.not_message_set_extension]: { opt_string: "not a messageset extension" } `, skip: !flags.ProtoLegacy, }, { desc: "not real MessageSet 1", input: func() proto.Message { m := &pb2.FakeMessageSet{} proto.SetExtension(m, pb2.E_FakeMessageSetExtension_MessageSetExtension, &pb2.FakeMessageSetExtension{ OptString: proto.String("not a messageset extension"), }) return m }(), want: `[pb2.FakeMessageSetExtension.message_set_extension]: { opt_string: "not a messageset extension" } `, skip: !flags.ProtoLegacy, }, { desc: "not real MessageSet 2", input: func() proto.Message { m := &pb2.MessageSet{} proto.SetExtension(m, pb2.E_MessageSetExtension, &pb2.FakeMessageSetExtension{ OptString: proto.String("another not a messageset extension"), }) return m }(), want: `[pb2.message_set_extension]: { opt_string: "another not a messageset extension" } `, skip: !flags.ProtoLegacy, }, { desc: "Any not expanded", mo: prototext.MarshalOptions{ Resolver: new(preg.Types), }, input: func() proto.Message { m := &pb2.Nested{ OptString: proto.String("embedded inside Any"), OptNested: &pb2.Nested{ OptString: proto.String("inception"), }, } b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: "pb2.Nested", Value: b, } }(), want: `type_url: "pb2.Nested" value: "\n\x13embedded inside Any\x12\x0b\n\tinception" `, }, { desc: "Any expanded", input: func() proto.Message { m := &pb2.Nested{ OptString: proto.String("embedded inside Any"), OptNested: &pb2.Nested{ OptString: proto.String("inception"), }, } b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: "foo/pb2.Nested", Value: b, } }(), want: `[foo/pb2.Nested]: { opt_string: "embedded inside Any" opt_nested: { opt_string: "inception" } } `, }, { desc: "Any expanded with missing required", input: func() proto.Message { m := &pb2.PartialRequired{ OptString: proto.String("embedded inside Any"), } b, err := proto.MarshalOptions{ AllowPartial: true, Deterministic: true, }.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &anypb.Any{ TypeUrl: string(m.ProtoReflect().Descriptor().FullName()), Value: b, } }(), want: `[pb2.PartialRequired]: { opt_string: "embedded inside Any" } `, }, { desc: "Any with invalid value", input: &anypb.Any{ TypeUrl: "foo/pb2.Nested", Value: []byte("\x80"), }, want: `type_url: "foo/pb2.Nested" value: "\x80" `, }, { desc: "Any expanded in another message", input: func() *pb2.KnownTypes { m1 := &pb2.Nested{ OptString: proto.String("message inside Any of another Any field"), } b1, err := proto.MarshalOptions{Deterministic: true}.Marshal(m1) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } m2 := &anypb.Any{ TypeUrl: "pb2.Nested", Value: b1, } b2, err := proto.MarshalOptions{Deterministic: true}.Marshal(m2) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &pb2.KnownTypes{ OptAny: &anypb.Any{ TypeUrl: "google.protobuf.Any", Value: b2, }, } }(), want: `opt_any: { [google.protobuf.Any]: { [pb2.Nested]: { opt_string: "message inside Any of another Any field" } } } `, }, { desc: "Any expanded with invalid UTF-8 in proto2", input: func() *pb2.KnownTypes { m := &pb2.Nested{ OptString: proto.String("invalid UTF-8 abc\xff"), } b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &pb2.KnownTypes{ OptAny: &anypb.Any{ TypeUrl: "pb2.Nested", Value: b, }, } }(), want: `opt_any: { [pb2.Nested]: { opt_string: "invalid UTF-8 abc\xff" } } `, }, { desc: "Any not expanded due to invalid data", mo: prototext.MarshalOptions{EmitASCII: true}, input: func() *pb2.KnownTypes { return &pb2.KnownTypes{ OptAny: &anypb.Any{ TypeUrl: "pb3.Scalar", Value: []byte("\xde\xad\xbe\xef"), }, } }(), want: `opt_any: { type_url: "pb3.Scalar" value: "\u07ad\xbe\xef" } `, }, { desc: "Any inside Any expanded", input: func() *pb2.KnownTypes { m1 := &pb2.Nested{ OptString: proto.String("invalid UTF-8 abc\xff"), } b1, err := proto.MarshalOptions{Deterministic: true}.Marshal(m1) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } m2 := &anypb.Any{ TypeUrl: "pb2.Nested", Value: b1, } b2, err := proto.MarshalOptions{Deterministic: true}.Marshal(m2) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &pb2.KnownTypes{ OptAny: &anypb.Any{ TypeUrl: "google.protobuf.Any", Value: b2, }, } }(), want: `opt_any: { [google.protobuf.Any]: { [pb2.Nested]: { opt_string: "invalid UTF-8 abc\xff" } } } `, }, { desc: "Any inside Any not expanded due to invalid data", mo: prototext.MarshalOptions{EmitASCII: true}, input: func() *pb2.KnownTypes { m := &anypb.Any{ TypeUrl: "pb2.Nested", Value: []byte("\xde\xad\xbe\xef"), } b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &pb2.KnownTypes{ OptAny: &anypb.Any{ TypeUrl: "google.protobuf.Any", Value: b, }, } }(), want: `opt_any: { [google.protobuf.Any]: { type_url: "pb2.Nested" value: "\u07ad\xbe\xef" } } `, }} for _, tt := range tests { tt := tt if tt.skip { continue } t.Run(tt.desc, func(t *testing.T) { // Use 2-space indentation on all MarshalOptions. tt.mo.Indent = " " b, err := tt.mo.Marshal(tt.input) if err != nil && !tt.wantErr { t.Errorf("Marshal() returned error: %v\n", err) } if err == nil && tt.wantErr { t.Error("Marshal() got nil error, want error\n") } got := string(b) if tt.want != "" && got != tt.want { t.Errorf("Marshal()\n\n%v\n\n%v\n", got, tt.want) if diff := cmp.Diff(tt.want, got); diff != "" { t.Errorf("Marshal() diff -want +got\n%v\n", diff) } } }) } } golang-google-protobuf-1.27.1/encoding/prototext/other_test.go000066400000000000000000000143201411250152500245220ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package prototext_test import ( "testing" "google.golang.org/protobuf/encoding/prototext" "google.golang.org/protobuf/proto" preg "google.golang.org/protobuf/reflect/protoregistry" pb2 "google.golang.org/protobuf/internal/testprotos/textpb2" "google.golang.org/protobuf/types/known/anypb" "google.golang.org/protobuf/types/known/durationpb" "google.golang.org/protobuf/types/known/emptypb" "google.golang.org/protobuf/types/known/structpb" "google.golang.org/protobuf/types/known/timestamppb" "google.golang.org/protobuf/types/known/wrapperspb" ) func TestRoundTrip(t *testing.T) { tests := []struct { desc string resolver *preg.Types message proto.Message }{{ desc: "well-known type fields set to empty messages", message: &pb2.KnownTypes{ OptBool: &wrapperspb.BoolValue{}, OptInt32: &wrapperspb.Int32Value{}, OptInt64: &wrapperspb.Int64Value{}, OptUint32: &wrapperspb.UInt32Value{}, OptUint64: &wrapperspb.UInt64Value{}, OptFloat: &wrapperspb.FloatValue{}, OptDouble: &wrapperspb.DoubleValue{}, OptString: &wrapperspb.StringValue{}, OptBytes: &wrapperspb.BytesValue{}, OptDuration: &durationpb.Duration{}, OptTimestamp: ×tamppb.Timestamp{}, OptStruct: &structpb.Struct{}, OptList: &structpb.ListValue{}, OptValue: &structpb.Value{}, OptEmpty: &emptypb.Empty{}, OptAny: &anypb.Any{}, }, }, { desc: "well-known type scalar fields", message: &pb2.KnownTypes{ OptBool: &wrapperspb.BoolValue{ Value: true, }, OptInt32: &wrapperspb.Int32Value{ Value: -42, }, OptInt64: &wrapperspb.Int64Value{ Value: -42, }, OptUint32: &wrapperspb.UInt32Value{ Value: 0xff, }, OptUint64: &wrapperspb.UInt64Value{ Value: 0xffff, }, OptFloat: &wrapperspb.FloatValue{ Value: 1.234, }, OptDouble: &wrapperspb.DoubleValue{ Value: 1.23e308, }, OptString: &wrapperspb.StringValue{ Value: "谷歌", }, OptBytes: &wrapperspb.BytesValue{ Value: []byte("\xe8\xb0\xb7\xe6\xad\x8c"), }, }, }, { desc: "well-known type time-related fields", message: &pb2.KnownTypes{ OptDuration: &durationpb.Duration{ Seconds: -3600, Nanos: -123, }, OptTimestamp: ×tamppb.Timestamp{ Seconds: 1257894000, Nanos: 123, }, }, }, { desc: "Struct field and different Value types", message: &pb2.KnownTypes{ OptStruct: &structpb.Struct{ Fields: map[string]*structpb.Value{ "bool": &structpb.Value{ Kind: &structpb.Value_BoolValue{ BoolValue: true, }, }, "double": &structpb.Value{ Kind: &structpb.Value_NumberValue{ NumberValue: 3.1415, }, }, "null": &structpb.Value{ Kind: &structpb.Value_NullValue{ NullValue: structpb.NullValue_NULL_VALUE, }, }, "string": &structpb.Value{ Kind: &structpb.Value_StringValue{ StringValue: "string", }, }, "struct": &structpb.Value{ Kind: &structpb.Value_StructValue{ StructValue: &structpb.Struct{ Fields: map[string]*structpb.Value{ "bool": &structpb.Value{ Kind: &structpb.Value_BoolValue{ BoolValue: false, }, }, }, }, }, }, "list": &structpb.Value{ Kind: &structpb.Value_ListValue{ ListValue: &structpb.ListValue{ Values: []*structpb.Value{ { Kind: &structpb.Value_BoolValue{ BoolValue: false, }, }, { Kind: &structpb.Value_StringValue{ StringValue: "hello", }, }, }, }, }, }, }, }, }, }, { desc: "Any field without registered type", resolver: new(preg.Types), message: func() proto.Message { m := &pb2.Nested{ OptString: proto.String("embedded inside Any"), OptNested: &pb2.Nested{ OptString: proto.String("inception"), }, } b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &pb2.KnownTypes{ OptAny: &anypb.Any{ TypeUrl: string(m.ProtoReflect().Descriptor().FullName()), Value: b, }, } }(), }, { desc: "Any field with registered type", message: func() *pb2.KnownTypes { m := &pb2.Nested{ OptString: proto.String("embedded inside Any"), OptNested: &pb2.Nested{ OptString: proto.String("inception"), }, } b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &pb2.KnownTypes{ OptAny: &anypb.Any{ TypeUrl: string(m.ProtoReflect().Descriptor().FullName()), Value: b, }, } }(), }, { desc: "Any field containing Any message", message: func() *pb2.KnownTypes { m1 := &pb2.Nested{ OptString: proto.String("message inside Any of another Any field"), } b1, err := proto.MarshalOptions{Deterministic: true}.Marshal(m1) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } m2 := &anypb.Any{ TypeUrl: "pb2.Nested", Value: b1, } b2, err := proto.MarshalOptions{Deterministic: true}.Marshal(m2) if err != nil { t.Fatalf("error in binary marshaling message for Any.value: %v", err) } return &pb2.KnownTypes{ OptAny: &anypb.Any{ TypeUrl: "google.protobuf.Any", Value: b2, }, } }(), }} for _, tt := range tests { tt := tt t.Run(tt.desc, func(t *testing.T) { t.Parallel() b, err := prototext.MarshalOptions{Resolver: tt.resolver}.Marshal(tt.message) if err != nil { t.Errorf("Marshal() returned error: %v\n\n", err) } gotMessage := new(pb2.KnownTypes) err = prototext.UnmarshalOptions{Resolver: tt.resolver}.Unmarshal(b, gotMessage) if err != nil { t.Errorf("Unmarshal() returned error: %v\n\n", err) } if !proto.Equal(gotMessage, tt.message) { t.Errorf("Unmarshal()\n\n%v\n\n%v\n", gotMessage, tt.message) } }) } } golang-google-protobuf-1.27.1/encoding/protowire/000077500000000000000000000000001411250152500217755ustar00rootroot00000000000000golang-google-protobuf-1.27.1/encoding/protowire/wire.go000066400000000000000000000320521411250152500232740ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package protowire parses and formats the raw wire encoding. // See https://developers.google.com/protocol-buffers/docs/encoding. // // For marshaling and unmarshaling entire protobuf messages, // use the "google.golang.org/protobuf/proto" package instead. package protowire import ( "io" "math" "math/bits" "google.golang.org/protobuf/internal/errors" ) // Number represents the field number. type Number int32 const ( MinValidNumber Number = 1 FirstReservedNumber Number = 19000 LastReservedNumber Number = 19999 MaxValidNumber Number = 1<<29 - 1 ) // IsValid reports whether the field number is semantically valid. // // Note that while numbers within the reserved range are semantically invalid, // they are syntactically valid in the wire format. // Implementations may treat records with reserved field numbers as unknown. func (n Number) IsValid() bool { return MinValidNumber <= n && n < FirstReservedNumber || LastReservedNumber < n && n <= MaxValidNumber } // Type represents the wire type. type Type int8 const ( VarintType Type = 0 Fixed32Type Type = 5 Fixed64Type Type = 1 BytesType Type = 2 StartGroupType Type = 3 EndGroupType Type = 4 ) const ( _ = -iota errCodeTruncated errCodeFieldNumber errCodeOverflow errCodeReserved errCodeEndGroup ) var ( errFieldNumber = errors.New("invalid field number") errOverflow = errors.New("variable length integer overflow") errReserved = errors.New("cannot parse reserved wire type") errEndGroup = errors.New("mismatching end group marker") errParse = errors.New("parse error") ) // ParseError converts an error code into an error value. // This returns nil if n is a non-negative number. func ParseError(n int) error { if n >= 0 { return nil } switch n { case errCodeTruncated: return io.ErrUnexpectedEOF case errCodeFieldNumber: return errFieldNumber case errCodeOverflow: return errOverflow case errCodeReserved: return errReserved case errCodeEndGroup: return errEndGroup default: return errParse } } // ConsumeField parses an entire field record (both tag and value) and returns // the field number, the wire type, and the total length. // This returns a negative length upon an error (see ParseError). // // The total length includes the tag header and the end group marker (if the // field is a group). func ConsumeField(b []byte) (Number, Type, int) { num, typ, n := ConsumeTag(b) if n < 0 { return 0, 0, n // forward error code } m := ConsumeFieldValue(num, typ, b[n:]) if m < 0 { return 0, 0, m // forward error code } return num, typ, n + m } // ConsumeFieldValue parses a field value and returns its length. // This assumes that the field Number and wire Type have already been parsed. // This returns a negative length upon an error (see ParseError). // // When parsing a group, the length includes the end group marker and // the end group is verified to match the starting field number. func ConsumeFieldValue(num Number, typ Type, b []byte) (n int) { switch typ { case VarintType: _, n = ConsumeVarint(b) return n case Fixed32Type: _, n = ConsumeFixed32(b) return n case Fixed64Type: _, n = ConsumeFixed64(b) return n case BytesType: _, n = ConsumeBytes(b) return n case StartGroupType: n0 := len(b) for { num2, typ2, n := ConsumeTag(b) if n < 0 { return n // forward error code } b = b[n:] if typ2 == EndGroupType { if num != num2 { return errCodeEndGroup } return n0 - len(b) } n = ConsumeFieldValue(num2, typ2, b) if n < 0 { return n // forward error code } b = b[n:] } case EndGroupType: return errCodeEndGroup default: return errCodeReserved } } // AppendTag encodes num and typ as a varint-encoded tag and appends it to b. func AppendTag(b []byte, num Number, typ Type) []byte { return AppendVarint(b, EncodeTag(num, typ)) } // ConsumeTag parses b as a varint-encoded tag, reporting its length. // This returns a negative length upon an error (see ParseError). func ConsumeTag(b []byte) (Number, Type, int) { v, n := ConsumeVarint(b) if n < 0 { return 0, 0, n // forward error code } num, typ := DecodeTag(v) if num < MinValidNumber { return 0, 0, errCodeFieldNumber } return num, typ, n } func SizeTag(num Number) int { return SizeVarint(EncodeTag(num, 0)) // wire type has no effect on size } // AppendVarint appends v to b as a varint-encoded uint64. func AppendVarint(b []byte, v uint64) []byte { switch { case v < 1<<7: b = append(b, byte(v)) case v < 1<<14: b = append(b, byte((v>>0)&0x7f|0x80), byte(v>>7)) case v < 1<<21: b = append(b, byte((v>>0)&0x7f|0x80), byte((v>>7)&0x7f|0x80), byte(v>>14)) case v < 1<<28: b = append(b, byte((v>>0)&0x7f|0x80), byte((v>>7)&0x7f|0x80), byte((v>>14)&0x7f|0x80), byte(v>>21)) case v < 1<<35: b = append(b, byte((v>>0)&0x7f|0x80), byte((v>>7)&0x7f|0x80), byte((v>>14)&0x7f|0x80), byte((v>>21)&0x7f|0x80), byte(v>>28)) case v < 1<<42: b = append(b, byte((v>>0)&0x7f|0x80), byte((v>>7)&0x7f|0x80), byte((v>>14)&0x7f|0x80), byte((v>>21)&0x7f|0x80), byte((v>>28)&0x7f|0x80), byte(v>>35)) case v < 1<<49: b = append(b, byte((v>>0)&0x7f|0x80), byte((v>>7)&0x7f|0x80), byte((v>>14)&0x7f|0x80), byte((v>>21)&0x7f|0x80), byte((v>>28)&0x7f|0x80), byte((v>>35)&0x7f|0x80), byte(v>>42)) case v < 1<<56: b = append(b, byte((v>>0)&0x7f|0x80), byte((v>>7)&0x7f|0x80), byte((v>>14)&0x7f|0x80), byte((v>>21)&0x7f|0x80), byte((v>>28)&0x7f|0x80), byte((v>>35)&0x7f|0x80), byte((v>>42)&0x7f|0x80), byte(v>>49)) case v < 1<<63: b = append(b, byte((v>>0)&0x7f|0x80), byte((v>>7)&0x7f|0x80), byte((v>>14)&0x7f|0x80), byte((v>>21)&0x7f|0x80), byte((v>>28)&0x7f|0x80), byte((v>>35)&0x7f|0x80), byte((v>>42)&0x7f|0x80), byte((v>>49)&0x7f|0x80), byte(v>>56)) default: b = append(b, byte((v>>0)&0x7f|0x80), byte((v>>7)&0x7f|0x80), byte((v>>14)&0x7f|0x80), byte((v>>21)&0x7f|0x80), byte((v>>28)&0x7f|0x80), byte((v>>35)&0x7f|0x80), byte((v>>42)&0x7f|0x80), byte((v>>49)&0x7f|0x80), byte((v>>56)&0x7f|0x80), 1) } return b } // ConsumeVarint parses b as a varint-encoded uint64, reporting its length. // This returns a negative length upon an error (see ParseError). func ConsumeVarint(b []byte) (v uint64, n int) { var y uint64 if len(b) <= 0 { return 0, errCodeTruncated } v = uint64(b[0]) if v < 0x80 { return v, 1 } v -= 0x80 if len(b) <= 1 { return 0, errCodeTruncated } y = uint64(b[1]) v += y << 7 if y < 0x80 { return v, 2 } v -= 0x80 << 7 if len(b) <= 2 { return 0, errCodeTruncated } y = uint64(b[2]) v += y << 14 if y < 0x80 { return v, 3 } v -= 0x80 << 14 if len(b) <= 3 { return 0, errCodeTruncated } y = uint64(b[3]) v += y << 21 if y < 0x80 { return v, 4 } v -= 0x80 << 21 if len(b) <= 4 { return 0, errCodeTruncated } y = uint64(b[4]) v += y << 28 if y < 0x80 { return v, 5 } v -= 0x80 << 28 if len(b) <= 5 { return 0, errCodeTruncated } y = uint64(b[5]) v += y << 35 if y < 0x80 { return v, 6 } v -= 0x80 << 35 if len(b) <= 6 { return 0, errCodeTruncated } y = uint64(b[6]) v += y << 42 if y < 0x80 { return v, 7 } v -= 0x80 << 42 if len(b) <= 7 { return 0, errCodeTruncated } y = uint64(b[7]) v += y << 49 if y < 0x80 { return v, 8 } v -= 0x80 << 49 if len(b) <= 8 { return 0, errCodeTruncated } y = uint64(b[8]) v += y << 56 if y < 0x80 { return v, 9 } v -= 0x80 << 56 if len(b) <= 9 { return 0, errCodeTruncated } y = uint64(b[9]) v += y << 63 if y < 2 { return v, 10 } return 0, errCodeOverflow } // SizeVarint returns the encoded size of a varint. // The size is guaranteed to be within 1 and 10, inclusive. func SizeVarint(v uint64) int { // This computes 1 + (bits.Len64(v)-1)/7. // 9/64 is a good enough approximation of 1/7 return int(9*uint32(bits.Len64(v))+64) / 64 } // AppendFixed32 appends v to b as a little-endian uint32. func AppendFixed32(b []byte, v uint32) []byte { return append(b, byte(v>>0), byte(v>>8), byte(v>>16), byte(v>>24)) } // ConsumeFixed32 parses b as a little-endian uint32, reporting its length. // This returns a negative length upon an error (see ParseError). func ConsumeFixed32(b []byte) (v uint32, n int) { if len(b) < 4 { return 0, errCodeTruncated } v = uint32(b[0])<<0 | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 return v, 4 } // SizeFixed32 returns the encoded size of a fixed32; which is always 4. func SizeFixed32() int { return 4 } // AppendFixed64 appends v to b as a little-endian uint64. func AppendFixed64(b []byte, v uint64) []byte { return append(b, byte(v>>0), byte(v>>8), byte(v>>16), byte(v>>24), byte(v>>32), byte(v>>40), byte(v>>48), byte(v>>56)) } // ConsumeFixed64 parses b as a little-endian uint64, reporting its length. // This returns a negative length upon an error (see ParseError). func ConsumeFixed64(b []byte) (v uint64, n int) { if len(b) < 8 { return 0, errCodeTruncated } v = uint64(b[0])<<0 | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 return v, 8 } // SizeFixed64 returns the encoded size of a fixed64; which is always 8. func SizeFixed64() int { return 8 } // AppendBytes appends v to b as a length-prefixed bytes value. func AppendBytes(b []byte, v []byte) []byte { return append(AppendVarint(b, uint64(len(v))), v...) } // ConsumeBytes parses b as a length-prefixed bytes value, reporting its length. // This returns a negative length upon an error (see ParseError). func ConsumeBytes(b []byte) (v []byte, n int) { m, n := ConsumeVarint(b) if n < 0 { return nil, n // forward error code } if m > uint64(len(b[n:])) { return nil, errCodeTruncated } return b[n:][:m], n + int(m) } // SizeBytes returns the encoded size of a length-prefixed bytes value, // given only the length. func SizeBytes(n int) int { return SizeVarint(uint64(n)) + n } // AppendString appends v to b as a length-prefixed bytes value. func AppendString(b []byte, v string) []byte { return append(AppendVarint(b, uint64(len(v))), v...) } // ConsumeString parses b as a length-prefixed bytes value, reporting its length. // This returns a negative length upon an error (see ParseError). func ConsumeString(b []byte) (v string, n int) { bb, n := ConsumeBytes(b) return string(bb), n } // AppendGroup appends v to b as group value, with a trailing end group marker. // The value v must not contain the end marker. func AppendGroup(b []byte, num Number, v []byte) []byte { return AppendVarint(append(b, v...), EncodeTag(num, EndGroupType)) } // ConsumeGroup parses b as a group value until the trailing end group marker, // and verifies that the end marker matches the provided num. The value v // does not contain the end marker, while the length does contain the end marker. // This returns a negative length upon an error (see ParseError). func ConsumeGroup(num Number, b []byte) (v []byte, n int) { n = ConsumeFieldValue(num, StartGroupType, b) if n < 0 { return nil, n // forward error code } b = b[:n] // Truncate off end group marker, but need to handle denormalized varints. // Assuming end marker is never 0 (which is always the case since // EndGroupType is non-zero), we can truncate all trailing bytes where the // lower 7 bits are all zero (implying that the varint is denormalized). for len(b) > 0 && b[len(b)-1]&0x7f == 0 { b = b[:len(b)-1] } b = b[:len(b)-SizeTag(num)] return b, n } // SizeGroup returns the encoded size of a group, given only the length. func SizeGroup(num Number, n int) int { return n + SizeTag(num) } // DecodeTag decodes the field Number and wire Type from its unified form. // The Number is -1 if the decoded field number overflows int32. // Other than overflow, this does not check for field number validity. func DecodeTag(x uint64) (Number, Type) { // NOTE: MessageSet allows for larger field numbers than normal. if x>>3 > uint64(math.MaxInt32) { return -1, 0 } return Number(x >> 3), Type(x & 7) } // EncodeTag encodes the field Number and wire Type into its unified form. func EncodeTag(num Number, typ Type) uint64 { return uint64(num)<<3 | uint64(typ&7) } // DecodeZigZag decodes a zig-zag-encoded uint64 as an int64. // Input: {…, 5, 3, 1, 0, 2, 4, 6, …} // Output: {…, -3, -2, -1, 0, +1, +2, +3, …} func DecodeZigZag(x uint64) int64 { return int64(x>>1) ^ int64(x)<<63>>63 } // EncodeZigZag encodes an int64 as a zig-zag-encoded uint64. // Input: {…, -3, -2, -1, 0, +1, +2, +3, …} // Output: {…, 5, 3, 1, 0, 2, 4, 6, …} func EncodeZigZag(x int64) uint64 { return uint64(x<<1) ^ uint64(x>>63) } // DecodeBool decodes a uint64 as a bool. // Input: { 0, 1, 2, …} // Output: {false, true, true, …} func DecodeBool(x uint64) bool { return x != 0 } // EncodeBool encodes a bool as a uint64. // Input: {false, true} // Output: { 0, 1} func EncodeBool(x bool) uint64 { if x { return 1 } return 0 } golang-google-protobuf-1.27.1/encoding/protowire/wire_test.go000066400000000000000000000554251411250152500243440ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protowire import ( "bytes" "encoding/hex" "io" "math" "strings" "testing" ) type ( testOps struct { // appendOps is a sequence of append operations, each appending to // the output of the previous append operation. appendOps []appendOp // wantRaw (if not nil) is the bytes that the appendOps should produce. wantRaw []byte // consumeOps are a sequence of consume operations, each consuming the // remaining output after the previous consume operation. // The first consume operation starts with the output of appendOps. consumeOps []consumeOp } // appendOp represents an Append operation. appendOp = interface{} appendTag struct { inNum Number inType Type } appendVarint struct { inVal uint64 } appendFixed32 struct { inVal uint32 } appendFixed64 struct { inVal uint64 } appendBytes struct { inVal []byte } appendGroup struct { inNum Number inVal []byte } appendRaw []byte // consumeOp represents an Consume operation. consumeOp = interface{} consumeField struct { wantNum Number wantType Type wantCnt int wantErr error } consumeFieldValue struct { inNum Number inType Type wantCnt int wantErr error } consumeTag struct { wantNum Number wantType Type wantCnt int wantErr error } consumeVarint struct { wantVal uint64 wantCnt int wantErr error } consumeFixed32 struct { wantVal uint32 wantCnt int wantErr error } consumeFixed64 struct { wantVal uint64 wantCnt int wantErr error } consumeBytes struct { wantVal []byte wantCnt int wantErr error } consumeGroup struct { inNum Number wantVal []byte wantCnt int wantErr error } ops []interface{} ) // dhex decodes a hex-string and returns the bytes and panics if s is invalid. func dhex(s string) []byte { b, err := hex.DecodeString(s) if err != nil { panic(err) } return b } func TestTag(t *testing.T) { runTests(t, []testOps{{ appendOps: ops{appendRaw(dhex(""))}, consumeOps: ops{consumeTag{wantErr: io.ErrUnexpectedEOF}}, }, { appendOps: ops{appendTag{inNum: 0, inType: Fixed32Type}}, wantRaw: dhex("05"), consumeOps: ops{consumeTag{wantErr: errFieldNumber}}, }, { appendOps: ops{appendTag{inNum: 1, inType: Fixed32Type}}, wantRaw: dhex("0d"), consumeOps: ops{consumeTag{wantNum: 1, wantType: Fixed32Type, wantCnt: 1}}, }, { appendOps: ops{appendTag{inNum: FirstReservedNumber, inType: BytesType}}, wantRaw: dhex("c2a309"), consumeOps: ops{consumeTag{wantNum: FirstReservedNumber, wantType: BytesType, wantCnt: 3}}, }, { appendOps: ops{appendTag{inNum: LastReservedNumber, inType: StartGroupType}}, wantRaw: dhex("fbe109"), consumeOps: ops{consumeTag{wantNum: LastReservedNumber, wantType: StartGroupType, wantCnt: 3}}, }, { appendOps: ops{appendTag{inNum: MaxValidNumber, inType: VarintType}}, wantRaw: dhex("f8ffffff0f"), consumeOps: ops{consumeTag{wantNum: MaxValidNumber, wantType: VarintType, wantCnt: 5}}, }, { appendOps: ops{appendVarint{inVal: ((math.MaxInt32+1)<<3 | uint64(VarintType))}}, wantRaw: dhex("8080808040"), consumeOps: ops{consumeTag{wantErr: errFieldNumber}}, }}) } func TestVarint(t *testing.T) { runTests(t, []testOps{{ appendOps: ops{appendRaw(dhex(""))}, consumeOps: ops{consumeVarint{wantErr: io.ErrUnexpectedEOF}}, }, { appendOps: ops{appendRaw(dhex("80"))}, consumeOps: ops{consumeVarint{wantErr: io.ErrUnexpectedEOF}}, }, { appendOps: ops{appendRaw(dhex("8080"))}, consumeOps: ops{consumeVarint{wantErr: io.ErrUnexpectedEOF}}, }, { appendOps: ops{appendRaw(dhex("808080"))}, consumeOps: ops{consumeVarint{wantErr: io.ErrUnexpectedEOF}}, }, { appendOps: ops{appendRaw(dhex("80808080"))}, consumeOps: ops{consumeVarint{wantErr: io.ErrUnexpectedEOF}}, }, { appendOps: ops{appendRaw(dhex("8080808080"))}, consumeOps: ops{consumeVarint{wantErr: io.ErrUnexpectedEOF}}, }, { appendOps: ops{appendRaw(dhex("808080808080"))}, consumeOps: ops{consumeVarint{wantErr: io.ErrUnexpectedEOF}}, }, { appendOps: ops{appendRaw(dhex("80808080808080"))}, consumeOps: ops{consumeVarint{wantErr: io.ErrUnexpectedEOF}}, }, { appendOps: ops{appendRaw(dhex("8080808080808080"))}, consumeOps: ops{consumeVarint{wantErr: io.ErrUnexpectedEOF}}, }, { appendOps: ops{appendRaw(dhex("808080808080808080"))}, consumeOps: ops{consumeVarint{wantErr: io.ErrUnexpectedEOF}}, }, { appendOps: ops{appendRaw(dhex("80808080808080808080"))}, consumeOps: ops{consumeVarint{wantErr: errOverflow}}, }, { // Test varints at various boundaries where the length changes. appendOps: ops{appendVarint{inVal: 0x0}}, wantRaw: dhex("00"), consumeOps: ops{consumeVarint{wantVal: 0, wantCnt: 1}}, }, { appendOps: ops{appendVarint{inVal: 0x1}}, wantRaw: dhex("01"), consumeOps: ops{consumeVarint{wantVal: 1, wantCnt: 1}}, }, { appendOps: ops{appendVarint{inVal: 0x7f}}, wantRaw: dhex("7f"), consumeOps: ops{consumeVarint{wantVal: 0x7f, wantCnt: 1}}, }, { appendOps: ops{appendVarint{inVal: 0x7f + 1}}, wantRaw: dhex("8001"), consumeOps: ops{consumeVarint{wantVal: 0x7f + 1, wantCnt: 2}}, }, { appendOps: ops{appendVarint{inVal: 0x3fff}}, wantRaw: dhex("ff7f"), consumeOps: ops{consumeVarint{wantVal: 0x3fff, wantCnt: 2}}, }, { appendOps: ops{appendVarint{inVal: 0x3fff + 1}}, wantRaw: dhex("808001"), consumeOps: ops{consumeVarint{wantVal: 0x3fff + 1, wantCnt: 3}}, }, { appendOps: ops{appendVarint{inVal: 0x1fffff}}, wantRaw: dhex("ffff7f"), consumeOps: ops{consumeVarint{wantVal: 0x1fffff, wantCnt: 3}}, }, { appendOps: ops{appendVarint{inVal: 0x1fffff + 1}}, wantRaw: dhex("80808001"), consumeOps: ops{consumeVarint{wantVal: 0x1fffff + 1, wantCnt: 4}}, }, { appendOps: ops{appendVarint{inVal: 0xfffffff}}, wantRaw: dhex("ffffff7f"), consumeOps: ops{consumeVarint{wantVal: 0xfffffff, wantCnt: 4}}, }, { appendOps: ops{appendVarint{inVal: 0xfffffff + 1}}, wantRaw: dhex("8080808001"), consumeOps: ops{consumeVarint{wantVal: 0xfffffff + 1, wantCnt: 5}}, }, { appendOps: ops{appendVarint{inVal: 0x7ffffffff}}, wantRaw: dhex("ffffffff7f"), consumeOps: ops{consumeVarint{wantVal: 0x7ffffffff, wantCnt: 5}}, }, { appendOps: ops{appendVarint{inVal: 0x7ffffffff + 1}}, wantRaw: dhex("808080808001"), consumeOps: ops{consumeVarint{wantVal: 0x7ffffffff + 1, wantCnt: 6}}, }, { appendOps: ops{appendVarint{inVal: 0x3ffffffffff}}, wantRaw: dhex("ffffffffff7f"), consumeOps: ops{consumeVarint{wantVal: 0x3ffffffffff, wantCnt: 6}}, }, { appendOps: ops{appendVarint{inVal: 0x3ffffffffff + 1}}, wantRaw: dhex("80808080808001"), consumeOps: ops{consumeVarint{wantVal: 0x3ffffffffff + 1, wantCnt: 7}}, }, { appendOps: ops{appendVarint{inVal: 0x1ffffffffffff}}, wantRaw: dhex("ffffffffffff7f"), consumeOps: ops{consumeVarint{wantVal: 0x1ffffffffffff, wantCnt: 7}}, }, { appendOps: ops{appendVarint{inVal: 0x1ffffffffffff + 1}}, wantRaw: dhex("8080808080808001"), consumeOps: ops{consumeVarint{wantVal: 0x1ffffffffffff + 1, wantCnt: 8}}, }, { appendOps: ops{appendVarint{inVal: 0xffffffffffffff}}, wantRaw: dhex("ffffffffffffff7f"), consumeOps: ops{consumeVarint{wantVal: 0xffffffffffffff, wantCnt: 8}}, }, { appendOps: ops{appendVarint{inVal: 0xffffffffffffff + 1}}, wantRaw: dhex("808080808080808001"), consumeOps: ops{consumeVarint{wantVal: 0xffffffffffffff + 1, wantCnt: 9}}, }, { appendOps: ops{appendVarint{inVal: 0x7fffffffffffffff}}, wantRaw: dhex("ffffffffffffffff7f"), consumeOps: ops{consumeVarint{wantVal: 0x7fffffffffffffff, wantCnt: 9}}, }, { appendOps: ops{appendVarint{inVal: 0x7fffffffffffffff + 1}}, wantRaw: dhex("80808080808080808001"), consumeOps: ops{consumeVarint{wantVal: 0x7fffffffffffffff + 1, wantCnt: 10}}, }, { appendOps: ops{appendVarint{inVal: math.MaxUint64}}, wantRaw: dhex("ffffffffffffffffff01"), consumeOps: ops{consumeVarint{wantVal: math.MaxUint64, wantCnt: 10}}, }, { appendOps: ops{appendRaw(dhex("ffffffffffffffffff02"))}, consumeOps: ops{consumeVarint{wantErr: errOverflow}}, }, { // Test denormalized varints; where the encoding, while valid, is // larger than necessary. appendOps: ops{appendRaw(dhex("01"))}, consumeOps: ops{consumeVarint{wantVal: 1, wantCnt: 1}}, }, { appendOps: ops{appendRaw(dhex("8100"))}, consumeOps: ops{consumeVarint{wantVal: 1, wantCnt: 2}}, }, { appendOps: ops{appendRaw(dhex("818000"))}, consumeOps: ops{consumeVarint{wantVal: 1, wantCnt: 3}}, }, { appendOps: ops{appendRaw(dhex("81808000"))}, consumeOps: ops{consumeVarint{wantVal: 1, wantCnt: 4}}, }, { appendOps: ops{appendRaw(dhex("8180808000"))}, consumeOps: ops{consumeVarint{wantVal: 1, wantCnt: 5}}, }, { appendOps: ops{appendRaw(dhex("818080808000"))}, consumeOps: ops{consumeVarint{wantVal: 1, wantCnt: 6}}, }, { appendOps: ops{appendRaw(dhex("81808080808000"))}, consumeOps: ops{consumeVarint{wantVal: 1, wantCnt: 7}}, }, { appendOps: ops{appendRaw(dhex("8180808080808000"))}, consumeOps: ops{consumeVarint{wantVal: 1, wantCnt: 8}}, }, { appendOps: ops{appendRaw(dhex("818080808080808000"))}, consumeOps: ops{consumeVarint{wantVal: 1, wantCnt: 9}}, }, { appendOps: ops{appendRaw(dhex("81808080808080808000"))}, consumeOps: ops{consumeVarint{wantVal: 1, wantCnt: 10}}, }, { appendOps: ops{appendRaw(dhex("8180808080808080808000"))}, consumeOps: ops{consumeVarint{wantErr: errOverflow}}, }}) } func TestFixed32(t *testing.T) { runTests(t, []testOps{{ appendOps: ops{appendRaw(dhex(""))}, consumeOps: ops{consumeFixed32{wantErr: io.ErrUnexpectedEOF}}, }, { appendOps: ops{appendRaw(dhex("000000"))}, consumeOps: ops{consumeFixed32{wantErr: io.ErrUnexpectedEOF}}, }, { appendOps: ops{appendFixed32{0}}, wantRaw: dhex("00000000"), consumeOps: ops{consumeFixed32{wantVal: 0, wantCnt: 4}}, }, { appendOps: ops{appendFixed32{math.MaxUint32}}, wantRaw: dhex("ffffffff"), consumeOps: ops{consumeFixed32{wantVal: math.MaxUint32, wantCnt: 4}}, }, { appendOps: ops{appendFixed32{0xf0e1d2c3}}, wantRaw: dhex("c3d2e1f0"), consumeOps: ops{consumeFixed32{wantVal: 0xf0e1d2c3, wantCnt: 4}}, }}) } func TestFixed64(t *testing.T) { runTests(t, []testOps{{ appendOps: ops{appendRaw(dhex(""))}, consumeOps: ops{consumeFixed64{wantErr: io.ErrUnexpectedEOF}}, }, { appendOps: ops{appendRaw(dhex("00000000000000"))}, consumeOps: ops{consumeFixed64{wantErr: io.ErrUnexpectedEOF}}, }, { appendOps: ops{appendFixed64{0}}, wantRaw: dhex("0000000000000000"), consumeOps: ops{consumeFixed64{wantVal: 0, wantCnt: 8}}, }, { appendOps: ops{appendFixed64{math.MaxUint64}}, wantRaw: dhex("ffffffffffffffff"), consumeOps: ops{consumeFixed64{wantVal: math.MaxUint64, wantCnt: 8}}, }, { appendOps: ops{appendFixed64{0xf0e1d2c3b4a59687}}, wantRaw: dhex("8796a5b4c3d2e1f0"), consumeOps: ops{consumeFixed64{wantVal: 0xf0e1d2c3b4a59687, wantCnt: 8}}, }}) } func TestBytes(t *testing.T) { runTests(t, []testOps{{ appendOps: ops{appendRaw(dhex(""))}, consumeOps: ops{consumeBytes{wantErr: io.ErrUnexpectedEOF}}, }, { appendOps: ops{appendRaw(dhex("01"))}, consumeOps: ops{consumeBytes{wantErr: io.ErrUnexpectedEOF}}, }, { appendOps: ops{appendVarint{0}, appendRaw("")}, wantRaw: dhex("00"), consumeOps: ops{consumeBytes{wantVal: dhex(""), wantCnt: 1}}, }, { appendOps: ops{appendBytes{[]byte("hello")}}, wantRaw: []byte("\x05hello"), consumeOps: ops{consumeBytes{wantVal: []byte("hello"), wantCnt: 6}}, }, { appendOps: ops{appendBytes{[]byte(strings.Repeat("hello", 50))}}, wantRaw: []byte("\xfa\x01" + strings.Repeat("hello", 50)), consumeOps: ops{consumeBytes{wantVal: []byte(strings.Repeat("hello", 50)), wantCnt: 252}}, }, { appendOps: ops{appendRaw("\x85\x80\x00hello")}, consumeOps: ops{consumeBytes{wantVal: []byte("hello"), wantCnt: 8}}, }, { appendOps: ops{appendRaw("\x85\x80\x00hell")}, consumeOps: ops{consumeBytes{wantErr: io.ErrUnexpectedEOF}}, }}) } func TestGroup(t *testing.T) { runTests(t, []testOps{{ appendOps: ops{appendRaw(dhex(""))}, consumeOps: ops{consumeGroup{wantErr: io.ErrUnexpectedEOF}}, }, { appendOps: ops{appendTag{inNum: 0, inType: StartGroupType}}, consumeOps: ops{consumeGroup{inNum: 1, wantErr: errFieldNumber}}, }, { appendOps: ops{appendTag{inNum: 2, inType: EndGroupType}}, consumeOps: ops{consumeGroup{inNum: 1, wantErr: errEndGroup}}, }, { appendOps: ops{appendTag{inNum: 1, inType: EndGroupType}}, consumeOps: ops{consumeGroup{inNum: 1, wantCnt: 1}}, }, { appendOps: ops{ appendTag{inNum: 5, inType: Fixed32Type}, appendFixed32{0xf0e1d2c3}, appendTag{inNum: 5, inType: EndGroupType}, }, wantRaw: dhex("2dc3d2e1f02c"), consumeOps: ops{consumeGroup{inNum: 5, wantVal: dhex("2dc3d2e1f0"), wantCnt: 6}}, }, { appendOps: ops{ appendTag{inNum: 5, inType: Fixed32Type}, appendFixed32{0xf0e1d2c3}, appendRaw(dhex("ac808000")), }, consumeOps: ops{consumeGroup{inNum: 5, wantVal: dhex("2dc3d2e1f0"), wantCnt: 9}}, }}) } func TestField(t *testing.T) { runTests(t, []testOps{{ appendOps: ops{appendRaw(dhex(""))}, consumeOps: ops{consumeField{wantErr: io.ErrUnexpectedEOF}}, }, { appendOps: ops{ appendTag{inNum: 5000, inType: StartGroupType}, appendTag{inNum: 1, inType: VarintType}, appendVarint{123456789}, appendTag{inNum: 12, inType: Fixed32Type}, appendFixed32{123456789}, appendTag{inNum: 123, inType: Fixed64Type}, appendFixed64{123456789}, appendTag{inNum: 1234, inType: BytesType}, appendBytes{[]byte("hello")}, appendTag{inNum: 12345, inType: StartGroupType}, appendTag{inNum: 11, inType: VarintType}, appendVarint{123456789}, appendTag{inNum: 1212, inType: Fixed32Type}, appendFixed32{123456789}, appendTag{inNum: 123123, inType: Fixed64Type}, appendFixed64{123456789}, appendTag{inNum: 12341234, inType: BytesType}, appendBytes{[]byte("goodbye")}, appendTag{inNum: 12345, inType: EndGroupType}, appendTag{inNum: 5000, inType: EndGroupType}, }, wantRaw: dhex("c3b80208959aef3a6515cd5b07d90715cd5b0700000000924d0568656c6c6fcb830658959aef3ae54b15cd5b07998f3c15cd5b070000000092ff892f07676f6f64627965cc8306c4b802"), consumeOps: ops{ consumeTag{wantNum: 5000, wantType: StartGroupType, wantCnt: 3}, consumeTag{wantNum: 1, wantType: VarintType, wantCnt: 1}, consumeVarint{wantVal: 123456789, wantCnt: 4}, consumeTag{wantNum: 12, wantType: Fixed32Type, wantCnt: 1}, consumeFixed32{wantVal: 123456789, wantCnt: 4}, consumeTag{wantNum: 123, wantType: Fixed64Type, wantCnt: 2}, consumeFixed64{wantVal: 123456789, wantCnt: 8}, consumeTag{wantNum: 1234, wantType: BytesType, wantCnt: 2}, consumeBytes{wantVal: []byte("hello"), wantCnt: 6}, consumeTag{wantNum: 12345, wantType: StartGroupType, wantCnt: 3}, consumeTag{wantNum: 11, wantType: VarintType, wantCnt: 1}, consumeVarint{wantVal: 123456789, wantCnt: 4}, consumeTag{wantNum: 1212, wantType: Fixed32Type, wantCnt: 2}, consumeFixed32{wantVal: 123456789, wantCnt: 4}, consumeTag{wantNum: 123123, wantType: Fixed64Type, wantCnt: 3}, consumeFixed64{wantVal: 123456789, wantCnt: 8}, consumeTag{wantNum: 12341234, wantType: BytesType, wantCnt: 4}, consumeBytes{wantVal: []byte("goodbye"), wantCnt: 8}, consumeTag{wantNum: 12345, wantType: EndGroupType, wantCnt: 3}, consumeTag{wantNum: 5000, wantType: EndGroupType, wantCnt: 3}, }, }, { appendOps: ops{appendRaw(dhex("c3b80208959aef3a6515cd5b07d90715cd5b0700000000924d0568656c6c6fcb830658959aef3ae54b15cd5b07998f3c15cd5b070000000092ff892f07676f6f64627965cc8306c4b802"))}, consumeOps: ops{consumeField{wantNum: 5000, wantType: StartGroupType, wantCnt: 74}}, }, { appendOps: ops{appendTag{inNum: 5, inType: EndGroupType}}, wantRaw: dhex("2c"), consumeOps: ops{consumeField{wantErr: errEndGroup}}, }, { appendOps: ops{ appendTag{inNum: 1, inType: StartGroupType}, appendTag{inNum: 22, inType: StartGroupType}, appendTag{inNum: 333, inType: StartGroupType}, appendTag{inNum: 4444, inType: StartGroupType}, appendTag{inNum: 4444, inType: EndGroupType}, appendTag{inNum: 333, inType: EndGroupType}, appendTag{inNum: 22, inType: EndGroupType}, appendTag{inNum: 1, inType: EndGroupType}, }, wantRaw: dhex("0bb301eb14e39502e49502ec14b4010c"), consumeOps: ops{consumeField{wantNum: 1, wantType: StartGroupType, wantCnt: 16}}, }, { appendOps: ops{ appendTag{inNum: 1, inType: StartGroupType}, appendGroup{inNum: 1, inVal: dhex("b301eb14e39502e49502ec14b401")}, }, wantRaw: dhex("0b" + "b301eb14e39502e49502ec14b401" + "0c"), consumeOps: ops{consumeField{wantNum: 1, wantType: StartGroupType, wantCnt: 16}}, }, { appendOps: ops{ appendTag{inNum: 1, inType: StartGroupType}, appendTag{inNum: 22, inType: StartGroupType}, appendTag{inNum: 333, inType: StartGroupType}, appendTag{inNum: 4444, inType: StartGroupType}, appendTag{inNum: 333, inType: EndGroupType}, appendTag{inNum: 22, inType: EndGroupType}, appendTag{inNum: 1, inType: EndGroupType}, }, consumeOps: ops{consumeField{wantErr: errEndGroup}}, }, { appendOps: ops{ appendTag{inNum: 1, inType: StartGroupType}, appendTag{inNum: 22, inType: StartGroupType}, appendTag{inNum: 333, inType: StartGroupType}, appendTag{inNum: 4444, inType: StartGroupType}, appendTag{inNum: 4444, inType: EndGroupType}, appendTag{inNum: 333, inType: EndGroupType}, appendTag{inNum: 22, inType: EndGroupType}, }, consumeOps: ops{consumeField{wantErr: io.ErrUnexpectedEOF}}, }, { appendOps: ops{ appendTag{inNum: 1, inType: StartGroupType}, appendTag{inNum: 22, inType: StartGroupType}, appendTag{inNum: 333, inType: StartGroupType}, appendTag{inNum: 4444, inType: StartGroupType}, appendTag{inNum: 0, inType: VarintType}, appendTag{inNum: 4444, inType: EndGroupType}, appendTag{inNum: 333, inType: EndGroupType}, appendTag{inNum: 22, inType: EndGroupType}, appendTag{inNum: 1, inType: EndGroupType}, }, consumeOps: ops{consumeField{wantErr: errFieldNumber}}, }, { appendOps: ops{ appendTag{inNum: 1, inType: StartGroupType}, appendTag{inNum: 22, inType: StartGroupType}, appendTag{inNum: 333, inType: StartGroupType}, appendTag{inNum: 4444, inType: StartGroupType}, appendTag{inNum: 1, inType: 6}, appendTag{inNum: 4444, inType: EndGroupType}, appendTag{inNum: 333, inType: EndGroupType}, appendTag{inNum: 22, inType: EndGroupType}, appendTag{inNum: 1, inType: EndGroupType}, }, consumeOps: ops{consumeField{wantErr: errReserved}}, }}) } func runTests(t *testing.T, tests []testOps) { for _, tt := range tests { t.Run("", func(t *testing.T) { var b []byte for _, op := range tt.appendOps { b0 := b switch op := op.(type) { case appendTag: b = AppendTag(b, op.inNum, op.inType) case appendVarint: b = AppendVarint(b, op.inVal) case appendFixed32: b = AppendFixed32(b, op.inVal) case appendFixed64: b = AppendFixed64(b, op.inVal) case appendBytes: b = AppendBytes(b, op.inVal) case appendGroup: b = AppendGroup(b, op.inNum, op.inVal) case appendRaw: b = append(b, op...) } check := func(label string, want int) { t.Helper() if got := len(b) - len(b0); got != want { t.Errorf("len(Append%v) and Size%v mismatch: got %v, want %v", label, label, got, want) } } switch op := op.(type) { case appendTag: check("Tag", SizeTag(op.inNum)) case appendVarint: check("Varint", SizeVarint(op.inVal)) case appendFixed32: check("Fixed32", SizeFixed32()) case appendFixed64: check("Fixed64", SizeFixed64()) case appendBytes: check("Bytes", SizeBytes(len(op.inVal))) case appendGroup: check("Group", SizeGroup(op.inNum, len(op.inVal))) } } if tt.wantRaw != nil && !bytes.Equal(b, tt.wantRaw) { t.Errorf("raw output mismatch:\ngot %x\nwant %x", b, tt.wantRaw) } for _, op := range tt.consumeOps { check := func(label string, gotCnt, wantCnt int, wantErr error) { t.Helper() gotErr := ParseError(gotCnt) if gotCnt < 0 { gotCnt = 0 } if gotCnt != wantCnt { t.Errorf("Consume%v(): consumed %d bytes, want %d bytes consumed", label, gotCnt, wantCnt) } if gotErr != wantErr { t.Errorf("Consume%v(): got %v error, want %v error", label, gotErr, wantErr) } b = b[gotCnt:] } switch op := op.(type) { case consumeField: gotNum, gotType, n := ConsumeField(b) if gotNum != op.wantNum || gotType != op.wantType { t.Errorf("ConsumeField() = (%d, %v), want (%d, %v)", gotNum, gotType, op.wantNum, op.wantType) } check("Field", n, op.wantCnt, op.wantErr) case consumeFieldValue: n := ConsumeFieldValue(op.inNum, op.inType, b) check("FieldValue", n, op.wantCnt, op.wantErr) case consumeTag: gotNum, gotType, n := ConsumeTag(b) if gotNum != op.wantNum || gotType != op.wantType { t.Errorf("ConsumeTag() = (%d, %v), want (%d, %v)", gotNum, gotType, op.wantNum, op.wantType) } check("Tag", n, op.wantCnt, op.wantErr) case consumeVarint: gotVal, n := ConsumeVarint(b) if gotVal != op.wantVal { t.Errorf("ConsumeVarint() = %d, want %d", gotVal, op.wantVal) } check("Varint", n, op.wantCnt, op.wantErr) case consumeFixed32: gotVal, n := ConsumeFixed32(b) if gotVal != op.wantVal { t.Errorf("ConsumeFixed32() = %d, want %d", gotVal, op.wantVal) } check("Fixed32", n, op.wantCnt, op.wantErr) case consumeFixed64: gotVal, n := ConsumeFixed64(b) if gotVal != op.wantVal { t.Errorf("ConsumeFixed64() = %d, want %d", gotVal, op.wantVal) } check("Fixed64", n, op.wantCnt, op.wantErr) case consumeBytes: gotVal, n := ConsumeBytes(b) if !bytes.Equal(gotVal, op.wantVal) { t.Errorf("ConsumeBytes() = %x, want %x", gotVal, op.wantVal) } check("Bytes", n, op.wantCnt, op.wantErr) case consumeGroup: gotVal, n := ConsumeGroup(op.inNum, b) if !bytes.Equal(gotVal, op.wantVal) { t.Errorf("ConsumeGroup() = %x, want %x", gotVal, op.wantVal) } check("Group", n, op.wantCnt, op.wantErr) } } }) } } func TestZigZag(t *testing.T) { tests := []struct { dec int64 enc uint64 }{ {math.MinInt64 + 0, math.MaxUint64 - 0}, {math.MinInt64 + 1, math.MaxUint64 - 2}, {math.MinInt64 + 2, math.MaxUint64 - 4}, {-3, 5}, {-2, 3}, {-1, 1}, {0, 0}, {+1, 2}, {+2, 4}, {+3, 6}, {math.MaxInt64 - 2, math.MaxUint64 - 5}, {math.MaxInt64 - 1, math.MaxUint64 - 3}, {math.MaxInt64 - 0, math.MaxUint64 - 1}, } for _, tt := range tests { if enc := EncodeZigZag(tt.dec); enc != tt.enc { t.Errorf("EncodeZigZag(%d) = %d, want %d", tt.dec, enc, tt.enc) } if dec := DecodeZigZag(tt.enc); dec != tt.dec { t.Errorf("DecodeZigZag(%d) = %d, want %d", tt.enc, dec, tt.dec) } } } golang-google-protobuf-1.27.1/go.mod000066400000000000000000000001731411250152500172640ustar00rootroot00000000000000module google.golang.org/protobuf go 1.9 require ( github.com/golang/protobuf v1.5.0 github.com/google/go-cmp v0.5.5 ) golang-google-protobuf-1.27.1/go.sum000066400000000000000000000012101411250152500173020ustar00rootroot00000000000000github.com/golang/protobuf v1.5.0 h1:LUVKkCeviFUMKqHa4tXIIij/lbhnMbP7Fn5wKdKkRh4= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= golang-google-protobuf-1.27.1/integration_test.go000066400000000000000000000370051411250152500220730ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build ignore package main import ( "archive/tar" "archive/zip" "bytes" "compress/gzip" "crypto/sha256" "flag" "fmt" "io" "io/ioutil" "net/http" "os" "os/exec" "path/filepath" "regexp" "runtime" "strings" "sync" "testing" "time" "google.golang.org/protobuf/internal/version" ) var ( regenerate = flag.Bool("regenerate", false, "regenerate files") buildRelease = flag.Bool("buildRelease", false, "build release binaries") protobufVersion = "3.15.3" protobufSHA256 = "" // ignored if protobufVersion is a git hash golangVersions = []string{"1.9.7", "1.10.8", "1.11.13", "1.12.17", "1.13.15", "1.14.15", "1.15.9", "1.16.1"} golangLatest = golangVersions[len(golangVersions)-1] staticcheckVersion = "2020.1.4" staticcheckSHA256s = map[string]string{ "darwin/amd64": "5706d101426c025e8f165309e0cb2932e54809eb035ff23ebe19df0f810699d8", "linux/386": "e4dbf94e940678ae7108f0d22c7c2992339bc10a8fb384e7e734b1531a429a1c", "linux/amd64": "09d2c2002236296de2c757df111fe3ae858b89f9e183f645ad01f8135c83c519", } // purgeTimeout determines the maximum age of unused sub-directories. purgeTimeout = 30 * 24 * time.Hour // 1 month // Variables initialized by mustInitDeps. goPath string modulePath string protobufPath string ) func Test(t *testing.T) { mustInitDeps(t) mustHandleFlags(t) // Report dirt in the working tree quickly, rather than after // going through all the presubmits. // // Fail the test late, so we can test uncommitted changes with -failfast. gitDiff := mustRunCommand(t, "git", "diff", "HEAD") if strings.TrimSpace(gitDiff) != "" { fmt.Printf("WARNING: working tree contains uncommitted changes:\n%v\n", gitDiff) } gitUntracked := mustRunCommand(t, "git", "ls-files", "--others", "--exclude-standard") if strings.TrimSpace(gitUntracked) != "" { fmt.Printf("WARNING: working tree contains untracked files:\n%v\n", gitUntracked) } // Do the relatively fast checks up-front. t.Run("GeneratedGoFiles", func(t *testing.T) { diff := mustRunCommand(t, "go", "run", "-tags", "protolegacy", "./internal/cmd/generate-types") if strings.TrimSpace(diff) != "" { t.Fatalf("stale generated files:\n%v", diff) } diff = mustRunCommand(t, "go", "run", "-tags", "protolegacy", "./internal/cmd/generate-protos") if strings.TrimSpace(diff) != "" { t.Fatalf("stale generated files:\n%v", diff) } }) t.Run("FormattedGoFiles", func(t *testing.T) { files := strings.Split(strings.TrimSpace(mustRunCommand(t, "git", "ls-files", "*.go")), "\n") diff := mustRunCommand(t, append([]string{"gofmt", "-d"}, files...)...) if strings.TrimSpace(diff) != "" { t.Fatalf("unformatted source files:\n%v", diff) } }) t.Run("CopyrightHeaders", func(t *testing.T) { files := strings.Split(strings.TrimSpace(mustRunCommand(t, "git", "ls-files", "*.go", "*.proto")), "\n") mustHaveCopyrightHeader(t, files) }) var wg sync.WaitGroup sema := make(chan bool, (runtime.NumCPU()+1)/2) for i := range golangVersions { goVersion := golangVersions[i] goLabel := "Go" + goVersion runGo := func(label string, cmd command, args ...string) { wg.Add(1) sema <- true go func() { defer wg.Done() defer func() { <-sema }() t.Run(goLabel+"/"+label, func(t *testing.T) { args[0] += goVersion cmd.mustRun(t, args...) }) }() } workDir := filepath.Join(goPath, "src", modulePath) runGo("Normal", command{Dir: workDir}, "go", "test", "-race", "./...") runGo("PureGo", command{Dir: workDir}, "go", "test", "-race", "-tags", "purego", "./...") runGo("Reflect", command{Dir: workDir}, "go", "test", "-race", "-tags", "protoreflect", "./...") if goVersion == golangLatest { runGo("ProtoLegacy", command{Dir: workDir}, "go", "test", "-race", "-tags", "protolegacy", "./...") runGo("ProtocGenGo", command{Dir: "cmd/protoc-gen-go/testdata"}, "go", "test") runGo("Conformance", command{Dir: "internal/conformance"}, "go", "test", "-execute") // Only run the 32-bit compatability tests for Linux; // avoid Darwin since 10.15 dropped support i386 code execution. if runtime.GOOS == "linux" { runGo("Arch32Bit", command{Dir: workDir, Env: append(os.Environ(), "GOARCH=386")}, "go", "test", "./...") } } } wg.Wait() t.Run("GoStaticCheck", func(t *testing.T) { checks := []string{ "all", // start with all checks enabled "-SA1019", // disable deprecated usage check "-S*", // disable code simplication checks "-ST*", // disable coding style checks "-U*", // disable unused declaration checks } out := mustRunCommand(t, "staticcheck", "-checks="+strings.Join(checks, ","), "-fail=none", "./...") // Filter out findings from certain paths. var findings []string for _, finding := range strings.Split(strings.TrimSpace(out), "\n") { switch { case strings.HasPrefix(finding, "internal/testprotos/legacy/"): default: findings = append(findings, finding) } } if len(findings) > 0 { t.Fatalf("staticcheck findings:\n%v", strings.Join(findings, "\n")) } }) t.Run("CommittedGitChanges", func(t *testing.T) { if strings.TrimSpace(gitDiff) != "" { t.Fatalf("uncommitted changes") } }) t.Run("TrackedGitFiles", func(t *testing.T) { if strings.TrimSpace(gitUntracked) != "" { t.Fatalf("untracked files") } }) } func mustInitDeps(t *testing.T) { check := func(err error) { t.Helper() if err != nil { t.Fatal(err) } } // Determine the directory to place the test directory. repoRoot, err := os.Getwd() check(err) testDir := filepath.Join(repoRoot, ".cache") check(os.MkdirAll(testDir, 0775)) // Delete the current directory if non-empty, // which only occurs if a dependency failed to initialize properly. var workingDir string finishedDirs := map[string]bool{} defer func() { if workingDir != "" { os.RemoveAll(workingDir) // best-effort } }() startWork := func(name string) string { workingDir = filepath.Join(testDir, name) return workingDir } finishWork := func() { finishedDirs[workingDir] = true workingDir = "" } // Delete other sub-directories that are no longer relevant. defer func() { now := time.Now() fis, _ := ioutil.ReadDir(testDir) for _, fi := range fis { dir := filepath.Join(testDir, fi.Name()) if finishedDirs[dir] { os.Chtimes(dir, now, now) // best-effort continue } if now.Sub(fi.ModTime()) < purgeTimeout { continue } fmt.Printf("delete %v\n", fi.Name()) os.RemoveAll(dir) // best-effort } }() // The bin directory contains symlinks to each tool by version. // It is safe to delete this directory and run the test script from scratch. binPath := startWork("bin") check(os.RemoveAll(binPath)) check(os.Mkdir(binPath, 0775)) check(os.Setenv("PATH", binPath+":"+os.Getenv("PATH"))) registerBinary := func(name, path string) { check(os.Symlink(path, filepath.Join(binPath, name))) } finishWork() // Download and build the protobuf toolchain. // We avoid downloading the pre-compiled binaries since they do not contain // the conformance test runner. protobufPath = startWork("protobuf-" + protobufVersion) if _, err := os.Stat(protobufPath); err != nil { fmt.Printf("download %v\n", filepath.Base(protobufPath)) if isCommit := strings.Trim(protobufVersion, "0123456789abcdef") == ""; isCommit { command{Dir: testDir}.mustRun(t, "git", "clone", "https://github.com/protocolbuffers/protobuf", "protobuf-"+protobufVersion) command{Dir: protobufPath}.mustRun(t, "git", "checkout", protobufVersion) } else { url := fmt.Sprintf("https://github.com/google/protobuf/releases/download/v%v/protobuf-all-%v.tar.gz", protobufVersion, protobufVersion) downloadArchive(check, protobufPath, url, "protobuf-"+protobufVersion, protobufSHA256) } fmt.Printf("build %v\n", filepath.Base(protobufPath)) command{Dir: protobufPath}.mustRun(t, "./autogen.sh") command{Dir: protobufPath}.mustRun(t, "./configure") command{Dir: protobufPath}.mustRun(t, "make") command{Dir: filepath.Join(protobufPath, "conformance")}.mustRun(t, "make") } check(os.Setenv("PROTOBUF_ROOT", protobufPath)) // for generate-protos registerBinary("conform-test-runner", filepath.Join(protobufPath, "conformance", "conformance-test-runner")) registerBinary("protoc", filepath.Join(protobufPath, "src", "protoc")) finishWork() // Download each Go toolchain version. for _, v := range golangVersions { goDir := startWork("go" + v) if _, err := os.Stat(goDir); err != nil { fmt.Printf("download %v\n", filepath.Base(goDir)) url := fmt.Sprintf("https://dl.google.com/go/go%v.%v-%v.tar.gz", v, runtime.GOOS, runtime.GOARCH) downloadArchive(check, goDir, url, "go", "") // skip SHA256 check as we fetch over https from a trusted domain } registerBinary("go"+v, filepath.Join(goDir, "bin", "go")) finishWork() } registerBinary("go", filepath.Join(testDir, "go"+golangLatest, "bin", "go")) registerBinary("gofmt", filepath.Join(testDir, "go"+golangLatest, "bin", "gofmt")) // Download the staticcheck tool. checkDir := startWork("staticcheck-" + staticcheckVersion) if _, err := os.Stat(checkDir); err != nil { fmt.Printf("download %v\n", filepath.Base(checkDir)) url := fmt.Sprintf("https://github.com/dominikh/go-tools/releases/download/%v/staticcheck_%v_%v.tar.gz", staticcheckVersion, runtime.GOOS, runtime.GOARCH) downloadArchive(check, checkDir, url, "staticcheck", staticcheckSHA256s[runtime.GOOS+"/"+runtime.GOARCH]) } registerBinary("staticcheck", filepath.Join(checkDir, "staticcheck")) finishWork() // GitHub actions sets GOROOT, which confuses invocations of the Go toolchain. // Explicitly clear GOROOT, so each toolchain uses their default GOROOT. check(os.Unsetenv("GOROOT")) // Set a cache directory outside the test directory. check(os.Setenv("GOCACHE", filepath.Join(repoRoot, ".gocache"))) // Setup GOPATH for pre-module support (i.e., go1.10 and earlier). goPath = startWork("gopath") modulePath = strings.TrimSpace(command{Dir: testDir}.mustRun(t, "go", "list", "-m", "-f", "{{.Path}}")) check(os.RemoveAll(filepath.Join(goPath, "src"))) check(os.MkdirAll(filepath.Join(goPath, "src", filepath.Dir(modulePath)), 0775)) check(os.Symlink(repoRoot, filepath.Join(goPath, "src", modulePath))) command{Dir: repoRoot}.mustRun(t, "go", "mod", "tidy") command{Dir: repoRoot}.mustRun(t, "go", "mod", "vendor") check(os.Setenv("GOPATH", goPath)) finishWork() } func downloadFile(check func(error), dstPath, srcURL string) { resp, err := http.Get(srcURL) check(err) defer resp.Body.Close() check(os.MkdirAll(filepath.Dir(dstPath), 0775)) f, err := os.Create(dstPath) check(err) _, err = io.Copy(f, resp.Body) check(err) } func downloadArchive(check func(error), dstPath, srcURL, skipPrefix, wantSHA256 string) { check(os.RemoveAll(dstPath)) resp, err := http.Get(srcURL) check(err) defer resp.Body.Close() var r io.Reader = resp.Body if wantSHA256 != "" { b, err := ioutil.ReadAll(resp.Body) check(err) r = bytes.NewReader(b) if gotSHA256 := fmt.Sprintf("%x", sha256.Sum256(b)); gotSHA256 != wantSHA256 { check(fmt.Errorf("checksum validation error:\ngot %v\nwant %v", gotSHA256, wantSHA256)) } } zr, err := gzip.NewReader(r) check(err) tr := tar.NewReader(zr) for { h, err := tr.Next() if err == io.EOF { return } check(err) // Skip directories or files outside the prefix directory. if len(skipPrefix) > 0 { if !strings.HasPrefix(h.Name, skipPrefix) { continue } if len(h.Name) > len(skipPrefix) && h.Name[len(skipPrefix)] != '/' { continue } } path := strings.TrimPrefix(strings.TrimPrefix(h.Name, skipPrefix), "/") path = filepath.Join(dstPath, filepath.FromSlash(path)) mode := os.FileMode(h.Mode & 0777) switch h.Typeflag { case tar.TypeReg: b, err := ioutil.ReadAll(tr) check(err) check(ioutil.WriteFile(path, b, mode)) case tar.TypeDir: check(os.Mkdir(path, mode)) } } } func mustHandleFlags(t *testing.T) { if *regenerate { t.Run("Generate", func(t *testing.T) { fmt.Print(mustRunCommand(t, "go", "run", "-tags", "protolegacy", "./internal/cmd/generate-types", "-execute")) fmt.Print(mustRunCommand(t, "go", "run", "-tags", "protolegacy", "./internal/cmd/generate-protos", "-execute")) files := strings.Split(strings.TrimSpace(mustRunCommand(t, "git", "ls-files", "*.go")), "\n") mustRunCommand(t, append([]string{"gofmt", "-w"}, files...)...) }) } if *buildRelease { t.Run("BuildRelease", func(t *testing.T) { v := version.String() for _, goos := range []string{"linux", "darwin", "windows"} { for _, goarch := range []string{"386", "amd64"} { // Avoid Darwin since 10.15 dropped support for i386. if goos == "darwin" && goarch == "386" { continue } binPath := filepath.Join("bin", fmt.Sprintf("protoc-gen-go.%v.%v.%v", v, goos, goarch)) // Build the binary. cmd := command{Env: append(os.Environ(), "GOOS="+goos, "GOARCH="+goarch)} cmd.mustRun(t, "go", "build", "-trimpath", "-ldflags", "-s -w -buildid=", "-o", binPath, "./cmd/protoc-gen-go") // Archive and compress the binary. in, err := ioutil.ReadFile(binPath) if err != nil { t.Fatal(err) } out := new(bytes.Buffer) suffix := "" comment := fmt.Sprintf("protoc-gen-go VERSION=%v GOOS=%v GOARCH=%v", v, goos, goarch) switch goos { case "windows": suffix = ".zip" zw := zip.NewWriter(out) zw.SetComment(comment) fw, _ := zw.Create("protoc-gen-go.exe") fw.Write(in) zw.Close() default: suffix = ".tar.gz" gz, _ := gzip.NewWriterLevel(out, gzip.BestCompression) gz.Comment = comment tw := tar.NewWriter(gz) tw.WriteHeader(&tar.Header{ Name: "protoc-gen-go", Mode: int64(0775), Size: int64(len(in)), }) tw.Write(in) tw.Close() gz.Close() } if err := ioutil.WriteFile(binPath+suffix, out.Bytes(), 0664); err != nil { t.Fatal(err) } } } }) } if *regenerate || *buildRelease { t.SkipNow() } } var copyrightRegex = []*regexp.Regexp{ regexp.MustCompile(`^// Copyright \d\d\d\d The Go Authors\. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file\. `), // Generated .pb.go files from main protobuf repo. regexp.MustCompile(`^// Protocol Buffers - Google's data interchange format // Copyright \d\d\d\d Google Inc\. All rights reserved\. `), } func mustHaveCopyrightHeader(t *testing.T, files []string) { var bad []string File: for _, file := range files { b, err := ioutil.ReadFile(file) if err != nil { t.Fatal(err) } for _, re := range copyrightRegex { if loc := re.FindIndex(b); loc != nil && loc[0] == 0 { continue File } } bad = append(bad, file) } if len(bad) > 0 { t.Fatalf("files with missing/bad copyright headers:\n %v", strings.Join(bad, "\n ")) } } type command struct { Dir string Env []string } func (c command) mustRun(t *testing.T, args ...string) string { t.Helper() stdout := new(bytes.Buffer) stderr := new(bytes.Buffer) cmd := exec.Command(args[0], args[1:]...) cmd.Dir = "." if c.Dir != "" { cmd.Dir = c.Dir } cmd.Env = os.Environ() if c.Env != nil { cmd.Env = c.Env } cmd.Env = append(cmd.Env, "PWD="+cmd.Dir) cmd.Stdout = stdout cmd.Stderr = stderr if err := cmd.Run(); err != nil { t.Fatalf("executing (%v): %v\n%s%s", strings.Join(args, " "), err, stdout.String(), stderr.String()) } return stdout.String() } func mustRunCommand(t *testing.T, args ...string) string { t.Helper() return command{}.mustRun(t, args...) } golang-google-protobuf-1.27.1/internal/000077500000000000000000000000001411250152500177715ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/benchmarks/000077500000000000000000000000001411250152500221065ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/benchmarks/bench_test.go000066400000000000000000000136331411250152500245610ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package bench_test import ( "flag" "fmt" "io/ioutil" "os" "os/exec" "path/filepath" "strings" "testing" "time" "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/encoding/prototext" "google.golang.org/protobuf/proto" pref "google.golang.org/protobuf/reflect/protoreflect" preg "google.golang.org/protobuf/reflect/protoregistry" benchpb "google.golang.org/protobuf/internal/testprotos/benchmarks" _ "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message1/proto2" _ "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message1/proto3" _ "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message2" _ "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3" _ "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message4" ) func BenchmarkWire(b *testing.B) { bench(b, "Unmarshal", func(ds dataset, pb *testing.PB) { for pb.Next() { for _, p := range ds.wire { m := ds.messageType.New().Interface() if err := proto.Unmarshal(p, m); err != nil { b.Fatal(err) } } } }) bench(b, "Marshal", func(ds dataset, pb *testing.PB) { for pb.Next() { for _, m := range ds.messages { if _, err := proto.Marshal(m); err != nil { b.Fatal(err) } } } }) bench(b, "Size", func(ds dataset, pb *testing.PB) { for pb.Next() { for _, m := range ds.messages { proto.Size(m) } } }) } func BenchmarkText(b *testing.B) { bench(b, "Unmarshal", func(ds dataset, pb *testing.PB) { for pb.Next() { for _, p := range ds.text { m := ds.messageType.New().Interface() if err := prototext.Unmarshal(p, m); err != nil { b.Fatal(err) } } } }) bench(b, "Marshal", func(ds dataset, pb *testing.PB) { for pb.Next() { for _, m := range ds.messages { if _, err := prototext.Marshal(m); err != nil { b.Fatal(err) } } } }) } func BenchmarkJSON(b *testing.B) { bench(b, "Unmarshal", func(ds dataset, pb *testing.PB) { for pb.Next() { for _, p := range ds.json { m := ds.messageType.New().Interface() if err := protojson.Unmarshal(p, m); err != nil { b.Fatal(err) } } } }) bench(b, "Marshal", func(ds dataset, pb *testing.PB) { for pb.Next() { for _, m := range ds.messages { if _, err := protojson.Marshal(m); err != nil { b.Fatal(err) } } } }) } func Benchmark(b *testing.B) { bench(b, "Clone", func(ds dataset, pb *testing.PB) { for pb.Next() { for _, src := range ds.messages { proto.Clone(src) } } }) } func bench(b *testing.B, name string, f func(dataset, *testing.PB)) { b.Helper() b.Run(name, func(b *testing.B) { for _, ds := range datasets { b.Run(ds.name, func(b *testing.B) { b.RunParallel(func(pb *testing.PB) { f(ds, pb) }) }) } }) } type dataset struct { name string messageType pref.MessageType messages []proto.Message wire [][]byte text [][]byte json [][]byte } var datasets []dataset func TestMain(m *testing.M) { // Load benchmark data early, to avoid including this step in -cpuprofile/-memprofile. // // For the larger benchmark datasets (not downloaded by default), preparing // this data is quite expensive. In addition, keeping the unmarshaled messages // in memory makes GC scans a substantial fraction of runtime CPU cost. // // It would be nice to avoid loading the data we aren't going to use. Unfortunately, // there isn't any simple way to tell what benchmarks are going to run; we can examine // the -test.bench flag, but parsing it is quite complicated. flag.Parse() if v := flag.Lookup("test.bench").Value.(flag.Getter).Get(); v == "" { // Don't bother loading data if we aren't going to run any benchmarks. // Avoids slowing down go test ./... return } if v := flag.Lookup("test.timeout").Value.(flag.Getter).Get().(time.Duration); v != 0 && v <= 10*time.Minute { // The default test timeout of 10m is too short if running all the benchmarks. // It's quite frustrating to discover this 10m through a benchmark run, so // catch the condition. // // The -timeout and -test.timeout flags are handled by the go command, which // forwards them along to the test binary, so we can't just set the default // to something reasonable; the go command will override it with its default. // We also can't ignore the timeout, because the go command kills a test which // runs more than a minute past its deadline. fmt.Fprintf(os.Stderr, "Test timeout of %v is probably too short; set -test.timeout=0.\n", v) os.Exit(1) } out, err := exec.Command("git", "rev-parse", "--show-toplevel").CombinedOutput() if err != nil { panic(err) } repoRoot := strings.TrimSpace(string(out)) dataDir := filepath.Join(repoRoot, ".cache", "benchdata") filepath.Walk(dataDir, func(path string, _ os.FileInfo, _ error) error { if filepath.Ext(path) != ".pb" { return nil } raw, err := ioutil.ReadFile(path) if err != nil { panic(err) } dspb := &benchpb.BenchmarkDataset{} if err := proto.Unmarshal(raw, dspb); err != nil { panic(err) } mt, err := preg.GlobalTypes.FindMessageByName(pref.FullName(dspb.MessageName)) if err != nil { panic(err) } ds := dataset{ name: dspb.Name, messageType: mt, wire: dspb.Payload, } for _, payload := range dspb.Payload { m := mt.New().Interface() if err := proto.Unmarshal(payload, m); err != nil { panic(err) } ds.messages = append(ds.messages, m) b, err := prototext.Marshal(m) if err != nil { panic(err) } ds.text = append(ds.text, b) b, err = protojson.Marshal(m) if err != nil { panic(err) } ds.json = append(ds.json, b) } datasets = append(datasets, ds) return nil }) os.Exit(m.Run()) } golang-google-protobuf-1.27.1/internal/benchmarks/download_benchdata.bash000077500000000000000000000016461411250152500265570ustar00rootroot00000000000000#!/bin/bash # Copyright 2019 The Go Authors. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. cd "$(git rev-parse --show-toplevel)" mkdir -p .cache/benchdata cd .cache/benchdata # Download small benchmark datasets. PROTOBUF_VERSION=v3.11.4 curl -s -O https://raw.githubusercontent.com/protocolbuffers/protobuf/$PROTOBUF_VERSION/benchmarks/datasets/google_message1/proto2/dataset.google_message1_proto2.pb curl -s -O https://raw.githubusercontent.com/protocolbuffers/protobuf/$PROTOBUF_VERSION/benchmarks/datasets/google_message1/proto3/dataset.google_message1_proto3.pb curl -s -O https://raw.githubusercontent.com/protocolbuffers/protobuf/$PROTOBUF_VERSION/benchmarks/datasets/google_message2/dataset.google_message2.pb # Download large benchmark datasets. curl -s https://storage.googleapis.com/protobuf_opensource_benchmark_data/datasets.tar.gz | tar zx golang-google-protobuf-1.27.1/internal/benchmarks/micro/000077500000000000000000000000001411250152500232175ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/benchmarks/micro/micro_test.go000066400000000000000000000113361411250152500257220ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // This package contains microbenchmarks exercising specific areas of interest. // The benchmarks here are not comprehensive and are not necessarily indicative // real-world performance. package micro_test import ( "testing" "google.golang.org/protobuf/internal/impl" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/runtime/protoiface" "google.golang.org/protobuf/types/known/emptypb" micropb "google.golang.org/protobuf/internal/testprotos/benchmarks/micro" testpb "google.golang.org/protobuf/internal/testprotos/test" ) // BenchmarkEmptyMessage tests a google.protobuf.Empty. // // It measures per-operation overhead. func BenchmarkEmptyMessage(b *testing.B) { b.Run("Wire/Marshal", func(b *testing.B) { b.RunParallel(func(pb *testing.PB) { m := &emptypb.Empty{} for pb.Next() { if _, err := proto.Marshal(m); err != nil { b.Fatal(err) } } }) }) b.Run("Wire/Unmarshal", func(b *testing.B) { opts := proto.UnmarshalOptions{ Merge: true, } b.RunParallel(func(pb *testing.PB) { m := &emptypb.Empty{} for pb.Next() { if err := opts.Unmarshal([]byte{}, m); err != nil { b.Fatal(err) } } }) }) b.Run("Wire/Validate", func(b *testing.B) { b.RunParallel(func(pb *testing.PB) { mt := (&emptypb.Empty{}).ProtoReflect().Type() for pb.Next() { _, got := impl.Validate(mt, protoiface.UnmarshalInput{}) want := impl.ValidationValid if got != want { b.Fatalf("Validate = %v, want %v", got, want) } } }) }) b.Run("Clone", func(b *testing.B) { b.RunParallel(func(pb *testing.PB) { m := &emptypb.Empty{} for pb.Next() { proto.Clone(m) } }) }) } // BenchmarkRepeatedInt32 tests a message containing 500 non-packed repeated int32s. // // For unmarshal operations, it measures the cost of the field decode loop, since each // item in the repeated field has an individual tag and value. func BenchmarkRepeatedInt32(b *testing.B) { m := &testpb.TestAllTypes{} for i := int32(0); i < 500; i++ { m.RepeatedInt32 = append(m.RepeatedInt32, i) } w, err := proto.Marshal(m) if err != nil { b.Fatal(err) } b.Run("Wire/Marshal", func(b *testing.B) { b.RunParallel(func(pb *testing.PB) { for pb.Next() { if _, err := proto.Marshal(m); err != nil { b.Fatal(err) } } }) }) b.Run("Wire/Unmarshal", func(b *testing.B) { opts := proto.UnmarshalOptions{ Merge: true, } b.RunParallel(func(pb *testing.PB) { m := &testpb.TestAllTypes{} for pb.Next() { m.RepeatedInt32 = m.RepeatedInt32[:0] if err := opts.Unmarshal(w, m); err != nil { b.Fatal(err) } } }) }) b.Run("Wire/Validate", func(b *testing.B) { b.RunParallel(func(pb *testing.PB) { mt := (&testpb.TestAllTypes{}).ProtoReflect().Type() for pb.Next() { _, got := impl.Validate(mt, protoiface.UnmarshalInput{ Buf: w, }) want := impl.ValidationValid if got != want { b.Fatalf("Validate = %v, want %v", got, want) } } }) }) b.Run("Clone", func(b *testing.B) { b.RunParallel(func(pb *testing.PB) { for pb.Next() { proto.Clone(m) } }) }) } // BenchmarkRequired tests a message containing a required field. func BenchmarkRequired(b *testing.B) { m := µpb.SixteenRequired{ F1: proto.Int32(1), F2: proto.Int32(1), F3: proto.Int32(1), F4: proto.Int32(1), F5: proto.Int32(1), F6: proto.Int32(1), F7: proto.Int32(1), F8: proto.Int32(1), F9: proto.Int32(1), F10: proto.Int32(1), F11: proto.Int32(1), F12: proto.Int32(1), F13: proto.Int32(1), F14: proto.Int32(1), F15: proto.Int32(1), F16: proto.Int32(1), } w, err := proto.Marshal(m) if err != nil { b.Fatal(err) } b.Run("Wire/Marshal", func(b *testing.B) { b.RunParallel(func(pb *testing.PB) { for pb.Next() { if _, err := proto.Marshal(m); err != nil { b.Fatal(err) } } }) }) b.Run("Wire/Unmarshal", func(b *testing.B) { opts := proto.UnmarshalOptions{ Merge: true, } b.RunParallel(func(pb *testing.PB) { m := µpb.SixteenRequired{} for pb.Next() { if err := opts.Unmarshal(w, m); err != nil { b.Fatal(err) } } }) }) b.Run("Wire/Validate", func(b *testing.B) { b.RunParallel(func(pb *testing.PB) { mt := (µpb.SixteenRequired{}).ProtoReflect().Type() for pb.Next() { _, got := impl.Validate(mt, protoiface.UnmarshalInput{ Buf: w, }) want := impl.ValidationValid if got != want { b.Fatalf("Validate = %v, want %v", got, want) } } }) }) b.Run("Clone", func(b *testing.B) { b.RunParallel(func(pb *testing.PB) { for pb.Next() { proto.Clone(m) } }) }) } golang-google-protobuf-1.27.1/internal/cmd/000077500000000000000000000000001411250152500205345ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/cmd/generate-corpus/000077500000000000000000000000001411250152500236375ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/cmd/generate-corpus/main.go000066400000000000000000000115471411250152500251220ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Program generate-corpus generates a seed corpus for the fuzzers. // // This command is not run automatically because its output is not stable. // It's present in source control mainly as documentation of where the seed // corpus came from. package main import ( "crypto/sha1" "fmt" "io/ioutil" "log" "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/encoding/prototext" "google.golang.org/protobuf/proto" fuzzpb "google.golang.org/protobuf/internal/testprotos/fuzz" testpb "google.golang.org/protobuf/internal/testprotos/test" ) var messages = []proto.Message{ &fuzzpb.Fuzz{ TestAllTypes: &testpb.TestAllTypes{ OptionalInt32: proto.Int32(1001), OptionalInt64: proto.Int64(1002), OptionalUint32: proto.Uint32(1003), OptionalUint64: proto.Uint64(1004), OptionalSint32: proto.Int32(1005), OptionalSint64: proto.Int64(1006), OptionalFixed32: proto.Uint32(1007), OptionalFixed64: proto.Uint64(1008), OptionalSfixed32: proto.Int32(1009), OptionalSfixed64: proto.Int64(1010), OptionalFloat: proto.Float32(1011.5), OptionalDouble: proto.Float64(1012.5), OptionalBool: proto.Bool(true), OptionalString: proto.String("string"), OptionalBytes: []byte("bytes"), OptionalNestedEnum: testpb.TestAllTypes_BAR.Enum(), Optionalgroup: &testpb.TestAllTypes_OptionalGroup{ A: proto.Int32(1017), }, OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{ A: proto.Int32(42), Corecursive: &testpb.TestAllTypes{ OptionalInt32: proto.Int32(43), }, }, RepeatedInt32: []int32{1001, 2001}, RepeatedInt64: []int64{1002, 2002}, RepeatedUint32: []uint32{1003, 2003}, RepeatedUint64: []uint64{1004, 2004}, RepeatedSint32: []int32{1005, 2005}, RepeatedSint64: []int64{1006, 2006}, RepeatedFixed32: []uint32{1007, 2007}, RepeatedFixed64: []uint64{1008, 2008}, RepeatedSfixed32: []int32{1009, 2009}, RepeatedSfixed64: []int64{1010, 2010}, RepeatedFloat: []float32{1011.5, 2011.5}, RepeatedDouble: []float64{1012.5, 2012.5}, RepeatedBool: []bool{true, false}, RepeatedString: []string{"foo", "bar"}, RepeatedBytes: [][]byte{[]byte("FOO"), []byte("BAR")}, RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{ testpb.TestAllTypes_FOO, testpb.TestAllTypes_BAR, }, RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{ {A: proto.Int32(1)}, nil, {A: proto.Int32(2)}, }, Repeatedgroup: []*testpb.TestAllTypes_RepeatedGroup{ {A: proto.Int32(1017)}, nil, {A: proto.Int32(2017)}, }, MapInt32Int32: map[int32]int32{1056: 1156, 2056: 2156}, MapInt64Int64: map[int64]int64{1057: 1157, 2057: 2157}, MapUint32Uint32: map[uint32]uint32{1058: 1158, 2058: 2158}, MapUint64Uint64: map[uint64]uint64{1059: 1159, 2059: 2159}, MapSint32Sint32: map[int32]int32{1060: 1160, 2060: 2160}, MapSint64Sint64: map[int64]int64{1061: 1161, 2061: 2161}, MapFixed32Fixed32: map[uint32]uint32{1062: 1162, 2062: 2162}, MapFixed64Fixed64: map[uint64]uint64{1063: 1163, 2063: 2163}, MapSfixed32Sfixed32: map[int32]int32{1064: 1164, 2064: 2164}, MapSfixed64Sfixed64: map[int64]int64{1065: 1165, 2065: 2165}, MapInt32Float: map[int32]float32{1066: 1166.5, 2066: 2166.5}, MapInt32Double: map[int32]float64{1067: 1167.5, 2067: 2167.5}, MapBoolBool: map[bool]bool{true: false, false: true}, MapStringString: map[string]string{"69.1.key": "69.1.val", "69.2.key": "69.2.val"}, MapStringBytes: map[string][]byte{"70.1.key": []byte("70.1.val"), "70.2.key": []byte("70.2.val")}, MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{ "71.1.key": {A: proto.Int32(1171)}, "71.2.key": {A: proto.Int32(2171)}, }, MapStringNestedEnum: map[string]testpb.TestAllTypes_NestedEnum{ "73.1.key": testpb.TestAllTypes_FOO, "73.2.key": testpb.TestAllTypes_BAR, }, OneofField: &testpb.TestAllTypes_OneofUint32{1111}, }, }, } func main() { for _, m := range messages { wire, err := proto.Marshal(m) if err != nil { log.Fatal(err) } if err := ioutil.WriteFile(fmt.Sprintf("internal/fuzz/wirefuzz/corpus/%x", sha1.Sum(wire)), wire, 0777); err != nil { log.Fatal(err) } text, err := prototext.Marshal(m) if err != nil { log.Fatal(err) } if err := ioutil.WriteFile(fmt.Sprintf("internal/fuzz/textfuzz/corpus/%x", sha1.Sum(text)), text, 0777); err != nil { log.Fatal(err) } json, err := protojson.Marshal(m) if err != nil { log.Fatal(err) } if err := ioutil.WriteFile(fmt.Sprintf("internal/fuzz/jsonfuzz/corpus/%x", sha1.Sum(json)), json, 0777); err != nil { log.Fatal(err) } } } golang-google-protobuf-1.27.1/internal/cmd/generate-protos/000077500000000000000000000000001411250152500236525ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/cmd/generate-protos/main.go000066400000000000000000000364561411250152500251430ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. //go:generate go run . -execute package main import ( "bytes" "flag" "fmt" "go/format" "io/ioutil" "os" "os/exec" "path" "path/filepath" "regexp" "sort" "strconv" "strings" gengo "google.golang.org/protobuf/cmd/protoc-gen-go/internal_gengo" "google.golang.org/protobuf/compiler/protogen" "google.golang.org/protobuf/internal/detrand" ) func init() { // Determine repository root path. out, err := exec.Command("git", "rev-parse", "--show-toplevel").CombinedOutput() check(err) repoRoot = strings.TrimSpace(string(out)) // Determine the module path. cmd := exec.Command("go", "list", "-m", "-f", "{{.Path}}") cmd.Dir = repoRoot out, err = cmd.CombinedOutput() check(err) modulePath = strings.TrimSpace(string(out)) // When the environment variable RUN_AS_PROTOC_PLUGIN is set, // we skip running main and instead act as a protoc plugin. // This allows the binary to pass itself to protoc. if plugin := os.Getenv("RUN_AS_PROTOC_PLUGIN"); plugin != "" { // Disable deliberate output instability for generated files. // This is reasonable since we fully control the output. detrand.Disable() protogen.Options{}.Run(func(gen *protogen.Plugin) error { for _, file := range gen.Files { if file.Generate { gengo.GenerateVersionMarkers = false gengo.GenerateFile(gen, file) generateIdentifiers(gen, file) generateSouceContextStringer(gen, file) } } gen.SupportedFeatures = gengo.SupportedFeatures return nil }) os.Exit(0) } } var ( run bool protoRoot string repoRoot string modulePath string generatedPreamble = []string{ "// Copyright 2019 The Go Authors. All rights reserved.", "// Use of this source code is governed by a BSD-style", "// license that can be found in the LICENSE file.", "", "// Code generated by generate-protos. DO NOT EDIT.", "", } ) func main() { flag.BoolVar(&run, "execute", false, "Write generated files to destination.") flag.StringVar(&protoRoot, "protoroot", os.Getenv("PROTOBUF_ROOT"), "The root of the protobuf source tree.") flag.Parse() if protoRoot == "" { panic("protobuf source root is not set") } generateLocalProtos() generateRemoteProtos() } func generateLocalProtos() { tmpDir, err := ioutil.TempDir(repoRoot, "tmp") check(err) defer os.RemoveAll(tmpDir) // Generate all local proto files (except version-locked files). dirs := []struct { path string pkgPaths map[string]string // mapping of .proto path to Go package path annotate map[string]bool // .proto files to annotate exclude map[string]bool // .proto files to exclude from generation }{{ path: "cmd/protoc-gen-go/testdata", pkgPaths: map[string]string{"cmd/protoc-gen-go/testdata/nopackage/nopackage.proto": "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/nopackage"}, annotate: map[string]bool{"cmd/protoc-gen-go/testdata/annotations/annotations.proto": true}, }, { path: "internal/testprotos", exclude: map[string]bool{"internal/testprotos/irregular/irregular.proto": true}, }} excludeRx := regexp.MustCompile(`legacy/.*/`) for _, d := range dirs { subDirs := map[string]bool{} srcDir := filepath.Join(repoRoot, filepath.FromSlash(d.path)) filepath.Walk(srcDir, func(srcPath string, _ os.FileInfo, _ error) error { if !strings.HasSuffix(srcPath, ".proto") || excludeRx.MatchString(srcPath) { return nil } relPath, err := filepath.Rel(repoRoot, srcPath) check(err) srcRelPath, err := filepath.Rel(srcDir, srcPath) check(err) subDirs[filepath.Dir(srcRelPath)] = true if d.exclude[filepath.ToSlash(relPath)] { return nil } opts := "module=" + modulePath for protoPath, goPkgPath := range d.pkgPaths { opts += fmt.Sprintf(",M%v=%v", protoPath, goPkgPath) } if d.annotate[filepath.ToSlash(relPath)] { opts += ",annotate_code" } protoc("-I"+filepath.Join(protoRoot, "src"), "-I"+repoRoot, "--go_out="+opts+":"+tmpDir, relPath) return nil }) // For directories in testdata, generate a test that links in all // generated packages to ensure that it builds and initializes properly. // This is done because "go build ./..." does not build sub-packages // under testdata. if filepath.Base(d.path) == "testdata" { var imports []string for sd := range subDirs { imports = append(imports, fmt.Sprintf("_ %q", path.Join(modulePath, d.path, filepath.ToSlash(sd)))) } sort.Strings(imports) s := strings.Join(append(generatedPreamble, []string{ "package main", "", "import (" + strings.Join(imports, "\n") + ")", }...), "\n") b, err := format.Source([]byte(s)) check(err) check(ioutil.WriteFile(filepath.Join(tmpDir, filepath.FromSlash(d.path+"/gen_test.go")), b, 0664)) } } syncOutput(repoRoot, tmpDir) } func generateRemoteProtos() { tmpDir, err := ioutil.TempDir(repoRoot, "tmp") check(err) defer os.RemoveAll(tmpDir) // Generate all remote proto files. files := []struct{ prefix, path, goPkgPath string }{ // Well-known protos. {"src", "google/protobuf/any.proto", ""}, {"src", "google/protobuf/api.proto", ""}, {"src", "google/protobuf/duration.proto", ""}, {"src", "google/protobuf/empty.proto", ""}, {"src", "google/protobuf/field_mask.proto", ""}, {"src", "google/protobuf/source_context.proto", ""}, {"src", "google/protobuf/struct.proto", ""}, {"src", "google/protobuf/timestamp.proto", ""}, {"src", "google/protobuf/type.proto", ""}, {"src", "google/protobuf/wrappers.proto", ""}, // Compiler protos. {"src", "google/protobuf/compiler/plugin.proto", ""}, {"src", "google/protobuf/descriptor.proto", ""}, // Conformance protos. {"", "conformance/conformance.proto", "google.golang.org/protobuf/internal/testprotos/conformance;conformance"}, {"src", "google/protobuf/test_messages_proto2.proto", "google.golang.org/protobuf/internal/testprotos/conformance;conformance"}, {"src", "google/protobuf/test_messages_proto3.proto", "google.golang.org/protobuf/internal/testprotos/conformance;conformance"}, // Benchmark protos. {"benchmarks", "benchmarks.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks;benchmarks"}, {"benchmarks", "datasets/google_message1/proto2/benchmark_message1_proto2.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message1/proto2;proto2"}, {"benchmarks", "datasets/google_message1/proto3/benchmark_message1_proto3.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message1/proto3;proto3"}, {"benchmarks", "datasets/google_message2/benchmark_message2.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message2;google_message2"}, {"benchmarks", "datasets/google_message3/benchmark_message3.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"}, {"benchmarks", "datasets/google_message3/benchmark_message3_1.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"}, {"benchmarks", "datasets/google_message3/benchmark_message3_2.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"}, {"benchmarks", "datasets/google_message3/benchmark_message3_3.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"}, {"benchmarks", "datasets/google_message3/benchmark_message3_4.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"}, {"benchmarks", "datasets/google_message3/benchmark_message3_5.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"}, {"benchmarks", "datasets/google_message3/benchmark_message3_6.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"}, {"benchmarks", "datasets/google_message3/benchmark_message3_7.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"}, {"benchmarks", "datasets/google_message3/benchmark_message3_8.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"}, {"benchmarks", "datasets/google_message4/benchmark_message4.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message4;google_message4"}, {"benchmarks", "datasets/google_message4/benchmark_message4_1.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message4;google_message4"}, {"benchmarks", "datasets/google_message4/benchmark_message4_2.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message4;google_message4"}, {"benchmarks", "datasets/google_message4/benchmark_message4_3.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message4;google_message4"}, } opts := "module=" + modulePath for _, file := range files { if file.goPkgPath != "" { opts += fmt.Sprintf(",M%v=%v", file.path, file.goPkgPath) } } for _, f := range files { protoc("-I"+filepath.Join(protoRoot, f.prefix), "--go_out="+opts+":"+tmpDir, f.path) } syncOutput(repoRoot, tmpDir) } func protoc(args ...string) { // TODO: Remove --experimental_allow_proto3_optional flag. cmd := exec.Command("protoc", "--plugin=protoc-gen-go="+os.Args[0], "--experimental_allow_proto3_optional") cmd.Args = append(cmd.Args, args...) cmd.Env = append(os.Environ(), "RUN_AS_PROTOC_PLUGIN=1") out, err := cmd.CombinedOutput() if err != nil { fmt.Printf("executing: %v\n%s\n", strings.Join(cmd.Args, " "), out) } check(err) } // generateIdentifiers generates an internal package for descriptor.proto // and well-known types. func generateIdentifiers(gen *protogen.Plugin, file *protogen.File) { if file.Desc.Package() != "google.protobuf" { return } importPath := modulePath + "/internal/genid" base := strings.TrimSuffix(path.Base(file.Desc.Path()), ".proto") g := gen.NewGeneratedFile(importPath+"/"+base+"_gen.go", protogen.GoImportPath(importPath)) for _, s := range generatedPreamble { g.P(s) } g.P("package ", path.Base(importPath)) g.P() g.P("const ", file.GoDescriptorIdent.GoName, " = ", strconv.Quote(file.Desc.Path())) g.P() var processEnums func([]*protogen.Enum) var processMessages func([]*protogen.Message) const protoreflectPackage = protogen.GoImportPath("google.golang.org/protobuf/reflect/protoreflect") processEnums = func(enums []*protogen.Enum) { for _, enum := range enums { g.P("// Full and short names for ", enum.Desc.FullName(), ".") g.P("const (") g.P(enum.GoIdent.GoName, "_enum_fullname = ", strconv.Quote(string(enum.Desc.FullName()))) g.P(enum.GoIdent.GoName, "_enum_name = ", strconv.Quote(string(enum.Desc.Name()))) g.P(")") g.P() } } processMessages = func(messages []*protogen.Message) { for _, message := range messages { g.P("// Names for ", message.Desc.FullName(), ".") g.P("const (") g.P(message.GoIdent.GoName, "_message_name ", protoreflectPackage.Ident("Name"), " = ", strconv.Quote(string(message.Desc.Name()))) g.P(message.GoIdent.GoName, "_message_fullname ", protoreflectPackage.Ident("FullName"), " = ", strconv.Quote(string(message.Desc.FullName()))) g.P(")") g.P() if len(message.Fields) > 0 { g.P("// Field names for ", message.Desc.FullName(), ".") g.P("const (") for _, field := range message.Fields { g.P(message.GoIdent.GoName, "_", field.GoName, "_field_name ", protoreflectPackage.Ident("Name"), " = ", strconv.Quote(string(field.Desc.Name()))) } g.P() for _, field := range message.Fields { g.P(message.GoIdent.GoName, "_", field.GoName, "_field_fullname ", protoreflectPackage.Ident("FullName"), " = ", strconv.Quote(string(field.Desc.FullName()))) } g.P(")") g.P() g.P("// Field numbers for ", message.Desc.FullName(), ".") g.P("const (") for _, field := range message.Fields { g.P(message.GoIdent.GoName, "_", field.GoName, "_field_number ", protoreflectPackage.Ident("FieldNumber"), " = ", field.Desc.Number()) } g.P(")") g.P() } if len(message.Oneofs) > 0 { g.P("// Oneof names for ", message.Desc.FullName(), ".") g.P("const (") for _, oneof := range message.Oneofs { g.P(message.GoIdent.GoName, "_", oneof.GoName, "_oneof_name ", protoreflectPackage.Ident("Name"), " = ", strconv.Quote(string(oneof.Desc.Name()))) } g.P() for _, oneof := range message.Oneofs { g.P(message.GoIdent.GoName, "_", oneof.GoName, "_oneof_fullname ", protoreflectPackage.Ident("FullName"), " = ", strconv.Quote(string(oneof.Desc.FullName()))) } g.P(")") g.P() } processEnums(message.Enums) processMessages(message.Messages) } } processEnums(file.Enums) processMessages(file.Messages) } // generateSouceContextStringer generates the implementation for the // protoreflect.SourcePath.String method by using information present // in the descriptor.proto. func generateSouceContextStringer(gen *protogen.Plugin, file *protogen.File) { if file.Desc.Path() != "google/protobuf/descriptor.proto" { return } importPath := modulePath + "/reflect/protoreflect" g := gen.NewGeneratedFile(importPath+"/source_gen.go", protogen.GoImportPath(importPath)) for _, s := range generatedPreamble { g.P(s) } g.P("package ", path.Base(importPath)) g.P() var messages []*protogen.Message for _, message := range file.Messages { if message.Desc.Name() == "FileDescriptorProto" { messages = append(messages, message) } } seen := make(map[*protogen.Message]bool) for len(messages) > 0 { m := messages[0] messages = messages[1:] if seen[m] { continue } seen[m] = true g.P("func (p *SourcePath) append", m.GoIdent.GoName, "(b []byte) []byte {") g.P("if len(*p) == 0 { return b }") g.P("switch (*p)[0] {") for _, f := range m.Fields { g.P("case ", f.Desc.Number(), ":") var cardinality string switch { case f.Desc.IsMap(): panic("maps are not supported") case f.Desc.IsList(): cardinality = "Repeated" default: cardinality = "Singular" } nextAppender := "nil" if f.Message != nil { nextAppender = "(*SourcePath).append" + f.Message.GoIdent.GoName messages = append(messages, f.Message) } g.P("b = p.append", cardinality, "Field(b, ", strconv.Quote(string(f.Desc.Name())), ", ", nextAppender, ")") } g.P("}") g.P("return b") g.P("}") g.P() } } func syncOutput(dstDir, srcDir string) { filepath.Walk(srcDir, func(srcPath string, _ os.FileInfo, _ error) error { if !strings.HasSuffix(srcPath, ".go") && !strings.HasSuffix(srcPath, ".meta") { return nil } relPath, err := filepath.Rel(srcDir, srcPath) check(err) dstPath := filepath.Join(dstDir, relPath) if run { if copyFile(dstPath, srcPath) { fmt.Println("#", relPath) } } else { cmd := exec.Command("diff", dstPath, srcPath, "-N", "-u") cmd.Stdout = os.Stdout cmd.Run() } return nil }) } func copyFile(dstPath, srcPath string) (changed bool) { src, err := ioutil.ReadFile(srcPath) check(err) check(os.MkdirAll(filepath.Dir(dstPath), 0775)) dst, _ := ioutil.ReadFile(dstPath) if bytes.Equal(src, dst) { return false } check(ioutil.WriteFile(dstPath, src, 0664)) return true } func check(err error) { if err != nil { panic(err) } } golang-google-protobuf-1.27.1/internal/cmd/generate-types/000077500000000000000000000000001411250152500234705ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/cmd/generate-types/impl.go000066400000000000000000000617241411250152500247720ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main import ( "text/template" ) func generateImplCodec() string { return mustExecute(implCodecTemplate, ProtoKinds) } var implCodecTemplate = template.Must(template.New("").Parse(` {{- /* IsZero is an expression testing if 'v' is the zero value. */ -}} {{- define "IsZero" -}} {{if eq .WireType "Bytes" -}} len(v) == 0 {{- else if or (eq .Name "Double") (eq .Name "Float") -}} v == 0 && !math.Signbit(float64(v)) {{- else -}} v == {{.GoType.Zero}} {{- end -}} {{- end -}} {{- /* Size is an expression computing the size of 'v'. */ -}} {{- define "Size" -}} {{- if .WireType.ConstSize -}} protowire.Size{{.WireType}}() {{- else if eq .WireType "Bytes" -}} protowire.SizeBytes(len({{.FromGoType}})) {{- else -}} protowire.Size{{.WireType}}({{.FromGoType}}) {{- end -}} {{- end -}} {{- define "SizeValue" -}} {{- if .WireType.ConstSize -}} protowire.Size{{.WireType}}() {{- else if eq .WireType "Bytes" -}} protowire.SizeBytes(len({{.FromValue}})) {{- else -}} protowire.Size{{.WireType}}({{.FromValue}}) {{- end -}} {{- end -}} {{- /* Append is a set of statements appending 'v' to 'b'. */ -}} {{- define "Append" -}} {{- if eq .Name "String" -}} b = protowire.AppendString(b, {{.FromGoType}}) {{- else -}} b = protowire.Append{{.WireType}}(b, {{.FromGoType}}) {{- end -}} {{- end -}} {{- define "AppendValue" -}} {{- if eq .Name "String" -}} b = protowire.AppendString(b, {{.FromValue}}) {{- else -}} b = protowire.Append{{.WireType}}(b, {{.FromValue}}) {{- end -}} {{- end -}} {{- define "Consume" -}} {{- if eq .WireType "Varint" -}} var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } {{- else -}} v, n := protowire.Consume{{.WireType}}(b) {{- end -}} {{- end -}} {{- range .}} {{- if .FromGoType }} // size{{.Name}} returns the size of wire encoding a {{.GoType}} pointer as a {{.Name}}. func size{{.Name}}(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { {{if not .WireType.ConstSize -}} v := *p.{{.GoType.PointerMethod}}() {{- end}} return f.tagsize + {{template "Size" .}} } // append{{.Name}} wire encodes a {{.GoType}} pointer as a {{.Name}}. func append{{.Name}}(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.{{.GoType.PointerMethod}}() b = protowire.AppendVarint(b, f.wiretag) {{template "Append" .}} return b, nil } // consume{{.Name}} wire decodes a {{.GoType}} pointer as a {{.Name}}. func consume{{.Name}}(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != {{.WireType.Expr}} { return out, errUnknown } {{template "Consume" .}} if n < 0 { return out, errDecode } *p.{{.GoType.PointerMethod}}() = {{.ToGoType}} out.n = n return out, nil } var coder{{.Name}} = pointerCoderFuncs{ size: size{{.Name}}, marshal: append{{.Name}}, unmarshal: consume{{.Name}}, merge: merge{{.GoType.PointerMethod}}, } {{if or (eq .Name "Bytes") (eq .Name "String")}} // append{{.Name}}ValidateUTF8 wire encodes a {{.GoType}} pointer as a {{.Name}}. func append{{.Name}}ValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.{{.GoType.PointerMethod}}() b = protowire.AppendVarint(b, f.wiretag) {{template "Append" .}} if !utf8.Valid{{if eq .Name "String"}}String{{end}}(v) { return b, errInvalidUTF8{} } return b, nil } // consume{{.Name}}ValidateUTF8 wire decodes a {{.GoType}} pointer as a {{.Name}}. func consume{{.Name}}ValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != {{.WireType.Expr}} { return out, errUnknown } {{template "Consume" .}} if n < 0 { return out, errDecode } if !utf8.Valid(v) { return out, errInvalidUTF8{} } *p.{{.GoType.PointerMethod}}() = {{.ToGoType}} out.n = n return out, nil } var coder{{.Name}}ValidateUTF8 = pointerCoderFuncs{ size: size{{.Name}}, marshal: append{{.Name}}ValidateUTF8, unmarshal: consume{{.Name}}ValidateUTF8, merge: merge{{.GoType.PointerMethod}}, } {{end}} // size{{.Name}}NoZero returns the size of wire encoding a {{.GoType}} pointer as a {{.Name}}. // The zero value is not encoded. func size{{.Name}}NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.{{.GoType.PointerMethod}}() if {{template "IsZero" .}} { return 0 } return f.tagsize + {{template "Size" .}} } // append{{.Name}}NoZero wire encodes a {{.GoType}} pointer as a {{.Name}}. // The zero value is not encoded. func append{{.Name}}NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.{{.GoType.PointerMethod}}() if {{template "IsZero" .}} { return b, nil } b = protowire.AppendVarint(b, f.wiretag) {{template "Append" .}} return b, nil } {{if .ToGoTypeNoZero}} // consume{{.Name}}NoZero wire decodes a {{.GoType}} pointer as a {{.Name}}. // The zero value is not decoded. func consume{{.Name}}NoZero(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != {{.WireType.Expr}} { return out, errUnknown } {{template "Consume" .}} if n < 0 { return out, errDecode } *p.{{.GoType.PointerMethod}}() = {{.ToGoTypeNoZero}} out.n = n return out, nil } {{end}} var coder{{.Name}}NoZero = pointerCoderFuncs{ size: size{{.Name}}NoZero, marshal: append{{.Name}}NoZero, unmarshal: consume{{.Name}}{{if .ToGoTypeNoZero}}NoZero{{end}}, merge: merge{{.GoType.PointerMethod}}NoZero, } {{if or (eq .Name "Bytes") (eq .Name "String")}} // append{{.Name}}NoZeroValidateUTF8 wire encodes a {{.GoType}} pointer as a {{.Name}}. // The zero value is not encoded. func append{{.Name}}NoZeroValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.{{.GoType.PointerMethod}}() if {{template "IsZero" .}} { return b, nil } b = protowire.AppendVarint(b, f.wiretag) {{template "Append" .}} if !utf8.Valid{{if eq .Name "String"}}String{{end}}(v) { return b, errInvalidUTF8{} } return b, nil } {{if .ToGoTypeNoZero}} // consume{{.Name}}NoZeroValidateUTF8 wire decodes a {{.GoType}} pointer as a {{.Name}}. func consume{{.Name}}NoZeroValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != {{.WireType.Expr}} { return out, errUnknown } {{template "Consume" .}} if n < 0 { return out, errDecode } if !utf8.Valid(v) { return out, errInvalidUTF8{} } *p.{{.GoType.PointerMethod}}() = {{.ToGoTypeNoZero}} out.n = n return out, nil } {{end}} var coder{{.Name}}NoZeroValidateUTF8 = pointerCoderFuncs{ size: size{{.Name}}NoZero, marshal: append{{.Name}}NoZeroValidateUTF8, unmarshal: consume{{.Name}}{{if .ToGoTypeNoZero}}NoZero{{end}}ValidateUTF8, merge: merge{{.GoType.PointerMethod}}NoZero, } {{end}} {{- if not .NoPointer}} // size{{.Name}}Ptr returns the size of wire encoding a *{{.GoType}} pointer as a {{.Name}}. // It panics if the pointer is nil. func size{{.Name}}Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { {{if not .WireType.ConstSize -}} v := **p.{{.GoType.PointerMethod}}Ptr() {{end -}} return f.tagsize + {{template "Size" .}} } // append{{.Name}}Ptr wire encodes a *{{.GoType}} pointer as a {{.Name}}. // It panics if the pointer is nil. func append{{.Name}}Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.{{.GoType.PointerMethod}}Ptr() b = protowire.AppendVarint(b, f.wiretag) {{template "Append" .}} return b, nil } // consume{{.Name}}Ptr wire decodes a *{{.GoType}} pointer as a {{.Name}}. func consume{{.Name}}Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != {{.WireType.Expr}} { return out, errUnknown } {{template "Consume" .}} if n < 0 { return out, errDecode } vp := p.{{.GoType.PointerMethod}}Ptr() if *vp == nil { *vp = new({{.GoType}}) } **vp = {{.ToGoType}} out.n = n return out, nil } var coder{{.Name}}Ptr = pointerCoderFuncs{ size: size{{.Name}}Ptr, marshal: append{{.Name}}Ptr, unmarshal: consume{{.Name}}Ptr, merge: merge{{.GoType.PointerMethod}}Ptr, } {{end}} {{if (eq .Name "String")}} // append{{.Name}}PtrValidateUTF8 wire encodes a *{{.GoType}} pointer as a {{.Name}}. // It panics if the pointer is nil. func append{{.Name}}PtrValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.{{.GoType.PointerMethod}}Ptr() b = protowire.AppendVarint(b, f.wiretag) {{template "Append" .}} if !utf8.Valid{{if eq .Name "String"}}String{{end}}(v) { return b, errInvalidUTF8{} } return b, nil } // consume{{.Name}}PtrValidateUTF8 wire decodes a *{{.GoType}} pointer as a {{.Name}}. func consume{{.Name}}PtrValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != {{.WireType.Expr}} { return out, errUnknown } {{template "Consume" .}} if n < 0 { return out, errDecode } if !utf8.Valid(v) { return out, errInvalidUTF8{} } vp := p.{{.GoType.PointerMethod}}Ptr() if *vp == nil { *vp = new({{.GoType}}) } **vp = {{.ToGoType}} out.n = n return out, nil } var coder{{.Name}}PtrValidateUTF8 = pointerCoderFuncs{ size: size{{.Name}}Ptr, marshal: append{{.Name}}PtrValidateUTF8, unmarshal: consume{{.Name}}PtrValidateUTF8, merge: merge{{.GoType.PointerMethod}}Ptr, } {{end}} // size{{.Name}}Slice returns the size of wire encoding a []{{.GoType}} pointer as a repeated {{.Name}}. func size{{.Name}}Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.{{.GoType.PointerMethod}}Slice() {{if .WireType.ConstSize -}} size = len(s) * (f.tagsize + {{template "Size" .}}) {{- else -}} for _, v := range s { size += f.tagsize + {{template "Size" .}} } {{- end}} return size } // append{{.Name}}Slice encodes a []{{.GoType}} pointer as a repeated {{.Name}}. func append{{.Name}}Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.{{.GoType.PointerMethod}}Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) {{template "Append" .}} } return b, nil } // consume{{.Name}}Slice wire decodes a []{{.GoType}} pointer as a repeated {{.Name}}. func consume{{.Name}}Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.{{.GoType.PointerMethod}}Slice() {{- if .WireType.Packable}} if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } for len(b) > 0 { {{template "Consume" .}} if n < 0 { return out, errDecode } s = append(s, {{.ToGoType}}) b = b[n:] } *sp = s out.n = n return out, nil } {{- end}} if wtyp != {{.WireType.Expr}} { return out, errUnknown } {{template "Consume" .}} if n < 0 { return out, errDecode } *sp = append(*sp, {{.ToGoType}}) out.n = n return out, nil } var coder{{.Name}}Slice = pointerCoderFuncs{ size: size{{.Name}}Slice, marshal: append{{.Name}}Slice, unmarshal: consume{{.Name}}Slice, merge: merge{{.GoType.PointerMethod}}Slice, } {{if or (eq .Name "Bytes") (eq .Name "String")}} // append{{.Name}}SliceValidateUTF8 encodes a []{{.GoType}} pointer as a repeated {{.Name}}. func append{{.Name}}SliceValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.{{.GoType.PointerMethod}}Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) {{template "Append" .}} if !utf8.Valid{{if eq .Name "String"}}String{{end}}(v) { return b, errInvalidUTF8{} } } return b, nil } // consume{{.Name}}SliceValidateUTF8 wire decodes a []{{.GoType}} pointer as a repeated {{.Name}}. func consume{{.Name}}SliceValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != {{.WireType.Expr}} { return out, errUnknown } {{template "Consume" .}} if n < 0 { return out, errDecode } if !utf8.Valid(v) { return out, errInvalidUTF8{} } sp := p.{{.GoType.PointerMethod}}Slice() *sp = append(*sp, {{.ToGoType}}) out.n = n return out, nil } var coder{{.Name}}SliceValidateUTF8 = pointerCoderFuncs{ size: size{{.Name}}Slice, marshal: append{{.Name}}SliceValidateUTF8, unmarshal: consume{{.Name}}SliceValidateUTF8, merge: merge{{.GoType.PointerMethod}}Slice, } {{end}} {{if or (eq .WireType "Varint") (eq .WireType "Fixed32") (eq .WireType "Fixed64")}} // size{{.Name}}PackedSlice returns the size of wire encoding a []{{.GoType}} pointer as a packed repeated {{.Name}}. func size{{.Name}}PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.{{.GoType.PointerMethod}}Slice() if len(s) == 0 { return 0 } {{if .WireType.ConstSize -}} n := len(s) * {{template "Size" .}} {{- else -}} n := 0 for _, v := range s { n += {{template "Size" .}} } {{- end}} return f.tagsize + protowire.SizeBytes(n) } // append{{.Name}}PackedSlice encodes a []{{.GoType}} pointer as a packed repeated {{.Name}}. func append{{.Name}}PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.{{.GoType.PointerMethod}}Slice() if len(s) == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) {{if .WireType.ConstSize -}} n := len(s) * {{template "Size" .}} {{- else -}} n := 0 for _, v := range s { n += {{template "Size" .}} } {{- end}} b = protowire.AppendVarint(b, uint64(n)) for _, v := range s { {{template "Append" .}} } return b, nil } var coder{{.Name}}PackedSlice = pointerCoderFuncs{ size: size{{.Name}}PackedSlice, marshal: append{{.Name}}PackedSlice, unmarshal: consume{{.Name}}Slice, merge: merge{{.GoType.PointerMethod}}Slice, } {{end}} {{end -}} {{- if not .NoValueCodec}} // size{{.Name}}Value returns the size of wire encoding a {{.GoType}} value as a {{.Name}}. func size{{.Name}}Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + {{template "SizeValue" .}} } // append{{.Name}}Value encodes a {{.GoType}} value as a {{.Name}}. func append{{.Name}}Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) {{template "AppendValue" .}} return b, nil } // consume{{.Name}}Value decodes a {{.GoType}} value as a {{.Name}}. func consume{{.Name}}Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != {{.WireType.Expr}} { return protoreflect.Value{}, out, errUnknown } {{template "Consume" .}} if n < 0 { return protoreflect.Value{}, out, errDecode } out.n = n return {{.ToValue}}, out, nil } var coder{{.Name}}Value = valueCoderFuncs{ size: size{{.Name}}Value, marshal: append{{.Name}}Value, unmarshal: consume{{.Name}}Value, {{- if (eq .Name "Bytes")}} merge: mergeBytesValue, {{- else}} merge: mergeScalarValue, {{- end}} } {{if (eq .Name "String")}} // append{{.Name}}ValueValidateUTF8 encodes a {{.GoType}} value as a {{.Name}}. func append{{.Name}}ValueValidateUTF8(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) {{template "AppendValue" .}} if !utf8.ValidString({{.FromValue}}) { return b, errInvalidUTF8{} } return b, nil } // consume{{.Name}}ValueValidateUTF8 decodes a {{.GoType}} value as a {{.Name}}. func consume{{.Name}}ValueValidateUTF8(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != {{.WireType.Expr}} { return protoreflect.Value{}, out, errUnknown } {{template "Consume" .}} if n < 0 { return protoreflect.Value{}, out, errDecode } if !utf8.Valid(v) { return protoreflect.Value{}, out, errInvalidUTF8{} } out.n = n return {{.ToValue}}, out, nil } var coder{{.Name}}ValueValidateUTF8 = valueCoderFuncs{ size: size{{.Name}}Value, marshal: append{{.Name}}ValueValidateUTF8, unmarshal: consume{{.Name}}ValueValidateUTF8, merge: mergeScalarValue, } {{end}} // size{{.Name}}SliceValue returns the size of wire encoding a []{{.GoType}} value as a repeated {{.Name}}. func size{{.Name}}SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() {{if .WireType.ConstSize -}} size = list.Len() * (tagsize + {{template "SizeValue" .}}) {{- else -}} for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) size += tagsize + {{template "SizeValue" .}} } {{- end}} return size } // append{{.Name}}SliceValue encodes a []{{.GoType}} value as a repeated {{.Name}}. func append{{.Name}}SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, wiretag) {{template "AppendValue" .}} } return b, nil } // consume{{.Name}}SliceValue wire decodes a []{{.GoType}} value as a repeated {{.Name}}. func consume{{.Name}}SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() {{- if .WireType.Packable}} if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { return protoreflect.Value{}, out, errDecode } for len(b) > 0 { {{template "Consume" .}} if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append({{.ToValue}}) b = b[n:] } out.n = n return listv, out, nil } {{- end}} if wtyp != {{.WireType.Expr}} { return protoreflect.Value{}, out, errUnknown } {{template "Consume" .}} if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append({{.ToValue}}) out.n = n return listv, out, nil } var coder{{.Name}}SliceValue = valueCoderFuncs{ size: size{{.Name}}SliceValue, marshal: append{{.Name}}SliceValue, unmarshal: consume{{.Name}}SliceValue, {{- if (eq .Name "Bytes")}} merge: mergeBytesListValue, {{- else}} merge: mergeListValue, {{- end}} } {{if or (eq .WireType "Varint") (eq .WireType "Fixed32") (eq .WireType "Fixed64")}} // size{{.Name}}PackedSliceValue returns the size of wire encoding a []{{.GoType}} value as a packed repeated {{.Name}}. func size{{.Name}}PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { return 0 } {{if .WireType.ConstSize -}} n := llen * {{template "SizeValue" .}} {{- else -}} n := 0 for i, llen := 0, llen; i < llen; i++ { v := list.Get(i) n += {{template "SizeValue" .}} } {{- end}} return tagsize + protowire.SizeBytes(n) } // append{{.Name}}PackedSliceValue encodes a []{{.GoType}} value as a packed repeated {{.Name}}. func append{{.Name}}PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { return b, nil } b = protowire.AppendVarint(b, wiretag) {{if .WireType.ConstSize -}} n := llen * {{template "SizeValue" .}} {{- else -}} n := 0 for i := 0; i < llen; i++ { v := list.Get(i) n += {{template "SizeValue" .}} } {{- end}} b = protowire.AppendVarint(b, uint64(n)) for i := 0; i < llen; i++ { v := list.Get(i) {{template "AppendValue" .}} } return b, nil } var coder{{.Name}}PackedSliceValue = valueCoderFuncs{ size: size{{.Name}}PackedSliceValue, marshal: append{{.Name}}PackedSliceValue, unmarshal: consume{{.Name}}SliceValue, merge: mergeListValue, } {{end}} {{- end}}{{/* if not .NoValueCodec */}} {{end -}} // We append to an empty array rather than a nil []byte to get non-nil zero-length byte slices. var emptyBuf [0]byte var wireTypes = map[protoreflect.Kind]protowire.Type{ {{range . -}} protoreflect.{{.Name}}Kind: {{.WireType.Expr}}, {{end}} } `)) func generateImplMessage() string { return mustExecute(implMessageTemplate, []string{"messageState", "messageReflectWrapper"}) } var implMessageTemplate = template.Must(template.New("").Parse(` {{range . -}} func (m *{{.}}) Descriptor() protoreflect.MessageDescriptor { return m.messageInfo().Desc } func (m *{{.}}) Type() protoreflect.MessageType { return m.messageInfo() } func (m *{{.}}) New() protoreflect.Message { return m.messageInfo().New() } func (m *{{.}}) Interface() protoreflect.ProtoMessage { {{if eq . "messageState" -}} return m.protoUnwrap().(protoreflect.ProtoMessage) {{- else -}} if m, ok := m.protoUnwrap().(protoreflect.ProtoMessage); ok { return m } return (*messageIfaceWrapper)(m) {{- end -}} } func (m *{{.}}) protoUnwrap() interface{} { return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem()) } func (m *{{.}}) ProtoMethods() *protoiface.Methods { m.messageInfo().init() return &m.messageInfo().methods } // ProtoMessageInfo is a pseudo-internal API for allowing the v1 code // to be able to retrieve a v2 MessageInfo struct. // // WARNING: This method is exempt from the compatibility promise and // may be removed in the future without warning. func (m *{{.}}) ProtoMessageInfo() *MessageInfo { return m.messageInfo() } func (m *{{.}}) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { m.messageInfo().init() for _, ri := range m.messageInfo().rangeInfos { switch ri := ri.(type) { case *fieldInfo: if ri.has(m.pointer()) { if !f(ri.fieldDesc, ri.get(m.pointer())) { return } } case *oneofInfo: if n := ri.which(m.pointer()); n > 0 { fi := m.messageInfo().fields[n] if !f(fi.fieldDesc, fi.get(m.pointer())) { return } } } } m.messageInfo().extensionMap(m.pointer()).Range(f) } func (m *{{.}}) Has(fd protoreflect.FieldDescriptor) bool { m.messageInfo().init() if fi, xt := m.messageInfo().checkField(fd); fi != nil { return fi.has(m.pointer()) } else { return m.messageInfo().extensionMap(m.pointer()).Has(xt) } } func (m *{{.}}) Clear(fd protoreflect.FieldDescriptor) { m.messageInfo().init() if fi, xt := m.messageInfo().checkField(fd); fi != nil { fi.clear(m.pointer()) } else { m.messageInfo().extensionMap(m.pointer()).Clear(xt) } } func (m *{{.}}) Get(fd protoreflect.FieldDescriptor) protoreflect.Value { m.messageInfo().init() if fi, xt := m.messageInfo().checkField(fd); fi != nil { return fi.get(m.pointer()) } else { return m.messageInfo().extensionMap(m.pointer()).Get(xt) } } func (m *{{.}}) Set(fd protoreflect.FieldDescriptor, v protoreflect.Value) { m.messageInfo().init() if fi, xt := m.messageInfo().checkField(fd); fi != nil { fi.set(m.pointer(), v) } else { m.messageInfo().extensionMap(m.pointer()).Set(xt, v) } } func (m *{{.}}) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { m.messageInfo().init() if fi, xt := m.messageInfo().checkField(fd); fi != nil { return fi.mutable(m.pointer()) } else { return m.messageInfo().extensionMap(m.pointer()).Mutable(xt) } } func (m *{{.}}) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { m.messageInfo().init() if fi, xt := m.messageInfo().checkField(fd); fi != nil { return fi.newField() } else { return xt.New() } } func (m *{{.}}) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { m.messageInfo().init() if oi := m.messageInfo().oneofs[od.Name()]; oi != nil && oi.oneofDesc == od { return od.Fields().ByNumber(oi.which(m.pointer())) } panic("invalid oneof descriptor " + string(od.FullName()) + " for message " + string(m.Descriptor().FullName())) } func (m *{{.}}) GetUnknown() protoreflect.RawFields { m.messageInfo().init() return m.messageInfo().getUnknown(m.pointer()) } func (m *{{.}}) SetUnknown(b protoreflect.RawFields) { m.messageInfo().init() m.messageInfo().setUnknown(m.pointer(), b) } func (m *{{.}}) IsValid() bool { return !m.pointer().IsNil() } {{end}} `)) func generateImplMerge() string { return mustExecute(implMergeTemplate, GoTypes) } var implMergeTemplate = template.Must(template.New("").Parse(` {{range .}} {{if ne . "[]byte"}} func merge{{.PointerMethod}}(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { *dst.{{.PointerMethod}}() = *src.{{.PointerMethod}}() } func merge{{.PointerMethod}}NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { v := *src.{{.PointerMethod}}() if v != {{.Zero}} { *dst.{{.PointerMethod}}() = v } } func merge{{.PointerMethod}}Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { p := *src.{{.PointerMethod}}Ptr() if p != nil { v := *p *dst.{{.PointerMethod}}Ptr() = &v } } func merge{{.PointerMethod}}Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { ds := dst.{{.PointerMethod}}Slice() ss := src.{{.PointerMethod}}Slice() *ds = append(*ds, *ss...) } {{end}} {{end}} `)) golang-google-protobuf-1.27.1/internal/cmd/generate-types/main.go000066400000000000000000000156051411250152500247520ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. //go:generate go run . -execute package main import ( "bytes" "flag" "fmt" "go/format" "io/ioutil" "os" "os/exec" "path" "path/filepath" "regexp" "strconv" "strings" "text/template" ) var ( run bool outfile string repoRoot string ) func main() { flag.BoolVar(&run, "execute", false, "Write generated files to destination.") flag.StringVar(&outfile, "outfile", "", "Write this specific file to stdout.") flag.Parse() // Determine repository root path. if outfile == "" { out, err := exec.Command("git", "rev-parse", "--show-toplevel").CombinedOutput() check(err) repoRoot = strings.TrimSpace(string(out)) chdirRoot() } writeSource("internal/filedesc/desc_list_gen.go", generateDescListTypes()) writeSource("internal/impl/codec_gen.go", generateImplCodec()) writeSource("internal/impl/message_reflect_gen.go", generateImplMessage()) writeSource("internal/impl/merge_gen.go", generateImplMerge()) writeSource("proto/decode_gen.go", generateProtoDecode()) writeSource("proto/encode_gen.go", generateProtoEncode()) writeSource("proto/size_gen.go", generateProtoSize()) } // chdirRoot changes the working directory to the repository root. func chdirRoot() { out, err := exec.Command("git", "rev-parse", "--show-toplevel").CombinedOutput() check(err) check(os.Chdir(strings.TrimSpace(string(out)))) } // Expr is a single line Go expression. type Expr string type DescriptorType string const ( MessageDesc DescriptorType = "Message" FieldDesc DescriptorType = "Field" OneofDesc DescriptorType = "Oneof" ExtensionDesc DescriptorType = "Extension" EnumDesc DescriptorType = "Enum" EnumValueDesc DescriptorType = "EnumValue" ServiceDesc DescriptorType = "Service" MethodDesc DescriptorType = "Method" ) func (d DescriptorType) Expr() Expr { return "protoreflect." + Expr(d) + "Descriptor" } func (d DescriptorType) NumberExpr() Expr { switch d { case FieldDesc: return "protoreflect.FieldNumber" case EnumValueDesc: return "protoreflect.EnumNumber" default: return "" } } func generateDescListTypes() string { return mustExecute(descListTypesTemplate, []DescriptorType{ EnumDesc, EnumValueDesc, MessageDesc, FieldDesc, OneofDesc, ExtensionDesc, ServiceDesc, MethodDesc, }) } var descListTypesTemplate = template.Must(template.New("").Parse(` {{- range .}} {{$nameList := (printf "%ss" .)}} {{/* e.g., "Messages" */}} {{$nameDesc := (printf "%s" .)}} {{/* e.g., "Message" */}} type {{$nameList}} struct { List []{{$nameDesc}} once sync.Once byName map[protoreflect.Name]*{{$nameDesc}} // protected by once {{- if (eq . "Field")}} byJSON map[string]*{{$nameDesc}} // protected by once byText map[string]*{{$nameDesc}} // protected by once {{- end}} {{- if .NumberExpr}} byNum map[{{.NumberExpr}}]*{{$nameDesc}} // protected by once {{- end}} } func (p *{{$nameList}}) Len() int { return len(p.List) } func (p *{{$nameList}}) Get(i int) {{.Expr}} { return &p.List[i] } func (p *{{$nameList}}) ByName(s protoreflect.Name) {{.Expr}} { if d := p.lazyInit().byName[s]; d != nil { return d } return nil } {{- if (eq . "Field")}} func (p *{{$nameList}}) ByJSONName(s string) {{.Expr}} { if d := p.lazyInit().byJSON[s]; d != nil { return d } return nil } func (p *{{$nameList}}) ByTextName(s string) {{.Expr}} { if d := p.lazyInit().byText[s]; d != nil { return d } return nil } {{- end}} {{- if .NumberExpr}} func (p *{{$nameList}}) ByNumber(n {{.NumberExpr}}) {{.Expr}} { if d := p.lazyInit().byNum[n]; d != nil { return d } return nil } {{- end}} func (p *{{$nameList}}) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } func (p *{{$nameList}}) ProtoInternal(pragma.DoNotImplement) {} func (p *{{$nameList}}) lazyInit() *{{$nameList}} { p.once.Do(func() { if len(p.List) > 0 { p.byName = make(map[protoreflect.Name]*{{$nameDesc}}, len(p.List)) {{- if (eq . "Field")}} p.byJSON = make(map[string]*{{$nameDesc}}, len(p.List)) p.byText = make(map[string]*{{$nameDesc}}, len(p.List)) {{- end}} {{- if .NumberExpr}} p.byNum = make(map[{{.NumberExpr}}]*{{$nameDesc}}, len(p.List)) {{- end}} for i := range p.List { d := &p.List[i] if _, ok := p.byName[d.Name()]; !ok { p.byName[d.Name()] = d } {{- if (eq . "Field")}} if _, ok := p.byJSON[d.JSONName()]; !ok { p.byJSON[d.JSONName()] = d } if _, ok := p.byText[d.TextName()]; !ok { p.byText[d.TextName()] = d } {{- end}} {{- if .NumberExpr}} if _, ok := p.byNum[d.Number()]; !ok { p.byNum[d.Number()] = d } {{- end}} } } }) return p } {{- end}} `)) func mustExecute(t *template.Template, data interface{}) string { var b bytes.Buffer if err := t.Execute(&b, data); err != nil { panic(err) } return b.String() } func writeSource(file, src string) { // Crude but effective way to detect used imports. var imports []string for _, pkg := range []string{ "fmt", "math", "reflect", "sync", "unicode/utf8", "", "google.golang.org/protobuf/internal/descfmt", "google.golang.org/protobuf/encoding/protowire", "google.golang.org/protobuf/internal/errors", "google.golang.org/protobuf/internal/strs", "google.golang.org/protobuf/internal/pragma", "google.golang.org/protobuf/reflect/protoreflect", "google.golang.org/protobuf/runtime/protoiface", } { if pkg == "" { imports = append(imports, "") // blank line between stdlib and proto packages } else if regexp.MustCompile(`[^\pL_0-9]` + path.Base(pkg) + `\.`).MatchString(src) { imports = append(imports, strconv.Quote(pkg)) } } s := strings.Join([]string{ "// Copyright 2018 The Go Authors. All rights reserved.", "// Use of this source code is governed by a BSD-style", "// license that can be found in the LICENSE file.", "", "// Code generated by generate-types. DO NOT EDIT.", "", "package " + path.Base(path.Dir(path.Join("proto", file))), "", "import (" + strings.Join(imports, "\n") + ")", "", src, }, "\n") b, err := format.Source([]byte(s)) if err != nil { // Just print the error and output the unformatted file for examination. fmt.Fprintf(os.Stderr, "%v:%v\n", file, err) b = []byte(s) } if outfile != "" { if outfile == file { os.Stdout.Write(b) } return } absFile := filepath.Join(repoRoot, file) if run { prev, _ := ioutil.ReadFile(absFile) if !bytes.Equal(b, prev) { fmt.Println("#", file) check(ioutil.WriteFile(absFile, b, 0664)) } } else { check(ioutil.WriteFile(absFile+".tmp", b, 0664)) defer os.Remove(absFile + ".tmp") cmd := exec.Command("diff", file, file+".tmp", "-N", "-u") cmd.Dir = repoRoot cmd.Stdout = os.Stdout cmd.Run() } } func check(err error) { if err != nil { panic(err) } } golang-google-protobuf-1.27.1/internal/cmd/generate-types/proto.go000066400000000000000000000250431411250152500251660ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main import ( "strings" "text/template" ) type WireType string const ( WireVarint WireType = "Varint" WireFixed32 WireType = "Fixed32" WireFixed64 WireType = "Fixed64" WireBytes WireType = "Bytes" WireGroup WireType = "Group" ) func (w WireType) Expr() Expr { if w == WireGroup { return "protowire.StartGroupType" } return "protowire." + Expr(w) + "Type" } func (w WireType) Packable() bool { return w == WireVarint || w == WireFixed32 || w == WireFixed64 } func (w WireType) ConstSize() bool { return w == WireFixed32 || w == WireFixed64 } type GoType string var GoTypes = []GoType{ GoBool, GoInt32, GoUint32, GoInt64, GoUint64, GoFloat32, GoFloat64, GoString, GoBytes, } const ( GoBool = "bool" GoInt32 = "int32" GoUint32 = "uint32" GoInt64 = "int64" GoUint64 = "uint64" GoFloat32 = "float32" GoFloat64 = "float64" GoString = "string" GoBytes = "[]byte" ) func (g GoType) Zero() Expr { switch g { case GoBool: return "false" case GoString: return `""` case GoBytes: return "nil" } return "0" } // Kind is the reflect.Kind of the type. func (g GoType) Kind() Expr { if g == "" || g == GoBytes { return "" } return "reflect." + Expr(strings.ToUpper(string(g[:1]))+string(g[1:])) } // PointerMethod is the "internal/impl".pointer method used to access a pointer to this type. func (g GoType) PointerMethod() Expr { if g == GoBytes { return "Bytes" } return Expr(strings.ToUpper(string(g[:1])) + string(g[1:])) } type ProtoKind struct { Name string WireType WireType // Conversions to/from protoreflect.Value. ToValue Expr FromValue Expr // Conversions to/from generated structures. GoType GoType ToGoType Expr ToGoTypeNoZero Expr FromGoType Expr NoPointer bool NoValueCodec bool } func (k ProtoKind) Expr() Expr { return "protoreflect." + Expr(k.Name) + "Kind" } var ProtoKinds = []ProtoKind{ { Name: "Bool", WireType: WireVarint, ToValue: "protoreflect.ValueOfBool(protowire.DecodeBool(v))", FromValue: "protowire.EncodeBool(v.Bool())", GoType: GoBool, ToGoType: "protowire.DecodeBool(v)", FromGoType: "protowire.EncodeBool(v)", }, { Name: "Enum", WireType: WireVarint, ToValue: "protoreflect.ValueOfEnum(protoreflect.EnumNumber(v))", FromValue: "uint64(v.Enum())", }, { Name: "Int32", WireType: WireVarint, ToValue: "protoreflect.ValueOfInt32(int32(v))", FromValue: "uint64(int32(v.Int()))", GoType: GoInt32, ToGoType: "int32(v)", FromGoType: "uint64(v)", }, { Name: "Sint32", WireType: WireVarint, ToValue: "protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32)))", FromValue: "protowire.EncodeZigZag(int64(int32(v.Int())))", GoType: GoInt32, ToGoType: "int32(protowire.DecodeZigZag(v & math.MaxUint32))", FromGoType: "protowire.EncodeZigZag(int64(v))", }, { Name: "Uint32", WireType: WireVarint, ToValue: "protoreflect.ValueOfUint32(uint32(v))", FromValue: "uint64(uint32(v.Uint()))", GoType: GoUint32, ToGoType: "uint32(v)", FromGoType: "uint64(v)", }, { Name: "Int64", WireType: WireVarint, ToValue: "protoreflect.ValueOfInt64(int64(v))", FromValue: "uint64(v.Int())", GoType: GoInt64, ToGoType: "int64(v)", FromGoType: "uint64(v)", }, { Name: "Sint64", WireType: WireVarint, ToValue: "protoreflect.ValueOfInt64(protowire.DecodeZigZag(v))", FromValue: "protowire.EncodeZigZag(v.Int())", GoType: GoInt64, ToGoType: "protowire.DecodeZigZag(v)", FromGoType: "protowire.EncodeZigZag(v)", }, { Name: "Uint64", WireType: WireVarint, ToValue: "protoreflect.ValueOfUint64(v)", FromValue: "v.Uint()", GoType: GoUint64, ToGoType: "v", FromGoType: "v", }, { Name: "Sfixed32", WireType: WireFixed32, ToValue: "protoreflect.ValueOfInt32(int32(v))", FromValue: "uint32(v.Int())", GoType: GoInt32, ToGoType: "int32(v)", FromGoType: "uint32(v)", }, { Name: "Fixed32", WireType: WireFixed32, ToValue: "protoreflect.ValueOfUint32(uint32(v))", FromValue: "uint32(v.Uint())", GoType: GoUint32, ToGoType: "v", FromGoType: "v", }, { Name: "Float", WireType: WireFixed32, ToValue: "protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v)))", FromValue: "math.Float32bits(float32(v.Float()))", GoType: GoFloat32, ToGoType: "math.Float32frombits(v)", FromGoType: "math.Float32bits(v)", }, { Name: "Sfixed64", WireType: WireFixed64, ToValue: "protoreflect.ValueOfInt64(int64(v))", FromValue: "uint64(v.Int())", GoType: GoInt64, ToGoType: "int64(v)", FromGoType: "uint64(v)", }, { Name: "Fixed64", WireType: WireFixed64, ToValue: "protoreflect.ValueOfUint64(v)", FromValue: "v.Uint()", GoType: GoUint64, ToGoType: "v", FromGoType: "v", }, { Name: "Double", WireType: WireFixed64, ToValue: "protoreflect.ValueOfFloat64(math.Float64frombits(v))", FromValue: "math.Float64bits(v.Float())", GoType: GoFloat64, ToGoType: "math.Float64frombits(v)", FromGoType: "math.Float64bits(v)", }, { Name: "String", WireType: WireBytes, ToValue: "protoreflect.ValueOfString(string(v))", FromValue: "v.String()", GoType: GoString, ToGoType: "string(v)", FromGoType: "v", }, { Name: "Bytes", WireType: WireBytes, ToValue: "protoreflect.ValueOfBytes(append(emptyBuf[:], v...))", FromValue: "v.Bytes()", GoType: GoBytes, ToGoType: "append(emptyBuf[:], v...)", ToGoTypeNoZero: "append(([]byte)(nil), v...)", FromGoType: "v", NoPointer: true, }, { Name: "Message", WireType: WireBytes, ToValue: "protoreflect.ValueOfBytes(v)", FromValue: "v", NoValueCodec: true, }, { Name: "Group", WireType: WireGroup, ToValue: "protoreflect.ValueOfBytes(v)", FromValue: "v", NoValueCodec: true, }, } func generateProtoDecode() string { return mustExecute(protoDecodeTemplate, ProtoKinds) } var protoDecodeTemplate = template.Must(template.New("").Parse(` // unmarshalScalar decodes a value of the given kind. // // Message values are decoded into a []byte which aliases the input data. func (o UnmarshalOptions) unmarshalScalar(b []byte, wtyp protowire.Type, fd protoreflect.FieldDescriptor) (val protoreflect.Value, n int, err error) { switch fd.Kind() { {{- range .}} case {{.Expr}}: if wtyp != {{.WireType.Expr}} { return val, 0, errUnknown } {{if (eq .WireType "Group") -}} v, n := protowire.ConsumeGroup(fd.Number(), b) {{- else -}} v, n := protowire.Consume{{.WireType}}(b) {{- end}} if n < 0 { return val, 0, errDecode } {{if (eq .Name "String") -}} if strs.EnforceUTF8(fd) && !utf8.Valid(v) { return protoreflect.Value{}, 0, errors.InvalidUTF8(string(fd.FullName())) } {{end -}} return {{.ToValue}}, n, nil {{- end}} default: return val, 0, errUnknown } } func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list protoreflect.List, fd protoreflect.FieldDescriptor) (n int, err error) { switch fd.Kind() { {{- range .}} case {{.Expr}}: {{- if .WireType.Packable}} if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { return 0, errDecode } for len(buf) > 0 { v, n := protowire.Consume{{.WireType}}(buf) if n < 0 { return 0, errDecode } buf = buf[n:] list.Append({{.ToValue}}) } return n, nil } {{- end}} if wtyp != {{.WireType.Expr}} { return 0, errUnknown } {{if (eq .WireType "Group") -}} v, n := protowire.ConsumeGroup(fd.Number(), b) {{- else -}} v, n := protowire.Consume{{.WireType}}(b) {{- end}} if n < 0 { return 0, errDecode } {{if (eq .Name "String") -}} if strs.EnforceUTF8(fd) && !utf8.Valid(v) { return 0, errors.InvalidUTF8(string(fd.FullName())) } {{end -}} {{if or (eq .Name "Message") (eq .Name "Group") -}} m := list.NewElement() if err := o.unmarshalMessage(v, m.Message()); err != nil { return 0, err } list.Append(m) {{- else -}} list.Append({{.ToValue}}) {{- end}} return n, nil {{- end}} default: return 0, errUnknown } } // We append to an empty array rather than a nil []byte to get non-nil zero-length byte slices. var emptyBuf [0]byte `)) func generateProtoEncode() string { return mustExecute(protoEncodeTemplate, ProtoKinds) } var protoEncodeTemplate = template.Must(template.New("").Parse(` var wireTypes = map[protoreflect.Kind]protowire.Type{ {{- range .}} {{.Expr}}: {{.WireType.Expr}}, {{- end}} } func (o MarshalOptions) marshalSingular(b []byte, fd protoreflect.FieldDescriptor, v protoreflect.Value) ([]byte, error) { switch fd.Kind() { {{- range .}} case {{.Expr}}: {{- if (eq .Name "String") }} if strs.EnforceUTF8(fd) && !utf8.ValidString(v.String()) { return b, errors.InvalidUTF8(string(fd.FullName())) } b = protowire.AppendString(b, {{.FromValue}}) {{- else if (eq .Name "Message") -}} var pos int var err error b, pos = appendSpeculativeLength(b) b, err = o.marshalMessage(b, v.Message()) if err != nil { return b, err } b = finishSpeculativeLength(b, pos) {{- else if (eq .Name "Group") -}} var err error b, err = o.marshalMessage(b, v.Message()) if err != nil { return b, err } b = protowire.AppendVarint(b, protowire.EncodeTag(fd.Number(), protowire.EndGroupType)) {{- else -}} b = protowire.Append{{.WireType}}(b, {{.FromValue}}) {{- end}} {{- end}} default: return b, errors.New("invalid kind %v", fd.Kind()) } return b, nil } `)) func generateProtoSize() string { return mustExecute(protoSizeTemplate, ProtoKinds) } var protoSizeTemplate = template.Must(template.New("").Parse(` func (o MarshalOptions) sizeSingular(num protowire.Number, kind protoreflect.Kind, v protoreflect.Value) int { switch kind { {{- range .}} case {{.Expr}}: {{if (eq .Name "Message") -}} return protowire.SizeBytes(o.size(v.Message())) {{- else if or (eq .WireType "Fixed32") (eq .WireType "Fixed64") -}} return protowire.Size{{.WireType}}() {{- else if (eq .WireType "Bytes") -}} return protowire.Size{{.WireType}}(len({{.FromValue}})) {{- else if (eq .WireType "Group") -}} return protowire.Size{{.WireType}}(num, o.size(v.Message())) {{- else -}} return protowire.Size{{.WireType}}({{.FromValue}}) {{- end}} {{- end}} default: return 0 } } `)) golang-google-protobuf-1.27.1/internal/cmd/pbdump/000077500000000000000000000000001411250152500220235ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/cmd/pbdump/pbdump.go000066400000000000000000000216601411250152500236460ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // pbdump is a tool for decoding the wire format for protocol buffer messages. package main import ( "bytes" "flag" "fmt" "io/ioutil" "log" "os" "path/filepath" "sort" "strconv" "strings" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protodesc" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/testing/protopack" "google.golang.org/protobuf/types/descriptorpb" ) func main() { log.SetFlags(0) log.SetOutput(os.Stderr) var fs fields var flagUsages []string flagVar := func(value flag.Value, name, usage string) { flagUsages = append(flagUsages, fmt.Sprintf(" -%-16v %v", name+" "+value.String(), usage)) flag.Var(value, name, usage) } flagBool := func(name, usage string) *bool { flagUsages = append(flagUsages, fmt.Sprintf(" -%-16v %v", name, usage)) return flag.Bool(name, false, usage) } flagVar(fieldsFlag{&fs, protoreflect.BoolKind}, "bools", "List of bool fields") flagVar(fieldsFlag{&fs, protoreflect.Int64Kind}, "ints", "List of int32 or int64 fields") flagVar(fieldsFlag{&fs, protoreflect.Sint64Kind}, "sints", "List of sint32 or sint64 fields") flagVar(fieldsFlag{&fs, protoreflect.Uint64Kind}, "uints", "List of enum, uint32, or uint64 fields") flagVar(fieldsFlag{&fs, protoreflect.Fixed32Kind}, "uint32s", "List of fixed32 fields") flagVar(fieldsFlag{&fs, protoreflect.Sfixed32Kind}, "int32s", "List of sfixed32 fields") flagVar(fieldsFlag{&fs, protoreflect.FloatKind}, "float32s", "List of float fields") flagVar(fieldsFlag{&fs, protoreflect.Fixed64Kind}, "uint64s", "List of fixed64 fields") flagVar(fieldsFlag{&fs, protoreflect.Sfixed64Kind}, "int64s", "List of sfixed64 fields") flagVar(fieldsFlag{&fs, protoreflect.DoubleKind}, "float64s", "List of double fields") flagVar(fieldsFlag{&fs, protoreflect.StringKind}, "strings", "List of string fields") flagVar(fieldsFlag{&fs, protoreflect.BytesKind}, "bytes", "List of bytes fields") flagVar(fieldsFlag{&fs, protoreflect.MessageKind}, "messages", "List of message fields") flagVar(fieldsFlag{&fs, protoreflect.GroupKind}, "groups", "List of group fields") printDesc := flagBool("print_descriptor", "Print the message descriptor") printSource := flagBool("print_source", "Print the output in valid Go syntax") flag.Usage = func() { fmt.Printf("Usage: %s [OPTIONS]... [INPUTS]...\n\n%s\n", filepath.Base(os.Args[0]), strings.Join(append([]string{ "Print structured representations of encoded protocol buffer messages.", "Since the protobuf wire format is not fully self-describing, type information", "about the proto message can be provided using flags (e.g., -messages).", "Each field list is a comma-separated list of field identifiers,", "where each field identifier is a dot-separated list of field numbers,", "identifying each field relative to the root message.", "", "For example, \"-messages 1,3,3.1 -float32s 1.2 -bools 3.1.2\" represents:", "", " message M {", " optional M1 f1 = 1; // -messages 1", " message M1 {", " repeated float f2 = 2; // -float32s 1.2", " }", " optional M3 f3 = 3; // -messages 3", " message M3 {", " optional M1 f1 = 1; // -messages 3.1", " message M1 {", " repeated bool f2 = 2; // -bools 3.1.2", " }", " }", " }", "", "Arbitrarily complex message schemas can be represented using these flags.", "Scalar field types are marked as repeated so that pbdump can decode", "the packed representations of such field types.", "", "If no inputs are specified, the wire data is read in from stdin, otherwise", "the contents of each specified input file is concatenated and", "treated as one large message.", "", "Options:", }, flagUsages...), "\n")) } flag.Parse() // Create message types. var desc protoreflect.MessageDescriptor if len(fs) > 0 { var err error desc, err = fs.Descriptor() if err != nil { log.Fatalf("Descriptor error: %v", err) } if *printDesc { fmt.Printf("%#v\n", desc) } } // Read message input. var buf []byte if flag.NArg() == 0 { b, err := ioutil.ReadAll(os.Stdin) if err != nil { log.Fatalf("ReadAll error: %v", err) } buf = b } for _, f := range flag.Args() { b, err := ioutil.ReadFile(f) if err != nil { log.Fatalf("ReadFile error: %v", err) } buf = append(buf, b...) } // Parse and print message structure. defer log.Printf("fatal input: %q", buf) // debug printout if panic occurs var m protopack.Message m.UnmarshalAbductive(buf, desc) if *printSource { fmt.Printf("%#v\n", m) } else { fmt.Printf("%+v\n", m) } if !bytes.Equal(buf, m.Marshal()) || len(buf) != m.Size() { log.Fatalf("roundtrip mismatch:\n\tgot: %d %x\n\twant: %d %x", m.Size(), m, len(buf), buf) } os.Exit(0) // exit cleanly, avoid debug printout } // fields is a tree of fields, keyed by a field number. // Fields representing messages or groups have sub-fields. type fields map[protowire.Number]*field type field struct { kind protoreflect.Kind sub fields // only for MessageKind or GroupKind } // Set parses s as a comma-separated list (see the help above for the format) // and treats each field identifier as the specified kind. func (fs *fields) Set(s string, k protoreflect.Kind) error { if *fs == nil { *fs = make(fields) } for _, s := range strings.Split(s, ",") { if err := fs.set("", strings.TrimSpace(s), k); err != nil { return err } } return nil } func (fs fields) set(prefix, s string, k protoreflect.Kind) error { if s == "" { return nil } // Parse next field number. i := strings.IndexByte(s, '.') if i < 0 { i = len(s) } prefix = strings.TrimPrefix(prefix+"."+s[:i], ".") n, _ := strconv.ParseInt(s[:i], 10, 32) num := protowire.Number(n) if num < protowire.MinValidNumber || protowire.MaxValidNumber < num { return errors.New("invalid field: %v", prefix) } s = strings.TrimPrefix(s[i:], ".") // Handle the current field. if fs[num] == nil { fs[num] = &field{0, make(fields)} } if len(s) == 0 { if fs[num].kind.IsValid() { return errors.New("field %v already set as %v type", prefix, fs[num].kind) } fs[num].kind = k } if err := fs[num].sub.set(prefix, s, k); err != nil { return err } // Verify that only messages or groups can have sub-fields. k2 := fs[num].kind if k2 > 0 && k2 != protoreflect.MessageKind && k2 != protoreflect.GroupKind && len(fs[num].sub) > 0 { return errors.New("field %v of %v type cannot have sub-fields", prefix, k2) } return nil } // Descriptor returns the field tree as a message descriptor. func (fs fields) Descriptor() (protoreflect.MessageDescriptor, error) { fd, err := protodesc.NewFile(&descriptorpb.FileDescriptorProto{ Name: proto.String("dump.proto"), Syntax: proto.String("proto2"), MessageType: []*descriptorpb.DescriptorProto{fs.messageDescriptor("X")}, }, nil) if err != nil { return nil, err } return fd.Messages().Get(0), nil } func (fs fields) messageDescriptor(name protoreflect.FullName) *descriptorpb.DescriptorProto { m := &descriptorpb.DescriptorProto{Name: proto.String(string(name.Name()))} for _, n := range fs.sortedNums() { k := fs[n].kind if !k.IsValid() { k = protoreflect.MessageKind } f := &descriptorpb.FieldDescriptorProto{ Name: proto.String(fmt.Sprintf("x%d", n)), Number: proto.Int32(int32(n)), Label: descriptorpb.FieldDescriptorProto_LABEL_OPTIONAL.Enum(), Type: descriptorpb.FieldDescriptorProto_Type(k).Enum(), } switch k { case protoreflect.BoolKind, protoreflect.EnumKind, protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Uint32Kind, protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Uint64Kind, protoreflect.Sfixed32Kind, protoreflect.Fixed32Kind, protoreflect.FloatKind, protoreflect.Sfixed64Kind, protoreflect.Fixed64Kind, protoreflect.DoubleKind: f.Label = descriptorpb.FieldDescriptorProto_LABEL_REPEATED.Enum() f.Options = &descriptorpb.FieldOptions{Packed: proto.Bool(true)} case protoreflect.MessageKind, protoreflect.GroupKind: s := name.Append(protoreflect.Name(fmt.Sprintf("X%d", n))) f.TypeName = proto.String(string("." + s)) m.NestedType = append(m.NestedType, fs[n].sub.messageDescriptor(s)) } m.Field = append(m.Field, f) } return m } func (fs fields) sortedNums() (ns []protowire.Number) { for n := range fs { ns = append(ns, n) } sort.Slice(ns, func(i, j int) bool { return ns[i] < ns[j] }) return ns } // fieldsFlag is an implementation of flag.Value that is keyed a specific kind. type fieldsFlag struct { f *fields k protoreflect.Kind } func (fs fieldsFlag) String() string { return "FIELDS" } func (fs fieldsFlag) Set(s string) error { return fs.f.Set(s, fs.k) } golang-google-protobuf-1.27.1/internal/cmd/pbdump/pbdump_test.go000066400000000000000000000064101411250152500247010ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main import ( "fmt" "strings" "testing" "google.golang.org/protobuf/encoding/prototext" "google.golang.org/protobuf/proto" pref "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/types/descriptorpb" ) func mustMakeMessage(s string) *descriptorpb.DescriptorProto { s = fmt.Sprintf(`name:"test.proto" syntax:"proto2" message_type:[{%s}]`, s) pb := new(descriptorpb.FileDescriptorProto) if err := prototext.Unmarshal([]byte(s), pb); err != nil { panic(err) } return pb.MessageType[0] } func TestFields(t *testing.T) { type fieldsKind struct { kind pref.Kind fields string } tests := []struct { inFields []fieldsKind wantMsg *descriptorpb.DescriptorProto wantErr string }{{ inFields: []fieldsKind{{pref.MessageKind, ""}}, wantMsg: mustMakeMessage(`name:"X"`), }, { inFields: []fieldsKind{{pref.MessageKind, "987654321"}}, wantErr: "invalid field: 987654321", }, { inFields: []fieldsKind{{pref.MessageKind, "-1"}}, wantErr: "invalid field: -1", }, { inFields: []fieldsKind{{pref.MessageKind, "k"}}, wantErr: "invalid field: k", }, { inFields: []fieldsKind{{pref.MessageKind, "1.2"}, {pref.Int32Kind, "1"}}, wantErr: "field 1 of int32 type cannot have sub-fields", }, { inFields: []fieldsKind{{pref.Int32Kind, "1"}, {pref.MessageKind, "1.2"}}, wantErr: "field 1 of int32 type cannot have sub-fields", }, { inFields: []fieldsKind{{pref.Int32Kind, "30"}, {pref.Int32Kind, "30"}}, wantErr: "field 30 already set as int32 type", }, { inFields: []fieldsKind{ {pref.Int32Kind, "10.20.31"}, {pref.MessageKind, " 10.20.30, 10.21 "}, {pref.GroupKind, "10"}, }, wantMsg: mustMakeMessage(` name: "X" field: [ {name:"x10" number:10 label:LABEL_OPTIONAL type:TYPE_GROUP type_name:".X.X10"} ] nested_type: [{ name: "X10" field: [ {name:"x20" number:20 label:LABEL_OPTIONAL type:TYPE_MESSAGE type_name:".X.X10.X20"}, {name:"x21" number:21 label:LABEL_OPTIONAL type:TYPE_MESSAGE type_name:".X.X10.X21"} ] nested_type: [{ name: "X20" field:[ {name:"x30" number:30 label:LABEL_OPTIONAL type:TYPE_MESSAGE, type_name:".X.X10.X20.X30"}, {name:"x31" number:31 label:LABEL_REPEATED type:TYPE_INT32 options:{packed:true}} ] nested_type: [{ name: "X30" }] }, { name: "X21" }] }] `), }} for _, tt := range tests { t.Run("", func(t *testing.T) { var fields fields for i, tc := range tt.inFields { gotErr := fields.Set(tc.fields, tc.kind) if gotErr != nil { if tt.wantErr == "" || !strings.Contains(fmt.Sprint(gotErr), tt.wantErr) { t.Fatalf("fields %d, Set(%q, %v) = %v, want %v", i, tc.fields, tc.kind, gotErr, tt.wantErr) } return } } if tt.wantErr != "" { t.Errorf("all Set calls succeeded, want %v error", tt.wantErr) } gotMsg := fields.messageDescriptor("X") if !proto.Equal(gotMsg, tt.wantMsg) { t.Errorf("messageDescriptor() mismatch:\ngot %v\nwant %v", gotMsg, tt.wantMsg) } if _, err := fields.Descriptor(); err != nil { t.Errorf("Descriptor() = %v, want nil error", err) } }) } } golang-google-protobuf-1.27.1/internal/conformance/000077500000000000000000000000001411250152500222635ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/conformance/conformance_test.go000066400000000000000000000106401411250152500261440ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package conformance_test import ( "encoding/binary" "flag" "io" "log" "os" "os/exec" "path/filepath" "testing" "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/encoding/prototext" "google.golang.org/protobuf/proto" pb "google.golang.org/protobuf/internal/testprotos/conformance" ) func init() { // When the environment variable RUN_AS_CONFORMANCE_PLUGIN is set, // we skip running the tests and instead act as a conformance plugin. // This allows the binary to pass itself to conformance. if os.Getenv("RUN_AS_CONFORMANCE_PLUGIN") == "1" { main() os.Exit(0) } } var ( execute = flag.Bool("execute", false, "execute the conformance test") protoRoot = flag.String("protoroot", os.Getenv("PROTOBUF_ROOT"), "The root of the protobuf source tree.") ) func Test(t *testing.T) { if !*execute { t.SkipNow() } binPath := filepath.Join(*protoRoot, "conformance", "conformance-test-runner") cmd := exec.Command(binPath, "--failure_list", "failing_tests.txt", "--text_format_failure_list", "failing_tests_text_format.txt", "--enforce_recommended", os.Args[0]) cmd.Env = append(os.Environ(), "RUN_AS_CONFORMANCE_PLUGIN=1") out, err := cmd.CombinedOutput() if err != nil { t.Fatalf("execution error: %v\n\n%s", err, out) } } func main() { var sizeBuf [4]byte inbuf := make([]byte, 0, 4096) for { _, err := io.ReadFull(os.Stdin, sizeBuf[:]) if err == io.EOF { break } if err != nil { log.Fatalf("conformance: read request: %v", err) } size := binary.LittleEndian.Uint32(sizeBuf[:]) if int(size) > cap(inbuf) { inbuf = make([]byte, size) } inbuf = inbuf[:size] if _, err := io.ReadFull(os.Stdin, inbuf); err != nil { log.Fatalf("conformance: read request: %v", err) } req := &pb.ConformanceRequest{} if err := proto.Unmarshal(inbuf, req); err != nil { log.Fatalf("conformance: parse request: %v", err) } res := handle(req) out, err := proto.Marshal(res) if err != nil { log.Fatalf("conformance: marshal response: %v", err) } binary.LittleEndian.PutUint32(sizeBuf[:], uint32(len(out))) if _, err := os.Stdout.Write(sizeBuf[:]); err != nil { log.Fatalf("conformance: write response: %v", err) } if _, err := os.Stdout.Write(out); err != nil { log.Fatalf("conformance: write response: %v", err) } } } func handle(req *pb.ConformanceRequest) (res *pb.ConformanceResponse) { var msg proto.Message = &pb.TestAllTypesProto2{} if req.GetMessageType() == "protobuf_test_messages.proto3.TestAllTypesProto3" { msg = &pb.TestAllTypesProto3{} } // Unmarshal the test message. var err error switch p := req.Payload.(type) { case *pb.ConformanceRequest_ProtobufPayload: err = proto.Unmarshal(p.ProtobufPayload, msg) case *pb.ConformanceRequest_JsonPayload: err = protojson.UnmarshalOptions{ DiscardUnknown: req.TestCategory == pb.TestCategory_JSON_IGNORE_UNKNOWN_PARSING_TEST, }.Unmarshal([]byte(p.JsonPayload), msg) case *pb.ConformanceRequest_TextPayload: err = prototext.Unmarshal([]byte(p.TextPayload), msg) default: return &pb.ConformanceResponse{ Result: &pb.ConformanceResponse_RuntimeError{ RuntimeError: "unknown request payload type", }, } } if err != nil { return &pb.ConformanceResponse{ Result: &pb.ConformanceResponse_ParseError{ ParseError: err.Error(), }, } } // Marshal the test message. var b []byte switch req.RequestedOutputFormat { case pb.WireFormat_PROTOBUF: b, err = proto.Marshal(msg) res = &pb.ConformanceResponse{ Result: &pb.ConformanceResponse_ProtobufPayload{ ProtobufPayload: b, }, } case pb.WireFormat_JSON: b, err = protojson.Marshal(msg) res = &pb.ConformanceResponse{ Result: &pb.ConformanceResponse_JsonPayload{ JsonPayload: string(b), }, } case pb.WireFormat_TEXT_FORMAT: b, err = prototext.MarshalOptions{ EmitUnknown: req.PrintUnknownFields, }.Marshal(msg) res = &pb.ConformanceResponse{ Result: &pb.ConformanceResponse_TextPayload{ TextPayload: string(b), }, } default: return &pb.ConformanceResponse{ Result: &pb.ConformanceResponse_RuntimeError{ RuntimeError: "unknown output format", }, } } if err != nil { return &pb.ConformanceResponse{ Result: &pb.ConformanceResponse_SerializeError{ SerializeError: err.Error(), }, } } return res } golang-google-protobuf-1.27.1/internal/conformance/failing_tests.txt000066400000000000000000000000001411250152500256450ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/conformance/failing_tests_text_format.txt000066400000000000000000000006531411250152500302770ustar00rootroot00000000000000Recommended.Proto3.ProtobufInput.MessageUnknownFields_Print.TextFormatOutput Recommended.Proto3.TextFormatInput.StringLiteralShortUnicodeEscapeSurrogatePairBytes Recommended.Proto3.TextFormatInput.StringLiteralShortUnicodeEscapeSurrogatePairString Recommended.Proto3.TextFormatInput.StringLiteralUnicodeEscapeSurrogatePairLongShortBytes Recommended.Proto3.TextFormatInput.StringLiteralUnicodeEscapeSurrogatePairLongShortString golang-google-protobuf-1.27.1/internal/descfmt/000077500000000000000000000000001411250152500214165ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/descfmt/desc_test.go000066400000000000000000000035271411250152500237310ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package descfmt import ( "testing" ) // TestDescriptorAccessors tests that descriptorAccessors is up-to-date. func TestDescriptorAccessors(t *testing.T) { ignore := map[string]bool{ "ParentFile": true, "Parent": true, "Index": true, "Syntax": true, "Name": true, "FullName": true, "IsPlaceholder": true, "Options": true, "ProtoInternal": true, "ProtoType": true, "TextName": true, // derived from other fields "HasOptionalKeyword": true, // captured by HasPresence "IsSynthetic": true, // captured by HasPresence "SourceLocations": true, // specific to FileDescriptor "ExtensionRangeOptions": true, // specific to MessageDescriptor "DefaultEnumValue": true, // specific to FieldDescriptor "MapKey": true, // specific to FieldDescriptor "MapValue": true, // specific to FieldDescriptor } for rt, m := range descriptorAccessors { got := map[string]bool{} for _, s := range m { got[s] = true } want := map[string]bool{} for i := 0; i < rt.NumMethod(); i++ { want[rt.Method(i).Name] = true } // Check if descriptorAccessors contains a non-existent accessor. // If this test fails, remove the accessor from descriptorAccessors. for s := range got { if !want[s] && !ignore[s] { t.Errorf("%v.%v does not exist", rt, s) } } // Check if there are new protoreflect interface methods that are not // handled by the formatter. If this fails, either add the method to // ignore or add them to descriptorAccessors. for s := range want { if !got[s] && !ignore[s] { t.Errorf("%v.%v is not called by formatter", rt, s) } } } } golang-google-protobuf-1.27.1/internal/descfmt/stringer.go000066400000000000000000000226511411250152500236100ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package descfmt provides functionality to format descriptors. package descfmt import ( "fmt" "io" "reflect" "strconv" "strings" "google.golang.org/protobuf/internal/detrand" "google.golang.org/protobuf/internal/pragma" pref "google.golang.org/protobuf/reflect/protoreflect" ) type list interface { Len() int pragma.DoNotImplement } func FormatList(s fmt.State, r rune, vs list) { io.WriteString(s, formatListOpt(vs, true, r == 'v' && (s.Flag('+') || s.Flag('#')))) } func formatListOpt(vs list, isRoot, allowMulti bool) string { start, end := "[", "]" if isRoot { var name string switch vs.(type) { case pref.Names: name = "Names" case pref.FieldNumbers: name = "FieldNumbers" case pref.FieldRanges: name = "FieldRanges" case pref.EnumRanges: name = "EnumRanges" case pref.FileImports: name = "FileImports" case pref.Descriptor: name = reflect.ValueOf(vs).MethodByName("Get").Type().Out(0).Name() + "s" default: name = reflect.ValueOf(vs).Elem().Type().Name() } start, end = name+"{", "}" } var ss []string switch vs := vs.(type) { case pref.Names: for i := 0; i < vs.Len(); i++ { ss = append(ss, fmt.Sprint(vs.Get(i))) } return start + joinStrings(ss, false) + end case pref.FieldNumbers: for i := 0; i < vs.Len(); i++ { ss = append(ss, fmt.Sprint(vs.Get(i))) } return start + joinStrings(ss, false) + end case pref.FieldRanges: for i := 0; i < vs.Len(); i++ { r := vs.Get(i) if r[0]+1 == r[1] { ss = append(ss, fmt.Sprintf("%d", r[0])) } else { ss = append(ss, fmt.Sprintf("%d:%d", r[0], r[1])) // enum ranges are end exclusive } } return start + joinStrings(ss, false) + end case pref.EnumRanges: for i := 0; i < vs.Len(); i++ { r := vs.Get(i) if r[0] == r[1] { ss = append(ss, fmt.Sprintf("%d", r[0])) } else { ss = append(ss, fmt.Sprintf("%d:%d", r[0], int64(r[1])+1)) // enum ranges are end inclusive } } return start + joinStrings(ss, false) + end case pref.FileImports: for i := 0; i < vs.Len(); i++ { var rs records rs.Append(reflect.ValueOf(vs.Get(i)), "Path", "Package", "IsPublic", "IsWeak") ss = append(ss, "{"+rs.Join()+"}") } return start + joinStrings(ss, allowMulti) + end default: _, isEnumValue := vs.(pref.EnumValueDescriptors) for i := 0; i < vs.Len(); i++ { m := reflect.ValueOf(vs).MethodByName("Get") v := m.Call([]reflect.Value{reflect.ValueOf(i)})[0].Interface() ss = append(ss, formatDescOpt(v.(pref.Descriptor), false, allowMulti && !isEnumValue)) } return start + joinStrings(ss, allowMulti && isEnumValue) + end } } // descriptorAccessors is a list of accessors to print for each descriptor. // // Do not print all accessors since some contain redundant information, // while others are pointers that we do not want to follow since the descriptor // is actually a cyclic graph. // // Using a list allows us to print the accessors in a sensible order. var descriptorAccessors = map[reflect.Type][]string{ reflect.TypeOf((*pref.FileDescriptor)(nil)).Elem(): {"Path", "Package", "Imports", "Messages", "Enums", "Extensions", "Services"}, reflect.TypeOf((*pref.MessageDescriptor)(nil)).Elem(): {"IsMapEntry", "Fields", "Oneofs", "ReservedNames", "ReservedRanges", "RequiredNumbers", "ExtensionRanges", "Messages", "Enums", "Extensions"}, reflect.TypeOf((*pref.FieldDescriptor)(nil)).Elem(): {"Number", "Cardinality", "Kind", "HasJSONName", "JSONName", "HasPresence", "IsExtension", "IsPacked", "IsWeak", "IsList", "IsMap", "MapKey", "MapValue", "HasDefault", "Default", "ContainingOneof", "ContainingMessage", "Message", "Enum"}, reflect.TypeOf((*pref.OneofDescriptor)(nil)).Elem(): {"Fields"}, // not directly used; must keep in sync with formatDescOpt reflect.TypeOf((*pref.EnumDescriptor)(nil)).Elem(): {"Values", "ReservedNames", "ReservedRanges"}, reflect.TypeOf((*pref.EnumValueDescriptor)(nil)).Elem(): {"Number"}, reflect.TypeOf((*pref.ServiceDescriptor)(nil)).Elem(): {"Methods"}, reflect.TypeOf((*pref.MethodDescriptor)(nil)).Elem(): {"Input", "Output", "IsStreamingClient", "IsStreamingServer"}, } func FormatDesc(s fmt.State, r rune, t pref.Descriptor) { io.WriteString(s, formatDescOpt(t, true, r == 'v' && (s.Flag('+') || s.Flag('#')))) } func formatDescOpt(t pref.Descriptor, isRoot, allowMulti bool) string { rv := reflect.ValueOf(t) rt := rv.MethodByName("ProtoType").Type().In(0) start, end := "{", "}" if isRoot { start = rt.Name() + "{" } _, isFile := t.(pref.FileDescriptor) rs := records{allowMulti: allowMulti} if t.IsPlaceholder() { if isFile { rs.Append(rv, "Path", "Package", "IsPlaceholder") } else { rs.Append(rv, "FullName", "IsPlaceholder") } } else { switch { case isFile: rs.Append(rv, "Syntax") case isRoot: rs.Append(rv, "Syntax", "FullName") default: rs.Append(rv, "Name") } switch t := t.(type) { case pref.FieldDescriptor: for _, s := range descriptorAccessors[rt] { switch s { case "MapKey": if k := t.MapKey(); k != nil { rs.recs = append(rs.recs, [2]string{"MapKey", k.Kind().String()}) } case "MapValue": if v := t.MapValue(); v != nil { switch v.Kind() { case pref.EnumKind: rs.recs = append(rs.recs, [2]string{"MapValue", string(v.Enum().FullName())}) case pref.MessageKind, pref.GroupKind: rs.recs = append(rs.recs, [2]string{"MapValue", string(v.Message().FullName())}) default: rs.recs = append(rs.recs, [2]string{"MapValue", v.Kind().String()}) } } case "ContainingOneof": if od := t.ContainingOneof(); od != nil { rs.recs = append(rs.recs, [2]string{"Oneof", string(od.Name())}) } case "ContainingMessage": if t.IsExtension() { rs.recs = append(rs.recs, [2]string{"Extendee", string(t.ContainingMessage().FullName())}) } case "Message": if !t.IsMap() { rs.Append(rv, s) } default: rs.Append(rv, s) } } case pref.OneofDescriptor: var ss []string fs := t.Fields() for i := 0; i < fs.Len(); i++ { ss = append(ss, string(fs.Get(i).Name())) } if len(ss) > 0 { rs.recs = append(rs.recs, [2]string{"Fields", "[" + joinStrings(ss, false) + "]"}) } default: rs.Append(rv, descriptorAccessors[rt]...) } if rv.MethodByName("GoType").IsValid() { rs.Append(rv, "GoType") } } return start + rs.Join() + end } type records struct { recs [][2]string allowMulti bool } func (rs *records) Append(v reflect.Value, accessors ...string) { for _, a := range accessors { var rv reflect.Value if m := v.MethodByName(a); m.IsValid() { rv = m.Call(nil)[0] } if v.Kind() == reflect.Struct && !rv.IsValid() { rv = v.FieldByName(a) } if !rv.IsValid() { panic(fmt.Sprintf("unknown accessor: %v.%s", v.Type(), a)) } if _, ok := rv.Interface().(pref.Value); ok { rv = rv.MethodByName("Interface").Call(nil)[0] if !rv.IsNil() { rv = rv.Elem() } } // Ignore zero values. var isZero bool switch rv.Kind() { case reflect.Interface, reflect.Slice: isZero = rv.IsNil() case reflect.Bool: isZero = rv.Bool() == false case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: isZero = rv.Int() == 0 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: isZero = rv.Uint() == 0 case reflect.String: isZero = rv.String() == "" } if n, ok := rv.Interface().(list); ok { isZero = n.Len() == 0 } if isZero { continue } // Format the value. var s string v := rv.Interface() switch v := v.(type) { case list: s = formatListOpt(v, false, rs.allowMulti) case pref.FieldDescriptor, pref.OneofDescriptor, pref.EnumValueDescriptor, pref.MethodDescriptor: s = string(v.(pref.Descriptor).Name()) case pref.Descriptor: s = string(v.FullName()) case string: s = strconv.Quote(v) case []byte: s = fmt.Sprintf("%q", v) default: s = fmt.Sprint(v) } rs.recs = append(rs.recs, [2]string{a, s}) } } func (rs *records) Join() string { var ss []string // In single line mode, simply join all records with commas. if !rs.allowMulti { for _, r := range rs.recs { ss = append(ss, r[0]+formatColon(0)+r[1]) } return joinStrings(ss, false) } // In allowMulti line mode, align single line records for more readable output. var maxLen int flush := func(i int) { for _, r := range rs.recs[len(ss):i] { ss = append(ss, r[0]+formatColon(maxLen-len(r[0]))+r[1]) } maxLen = 0 } for i, r := range rs.recs { if isMulti := strings.Contains(r[1], "\n"); isMulti { flush(i) ss = append(ss, r[0]+formatColon(0)+strings.Join(strings.Split(r[1], "\n"), "\n\t")) } else if maxLen < len(r[0]) { maxLen = len(r[0]) } } flush(len(rs.recs)) return joinStrings(ss, true) } func formatColon(padding int) string { // Deliberately introduce instability into the debug output to // discourage users from performing string comparisons. // This provides us flexibility to change the output in the future. if detrand.Bool() { return ":" + strings.Repeat(" ", 1+padding) // use non-breaking spaces (U+00a0) } else { return ":" + strings.Repeat(" ", 1+padding) // use regular spaces (U+0020) } } func joinStrings(ss []string, isMulti bool) string { if len(ss) == 0 { return "" } if isMulti { return "\n\t" + strings.Join(ss, "\n\t") + "\n" } return strings.Join(ss, ", ") } golang-google-protobuf-1.27.1/internal/descopts/000077500000000000000000000000001411250152500216155ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/descopts/options.go000066400000000000000000000021511411250152500236360ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package descopts contains the nil pointers to concrete descriptor options. // // This package exists as a form of reverse dependency injection so that certain // packages (e.g., internal/filedesc and internal/filetype can avoid a direct // dependency on the descriptor proto package). package descopts import pref "google.golang.org/protobuf/reflect/protoreflect" // These variables are set by the init function in descriptor.pb.go via logic // in internal/filetype. In other words, so long as the descriptor proto package // is linked in, these variables will be populated. // // Each variable is populated with a nil pointer to the options struct. var ( File pref.ProtoMessage Enum pref.ProtoMessage EnumValue pref.ProtoMessage Message pref.ProtoMessage Field pref.ProtoMessage Oneof pref.ProtoMessage ExtensionRange pref.ProtoMessage Service pref.ProtoMessage Method pref.ProtoMessage ) golang-google-protobuf-1.27.1/internal/detrand/000077500000000000000000000000001411250152500214125ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/detrand/rand.go000066400000000000000000000032231411250152500226650ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package detrand provides deterministically random functionality. // // The pseudo-randomness of these functions is seeded by the program binary // itself and guarantees that the output does not change within a program, // while ensuring that the output is unstable across different builds. package detrand import ( "encoding/binary" "hash/fnv" "os" ) // Disable disables detrand such that all functions returns the zero value. // This function is not concurrent-safe and must be called during program init. func Disable() { randSeed = 0 } // Bool returns a deterministically random boolean. func Bool() bool { return randSeed%2 == 1 } // Intn returns a deterministically random integer between 0 and n-1, inclusive. func Intn(n int) int { if n <= 0 { panic("must be positive") } return int(randSeed % uint64(n)) } // randSeed is a best-effort at an approximate hash of the Go binary. var randSeed = binaryHash() func binaryHash() uint64 { // Open the Go binary. s, err := os.Executable() if err != nil { return 0 } f, err := os.Open(s) if err != nil { return 0 } defer f.Close() // Hash the size and several samples of the Go binary. const numSamples = 8 var buf [64]byte h := fnv.New64() fi, err := f.Stat() if err != nil { return 0 } binary.LittleEndian.PutUint64(buf[:8], uint64(fi.Size())) h.Write(buf[:8]) for i := int64(0); i < numSamples; i++ { if _, err := f.ReadAt(buf[:], i*fi.Size()/numSamples); err != nil { return 0 } h.Write(buf[:]) } return h.Sum64() } golang-google-protobuf-1.27.1/internal/detrand/rand_test.go000066400000000000000000000004441411250152500237260ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package detrand import "testing" func Benchmark(b *testing.B) { b.ReportAllocs() for i := 0; i < b.N; i++ { binaryHash() } } golang-google-protobuf-1.27.1/internal/encoding/000077500000000000000000000000001411250152500215575ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/encoding/defval/000077500000000000000000000000001411250152500230205ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/encoding/defval/default.go000066400000000000000000000136531411250152500250030ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package defval marshals and unmarshals textual forms of default values. // // This package handles both the form historically used in Go struct field tags // and also the form used by google.protobuf.FieldDescriptorProto.default_value // since they differ in superficial ways. package defval import ( "fmt" "math" "strconv" ptext "google.golang.org/protobuf/internal/encoding/text" errors "google.golang.org/protobuf/internal/errors" pref "google.golang.org/protobuf/reflect/protoreflect" ) // Format is the serialization format used to represent the default value. type Format int const ( _ Format = iota // Descriptor uses the serialization format that protoc uses with the // google.protobuf.FieldDescriptorProto.default_value field. Descriptor // GoTag uses the historical serialization format in Go struct field tags. GoTag ) // Unmarshal deserializes the default string s according to the given kind k. // When k is an enum, a list of enum value descriptors must be provided. func Unmarshal(s string, k pref.Kind, evs pref.EnumValueDescriptors, f Format) (pref.Value, pref.EnumValueDescriptor, error) { switch k { case pref.BoolKind: if f == GoTag { switch s { case "1": return pref.ValueOfBool(true), nil, nil case "0": return pref.ValueOfBool(false), nil, nil } } else { switch s { case "true": return pref.ValueOfBool(true), nil, nil case "false": return pref.ValueOfBool(false), nil, nil } } case pref.EnumKind: if f == GoTag { // Go tags use the numeric form of the enum value. if n, err := strconv.ParseInt(s, 10, 32); err == nil { if ev := evs.ByNumber(pref.EnumNumber(n)); ev != nil { return pref.ValueOfEnum(ev.Number()), ev, nil } } } else { // Descriptor default_value use the enum identifier. ev := evs.ByName(pref.Name(s)) if ev != nil { return pref.ValueOfEnum(ev.Number()), ev, nil } } case pref.Int32Kind, pref.Sint32Kind, pref.Sfixed32Kind: if v, err := strconv.ParseInt(s, 10, 32); err == nil { return pref.ValueOfInt32(int32(v)), nil, nil } case pref.Int64Kind, pref.Sint64Kind, pref.Sfixed64Kind: if v, err := strconv.ParseInt(s, 10, 64); err == nil { return pref.ValueOfInt64(int64(v)), nil, nil } case pref.Uint32Kind, pref.Fixed32Kind: if v, err := strconv.ParseUint(s, 10, 32); err == nil { return pref.ValueOfUint32(uint32(v)), nil, nil } case pref.Uint64Kind, pref.Fixed64Kind: if v, err := strconv.ParseUint(s, 10, 64); err == nil { return pref.ValueOfUint64(uint64(v)), nil, nil } case pref.FloatKind, pref.DoubleKind: var v float64 var err error switch s { case "-inf": v = math.Inf(-1) case "inf": v = math.Inf(+1) case "nan": v = math.NaN() default: v, err = strconv.ParseFloat(s, 64) } if err == nil { if k == pref.FloatKind { return pref.ValueOfFloat32(float32(v)), nil, nil } else { return pref.ValueOfFloat64(float64(v)), nil, nil } } case pref.StringKind: // String values are already unescaped and can be used as is. return pref.ValueOfString(s), nil, nil case pref.BytesKind: if b, ok := unmarshalBytes(s); ok { return pref.ValueOfBytes(b), nil, nil } } return pref.Value{}, nil, errors.New("could not parse value for %v: %q", k, s) } // Marshal serializes v as the default string according to the given kind k. // When specifying the Descriptor format for an enum kind, the associated // enum value descriptor must be provided. func Marshal(v pref.Value, ev pref.EnumValueDescriptor, k pref.Kind, f Format) (string, error) { switch k { case pref.BoolKind: if f == GoTag { if v.Bool() { return "1", nil } else { return "0", nil } } else { if v.Bool() { return "true", nil } else { return "false", nil } } case pref.EnumKind: if f == GoTag { return strconv.FormatInt(int64(v.Enum()), 10), nil } else { return string(ev.Name()), nil } case pref.Int32Kind, pref.Sint32Kind, pref.Sfixed32Kind, pref.Int64Kind, pref.Sint64Kind, pref.Sfixed64Kind: return strconv.FormatInt(v.Int(), 10), nil case pref.Uint32Kind, pref.Fixed32Kind, pref.Uint64Kind, pref.Fixed64Kind: return strconv.FormatUint(v.Uint(), 10), nil case pref.FloatKind, pref.DoubleKind: f := v.Float() switch { case math.IsInf(f, -1): return "-inf", nil case math.IsInf(f, +1): return "inf", nil case math.IsNaN(f): return "nan", nil default: if k == pref.FloatKind { return strconv.FormatFloat(f, 'g', -1, 32), nil } else { return strconv.FormatFloat(f, 'g', -1, 64), nil } } case pref.StringKind: // String values are serialized as is without any escaping. return v.String(), nil case pref.BytesKind: if s, ok := marshalBytes(v.Bytes()); ok { return s, nil } } return "", errors.New("could not format value for %v: %v", k, v) } // unmarshalBytes deserializes bytes by applying C unescaping. func unmarshalBytes(s string) ([]byte, bool) { // Bytes values use the same escaping as the text format, // however they lack the surrounding double quotes. v, err := ptext.UnmarshalString(`"` + s + `"`) if err != nil { return nil, false } return []byte(v), true } // marshalBytes serializes bytes by using C escaping. // To match the exact output of protoc, this is identical to the // CEscape function in strutil.cc of the protoc source code. func marshalBytes(b []byte) (string, bool) { var s []byte for _, c := range b { switch c { case '\n': s = append(s, `\n`...) case '\r': s = append(s, `\r`...) case '\t': s = append(s, `\t`...) case '"': s = append(s, `\"`...) case '\'': s = append(s, `\'`...) case '\\': s = append(s, `\\`...) default: if printableASCII := c >= 0x20 && c <= 0x7e; printableASCII { s = append(s, c) } else { s = append(s, fmt.Sprintf(`\%03o`, c)...) } } } return string(s), true } golang-google-protobuf-1.27.1/internal/encoding/defval/default_test.go000066400000000000000000000054571411250152500260450ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package defval_test import ( "math" "reflect" "testing" "google.golang.org/protobuf/internal/encoding/defval" fdesc "google.golang.org/protobuf/internal/filedesc" pref "google.golang.org/protobuf/reflect/protoreflect" ) func Test(t *testing.T) { evs := fdesc.EnumValues{List: []fdesc.EnumValue{{}}} evs.List[0].L0.ParentFile = fdesc.SurrogateProto2 evs.List[0].L0.FullName = "ALPHA" evs.List[0].L1.Number = 1 V := pref.ValueOf tests := []struct { val pref.Value enum pref.EnumValueDescriptor enums pref.EnumValueDescriptors kind pref.Kind strPB string strGo string }{{ val: V(bool(true)), enum: nil, enums: nil, kind: pref.BoolKind, strPB: "true", strGo: "1", }, { val: V(int32(-0x1234)), enum: nil, enums: nil, kind: pref.Int32Kind, strPB: "-4660", strGo: "-4660", }, { val: V(float32(math.Pi)), enum: nil, enums: nil, kind: pref.FloatKind, strPB: "3.1415927", strGo: "3.1415927", }, { val: V(float64(math.Pi)), enum: nil, enums: nil, kind: pref.DoubleKind, strPB: "3.141592653589793", strGo: "3.141592653589793", }, { val: V(string("hello, \xde\xad\xbe\xef\n")), enum: nil, enums: nil, kind: pref.StringKind, strPB: "hello, \xde\xad\xbe\xef\n", strGo: "hello, \xde\xad\xbe\xef\n", }, { val: V([]byte("hello, \xde\xad\xbe\xef\n")), enum: nil, enums: nil, kind: pref.BytesKind, strPB: "hello, \\336\\255\\276\\357\\n", strGo: "hello, \\336\\255\\276\\357\\n", }, { val: V(pref.EnumNumber(1)), enum: &evs.List[0], enums: &evs, kind: pref.EnumKind, strPB: "ALPHA", strGo: "1", }} for _, tt := range tests { t.Run("", func(t *testing.T) { gotStr, _ := defval.Marshal(tt.val, tt.enum, tt.kind, defval.Descriptor) if gotStr != tt.strPB { t.Errorf("Marshal(%v, %v, Descriptor) = %q, want %q", tt.val, tt.kind, gotStr, tt.strPB) } gotStr, _ = defval.Marshal(tt.val, tt.enum, tt.kind, defval.GoTag) if gotStr != tt.strGo { t.Errorf("Marshal(%v, %v, GoTag) = %q, want %q", tt.val, tt.kind, gotStr, tt.strGo) } gotVal, gotEnum, _ := defval.Unmarshal(tt.strPB, tt.kind, tt.enums, defval.Descriptor) if !reflect.DeepEqual(gotVal.Interface(), tt.val.Interface()) || gotEnum != tt.enum { t.Errorf("Unmarshal(%v, %v, Descriptor) = (%q, %v), want (%q, %v)", tt.strPB, tt.kind, gotVal, gotEnum, tt.val, tt.enum) } gotVal, gotEnum, _ = defval.Unmarshal(tt.strGo, tt.kind, tt.enums, defval.GoTag) if !reflect.DeepEqual(gotVal.Interface(), tt.val.Interface()) || gotEnum != tt.enum { t.Errorf("Unmarshal(%v, %v, GoTag) = (%q, %v), want (%q, %v)", tt.strGo, tt.kind, gotVal, gotEnum, tt.val, tt.enum) } }) } } golang-google-protobuf-1.27.1/internal/encoding/json/000077500000000000000000000000001411250152500225305ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/encoding/json/bench_test.go000066400000000000000000000024061411250152500251770ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package json_test import ( "testing" "google.golang.org/protobuf/internal/encoding/json" ) func BenchmarkFloat(b *testing.B) { input := []byte(`1.797693134862315708145274237317043567981e+308`) for i := 0; i < b.N; i++ { dec := json.NewDecoder(input) val, err := dec.Read() if err != nil { b.Fatal(err) } if _, ok := val.Float(64); !ok { b.Fatal("not a flaot") } } } func BenchmarkInt(b *testing.B) { input := []byte(`922337203.6854775807e+10`) for i := 0; i < b.N; i++ { dec := json.NewDecoder(input) val, err := dec.Read() if err != nil { b.Fatal(err) } if _, ok := val.Int(64); !ok { b.Fatal("not an int64") } } } func BenchmarkString(b *testing.B) { input := []byte(`"abcdefghijklmnopqrstuvwxyz0123456789\\n\\t"`) for i := 0; i < b.N; i++ { dec := json.NewDecoder(input) val, err := dec.Read() if err != nil { b.Fatal(err) } _ = val.ParsedString() } } func BenchmarkBool(b *testing.B) { input := []byte(`true`) for i := 0; i < b.N; i++ { dec := json.NewDecoder(input) val, err := dec.Read() if err != nil { b.Fatal(err) } _ = val.Bool() } } golang-google-protobuf-1.27.1/internal/encoding/json/decode.go000066400000000000000000000211641411250152500243060ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package json import ( "bytes" "fmt" "io" "regexp" "unicode/utf8" "google.golang.org/protobuf/internal/errors" ) // call specifies which Decoder method was invoked. type call uint8 const ( readCall call = iota peekCall ) const unexpectedFmt = "unexpected token %s" // ErrUnexpectedEOF means that EOF was encountered in the middle of the input. var ErrUnexpectedEOF = errors.New("%v", io.ErrUnexpectedEOF) // Decoder is a token-based JSON decoder. type Decoder struct { // lastCall is last method called, either readCall or peekCall. // Initial value is readCall. lastCall call // lastToken contains the last read token. lastToken Token // lastErr contains the last read error. lastErr error // openStack is a stack containing ObjectOpen and ArrayOpen values. The // top of stack represents the object or the array the current value is // directly located in. openStack []Kind // orig is used in reporting line and column. orig []byte // in contains the unconsumed input. in []byte } // NewDecoder returns a Decoder to read the given []byte. func NewDecoder(b []byte) *Decoder { return &Decoder{orig: b, in: b} } // Peek looks ahead and returns the next token kind without advancing a read. func (d *Decoder) Peek() (Token, error) { defer func() { d.lastCall = peekCall }() if d.lastCall == readCall { d.lastToken, d.lastErr = d.Read() } return d.lastToken, d.lastErr } // Read returns the next JSON token. // It will return an error if there is no valid token. func (d *Decoder) Read() (Token, error) { const scalar = Null | Bool | Number | String defer func() { d.lastCall = readCall }() if d.lastCall == peekCall { return d.lastToken, d.lastErr } tok, err := d.parseNext() if err != nil { return Token{}, err } switch tok.kind { case EOF: if len(d.openStack) != 0 || d.lastToken.kind&scalar|ObjectClose|ArrayClose == 0 { return Token{}, ErrUnexpectedEOF } case Null: if !d.isValueNext() { return Token{}, d.newSyntaxError(tok.pos, unexpectedFmt, tok.RawString()) } case Bool, Number: if !d.isValueNext() { return Token{}, d.newSyntaxError(tok.pos, unexpectedFmt, tok.RawString()) } case String: if d.isValueNext() { break } // This string token should only be for a field name. if d.lastToken.kind&(ObjectOpen|comma) == 0 { return Token{}, d.newSyntaxError(tok.pos, unexpectedFmt, tok.RawString()) } if len(d.in) == 0 { return Token{}, ErrUnexpectedEOF } if c := d.in[0]; c != ':' { return Token{}, d.newSyntaxError(d.currPos(), `unexpected character %s, missing ":" after field name`, string(c)) } tok.kind = Name d.consume(1) case ObjectOpen, ArrayOpen: if !d.isValueNext() { return Token{}, d.newSyntaxError(tok.pos, unexpectedFmt, tok.RawString()) } d.openStack = append(d.openStack, tok.kind) case ObjectClose: if len(d.openStack) == 0 || d.lastToken.kind == comma || d.openStack[len(d.openStack)-1] != ObjectOpen { return Token{}, d.newSyntaxError(tok.pos, unexpectedFmt, tok.RawString()) } d.openStack = d.openStack[:len(d.openStack)-1] case ArrayClose: if len(d.openStack) == 0 || d.lastToken.kind == comma || d.openStack[len(d.openStack)-1] != ArrayOpen { return Token{}, d.newSyntaxError(tok.pos, unexpectedFmt, tok.RawString()) } d.openStack = d.openStack[:len(d.openStack)-1] case comma: if len(d.openStack) == 0 || d.lastToken.kind&(scalar|ObjectClose|ArrayClose) == 0 { return Token{}, d.newSyntaxError(tok.pos, unexpectedFmt, tok.RawString()) } } // Update d.lastToken only after validating token to be in the right sequence. d.lastToken = tok if d.lastToken.kind == comma { return d.Read() } return tok, nil } // Any sequence that looks like a non-delimiter (for error reporting). var errRegexp = regexp.MustCompile(`^([-+._a-zA-Z0-9]{1,32}|.)`) // parseNext parses for the next JSON token. It returns a Token object for // different types, except for Name. It does not handle whether the next token // is in a valid sequence or not. func (d *Decoder) parseNext() (Token, error) { // Trim leading spaces. d.consume(0) in := d.in if len(in) == 0 { return d.consumeToken(EOF, 0), nil } switch in[0] { case 'n': if n := matchWithDelim("null", in); n != 0 { return d.consumeToken(Null, n), nil } case 't': if n := matchWithDelim("true", in); n != 0 { return d.consumeBoolToken(true, n), nil } case 'f': if n := matchWithDelim("false", in); n != 0 { return d.consumeBoolToken(false, n), nil } case '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': if n, ok := parseNumber(in); ok { return d.consumeToken(Number, n), nil } case '"': s, n, err := d.parseString(in) if err != nil { return Token{}, err } return d.consumeStringToken(s, n), nil case '{': return d.consumeToken(ObjectOpen, 1), nil case '}': return d.consumeToken(ObjectClose, 1), nil case '[': return d.consumeToken(ArrayOpen, 1), nil case ']': return d.consumeToken(ArrayClose, 1), nil case ',': return d.consumeToken(comma, 1), nil } return Token{}, d.newSyntaxError(d.currPos(), "invalid value %s", errRegexp.Find(in)) } // newSyntaxError returns an error with line and column information useful for // syntax errors. func (d *Decoder) newSyntaxError(pos int, f string, x ...interface{}) error { e := errors.New(f, x...) line, column := d.Position(pos) return errors.New("syntax error (line %d:%d): %v", line, column, e) } // Position returns line and column number of given index of the original input. // It will panic if index is out of range. func (d *Decoder) Position(idx int) (line int, column int) { b := d.orig[:idx] line = bytes.Count(b, []byte("\n")) + 1 if i := bytes.LastIndexByte(b, '\n'); i >= 0 { b = b[i+1:] } column = utf8.RuneCount(b) + 1 // ignore multi-rune characters return line, column } // currPos returns the current index position of d.in from d.orig. func (d *Decoder) currPos() int { return len(d.orig) - len(d.in) } // matchWithDelim matches s with the input b and verifies that the match // terminates with a delimiter of some form (e.g., r"[^-+_.a-zA-Z0-9]"). // As a special case, EOF is considered a delimiter. It returns the length of s // if there is a match, else 0. func matchWithDelim(s string, b []byte) int { if !bytes.HasPrefix(b, []byte(s)) { return 0 } n := len(s) if n < len(b) && isNotDelim(b[n]) { return 0 } return n } // isNotDelim returns true if given byte is a not delimiter character. func isNotDelim(c byte) bool { return (c == '-' || c == '+' || c == '.' || c == '_' || ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || ('0' <= c && c <= '9')) } // consume consumes n bytes of input and any subsequent whitespace. func (d *Decoder) consume(n int) { d.in = d.in[n:] for len(d.in) > 0 { switch d.in[0] { case ' ', '\n', '\r', '\t': d.in = d.in[1:] default: return } } } // isValueNext returns true if next type should be a JSON value: Null, // Number, String or Bool. func (d *Decoder) isValueNext() bool { if len(d.openStack) == 0 { return d.lastToken.kind == 0 } start := d.openStack[len(d.openStack)-1] switch start { case ObjectOpen: return d.lastToken.kind&Name != 0 case ArrayOpen: return d.lastToken.kind&(ArrayOpen|comma) != 0 } panic(fmt.Sprintf( "unreachable logic in Decoder.isValueNext, lastToken.kind: %v, openStack: %v", d.lastToken.kind, start)) } // consumeToken constructs a Token for given Kind with raw value derived from // current d.in and given size, and consumes the given size-lenght of it. func (d *Decoder) consumeToken(kind Kind, size int) Token { tok := Token{ kind: kind, raw: d.in[:size], pos: len(d.orig) - len(d.in), } d.consume(size) return tok } // consumeBoolToken constructs a Token for a Bool kind with raw value derived from // current d.in and given size. func (d *Decoder) consumeBoolToken(b bool, size int) Token { tok := Token{ kind: Bool, raw: d.in[:size], pos: len(d.orig) - len(d.in), boo: b, } d.consume(size) return tok } // consumeStringToken constructs a Token for a String kind with raw value derived // from current d.in and given size. func (d *Decoder) consumeStringToken(s string, size int) Token { tok := Token{ kind: String, raw: d.in[:size], pos: len(d.orig) - len(d.in), str: s, } d.consume(size) return tok } // Clone returns a copy of the Decoder for use in reading ahead the next JSON // object, array or other values without affecting current Decoder. func (d *Decoder) Clone() *Decoder { ret := *d ret.openStack = append([]Kind(nil), ret.openStack...) return &ret } golang-google-protobuf-1.27.1/internal/encoding/json/decode_number.go000066400000000000000000000122521411250152500256540ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package json import ( "bytes" "strconv" ) // parseNumber reads the given []byte for a valid JSON number. If it is valid, // it returns the number of bytes. Parsing logic follows the definition in // https://tools.ietf.org/html/rfc7159#section-6, and is based off // encoding/json.isValidNumber function. func parseNumber(input []byte) (int, bool) { var n int s := input if len(s) == 0 { return 0, false } // Optional - if s[0] == '-' { s = s[1:] n++ if len(s) == 0 { return 0, false } } // Digits switch { case s[0] == '0': s = s[1:] n++ case '1' <= s[0] && s[0] <= '9': s = s[1:] n++ for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { s = s[1:] n++ } default: return 0, false } // . followed by 1 or more digits. if len(s) >= 2 && s[0] == '.' && '0' <= s[1] && s[1] <= '9' { s = s[2:] n += 2 for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { s = s[1:] n++ } } // e or E followed by an optional - or + and // 1 or more digits. if len(s) >= 2 && (s[0] == 'e' || s[0] == 'E') { s = s[1:] n++ if s[0] == '+' || s[0] == '-' { s = s[1:] n++ if len(s) == 0 { return 0, false } } for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { s = s[1:] n++ } } // Check that next byte is a delimiter or it is at the end. if n < len(input) && isNotDelim(input[n]) { return 0, false } return n, true } // numberParts is the result of parsing out a valid JSON number. It contains // the parts of a number. The parts are used for integer conversion. type numberParts struct { neg bool intp []byte frac []byte exp []byte } // parseNumber constructs numberParts from given []byte. The logic here is // similar to consumeNumber above with the difference of having to construct // numberParts. The slice fields in numberParts are subslices of the input. func parseNumberParts(input []byte) (numberParts, bool) { var neg bool var intp []byte var frac []byte var exp []byte s := input if len(s) == 0 { return numberParts{}, false } // Optional - if s[0] == '-' { neg = true s = s[1:] if len(s) == 0 { return numberParts{}, false } } // Digits switch { case s[0] == '0': // Skip first 0 and no need to store. s = s[1:] case '1' <= s[0] && s[0] <= '9': intp = s n := 1 s = s[1:] for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { s = s[1:] n++ } intp = intp[:n] default: return numberParts{}, false } // . followed by 1 or more digits. if len(s) >= 2 && s[0] == '.' && '0' <= s[1] && s[1] <= '9' { frac = s[1:] n := 1 s = s[2:] for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { s = s[1:] n++ } frac = frac[:n] } // e or E followed by an optional - or + and // 1 or more digits. if len(s) >= 2 && (s[0] == 'e' || s[0] == 'E') { s = s[1:] exp = s n := 0 if s[0] == '+' || s[0] == '-' { s = s[1:] n++ if len(s) == 0 { return numberParts{}, false } } for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { s = s[1:] n++ } exp = exp[:n] } return numberParts{ neg: neg, intp: intp, frac: bytes.TrimRight(frac, "0"), // Remove unnecessary 0s to the right. exp: exp, }, true } // normalizeToIntString returns an integer string in normal form without the // E-notation for given numberParts. It will return false if it is not an // integer or if the exponent exceeds than max/min int value. func normalizeToIntString(n numberParts) (string, bool) { intpSize := len(n.intp) fracSize := len(n.frac) if intpSize == 0 && fracSize == 0 { return "0", true } var exp int if len(n.exp) > 0 { i, err := strconv.ParseInt(string(n.exp), 10, 32) if err != nil { return "", false } exp = int(i) } var num []byte if exp >= 0 { // For positive E, shift fraction digits into integer part and also pad // with zeroes as needed. // If there are more digits in fraction than the E value, then the // number is not an integer. if fracSize > exp { return "", false } // Make sure resulting digits are within max value limit to avoid // unnecessarily constructing a large byte slice that may simply fail // later on. const maxDigits = 20 // Max uint64 value has 20 decimal digits. if intpSize+exp > maxDigits { return "", false } // Set cap to make a copy of integer part when appended. num = n.intp[:len(n.intp):len(n.intp)] num = append(num, n.frac...) for i := 0; i < exp-fracSize; i++ { num = append(num, '0') } } else { // For negative E, shift digits in integer part out. // If there are fractions, then the number is not an integer. if fracSize > 0 { return "", false } // index is where the decimal point will be after adjusting for negative // exponent. index := intpSize + exp if index < 0 { return "", false } num = n.intp // If any of the digits being shifted to the right of the decimal point // is non-zero, then the number is not an integer. for i := index; i < intpSize; i++ { if num[i] != '0' { return "", false } } num = num[:index] } if n.neg { return "-" + string(num), true } return string(num), true } golang-google-protobuf-1.27.1/internal/encoding/json/decode_string.go000066400000000000000000000051411411250152500256710ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package json import ( "strconv" "unicode" "unicode/utf16" "unicode/utf8" "google.golang.org/protobuf/internal/strs" ) func (d *Decoder) parseString(in []byte) (string, int, error) { in0 := in if len(in) == 0 { return "", 0, ErrUnexpectedEOF } if in[0] != '"' { return "", 0, d.newSyntaxError(d.currPos(), "invalid character %q at start of string", in[0]) } in = in[1:] i := indexNeedEscapeInBytes(in) in, out := in[i:], in[:i:i] // set cap to prevent mutations for len(in) > 0 { switch r, n := utf8.DecodeRune(in); { case r == utf8.RuneError && n == 1: return "", 0, d.newSyntaxError(d.currPos(), "invalid UTF-8 in string") case r < ' ': return "", 0, d.newSyntaxError(d.currPos(), "invalid character %q in string", r) case r == '"': in = in[1:] n := len(in0) - len(in) return string(out), n, nil case r == '\\': if len(in) < 2 { return "", 0, ErrUnexpectedEOF } switch r := in[1]; r { case '"', '\\', '/': in, out = in[2:], append(out, r) case 'b': in, out = in[2:], append(out, '\b') case 'f': in, out = in[2:], append(out, '\f') case 'n': in, out = in[2:], append(out, '\n') case 'r': in, out = in[2:], append(out, '\r') case 't': in, out = in[2:], append(out, '\t') case 'u': if len(in) < 6 { return "", 0, ErrUnexpectedEOF } v, err := strconv.ParseUint(string(in[2:6]), 16, 16) if err != nil { return "", 0, d.newSyntaxError(d.currPos(), "invalid escape code %q in string", in[:6]) } in = in[6:] r := rune(v) if utf16.IsSurrogate(r) { if len(in) < 6 { return "", 0, ErrUnexpectedEOF } v, err := strconv.ParseUint(string(in[2:6]), 16, 16) r = utf16.DecodeRune(r, rune(v)) if in[0] != '\\' || in[1] != 'u' || r == unicode.ReplacementChar || err != nil { return "", 0, d.newSyntaxError(d.currPos(), "invalid escape code %q in string", in[:6]) } in = in[6:] } out = append(out, string(r)...) default: return "", 0, d.newSyntaxError(d.currPos(), "invalid escape code %q in string", in[:2]) } default: i := indexNeedEscapeInBytes(in[n:]) in, out = in[n+i:], append(out, in[:n+i]...) } } return "", 0, ErrUnexpectedEOF } // indexNeedEscapeInBytes returns the index of the character that needs // escaping. If no characters need escaping, this returns the input length. func indexNeedEscapeInBytes(b []byte) int { return indexNeedEscapeInString(strs.UnsafeString(b)) } golang-google-protobuf-1.27.1/internal/encoding/json/decode_test.go000066400000000000000000000615601411250152500253510ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package json_test import ( "fmt" "math" "strings" "testing" "unicode/utf8" "github.com/google/go-cmp/cmp" "google.golang.org/protobuf/internal/encoding/json" ) type R struct { // E is expected error substring from calling Decoder.Read if set. E string // V is one of the checker implementations that validates the token value. V checker // P is expected Token.Pos() if set > 0. P int // RS is expected result from Token.RawString() if not empty. RS string } // checker defines API for Token validation. type checker interface { // check checks and expects for token API call to return and compare // against implementation-stored value. Returns empty string if success, // else returns error message describing the error. check(json.Token) string } // checkers that checks the token kind only. var ( EOF = kindOnly{json.EOF} Null = kindOnly{json.Null} ObjectOpen = kindOnly{json.ObjectOpen} ObjectClose = kindOnly{json.ObjectClose} ArrayOpen = kindOnly{json.ArrayOpen} ArrayClose = kindOnly{json.ArrayClose} ) type kindOnly struct { want json.Kind } func (x kindOnly) check(tok json.Token) string { if got := tok.Kind(); got != x.want { return fmt.Sprintf("Token.Kind(): got %v, want %v", got, x.want) } return "" } type Name struct { val string } func (x Name) check(tok json.Token) string { if got := tok.Kind(); got != json.Name { return fmt.Sprintf("Token.Kind(): got %v, want %v", got, json.Name) } if got := tok.Name(); got != x.val { return fmt.Sprintf("Token.Name(): got %v, want %v", got, x.val) } return "" } type Bool struct { val bool } func (x Bool) check(tok json.Token) string { if got := tok.Kind(); got != json.Bool { return fmt.Sprintf("Token.Kind(): got %v, want %v", got, json.Bool) } if got := tok.Bool(); got != x.val { return fmt.Sprintf("Token.Bool(): got %v, want %v", got, x.val) } return "" } type Str struct { val string } func (x Str) check(tok json.Token) string { if got := tok.Kind(); got != json.String { return fmt.Sprintf("Token.Kind(): got %v, want %v", got, json.String) } if got := tok.ParsedString(); got != x.val { return fmt.Sprintf("Token.ParsedString(): got %v, want %v", got, x.val) } return "" } type F64 struct { val float64 } func (x F64) check(tok json.Token) string { if got := tok.Kind(); got != json.Number { return fmt.Sprintf("Token.Kind(): got %v, want %v", got, json.Number) } got, ok := tok.Float(64) if !ok { return fmt.Sprintf("Token.Float(64): returned not ok") } if got != x.val { return fmt.Sprintf("Token.Float(64): got %v, want %v", got, x.val) } return "" } type F32 struct { val float32 } func (x F32) check(tok json.Token) string { if got := tok.Kind(); got != json.Number { return fmt.Sprintf("Token.Kind(): got %v, want %v", got, json.Number) } got, ok := tok.Float(32) if !ok { return fmt.Sprintf("Token.Float(32): returned not ok") } if float32(got) != x.val { return fmt.Sprintf("Token.Float(32): got %v, want %v", got, x.val) } return "" } // NotF64 is a checker to validate a Number token where Token.Float(64) returns not ok. var NotF64 = xf64{} type xf64 struct{} func (x xf64) check(tok json.Token) string { if got := tok.Kind(); got != json.Number { return fmt.Sprintf("Token.Kind(): got %v, want %v", got, json.Number) } _, ok := tok.Float(64) if ok { return fmt.Sprintf("Token.Float(64): returned ok") } return "" } // NotF32 is a checker to validate a Number token where Token.Float(32) returns not ok. var NotF32 = xf32{} type xf32 struct{} func (x xf32) check(tok json.Token) string { if got := tok.Kind(); got != json.Number { return fmt.Sprintf("Token.Kind(): got %v, want %v", got, json.Number) } _, ok := tok.Float(32) if ok { return fmt.Sprintf("Token.Float(32): returned ok") } return "" } type I64 struct { val int64 } func (x I64) check(tok json.Token) string { if got := tok.Kind(); got != json.Number { return fmt.Sprintf("Token.Kind(): got %v, want %v", got, json.Number) } got, ok := tok.Int(64) if !ok { return fmt.Sprintf("Token.Int(64): returned not ok") } if got != x.val { return fmt.Sprintf("Token.Int(64): got %v, want %v", got, x.val) } return "" } type I32 struct { val int32 } func (x I32) check(tok json.Token) string { if got := tok.Kind(); got != json.Number { return fmt.Sprintf("Token.Kind(): got %v, want %v", got, json.Number) } got, ok := tok.Int(32) if !ok { return fmt.Sprintf("Token.Int(32): returned not ok") } if int32(got) != x.val { return fmt.Sprintf("Token.Int(32): got %v, want %v", got, x.val) } return "" } // NotI64 is a checker to validate a Number token where Token.Int(64) returns not ok. var NotI64 = xi64{} type xi64 struct{} func (x xi64) check(tok json.Token) string { if got := tok.Kind(); got != json.Number { return fmt.Sprintf("Token.Kind(): got %v, want %v", got, json.Number) } _, ok := tok.Int(64) if ok { return fmt.Sprintf("Token.Int(64): returned ok") } return "" } // NotI32 is a checker to validate a Number token where Token.Int(32) returns not ok. var NotI32 = xi32{} type xi32 struct{} func (x xi32) check(tok json.Token) string { if got := tok.Kind(); got != json.Number { return fmt.Sprintf("Token.Kind(): got %v, want %v", got, json.Number) } _, ok := tok.Int(32) if ok { return fmt.Sprintf("Token.Int(32): returned ok") } return "" } type Ui64 struct { val uint64 } func (x Ui64) check(tok json.Token) string { if got := tok.Kind(); got != json.Number { return fmt.Sprintf("Token.Kind(): got %v, want %v", got, json.Number) } got, ok := tok.Uint(64) if !ok { return fmt.Sprintf("Token.Uint(64): returned not ok") } if got != x.val { return fmt.Sprintf("Token.Uint(64): got %v, want %v", got, x.val) } return "" } type Ui32 struct { val uint32 } func (x Ui32) check(tok json.Token) string { if got := tok.Kind(); got != json.Number { return fmt.Sprintf("Token.Kind(): got %v, want %v", got, json.Number) } got, ok := tok.Uint(32) if !ok { return fmt.Sprintf("Token.Uint(32): returned not ok") } if uint32(got) != x.val { return fmt.Sprintf("Token.Uint(32): got %v, want %v", got, x.val) } return "" } // NotUi64 is a checker to validate a Number token where Token.Uint(64) returns not ok. var NotUi64 = xui64{} type xui64 struct{} func (x xui64) check(tok json.Token) string { if got := tok.Kind(); got != json.Number { return fmt.Sprintf("Token.Kind(): got %v, want %v", got, json.Number) } _, ok := tok.Uint(64) if ok { return fmt.Sprintf("Token.Uint(64): returned ok") } return "" } // NotI32 is a checker to validate a Number token where Token.Uint(32) returns not ok. var NotUi32 = xui32{} type xui32 struct{} func (x xui32) check(tok json.Token) string { if got := tok.Kind(); got != json.Number { return fmt.Sprintf("Token.Kind(): got %v, want %v", got, json.Number) } _, ok := tok.Uint(32) if ok { return fmt.Sprintf("Token.Uint(32): returned ok") } return "" } var errEOF = json.ErrUnexpectedEOF.Error() func TestDecoder(t *testing.T) { const space = " \n\r\t" tests := []struct { in string // want is a list of expected values returned from calling // Decoder.Read. An item makes the test code invoke // Decoder.Read and compare against R.E for error returned or use R.V to // validate the returned Token object. want []R }{ { in: ``, want: []R{{V: EOF}}, }, { in: space, want: []R{{V: EOF}}, }, { // Calling Read after EOF will keep returning EOF for // succeeding Read calls. in: space, want: []R{ {V: EOF}, {V: EOF}, {V: EOF}, }, }, // JSON literals. { in: space + `null` + space, want: []R{ {V: Null, P: len(space), RS: `null`}, {V: EOF}, }, }, { in: space + `true` + space, want: []R{ {V: Bool{true}}, {V: EOF}, }, }, { in: space + `false` + space, want: []R{ {V: Bool{false}}, {V: EOF}, }, }, { // Error returned will produce the same error again. in: space + `foo` + space, want: []R{ {E: `invalid value foo`}, {E: `invalid value foo`}, }, }, // JSON strings. { in: space + `""` + space, want: []R{ {V: Str{}}, {V: EOF}, }, }, { in: space + `"hello"` + space, want: []R{ {V: Str{"hello"}, RS: `"hello"`}, {V: EOF}, }, }, { in: `"hello`, want: []R{{E: errEOF}}, }, { in: "\"\x00\"", want: []R{{E: `invalid character '\x00' in string`}}, }, { in: "\"\u0031\u0032\"", want: []R{ {V: Str{"12"}, RS: "\"\u0031\u0032\""}, {V: EOF}, }, }, { // Invalid UTF-8 error is returned in ReadString instead of Read. in: "\"\xff\"", want: []R{{E: `syntax error (line 1:1): invalid UTF-8 in string`}}, }, { in: `"` + string(utf8.RuneError) + `"`, want: []R{ {V: Str{string(utf8.RuneError)}}, {V: EOF}, }, }, { in: `"\uFFFD"`, want: []R{ {V: Str{string(utf8.RuneError)}}, {V: EOF}, }, }, { in: `"\x"`, want: []R{{E: `invalid escape code "\\x" in string`}}, }, { in: `"\uXXXX"`, want: []R{{E: `invalid escape code "\\uXXXX" in string`}}, }, { in: `"\uDEAD"`, // unmatched surrogate pair want: []R{{E: errEOF}}, }, { in: `"\uDEAD\uBEEF"`, // invalid surrogate half want: []R{{E: `invalid escape code "\\uBEEF" in string`}}, }, { in: `"\uD800\udead"`, // valid surrogate pair want: []R{ {V: Str{`𐊭`}}, {V: EOF}, }, }, { in: `"\u0000\"\\\/\b\f\n\r\t"`, want: []R{ {V: Str{"\u0000\"\\/\b\f\n\r\t"}}, {V: EOF}, }, }, // Invalid JSON numbers. { in: `-`, want: []R{{E: `invalid value -`}}, }, { in: `+0`, want: []R{{E: `invalid value +0`}}, }, { in: `-+`, want: []R{{E: `invalid value -+`}}, }, { in: `0.`, want: []R{{E: `invalid value 0.`}}, }, { in: `.1`, want: []R{{E: `invalid value .1`}}, }, { in: `1.0.1`, want: []R{{E: `invalid value 1.0.1`}}, }, { in: `1..1`, want: []R{{E: `invalid value 1..1`}}, }, { in: `-1-2`, want: []R{{E: `invalid value -1-2`}}, }, { in: `01`, want: []R{{E: `invalid value 01`}}, }, { in: `1e`, want: []R{{E: `invalid value 1e`}}, }, { in: `1e1.2`, want: []R{{E: `invalid value 1e1.2`}}, }, { in: `1Ee`, want: []R{{E: `invalid value 1Ee`}}, }, { in: `1.e1`, want: []R{{E: `invalid value 1.e1`}}, }, { in: `1.e+`, want: []R{{E: `invalid value 1.e+`}}, }, { in: `1e+-2`, want: []R{{E: `invalid value 1e+-2`}}, }, { in: `1e--2`, want: []R{{E: `invalid value 1e--2`}}, }, { in: `1.0true`, want: []R{{E: `invalid value 1.0true`}}, }, // JSON numbers as floating point. { in: space + `0.0` + space, want: []R{ {V: F32{0}, P: len(space), RS: `0.0`}, {V: EOF}, }, }, { in: space + `0` + space, want: []R{ {V: F32{0}}, {V: EOF}, }, }, { in: space + `-0` + space, want: []R{ {V: F32{float32(math.Copysign(0, -1))}}, {V: EOF}, }, }, { in: `-0`, want: []R{ {V: F64{math.Copysign(0, -1)}}, {V: EOF}, }, }, { in: `-0.0`, want: []R{ {V: F32{float32(math.Copysign(0, -1))}}, {V: EOF}, }, }, { in: `-0.0`, want: []R{ {V: F64{math.Copysign(0, -1)}}, {V: EOF}, }, }, { in: `-1.02`, want: []R{ {V: F32{-1.02}}, {V: EOF}, }, }, { in: `1.020000`, want: []R{ {V: F32{1.02}}, {V: EOF}, }, }, { in: `-1.0e0`, want: []R{ {V: F32{-1}}, {V: EOF}, }, }, { in: `1.0e-000`, want: []R{ {V: F32{1}}, {V: EOF}, }, }, { in: `1e+00`, want: []R{ {V: F32{1}}, {V: EOF}, }, }, { in: `1.02e3`, want: []R{ {V: F32{1.02e3}}, {V: EOF}, }, }, { in: `-1.02E03`, want: []R{ {V: F32{-1.02e3}}, {V: EOF}, }, }, { in: `1.0200e+3`, want: []R{ {V: F32{1.02e3}}, {V: EOF}, }, }, { in: `-1.0200E+03`, want: []R{ {V: F32{-1.02e3}}, {V: EOF}, }, }, { in: `1.0200e-3`, want: []R{ {V: F32{1.02e-3}}, {V: EOF}, }, }, { in: `-1.0200E-03`, want: []R{ {V: F32{-1.02e-3}}, {V: EOF}, }, }, { // Exceeds max float32 limit, but should be ok for float64. in: `3.4e39`, want: []R{ {V: F64{3.4e39}}, {V: EOF}, }, }, { // Exceeds max float32 limit. in: `3.4e39`, want: []R{ {V: NotF32}, {V: EOF}, }, }, { // Less than negative max float32 limit. in: `-3.4e39`, want: []R{ {V: NotF32}, {V: EOF}, }, }, { // Exceeds max float64 limit. in: `1.79e+309`, want: []R{ {V: NotF64}, {V: EOF}, }, }, { // Less than negative max float64 limit. in: `-1.79e+309`, want: []R{ {V: NotF64}, {V: EOF}, }, }, // JSON numbers as signed integers. { in: space + `0` + space, want: []R{ {V: I32{0}}, {V: EOF}, }, }, { in: space + `-0` + space, want: []R{ {V: I32{0}}, {V: EOF}, }, }, { // Fractional part equals 0 is ok. in: `1.00000`, want: []R{ {V: I32{1}}, {V: EOF}, }, }, { // Fractional part not equals 0 returns error. in: `1.0000000001`, want: []R{ {V: NotI32}, {V: EOF}, }, }, { in: `0e0`, want: []R{ {V: I32{0}}, {V: EOF}, }, }, { in: `0.0E0`, want: []R{ {V: I32{0}}, {V: EOF}, }, }, { in: `0.0E10`, want: []R{ {V: I32{0}}, {V: EOF}, }, }, { in: `-1`, want: []R{ {V: I32{-1}}, {V: EOF}, }, }, { in: `1.0e+0`, want: []R{ {V: I32{1}}, {V: EOF}, }, }, { in: `-1E-0`, want: []R{ {V: I32{-1}}, {V: EOF}, }, }, { in: `1E1`, want: []R{ {V: I32{10}}, {V: EOF}, }, }, { in: `-100.00e-02`, want: []R{ {V: I32{-1}}, {V: EOF}, }, }, { in: `0.1200E+02`, want: []R{ {V: I64{12}}, {V: EOF}, }, }, { in: `0.012e2`, want: []R{ {V: NotI32}, {V: EOF}, }, }, { in: `12e-2`, want: []R{ {V: NotI32}, {V: EOF}, }, }, { // Exceeds math.MaxInt32. in: `2147483648`, want: []R{ {V: NotI32}, {V: EOF}, }, }, { // Exceeds math.MinInt32. in: `-2147483649`, want: []R{ {V: NotI32}, {V: EOF}, }, }, { // Exceeds math.MaxInt32, but ok for int64. in: `2147483648`, want: []R{ {V: I64{2147483648}}, {V: EOF}, }, }, { // Exceeds math.MinInt32, but ok for int64. in: `-2147483649`, want: []R{ {V: I64{-2147483649}}, {V: EOF}, }, }, { // Exceeds math.MaxInt64. in: `9223372036854775808`, want: []R{ {V: NotI64}, {V: EOF}, }, }, { // Exceeds math.MinInt64. in: `-9223372036854775809`, want: []R{ {V: NotI64}, {V: EOF}, }, }, // JSON numbers as unsigned integers. { in: space + `0` + space, want: []R{ {V: Ui32{0}}, {V: EOF}, }, }, { in: space + `-0` + space, want: []R{ {V: Ui32{0}}, {V: EOF}, }, }, { in: `-1`, want: []R{ {V: NotUi32}, {V: EOF}, }, }, { // Exceeds math.MaxUint32. in: `4294967296`, want: []R{ {V: NotUi32}, {V: EOF}, }, }, { // Exceeds math.MaxUint64. in: `18446744073709551616`, want: []R{ {V: NotUi64}, {V: EOF}, }, }, // JSON sequence of values. { in: `true null`, want: []R{ {V: Bool{true}}, {E: `(line 1:6): unexpected token null`}, }, }, { in: "null false", want: []R{ {V: Null}, {E: `unexpected token false`}, }, }, { in: `true,false`, want: []R{ {V: Bool{true}}, {E: `unexpected token ,`}, }, }, { in: `47"hello"`, want: []R{ {V: I32{47}}, {E: `unexpected token "hello"`}, }, }, { in: `47 "hello"`, want: []R{ {V: I32{47}}, {E: `unexpected token "hello"`}, }, }, { in: `true 42`, want: []R{ {V: Bool{true}}, {E: `unexpected token 42`}, }, }, // JSON arrays. { in: space + `[]` + space, want: []R{ {V: ArrayOpen}, {V: ArrayClose}, {V: EOF}, }, }, { in: space + `[` + space + `]` + space, want: []R{ {V: ArrayOpen, P: len(space), RS: `[`}, {V: ArrayClose}, {V: EOF}, }, }, { in: space + `[` + space, want: []R{ {V: ArrayOpen}, {E: errEOF}, }, }, { in: space + `]` + space, want: []R{{E: `unexpected token ]`}}, }, { in: `[null,true,false, 1e1, "hello" ]`, want: []R{ {V: ArrayOpen}, {V: Null}, {V: Bool{true}}, {V: Bool{false}}, {V: I32{10}}, {V: Str{"hello"}}, {V: ArrayClose}, {V: EOF}, }, }, { in: `[` + space + `true` + space + `,` + space + `"hello"` + space + `]`, want: []R{ {V: ArrayOpen}, {V: Bool{true}}, {V: Str{"hello"}}, {V: ArrayClose}, {V: EOF}, }, }, { in: `[` + space + `true` + space + `,` + space + `]`, want: []R{ {V: ArrayOpen}, {V: Bool{true}}, {E: `unexpected token ]`}, }, }, { in: `[` + space + `false` + space + `]`, want: []R{ {V: ArrayOpen}, {V: Bool{false}}, {V: ArrayClose}, {V: EOF}, }, }, { in: `[` + space + `1` + space + `0` + space + `]`, want: []R{ {V: ArrayOpen}, {V: I64{1}}, {E: `unexpected token 0`}, }, }, { in: `[null`, want: []R{ {V: ArrayOpen}, {V: Null}, {E: errEOF}, }, }, { in: `[foo]`, want: []R{ {V: ArrayOpen}, {E: `invalid value foo`}, }, }, { in: `[{}, "hello", [true, false], null]`, want: []R{ {V: ArrayOpen}, {V: ObjectOpen}, {V: ObjectClose}, {V: Str{"hello"}}, {V: ArrayOpen}, {V: Bool{true}}, {V: Bool{false}}, {V: ArrayClose}, {V: Null}, {V: ArrayClose}, {V: EOF}, }, }, { in: `[{ ]`, want: []R{ {V: ArrayOpen}, {V: ObjectOpen}, {E: `unexpected token ]`}, }, }, { in: `[[ ]`, want: []R{ {V: ArrayOpen}, {V: ArrayOpen}, {V: ArrayClose}, {E: errEOF}, }, }, { in: `[,]`, want: []R{ {V: ArrayOpen}, {E: `unexpected token ,`}, }, }, { in: `[true "hello"]`, want: []R{ {V: ArrayOpen}, {V: Bool{true}}, {E: `unexpected token "hello"`}, }, }, { in: `[] null`, want: []R{ {V: ArrayOpen}, {V: ArrayClose}, {E: `unexpected token null`}, }, }, { in: `true []`, want: []R{ {V: Bool{true}}, {E: `unexpected token [`}, }, }, // JSON objects. { in: space + `{}` + space, want: []R{ {V: ObjectOpen}, {V: ObjectClose}, {V: EOF}, }, }, { in: space + `{` + space + `}` + space, want: []R{ {V: ObjectOpen}, {V: ObjectClose}, {V: EOF}, }, }, { in: space + `{` + space, want: []R{ {V: ObjectOpen}, {E: errEOF}, }, }, { in: space + `}` + space, want: []R{{E: `unexpected token }`}}, }, { in: `{` + space + `null` + space + `}`, want: []R{ {V: ObjectOpen}, {E: `unexpected token null`}, }, }, { in: `{[]}`, want: []R{ {V: ObjectOpen}, {E: `(line 1:2): unexpected token [`}, }, }, { in: `{,}`, want: []R{ {V: ObjectOpen}, {E: `unexpected token ,`}, }, }, { in: `{"345678"}`, want: []R{ {V: ObjectOpen}, {E: `(line 1:10): unexpected character }, missing ":" after field name`}, }, }, { in: `{` + space + `"hello"` + space + `:` + space + `"world"` + space + `}`, want: []R{ {V: ObjectOpen}, {V: Name{"hello"}, P: len(space) + 1, RS: `"hello"`}, {V: Str{"world"}, RS: `"world"`}, {V: ObjectClose}, {V: EOF}, }, }, { in: `{"hello" "world"}`, want: []R{ {V: ObjectOpen}, {E: `(line 1:10): unexpected character ", missing ":" after field name`}, }, }, { in: `{"hello":`, want: []R{ {V: ObjectOpen}, {V: Name{"hello"}}, {E: errEOF}, }, }, { in: `{"hello":"world"`, want: []R{ {V: ObjectOpen}, {V: Name{"hello"}}, {V: Str{"world"}}, {E: errEOF}, }, }, { in: `{"hello":"world",`, want: []R{ {V: ObjectOpen}, {V: Name{"hello"}}, {V: Str{"world"}}, {E: errEOF}, }, }, { in: `{""`, want: []R{ {V: ObjectOpen}, {E: errEOF}, }, }, { in: `{"34":"89",}`, want: []R{ {V: ObjectOpen}, {V: Name{"34"}, RS: `"34"`}, {V: Str{"89"}}, {E: `syntax error (line 1:12): unexpected token }`}, }, }, { in: `{ "number": 123e2, "bool" : false, "object": {"string": "world"}, "null" : null, "array" : [1.01, "hello", true], "string": "hello" }`, want: []R{ {V: ObjectOpen}, {V: Name{"number"}}, {V: I32{12300}}, {V: Name{"bool"}}, {V: Bool{false}}, {V: Name{"object"}}, {V: ObjectOpen}, {V: Name{"string"}}, {V: Str{"world"}}, {V: ObjectClose}, {V: Name{"null"}}, {V: Null}, {V: Name{"array"}}, {V: ArrayOpen}, {V: F32{1.01}}, {V: Str{"hello"}}, {V: Bool{true}}, {V: ArrayClose}, {V: Name{"string"}}, {V: Str{"hello"}}, {V: ObjectClose}, {V: EOF}, }, }, { in: `[ {"object": {"number": 47}}, ["list"], null ]`, want: []R{ {V: ArrayOpen}, {V: ObjectOpen}, {V: Name{"object"}}, {V: ObjectOpen}, {V: Name{"number"}}, {V: I32{47}}, {V: ObjectClose}, {V: ObjectClose}, {V: ArrayOpen}, {V: Str{"list"}}, {V: ArrayClose}, {V: Null}, {V: ArrayClose}, {V: EOF}, }, }, // Tests for line and column info. { in: `12345678 x`, want: []R{ {V: I64{12345678}}, {E: `syntax error (line 1:10): invalid value x`}, }, }, { in: "\ntrue\n x", want: []R{ {V: Bool{true}}, {E: `syntax error (line 3:4): invalid value x`}, }, }, { in: `"💩"x`, want: []R{ {V: Str{"💩"}}, {E: `syntax error (line 1:4): invalid value x`}, }, }, { in: "\n\n[\"🔥🔥🔥\"x", want: []R{ {V: ArrayOpen}, {V: Str{"🔥🔥🔥"}}, {E: `syntax error (line 3:7): invalid value x`}, }, }, { // Multi-rune emojis. in: `["👍🏻👍🏿"x`, want: []R{ {V: ArrayOpen}, {V: Str{"👍🏻👍🏿"}}, {E: `syntax error (line 1:8): invalid value x`}, }, }, } for _, tc := range tests { tc := tc t.Run("", func(t *testing.T) { dec := json.NewDecoder([]byte(tc.in)) for i, want := range tc.want { peekTok, peekErr := dec.Peek() tok, err := dec.Read() if err != nil { if want.E == "" { errorf(t, tc.in, "want#%d: Read() got unexpected error: %v", i, err) } else if !strings.Contains(err.Error(), want.E) { errorf(t, tc.in, "want#%d: Read() got %q, want %q", i, err, want.E) } return } if want.E != "" { errorf(t, tc.in, "want#%d: Read() got nil error, want %q", i, want.E) return } checkToken(t, tok, i, want, tc.in) if !cmp.Equal(tok, peekTok, cmp.Comparer(json.TokenEquals)) { errorf(t, tc.in, "want#%d: Peek() %+v != Read() token %+v", i, peekTok, tok) } if err != peekErr { errorf(t, tc.in, "want#%d: Peek() error %v != Read() error %v", i, err, peekErr) } } }) } } func checkToken(t *testing.T, tok json.Token, idx int, r R, in string) { // Validate Token.Pos() if R.P is set. if r.P > 0 { got := tok.Pos() if got != r.P { errorf(t, in, "want#%d: Token.Pos() got %v want %v", idx, got, r.P) } } // Validate Token.RawString if R.RS is set. if len(r.RS) > 0 { got := tok.RawString() if got != r.RS { errorf(t, in, "want#%d: Token.RawString() got %v want %v", idx, got, r.P) } } // Skip checking for Token details if r.V is not set. if r.V == nil { return } if err := r.V.check(tok); err != "" { errorf(t, in, "want#%d: %s", idx, err) } return } func errorf(t *testing.T, in string, fmtStr string, args ...interface{}) { t.Helper() vargs := []interface{}{in} for _, arg := range args { vargs = append(vargs, arg) } t.Errorf("input:\n%s\n~end~\n"+fmtStr, vargs...) } func TestClone(t *testing.T) { input := `{"outer":{"str":"hello", "number": 123}}` dec := json.NewDecoder([]byte(input)) // Clone at the start should produce the same reads as the original. clone := dec.Clone() compareDecoders(t, dec, clone) // Advance to inner object, clone and compare again. dec.Read() // Read ObjectOpen. dec.Read() // Read Name. clone = dec.Clone() compareDecoders(t, dec, clone) } func compareDecoders(t *testing.T, d1 *json.Decoder, d2 *json.Decoder) { for { tok1, err1 := d1.Read() tok2, err2 := d2.Read() if tok1.Kind() != tok2.Kind() { t.Errorf("cloned decoder: got Kind %v, want %v", tok2.Kind(), tok1.Kind()) } if tok1.RawString() != tok2.RawString() { t.Errorf("cloned decoder: got RawString %v, want %v", tok2.RawString(), tok1.RawString()) } if err1 != err2 { t.Errorf("cloned decoder: got error %v, want %v", err2, err1) } if tok1.Kind() == json.EOF { break } } } golang-google-protobuf-1.27.1/internal/encoding/json/decode_token.go000066400000000000000000000106311411250152500255030ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package json import ( "bytes" "fmt" "strconv" ) // Kind represents a token kind expressible in the JSON format. type Kind uint16 const ( Invalid Kind = (1 << iota) / 2 EOF Null Bool Number String Name ObjectOpen ObjectClose ArrayOpen ArrayClose // comma is only for parsing in between tokens and // does not need to be exported. comma ) func (k Kind) String() string { switch k { case EOF: return "eof" case Null: return "null" case Bool: return "bool" case Number: return "number" case String: return "string" case ObjectOpen: return "{" case ObjectClose: return "}" case Name: return "name" case ArrayOpen: return "[" case ArrayClose: return "]" case comma: return "," } return "" } // Token provides a parsed token kind and value. // // Values are provided by the difference accessor methods. The accessor methods // Name, Bool, and ParsedString will panic if called on the wrong kind. There // are different accessor methods for the Number kind for converting to the // appropriate Go numeric type and those methods have the ok return value. type Token struct { // Token kind. kind Kind // pos provides the position of the token in the original input. pos int // raw bytes of the serialized token. // This is a subslice into the original input. raw []byte // boo is parsed boolean value. boo bool // str is parsed string value. str string } // Kind returns the token kind. func (t Token) Kind() Kind { return t.kind } // RawString returns the read value in string. func (t Token) RawString() string { return string(t.raw) } // Pos returns the token position from the input. func (t Token) Pos() int { return t.pos } // Name returns the object name if token is Name, else it panics. func (t Token) Name() string { if t.kind == Name { return t.str } panic(fmt.Sprintf("Token is not a Name: %v", t.RawString())) } // Bool returns the bool value if token kind is Bool, else it panics. func (t Token) Bool() bool { if t.kind == Bool { return t.boo } panic(fmt.Sprintf("Token is not a Bool: %v", t.RawString())) } // ParsedString returns the string value for a JSON string token or the read // value in string if token is not a string. func (t Token) ParsedString() string { if t.kind == String { return t.str } panic(fmt.Sprintf("Token is not a String: %v", t.RawString())) } // Float returns the floating-point number if token kind is Number. // // The floating-point precision is specified by the bitSize parameter: 32 for // float32 or 64 for float64. If bitSize=32, the result still has type float64, // but it will be convertible to float32 without changing its value. It will // return false if the number exceeds the floating point limits for given // bitSize. func (t Token) Float(bitSize int) (float64, bool) { if t.kind != Number { return 0, false } f, err := strconv.ParseFloat(t.RawString(), bitSize) if err != nil { return 0, false } return f, true } // Int returns the signed integer number if token is Number. // // The given bitSize specifies the integer type that the result must fit into. // It returns false if the number is not an integer value or if the result // exceeds the limits for given bitSize. func (t Token) Int(bitSize int) (int64, bool) { s, ok := t.getIntStr() if !ok { return 0, false } n, err := strconv.ParseInt(s, 10, bitSize) if err != nil { return 0, false } return n, true } // Uint returns the signed integer number if token is Number. // // The given bitSize specifies the unsigned integer type that the result must // fit into. It returns false if the number is not an unsigned integer value // or if the result exceeds the limits for given bitSize. func (t Token) Uint(bitSize int) (uint64, bool) { s, ok := t.getIntStr() if !ok { return 0, false } n, err := strconv.ParseUint(s, 10, bitSize) if err != nil { return 0, false } return n, true } func (t Token) getIntStr() (string, bool) { if t.kind != Number { return "", false } parts, ok := parseNumberParts(t.raw) if !ok { return "", false } return normalizeToIntString(parts) } // TokenEquals returns true if given Tokens are equal, else false. func TokenEquals(x, y Token) bool { return x.kind == y.kind && x.pos == y.pos && bytes.Equal(x.raw, y.raw) && x.boo == y.boo && x.str == y.str } golang-google-protobuf-1.27.1/internal/encoding/json/encode.go000066400000000000000000000161311411250152500243160ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package json import ( "math" "math/bits" "strconv" "strings" "unicode/utf8" "google.golang.org/protobuf/internal/detrand" "google.golang.org/protobuf/internal/errors" ) // kind represents an encoding type. type kind uint8 const ( _ kind = (1 << iota) / 2 name scalar objectOpen objectClose arrayOpen arrayClose ) // Encoder provides methods to write out JSON constructs and values. The user is // responsible for producing valid sequences of JSON constructs and values. type Encoder struct { indent string lastKind kind indents []byte out []byte } // NewEncoder returns an Encoder. // // If indent is a non-empty string, it causes every entry for an Array or Object // to be preceded by the indent and trailed by a newline. func NewEncoder(indent string) (*Encoder, error) { e := &Encoder{} if len(indent) > 0 { if strings.Trim(indent, " \t") != "" { return nil, errors.New("indent may only be composed of space or tab characters") } e.indent = indent } return e, nil } // Bytes returns the content of the written bytes. func (e *Encoder) Bytes() []byte { return e.out } // WriteNull writes out the null value. func (e *Encoder) WriteNull() { e.prepareNext(scalar) e.out = append(e.out, "null"...) } // WriteBool writes out the given boolean value. func (e *Encoder) WriteBool(b bool) { e.prepareNext(scalar) if b { e.out = append(e.out, "true"...) } else { e.out = append(e.out, "false"...) } } // WriteString writes out the given string in JSON string value. Returns error // if input string contains invalid UTF-8. func (e *Encoder) WriteString(s string) error { e.prepareNext(scalar) var err error if e.out, err = appendString(e.out, s); err != nil { return err } return nil } // Sentinel error used for indicating invalid UTF-8. var errInvalidUTF8 = errors.New("invalid UTF-8") func appendString(out []byte, in string) ([]byte, error) { out = append(out, '"') i := indexNeedEscapeInString(in) in, out = in[i:], append(out, in[:i]...) for len(in) > 0 { switch r, n := utf8.DecodeRuneInString(in); { case r == utf8.RuneError && n == 1: return out, errInvalidUTF8 case r < ' ' || r == '"' || r == '\\': out = append(out, '\\') switch r { case '"', '\\': out = append(out, byte(r)) case '\b': out = append(out, 'b') case '\f': out = append(out, 'f') case '\n': out = append(out, 'n') case '\r': out = append(out, 'r') case '\t': out = append(out, 't') default: out = append(out, 'u') out = append(out, "0000"[1+(bits.Len32(uint32(r))-1)/4:]...) out = strconv.AppendUint(out, uint64(r), 16) } in = in[n:] default: i := indexNeedEscapeInString(in[n:]) in, out = in[n+i:], append(out, in[:n+i]...) } } out = append(out, '"') return out, nil } // indexNeedEscapeInString returns the index of the character that needs // escaping. If no characters need escaping, this returns the input length. func indexNeedEscapeInString(s string) int { for i, r := range s { if r < ' ' || r == '\\' || r == '"' || r == utf8.RuneError { return i } } return len(s) } // WriteFloat writes out the given float and bitSize in JSON number value. func (e *Encoder) WriteFloat(n float64, bitSize int) { e.prepareNext(scalar) e.out = appendFloat(e.out, n, bitSize) } // appendFloat formats given float in bitSize, and appends to the given []byte. func appendFloat(out []byte, n float64, bitSize int) []byte { switch { case math.IsNaN(n): return append(out, `"NaN"`...) case math.IsInf(n, +1): return append(out, `"Infinity"`...) case math.IsInf(n, -1): return append(out, `"-Infinity"`...) } // JSON number formatting logic based on encoding/json. // See floatEncoder.encode for reference. fmt := byte('f') if abs := math.Abs(n); abs != 0 { if bitSize == 64 && (abs < 1e-6 || abs >= 1e21) || bitSize == 32 && (float32(abs) < 1e-6 || float32(abs) >= 1e21) { fmt = 'e' } } out = strconv.AppendFloat(out, n, fmt, -1, bitSize) if fmt == 'e' { n := len(out) if n >= 4 && out[n-4] == 'e' && out[n-3] == '-' && out[n-2] == '0' { out[n-2] = out[n-1] out = out[:n-1] } } return out } // WriteInt writes out the given signed integer in JSON number value. func (e *Encoder) WriteInt(n int64) { e.prepareNext(scalar) e.out = append(e.out, strconv.FormatInt(n, 10)...) } // WriteUint writes out the given unsigned integer in JSON number value. func (e *Encoder) WriteUint(n uint64) { e.prepareNext(scalar) e.out = append(e.out, strconv.FormatUint(n, 10)...) } // StartObject writes out the '{' symbol. func (e *Encoder) StartObject() { e.prepareNext(objectOpen) e.out = append(e.out, '{') } // EndObject writes out the '}' symbol. func (e *Encoder) EndObject() { e.prepareNext(objectClose) e.out = append(e.out, '}') } // WriteName writes out the given string in JSON string value and the name // separator ':'. Returns error if input string contains invalid UTF-8, which // should not be likely as protobuf field names should be valid. func (e *Encoder) WriteName(s string) error { e.prepareNext(name) var err error // Append to output regardless of error. e.out, err = appendString(e.out, s) e.out = append(e.out, ':') return err } // StartArray writes out the '[' symbol. func (e *Encoder) StartArray() { e.prepareNext(arrayOpen) e.out = append(e.out, '[') } // EndArray writes out the ']' symbol. func (e *Encoder) EndArray() { e.prepareNext(arrayClose) e.out = append(e.out, ']') } // prepareNext adds possible comma and indentation for the next value based // on last type and indent option. It also updates lastKind to next. func (e *Encoder) prepareNext(next kind) { defer func() { // Set lastKind to next. e.lastKind = next }() if len(e.indent) == 0 { // Need to add comma on the following condition. if e.lastKind&(scalar|objectClose|arrayClose) != 0 && next&(name|scalar|objectOpen|arrayOpen) != 0 { e.out = append(e.out, ',') // For single-line output, add a random extra space after each // comma to make output unstable. if detrand.Bool() { e.out = append(e.out, ' ') } } return } switch { case e.lastKind&(objectOpen|arrayOpen) != 0: // If next type is NOT closing, add indent and newline. if next&(objectClose|arrayClose) == 0 { e.indents = append(e.indents, e.indent...) e.out = append(e.out, '\n') e.out = append(e.out, e.indents...) } case e.lastKind&(scalar|objectClose|arrayClose) != 0: switch { // If next type is either a value or name, add comma and newline. case next&(name|scalar|objectOpen|arrayOpen) != 0: e.out = append(e.out, ',', '\n') // If next type is a closing object or array, adjust indentation. case next&(objectClose|arrayClose) != 0: e.indents = e.indents[:len(e.indents)-len(e.indent)] e.out = append(e.out, '\n') } e.out = append(e.out, e.indents...) case e.lastKind&name != 0: e.out = append(e.out, ' ') // For multi-line output, add a random extra space after key: to make // output unstable. if detrand.Bool() { e.out = append(e.out, ' ') } } } golang-google-protobuf-1.27.1/internal/encoding/json/encode_test.go000066400000000000000000000166261411250152500253660ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package json_test import ( "math" "strings" "testing" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "google.golang.org/protobuf/internal/detrand" "google.golang.org/protobuf/internal/encoding/json" ) // Disable detrand to enable direct comparisons on outputs. func init() { detrand.Disable() } // splitLines is a cmpopts.Option for comparing strings with line breaks. var splitLines = cmpopts.AcyclicTransformer("SplitLines", func(s string) []string { return strings.Split(s, "\n") }) func TestEncoder(t *testing.T) { tests := []struct { desc string write func(*json.Encoder) wantOut string wantOutIndent string }{ { desc: "null", write: func(e *json.Encoder) { e.WriteNull() }, wantOut: `null`, }, { desc: "true", write: func(e *json.Encoder) { e.WriteBool(true) }, wantOut: `true`, }, { desc: "false", write: func(e *json.Encoder) { e.WriteBool(false) }, wantOut: `false`, }, { desc: "string", write: func(e *json.Encoder) { e.WriteString("hello world") }, wantOut: `"hello world"`, }, { desc: "string contains escaped characters", write: func(e *json.Encoder) { e.WriteString("\u0000\"\\/\b\f\n\r\t") }, wantOut: `"\u0000\"\\/\b\f\n\r\t"`, }, { desc: "float64", write: func(e *json.Encoder) { e.WriteFloat(1.0199999809265137, 64) }, wantOut: `1.0199999809265137`, }, { desc: "float64 max value", write: func(e *json.Encoder) { e.WriteFloat(math.MaxFloat64, 64) }, wantOut: `1.7976931348623157e+308`, }, { desc: "float64 min value", write: func(e *json.Encoder) { e.WriteFloat(-math.MaxFloat64, 64) }, wantOut: `-1.7976931348623157e+308`, }, { desc: "float64 NaN", write: func(e *json.Encoder) { e.WriteFloat(math.NaN(), 64) }, wantOut: `"NaN"`, }, { desc: "float64 Infinity", write: func(e *json.Encoder) { e.WriteFloat(math.Inf(+1), 64) }, wantOut: `"Infinity"`, }, { desc: "float64 -Infinity", write: func(e *json.Encoder) { e.WriteFloat(math.Inf(-1), 64) }, wantOut: `"-Infinity"`, }, { desc: "float64 negative zero", write: func(e *json.Encoder) { e.WriteFloat(math.Copysign(0, -1), 64) }, wantOut: `-0`, }, { desc: "float32", write: func(e *json.Encoder) { e.WriteFloat(1.02, 32) }, wantOut: `1.02`, }, { desc: "float32 max value", write: func(e *json.Encoder) { e.WriteFloat(math.MaxFloat32, 32) }, wantOut: `3.4028235e+38`, }, { desc: "float32 min value", write: func(e *json.Encoder) { e.WriteFloat(-math.MaxFloat32, 32) }, wantOut: `-3.4028235e+38`, }, { desc: "float32 negative zero", write: func(e *json.Encoder) { e.WriteFloat(math.Copysign(0, -1), 32) }, wantOut: `-0`, }, { desc: "int", write: func(e *json.Encoder) { e.WriteInt(-math.MaxInt64) }, wantOut: `-9223372036854775807`, }, { desc: "uint", write: func(e *json.Encoder) { e.WriteUint(math.MaxUint64) }, wantOut: `18446744073709551615`, }, { desc: "empty object", write: func(e *json.Encoder) { e.StartObject() e.EndObject() }, wantOut: `{}`, }, { desc: "empty array", write: func(e *json.Encoder) { e.StartArray() e.EndArray() }, wantOut: `[]`, }, { desc: "object with one member", write: func(e *json.Encoder) { e.StartObject() e.WriteName("hello") e.WriteString("world") e.EndObject() }, wantOut: `{"hello":"world"}`, wantOutIndent: `{ "hello": "world" }`, }, { desc: "array with one member", write: func(e *json.Encoder) { e.StartArray() e.WriteNull() e.EndArray() }, wantOut: `[null]`, wantOutIndent: `[ null ]`, }, { desc: "simple object", write: func(e *json.Encoder) { e.StartObject() { e.WriteName("null") e.WriteNull() } { e.WriteName("bool") e.WriteBool(true) } { e.WriteName("string") e.WriteString("hello") } { e.WriteName("float") e.WriteFloat(6.28318, 64) } { e.WriteName("int") e.WriteInt(42) } { e.WriteName("uint") e.WriteUint(47) } e.EndObject() }, wantOut: `{"null":null,"bool":true,"string":"hello","float":6.28318,"int":42,"uint":47}`, wantOutIndent: `{ "null": null, "bool": true, "string": "hello", "float": 6.28318, "int": 42, "uint": 47 }`, }, { desc: "simple array", write: func(e *json.Encoder) { e.StartArray() { e.WriteString("hello") e.WriteFloat(6.28318, 32) e.WriteInt(42) e.WriteUint(47) e.WriteBool(true) e.WriteNull() } e.EndArray() }, wantOut: `["hello",6.28318,42,47,true,null]`, wantOutIndent: `[ "hello", 6.28318, 42, 47, true, null ]`, }, { desc: "fancy object", write: func(e *json.Encoder) { e.StartObject() { e.WriteName("object0") e.StartObject() e.EndObject() } { e.WriteName("array0") e.StartArray() e.EndArray() } { e.WriteName("object1") e.StartObject() { e.WriteName("null") e.WriteNull() } { e.WriteName("object1-1") e.StartObject() { e.WriteName("bool") e.WriteBool(false) } { e.WriteName("float") e.WriteFloat(3.14159, 32) } e.EndObject() } e.EndObject() } { e.WriteName("array1") e.StartArray() { e.WriteNull() e.StartObject() e.EndObject() e.StartObject() { e.WriteName("hello") e.WriteString("world") } { e.WriteName("hola") e.WriteString("mundo") } e.EndObject() e.StartArray() { e.WriteUint(1) e.WriteUint(0) e.WriteUint(1) } e.EndArray() } e.EndArray() } e.EndObject() }, wantOutIndent: `{ "object0": {}, "array0": [], "object1": { "null": null, "object1-1": { "bool": false, "float": 3.14159 } }, "array1": [ null, {}, { "hello": "world", "hola": "mundo" }, [ 1, 0, 1 ] ] }`, }} for _, tc := range tests { t.Run(tc.desc, func(t *testing.T) { if tc.wantOut != "" { enc, err := json.NewEncoder("") if err != nil { t.Fatalf("NewEncoder() returned error: %v", err) } tc.write(enc) got := string(enc.Bytes()) if got != tc.wantOut { t.Errorf("%s:\n:\n%v\n\n%v\n", tc.desc, got, tc.wantOut) } } if tc.wantOutIndent != "" { enc, err := json.NewEncoder("\t") if err != nil { t.Fatalf("NewEncoder() returned error: %v", err) } tc.write(enc) got, want := string(enc.Bytes()), tc.wantOutIndent if got != want { t.Errorf("%s(indent):\n:\n%v\n\n%v\n\n%v\n", tc.desc, got, want, cmp.Diff(want, got, splitLines)) } } }) } } func TestWriteStringError(t *testing.T) { tests := []string{"abc\xff"} for _, in := range tests { t.Run(in, func(t *testing.T) { enc, err := json.NewEncoder("") if err != nil { t.Fatalf("NewEncoder() returned error: %v", err) } if err := enc.WriteString(in); err == nil { t.Errorf("WriteString(%v): got nil error, want error", in) } }) } } golang-google-protobuf-1.27.1/internal/encoding/messageset/000077500000000000000000000000001411250152500237175ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/encoding/messageset/messageset.go000066400000000000000000000166351411250152500264210ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package messageset encodes and decodes the obsolete MessageSet wire format. package messageset import ( "math" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/errors" pref "google.golang.org/protobuf/reflect/protoreflect" ) // The MessageSet wire format is equivalent to a message defined as follows, // where each Item defines an extension field with a field number of 'type_id' // and content of 'message'. MessageSet extensions must be non-repeated message // fields. // // message MessageSet { // repeated group Item = 1 { // required int32 type_id = 2; // required string message = 3; // } // } const ( FieldItem = protowire.Number(1) FieldTypeID = protowire.Number(2) FieldMessage = protowire.Number(3) ) // ExtensionName is the field name for extensions of MessageSet. // // A valid MessageSet extension must be of the form: // message MyMessage { // extend proto2.bridge.MessageSet { // optional MyMessage message_set_extension = 1234; // } // ... // } const ExtensionName = "message_set_extension" // IsMessageSet returns whether the message uses the MessageSet wire format. func IsMessageSet(md pref.MessageDescriptor) bool { xmd, ok := md.(interface{ IsMessageSet() bool }) return ok && xmd.IsMessageSet() } // IsMessageSetExtension reports this field properly extends a MessageSet. func IsMessageSetExtension(fd pref.FieldDescriptor) bool { switch { case fd.Name() != ExtensionName: return false case !IsMessageSet(fd.ContainingMessage()): return false case fd.FullName().Parent() != fd.Message().FullName(): return false } return true } // SizeField returns the size of a MessageSet item field containing an extension // with the given field number, not counting the contents of the message subfield. func SizeField(num protowire.Number) int { return 2*protowire.SizeTag(FieldItem) + protowire.SizeTag(FieldTypeID) + protowire.SizeVarint(uint64(num)) } // Unmarshal parses a MessageSet. // // It calls fn with the type ID and value of each item in the MessageSet. // Unknown fields are discarded. // // If wantLen is true, the item values include the varint length prefix. // This is ugly, but simplifies the fast-path decoder in internal/impl. func Unmarshal(b []byte, wantLen bool, fn func(typeID protowire.Number, value []byte) error) error { for len(b) > 0 { num, wtyp, n := protowire.ConsumeTag(b) if n < 0 { return protowire.ParseError(n) } b = b[n:] if num != FieldItem || wtyp != protowire.StartGroupType { n := protowire.ConsumeFieldValue(num, wtyp, b) if n < 0 { return protowire.ParseError(n) } b = b[n:] continue } typeID, value, n, err := ConsumeFieldValue(b, wantLen) if err != nil { return err } b = b[n:] if typeID == 0 { continue } if err := fn(typeID, value); err != nil { return err } } return nil } // ConsumeFieldValue parses b as a MessageSet item field value until and including // the trailing end group marker. It assumes the start group tag has already been parsed. // It returns the contents of the type_id and message subfields and the total // item length. // // If wantLen is true, the returned message value includes the length prefix. func ConsumeFieldValue(b []byte, wantLen bool) (typeid protowire.Number, message []byte, n int, err error) { ilen := len(b) for { num, wtyp, n := protowire.ConsumeTag(b) if n < 0 { return 0, nil, 0, protowire.ParseError(n) } b = b[n:] switch { case num == FieldItem && wtyp == protowire.EndGroupType: if wantLen && len(message) == 0 { // The message field was missing, which should never happen. // Be prepared for this case anyway. message = protowire.AppendVarint(message, 0) } return typeid, message, ilen - len(b), nil case num == FieldTypeID && wtyp == protowire.VarintType: v, n := protowire.ConsumeVarint(b) if n < 0 { return 0, nil, 0, protowire.ParseError(n) } b = b[n:] if v < 1 || v > math.MaxInt32 { return 0, nil, 0, errors.New("invalid type_id in message set") } typeid = protowire.Number(v) case num == FieldMessage && wtyp == protowire.BytesType: m, n := protowire.ConsumeBytes(b) if n < 0 { return 0, nil, 0, protowire.ParseError(n) } if message == nil { if wantLen { message = b[:n:n] } else { message = m[:len(m):len(m)] } } else { // This case should never happen in practice, but handle it for // correctness: The MessageSet item contains multiple message // fields, which need to be merged. // // In the case where we're returning the length, this becomes // quite inefficient since we need to strip the length off // the existing data and reconstruct it with the combined length. if wantLen { _, nn := protowire.ConsumeVarint(message) m0 := message[nn:] message = nil message = protowire.AppendVarint(message, uint64(len(m0)+len(m))) message = append(message, m0...) message = append(message, m...) } else { message = append(message, m...) } } b = b[n:] default: // We have no place to put it, so we just ignore unknown fields. n := protowire.ConsumeFieldValue(num, wtyp, b) if n < 0 { return 0, nil, 0, protowire.ParseError(n) } b = b[n:] } } } // AppendFieldStart appends the start of a MessageSet item field containing // an extension with the given number. The caller must add the message // subfield (including the tag). func AppendFieldStart(b []byte, num protowire.Number) []byte { b = protowire.AppendTag(b, FieldItem, protowire.StartGroupType) b = protowire.AppendTag(b, FieldTypeID, protowire.VarintType) b = protowire.AppendVarint(b, uint64(num)) return b } // AppendFieldEnd appends the trailing end group marker for a MessageSet item field. func AppendFieldEnd(b []byte) []byte { return protowire.AppendTag(b, FieldItem, protowire.EndGroupType) } // SizeUnknown returns the size of an unknown fields section in MessageSet format. // // See AppendUnknown. func SizeUnknown(unknown []byte) (size int) { for len(unknown) > 0 { num, typ, n := protowire.ConsumeTag(unknown) if n < 0 || typ != protowire.BytesType { return 0 } unknown = unknown[n:] _, n = protowire.ConsumeBytes(unknown) if n < 0 { return 0 } unknown = unknown[n:] size += SizeField(num) + protowire.SizeTag(FieldMessage) + n } return size } // AppendUnknown appends unknown fields to b in MessageSet format. // // For historic reasons, unresolved items in a MessageSet are stored in a // message's unknown fields section in non-MessageSet format. That is, an // unknown item with typeID T and value V appears in the unknown fields as // a field with number T and value V. // // This function converts the unknown fields back into MessageSet form. func AppendUnknown(b, unknown []byte) ([]byte, error) { for len(unknown) > 0 { num, typ, n := protowire.ConsumeTag(unknown) if n < 0 || typ != protowire.BytesType { return nil, errors.New("invalid data in message set unknown fields") } unknown = unknown[n:] _, n = protowire.ConsumeBytes(unknown) if n < 0 { return nil, errors.New("invalid data in message set unknown fields") } b = AppendFieldStart(b, num) b = protowire.AppendTag(b, FieldMessage, protowire.BytesType) b = append(b, unknown[:n]...) b = AppendFieldEnd(b) unknown = unknown[n:] } return b, nil } golang-google-protobuf-1.27.1/internal/encoding/tag/000077500000000000000000000000001411250152500223325ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/encoding/tag/tag.go000066400000000000000000000154421411250152500234420ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package tag marshals and unmarshals the legacy struct tags as generated // by historical versions of protoc-gen-go. package tag import ( "reflect" "strconv" "strings" defval "google.golang.org/protobuf/internal/encoding/defval" fdesc "google.golang.org/protobuf/internal/filedesc" "google.golang.org/protobuf/internal/strs" pref "google.golang.org/protobuf/reflect/protoreflect" ) var byteType = reflect.TypeOf(byte(0)) // Unmarshal decodes the tag into a prototype.Field. // // The goType is needed to determine the original protoreflect.Kind since the // tag does not record sufficient information to determine that. // The type is the underlying field type (e.g., a repeated field may be // represented by []T, but the Go type passed in is just T). // A list of enum value descriptors must be provided for enum fields. // This does not populate the Enum or Message (except for weak message). // // This function is a best effort attempt; parsing errors are ignored. func Unmarshal(tag string, goType reflect.Type, evs pref.EnumValueDescriptors) pref.FieldDescriptor { f := new(fdesc.Field) f.L0.ParentFile = fdesc.SurrogateProto2 for len(tag) > 0 { i := strings.IndexByte(tag, ',') if i < 0 { i = len(tag) } switch s := tag[:i]; { case strings.HasPrefix(s, "name="): f.L0.FullName = pref.FullName(s[len("name="):]) case strings.Trim(s, "0123456789") == "": n, _ := strconv.ParseUint(s, 10, 32) f.L1.Number = pref.FieldNumber(n) case s == "opt": f.L1.Cardinality = pref.Optional case s == "req": f.L1.Cardinality = pref.Required case s == "rep": f.L1.Cardinality = pref.Repeated case s == "varint": switch goType.Kind() { case reflect.Bool: f.L1.Kind = pref.BoolKind case reflect.Int32: f.L1.Kind = pref.Int32Kind case reflect.Int64: f.L1.Kind = pref.Int64Kind case reflect.Uint32: f.L1.Kind = pref.Uint32Kind case reflect.Uint64: f.L1.Kind = pref.Uint64Kind } case s == "zigzag32": if goType.Kind() == reflect.Int32 { f.L1.Kind = pref.Sint32Kind } case s == "zigzag64": if goType.Kind() == reflect.Int64 { f.L1.Kind = pref.Sint64Kind } case s == "fixed32": switch goType.Kind() { case reflect.Int32: f.L1.Kind = pref.Sfixed32Kind case reflect.Uint32: f.L1.Kind = pref.Fixed32Kind case reflect.Float32: f.L1.Kind = pref.FloatKind } case s == "fixed64": switch goType.Kind() { case reflect.Int64: f.L1.Kind = pref.Sfixed64Kind case reflect.Uint64: f.L1.Kind = pref.Fixed64Kind case reflect.Float64: f.L1.Kind = pref.DoubleKind } case s == "bytes": switch { case goType.Kind() == reflect.String: f.L1.Kind = pref.StringKind case goType.Kind() == reflect.Slice && goType.Elem() == byteType: f.L1.Kind = pref.BytesKind default: f.L1.Kind = pref.MessageKind } case s == "group": f.L1.Kind = pref.GroupKind case strings.HasPrefix(s, "enum="): f.L1.Kind = pref.EnumKind case strings.HasPrefix(s, "json="): jsonName := s[len("json="):] if jsonName != strs.JSONCamelCase(string(f.L0.FullName.Name())) { f.L1.StringName.InitJSON(jsonName) } case s == "packed": f.L1.HasPacked = true f.L1.IsPacked = true case strings.HasPrefix(s, "weak="): f.L1.IsWeak = true f.L1.Message = fdesc.PlaceholderMessage(pref.FullName(s[len("weak="):])) case strings.HasPrefix(s, "def="): // The default tag is special in that everything afterwards is the // default regardless of the presence of commas. s, i = tag[len("def="):], len(tag) v, ev, _ := defval.Unmarshal(s, f.L1.Kind, evs, defval.GoTag) f.L1.Default = fdesc.DefaultValue(v, ev) case s == "proto3": f.L0.ParentFile = fdesc.SurrogateProto3 } tag = strings.TrimPrefix(tag[i:], ",") } // The generator uses the group message name instead of the field name. // We obtain the real field name by lowercasing the group name. if f.L1.Kind == pref.GroupKind { f.L0.FullName = pref.FullName(strings.ToLower(string(f.L0.FullName))) } return f } // Marshal encodes the protoreflect.FieldDescriptor as a tag. // // The enumName must be provided if the kind is an enum. // Historically, the formulation of the enum "name" was the proto package // dot-concatenated with the generated Go identifier for the enum type. // Depending on the context on how Marshal is called, there are different ways // through which that information is determined. As such it is the caller's // responsibility to provide a function to obtain that information. func Marshal(fd pref.FieldDescriptor, enumName string) string { var tag []string switch fd.Kind() { case pref.BoolKind, pref.EnumKind, pref.Int32Kind, pref.Uint32Kind, pref.Int64Kind, pref.Uint64Kind: tag = append(tag, "varint") case pref.Sint32Kind: tag = append(tag, "zigzag32") case pref.Sint64Kind: tag = append(tag, "zigzag64") case pref.Sfixed32Kind, pref.Fixed32Kind, pref.FloatKind: tag = append(tag, "fixed32") case pref.Sfixed64Kind, pref.Fixed64Kind, pref.DoubleKind: tag = append(tag, "fixed64") case pref.StringKind, pref.BytesKind, pref.MessageKind: tag = append(tag, "bytes") case pref.GroupKind: tag = append(tag, "group") } tag = append(tag, strconv.Itoa(int(fd.Number()))) switch fd.Cardinality() { case pref.Optional: tag = append(tag, "opt") case pref.Required: tag = append(tag, "req") case pref.Repeated: tag = append(tag, "rep") } if fd.IsPacked() { tag = append(tag, "packed") } name := string(fd.Name()) if fd.Kind() == pref.GroupKind { // The name of the FieldDescriptor for a group field is // lowercased. To find the original capitalization, we // look in the field's MessageType. name = string(fd.Message().Name()) } tag = append(tag, "name="+name) if jsonName := fd.JSONName(); jsonName != "" && jsonName != name && !fd.IsExtension() { // NOTE: The jsonName != name condition is suspect, but it preserve // the exact same semantics from the previous generator. tag = append(tag, "json="+jsonName) } if fd.IsWeak() { tag = append(tag, "weak="+string(fd.Message().FullName())) } // The previous implementation does not tag extension fields as proto3, // even when the field is defined in a proto3 file. Match that behavior // for consistency. if fd.Syntax() == pref.Proto3 && !fd.IsExtension() { tag = append(tag, "proto3") } if fd.Kind() == pref.EnumKind && enumName != "" { tag = append(tag, "enum="+enumName) } if fd.ContainingOneof() != nil { tag = append(tag, "oneof") } // This must appear last in the tag, since commas in strings aren't escaped. if fd.HasDefault() { def, _ := defval.Marshal(fd.Default(), fd.DefaultEnumValue(), fd.Kind(), defval.GoTag) tag = append(tag, "def="+def) } return strings.Join(tag, ",") } golang-google-protobuf-1.27.1/internal/encoding/tag/tag_test.go000066400000000000000000000023551411250152500245000ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package tag_test import ( "reflect" "testing" "google.golang.org/protobuf/internal/encoding/tag" fdesc "google.golang.org/protobuf/internal/filedesc" "google.golang.org/protobuf/proto" pdesc "google.golang.org/protobuf/reflect/protodesc" pref "google.golang.org/protobuf/reflect/protoreflect" ) func Test(t *testing.T) { fd := new(fdesc.Field) fd.L0.ParentFile = fdesc.SurrogateProto3 fd.L0.FullName = "foo_field" fd.L1.Number = 1337 fd.L1.Cardinality = pref.Repeated fd.L1.Kind = pref.BytesKind fd.L1.Default = fdesc.DefaultValue(pref.ValueOf([]byte("hello, \xde\xad\xbe\xef\n")), nil) // Marshal test. gotTag := tag.Marshal(fd, "") wantTag := `bytes,1337,rep,name=foo_field,json=fooField,proto3,def=hello, \336\255\276\357\n` if gotTag != wantTag { t.Errorf("Marshal() = `%v`, want `%v`", gotTag, wantTag) } // Unmarshal test. gotFD := tag.Unmarshal(wantTag, reflect.TypeOf([]byte{}), nil) wantFD := fd if !proto.Equal(pdesc.ToFieldDescriptorProto(gotFD), pdesc.ToFieldDescriptorProto(wantFD)) { t.Errorf("Umarshal() mismatch:\ngot %v\nwant %v", gotFD, wantFD) } } golang-google-protobuf-1.27.1/internal/encoding/text/000077500000000000000000000000001411250152500225435ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/encoding/text/decode.go000066400000000000000000000403161411250152500243210ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package text import ( "bytes" "fmt" "io" "regexp" "strconv" "unicode/utf8" "google.golang.org/protobuf/internal/errors" ) // Decoder is a token-based textproto decoder. type Decoder struct { // lastCall is last method called, either readCall or peekCall. // Initial value is readCall. lastCall call // lastToken contains the last read token. lastToken Token // lastErr contains the last read error. lastErr error // openStack is a stack containing the byte characters for MessageOpen and // ListOpen kinds. The top of stack represents the message or the list that // the current token is nested in. An empty stack means the current token is // at the top level message. The characters '{' and '<' both represent the // MessageOpen kind. openStack []byte // orig is used in reporting line and column. orig []byte // in contains the unconsumed input. in []byte } // NewDecoder returns a Decoder to read the given []byte. func NewDecoder(b []byte) *Decoder { return &Decoder{orig: b, in: b} } // ErrUnexpectedEOF means that EOF was encountered in the middle of the input. var ErrUnexpectedEOF = errors.New("%v", io.ErrUnexpectedEOF) // call specifies which Decoder method was invoked. type call uint8 const ( readCall call = iota peekCall ) // Peek looks ahead and returns the next token and error without advancing a read. func (d *Decoder) Peek() (Token, error) { defer func() { d.lastCall = peekCall }() if d.lastCall == readCall { d.lastToken, d.lastErr = d.Read() } return d.lastToken, d.lastErr } // Read returns the next token. // It will return an error if there is no valid token. func (d *Decoder) Read() (Token, error) { defer func() { d.lastCall = readCall }() if d.lastCall == peekCall { return d.lastToken, d.lastErr } tok, err := d.parseNext(d.lastToken.kind) if err != nil { return Token{}, err } switch tok.kind { case comma, semicolon: tok, err = d.parseNext(tok.kind) if err != nil { return Token{}, err } } d.lastToken = tok return tok, nil } const ( mismatchedFmt = "mismatched close character %q" unexpectedFmt = "unexpected character %q" ) // parseNext parses the next Token based on given last kind. func (d *Decoder) parseNext(lastKind Kind) (Token, error) { // Trim leading spaces. d.consume(0) isEOF := false if len(d.in) == 0 { isEOF = true } switch lastKind { case EOF: return d.consumeToken(EOF, 0, 0), nil case bof: // Start of top level message. Next token can be EOF or Name. if isEOF { return d.consumeToken(EOF, 0, 0), nil } return d.parseFieldName() case Name: // Next token can be MessageOpen, ListOpen or Scalar. if isEOF { return Token{}, ErrUnexpectedEOF } switch ch := d.in[0]; ch { case '{', '<': d.pushOpenStack(ch) return d.consumeToken(MessageOpen, 1, 0), nil case '[': d.pushOpenStack(ch) return d.consumeToken(ListOpen, 1, 0), nil default: return d.parseScalar() } case Scalar: openKind, closeCh := d.currentOpenKind() switch openKind { case bof: // Top level message. // Next token can be EOF, comma, semicolon or Name. if isEOF { return d.consumeToken(EOF, 0, 0), nil } switch d.in[0] { case ',': return d.consumeToken(comma, 1, 0), nil case ';': return d.consumeToken(semicolon, 1, 0), nil default: return d.parseFieldName() } case MessageOpen: // Next token can be MessageClose, comma, semicolon or Name. if isEOF { return Token{}, ErrUnexpectedEOF } switch ch := d.in[0]; ch { case closeCh: d.popOpenStack() return d.consumeToken(MessageClose, 1, 0), nil case otherCloseChar[closeCh]: return Token{}, d.newSyntaxError(mismatchedFmt, ch) case ',': return d.consumeToken(comma, 1, 0), nil case ';': return d.consumeToken(semicolon, 1, 0), nil default: return d.parseFieldName() } case ListOpen: // Next token can be ListClose or comma. if isEOF { return Token{}, ErrUnexpectedEOF } switch ch := d.in[0]; ch { case ']': d.popOpenStack() return d.consumeToken(ListClose, 1, 0), nil case ',': return d.consumeToken(comma, 1, 0), nil default: return Token{}, d.newSyntaxError(unexpectedFmt, ch) } } case MessageOpen: // Next token can be MessageClose or Name. if isEOF { return Token{}, ErrUnexpectedEOF } _, closeCh := d.currentOpenKind() switch ch := d.in[0]; ch { case closeCh: d.popOpenStack() return d.consumeToken(MessageClose, 1, 0), nil case otherCloseChar[closeCh]: return Token{}, d.newSyntaxError(mismatchedFmt, ch) default: return d.parseFieldName() } case MessageClose: openKind, closeCh := d.currentOpenKind() switch openKind { case bof: // Top level message. // Next token can be EOF, comma, semicolon or Name. if isEOF { return d.consumeToken(EOF, 0, 0), nil } switch ch := d.in[0]; ch { case ',': return d.consumeToken(comma, 1, 0), nil case ';': return d.consumeToken(semicolon, 1, 0), nil default: return d.parseFieldName() } case MessageOpen: // Next token can be MessageClose, comma, semicolon or Name. if isEOF { return Token{}, ErrUnexpectedEOF } switch ch := d.in[0]; ch { case closeCh: d.popOpenStack() return d.consumeToken(MessageClose, 1, 0), nil case otherCloseChar[closeCh]: return Token{}, d.newSyntaxError(mismatchedFmt, ch) case ',': return d.consumeToken(comma, 1, 0), nil case ';': return d.consumeToken(semicolon, 1, 0), nil default: return d.parseFieldName() } case ListOpen: // Next token can be ListClose or comma if isEOF { return Token{}, ErrUnexpectedEOF } switch ch := d.in[0]; ch { case closeCh: d.popOpenStack() return d.consumeToken(ListClose, 1, 0), nil case ',': return d.consumeToken(comma, 1, 0), nil default: return Token{}, d.newSyntaxError(unexpectedFmt, ch) } } case ListOpen: // Next token can be ListClose, MessageStart or Scalar. if isEOF { return Token{}, ErrUnexpectedEOF } switch ch := d.in[0]; ch { case ']': d.popOpenStack() return d.consumeToken(ListClose, 1, 0), nil case '{', '<': d.pushOpenStack(ch) return d.consumeToken(MessageOpen, 1, 0), nil default: return d.parseScalar() } case ListClose: openKind, closeCh := d.currentOpenKind() switch openKind { case bof: // Top level message. // Next token can be EOF, comma, semicolon or Name. if isEOF { return d.consumeToken(EOF, 0, 0), nil } switch ch := d.in[0]; ch { case ',': return d.consumeToken(comma, 1, 0), nil case ';': return d.consumeToken(semicolon, 1, 0), nil default: return d.parseFieldName() } case MessageOpen: // Next token can be MessageClose, comma, semicolon or Name. if isEOF { return Token{}, ErrUnexpectedEOF } switch ch := d.in[0]; ch { case closeCh: d.popOpenStack() return d.consumeToken(MessageClose, 1, 0), nil case otherCloseChar[closeCh]: return Token{}, d.newSyntaxError(mismatchedFmt, ch) case ',': return d.consumeToken(comma, 1, 0), nil case ';': return d.consumeToken(semicolon, 1, 0), nil default: return d.parseFieldName() } default: // It is not possible to have this case. Let it panic below. } case comma, semicolon: openKind, closeCh := d.currentOpenKind() switch openKind { case bof: // Top level message. Next token can be EOF or Name. if isEOF { return d.consumeToken(EOF, 0, 0), nil } return d.parseFieldName() case MessageOpen: // Next token can be MessageClose or Name. if isEOF { return Token{}, ErrUnexpectedEOF } switch ch := d.in[0]; ch { case closeCh: d.popOpenStack() return d.consumeToken(MessageClose, 1, 0), nil case otherCloseChar[closeCh]: return Token{}, d.newSyntaxError(mismatchedFmt, ch) default: return d.parseFieldName() } case ListOpen: if lastKind == semicolon { // It is not be possible to have this case as logic here // should not have produced a semicolon Token when inside a // list. Let it panic below. break } // Next token can be MessageOpen or Scalar. if isEOF { return Token{}, ErrUnexpectedEOF } switch ch := d.in[0]; ch { case '{', '<': d.pushOpenStack(ch) return d.consumeToken(MessageOpen, 1, 0), nil default: return d.parseScalar() } } } line, column := d.Position(len(d.orig) - len(d.in)) panic(fmt.Sprintf("Decoder.parseNext: bug at handling line %d:%d with lastKind=%v", line, column, lastKind)) } var otherCloseChar = map[byte]byte{ '}': '>', '>': '}', } // currentOpenKind indicates whether current position is inside a message, list // or top-level message by returning MessageOpen, ListOpen or bof respectively. // If the returned kind is either a MessageOpen or ListOpen, it also returns the // corresponding closing character. func (d *Decoder) currentOpenKind() (Kind, byte) { if len(d.openStack) == 0 { return bof, 0 } openCh := d.openStack[len(d.openStack)-1] switch openCh { case '{': return MessageOpen, '}' case '<': return MessageOpen, '>' case '[': return ListOpen, ']' } panic(fmt.Sprintf("Decoder: openStack contains invalid byte %s", string(openCh))) } func (d *Decoder) pushOpenStack(ch byte) { d.openStack = append(d.openStack, ch) } func (d *Decoder) popOpenStack() { d.openStack = d.openStack[:len(d.openStack)-1] } // parseFieldName parses field name and separator. func (d *Decoder) parseFieldName() (tok Token, err error) { defer func() { if err == nil && d.tryConsumeChar(':') { tok.attrs |= hasSeparator } }() // Extension or Any type URL. if d.in[0] == '[' { return d.parseTypeName() } // Identifier. if size := parseIdent(d.in, false); size > 0 { return d.consumeToken(Name, size, uint8(IdentName)), nil } // Field number. Identify if input is a valid number that is not negative // and is decimal integer within 32-bit range. if num := parseNumber(d.in); num.size > 0 { if !num.neg && num.kind == numDec { if _, err := strconv.ParseInt(string(d.in[:num.size]), 10, 32); err == nil { return d.consumeToken(Name, num.size, uint8(FieldNumber)), nil } } return Token{}, d.newSyntaxError("invalid field number: %s", d.in[:num.size]) } return Token{}, d.newSyntaxError("invalid field name: %s", errRegexp.Find(d.in)) } // parseTypeName parses Any type URL or extension field name. The name is // enclosed in [ and ] characters. The C++ parser does not handle many legal URL // strings. This implementation is more liberal and allows for the pattern // ^[-_a-zA-Z0-9]+([./][-_a-zA-Z0-9]+)*`). Whitespaces and comments are allowed // in between [ ], '.', '/' and the sub names. func (d *Decoder) parseTypeName() (Token, error) { startPos := len(d.orig) - len(d.in) // Use alias s to advance first in order to use d.in for error handling. // Caller already checks for [ as first character. s := consume(d.in[1:], 0) if len(s) == 0 { return Token{}, ErrUnexpectedEOF } var name []byte for len(s) > 0 && isTypeNameChar(s[0]) { name = append(name, s[0]) s = s[1:] } s = consume(s, 0) var closed bool for len(s) > 0 && !closed { switch { case s[0] == ']': s = s[1:] closed = true case s[0] == '/', s[0] == '.': if len(name) > 0 && (name[len(name)-1] == '/' || name[len(name)-1] == '.') { return Token{}, d.newSyntaxError("invalid type URL/extension field name: %s", d.orig[startPos:len(d.orig)-len(s)+1]) } name = append(name, s[0]) s = s[1:] s = consume(s, 0) for len(s) > 0 && isTypeNameChar(s[0]) { name = append(name, s[0]) s = s[1:] } s = consume(s, 0) default: return Token{}, d.newSyntaxError( "invalid type URL/extension field name: %s", d.orig[startPos:len(d.orig)-len(s)+1]) } } if !closed { return Token{}, ErrUnexpectedEOF } // First character cannot be '.'. Last character cannot be '.' or '/'. size := len(name) if size == 0 || name[0] == '.' || name[size-1] == '.' || name[size-1] == '/' { return Token{}, d.newSyntaxError("invalid type URL/extension field name: %s", d.orig[startPos:len(d.orig)-len(s)]) } d.in = s endPos := len(d.orig) - len(d.in) d.consume(0) return Token{ kind: Name, attrs: uint8(TypeName), pos: startPos, raw: d.orig[startPos:endPos], str: string(name), }, nil } func isTypeNameChar(b byte) bool { return (b == '-' || b == '_' || ('0' <= b && b <= '9') || ('a' <= b && b <= 'z') || ('A' <= b && b <= 'Z')) } func isWhiteSpace(b byte) bool { switch b { case ' ', '\n', '\r', '\t': return true default: return false } } // parseIdent parses an unquoted proto identifier and returns size. // If allowNeg is true, it allows '-' to be the first character in the // identifier. This is used when parsing literal values like -infinity, etc. // Regular expression matches an identifier: `^[_a-zA-Z][_a-zA-Z0-9]*` func parseIdent(input []byte, allowNeg bool) int { var size int s := input if len(s) == 0 { return 0 } if allowNeg && s[0] == '-' { s = s[1:] size++ if len(s) == 0 { return 0 } } switch { case s[0] == '_', 'a' <= s[0] && s[0] <= 'z', 'A' <= s[0] && s[0] <= 'Z': s = s[1:] size++ default: return 0 } for len(s) > 0 && (s[0] == '_' || 'a' <= s[0] && s[0] <= 'z' || 'A' <= s[0] && s[0] <= 'Z' || '0' <= s[0] && s[0] <= '9') { s = s[1:] size++ } if len(s) > 0 && !isDelim(s[0]) { return 0 } return size } // parseScalar parses for a string, literal or number value. func (d *Decoder) parseScalar() (Token, error) { if d.in[0] == '"' || d.in[0] == '\'' { return d.parseStringValue() } if tok, ok := d.parseLiteralValue(); ok { return tok, nil } if tok, ok := d.parseNumberValue(); ok { return tok, nil } return Token{}, d.newSyntaxError("invalid scalar value: %s", errRegexp.Find(d.in)) } // parseLiteralValue parses a literal value. A literal value is used for // bools, special floats and enums. This function simply identifies that the // field value is a literal. func (d *Decoder) parseLiteralValue() (Token, bool) { size := parseIdent(d.in, true) if size == 0 { return Token{}, false } return d.consumeToken(Scalar, size, literalValue), true } // consumeToken constructs a Token for given Kind from d.in and consumes given // size-length from it. func (d *Decoder) consumeToken(kind Kind, size int, attrs uint8) Token { // Important to compute raw and pos before consuming. tok := Token{ kind: kind, attrs: attrs, pos: len(d.orig) - len(d.in), raw: d.in[:size], } d.consume(size) return tok } // newSyntaxError returns a syntax error with line and column information for // current position. func (d *Decoder) newSyntaxError(f string, x ...interface{}) error { e := errors.New(f, x...) line, column := d.Position(len(d.orig) - len(d.in)) return errors.New("syntax error (line %d:%d): %v", line, column, e) } // Position returns line and column number of given index of the original input. // It will panic if index is out of range. func (d *Decoder) Position(idx int) (line int, column int) { b := d.orig[:idx] line = bytes.Count(b, []byte("\n")) + 1 if i := bytes.LastIndexByte(b, '\n'); i >= 0 { b = b[i+1:] } column = utf8.RuneCount(b) + 1 // ignore multi-rune characters return line, column } func (d *Decoder) tryConsumeChar(c byte) bool { if len(d.in) > 0 && d.in[0] == c { d.consume(1) return true } return false } // consume consumes n bytes of input and any subsequent whitespace or comments. func (d *Decoder) consume(n int) { d.in = consume(d.in, n) return } // consume consumes n bytes of input and any subsequent whitespace or comments. func consume(b []byte, n int) []byte { b = b[n:] for len(b) > 0 { switch b[0] { case ' ', '\n', '\r', '\t': b = b[1:] case '#': if i := bytes.IndexByte(b, '\n'); i >= 0 { b = b[i+len("\n"):] } else { b = nil } default: return b } } return b } // Any sequence that looks like a non-delimiter (for error reporting). var errRegexp = regexp.MustCompile(`^([-+._a-zA-Z0-9\/]+|.)`) // isDelim returns true if given byte is a delimiter character. func isDelim(c byte) bool { return !(c == '-' || c == '+' || c == '.' || c == '_' || ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || ('0' <= c && c <= '9')) } golang-google-protobuf-1.27.1/internal/encoding/text/decode_number.go000066400000000000000000000076061411250152500256760ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package text // parseNumberValue parses a number from the input and returns a Token object. func (d *Decoder) parseNumberValue() (Token, bool) { in := d.in num := parseNumber(in) if num.size == 0 { return Token{}, false } numAttrs := num.kind if num.neg { numAttrs |= isNegative } strSize := num.size last := num.size - 1 if num.kind == numFloat && (d.in[last] == 'f' || d.in[last] == 'F') { strSize = last } tok := Token{ kind: Scalar, attrs: numberValue, pos: len(d.orig) - len(d.in), raw: d.in[:num.size], str: string(d.in[:strSize]), numAttrs: numAttrs, } d.consume(num.size) return tok, true } const ( numDec uint8 = (1 << iota) / 2 numHex numOct numFloat ) // number is the result of parsing out a valid number from parseNumber. It // contains data for doing float or integer conversion via the strconv package // in conjunction with the input bytes. type number struct { kind uint8 neg bool size int } // parseNumber constructs a number object from given input. It allows for the // following patterns: // integer: ^-?([1-9][0-9]*|0[xX][0-9a-fA-F]+|0[0-7]*) // float: ^-?((0|[1-9][0-9]*)?([.][0-9]*)?([eE][+-]?[0-9]+)?[fF]?) // It also returns the number of parsed bytes for the given number, 0 if it is // not a number. func parseNumber(input []byte) number { kind := numDec var size int var neg bool s := input if len(s) == 0 { return number{} } // Optional - if s[0] == '-' { neg = true s = s[1:] size++ if len(s) == 0 { return number{} } } // C++ allows for whitespace and comments in between the negative sign and // the rest of the number. This logic currently does not but is consistent // with v1. switch { case s[0] == '0': if len(s) > 1 { switch { case s[1] == 'x' || s[1] == 'X': // Parse as hex number. kind = numHex n := 2 s = s[2:] for len(s) > 0 && (('0' <= s[0] && s[0] <= '9') || ('a' <= s[0] && s[0] <= 'f') || ('A' <= s[0] && s[0] <= 'F')) { s = s[1:] n++ } if n == 2 { return number{} } size += n case '0' <= s[1] && s[1] <= '7': // Parse as octal number. kind = numOct n := 2 s = s[2:] for len(s) > 0 && '0' <= s[0] && s[0] <= '7' { s = s[1:] n++ } size += n } if kind&(numHex|numOct) > 0 { if len(s) > 0 && !isDelim(s[0]) { return number{} } return number{kind: kind, neg: neg, size: size} } } s = s[1:] size++ case '1' <= s[0] && s[0] <= '9': n := 1 s = s[1:] for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { s = s[1:] n++ } size += n case s[0] == '.': // Set kind to numFloat to signify the intent to parse as float. And // that it needs to have other digits after '.'. kind = numFloat default: return number{} } // . followed by 0 or more digits. if len(s) > 0 && s[0] == '.' { n := 1 s = s[1:] // If decimal point was before any digits, it should be followed by // other digits. if len(s) == 0 && kind == numFloat { return number{} } for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { s = s[1:] n++ } size += n kind = numFloat } // e or E followed by an optional - or + and 1 or more digits. if len(s) >= 2 && (s[0] == 'e' || s[0] == 'E') { kind = numFloat s = s[1:] n := 1 if s[0] == '+' || s[0] == '-' { s = s[1:] n++ if len(s) == 0 { return number{} } } for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { s = s[1:] n++ } size += n } // Optional suffix f or F for floats. if len(s) > 0 && (s[0] == 'f' || s[0] == 'F') { kind = numFloat s = s[1:] size++ } // Check that next byte is a delimiter or it is at the end. if len(s) > 0 && !isDelim(s[0]) { return number{} } return number{kind: kind, neg: neg, size: size} } golang-google-protobuf-1.27.1/internal/encoding/text/decode_string.go000066400000000000000000000114631411250152500257100ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package text import ( "bytes" "strconv" "strings" "unicode" "unicode/utf16" "unicode/utf8" "google.golang.org/protobuf/internal/strs" ) // parseStringValue parses string field token. // This differs from parseString since the text format allows // multiple back-to-back string literals where they are semantically treated // as a single large string with all values concatenated. // // E.g., `"foo" "bar" "baz"` => "foobarbaz" func (d *Decoder) parseStringValue() (Token, error) { // Note that the ending quote is sufficient to unambiguously mark the end // of a string. Thus, the text grammar does not require intervening // whitespace or control characters in-between strings. // Thus, the following is valid: // `"foo"'bar'"baz"` => "foobarbaz" in0 := d.in var ss []string for len(d.in) > 0 && (d.in[0] == '"' || d.in[0] == '\'') { s, err := d.parseString() if err != nil { return Token{}, err } ss = append(ss, s) } // d.in already points to the end of the value at this point. return Token{ kind: Scalar, attrs: stringValue, pos: len(d.orig) - len(in0), raw: in0[:len(in0)-len(d.in)], str: strings.Join(ss, ""), }, nil } // parseString parses a string value enclosed in " or '. func (d *Decoder) parseString() (string, error) { in := d.in if len(in) == 0 { return "", ErrUnexpectedEOF } quote := in[0] in = in[1:] i := indexNeedEscapeInBytes(in) in, out := in[i:], in[:i:i] // set cap to prevent mutations for len(in) > 0 { switch r, n := utf8.DecodeRune(in); { case r == utf8.RuneError && n == 1: return "", d.newSyntaxError("invalid UTF-8 detected") case r == 0 || r == '\n': return "", d.newSyntaxError("invalid character %q in string", r) case r == rune(quote): in = in[1:] d.consume(len(d.in) - len(in)) return string(out), nil case r == '\\': if len(in) < 2 { return "", ErrUnexpectedEOF } switch r := in[1]; r { case '"', '\'', '\\', '?': in, out = in[2:], append(out, r) case 'a': in, out = in[2:], append(out, '\a') case 'b': in, out = in[2:], append(out, '\b') case 'n': in, out = in[2:], append(out, '\n') case 'r': in, out = in[2:], append(out, '\r') case 't': in, out = in[2:], append(out, '\t') case 'v': in, out = in[2:], append(out, '\v') case 'f': in, out = in[2:], append(out, '\f') case '0', '1', '2', '3', '4', '5', '6', '7': // One, two, or three octal characters. n := len(in[1:]) - len(bytes.TrimLeft(in[1:], "01234567")) if n > 3 { n = 3 } v, err := strconv.ParseUint(string(in[1:1+n]), 8, 8) if err != nil { return "", d.newSyntaxError("invalid octal escape code %q in string", in[:1+n]) } in, out = in[1+n:], append(out, byte(v)) case 'x': // One or two hexadecimal characters. n := len(in[2:]) - len(bytes.TrimLeft(in[2:], "0123456789abcdefABCDEF")) if n > 2 { n = 2 } v, err := strconv.ParseUint(string(in[2:2+n]), 16, 8) if err != nil { return "", d.newSyntaxError("invalid hex escape code %q in string", in[:2+n]) } in, out = in[2+n:], append(out, byte(v)) case 'u', 'U': // Four or eight hexadecimal characters n := 6 if r == 'U' { n = 10 } if len(in) < n { return "", ErrUnexpectedEOF } v, err := strconv.ParseUint(string(in[2:n]), 16, 32) if utf8.MaxRune < v || err != nil { return "", d.newSyntaxError("invalid Unicode escape code %q in string", in[:n]) } in = in[n:] r := rune(v) if utf16.IsSurrogate(r) { if len(in) < 6 { return "", ErrUnexpectedEOF } v, err := strconv.ParseUint(string(in[2:6]), 16, 16) r = utf16.DecodeRune(r, rune(v)) if in[0] != '\\' || in[1] != 'u' || r == unicode.ReplacementChar || err != nil { return "", d.newSyntaxError("invalid Unicode escape code %q in string", in[:6]) } in = in[6:] } out = append(out, string(r)...) default: return "", d.newSyntaxError("invalid escape code %q in string", in[:2]) } default: i := indexNeedEscapeInBytes(in[n:]) in, out = in[n+i:], append(out, in[:n+i]...) } } return "", ErrUnexpectedEOF } // indexNeedEscapeInString returns the index of the character that needs // escaping. If no characters need escaping, this returns the input length. func indexNeedEscapeInBytes(b []byte) int { return indexNeedEscapeInString(strs.UnsafeString(b)) } // UnmarshalString returns an unescaped string given a textproto string value. // String value needs to contain single or double quotes. This is only used by // internal/encoding/defval package for unmarshaling bytes. func UnmarshalString(s string) (string, error) { d := NewDecoder([]byte(s)) return d.parseString() } golang-google-protobuf-1.27.1/internal/encoding/text/decode_test.go000066400000000000000000001325331411250152500253630ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package text_test import ( "fmt" "math" "strings" "testing" "unicode/utf8" "github.com/google/go-cmp/cmp" "google.golang.org/protobuf/internal/encoding/text" "google.golang.org/protobuf/internal/flags" ) var eofErr = text.ErrUnexpectedEOF.Error() type R struct { // K is expected Kind of the returned Token object from calling Decoder.Read. K text.Kind // E is expected error substring from calling Decoder.Read if set. E string // T contains NT (if K is Name) or ST (if K is Scalar) or nil (others) T interface{} // P is expected Token.Pos if set > 0. P int // RS is expected result from Token.RawString() if not empty. RS string } // NT contains data for checking against a name token. type NT struct { K text.NameKind // Sep is true if name token should have separator character, else false. Sep bool // If K is IdentName or TypeName, invoke corresponding getter and compare against this field. S string // If K is FieldNumber, invoke getter and compare against this field. N int32 } // ST contains data for checking against a scalar token. type ST struct { // checker that is expected to return OK. ok checker // checker that is expected to return not OK. nok checker } // checker provides API for the token wrapper API call types Str, Enum, Bool, // Uint64, Uint32, Int64, Int32, Float64, Float32. type checker interface { // checkOk checks and expects for token API call to return ok and compare // against implementation-stored value. Returns empty string if success, // else returns error message describing the error. checkOk(text.Token) string // checkNok checks and expects for token API call to return not ok. Returns // empty string if success, else returns error message describing the error. checkNok(text.Token) string } type Str struct { val string } func (s Str) checkOk(tok text.Token) string { got, ok := tok.String() if !ok { return fmt.Sprintf("Token.String() returned not OK for token: %v", tok.RawString()) } if got != s.val { return fmt.Sprintf("Token.String() got %q want %q for token: %v", got, s.val, tok.RawString()) } return "" } func (s Str) checkNok(tok text.Token) string { if _, ok := tok.String(); ok { return fmt.Sprintf("Token.String() returned OK for token: %v", tok.RawString()) } return "" } type Enum struct { val string } func (e Enum) checkOk(tok text.Token) string { got, ok := tok.Enum() if !ok { return fmt.Sprintf("Token.Enum() returned not OK for token: %v", tok.RawString()) } if got != e.val { return fmt.Sprintf("Token.Enum() got %q want %q for token: %v", got, e.val, tok.RawString()) } return "" } func (e Enum) checkNok(tok text.Token) string { if _, ok := tok.Enum(); ok { return fmt.Sprintf("Token.Enum() returned OK for token: %v", tok.RawString()) } return "" } type Bool struct { val bool } func (b Bool) checkOk(tok text.Token) string { got, ok := tok.Bool() if !ok { return fmt.Sprintf("Token.Bool() returned not OK for token: %v", tok.RawString()) } if got != b.val { return fmt.Sprintf("Token.Bool() got %v want %v for token: %v", got, b.val, tok.RawString()) } return "" } func (b Bool) checkNok(tok text.Token) string { if _, ok := tok.Bool(); ok { return fmt.Sprintf("Token.Bool() returned OK for token: %v", tok.RawString()) } return "" } type Uint64 struct { val uint64 } func (n Uint64) checkOk(tok text.Token) string { got, ok := tok.Uint64() if !ok { return fmt.Sprintf("Token.Uint64() returned not OK for token: %v", tok.RawString()) } if got != n.val { return fmt.Sprintf("Token.Uint64() got %v want %v for token: %v", got, n.val, tok.RawString()) } return "" } func (n Uint64) checkNok(tok text.Token) string { if _, ok := tok.Uint64(); ok { return fmt.Sprintf("Token.Uint64() returned OK for token: %v", tok.RawString()) } return "" } type Uint32 struct { val uint32 } func (n Uint32) checkOk(tok text.Token) string { got, ok := tok.Uint32() if !ok { return fmt.Sprintf("Token.Uint32() returned not OK for token: %v", tok.RawString()) } if got != n.val { return fmt.Sprintf("Token.Uint32() got %v want %v for token: %v", got, n.val, tok.RawString()) } return "" } func (n Uint32) checkNok(tok text.Token) string { if _, ok := tok.Uint32(); ok { return fmt.Sprintf("Token.Uint32() returned OK for token: %v", tok.RawString()) } return "" } type Int64 struct { val int64 } func (n Int64) checkOk(tok text.Token) string { got, ok := tok.Int64() if !ok { return fmt.Sprintf("Token.Int64() returned not OK for token: %v", tok.RawString()) } if got != n.val { return fmt.Sprintf("Token.Int64() got %v want %v for token: %v", got, n.val, tok.RawString()) } return "" } func (n Int64) checkNok(tok text.Token) string { if _, ok := tok.Int64(); ok { return fmt.Sprintf("Token.Int64() returned OK for token: %v", tok.RawString()) } return "" } type Int32 struct { val int32 } func (n Int32) checkOk(tok text.Token) string { got, ok := tok.Int32() if !ok { return fmt.Sprintf("Token.Int32() returned not OK for token: %v", tok.RawString()) } if got != n.val { return fmt.Sprintf("Token.Int32() got %v want %v for token: %v", got, n.val, tok.RawString()) } return "" } func (n Int32) checkNok(tok text.Token) string { if _, ok := tok.Int32(); ok { return fmt.Sprintf("Token.Int32() returned OK for token: %v", tok.RawString()) } return "" } type Float64 struct { val float64 } func (n Float64) checkOk(tok text.Token) string { got, ok := tok.Float64() if !ok { return fmt.Sprintf("Token.Float64() returned not OK for token: %v", tok.RawString()) } if math.IsNaN(got) && math.IsNaN(n.val) { return "" } if got != n.val { return fmt.Sprintf("Token.Float64() got %v want %v for token: %v", got, n.val, tok.RawString()) } return "" } func (n Float64) checkNok(tok text.Token) string { if _, ok := tok.Float64(); ok { return fmt.Sprintf("Token.Float64() returned OK for token: %v", tok.RawString()) } return "" } type Float32 struct { val float32 } func (n Float32) checkOk(tok text.Token) string { got, ok := tok.Float32() if !ok { return fmt.Sprintf("Token.Float32() returned not OK for token: %v", tok.RawString()) } if math.IsNaN(float64(got)) && math.IsNaN(float64(n.val)) { return "" } if got != n.val { return fmt.Sprintf("Token.Float32() got %v want %v for token: %v", got, n.val, tok.RawString()) } return "" } func (n Float32) checkNok(tok text.Token) string { if _, ok := tok.Float32(); ok { return fmt.Sprintf("Token.Float32() returned OK for token: %v", tok.RawString()) } return "" } func TestDecoder(t *testing.T) { const space = " \n\r\t" tests := []struct { in string // want is a list of expected Tokens returned from calling Decoder.Read. // An item makes the test code invoke Decoder.Read and compare against // R.K and R.E. If R.K is Name, it compares want []R }{ { in: "", want: []R{{K: text.EOF}}, }, { in: "# comment", want: []R{{K: text.EOF}}, }, { in: space + "# comment" + space, want: []R{{K: text.EOF}}, }, { in: space, want: []R{{K: text.EOF, P: len(space)}}, }, { // Calling Read after EOF will keep returning EOF for // succeeding Read calls. in: space, want: []R{ {K: text.EOF}, {K: text.EOF}, {K: text.EOF}, }, }, { // NUL is an invalid whitespace since C++ uses C-strings. in: "\x00", want: []R{{E: "invalid field name: \x00"}}, }, // Field names. { in: "name", want: []R{ {K: text.Name, T: NT{K: text.IdentName, S: "name"}, RS: "name"}, {E: eofErr}, }, }, { in: space + "name:" + space, want: []R{ {K: text.Name, T: NT{K: text.IdentName, Sep: true, S: "name"}}, {E: eofErr}, }, }, { in: space + "name" + space + ":" + space, want: []R{ {K: text.Name, T: NT{K: text.IdentName, Sep: true, S: "name"}}, {E: eofErr}, }, }, { in: "name # comment", want: []R{ {K: text.Name, T: NT{K: text.IdentName, S: "name"}}, {E: eofErr}, }, }, { // Comments only extend until the newline. in: "# comment \nname", want: []R{ {K: text.Name, T: NT{K: text.IdentName, S: "name"}, P: 11}, }, }, { in: "name # comment \n:", want: []R{ {K: text.Name, T: NT{K: text.IdentName, Sep: true, S: "name"}}, }, }, { in: "name123", want: []R{ {K: text.Name, T: NT{K: text.IdentName, S: "name123"}}, }, }, { in: "name_123", want: []R{ {K: text.Name, T: NT{K: text.IdentName, S: "name_123"}}, }, }, { in: "_123", want: []R{ {K: text.Name, T: NT{K: text.IdentName, S: "_123"}}, }, }, { in: ":", want: []R{{E: "syntax error (line 1:1): invalid field name: :"}}, }, { in: "\n\n\n {", want: []R{{E: "syntax error (line 4:2): invalid field name: {"}}, }, { in: "123name", want: []R{{E: "invalid field name: 123name"}}, }, { in: "[type]", want: []R{ {K: text.Name, T: NT{K: text.TypeName, S: "type"}, RS: "[type]"}, }, }, { // V1 allows this syntax. C++ does not, however, C++ also fails if // field is Any and does not contain '/'. in: "[/type]", want: []R{ {K: text.Name, T: NT{K: text.TypeName, S: "/type"}}, }, }, { in: "[.type]", want: []R{{E: "invalid type URL/extension field name: [.type]"}}, }, { in: "[pkg.Foo.extension_field]", want: []R{ {K: text.Name, T: NT{K: text.TypeName, S: "pkg.Foo.extension_field"}}, }, }, { in: "[domain.com/type]", want: []R{ {K: text.Name, T: NT{K: text.TypeName, S: "domain.com/type"}}, }, }, { in: "[domain.com/pkg.type]", want: []R{ {K: text.Name, T: NT{K: text.TypeName, S: "domain.com/pkg.type"}}, }, }, { in: "[sub.domain.com\x2fpath\x2fto\x2fproto.package.name]", want: []R{ { K: text.Name, T: NT{ K: text.TypeName, S: "sub.domain.com/path/to/proto.package.name", }, RS: "[sub.domain.com\x2fpath\x2fto\x2fproto.package.name]", }, }, }, { // V2 no longer allows a quoted string for the Any type URL. in: `["domain.com/pkg.type"]`, want: []R{{E: `invalid type URL/extension field name: ["`}}, }, { // V2 no longer allows a quoted string for the Any type URL. in: `['domain.com/pkg.type']`, want: []R{{E: `invalid type URL/extension field name: ['`}}, }, { in: "[pkg.Foo.extension_field:", want: []R{{E: "invalid type URL/extension field name: [pkg.Foo.extension_field:"}}, }, { // V2 no longer allows whitespace within identifier "word". in: "[proto.packa ge.field]", want: []R{{E: "invalid type URL/extension field name: [proto.packa g"}}, }, { // V2 no longer allows comments within identifier "word". in: "[proto.packa # comment\n ge.field]", want: []R{{E: "invalid type URL/extension field name: [proto.packa # comment\n g"}}, }, { in: "[proto.package.]", want: []R{{E: "invalid type URL/extension field name: [proto.package."}}, }, { in: "[proto.package/]", want: []R{{E: "invalid type URL/extension field name: [proto.package/"}}, }, { in: `message_field{[bad@]`, want: []R{ {K: text.Name}, {K: text.MessageOpen}, {E: `invalid type URL/extension field name: [bad@`}, }, }, { in: `message_field{[invalid//type]`, want: []R{ {K: text.Name}, {K: text.MessageOpen}, {E: `invalid type URL/extension field name: [invalid//`}, }, }, { in: `message_field{[proto.package.]`, want: []R{ {K: text.Name}, {K: text.MessageOpen}, {E: `invalid type URL/extension field name: [proto.package.`}, }, }, { in: "[proto.package", want: []R{{E: eofErr}}, }, { in: "[" + space + "type" + space + "]" + space + ":", want: []R{ { K: text.Name, T: NT{ K: text.TypeName, Sep: true, S: "type", }, RS: "[" + space + "type" + space + "]", }, }, }, { // Whitespaces/comments are only allowed betweeb in: "[" + space + "domain" + space + "." + space + "com # comment\n" + "/" + "pkg" + space + "." + space + "type" + space + "]", want: []R{ {K: text.Name, T: NT{K: text.TypeName, S: "domain.com/pkg.type"}}, }, }, { in: "42", want: []R{ {K: text.Name, T: NT{K: text.FieldNumber, N: 42}}, }, }, { in: "0x42:", want: []R{{E: "invalid field number: 0x42"}}, }, { in: "042:", want: []R{{E: "invalid field number: 042"}}, }, { in: "123.456:", want: []R{{E: "invalid field number: 123.456"}}, }, { in: "-123", want: []R{{E: "invalid field number: -123"}}, }, { // Field number > math.MaxInt32. in: "2147483648:", want: []R{{E: "invalid field number: 2147483648"}}, }, // String field value. More string parsing specific testing in // TestUnmarshalString. { in: `name: "hello world"`, want: []R{ {K: text.Name}, { K: text.Scalar, T: ST{ok: Str{"hello world"}, nok: Enum{}}, RS: `"hello world"`, }, {K: text.EOF}, }, }, { in: `name: 'hello'`, want: []R{ {K: text.Name}, {K: text.Scalar, T: ST{ok: Str{"hello"}}}, }, }, { in: `name: "hello'`, want: []R{ {K: text.Name}, {E: eofErr}, }, }, { in: `name: 'hello`, want: []R{ {K: text.Name}, {E: eofErr}, }, }, { // Field name without separator is ok. prototext package will need // to determine that this is not valid for scalar values. in: space + `name` + space + `"hello"` + space, want: []R{ {K: text.Name}, {K: text.Scalar, T: ST{ok: Str{"hello"}}}, }, }, { in: `name'hello'`, want: []R{ {K: text.Name}, {K: text.Scalar, T: ST{ok: Str{"hello"}}}, }, }, { in: `name: ` + space + `"hello"` + space + `,`, want: []R{ {K: text.Name}, {K: text.Scalar, T: ST{ok: Str{"hello"}}}, {K: text.EOF}, }, }, { in: `name` + space + `:` + `"hello"` + space + `;` + space, want: []R{ {K: text.Name}, {K: text.Scalar, T: ST{ok: Str{"hello"}}}, {K: text.EOF}, }, }, { in: `name:"hello" , ,`, want: []R{ {K: text.Name}, {K: text.Scalar}, {E: "(line 1:16): invalid field name: ,"}, }, }, { in: `name:"hello" , ;`, want: []R{ {K: text.Name}, {K: text.Scalar}, {E: "(line 1:16): invalid field name: ;"}, }, }, { in: `name:"hello" name:'world'`, want: []R{ {K: text.Name}, {K: text.Scalar, T: ST{ok: Str{"hello"}}}, {K: text.Name}, {K: text.Scalar, T: ST{ok: Str{"world"}}}, {K: text.EOF}, }, }, { in: `name:"hello", name:"world"`, want: []R{ {K: text.Name}, {K: text.Scalar, T: ST{ok: Str{"hello"}}}, {K: text.Name}, {K: text.Scalar, T: ST{ok: Str{"world"}}}, {K: text.EOF}, }, }, { in: `name:"hello"; name:"world",`, want: []R{ {K: text.Name}, {K: text.Scalar, T: ST{ok: Str{"hello"}}}, {K: text.Name}, {K: text.Scalar, T: ST{ok: Str{"world"}}}, {K: text.EOF}, }, }, { in: `foo:"hello"bar:"world"`, want: []R{ {K: text.Name, T: NT{K: text.IdentName, Sep: true, S: "foo"}}, {K: text.Scalar, T: ST{ok: Str{"hello"}}}, {K: text.Name, T: NT{K: text.IdentName, Sep: true, S: "bar"}}, {K: text.Scalar, T: ST{ok: Str{"world"}}}, {K: text.EOF}, }, }, { in: `foo:"hello"[bar]:"world"`, want: []R{ {K: text.Name, T: NT{K: text.IdentName, Sep: true, S: "foo"}}, {K: text.Scalar, T: ST{ok: Str{"hello"}}}, {K: text.Name, T: NT{K: text.TypeName, Sep: true, S: "bar"}}, {K: text.Scalar, T: ST{ok: Str{"world"}}}, {K: text.EOF}, }, }, { in: `name:"foo"` + space + `"bar"` + space + `'qux'`, want: []R{ {K: text.Name, T: NT{K: text.IdentName, Sep: true, S: "name"}}, {K: text.Scalar, T: ST{ok: Str{"foobarqux"}}}, {K: text.EOF}, }, }, { in: `name:"foo"'bar'"qux"`, want: []R{ {K: text.Name, T: NT{K: text.IdentName, Sep: true, S: "name"}}, {K: text.Scalar, T: ST{ok: Str{"foobarqux"}}}, {K: text.EOF}, }, }, { in: `name:"foo"` + space + `"bar" # comment` + "\n'qux' # comment", want: []R{ {K: text.Name, T: NT{K: text.IdentName, Sep: true, S: "name"}}, {K: text.Scalar, T: ST{ok: Str{"foobarqux"}}}, {K: text.EOF}, }, }, // Lists. { in: `name: [`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {E: eofErr}, }, }, { in: `name: []`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.ListClose}, {K: text.EOF}, }, }, { in: `name []`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.ListClose}, {K: text.EOF}, }, }, { in: `name: [,`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {E: `(line 1:8): invalid scalar value: ,`}, }, }, { in: `name: [0`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar}, {E: eofErr}, }, }, { in: `name: [` + space + `"hello"` + space + `]` + space, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Str{"hello"}}, P: len(space) + 7}, {K: text.ListClose}, {K: text.EOF}, }, }, { in: `name: ["hello",]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Str{"hello"}}}, {E: `invalid scalar value: ]`}, }, }, { in: `name: ["foo"` + space + `'bar' "qux"]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Str{"foobarqux"}}}, {K: text.ListClose}, {K: text.EOF}, }, }, { in: `name:` + space + `["foo",` + space + "'bar', # comment\n\n" + `"qux"]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Str{"foo"}}}, {K: text.Scalar, T: ST{ok: Str{"bar"}}}, {K: text.Scalar, T: ST{ok: Str{"qux"}}}, {K: text.ListClose}, {K: text.EOF}, }, }, { // List within list is not allowed. in: `name: [[]]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {E: `syntax error (line 1:8): invalid scalar value: [`}, }, }, { // List items need to be separated by ,. in: `name: ["foo" true]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Str{"foo"}}}, {E: `syntax error (line 1:14): unexpected character 't'`}, }, }, { in: `name: ["foo"; "bar"]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Str{"foo"}}}, {E: `syntax error (line 1:13): unexpected character ';'`}, }, }, { in: `name: ["foo", true, ENUM, 1.0]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Str{"foo"}}}, {K: text.Scalar, T: ST{ok: Enum{"true"}}}, {K: text.Scalar, T: ST{ok: Enum{"ENUM"}}}, {K: text.Scalar, T: ST{ok: Float32{1.0}}}, {K: text.ListClose}, }, }, // Boolean literal values. { in: `name: True`, want: []R{ {K: text.Name}, { K: text.Scalar, T: ST{ok: Bool{true}}, }, {K: text.EOF}, }, }, { in: `name false`, want: []R{ {K: text.Name}, { K: text.Scalar, T: ST{ok: Bool{false}}, }, {K: text.EOF}, }, }, { in: `name: [t, f, True, False, true, false, 1, 0, 0x01, 0x00, 01, 00]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Bool{true}}}, {K: text.Scalar, T: ST{ok: Bool{false}}}, {K: text.Scalar, T: ST{ok: Bool{true}}}, {K: text.Scalar, T: ST{ok: Bool{false}}}, {K: text.Scalar, T: ST{ok: Bool{true}}}, {K: text.Scalar, T: ST{ok: Bool{false}}}, {K: text.Scalar, T: ST{ok: Bool{true}}}, {K: text.Scalar, T: ST{ok: Bool{false}}}, {K: text.Scalar, T: ST{ok: Bool{true}}}, {K: text.Scalar, T: ST{ok: Bool{false}}}, {K: text.Scalar, T: ST{ok: Bool{true}}}, {K: text.Scalar, T: ST{ok: Bool{false}}}, {K: text.ListClose}, }, }, { // Looks like boolean but not. in: `name: [tRUe, falSE, -1, -0, -0x01, -0x00, -01, -00, 0.0]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{nok: Bool{}}}, {K: text.Scalar, T: ST{nok: Bool{}}}, {K: text.Scalar, T: ST{nok: Bool{}}}, {K: text.Scalar, T: ST{nok: Bool{}}}, {K: text.Scalar, T: ST{nok: Bool{}}}, {K: text.Scalar, T: ST{nok: Bool{}}}, {K: text.Scalar, T: ST{nok: Bool{}}}, {K: text.Scalar, T: ST{nok: Bool{}}}, {K: text.Scalar, T: ST{nok: Bool{}}}, {K: text.ListClose}, }, }, { in: `foo: true[bar] false`, want: []R{ {K: text.Name}, {K: text.Scalar, T: ST{ok: Bool{true}}}, {K: text.Name}, {K: text.Scalar, T: ST{ok: Bool{false}}}, }, }, // Enum field values. { in: space + `name: ENUM`, want: []R{ {K: text.Name}, {K: text.Scalar, T: ST{ok: Enum{"ENUM"}}}, }, }, { in: space + `name:[TRUE, FALSE, T, F, t, f]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Enum{"TRUE"}}}, {K: text.Scalar, T: ST{ok: Enum{"FALSE"}}}, {K: text.Scalar, T: ST{ok: Enum{"T"}}}, {K: text.Scalar, T: ST{ok: Enum{"F"}}}, {K: text.Scalar, T: ST{ok: Enum{"t"}}}, {K: text.Scalar, T: ST{ok: Enum{"f"}}}, {K: text.ListClose}, }, }, { in: `foo: Enum1[bar]:Enum2`, want: []R{ {K: text.Name}, {K: text.Scalar, T: ST{ok: Enum{"Enum1"}}}, {K: text.Name}, {K: text.Scalar, T: ST{ok: Enum{"Enum2"}}}, }, }, { // Invalid enum values. in: `name: [-inf, -foo, "string", 42, 1.0, 0x47]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{nok: Enum{}}}, {K: text.Scalar, T: ST{nok: Enum{}}}, {K: text.Scalar, T: ST{nok: Enum{}}}, {K: text.Scalar, T: ST{nok: Enum{}}}, {K: text.Scalar, T: ST{nok: Enum{}}}, {K: text.Scalar, T: ST{nok: Enum{}}}, {K: text.ListClose}, }, }, { in: `name: true.`, want: []R{ {K: text.Name}, {E: `invalid scalar value: true.`}, }, }, // Numeric values. { in: `nums:42 nums:0x2A nums:052`, want: []R{ {K: text.Name}, {K: text.Scalar, T: ST{ok: Uint64{42}}}, {K: text.Name}, {K: text.Scalar, T: ST{ok: Uint64{42}}}, {K: text.Name}, {K: text.Scalar, T: ST{ok: Uint64{42}}}, }, }, { in: `nums:[-42, -0x2a, -052]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{nok: Uint64{}}}, {K: text.Scalar, T: ST{nok: Uint64{}}}, {K: text.Scalar, T: ST{nok: Uint64{}}}, {K: text.ListClose}, }, }, { in: `nums:[-42, -0x2a, -052]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Int64{-42}}}, {K: text.Scalar, T: ST{ok: Int64{-42}}}, {K: text.Scalar, T: ST{ok: Int64{-42}}}, {K: text.ListClose}, }, }, { in: `nums: [0,0x0,00,-9876543210,9876543210,0x0123456789abcdef,-0x0123456789abcdef,01234567,-01234567]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Uint64{0}}}, {K: text.Scalar, T: ST{ok: Int64{0}}}, {K: text.Scalar, T: ST{ok: Uint64{0}}}, {K: text.Scalar, T: ST{ok: Int64{-9876543210}}}, {K: text.Scalar, T: ST{ok: Uint64{9876543210}}}, {K: text.Scalar, T: ST{ok: Uint64{0x0123456789abcdef}}}, {K: text.Scalar, T: ST{ok: Int64{-0x0123456789abcdef}}}, {K: text.Scalar, T: ST{ok: Uint64{01234567}}}, {K: text.Scalar, T: ST{ok: Int64{-01234567}}}, {K: text.ListClose}, }, }, { in: `nums: [0,0x0,00,-876543210,876543210,0x01234,-0x01234,01234567,-01234567]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Uint32{0}}}, {K: text.Scalar, T: ST{ok: Int32{0}}}, {K: text.Scalar, T: ST{ok: Uint32{0}}}, {K: text.Scalar, T: ST{ok: Int32{-876543210}}}, {K: text.Scalar, T: ST{ok: Uint32{876543210}}}, {K: text.Scalar, T: ST{ok: Uint32{0x01234}}}, {K: text.Scalar, T: ST{ok: Int32{-0x01234}}}, {K: text.Scalar, T: ST{ok: Uint32{01234567}}}, {K: text.Scalar, T: ST{ok: Int32{-01234567}}}, {K: text.ListClose}, }, }, { in: `nums: [` + fmt.Sprintf("%d", uint64(math.MaxUint64)) + `,` + fmt.Sprintf("%d", uint32(math.MaxUint32)) + `,` + fmt.Sprintf("%d", int64(math.MaxInt64)) + `,` + fmt.Sprintf("%d", int64(math.MinInt64)) + `,` + fmt.Sprintf("%d", int32(math.MaxInt32)) + `,` + fmt.Sprintf("%d", int32(math.MinInt32)) + `]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Uint64{math.MaxUint64}}}, {K: text.Scalar, T: ST{ok: Uint32{math.MaxUint32}}}, {K: text.Scalar, T: ST{ok: Int64{math.MaxInt64}}}, {K: text.Scalar, T: ST{ok: Int64{math.MinInt64}}}, {K: text.Scalar, T: ST{ok: Int32{math.MaxInt32}}}, {K: text.Scalar, T: ST{ok: Int32{math.MinInt32}}}, {K: text.ListClose}, }, }, { // Integer exceeds range. in: `nums: [` + `18446744073709551616,` + // max uint64 + 1 fmt.Sprintf("%d", uint64(math.MaxUint32+1)) + `,` + fmt.Sprintf("%d", uint64(math.MaxInt64+1)) + `,` + `-9223372036854775809,` + // min int64 - 1 fmt.Sprintf("%d", uint64(math.MaxInt32+1)) + `,` + fmt.Sprintf("%d", int64(math.MinInt32-1)) + `` + `]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{nok: Uint64{}}}, {K: text.Scalar, T: ST{nok: Uint32{}}}, {K: text.Scalar, T: ST{nok: Int64{}}}, {K: text.Scalar, T: ST{nok: Int64{}}}, {K: text.Scalar, T: ST{nok: Int32{}}}, {K: text.Scalar, T: ST{nok: Int32{}}}, {K: text.ListClose}, }, }, { in: `nums: [0xbeefbeef, 0xbeefbeefbeefbeef]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, { K: text.Scalar, T: func() ST { if flags.ProtoLegacy { return ST{ok: Int32{-1091584273}} } return ST{nok: Int32{}} }(), }, { K: text.Scalar, T: func() ST { if flags.ProtoLegacy { return ST{ok: Int64{-4688318750159552785}} } return ST{nok: Int64{}} }(), }, {K: text.ListClose}, }, }, { in: `nums: [0.,0f,1f,10f,-0f,-1f,-10f,1.0,0.1e-3,1.5e+5,1e10,.0]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Float64{0.0}}}, {K: text.Scalar, T: ST{ok: Float64{0.0}}}, {K: text.Scalar, T: ST{ok: Float64{1.0}}}, {K: text.Scalar, T: ST{ok: Float64{10.0}}}, {K: text.Scalar, T: ST{ok: Float64{-0.0}}}, {K: text.Scalar, T: ST{ok: Float64{-1.0}}}, {K: text.Scalar, T: ST{ok: Float64{-10.0}}}, {K: text.Scalar, T: ST{ok: Float64{1.0}}}, {K: text.Scalar, T: ST{ok: Float64{0.1e-3}}}, {K: text.Scalar, T: ST{ok: Float64{1.5e+5}}}, {K: text.Scalar, T: ST{ok: Float64{1.0e+10}}}, {K: text.Scalar, T: ST{ok: Float64{0.0}}}, {K: text.ListClose}, }, }, { in: `nums: [0.,0f,1f,10f,-0f,-1f,-10f,1.0,0.1e-3,1.5e+5,1e10,.0]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Float32{0.0}}}, {K: text.Scalar, T: ST{ok: Float32{0.0}}}, {K: text.Scalar, T: ST{ok: Float32{1.0}}}, {K: text.Scalar, T: ST{ok: Float32{10.0}}}, {K: text.Scalar, T: ST{ok: Float32{-0.0}}}, {K: text.Scalar, T: ST{ok: Float32{-1.0}}}, {K: text.Scalar, T: ST{ok: Float32{-10.0}}}, {K: text.Scalar, T: ST{ok: Float32{1.0}}}, {K: text.Scalar, T: ST{ok: Float32{0.1e-3}}}, {K: text.Scalar, T: ST{ok: Float32{1.5e+5}}}, {K: text.Scalar, T: ST{ok: Float32{1.0e+10}}}, {K: text.Scalar, T: ST{ok: Float32{0.0}}}, {K: text.ListClose}, }, }, { in: `nums: [0.,1f,10F,1e1,1.10]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{nok: Int64{}}}, {K: text.Scalar, T: ST{nok: Int64{}}}, {K: text.Scalar, T: ST{nok: Int64{}}}, {K: text.Scalar, T: ST{nok: Int64{}}}, {K: text.Scalar, T: ST{nok: Int64{}}}, {K: text.ListClose}, }, }, { in: `nums: [0.,1f,10F,1e1,1.10]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{nok: Int32{}}}, {K: text.Scalar, T: ST{nok: Int32{}}}, {K: text.Scalar, T: ST{nok: Int32{}}}, {K: text.Scalar, T: ST{nok: Int32{}}}, {K: text.Scalar, T: ST{nok: Int32{}}}, {K: text.ListClose}, }, }, { in: `nums: [0.,1f,10F,1e1,1.10]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{nok: Uint64{}}}, {K: text.Scalar, T: ST{nok: Uint64{}}}, {K: text.Scalar, T: ST{nok: Uint64{}}}, {K: text.Scalar, T: ST{nok: Uint64{}}}, {K: text.Scalar, T: ST{nok: Uint64{}}}, {K: text.ListClose}, }, }, { in: `nums: [0.,1f,10F,1e1,1.10]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{nok: Uint32{}}}, {K: text.Scalar, T: ST{nok: Uint32{}}}, {K: text.Scalar, T: ST{nok: Uint32{}}}, {K: text.Scalar, T: ST{nok: Uint32{}}}, {K: text.Scalar, T: ST{nok: Uint32{}}}, {K: text.ListClose}, }, }, { in: `nums: [` + fmt.Sprintf("%g", math.MaxFloat32) + `,` + fmt.Sprintf("%g", -math.MaxFloat32) + `,` + fmt.Sprintf("%g", math.MaxFloat32*2) + `,` + fmt.Sprintf("%g", -math.MaxFloat32*2) + `,` + `3.59539e+308,` + // math.MaxFloat64 * 2 `-3.59539e+308,` + // -math.MaxFloat64 * 2 fmt.Sprintf("%d000", uint64(math.MaxUint64)) + `]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Float32{float32(math.MaxFloat32)}}}, {K: text.Scalar, T: ST{ok: Float32{float32(-math.MaxFloat32)}}}, {K: text.Scalar, T: ST{ok: Float32{float32(math.Inf(1))}}}, {K: text.Scalar, T: ST{ok: Float32{float32(math.Inf(-1))}}}, {K: text.Scalar, T: ST{ok: Float32{float32(math.Inf(1))}}}, {K: text.Scalar, T: ST{ok: Float32{float32(math.Inf(-1))}}}, {K: text.Scalar, T: ST{ok: Float32{float32(math.MaxUint64) * 1000}}}, {K: text.ListClose}, }, }, { in: `nums: [` + fmt.Sprintf("%g", math.MaxFloat64) + `,` + fmt.Sprintf("%g", -math.MaxFloat64) + `,` + `3.59539e+308,` + // math.MaxFloat64 * 2 `-3.59539e+308,` + // -math.MaxFloat64 * 2 fmt.Sprintf("%d000", uint64(math.MaxUint64)) + `]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Float64{math.MaxFloat64}}}, {K: text.Scalar, T: ST{ok: Float64{-math.MaxFloat64}}}, {K: text.Scalar, T: ST{ok: Float64{math.Inf(1)}}}, {K: text.Scalar, T: ST{ok: Float64{math.Inf(-1)}}}, {K: text.Scalar, T: ST{ok: Float64{float64(math.MaxUint64) * 1000}}}, {K: text.ListClose}, }, }, { // -0 is only valid for signed types. It is not valid for unsigned types. in: `num: [-0, -0]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{nok: Uint32{}}}, {K: text.Scalar, T: ST{nok: Uint64{}}}, {K: text.ListClose}, }, }, { // -0 is only valid for signed types. It is not valid for unsigned types. in: `num: [-0, -0]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Int32{0}}}, {K: text.Scalar, T: ST{ok: Int64{0}}}, {K: text.ListClose}, }, }, { // Negative zeros on float64 should preserve sign bit. in: `num: [-0, -.0]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Float64{math.Copysign(0, -1)}}}, {K: text.Scalar, T: ST{ok: Float64{math.Copysign(0, -1)}}}, {K: text.ListClose}, }, }, { // Negative zeros on float32 should preserve sign bit. in: `num: [-0, -.0]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Float32{float32(math.Copysign(0, -1))}}}, {K: text.Scalar, T: ST{ok: Float32{float32(math.Copysign(0, -1))}}}, {K: text.ListClose}, }, }, { in: `num: +0`, want: []R{ {K: text.Name}, {E: `invalid scalar value: +`}, }, }, { in: `num: 01.1234`, want: []R{ {K: text.Name}, {E: `invalid scalar value: 01.1234`}, }, }, { in: `num: 0x`, want: []R{ {K: text.Name}, {E: `invalid scalar value: 0x`}, }, }, { in: `num: 0xX`, want: []R{ {K: text.Name}, {E: `invalid scalar value: 0xX`}, }, }, { in: `num: 0800`, want: []R{ {K: text.Name}, {E: `invalid scalar value: 0800`}, }, }, { in: `num: 1.`, want: []R{ {K: text.Name}, {K: text.Scalar, T: ST{ok: Float32{1.0}}}, }, }, { in: `num: -.`, want: []R{ {K: text.Name}, {E: `invalid scalar value: -.`}, }, }, // Float special literal values, case-insensitive match. { in: `name:[nan, NaN, Nan, NAN]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Float64{math.NaN()}}}, {K: text.Scalar, T: ST{ok: Float64{math.NaN()}}}, {K: text.Scalar, T: ST{ok: Float64{math.NaN()}}}, {K: text.Scalar, T: ST{ok: Float64{math.NaN()}}}, {K: text.ListClose}, }, }, { in: `name:[inf, INF, infinity, Infinity, INFinity]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Float64{math.Inf(1)}}}, {K: text.Scalar, T: ST{ok: Float64{math.Inf(1)}}}, {K: text.Scalar, T: ST{ok: Float64{math.Inf(1)}}}, {K: text.Scalar, T: ST{ok: Float64{math.Inf(1)}}}, {K: text.Scalar, T: ST{ok: Float64{math.Inf(1)}}}, {K: text.ListClose}, }, }, { in: `name:[-inf, -INF, -infinity, -Infinity, -INFinity]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Float64{math.Inf(-1)}}}, {K: text.Scalar, T: ST{ok: Float64{math.Inf(-1)}}}, {K: text.Scalar, T: ST{ok: Float64{math.Inf(-1)}}}, {K: text.Scalar, T: ST{ok: Float64{math.Inf(-1)}}}, {K: text.Scalar, T: ST{ok: Float64{math.Inf(-1)}}}, {K: text.ListClose}, }, }, { in: `name:[nan, NaN, Nan, NAN]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Float32{float32(math.NaN())}}}, {K: text.Scalar, T: ST{ok: Float32{float32(math.NaN())}}}, {K: text.Scalar, T: ST{ok: Float32{float32(math.NaN())}}}, {K: text.Scalar, T: ST{ok: Float32{float32(math.NaN())}}}, {K: text.ListClose}, }, }, { in: `name:[inf, INF, infinity, Infinity, INFinity]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Float32{float32(math.Inf(1))}}}, {K: text.Scalar, T: ST{ok: Float32{float32(math.Inf(1))}}}, {K: text.Scalar, T: ST{ok: Float32{float32(math.Inf(1))}}}, {K: text.Scalar, T: ST{ok: Float32{float32(math.Inf(1))}}}, {K: text.Scalar, T: ST{ok: Float32{float32(math.Inf(1))}}}, {K: text.ListClose}, }, }, { in: `name:[-inf, -INF, -infinity, -Infinity, -INFinity]`, want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Float32{float32(math.Inf(-1))}}}, {K: text.Scalar, T: ST{ok: Float32{float32(math.Inf(-1))}}}, {K: text.Scalar, T: ST{ok: Float32{float32(math.Inf(-1))}}}, {K: text.Scalar, T: ST{ok: Float32{float32(math.Inf(-1))}}}, {K: text.Scalar, T: ST{ok: Float32{float32(math.Inf(-1))}}}, {K: text.ListClose}, }, }, { // C++ permits this, but we currently reject this. It is easy to add // if needed. in: `name: -nan`, want: []R{ {K: text.Name}, {K: text.Scalar, T: ST{nok: Float64{}}}, }, }, // Messages. { in: `m: {}`, want: []R{ {K: text.Name}, {K: text.MessageOpen}, {K: text.MessageClose}, {K: text.EOF}, }, }, { in: `m: <>`, want: []R{ {K: text.Name}, {K: text.MessageOpen}, {K: text.MessageClose}, {K: text.EOF}, }, }, { in: space + `m {` + space + "\n# comment\n" + `}` + space, want: []R{ {K: text.Name}, {K: text.MessageOpen}, {K: text.MessageClose}, }, }, { in: `m { foo: < bar: "hello" > }`, want: []R{ {K: text.Name, RS: "m"}, {K: text.MessageOpen}, {K: text.Name, RS: "foo"}, {K: text.MessageOpen}, {K: text.Name, RS: "bar"}, {K: text.Scalar, T: ST{ok: Str{"hello"}}}, {K: text.MessageClose}, {K: text.MessageClose}, }, }, { in: `list [ , {s:"world"} ]`, want: []R{ {K: text.Name, RS: "list"}, {K: text.ListOpen}, {K: text.MessageOpen}, {K: text.Name, RS: "s"}, {K: text.Scalar, T: ST{ok: Str{"hello"}}}, {K: text.MessageClose}, {K: text.MessageOpen}, {K: text.Name, RS: "s"}, {K: text.Scalar, T: ST{ok: Str{"world"}}}, {K: text.MessageClose}, {K: text.ListClose}, {K: text.EOF}, }, }, { in: `m: { >`, want: []R{ {K: text.Name}, {K: text.MessageOpen}, {E: `mismatched close character '>'`}, }, }, { in: `m: , { } ] ; } [qux]: "end" } `, want: []R{ {K: text.Name}, {K: text.MessageOpen}, {K: text.Name, RS: "foo"}, {K: text.Scalar, T: ST{ok: Bool{true}}}, {K: text.Name, RS: "bar"}, {K: text.MessageOpen}, {K: text.Name, RS: "enum"}, {K: text.Scalar, T: ST{ok: Enum{"ENUM"}}}, {K: text.Name, RS: "list"}, {K: text.ListOpen}, {K: text.MessageOpen}, {K: text.MessageClose}, {K: text.MessageOpen}, {K: text.MessageClose}, {K: text.ListClose}, {K: text.MessageClose}, {K: text.Name, RS: "[qux]"}, {K: text.Scalar, T: ST{ok: Str{"end"}}}, {K: text.MessageClose}, {K: text.EOF}, }, }, // Other syntax errors. { in: "x: -", want: []R{ {K: text.Name}, {E: `syntax error (line 1:4): invalid scalar value: -`}, }, }, { in: "x:[\"💩\"x", want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Str{"💩"}}, P: 3}, {E: `syntax error (line 1:7)`}, }, }, { in: "x:\n\n[\"🔥🔥🔥\"x", want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Str{"🔥🔥🔥"}}, P: 5}, {E: `syntax error (line 3:7)`}, }, }, { // multi-rune emojis; could be column:8 in: "x:[\"👍🏻👍🏿\"x", want: []R{ {K: text.Name}, {K: text.ListOpen}, {K: text.Scalar, T: ST{ok: Str{"👍🏻👍🏿"}}, P: 3}, {E: `syntax error (line 1:10)`}, }, }, } for _, tc := range tests { t.Run("", func(t *testing.T) { tc := tc in := []byte(tc.in) dec := text.NewDecoder(in[:len(in):len(in)]) for i, want := range tc.want { peekTok, peekErr := dec.Peek() tok, err := dec.Read() if err != nil { if want.E == "" { errorf(t, tc.in, "Read() got unexpected error: %v", err) } else if !strings.Contains(err.Error(), want.E) { errorf(t, tc.in, "Read() got %q, want %q", err, want.E) } return } if want.E != "" { errorf(t, tc.in, "Read() got nil error, want %q", want.E) return } gotK := tok.Kind() if gotK != want.K { errorf(t, tc.in, "Read() got %v, want %v", gotK, want.K) return } checkToken(t, tok, i, want, tc.in) if !cmp.Equal(tok, peekTok, cmp.Comparer(text.TokenEquals)) { errorf(t, tc.in, "Peek() %+v != Read() token %+v", peekTok, tok) } if err != peekErr { errorf(t, tc.in, "Peek() error %v != Read() error %v", err, peekErr) } } }) } } func checkToken(t *testing.T, tok text.Token, idx int, r R, in string) { // Validate Token.Pos() if R.P is set. if r.P > 0 { got := tok.Pos() if got != r.P { errorf(t, in, "want#%d: Token.Pos() got %v want %v", idx, got, r.P) } } // Validate Token.RawString if R.RS is set. if len(r.RS) > 0 { got := tok.RawString() if got != r.RS { errorf(t, in, "want#%d: Token.RawString() got %v want %v", idx, got, r.P) } } // Skip checking for Token details if r.T is not set. if r.T == nil { return } switch tok.Kind() { case text.Name: want := r.T.(NT) kind := tok.NameKind() if kind != want.K { errorf(t, in, "want#%d: Token.NameKind() got %v want %v", idx, kind, want.K) return } switch kind { case text.IdentName: got := tok.IdentName() if got != want.S { errorf(t, in, "want#%d: Token.IdentName() got %v want %v", idx, got, want.S) } case text.TypeName: got := tok.TypeName() if got != want.S { errorf(t, in, "want#%d: Token.TypeName() got %v want %v", idx, got, want.S) } case text.FieldNumber: got := tok.FieldNumber() if got != want.N { errorf(t, in, "want#%d: Token.FieldNumber() got %v want %v", idx, got, want.N) } } case text.Scalar: want := r.T.(ST) if ok := want.ok; ok != nil { if err := ok.checkOk(tok); err != "" { errorf(t, in, "want#%d: %s", idx, err) } } if nok := want.nok; nok != nil { if err := nok.checkNok(tok); err != "" { errorf(t, in, "want#%d: %s", idx, err) } } } } func errorf(t *testing.T, in string, fmtStr string, args ...interface{}) { t.Helper() vargs := []interface{}{in} for _, arg := range args { vargs = append(vargs, arg) } t.Errorf("input:\n%s\n~end~\n"+fmtStr, vargs...) } func TestUnmarshalString(t *testing.T) { tests := []struct { in string // want is expected string result. want string // err is expected error substring from calling DecodeString if set. err string }{ { in: func() string { var b []byte for i := 0; i < utf8.RuneSelf; i++ { switch i { case 0, '\\', '\n', '\'': // these must be escaped, so ignore them default: b = append(b, byte(i)) } } return "'" + string(b) + "'" }(), want: "\x01\x02\x03\x04\x05\x06\a\b\t\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\"#$%&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~\u007f", }, { in: "'\xde\xad\xbe\xef'", err: `invalid UTF-8 detected`, }, { // Valid UTF-8 wire encoding, but sub-optimal encoding. in: "'\xc0\x80'", err: "invalid UTF-8 detected", }, { // Valid UTF-8 wire encoding, but invalid rune (surrogate pair). in: "'\xed\xa0\x80'", err: "invalid UTF-8 detected", }, { // Valid UTF-8 wire encoding, but invalid rune (above max rune). in: "'\xf7\xbf\xbf\xbf'", err: "invalid UTF-8 detected", }, { // Valid UTF-8 wire encoding of the RuneError rune. in: "'\xef\xbf\xbd'", want: string(utf8.RuneError), }, { in: "'hello\u1234world'", want: "hello\u1234world", }, { in: `'\"\'\\\?\a\b\n\r\t\v\f\1\12\123\xA\xaB\x12\uAb8f\U0010FFFF'`, want: "\"'\\?\a\b\n\r\t\v\f\x01\nS\n\xab\x12\uab8f\U0010ffff", }, { in: `str: '\8'`, err: `invalid escape code "\\8" in string`, }, { in: `'\1x'`, want: "\001x", }, { in: `'\12x'`, want: "\012x", }, { in: `'\123x'`, want: "\123x", }, { in: `'\1234x'`, want: "\1234x", }, { in: `'\1'`, want: "\001", }, { in: `'\12'`, want: "\012", }, { in: `'\123'`, want: "\123", }, { in: `'\1234'`, want: "\1234", }, { in: `'\377'`, want: "\377", }, { // Overflow octal escape. in: `'\400'`, err: `invalid octal escape code "\\400" in string`, }, { in: `'\xfx'`, want: "\x0fx", }, { in: `'\xffx'`, want: "\xffx", }, { in: `'\xfffx'`, want: "\xfffx", }, { in: `'\xf'`, want: "\x0f", }, { in: `'\xff'`, want: "\xff", }, { in: `'\xfff'`, want: "\xfff", }, { in: `'\xz'`, err: `invalid hex escape code "\\x" in string`, }, { in: `'\uPo'`, err: eofErr, }, { in: `'\uPoo'`, err: `invalid Unicode escape code "\\uPoo'" in string`, }, { in: `str: '\uPoop'`, err: `invalid Unicode escape code "\\uPoop" in string`, }, { // Unmatched surrogate pair. in: `str: '\uDEAD'`, err: `unexpected EOF`, // trying to reader other half }, { // Surrogate pair with invalid other half. in: `str: '\uDEAD\u0000'`, err: `invalid Unicode escape code "\\u0000" in string`, }, { // Properly matched surrogate pair. in: `'\uD800\uDEAD'`, want: "𐊭", }, { // Overflow on Unicode rune. in: `'\U00110000'`, err: `invalid Unicode escape code "\\U00110000" in string`, }, { in: `'\z'`, err: `invalid escape code "\\z" in string`, }, { // Strings cannot have NUL literal since C-style strings forbid them. in: "'\x00'", err: `invalid character '\x00' in string`, }, { // Strings cannot have newline literal. The C++ permits them if an // option is specified to allow them. In Go, we always forbid them. in: "'\n'", err: `invalid character '\n' in string`, }, } for _, tc := range tests { t.Run("", func(t *testing.T) { got, err := text.UnmarshalString(tc.in) if err != nil { if tc.err == "" { errorf(t, tc.in, "UnmarshalString() got unexpected error: %q", err) } else if !strings.Contains(err.Error(), tc.err) { errorf(t, tc.in, "UnmarshalString() error got %q, want %q", err, tc.err) } return } if tc.err != "" { errorf(t, tc.in, "UnmarshalString() got nil error, want %q", tc.err) return } if got != tc.want { errorf(t, tc.in, "UnmarshalString()\n[got]\n%s\n[want]\n%s", got, tc.want) } }) } } // Tests line and column number produced by Decoder.Position. func TestPosition(t *testing.T) { dec := text.NewDecoder([]byte("0123456789\n12345\n789")) tests := []struct { pos int row int col int }{ { pos: 0, row: 1, col: 1, }, { pos: 10, row: 1, col: 11, }, { pos: 11, row: 2, col: 1, }, { pos: 18, row: 3, col: 2, }, } for _, tc := range tests { t.Run("", func(t *testing.T) { row, col := dec.Position(tc.pos) if row != tc.row || col != tc.col { t.Errorf("Position(%d) got (%d,%d) want (%d,%d)", tc.pos, row, col, tc.row, tc.col) } }) } } golang-google-protobuf-1.27.1/internal/encoding/text/decode_token.go000066400000000000000000000223601411250152500255200ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package text import ( "bytes" "fmt" "math" "strconv" "strings" "google.golang.org/protobuf/internal/flags" ) // Kind represents a token kind expressible in the textproto format. type Kind uint8 // Kind values. const ( Invalid Kind = iota EOF Name // Name indicates the field name. Scalar // Scalar are scalar values, e.g. "string", 47, ENUM_LITERAL, true. MessageOpen MessageClose ListOpen ListClose // comma and semi-colon are only for parsing in between values and should not be exposed. comma semicolon // bof indicates beginning of file, which is the default token // kind at the beginning of parsing. bof = Invalid ) func (t Kind) String() string { switch t { case Invalid: return "" case EOF: return "eof" case Scalar: return "scalar" case Name: return "name" case MessageOpen: return "{" case MessageClose: return "}" case ListOpen: return "[" case ListClose: return "]" case comma: return "," case semicolon: return ";" default: return fmt.Sprintf("", uint8(t)) } } // NameKind represents different types of field names. type NameKind uint8 // NameKind values. const ( IdentName NameKind = iota + 1 TypeName FieldNumber ) func (t NameKind) String() string { switch t { case IdentName: return "IdentName" case TypeName: return "TypeName" case FieldNumber: return "FieldNumber" default: return fmt.Sprintf("", uint8(t)) } } // Bit mask in Token.attrs to indicate if a Name token is followed by the // separator char ':'. The field name separator char is optional for message // field or repeated message field, but required for all other types. Decoder // simply indicates whether a Name token is followed by separator or not. It is // up to the prototext package to validate. const hasSeparator = 1 << 7 // Scalar value types. const ( numberValue = iota + 1 stringValue literalValue ) // Bit mask in Token.numAttrs to indicate that the number is a negative. const isNegative = 1 << 7 // Token provides a parsed token kind and value. Values are provided by the // different accessor methods. type Token struct { // Kind of the Token object. kind Kind // attrs contains metadata for the following Kinds: // Name: hasSeparator bit and one of NameKind. // Scalar: one of numberValue, stringValue, literalValue. attrs uint8 // numAttrs contains metadata for numberValue: // - highest bit is whether negative or positive. // - lower bits indicate one of numDec, numHex, numOct, numFloat. numAttrs uint8 // pos provides the position of the token in the original input. pos int // raw bytes of the serialized token. // This is a subslice into the original input. raw []byte // str contains parsed string for the following: // - stringValue of Scalar kind // - numberValue of Scalar kind // - TypeName of Name kind str string } // Kind returns the token kind. func (t Token) Kind() Kind { return t.kind } // RawString returns the read value in string. func (t Token) RawString() string { return string(t.raw) } // Pos returns the token position from the input. func (t Token) Pos() int { return t.pos } // NameKind returns IdentName, TypeName or FieldNumber. // It panics if type is not Name. func (t Token) NameKind() NameKind { if t.kind == Name { return NameKind(t.attrs &^ hasSeparator) } panic(fmt.Sprintf("Token is not a Name type: %s", t.kind)) } // HasSeparator returns true if the field name is followed by the separator char // ':', else false. It panics if type is not Name. func (t Token) HasSeparator() bool { if t.kind == Name { return t.attrs&hasSeparator != 0 } panic(fmt.Sprintf("Token is not a Name type: %s", t.kind)) } // IdentName returns the value for IdentName type. func (t Token) IdentName() string { if t.kind == Name && t.attrs&uint8(IdentName) != 0 { return string(t.raw) } panic(fmt.Sprintf("Token is not an IdentName: %s:%s", t.kind, NameKind(t.attrs&^hasSeparator))) } // TypeName returns the value for TypeName type. func (t Token) TypeName() string { if t.kind == Name && t.attrs&uint8(TypeName) != 0 { return t.str } panic(fmt.Sprintf("Token is not a TypeName: %s:%s", t.kind, NameKind(t.attrs&^hasSeparator))) } // FieldNumber returns the value for FieldNumber type. It returns a // non-negative int32 value. Caller will still need to validate for the correct // field number range. func (t Token) FieldNumber() int32 { if t.kind != Name || t.attrs&uint8(FieldNumber) == 0 { panic(fmt.Sprintf("Token is not a FieldNumber: %s:%s", t.kind, NameKind(t.attrs&^hasSeparator))) } // Following should not return an error as it had already been called right // before this Token was constructed. num, _ := strconv.ParseInt(string(t.raw), 10, 32) return int32(num) } // String returns the string value for a Scalar type. func (t Token) String() (string, bool) { if t.kind != Scalar || t.attrs != stringValue { return "", false } return t.str, true } // Enum returns the literal value for a Scalar type for use as enum literals. func (t Token) Enum() (string, bool) { if t.kind != Scalar || t.attrs != literalValue || (len(t.raw) > 0 && t.raw[0] == '-') { return "", false } return string(t.raw), true } // Bool returns the bool value for a Scalar type. func (t Token) Bool() (bool, bool) { if t.kind != Scalar { return false, false } switch t.attrs { case literalValue: if b, ok := boolLits[string(t.raw)]; ok { return b, true } case numberValue: // Unsigned integer representation of 0 or 1 is permitted: 00, 0x0, 01, // 0x1, etc. n, err := strconv.ParseUint(t.str, 0, 64) if err == nil { switch n { case 0: return false, true case 1: return true, true } } } return false, false } // These exact boolean literals are the ones supported in C++. var boolLits = map[string]bool{ "t": true, "true": true, "True": true, "f": false, "false": false, "False": false, } // Uint64 returns the uint64 value for a Scalar type. func (t Token) Uint64() (uint64, bool) { if t.kind != Scalar || t.attrs != numberValue || t.numAttrs&isNegative > 0 || t.numAttrs&numFloat > 0 { return 0, false } n, err := strconv.ParseUint(t.str, 0, 64) if err != nil { return 0, false } return n, true } // Uint32 returns the uint32 value for a Scalar type. func (t Token) Uint32() (uint32, bool) { if t.kind != Scalar || t.attrs != numberValue || t.numAttrs&isNegative > 0 || t.numAttrs&numFloat > 0 { return 0, false } n, err := strconv.ParseUint(t.str, 0, 32) if err != nil { return 0, false } return uint32(n), true } // Int64 returns the int64 value for a Scalar type. func (t Token) Int64() (int64, bool) { if t.kind != Scalar || t.attrs != numberValue || t.numAttrs&numFloat > 0 { return 0, false } if n, err := strconv.ParseInt(t.str, 0, 64); err == nil { return n, true } // C++ accepts large positive hex numbers as negative values. // This feature is here for proto1 backwards compatibility purposes. if flags.ProtoLegacy && (t.numAttrs == numHex) { if n, err := strconv.ParseUint(t.str, 0, 64); err == nil { return int64(n), true } } return 0, false } // Int32 returns the int32 value for a Scalar type. func (t Token) Int32() (int32, bool) { if t.kind != Scalar || t.attrs != numberValue || t.numAttrs&numFloat > 0 { return 0, false } if n, err := strconv.ParseInt(t.str, 0, 32); err == nil { return int32(n), true } // C++ accepts large positive hex numbers as negative values. // This feature is here for proto1 backwards compatibility purposes. if flags.ProtoLegacy && (t.numAttrs == numHex) { if n, err := strconv.ParseUint(t.str, 0, 32); err == nil { return int32(n), true } } return 0, false } // Float64 returns the float64 value for a Scalar type. func (t Token) Float64() (float64, bool) { if t.kind != Scalar { return 0, false } switch t.attrs { case literalValue: if f, ok := floatLits[strings.ToLower(string(t.raw))]; ok { return f, true } case numberValue: n, err := strconv.ParseFloat(t.str, 64) if err == nil { return n, true } nerr := err.(*strconv.NumError) if nerr.Err == strconv.ErrRange { return n, true } } return 0, false } // Float32 returns the float32 value for a Scalar type. func (t Token) Float32() (float32, bool) { if t.kind != Scalar { return 0, false } switch t.attrs { case literalValue: if f, ok := floatLits[strings.ToLower(string(t.raw))]; ok { return float32(f), true } case numberValue: n, err := strconv.ParseFloat(t.str, 64) if err == nil { // Overflows are treated as (-)infinity. return float32(n), true } nerr := err.(*strconv.NumError) if nerr.Err == strconv.ErrRange { return float32(n), true } } return 0, false } // These are the supported float literals which C++ permits case-insensitive // variants of these. var floatLits = map[string]float64{ "nan": math.NaN(), "inf": math.Inf(1), "infinity": math.Inf(1), "-inf": math.Inf(-1), "-infinity": math.Inf(-1), } // TokenEquals returns true if given Tokens are equal, else false. func TokenEquals(x, y Token) bool { return x.kind == y.kind && x.attrs == y.attrs && x.numAttrs == y.numAttrs && x.pos == y.pos && bytes.Equal(x.raw, y.raw) && x.str == y.str } golang-google-protobuf-1.27.1/internal/encoding/text/doc.go000066400000000000000000000026641411250152500236470ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package text implements the text format for protocol buffers. // This package has no semantic understanding for protocol buffers and is only // a parser and composer for the format. // // There is no formal specification for the protobuf text format, as such the // C++ implementation (see google::protobuf::TextFormat) is the reference // implementation of the text format. // // This package is neither a superset nor a subset of the C++ implementation. // This implementation permits a more liberal grammar in some cases to be // backwards compatible with the historical Go implementation. // Future parsings unique to Go should not be added. // Some grammars allowed by the C++ implementation are deliberately // not implemented here because they are considered a bug by the protobuf team // and should not be replicated. // // The Go implementation should implement a sufficient amount of the C++ // grammar such that the default text serialization by C++ can be parsed by Go. // However, just because the C++ parser accepts some input does not mean that // the Go implementation should as well. // // The text format is almost a superset of JSON except: // * message keys are not quoted strings, but identifiers // * the top-level value must be a message without the delimiters package text golang-google-protobuf-1.27.1/internal/encoding/text/encode.go000066400000000000000000000160261411250152500243340ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package text import ( "math" "math/bits" "strconv" "strings" "unicode/utf8" "google.golang.org/protobuf/internal/detrand" "google.golang.org/protobuf/internal/errors" ) // encType represents an encoding type. type encType uint8 const ( _ encType = (1 << iota) / 2 name scalar messageOpen messageClose ) // Encoder provides methods to write out textproto constructs and values. The user is // responsible for producing valid sequences of constructs and values. type Encoder struct { encoderState indent string delims [2]byte outputASCII bool } type encoderState struct { lastType encType indents []byte out []byte } // NewEncoder returns an Encoder. // // If indent is a non-empty string, it causes every entry in a List or Message // to be preceded by the indent and trailed by a newline. // // If delims is not the zero value, it controls the delimiter characters used // for messages (e.g., "{}" vs "<>"). // // If outputASCII is true, strings will be serialized in such a way that // multi-byte UTF-8 sequences are escaped. This property ensures that the // overall output is ASCII (as opposed to UTF-8). func NewEncoder(indent string, delims [2]byte, outputASCII bool) (*Encoder, error) { e := &Encoder{} if len(indent) > 0 { if strings.Trim(indent, " \t") != "" { return nil, errors.New("indent may only be composed of space and tab characters") } e.indent = indent } switch delims { case [2]byte{0, 0}: e.delims = [2]byte{'{', '}'} case [2]byte{'{', '}'}, [2]byte{'<', '>'}: e.delims = delims default: return nil, errors.New("delimiters may only be \"{}\" or \"<>\"") } e.outputASCII = outputASCII return e, nil } // Bytes returns the content of the written bytes. func (e *Encoder) Bytes() []byte { return e.out } // StartMessage writes out the '{' or '<' symbol. func (e *Encoder) StartMessage() { e.prepareNext(messageOpen) e.out = append(e.out, e.delims[0]) } // EndMessage writes out the '}' or '>' symbol. func (e *Encoder) EndMessage() { e.prepareNext(messageClose) e.out = append(e.out, e.delims[1]) } // WriteName writes out the field name and the separator ':'. func (e *Encoder) WriteName(s string) { e.prepareNext(name) e.out = append(e.out, s...) e.out = append(e.out, ':') } // WriteBool writes out the given boolean value. func (e *Encoder) WriteBool(b bool) { if b { e.WriteLiteral("true") } else { e.WriteLiteral("false") } } // WriteString writes out the given string value. func (e *Encoder) WriteString(s string) { e.prepareNext(scalar) e.out = appendString(e.out, s, e.outputASCII) } func appendString(out []byte, in string, outputASCII bool) []byte { out = append(out, '"') i := indexNeedEscapeInString(in) in, out = in[i:], append(out, in[:i]...) for len(in) > 0 { switch r, n := utf8.DecodeRuneInString(in); { case r == utf8.RuneError && n == 1: // We do not report invalid UTF-8 because strings in the text format // are used to represent both the proto string and bytes type. r = rune(in[0]) fallthrough case r < ' ' || r == '"' || r == '\\' || r == 0x7f: out = append(out, '\\') switch r { case '"', '\\': out = append(out, byte(r)) case '\n': out = append(out, 'n') case '\r': out = append(out, 'r') case '\t': out = append(out, 't') default: out = append(out, 'x') out = append(out, "00"[1+(bits.Len32(uint32(r))-1)/4:]...) out = strconv.AppendUint(out, uint64(r), 16) } in = in[n:] case r >= utf8.RuneSelf && (outputASCII || r <= 0x009f): out = append(out, '\\') if r <= math.MaxUint16 { out = append(out, 'u') out = append(out, "0000"[1+(bits.Len32(uint32(r))-1)/4:]...) out = strconv.AppendUint(out, uint64(r), 16) } else { out = append(out, 'U') out = append(out, "00000000"[1+(bits.Len32(uint32(r))-1)/4:]...) out = strconv.AppendUint(out, uint64(r), 16) } in = in[n:] default: i := indexNeedEscapeInString(in[n:]) in, out = in[n+i:], append(out, in[:n+i]...) } } out = append(out, '"') return out } // indexNeedEscapeInString returns the index of the character that needs // escaping. If no characters need escaping, this returns the input length. func indexNeedEscapeInString(s string) int { for i := 0; i < len(s); i++ { if c := s[i]; c < ' ' || c == '"' || c == '\'' || c == '\\' || c >= 0x7f { return i } } return len(s) } // WriteFloat writes out the given float value for given bitSize. func (e *Encoder) WriteFloat(n float64, bitSize int) { e.prepareNext(scalar) e.out = appendFloat(e.out, n, bitSize) } func appendFloat(out []byte, n float64, bitSize int) []byte { switch { case math.IsNaN(n): return append(out, "nan"...) case math.IsInf(n, +1): return append(out, "inf"...) case math.IsInf(n, -1): return append(out, "-inf"...) default: return strconv.AppendFloat(out, n, 'g', -1, bitSize) } } // WriteInt writes out the given signed integer value. func (e *Encoder) WriteInt(n int64) { e.prepareNext(scalar) e.out = append(e.out, strconv.FormatInt(n, 10)...) } // WriteUint writes out the given unsigned integer value. func (e *Encoder) WriteUint(n uint64) { e.prepareNext(scalar) e.out = append(e.out, strconv.FormatUint(n, 10)...) } // WriteLiteral writes out the given string as a literal value without quotes. // This is used for writing enum literal strings. func (e *Encoder) WriteLiteral(s string) { e.prepareNext(scalar) e.out = append(e.out, s...) } // prepareNext adds possible space and indentation for the next value based // on last encType and indent option. It also updates e.lastType to next. func (e *Encoder) prepareNext(next encType) { defer func() { e.lastType = next }() // Single line. if len(e.indent) == 0 { // Add space after each field before the next one. if e.lastType&(scalar|messageClose) != 0 && next == name { e.out = append(e.out, ' ') // Add a random extra space to make output unstable. if detrand.Bool() { e.out = append(e.out, ' ') } } return } // Multi-line. switch { case e.lastType == name: e.out = append(e.out, ' ') // Add a random extra space after name: to make output unstable. if detrand.Bool() { e.out = append(e.out, ' ') } case e.lastType == messageOpen && next != messageClose: e.indents = append(e.indents, e.indent...) e.out = append(e.out, '\n') e.out = append(e.out, e.indents...) case e.lastType&(scalar|messageClose) != 0: if next == messageClose { e.indents = e.indents[:len(e.indents)-len(e.indent)] } e.out = append(e.out, '\n') e.out = append(e.out, e.indents...) } } // Snapshot returns the current snapshot for use in Reset. func (e *Encoder) Snapshot() encoderState { return e.encoderState } // Reset resets the Encoder to the given encoderState from a Snapshot. func (e *Encoder) Reset(es encoderState) { e.encoderState = es } // AppendString appends the escaped form of the input string to b. func AppendString(b []byte, s string) []byte { return appendString(b, s, false) } golang-google-protobuf-1.27.1/internal/encoding/text/encode_test.go000066400000000000000000000316701411250152500253750ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package text_test import ( "math" "strings" "testing" "unicode/utf8" "github.com/google/go-cmp/cmp" "google.golang.org/protobuf/internal/detrand" "google.golang.org/protobuf/internal/encoding/text" ) // Disable detrand to enable direct comparisons on outputs. func init() { detrand.Disable() } func TestEncoder(t *testing.T) { tests := []encoderTestCase{ { desc: "no-opt", write: func(e *text.Encoder) {}, wantOut: ``, wantOutIndent: ``, }, { desc: "true", write: func(e *text.Encoder) { e.WriteName("bool") e.WriteBool(true) }, wantOut: `bool:true`, wantOutIndent: `bool: true`, }, { desc: "false", write: func(e *text.Encoder) { e.WriteName("bool") e.WriteBool(false) }, wantOut: `bool:false`, wantOutIndent: `bool: false`, }, { desc: "bracket name", write: func(e *text.Encoder) { e.WriteName("[extension]") e.WriteString("hello") }, wantOut: `[extension]:"hello"`, wantOutIndent: `[extension]: "hello"`, }, { desc: "numeric name", write: func(e *text.Encoder) { e.WriteName("01234") e.WriteString("hello") }, wantOut: `01234:"hello"`, wantOutIndent: `01234: "hello"`, }, { desc: "string", write: func(e *text.Encoder) { e.WriteName("str") e.WriteString("hello world") }, wantOut: `str:"hello world"`, wantOutIndent: `str: "hello world"`, }, { desc: "enum", write: func(e *text.Encoder) { e.WriteName("enum") e.WriteLiteral("ENUM_VALUE") }, wantOut: `enum:ENUM_VALUE`, wantOutIndent: `enum: ENUM_VALUE`, }, { desc: "float64", write: func(e *text.Encoder) { e.WriteName("float64") e.WriteFloat(1.0199999809265137, 64) }, wantOut: `float64:1.0199999809265137`, wantOutIndent: `float64: 1.0199999809265137`, }, { desc: "float64 max value", write: func(e *text.Encoder) { e.WriteName("float64") e.WriteFloat(math.MaxFloat64, 64) }, wantOut: `float64:1.7976931348623157e+308`, wantOutIndent: `float64: 1.7976931348623157e+308`, }, { desc: "float64 min value", write: func(e *text.Encoder) { e.WriteName("float64") e.WriteFloat(-math.MaxFloat64, 64) }, wantOut: `float64:-1.7976931348623157e+308`, wantOutIndent: `float64: -1.7976931348623157e+308`, }, { desc: "float64 nan", write: func(e *text.Encoder) { e.WriteName("float64") e.WriteFloat(math.NaN(), 64) }, wantOut: `float64:nan`, wantOutIndent: `float64: nan`, }, { desc: "float64 inf", write: func(e *text.Encoder) { e.WriteName("float64") e.WriteFloat(math.Inf(+1), 64) }, wantOut: `float64:inf`, wantOutIndent: `float64: inf`, }, { desc: "float64 -inf", write: func(e *text.Encoder) { e.WriteName("float64") e.WriteFloat(math.Inf(-1), 64) }, wantOut: `float64:-inf`, wantOutIndent: `float64: -inf`, }, { desc: "float64 negative zero", write: func(e *text.Encoder) { e.WriteName("float64") e.WriteFloat(math.Copysign(0, -1), 64) }, wantOut: `float64:-0`, wantOutIndent: `float64: -0`, }, { desc: "float32", write: func(e *text.Encoder) { e.WriteName("float") e.WriteFloat(1.02, 32) }, wantOut: `float:1.02`, wantOutIndent: `float: 1.02`, }, { desc: "float32 max value", write: func(e *text.Encoder) { e.WriteName("float32") e.WriteFloat(math.MaxFloat32, 32) }, wantOut: `float32:3.4028235e+38`, wantOutIndent: `float32: 3.4028235e+38`, }, { desc: "float32 nan", write: func(e *text.Encoder) { e.WriteName("float32") e.WriteFloat(math.NaN(), 32) }, wantOut: `float32:nan`, wantOutIndent: `float32: nan`, }, { desc: "float32 inf", write: func(e *text.Encoder) { e.WriteName("float32") e.WriteFloat(math.Inf(+1), 32) }, wantOut: `float32:inf`, wantOutIndent: `float32: inf`, }, { desc: "float32 -inf", write: func(e *text.Encoder) { e.WriteName("float32") e.WriteFloat(math.Inf(-1), 32) }, wantOut: `float32:-inf`, wantOutIndent: `float32: -inf`, }, { desc: "float32 negative zero", write: func(e *text.Encoder) { e.WriteName("float32") e.WriteFloat(math.Copysign(0, -1), 32) }, wantOut: `float32:-0`, wantOutIndent: `float32: -0`, }, { desc: "int64 max value", write: func(e *text.Encoder) { e.WriteName("int") e.WriteInt(math.MaxInt64) }, wantOut: `int:9223372036854775807`, wantOutIndent: `int: 9223372036854775807`, }, { desc: "int64 min value", write: func(e *text.Encoder) { e.WriteName("int") e.WriteInt(math.MinInt64) }, wantOut: `int:-9223372036854775808`, wantOutIndent: `int: -9223372036854775808`, }, { desc: "uint", write: func(e *text.Encoder) { e.WriteName("uint") e.WriteUint(math.MaxUint64) }, wantOut: `uint:18446744073709551615`, wantOutIndent: `uint: 18446744073709551615`, }, { desc: "empty message field", write: func(e *text.Encoder) { e.WriteName("m") e.StartMessage() e.EndMessage() }, wantOut: `m:{}`, wantOutIndent: `m: {}`, }, { desc: "multiple fields", write: func(e *text.Encoder) { e.WriteName("bool") e.WriteBool(true) e.WriteName("str") e.WriteString("hello") e.WriteName("str") e.WriteString("world") e.WriteName("m") e.StartMessage() e.EndMessage() e.WriteName("[int]") e.WriteInt(49) e.WriteName("float64") e.WriteFloat(1.00023e4, 64) e.WriteName("101") e.WriteString("unknown") }, wantOut: `bool:true str:"hello" str:"world" m:{} [int]:49 float64:10002.3 101:"unknown"`, wantOutIndent: `bool: true str: "hello" str: "world" m: {} [int]: 49 float64: 10002.3 101: "unknown"`, }, { desc: "populated message fields", write: func(e *text.Encoder) { e.WriteName("m1") e.StartMessage() { e.WriteName("str") e.WriteString("hello") } e.EndMessage() e.WriteName("bool") e.WriteBool(true) e.WriteName("m2") e.StartMessage() { e.WriteName("str") e.WriteString("world") e.WriteName("m2-1") e.StartMessage() e.EndMessage() e.WriteName("m2-2") e.StartMessage() { e.WriteName("[int]") e.WriteInt(49) } e.EndMessage() e.WriteName("float64") e.WriteFloat(1.00023e4, 64) } e.EndMessage() e.WriteName("101") e.WriteString("unknown") }, wantOut: `m1:{str:"hello"} bool:true m2:{str:"world" m2-1:{} m2-2:{[int]:49} float64:10002.3} 101:"unknown"`, wantOutIndent: `m1: { str: "hello" } bool: true m2: { str: "world" m2-1: {} m2-2: { [int]: 49 } float64: 10002.3 } 101: "unknown"`, }, } for _, tc := range tests { t.Run(tc.desc, func(t *testing.T) { runEncoderTest(t, tc, [2]byte{}) // Test using the angle brackets. // Testcases should not contain characters '{' and '}'. tc.wantOut = replaceDelims(tc.wantOut) tc.wantOutIndent = replaceDelims(tc.wantOutIndent) runEncoderTest(t, tc, [2]byte{'<', '>'}) }) } } type encoderTestCase struct { desc string write func(*text.Encoder) wantOut string wantOutIndent string } func runEncoderTest(t *testing.T, tc encoderTestCase, delims [2]byte) { t.Helper() if tc.wantOut != "" { enc, err := text.NewEncoder("", delims, false) if err != nil { t.Fatalf("NewEncoder returned error: %v", err) } tc.write(enc) got := string(enc.Bytes()) if got != tc.wantOut { t.Errorf("(compact)\n\n%v\n\n%v\n", got, tc.wantOut) } } if tc.wantOutIndent != "" { enc, err := text.NewEncoder("\t", delims, false) if err != nil { t.Fatalf("NewEncoder returned error: %v", err) } tc.write(enc) got, want := string(enc.Bytes()), tc.wantOutIndent if got != want { t.Errorf("(multi-line)\n\n%v\n\n%v\n\n%v\n", got, want, cmp.Diff(want, got)) } } } func replaceDelims(s string) string { s = strings.Replace(s, "{", "<", -1) return strings.Replace(s, "}", ">", -1) } // Test for UTF-8 and ASCII outputs. func TestEncodeStrings(t *testing.T) { tests := []struct { in string wantOut string wantOutASCII string }{ { in: `"`, wantOut: `"\""`, }, { in: `'`, wantOut: `"'"`, }, { in: "hello\u1234world", wantOut: "\"hello\u1234world\"", wantOutASCII: `"hello\u1234world"`, }, { // String that has as few escaped characters as possible. in: func() string { var b []byte for i := rune(0); i <= 0x00a0; i++ { switch i { case 0, '\\', '\n', '\'': // these must be escaped, so ignore them default: var r [utf8.UTFMax]byte n := utf8.EncodeRune(r[:], i) b = append(b, r[:n]...) } } return string(b) }(), wantOut: `"\x01\x02\x03\x04\x05\x06\x07\x08\t\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\"#$%&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_` + "`" + `abcdefghijklmnopqrstuvwxyz{|}~\x7f\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087\u0088\u0089\u008a\u008b\u008c\u008d\u008e\u008f\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097\u0098\u0099\u009a\u009b\u009c\u009d\u009e\u009f` + "\u00a0" + `"`, wantOutASCII: `"\x01\x02\x03\x04\x05\x06\x07\x08\t\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\"#$%&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_` + "`" + `abcdefghijklmnopqrstuvwxyz{|}~\x7f\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087\u0088\u0089\u008a\u008b\u008c\u008d\u008e\u008f\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097\u0098\u0099\u009a\u009b\u009c\u009d\u009e\u009f\u00a0"`, }, { // Valid UTF-8 wire encoding of the RuneError rune. in: string(utf8.RuneError), wantOut: `"` + string(utf8.RuneError) + `"`, wantOutASCII: `"\ufffd"`, }, { in: "\"'\\?\a\b\n\r\t\v\f\x01\nS\n\xab\x12\uab8f\U0010ffff", wantOut: `"\"'\\?\x07\x08\n\r\t\x0b\x0c\x01\nS\n\xab\x12` + "\uab8f\U0010ffff" + `"`, wantOutASCII: `"\"'\\?\x07\x08\n\r\t\x0b\x0c\x01\nS\n\xab\x12\uab8f\U0010ffff"`, }, { in: "\001x", wantOut: `"\x01x"`, wantOutASCII: `"\x01x"`, }, { in: "\012x", wantOut: `"\nx"`, wantOutASCII: `"\nx"`, }, { in: "\123x", wantOut: `"Sx"`, wantOutASCII: `"Sx"`, }, { in: "\1234x", wantOut: `"S4x"`, wantOutASCII: `"S4x"`, }, { in: "\001", wantOut: `"\x01"`, wantOutASCII: `"\x01"`, }, { in: "\012", wantOut: `"\n"`, wantOutASCII: `"\n"`, }, { in: "\123", wantOut: `"S"`, wantOutASCII: `"S"`, }, { in: "\1234", wantOut: `"S4"`, wantOutASCII: `"S4"`, }, { in: "\377", wantOut: `"\xff"`, wantOutASCII: `"\xff"`, }, { in: "\x0fx", wantOut: `"\x0fx"`, wantOutASCII: `"\x0fx"`, }, { in: "\xffx", wantOut: `"\xffx"`, wantOutASCII: `"\xffx"`, }, { in: "\xfffx", wantOut: `"\xfffx"`, wantOutASCII: `"\xfffx"`, }, { in: "\x0f", wantOut: `"\x0f"`, wantOutASCII: `"\x0f"`, }, { in: "\x7f", wantOut: `"\x7f"`, wantOutASCII: `"\x7f"`, }, { in: "\xff", wantOut: `"\xff"`, wantOutASCII: `"\xff"`, }, { in: "\xfff", wantOut: `"\xfff"`, wantOutASCII: `"\xfff"`, }, } for _, tc := range tests { t.Run("", func(t *testing.T) { if tc.wantOut != "" { runEncodeStringsTest(t, tc.in, tc.wantOut, false) } if tc.wantOutASCII != "" { runEncodeStringsTest(t, tc.in, tc.wantOutASCII, true) } }) } } func runEncodeStringsTest(t *testing.T, in string, want string, outputASCII bool) { t.Helper() charType := "UTF-8" if outputASCII { charType = "ASCII" } enc, err := text.NewEncoder("", [2]byte{}, outputASCII) if err != nil { t.Fatalf("[%s] NewEncoder returned error: %v", charType, err) } enc.WriteString(in) got := string(enc.Bytes()) if got != want { t.Errorf("[%s] WriteString(%q)\n\n%v\n\n%v\n", charType, in, got, want) } } func TestReset(t *testing.T) { enc, err := text.NewEncoder("\t", [2]byte{}, false) if err != nil { t.Fatalf("NewEncoder returned error: %v", err) } enc.WriteName("foo") pos := enc.Snapshot() // Attempt to write a message value. enc.StartMessage() enc.WriteName("bar") enc.WriteUint(10) // Reset the value and decided to write a string value instead. enc.Reset(pos) enc.WriteString("0123456789") got := string(enc.Bytes()) want := `foo: "0123456789"` if got != want { t.Errorf("Reset did not restore given position:\n\n%v\n\n%v\n", got, want) } } golang-google-protobuf-1.27.1/internal/errors/000077500000000000000000000000001411250152500213055ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/errors/errors.go000066400000000000000000000041031411250152500231460ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package errors implements functions to manipulate errors. package errors import ( "errors" "fmt" "google.golang.org/protobuf/internal/detrand" ) // Error is a sentinel matching all errors produced by this package. var Error = errors.New("protobuf error") // New formats a string according to the format specifier and arguments and // returns an error that has a "proto" prefix. func New(f string, x ...interface{}) error { return &prefixError{s: format(f, x...)} } type prefixError struct{ s string } var prefix = func() string { // Deliberately introduce instability into the error message string to // discourage users from performing error string comparisons. if detrand.Bool() { return "proto: " // use non-breaking spaces (U+00a0) } else { return "proto: " // use regular spaces (U+0020) } }() func (e *prefixError) Error() string { return prefix + e.s } func (e *prefixError) Unwrap() error { return Error } // Wrap returns an error that has a "proto" prefix, the formatted string described // by the format specifier and arguments, and a suffix of err. The error wraps err. func Wrap(err error, f string, x ...interface{}) error { return &wrapError{ s: format(f, x...), err: err, } } type wrapError struct { s string err error } func (e *wrapError) Error() string { return format("%v%v: %v", prefix, e.s, e.err) } func (e *wrapError) Unwrap() error { return e.err } func (e *wrapError) Is(target error) bool { return target == Error } func format(f string, x ...interface{}) string { // avoid "proto: " prefix when chaining for i := 0; i < len(x); i++ { switch e := x[i].(type) { case *prefixError: x[i] = e.s case *wrapError: x[i] = format("%v: %v", e.s, e.err) } } return fmt.Sprintf(f, x...) } func InvalidUTF8(name string) error { return New("field %v contains invalid UTF-8", name) } func RequiredNotSet(name string) error { return New("required field %v not set", name) } golang-google-protobuf-1.27.1/internal/errors/errors_test.go000066400000000000000000000035131411250152500242110ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package errors import ( "errors" "strings" "testing" ) func TestErrors(t *testing.T) { var sentinel = New("sentinel") var foreign = errors.New("foreign") for _, test := range []struct { what string err error wantText string is []error isNot []error }{{ what: `New("abc")`, err: New("abc"), wantText: "abc", }, { what: `New("%v", sentinel)`, err: New("%v", sentinel), wantText: "sentinel", isNot: []error{sentinel}, }, { what: `Wrap(sentinel, "%v", "text")`, err: Wrap(sentinel, "%v", "text"), wantText: "text: sentinel", is: []error{sentinel}, }, { what: `New("%v", foreign)`, err: New("%v", foreign), wantText: "foreign", isNot: []error{foreign}, }, { what: `Wrap(foreign, "%v", "text")`, err: Wrap(foreign, "%v", "text"), wantText: "text: foreign", is: []error{foreign}, }} { if got, want := test.err.Error(), prefix; !strings.HasPrefix(got, want) { t.Errorf("%v.Error() = %q, want prefix %q", test.what, got, want) } if got, want := test.err.Error(), prefix+test.wantText; got != want { t.Errorf("%v.Error() = %q, want %q", test.what, got, want) } if got, want := Is(test.err, Error), true; got != want { t.Errorf("errors.Is(%v, errors.Error) = %v, want %v", test.what, got, want) } for _, err := range test.is { if got, want := Is(test.err, err), true; got != want { t.Errorf("errors.Is(%v, %v) = %v, want %v", test.what, err, got, want) } } for _, err := range test.isNot { if got, want := Is(test.err, err), false; got != want { t.Errorf("errors.Is(%v, %v) = %v, want %v", test.what, err, got, want) } } } } golang-google-protobuf-1.27.1/internal/errors/is_go112.go000066400000000000000000000013671411250152500231670ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build !go1.13 package errors import "reflect" // Is is a copy of Go 1.13's errors.Is for use with older Go versions. func Is(err, target error) bool { if target == nil { return err == target } isComparable := reflect.TypeOf(target).Comparable() for { if isComparable && err == target { return true } if x, ok := err.(interface{ Is(error) bool }); ok && x.Is(target) { return true } if err = unwrap(err); err == nil { return false } } } func unwrap(err error) error { u, ok := err.(interface { Unwrap() error }) if !ok { return nil } return u.Unwrap() } golang-google-protobuf-1.27.1/internal/errors/is_go113.go000066400000000000000000000004511411250152500231610ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build go1.13 package errors import "errors" // Is is errors.Is. func Is(err, target error) bool { return errors.Is(err, target) } golang-google-protobuf-1.27.1/internal/filedesc/000077500000000000000000000000001411250152500215475ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/filedesc/build.go000066400000000000000000000120431411250152500231750ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package filedesc provides functionality for constructing descriptors. // // The types in this package implement interfaces in the protoreflect package // related to protobuf descripriptors. package filedesc import ( "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/reflect/protoreflect" pref "google.golang.org/protobuf/reflect/protoreflect" preg "google.golang.org/protobuf/reflect/protoregistry" ) // Builder construct a protoreflect.FileDescriptor from the raw descriptor. type Builder struct { // GoPackagePath is the Go package path that is invoking this builder. GoPackagePath string // RawDescriptor is the wire-encoded bytes of FileDescriptorProto // and must be populated. RawDescriptor []byte // NumEnums is the total number of enums declared in the file. NumEnums int32 // NumMessages is the total number of messages declared in the file. // It includes the implicit message declarations for map entries. NumMessages int32 // NumExtensions is the total number of extensions declared in the file. NumExtensions int32 // NumServices is the total number of services declared in the file. NumServices int32 // TypeResolver resolves extension field types for descriptor options. // If nil, it uses protoregistry.GlobalTypes. TypeResolver interface { preg.ExtensionTypeResolver } // FileRegistry is use to lookup file, enum, and message dependencies. // Once constructed, the file descriptor is registered here. // If nil, it uses protoregistry.GlobalFiles. FileRegistry interface { FindFileByPath(string) (protoreflect.FileDescriptor, error) FindDescriptorByName(pref.FullName) (pref.Descriptor, error) RegisterFile(pref.FileDescriptor) error } } // resolverByIndex is an interface Builder.FileRegistry may implement. // If so, it permits looking up an enum or message dependency based on the // sub-list and element index into filetype.Builder.DependencyIndexes. type resolverByIndex interface { FindEnumByIndex(int32, int32, []Enum, []Message) pref.EnumDescriptor FindMessageByIndex(int32, int32, []Enum, []Message) pref.MessageDescriptor } // Indexes of each sub-list in filetype.Builder.DependencyIndexes. const ( listFieldDeps int32 = iota listExtTargets listExtDeps listMethInDeps listMethOutDeps ) // Out is the output of the Builder. type Out struct { File pref.FileDescriptor // Enums is all enum descriptors in "flattened ordering". Enums []Enum // Messages is all message descriptors in "flattened ordering". // It includes the implicit message declarations for map entries. Messages []Message // Extensions is all extension descriptors in "flattened ordering". Extensions []Extension // Service is all service descriptors in "flattened ordering". Services []Service } // Build constructs a FileDescriptor given the parameters set in Builder. // It assumes that the inputs are well-formed and panics if any inconsistencies // are encountered. // // If NumEnums+NumMessages+NumExtensions+NumServices is zero, // then Build automatically derives them from the raw descriptor. func (db Builder) Build() (out Out) { // Populate the counts if uninitialized. if db.NumEnums+db.NumMessages+db.NumExtensions+db.NumServices == 0 { db.unmarshalCounts(db.RawDescriptor, true) } // Initialize resolvers and registries if unpopulated. if db.TypeResolver == nil { db.TypeResolver = preg.GlobalTypes } if db.FileRegistry == nil { db.FileRegistry = preg.GlobalFiles } fd := newRawFile(db) out.File = fd out.Enums = fd.allEnums out.Messages = fd.allMessages out.Extensions = fd.allExtensions out.Services = fd.allServices if err := db.FileRegistry.RegisterFile(fd); err != nil { panic(err) } return out } // unmarshalCounts counts the number of enum, message, extension, and service // declarations in the raw message, which is either a FileDescriptorProto // or a MessageDescriptorProto depending on whether isFile is set. func (db *Builder) unmarshalCounts(b []byte, isFile bool) { for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] switch typ { case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] if isFile { switch num { case genid.FileDescriptorProto_EnumType_field_number: db.NumEnums++ case genid.FileDescriptorProto_MessageType_field_number: db.unmarshalCounts(v, false) db.NumMessages++ case genid.FileDescriptorProto_Extension_field_number: db.NumExtensions++ case genid.FileDescriptorProto_Service_field_number: db.NumServices++ } } else { switch num { case genid.DescriptorProto_EnumType_field_number: db.NumEnums++ case genid.DescriptorProto_NestedType_field_number: db.unmarshalCounts(v, false) db.NumMessages++ case genid.DescriptorProto_Extension_field_number: db.NumExtensions++ } } default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] } } } golang-google-protobuf-1.27.1/internal/filedesc/build_test.go000066400000000000000000000122571411250152500242430ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package filedesc_test import ( "bytes" "compress/gzip" "io/ioutil" "testing" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protodesc" "google.golang.org/protobuf/reflect/protoreflect" testpb "google.golang.org/protobuf/internal/testprotos/test" _ "google.golang.org/protobuf/internal/testprotos/test/weak1" "google.golang.org/protobuf/types/descriptorpb" ) var testFile = new(testpb.TestAllTypes).ProtoReflect().Descriptor().ParentFile() func TestInit(t *testing.T) { // Compare the FileDescriptorProto for the same test file from two different sources: // // 1. The result of passing the filedesc-produced FileDescriptor through protodesc. // 2. The protoc-generated wire-encoded message. // // This serves as a test of both filedesc and protodesc. got := protodesc.ToFileDescriptorProto(testFile) want := &descriptorpb.FileDescriptorProto{} zb, _ := (&testpb.TestAllTypes{}).Descriptor() r, _ := gzip.NewReader(bytes.NewBuffer(zb)) b, _ := ioutil.ReadAll(r) if err := proto.Unmarshal(b, want); err != nil { t.Fatal(err) } if !proto.Equal(got, want) { t.Errorf("protodesc.ToFileDescriptorProto(testpb.Test_protoFile) is not equal to the protoc-generated FileDescriptorProto for internal/testprotos/test/test.proto") } // Verify that the test proto file provides exhaustive coverage of all descriptor fields. seen := make(map[protoreflect.FullName]bool) visitFields(want.ProtoReflect(), func(field protoreflect.FieldDescriptor) { seen[field.FullName()] = true }) descFile := new(descriptorpb.DescriptorProto).ProtoReflect().Descriptor().ParentFile() descPkg := descFile.Package() ignore := map[protoreflect.FullName]bool{ // The protoreflect descriptors don't include source info. descPkg.Append("FileDescriptorProto.source_code_info"): true, descPkg.Append("FileDescriptorProto.syntax"): true, // Impossible to test proto3 optional in a proto2 file. descPkg.Append("FieldDescriptorProto.proto3_optional"): true, // TODO: Test oneof and extension options. Testing these requires extending the // options messages (because they contain no user-settable fields), but importing // decriptor.proto from test.proto currently causes an import cycle. Add test // cases when that import cycle has been fixed. descPkg.Append("OneofDescriptorProto.options"): true, } for _, messageName := range []protoreflect.Name{ "FileDescriptorProto", "DescriptorProto", "FieldDescriptorProto", "OneofDescriptorProto", "EnumDescriptorProto", "EnumValueDescriptorProto", } { message := descFile.Messages().ByName(messageName) for i, fields := 0, message.Fields(); i < fields.Len(); i++ { if name := fields.Get(i).FullName(); !seen[name] && !ignore[name] { t.Errorf("No test for descriptor field: %v", name) } } } // Verify that message descriptors for map entries have no Go type info. mapEntryName := protoreflect.FullName("goproto.proto.test.TestAllTypes.MapInt32Int32Entry") d := testFile.Messages().ByName("TestAllTypes").Fields().ByName("map_int32_int32").Message() if gotName, wantName := d.FullName(), mapEntryName; gotName != wantName { t.Fatalf("looked up wrong descriptor: got %v, want %v", gotName, wantName) } if _, ok := d.(protoreflect.MessageType); ok { t.Errorf("message descriptor for %v must not implement protoreflect.MessageType", mapEntryName) } } // visitFields calls f for every field set in m and its children. func visitFields(m protoreflect.Message, f func(protoreflect.FieldDescriptor)) { m.Range(func(fd protoreflect.FieldDescriptor, value protoreflect.Value) bool { f(fd) switch fd.Kind() { case protoreflect.MessageKind, protoreflect.GroupKind: if fd.IsList() { for i, list := 0, value.List(); i < list.Len(); i++ { visitFields(list.Get(i).Message(), f) } } else { visitFields(value.Message(), f) } } return true }) } func TestWeakInit(t *testing.T) { // We do not expect to get a placeholder since weak1 is imported. fd1 := testFile.Messages().ByName("TestWeak").Fields().ByName("weak_message1") if got, want := fd1.IsWeak(), true; got != want { t.Errorf("field %v: IsWeak() = %v, want %v", fd1.FullName(), got, want) } if got, want := fd1.Message().IsPlaceholder(), false; got != want { t.Errorf("field %v: Message.IsPlaceholder() = %v, want %v", fd1.FullName(), got, want) } if got, want := fd1.Message().Fields().Len(), 1; got != want { t.Errorf("field %v: Message().Fields().Len() == %d, want %d", fd1.FullName(), got, want) } // We do expect to get a placeholder since weak2 is not imported. fd2 := testFile.Messages().ByName("TestWeak").Fields().ByName("weak_message2") if got, want := fd2.IsWeak(), true; got != want { t.Errorf("field %v: IsWeak() = %v, want %v", fd2.FullName(), got, want) } if got, want := fd2.Message().IsPlaceholder(), true; got != want { t.Errorf("field %v: Message.IsPlaceholder() = %v, want %v", fd2.FullName(), got, want) } if got, want := fd2.Message().Fields().Len(), 0; got != want { t.Errorf("field %v: Message().Fields().Len() == %d, want %d", fd2.FullName(), got, want) } } golang-google-protobuf-1.27.1/internal/filedesc/desc.go000066400000000000000000000542051411250152500230220ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package filedesc import ( "bytes" "fmt" "sync" "sync/atomic" "google.golang.org/protobuf/internal/descfmt" "google.golang.org/protobuf/internal/descopts" "google.golang.org/protobuf/internal/encoding/defval" "google.golang.org/protobuf/internal/encoding/messageset" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/internal/pragma" "google.golang.org/protobuf/internal/strs" pref "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" ) // The types in this file may have a suffix: // • L0: Contains fields common to all descriptors (except File) and // must be initialized up front. // • L1: Contains fields specific to a descriptor and // must be initialized up front. // • L2: Contains fields that are lazily initialized when constructing // from the raw file descriptor. When constructing as a literal, the L2 // fields must be initialized up front. // // The types are exported so that packages like reflect/protodesc can // directly construct descriptors. type ( File struct { fileRaw L1 FileL1 once uint32 // atomically set if L2 is valid mu sync.Mutex // protects L2 L2 *FileL2 } FileL1 struct { Syntax pref.Syntax Path string Package pref.FullName Enums Enums Messages Messages Extensions Extensions Services Services } FileL2 struct { Options func() pref.ProtoMessage Imports FileImports Locations SourceLocations } ) func (fd *File) ParentFile() pref.FileDescriptor { return fd } func (fd *File) Parent() pref.Descriptor { return nil } func (fd *File) Index() int { return 0 } func (fd *File) Syntax() pref.Syntax { return fd.L1.Syntax } func (fd *File) Name() pref.Name { return fd.L1.Package.Name() } func (fd *File) FullName() pref.FullName { return fd.L1.Package } func (fd *File) IsPlaceholder() bool { return false } func (fd *File) Options() pref.ProtoMessage { if f := fd.lazyInit().Options; f != nil { return f() } return descopts.File } func (fd *File) Path() string { return fd.L1.Path } func (fd *File) Package() pref.FullName { return fd.L1.Package } func (fd *File) Imports() pref.FileImports { return &fd.lazyInit().Imports } func (fd *File) Enums() pref.EnumDescriptors { return &fd.L1.Enums } func (fd *File) Messages() pref.MessageDescriptors { return &fd.L1.Messages } func (fd *File) Extensions() pref.ExtensionDescriptors { return &fd.L1.Extensions } func (fd *File) Services() pref.ServiceDescriptors { return &fd.L1.Services } func (fd *File) SourceLocations() pref.SourceLocations { return &fd.lazyInit().Locations } func (fd *File) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, fd) } func (fd *File) ProtoType(pref.FileDescriptor) {} func (fd *File) ProtoInternal(pragma.DoNotImplement) {} func (fd *File) lazyInit() *FileL2 { if atomic.LoadUint32(&fd.once) == 0 { fd.lazyInitOnce() } return fd.L2 } func (fd *File) lazyInitOnce() { fd.mu.Lock() if fd.L2 == nil { fd.lazyRawInit() // recursively initializes all L2 structures } atomic.StoreUint32(&fd.once, 1) fd.mu.Unlock() } // GoPackagePath is a pseudo-internal API for determining the Go package path // that this file descriptor is declared in. // // WARNING: This method is exempt from the compatibility promise and may be // removed in the future without warning. func (fd *File) GoPackagePath() string { return fd.builder.GoPackagePath } type ( Enum struct { Base L1 EnumL1 L2 *EnumL2 // protected by fileDesc.once } EnumL1 struct { eagerValues bool // controls whether EnumL2.Values is already populated } EnumL2 struct { Options func() pref.ProtoMessage Values EnumValues ReservedNames Names ReservedRanges EnumRanges } EnumValue struct { Base L1 EnumValueL1 } EnumValueL1 struct { Options func() pref.ProtoMessage Number pref.EnumNumber } ) func (ed *Enum) Options() pref.ProtoMessage { if f := ed.lazyInit().Options; f != nil { return f() } return descopts.Enum } func (ed *Enum) Values() pref.EnumValueDescriptors { if ed.L1.eagerValues { return &ed.L2.Values } return &ed.lazyInit().Values } func (ed *Enum) ReservedNames() pref.Names { return &ed.lazyInit().ReservedNames } func (ed *Enum) ReservedRanges() pref.EnumRanges { return &ed.lazyInit().ReservedRanges } func (ed *Enum) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, ed) } func (ed *Enum) ProtoType(pref.EnumDescriptor) {} func (ed *Enum) lazyInit() *EnumL2 { ed.L0.ParentFile.lazyInit() // implicitly initializes L2 return ed.L2 } func (ed *EnumValue) Options() pref.ProtoMessage { if f := ed.L1.Options; f != nil { return f() } return descopts.EnumValue } func (ed *EnumValue) Number() pref.EnumNumber { return ed.L1.Number } func (ed *EnumValue) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, ed) } func (ed *EnumValue) ProtoType(pref.EnumValueDescriptor) {} type ( Message struct { Base L1 MessageL1 L2 *MessageL2 // protected by fileDesc.once } MessageL1 struct { Enums Enums Messages Messages Extensions Extensions IsMapEntry bool // promoted from google.protobuf.MessageOptions IsMessageSet bool // promoted from google.protobuf.MessageOptions } MessageL2 struct { Options func() pref.ProtoMessage Fields Fields Oneofs Oneofs ReservedNames Names ReservedRanges FieldRanges RequiredNumbers FieldNumbers // must be consistent with Fields.Cardinality ExtensionRanges FieldRanges ExtensionRangeOptions []func() pref.ProtoMessage // must be same length as ExtensionRanges } Field struct { Base L1 FieldL1 } FieldL1 struct { Options func() pref.ProtoMessage Number pref.FieldNumber Cardinality pref.Cardinality // must be consistent with Message.RequiredNumbers Kind pref.Kind StringName stringName IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto IsWeak bool // promoted from google.protobuf.FieldOptions HasPacked bool // promoted from google.protobuf.FieldOptions IsPacked bool // promoted from google.protobuf.FieldOptions HasEnforceUTF8 bool // promoted from google.protobuf.FieldOptions EnforceUTF8 bool // promoted from google.protobuf.FieldOptions Default defaultValue ContainingOneof pref.OneofDescriptor // must be consistent with Message.Oneofs.Fields Enum pref.EnumDescriptor Message pref.MessageDescriptor } Oneof struct { Base L1 OneofL1 } OneofL1 struct { Options func() pref.ProtoMessage Fields OneofFields // must be consistent with Message.Fields.ContainingOneof } ) func (md *Message) Options() pref.ProtoMessage { if f := md.lazyInit().Options; f != nil { return f() } return descopts.Message } func (md *Message) IsMapEntry() bool { return md.L1.IsMapEntry } func (md *Message) Fields() pref.FieldDescriptors { return &md.lazyInit().Fields } func (md *Message) Oneofs() pref.OneofDescriptors { return &md.lazyInit().Oneofs } func (md *Message) ReservedNames() pref.Names { return &md.lazyInit().ReservedNames } func (md *Message) ReservedRanges() pref.FieldRanges { return &md.lazyInit().ReservedRanges } func (md *Message) RequiredNumbers() pref.FieldNumbers { return &md.lazyInit().RequiredNumbers } func (md *Message) ExtensionRanges() pref.FieldRanges { return &md.lazyInit().ExtensionRanges } func (md *Message) ExtensionRangeOptions(i int) pref.ProtoMessage { if f := md.lazyInit().ExtensionRangeOptions[i]; f != nil { return f() } return descopts.ExtensionRange } func (md *Message) Enums() pref.EnumDescriptors { return &md.L1.Enums } func (md *Message) Messages() pref.MessageDescriptors { return &md.L1.Messages } func (md *Message) Extensions() pref.ExtensionDescriptors { return &md.L1.Extensions } func (md *Message) ProtoType(pref.MessageDescriptor) {} func (md *Message) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, md) } func (md *Message) lazyInit() *MessageL2 { md.L0.ParentFile.lazyInit() // implicitly initializes L2 return md.L2 } // IsMessageSet is a pseudo-internal API for checking whether a message // should serialize in the proto1 message format. // // WARNING: This method is exempt from the compatibility promise and may be // removed in the future without warning. func (md *Message) IsMessageSet() bool { return md.L1.IsMessageSet } func (fd *Field) Options() pref.ProtoMessage { if f := fd.L1.Options; f != nil { return f() } return descopts.Field } func (fd *Field) Number() pref.FieldNumber { return fd.L1.Number } func (fd *Field) Cardinality() pref.Cardinality { return fd.L1.Cardinality } func (fd *Field) Kind() pref.Kind { return fd.L1.Kind } func (fd *Field) HasJSONName() bool { return fd.L1.StringName.hasJSON } func (fd *Field) JSONName() string { return fd.L1.StringName.getJSON(fd) } func (fd *Field) TextName() string { return fd.L1.StringName.getText(fd) } func (fd *Field) HasPresence() bool { return fd.L1.Cardinality != pref.Repeated && (fd.L0.ParentFile.L1.Syntax == pref.Proto2 || fd.L1.Message != nil || fd.L1.ContainingOneof != nil) } func (fd *Field) HasOptionalKeyword() bool { return (fd.L0.ParentFile.L1.Syntax == pref.Proto2 && fd.L1.Cardinality == pref.Optional && fd.L1.ContainingOneof == nil) || fd.L1.IsProto3Optional } func (fd *Field) IsPacked() bool { if !fd.L1.HasPacked && fd.L0.ParentFile.L1.Syntax != pref.Proto2 && fd.L1.Cardinality == pref.Repeated { switch fd.L1.Kind { case pref.StringKind, pref.BytesKind, pref.MessageKind, pref.GroupKind: default: return true } } return fd.L1.IsPacked } func (fd *Field) IsExtension() bool { return false } func (fd *Field) IsWeak() bool { return fd.L1.IsWeak } func (fd *Field) IsList() bool { return fd.Cardinality() == pref.Repeated && !fd.IsMap() } func (fd *Field) IsMap() bool { return fd.Message() != nil && fd.Message().IsMapEntry() } func (fd *Field) MapKey() pref.FieldDescriptor { if !fd.IsMap() { return nil } return fd.Message().Fields().ByNumber(genid.MapEntry_Key_field_number) } func (fd *Field) MapValue() pref.FieldDescriptor { if !fd.IsMap() { return nil } return fd.Message().Fields().ByNumber(genid.MapEntry_Value_field_number) } func (fd *Field) HasDefault() bool { return fd.L1.Default.has } func (fd *Field) Default() pref.Value { return fd.L1.Default.get(fd) } func (fd *Field) DefaultEnumValue() pref.EnumValueDescriptor { return fd.L1.Default.enum } func (fd *Field) ContainingOneof() pref.OneofDescriptor { return fd.L1.ContainingOneof } func (fd *Field) ContainingMessage() pref.MessageDescriptor { return fd.L0.Parent.(pref.MessageDescriptor) } func (fd *Field) Enum() pref.EnumDescriptor { return fd.L1.Enum } func (fd *Field) Message() pref.MessageDescriptor { if fd.L1.IsWeak { if d, _ := protoregistry.GlobalFiles.FindDescriptorByName(fd.L1.Message.FullName()); d != nil { return d.(pref.MessageDescriptor) } } return fd.L1.Message } func (fd *Field) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, fd) } func (fd *Field) ProtoType(pref.FieldDescriptor) {} // EnforceUTF8 is a pseudo-internal API to determine whether to enforce UTF-8 // validation for the string field. This exists for Google-internal use only // since proto3 did not enforce UTF-8 validity prior to the open-source release. // If this method does not exist, the default is to enforce valid UTF-8. // // WARNING: This method is exempt from the compatibility promise and may be // removed in the future without warning. func (fd *Field) EnforceUTF8() bool { if fd.L1.HasEnforceUTF8 { return fd.L1.EnforceUTF8 } return fd.L0.ParentFile.L1.Syntax == pref.Proto3 } func (od *Oneof) IsSynthetic() bool { return od.L0.ParentFile.L1.Syntax == pref.Proto3 && len(od.L1.Fields.List) == 1 && od.L1.Fields.List[0].HasOptionalKeyword() } func (od *Oneof) Options() pref.ProtoMessage { if f := od.L1.Options; f != nil { return f() } return descopts.Oneof } func (od *Oneof) Fields() pref.FieldDescriptors { return &od.L1.Fields } func (od *Oneof) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, od) } func (od *Oneof) ProtoType(pref.OneofDescriptor) {} type ( Extension struct { Base L1 ExtensionL1 L2 *ExtensionL2 // protected by fileDesc.once } ExtensionL1 struct { Number pref.FieldNumber Extendee pref.MessageDescriptor Cardinality pref.Cardinality Kind pref.Kind } ExtensionL2 struct { Options func() pref.ProtoMessage StringName stringName IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto IsPacked bool // promoted from google.protobuf.FieldOptions Default defaultValue Enum pref.EnumDescriptor Message pref.MessageDescriptor } ) func (xd *Extension) Options() pref.ProtoMessage { if f := xd.lazyInit().Options; f != nil { return f() } return descopts.Field } func (xd *Extension) Number() pref.FieldNumber { return xd.L1.Number } func (xd *Extension) Cardinality() pref.Cardinality { return xd.L1.Cardinality } func (xd *Extension) Kind() pref.Kind { return xd.L1.Kind } func (xd *Extension) HasJSONName() bool { return xd.lazyInit().StringName.hasJSON } func (xd *Extension) JSONName() string { return xd.lazyInit().StringName.getJSON(xd) } func (xd *Extension) TextName() string { return xd.lazyInit().StringName.getText(xd) } func (xd *Extension) HasPresence() bool { return xd.L1.Cardinality != pref.Repeated } func (xd *Extension) HasOptionalKeyword() bool { return (xd.L0.ParentFile.L1.Syntax == pref.Proto2 && xd.L1.Cardinality == pref.Optional) || xd.lazyInit().IsProto3Optional } func (xd *Extension) IsPacked() bool { return xd.lazyInit().IsPacked } func (xd *Extension) IsExtension() bool { return true } func (xd *Extension) IsWeak() bool { return false } func (xd *Extension) IsList() bool { return xd.Cardinality() == pref.Repeated } func (xd *Extension) IsMap() bool { return false } func (xd *Extension) MapKey() pref.FieldDescriptor { return nil } func (xd *Extension) MapValue() pref.FieldDescriptor { return nil } func (xd *Extension) HasDefault() bool { return xd.lazyInit().Default.has } func (xd *Extension) Default() pref.Value { return xd.lazyInit().Default.get(xd) } func (xd *Extension) DefaultEnumValue() pref.EnumValueDescriptor { return xd.lazyInit().Default.enum } func (xd *Extension) ContainingOneof() pref.OneofDescriptor { return nil } func (xd *Extension) ContainingMessage() pref.MessageDescriptor { return xd.L1.Extendee } func (xd *Extension) Enum() pref.EnumDescriptor { return xd.lazyInit().Enum } func (xd *Extension) Message() pref.MessageDescriptor { return xd.lazyInit().Message } func (xd *Extension) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, xd) } func (xd *Extension) ProtoType(pref.FieldDescriptor) {} func (xd *Extension) ProtoInternal(pragma.DoNotImplement) {} func (xd *Extension) lazyInit() *ExtensionL2 { xd.L0.ParentFile.lazyInit() // implicitly initializes L2 return xd.L2 } type ( Service struct { Base L1 ServiceL1 L2 *ServiceL2 // protected by fileDesc.once } ServiceL1 struct{} ServiceL2 struct { Options func() pref.ProtoMessage Methods Methods } Method struct { Base L1 MethodL1 } MethodL1 struct { Options func() pref.ProtoMessage Input pref.MessageDescriptor Output pref.MessageDescriptor IsStreamingClient bool IsStreamingServer bool } ) func (sd *Service) Options() pref.ProtoMessage { if f := sd.lazyInit().Options; f != nil { return f() } return descopts.Service } func (sd *Service) Methods() pref.MethodDescriptors { return &sd.lazyInit().Methods } func (sd *Service) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, sd) } func (sd *Service) ProtoType(pref.ServiceDescriptor) {} func (sd *Service) ProtoInternal(pragma.DoNotImplement) {} func (sd *Service) lazyInit() *ServiceL2 { sd.L0.ParentFile.lazyInit() // implicitly initializes L2 return sd.L2 } func (md *Method) Options() pref.ProtoMessage { if f := md.L1.Options; f != nil { return f() } return descopts.Method } func (md *Method) Input() pref.MessageDescriptor { return md.L1.Input } func (md *Method) Output() pref.MessageDescriptor { return md.L1.Output } func (md *Method) IsStreamingClient() bool { return md.L1.IsStreamingClient } func (md *Method) IsStreamingServer() bool { return md.L1.IsStreamingServer } func (md *Method) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, md) } func (md *Method) ProtoType(pref.MethodDescriptor) {} func (md *Method) ProtoInternal(pragma.DoNotImplement) {} // Surrogate files are can be used to create standalone descriptors // where the syntax is only information derived from the parent file. var ( SurrogateProto2 = &File{L1: FileL1{Syntax: pref.Proto2}, L2: &FileL2{}} SurrogateProto3 = &File{L1: FileL1{Syntax: pref.Proto3}, L2: &FileL2{}} ) type ( Base struct { L0 BaseL0 } BaseL0 struct { FullName pref.FullName // must be populated ParentFile *File // must be populated Parent pref.Descriptor Index int } ) func (d *Base) Name() pref.Name { return d.L0.FullName.Name() } func (d *Base) FullName() pref.FullName { return d.L0.FullName } func (d *Base) ParentFile() pref.FileDescriptor { if d.L0.ParentFile == SurrogateProto2 || d.L0.ParentFile == SurrogateProto3 { return nil // surrogate files are not real parents } return d.L0.ParentFile } func (d *Base) Parent() pref.Descriptor { return d.L0.Parent } func (d *Base) Index() int { return d.L0.Index } func (d *Base) Syntax() pref.Syntax { return d.L0.ParentFile.Syntax() } func (d *Base) IsPlaceholder() bool { return false } func (d *Base) ProtoInternal(pragma.DoNotImplement) {} type stringName struct { hasJSON bool once sync.Once nameJSON string nameText string } // InitJSON initializes the name. It is exported for use by other internal packages. func (s *stringName) InitJSON(name string) { s.hasJSON = true s.nameJSON = name } func (s *stringName) lazyInit(fd pref.FieldDescriptor) *stringName { s.once.Do(func() { if fd.IsExtension() { // For extensions, JSON and text are formatted the same way. var name string if messageset.IsMessageSetExtension(fd) { name = string("[" + fd.FullName().Parent() + "]") } else { name = string("[" + fd.FullName() + "]") } s.nameJSON = name s.nameText = name } else { // Format the JSON name. if !s.hasJSON { s.nameJSON = strs.JSONCamelCase(string(fd.Name())) } // Format the text name. s.nameText = string(fd.Name()) if fd.Kind() == pref.GroupKind { s.nameText = string(fd.Message().Name()) } } }) return s } func (s *stringName) getJSON(fd pref.FieldDescriptor) string { return s.lazyInit(fd).nameJSON } func (s *stringName) getText(fd pref.FieldDescriptor) string { return s.lazyInit(fd).nameText } func DefaultValue(v pref.Value, ev pref.EnumValueDescriptor) defaultValue { dv := defaultValue{has: v.IsValid(), val: v, enum: ev} if b, ok := v.Interface().([]byte); ok { // Store a copy of the default bytes, so that we can detect // accidental mutations of the original value. dv.bytes = append([]byte(nil), b...) } return dv } func unmarshalDefault(b []byte, k pref.Kind, pf *File, ed pref.EnumDescriptor) defaultValue { var evs pref.EnumValueDescriptors if k == pref.EnumKind { // If the enum is declared within the same file, be careful not to // blindly call the Values method, lest we bind ourselves in a deadlock. if e, ok := ed.(*Enum); ok && e.L0.ParentFile == pf { evs = &e.L2.Values } else { evs = ed.Values() } // If we are unable to resolve the enum dependency, use a placeholder // enum value since we will not be able to parse the default value. if ed.IsPlaceholder() && pref.Name(b).IsValid() { v := pref.ValueOfEnum(0) ev := PlaceholderEnumValue(ed.FullName().Parent().Append(pref.Name(b))) return DefaultValue(v, ev) } } v, ev, err := defval.Unmarshal(string(b), k, evs, defval.Descriptor) if err != nil { panic(err) } return DefaultValue(v, ev) } type defaultValue struct { has bool val pref.Value enum pref.EnumValueDescriptor bytes []byte } func (dv *defaultValue) get(fd pref.FieldDescriptor) pref.Value { // Return the zero value as the default if unpopulated. if !dv.has { if fd.Cardinality() == pref.Repeated { return pref.Value{} } switch fd.Kind() { case pref.BoolKind: return pref.ValueOfBool(false) case pref.Int32Kind, pref.Sint32Kind, pref.Sfixed32Kind: return pref.ValueOfInt32(0) case pref.Int64Kind, pref.Sint64Kind, pref.Sfixed64Kind: return pref.ValueOfInt64(0) case pref.Uint32Kind, pref.Fixed32Kind: return pref.ValueOfUint32(0) case pref.Uint64Kind, pref.Fixed64Kind: return pref.ValueOfUint64(0) case pref.FloatKind: return pref.ValueOfFloat32(0) case pref.DoubleKind: return pref.ValueOfFloat64(0) case pref.StringKind: return pref.ValueOfString("") case pref.BytesKind: return pref.ValueOfBytes(nil) case pref.EnumKind: if evs := fd.Enum().Values(); evs.Len() > 0 { return pref.ValueOfEnum(evs.Get(0).Number()) } return pref.ValueOfEnum(0) } } if len(dv.bytes) > 0 && !bytes.Equal(dv.bytes, dv.val.Bytes()) { // TODO: Avoid panic if we're running with the race detector // and instead spawn a goroutine that periodically resets // this value back to the original to induce a race. panic(fmt.Sprintf("detected mutation on the default bytes for %v", fd.FullName())) } return dv.val } golang-google-protobuf-1.27.1/internal/filedesc/desc_init.go000066400000000000000000000320711411250152500240420ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package filedesc import ( "sync" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/internal/strs" pref "google.golang.org/protobuf/reflect/protoreflect" ) // fileRaw is a data struct used when initializing a file descriptor from // a raw FileDescriptorProto. type fileRaw struct { builder Builder allEnums []Enum allMessages []Message allExtensions []Extension allServices []Service } func newRawFile(db Builder) *File { fd := &File{fileRaw: fileRaw{builder: db}} fd.initDecls(db.NumEnums, db.NumMessages, db.NumExtensions, db.NumServices) fd.unmarshalSeed(db.RawDescriptor) // Extended message targets are eagerly resolved since registration // needs this information at program init time. for i := range fd.allExtensions { xd := &fd.allExtensions[i] xd.L1.Extendee = fd.resolveMessageDependency(xd.L1.Extendee, listExtTargets, int32(i)) } fd.checkDecls() return fd } // initDecls pre-allocates slices for the exact number of enums, messages // (including map entries), extensions, and services declared in the proto file. // This is done to avoid regrowing the slice, which would change the address // for any previously seen declaration. // // The alloc methods "allocates" slices by pulling from the capacity. func (fd *File) initDecls(numEnums, numMessages, numExtensions, numServices int32) { fd.allEnums = make([]Enum, 0, numEnums) fd.allMessages = make([]Message, 0, numMessages) fd.allExtensions = make([]Extension, 0, numExtensions) fd.allServices = make([]Service, 0, numServices) } func (fd *File) allocEnums(n int) []Enum { total := len(fd.allEnums) es := fd.allEnums[total : total+n] fd.allEnums = fd.allEnums[:total+n] return es } func (fd *File) allocMessages(n int) []Message { total := len(fd.allMessages) ms := fd.allMessages[total : total+n] fd.allMessages = fd.allMessages[:total+n] return ms } func (fd *File) allocExtensions(n int) []Extension { total := len(fd.allExtensions) xs := fd.allExtensions[total : total+n] fd.allExtensions = fd.allExtensions[:total+n] return xs } func (fd *File) allocServices(n int) []Service { total := len(fd.allServices) xs := fd.allServices[total : total+n] fd.allServices = fd.allServices[:total+n] return xs } // checkDecls performs a sanity check that the expected number of expected // declarations matches the number that were found in the descriptor proto. func (fd *File) checkDecls() { switch { case len(fd.allEnums) != cap(fd.allEnums): case len(fd.allMessages) != cap(fd.allMessages): case len(fd.allExtensions) != cap(fd.allExtensions): case len(fd.allServices) != cap(fd.allServices): default: return } panic("mismatching cardinality") } func (fd *File) unmarshalSeed(b []byte) { sb := getBuilder() defer putBuilder(sb) var prevField pref.FieldNumber var numEnums, numMessages, numExtensions, numServices int var posEnums, posMessages, posExtensions, posServices int b0 := b for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] switch typ { case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { case genid.FileDescriptorProto_Syntax_field_number: switch string(v) { case "proto2": fd.L1.Syntax = pref.Proto2 case "proto3": fd.L1.Syntax = pref.Proto3 default: panic("invalid syntax") } case genid.FileDescriptorProto_Name_field_number: fd.L1.Path = sb.MakeString(v) case genid.FileDescriptorProto_Package_field_number: fd.L1.Package = pref.FullName(sb.MakeString(v)) case genid.FileDescriptorProto_EnumType_field_number: if prevField != genid.FileDescriptorProto_EnumType_field_number { if numEnums > 0 { panic("non-contiguous repeated field") } posEnums = len(b0) - len(b) - n - m } numEnums++ case genid.FileDescriptorProto_MessageType_field_number: if prevField != genid.FileDescriptorProto_MessageType_field_number { if numMessages > 0 { panic("non-contiguous repeated field") } posMessages = len(b0) - len(b) - n - m } numMessages++ case genid.FileDescriptorProto_Extension_field_number: if prevField != genid.FileDescriptorProto_Extension_field_number { if numExtensions > 0 { panic("non-contiguous repeated field") } posExtensions = len(b0) - len(b) - n - m } numExtensions++ case genid.FileDescriptorProto_Service_field_number: if prevField != genid.FileDescriptorProto_Service_field_number { if numServices > 0 { panic("non-contiguous repeated field") } posServices = len(b0) - len(b) - n - m } numServices++ } prevField = num default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] prevField = -1 // ignore known field numbers of unknown wire type } } // If syntax is missing, it is assumed to be proto2. if fd.L1.Syntax == 0 { fd.L1.Syntax = pref.Proto2 } // Must allocate all declarations before parsing each descriptor type // to ensure we handled all descriptors in "flattened ordering". if numEnums > 0 { fd.L1.Enums.List = fd.allocEnums(numEnums) } if numMessages > 0 { fd.L1.Messages.List = fd.allocMessages(numMessages) } if numExtensions > 0 { fd.L1.Extensions.List = fd.allocExtensions(numExtensions) } if numServices > 0 { fd.L1.Services.List = fd.allocServices(numServices) } if numEnums > 0 { b := b0[posEnums:] for i := range fd.L1.Enums.List { _, n := protowire.ConsumeVarint(b) v, m := protowire.ConsumeBytes(b[n:]) fd.L1.Enums.List[i].unmarshalSeed(v, sb, fd, fd, i) b = b[n+m:] } } if numMessages > 0 { b := b0[posMessages:] for i := range fd.L1.Messages.List { _, n := protowire.ConsumeVarint(b) v, m := protowire.ConsumeBytes(b[n:]) fd.L1.Messages.List[i].unmarshalSeed(v, sb, fd, fd, i) b = b[n+m:] } } if numExtensions > 0 { b := b0[posExtensions:] for i := range fd.L1.Extensions.List { _, n := protowire.ConsumeVarint(b) v, m := protowire.ConsumeBytes(b[n:]) fd.L1.Extensions.List[i].unmarshalSeed(v, sb, fd, fd, i) b = b[n+m:] } } if numServices > 0 { b := b0[posServices:] for i := range fd.L1.Services.List { _, n := protowire.ConsumeVarint(b) v, m := protowire.ConsumeBytes(b[n:]) fd.L1.Services.List[i].unmarshalSeed(v, sb, fd, fd, i) b = b[n+m:] } } } func (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd pref.Descriptor, i int) { ed.L0.ParentFile = pf ed.L0.Parent = pd ed.L0.Index = i var numValues int for b := b; len(b) > 0; { num, typ, n := protowire.ConsumeTag(b) b = b[n:] switch typ { case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { case genid.EnumDescriptorProto_Name_field_number: ed.L0.FullName = appendFullName(sb, pd.FullName(), v) case genid.EnumDescriptorProto_Value_field_number: numValues++ } default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] } } // Only construct enum value descriptors for top-level enums since // they are needed for registration. if pd != pf { return } ed.L1.eagerValues = true ed.L2 = new(EnumL2) ed.L2.Values.List = make([]EnumValue, numValues) for i := 0; len(b) > 0; { num, typ, n := protowire.ConsumeTag(b) b = b[n:] switch typ { case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { case genid.EnumDescriptorProto_Value_field_number: ed.L2.Values.List[i].unmarshalFull(v, sb, pf, ed, i) i++ } default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] } } } func (md *Message) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd pref.Descriptor, i int) { md.L0.ParentFile = pf md.L0.Parent = pd md.L0.Index = i var prevField pref.FieldNumber var numEnums, numMessages, numExtensions int var posEnums, posMessages, posExtensions int b0 := b for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] switch typ { case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { case genid.DescriptorProto_Name_field_number: md.L0.FullName = appendFullName(sb, pd.FullName(), v) case genid.DescriptorProto_EnumType_field_number: if prevField != genid.DescriptorProto_EnumType_field_number { if numEnums > 0 { panic("non-contiguous repeated field") } posEnums = len(b0) - len(b) - n - m } numEnums++ case genid.DescriptorProto_NestedType_field_number: if prevField != genid.DescriptorProto_NestedType_field_number { if numMessages > 0 { panic("non-contiguous repeated field") } posMessages = len(b0) - len(b) - n - m } numMessages++ case genid.DescriptorProto_Extension_field_number: if prevField != genid.DescriptorProto_Extension_field_number { if numExtensions > 0 { panic("non-contiguous repeated field") } posExtensions = len(b0) - len(b) - n - m } numExtensions++ case genid.DescriptorProto_Options_field_number: md.unmarshalSeedOptions(v) } prevField = num default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] prevField = -1 // ignore known field numbers of unknown wire type } } // Must allocate all declarations before parsing each descriptor type // to ensure we handled all descriptors in "flattened ordering". if numEnums > 0 { md.L1.Enums.List = pf.allocEnums(numEnums) } if numMessages > 0 { md.L1.Messages.List = pf.allocMessages(numMessages) } if numExtensions > 0 { md.L1.Extensions.List = pf.allocExtensions(numExtensions) } if numEnums > 0 { b := b0[posEnums:] for i := range md.L1.Enums.List { _, n := protowire.ConsumeVarint(b) v, m := protowire.ConsumeBytes(b[n:]) md.L1.Enums.List[i].unmarshalSeed(v, sb, pf, md, i) b = b[n+m:] } } if numMessages > 0 { b := b0[posMessages:] for i := range md.L1.Messages.List { _, n := protowire.ConsumeVarint(b) v, m := protowire.ConsumeBytes(b[n:]) md.L1.Messages.List[i].unmarshalSeed(v, sb, pf, md, i) b = b[n+m:] } } if numExtensions > 0 { b := b0[posExtensions:] for i := range md.L1.Extensions.List { _, n := protowire.ConsumeVarint(b) v, m := protowire.ConsumeBytes(b[n:]) md.L1.Extensions.List[i].unmarshalSeed(v, sb, pf, md, i) b = b[n+m:] } } } func (md *Message) unmarshalSeedOptions(b []byte) { for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] switch typ { case protowire.VarintType: v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { case genid.MessageOptions_MapEntry_field_number: md.L1.IsMapEntry = protowire.DecodeBool(v) case genid.MessageOptions_MessageSetWireFormat_field_number: md.L1.IsMessageSet = protowire.DecodeBool(v) } default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] } } } func (xd *Extension) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd pref.Descriptor, i int) { xd.L0.ParentFile = pf xd.L0.Parent = pd xd.L0.Index = i for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] switch typ { case protowire.VarintType: v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { case genid.FieldDescriptorProto_Number_field_number: xd.L1.Number = pref.FieldNumber(v) case genid.FieldDescriptorProto_Label_field_number: xd.L1.Cardinality = pref.Cardinality(v) case genid.FieldDescriptorProto_Type_field_number: xd.L1.Kind = pref.Kind(v) } case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { case genid.FieldDescriptorProto_Name_field_number: xd.L0.FullName = appendFullName(sb, pd.FullName(), v) case genid.FieldDescriptorProto_Extendee_field_number: xd.L1.Extendee = PlaceholderMessage(makeFullName(sb, v)) } default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] } } } func (sd *Service) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd pref.Descriptor, i int) { sd.L0.ParentFile = pf sd.L0.Parent = pd sd.L0.Index = i for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] switch typ { case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { case genid.ServiceDescriptorProto_Name_field_number: sd.L0.FullName = appendFullName(sb, pd.FullName(), v) } default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] } } } var nameBuilderPool = sync.Pool{ New: func() interface{} { return new(strs.Builder) }, } func getBuilder() *strs.Builder { return nameBuilderPool.Get().(*strs.Builder) } func putBuilder(b *strs.Builder) { nameBuilderPool.Put(b) } // makeFullName converts b to a protoreflect.FullName, // where b must start with a leading dot. func makeFullName(sb *strs.Builder, b []byte) pref.FullName { if len(b) == 0 || b[0] != '.' { panic("name reference must be fully qualified") } return pref.FullName(sb.MakeString(b[1:])) } func appendFullName(sb *strs.Builder, prefix pref.FullName, suffix []byte) pref.FullName { return sb.AppendFullName(prefix, pref.Name(strs.UnsafeString(suffix))) } golang-google-protobuf-1.27.1/internal/filedesc/desc_lazy.go000066400000000000000000000515231411250152500240610ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package filedesc import ( "reflect" "sync" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/descopts" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/internal/strs" "google.golang.org/protobuf/proto" pref "google.golang.org/protobuf/reflect/protoreflect" ) func (fd *File) lazyRawInit() { fd.unmarshalFull(fd.builder.RawDescriptor) fd.resolveMessages() fd.resolveExtensions() fd.resolveServices() } func (file *File) resolveMessages() { var depIdx int32 for i := range file.allMessages { md := &file.allMessages[i] // Resolve message field dependencies. for j := range md.L2.Fields.List { fd := &md.L2.Fields.List[j] // Weak fields are resolved upon actual use. if fd.L1.IsWeak { continue } // Resolve message field dependency. switch fd.L1.Kind { case pref.EnumKind: fd.L1.Enum = file.resolveEnumDependency(fd.L1.Enum, listFieldDeps, depIdx) depIdx++ case pref.MessageKind, pref.GroupKind: fd.L1.Message = file.resolveMessageDependency(fd.L1.Message, listFieldDeps, depIdx) depIdx++ } // Default is resolved here since it depends on Enum being resolved. if v := fd.L1.Default.val; v.IsValid() { fd.L1.Default = unmarshalDefault(v.Bytes(), fd.L1.Kind, file, fd.L1.Enum) } } } } func (file *File) resolveExtensions() { var depIdx int32 for i := range file.allExtensions { xd := &file.allExtensions[i] // Resolve extension field dependency. switch xd.L1.Kind { case pref.EnumKind: xd.L2.Enum = file.resolveEnumDependency(xd.L2.Enum, listExtDeps, depIdx) depIdx++ case pref.MessageKind, pref.GroupKind: xd.L2.Message = file.resolveMessageDependency(xd.L2.Message, listExtDeps, depIdx) depIdx++ } // Default is resolved here since it depends on Enum being resolved. if v := xd.L2.Default.val; v.IsValid() { xd.L2.Default = unmarshalDefault(v.Bytes(), xd.L1.Kind, file, xd.L2.Enum) } } } func (file *File) resolveServices() { var depIdx int32 for i := range file.allServices { sd := &file.allServices[i] // Resolve method dependencies. for j := range sd.L2.Methods.List { md := &sd.L2.Methods.List[j] md.L1.Input = file.resolveMessageDependency(md.L1.Input, listMethInDeps, depIdx) md.L1.Output = file.resolveMessageDependency(md.L1.Output, listMethOutDeps, depIdx) depIdx++ } } } func (file *File) resolveEnumDependency(ed pref.EnumDescriptor, i, j int32) pref.EnumDescriptor { r := file.builder.FileRegistry if r, ok := r.(resolverByIndex); ok { if ed2 := r.FindEnumByIndex(i, j, file.allEnums, file.allMessages); ed2 != nil { return ed2 } } for i := range file.allEnums { if ed2 := &file.allEnums[i]; ed2.L0.FullName == ed.FullName() { return ed2 } } if d, _ := r.FindDescriptorByName(ed.FullName()); d != nil { return d.(pref.EnumDescriptor) } return ed } func (file *File) resolveMessageDependency(md pref.MessageDescriptor, i, j int32) pref.MessageDescriptor { r := file.builder.FileRegistry if r, ok := r.(resolverByIndex); ok { if md2 := r.FindMessageByIndex(i, j, file.allEnums, file.allMessages); md2 != nil { return md2 } } for i := range file.allMessages { if md2 := &file.allMessages[i]; md2.L0.FullName == md.FullName() { return md2 } } if d, _ := r.FindDescriptorByName(md.FullName()); d != nil { return d.(pref.MessageDescriptor) } return md } func (fd *File) unmarshalFull(b []byte) { sb := getBuilder() defer putBuilder(sb) var enumIdx, messageIdx, extensionIdx, serviceIdx int var rawOptions []byte fd.L2 = new(FileL2) for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] switch typ { case protowire.VarintType: v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { case genid.FileDescriptorProto_PublicDependency_field_number: fd.L2.Imports[v].IsPublic = true case genid.FileDescriptorProto_WeakDependency_field_number: fd.L2.Imports[v].IsWeak = true } case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { case genid.FileDescriptorProto_Dependency_field_number: path := sb.MakeString(v) imp, _ := fd.builder.FileRegistry.FindFileByPath(path) if imp == nil { imp = PlaceholderFile(path) } fd.L2.Imports = append(fd.L2.Imports, pref.FileImport{FileDescriptor: imp}) case genid.FileDescriptorProto_EnumType_field_number: fd.L1.Enums.List[enumIdx].unmarshalFull(v, sb) enumIdx++ case genid.FileDescriptorProto_MessageType_field_number: fd.L1.Messages.List[messageIdx].unmarshalFull(v, sb) messageIdx++ case genid.FileDescriptorProto_Extension_field_number: fd.L1.Extensions.List[extensionIdx].unmarshalFull(v, sb) extensionIdx++ case genid.FileDescriptorProto_Service_field_number: fd.L1.Services.List[serviceIdx].unmarshalFull(v, sb) serviceIdx++ case genid.FileDescriptorProto_Options_field_number: rawOptions = appendOptions(rawOptions, v) } default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] } } fd.L2.Options = fd.builder.optionsUnmarshaler(&descopts.File, rawOptions) } func (ed *Enum) unmarshalFull(b []byte, sb *strs.Builder) { var rawValues [][]byte var rawOptions []byte if !ed.L1.eagerValues { ed.L2 = new(EnumL2) } for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] switch typ { case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { case genid.EnumDescriptorProto_Value_field_number: rawValues = append(rawValues, v) case genid.EnumDescriptorProto_ReservedName_field_number: ed.L2.ReservedNames.List = append(ed.L2.ReservedNames.List, pref.Name(sb.MakeString(v))) case genid.EnumDescriptorProto_ReservedRange_field_number: ed.L2.ReservedRanges.List = append(ed.L2.ReservedRanges.List, unmarshalEnumReservedRange(v)) case genid.EnumDescriptorProto_Options_field_number: rawOptions = appendOptions(rawOptions, v) } default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] } } if !ed.L1.eagerValues && len(rawValues) > 0 { ed.L2.Values.List = make([]EnumValue, len(rawValues)) for i, b := range rawValues { ed.L2.Values.List[i].unmarshalFull(b, sb, ed.L0.ParentFile, ed, i) } } ed.L2.Options = ed.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Enum, rawOptions) } func unmarshalEnumReservedRange(b []byte) (r [2]pref.EnumNumber) { for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] switch typ { case protowire.VarintType: v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { case genid.EnumDescriptorProto_EnumReservedRange_Start_field_number: r[0] = pref.EnumNumber(v) case genid.EnumDescriptorProto_EnumReservedRange_End_field_number: r[1] = pref.EnumNumber(v) } default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] } } return r } func (vd *EnumValue) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd pref.Descriptor, i int) { vd.L0.ParentFile = pf vd.L0.Parent = pd vd.L0.Index = i var rawOptions []byte for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] switch typ { case protowire.VarintType: v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { case genid.EnumValueDescriptorProto_Number_field_number: vd.L1.Number = pref.EnumNumber(v) } case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { case genid.EnumValueDescriptorProto_Name_field_number: // NOTE: Enum values are in the same scope as the enum parent. vd.L0.FullName = appendFullName(sb, pd.Parent().FullName(), v) case genid.EnumValueDescriptorProto_Options_field_number: rawOptions = appendOptions(rawOptions, v) } default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] } } vd.L1.Options = pf.builder.optionsUnmarshaler(&descopts.EnumValue, rawOptions) } func (md *Message) unmarshalFull(b []byte, sb *strs.Builder) { var rawFields, rawOneofs [][]byte var enumIdx, messageIdx, extensionIdx int var rawOptions []byte md.L2 = new(MessageL2) for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] switch typ { case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { case genid.DescriptorProto_Field_field_number: rawFields = append(rawFields, v) case genid.DescriptorProto_OneofDecl_field_number: rawOneofs = append(rawOneofs, v) case genid.DescriptorProto_ReservedName_field_number: md.L2.ReservedNames.List = append(md.L2.ReservedNames.List, pref.Name(sb.MakeString(v))) case genid.DescriptorProto_ReservedRange_field_number: md.L2.ReservedRanges.List = append(md.L2.ReservedRanges.List, unmarshalMessageReservedRange(v)) case genid.DescriptorProto_ExtensionRange_field_number: r, rawOptions := unmarshalMessageExtensionRange(v) opts := md.L0.ParentFile.builder.optionsUnmarshaler(&descopts.ExtensionRange, rawOptions) md.L2.ExtensionRanges.List = append(md.L2.ExtensionRanges.List, r) md.L2.ExtensionRangeOptions = append(md.L2.ExtensionRangeOptions, opts) case genid.DescriptorProto_EnumType_field_number: md.L1.Enums.List[enumIdx].unmarshalFull(v, sb) enumIdx++ case genid.DescriptorProto_NestedType_field_number: md.L1.Messages.List[messageIdx].unmarshalFull(v, sb) messageIdx++ case genid.DescriptorProto_Extension_field_number: md.L1.Extensions.List[extensionIdx].unmarshalFull(v, sb) extensionIdx++ case genid.DescriptorProto_Options_field_number: md.unmarshalOptions(v) rawOptions = appendOptions(rawOptions, v) } default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] } } if len(rawFields) > 0 || len(rawOneofs) > 0 { md.L2.Fields.List = make([]Field, len(rawFields)) md.L2.Oneofs.List = make([]Oneof, len(rawOneofs)) for i, b := range rawFields { fd := &md.L2.Fields.List[i] fd.unmarshalFull(b, sb, md.L0.ParentFile, md, i) if fd.L1.Cardinality == pref.Required { md.L2.RequiredNumbers.List = append(md.L2.RequiredNumbers.List, fd.L1.Number) } } for i, b := range rawOneofs { od := &md.L2.Oneofs.List[i] od.unmarshalFull(b, sb, md.L0.ParentFile, md, i) } } md.L2.Options = md.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Message, rawOptions) } func (md *Message) unmarshalOptions(b []byte) { for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] switch typ { case protowire.VarintType: v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { case genid.MessageOptions_MapEntry_field_number: md.L1.IsMapEntry = protowire.DecodeBool(v) case genid.MessageOptions_MessageSetWireFormat_field_number: md.L1.IsMessageSet = protowire.DecodeBool(v) } default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] } } } func unmarshalMessageReservedRange(b []byte) (r [2]pref.FieldNumber) { for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] switch typ { case protowire.VarintType: v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { case genid.DescriptorProto_ReservedRange_Start_field_number: r[0] = pref.FieldNumber(v) case genid.DescriptorProto_ReservedRange_End_field_number: r[1] = pref.FieldNumber(v) } default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] } } return r } func unmarshalMessageExtensionRange(b []byte) (r [2]pref.FieldNumber, rawOptions []byte) { for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] switch typ { case protowire.VarintType: v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { case genid.DescriptorProto_ExtensionRange_Start_field_number: r[0] = pref.FieldNumber(v) case genid.DescriptorProto_ExtensionRange_End_field_number: r[1] = pref.FieldNumber(v) } case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { case genid.DescriptorProto_ExtensionRange_Options_field_number: rawOptions = appendOptions(rawOptions, v) } default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] } } return r, rawOptions } func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd pref.Descriptor, i int) { fd.L0.ParentFile = pf fd.L0.Parent = pd fd.L0.Index = i var rawTypeName []byte var rawOptions []byte for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] switch typ { case protowire.VarintType: v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { case genid.FieldDescriptorProto_Number_field_number: fd.L1.Number = pref.FieldNumber(v) case genid.FieldDescriptorProto_Label_field_number: fd.L1.Cardinality = pref.Cardinality(v) case genid.FieldDescriptorProto_Type_field_number: fd.L1.Kind = pref.Kind(v) case genid.FieldDescriptorProto_OneofIndex_field_number: // In Message.unmarshalFull, we allocate slices for both // the field and oneof descriptors before unmarshaling either // of them. This ensures pointers to slice elements are stable. od := &pd.(*Message).L2.Oneofs.List[v] od.L1.Fields.List = append(od.L1.Fields.List, fd) if fd.L1.ContainingOneof != nil { panic("oneof type already set") } fd.L1.ContainingOneof = od case genid.FieldDescriptorProto_Proto3Optional_field_number: fd.L1.IsProto3Optional = protowire.DecodeBool(v) } case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { case genid.FieldDescriptorProto_Name_field_number: fd.L0.FullName = appendFullName(sb, pd.FullName(), v) case genid.FieldDescriptorProto_JsonName_field_number: fd.L1.StringName.InitJSON(sb.MakeString(v)) case genid.FieldDescriptorProto_DefaultValue_field_number: fd.L1.Default.val = pref.ValueOfBytes(v) // temporarily store as bytes; later resolved in resolveMessages case genid.FieldDescriptorProto_TypeName_field_number: rawTypeName = v case genid.FieldDescriptorProto_Options_field_number: fd.unmarshalOptions(v) rawOptions = appendOptions(rawOptions, v) } default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] } } if rawTypeName != nil { name := makeFullName(sb, rawTypeName) switch fd.L1.Kind { case pref.EnumKind: fd.L1.Enum = PlaceholderEnum(name) case pref.MessageKind, pref.GroupKind: fd.L1.Message = PlaceholderMessage(name) } } fd.L1.Options = pf.builder.optionsUnmarshaler(&descopts.Field, rawOptions) } func (fd *Field) unmarshalOptions(b []byte) { const FieldOptions_EnforceUTF8 = 13 for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] switch typ { case protowire.VarintType: v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { case genid.FieldOptions_Packed_field_number: fd.L1.HasPacked = true fd.L1.IsPacked = protowire.DecodeBool(v) case genid.FieldOptions_Weak_field_number: fd.L1.IsWeak = protowire.DecodeBool(v) case FieldOptions_EnforceUTF8: fd.L1.HasEnforceUTF8 = true fd.L1.EnforceUTF8 = protowire.DecodeBool(v) } default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] } } } func (od *Oneof) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd pref.Descriptor, i int) { od.L0.ParentFile = pf od.L0.Parent = pd od.L0.Index = i var rawOptions []byte for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] switch typ { case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { case genid.OneofDescriptorProto_Name_field_number: od.L0.FullName = appendFullName(sb, pd.FullName(), v) case genid.OneofDescriptorProto_Options_field_number: rawOptions = appendOptions(rawOptions, v) } default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] } } od.L1.Options = pf.builder.optionsUnmarshaler(&descopts.Oneof, rawOptions) } func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { var rawTypeName []byte var rawOptions []byte xd.L2 = new(ExtensionL2) for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] switch typ { case protowire.VarintType: v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { case genid.FieldDescriptorProto_Proto3Optional_field_number: xd.L2.IsProto3Optional = protowire.DecodeBool(v) } case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { case genid.FieldDescriptorProto_JsonName_field_number: xd.L2.StringName.InitJSON(sb.MakeString(v)) case genid.FieldDescriptorProto_DefaultValue_field_number: xd.L2.Default.val = pref.ValueOfBytes(v) // temporarily store as bytes; later resolved in resolveExtensions case genid.FieldDescriptorProto_TypeName_field_number: rawTypeName = v case genid.FieldDescriptorProto_Options_field_number: xd.unmarshalOptions(v) rawOptions = appendOptions(rawOptions, v) } default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] } } if rawTypeName != nil { name := makeFullName(sb, rawTypeName) switch xd.L1.Kind { case pref.EnumKind: xd.L2.Enum = PlaceholderEnum(name) case pref.MessageKind, pref.GroupKind: xd.L2.Message = PlaceholderMessage(name) } } xd.L2.Options = xd.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Field, rawOptions) } func (xd *Extension) unmarshalOptions(b []byte) { for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] switch typ { case protowire.VarintType: v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { case genid.FieldOptions_Packed_field_number: xd.L2.IsPacked = protowire.DecodeBool(v) } default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] } } } func (sd *Service) unmarshalFull(b []byte, sb *strs.Builder) { var rawMethods [][]byte var rawOptions []byte sd.L2 = new(ServiceL2) for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] switch typ { case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { case genid.ServiceDescriptorProto_Method_field_number: rawMethods = append(rawMethods, v) case genid.ServiceDescriptorProto_Options_field_number: rawOptions = appendOptions(rawOptions, v) } default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] } } if len(rawMethods) > 0 { sd.L2.Methods.List = make([]Method, len(rawMethods)) for i, b := range rawMethods { sd.L2.Methods.List[i].unmarshalFull(b, sb, sd.L0.ParentFile, sd, i) } } sd.L2.Options = sd.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Service, rawOptions) } func (md *Method) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd pref.Descriptor, i int) { md.L0.ParentFile = pf md.L0.Parent = pd md.L0.Index = i var rawOptions []byte for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] switch typ { case protowire.VarintType: v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { case genid.MethodDescriptorProto_ClientStreaming_field_number: md.L1.IsStreamingClient = protowire.DecodeBool(v) case genid.MethodDescriptorProto_ServerStreaming_field_number: md.L1.IsStreamingServer = protowire.DecodeBool(v) } case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { case genid.MethodDescriptorProto_Name_field_number: md.L0.FullName = appendFullName(sb, pd.FullName(), v) case genid.MethodDescriptorProto_InputType_field_number: md.L1.Input = PlaceholderMessage(makeFullName(sb, v)) case genid.MethodDescriptorProto_OutputType_field_number: md.L1.Output = PlaceholderMessage(makeFullName(sb, v)) case genid.MethodDescriptorProto_Options_field_number: rawOptions = appendOptions(rawOptions, v) } default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] } } md.L1.Options = pf.builder.optionsUnmarshaler(&descopts.Method, rawOptions) } // appendOptions appends src to dst, where the returned slice is never nil. // This is necessary to distinguish between empty and unpopulated options. func appendOptions(dst, src []byte) []byte { if dst == nil { dst = []byte{} } return append(dst, src...) } // optionsUnmarshaler constructs a lazy unmarshal function for an options message. // // The type of message to unmarshal to is passed as a pointer since the // vars in descopts may not yet be populated at the time this function is called. func (db *Builder) optionsUnmarshaler(p *pref.ProtoMessage, b []byte) func() pref.ProtoMessage { if b == nil { return nil } var opts pref.ProtoMessage var once sync.Once return func() pref.ProtoMessage { once.Do(func() { if *p == nil { panic("Descriptor.Options called without importing the descriptor package") } opts = reflect.New(reflect.TypeOf(*p).Elem()).Interface().(pref.ProtoMessage) if err := (proto.UnmarshalOptions{ AllowPartial: true, Resolver: db.TypeResolver, }).Unmarshal(b, opts); err != nil { panic(err) } }) return opts } } golang-google-protobuf-1.27.1/internal/filedesc/desc_list.go000066400000000000000000000344261411250152500240600ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package filedesc import ( "fmt" "math" "sort" "sync" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/descfmt" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/pragma" "google.golang.org/protobuf/reflect/protoreflect" pref "google.golang.org/protobuf/reflect/protoreflect" ) type FileImports []pref.FileImport func (p *FileImports) Len() int { return len(*p) } func (p *FileImports) Get(i int) pref.FileImport { return (*p)[i] } func (p *FileImports) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } func (p *FileImports) ProtoInternal(pragma.DoNotImplement) {} type Names struct { List []pref.Name once sync.Once has map[pref.Name]int // protected by once } func (p *Names) Len() int { return len(p.List) } func (p *Names) Get(i int) pref.Name { return p.List[i] } func (p *Names) Has(s pref.Name) bool { return p.lazyInit().has[s] > 0 } func (p *Names) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } func (p *Names) ProtoInternal(pragma.DoNotImplement) {} func (p *Names) lazyInit() *Names { p.once.Do(func() { if len(p.List) > 0 { p.has = make(map[pref.Name]int, len(p.List)) for _, s := range p.List { p.has[s] = p.has[s] + 1 } } }) return p } // CheckValid reports any errors with the set of names with an error message // that completes the sentence: "ranges is invalid because it has ..." func (p *Names) CheckValid() error { for s, n := range p.lazyInit().has { switch { case n > 1: return errors.New("duplicate name: %q", s) case false && !s.IsValid(): // NOTE: The C++ implementation does not validate the identifier. // See https://github.com/protocolbuffers/protobuf/issues/6335. return errors.New("invalid name: %q", s) } } return nil } type EnumRanges struct { List [][2]pref.EnumNumber // start inclusive; end inclusive once sync.Once sorted [][2]pref.EnumNumber // protected by once } func (p *EnumRanges) Len() int { return len(p.List) } func (p *EnumRanges) Get(i int) [2]pref.EnumNumber { return p.List[i] } func (p *EnumRanges) Has(n pref.EnumNumber) bool { for ls := p.lazyInit().sorted; len(ls) > 0; { i := len(ls) / 2 switch r := enumRange(ls[i]); { case n < r.Start(): ls = ls[:i] // search lower case n > r.End(): ls = ls[i+1:] // search upper default: return true } } return false } func (p *EnumRanges) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } func (p *EnumRanges) ProtoInternal(pragma.DoNotImplement) {} func (p *EnumRanges) lazyInit() *EnumRanges { p.once.Do(func() { p.sorted = append(p.sorted, p.List...) sort.Slice(p.sorted, func(i, j int) bool { return p.sorted[i][0] < p.sorted[j][0] }) }) return p } // CheckValid reports any errors with the set of names with an error message // that completes the sentence: "ranges is invalid because it has ..." func (p *EnumRanges) CheckValid() error { var rp enumRange for i, r := range p.lazyInit().sorted { r := enumRange(r) switch { case !(r.Start() <= r.End()): return errors.New("invalid range: %v", r) case !(rp.End() < r.Start()) && i > 0: return errors.New("overlapping ranges: %v with %v", rp, r) } rp = r } return nil } type enumRange [2]protoreflect.EnumNumber func (r enumRange) Start() protoreflect.EnumNumber { return r[0] } // inclusive func (r enumRange) End() protoreflect.EnumNumber { return r[1] } // inclusive func (r enumRange) String() string { if r.Start() == r.End() { return fmt.Sprintf("%d", r.Start()) } return fmt.Sprintf("%d to %d", r.Start(), r.End()) } type FieldRanges struct { List [][2]pref.FieldNumber // start inclusive; end exclusive once sync.Once sorted [][2]pref.FieldNumber // protected by once } func (p *FieldRanges) Len() int { return len(p.List) } func (p *FieldRanges) Get(i int) [2]pref.FieldNumber { return p.List[i] } func (p *FieldRanges) Has(n pref.FieldNumber) bool { for ls := p.lazyInit().sorted; len(ls) > 0; { i := len(ls) / 2 switch r := fieldRange(ls[i]); { case n < r.Start(): ls = ls[:i] // search lower case n > r.End(): ls = ls[i+1:] // search upper default: return true } } return false } func (p *FieldRanges) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } func (p *FieldRanges) ProtoInternal(pragma.DoNotImplement) {} func (p *FieldRanges) lazyInit() *FieldRanges { p.once.Do(func() { p.sorted = append(p.sorted, p.List...) sort.Slice(p.sorted, func(i, j int) bool { return p.sorted[i][0] < p.sorted[j][0] }) }) return p } // CheckValid reports any errors with the set of ranges with an error message // that completes the sentence: "ranges is invalid because it has ..." func (p *FieldRanges) CheckValid(isMessageSet bool) error { var rp fieldRange for i, r := range p.lazyInit().sorted { r := fieldRange(r) switch { case !isValidFieldNumber(r.Start(), isMessageSet): return errors.New("invalid field number: %d", r.Start()) case !isValidFieldNumber(r.End(), isMessageSet): return errors.New("invalid field number: %d", r.End()) case !(r.Start() <= r.End()): return errors.New("invalid range: %v", r) case !(rp.End() < r.Start()) && i > 0: return errors.New("overlapping ranges: %v with %v", rp, r) } rp = r } return nil } // isValidFieldNumber reports whether the field number is valid. // Unlike the FieldNumber.IsValid method, it allows ranges that cover the // reserved number range. func isValidFieldNumber(n protoreflect.FieldNumber, isMessageSet bool) bool { return protowire.MinValidNumber <= n && (n <= protowire.MaxValidNumber || isMessageSet) } // CheckOverlap reports an error if p and q overlap. func (p *FieldRanges) CheckOverlap(q *FieldRanges) error { rps := p.lazyInit().sorted rqs := q.lazyInit().sorted for pi, qi := 0, 0; pi < len(rps) && qi < len(rqs); { rp := fieldRange(rps[pi]) rq := fieldRange(rqs[qi]) if !(rp.End() < rq.Start() || rq.End() < rp.Start()) { return errors.New("overlapping ranges: %v with %v", rp, rq) } if rp.Start() < rq.Start() { pi++ } else { qi++ } } return nil } type fieldRange [2]protoreflect.FieldNumber func (r fieldRange) Start() protoreflect.FieldNumber { return r[0] } // inclusive func (r fieldRange) End() protoreflect.FieldNumber { return r[1] - 1 } // inclusive func (r fieldRange) String() string { if r.Start() == r.End() { return fmt.Sprintf("%d", r.Start()) } return fmt.Sprintf("%d to %d", r.Start(), r.End()) } type FieldNumbers struct { List []pref.FieldNumber once sync.Once has map[pref.FieldNumber]struct{} // protected by once } func (p *FieldNumbers) Len() int { return len(p.List) } func (p *FieldNumbers) Get(i int) pref.FieldNumber { return p.List[i] } func (p *FieldNumbers) Has(n pref.FieldNumber) bool { p.once.Do(func() { if len(p.List) > 0 { p.has = make(map[pref.FieldNumber]struct{}, len(p.List)) for _, n := range p.List { p.has[n] = struct{}{} } } }) _, ok := p.has[n] return ok } func (p *FieldNumbers) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } func (p *FieldNumbers) ProtoInternal(pragma.DoNotImplement) {} type OneofFields struct { List []pref.FieldDescriptor once sync.Once byName map[pref.Name]pref.FieldDescriptor // protected by once byJSON map[string]pref.FieldDescriptor // protected by once byText map[string]pref.FieldDescriptor // protected by once byNum map[pref.FieldNumber]pref.FieldDescriptor // protected by once } func (p *OneofFields) Len() int { return len(p.List) } func (p *OneofFields) Get(i int) pref.FieldDescriptor { return p.List[i] } func (p *OneofFields) ByName(s pref.Name) pref.FieldDescriptor { return p.lazyInit().byName[s] } func (p *OneofFields) ByJSONName(s string) pref.FieldDescriptor { return p.lazyInit().byJSON[s] } func (p *OneofFields) ByTextName(s string) pref.FieldDescriptor { return p.lazyInit().byText[s] } func (p *OneofFields) ByNumber(n pref.FieldNumber) pref.FieldDescriptor { return p.lazyInit().byNum[n] } func (p *OneofFields) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } func (p *OneofFields) ProtoInternal(pragma.DoNotImplement) {} func (p *OneofFields) lazyInit() *OneofFields { p.once.Do(func() { if len(p.List) > 0 { p.byName = make(map[pref.Name]pref.FieldDescriptor, len(p.List)) p.byJSON = make(map[string]pref.FieldDescriptor, len(p.List)) p.byText = make(map[string]pref.FieldDescriptor, len(p.List)) p.byNum = make(map[pref.FieldNumber]pref.FieldDescriptor, len(p.List)) for _, f := range p.List { // Field names and numbers are guaranteed to be unique. p.byName[f.Name()] = f p.byJSON[f.JSONName()] = f p.byText[f.TextName()] = f p.byNum[f.Number()] = f } } }) return p } type SourceLocations struct { // List is a list of SourceLocations. // The SourceLocation.Next field does not need to be populated // as it will be lazily populated upon first need. List []pref.SourceLocation // File is the parent file descriptor that these locations are relative to. // If non-nil, ByDescriptor verifies that the provided descriptor // is a child of this file descriptor. File pref.FileDescriptor once sync.Once byPath map[pathKey]int } func (p *SourceLocations) Len() int { return len(p.List) } func (p *SourceLocations) Get(i int) pref.SourceLocation { return p.lazyInit().List[i] } func (p *SourceLocations) byKey(k pathKey) pref.SourceLocation { if i, ok := p.lazyInit().byPath[k]; ok { return p.List[i] } return pref.SourceLocation{} } func (p *SourceLocations) ByPath(path pref.SourcePath) pref.SourceLocation { return p.byKey(newPathKey(path)) } func (p *SourceLocations) ByDescriptor(desc pref.Descriptor) pref.SourceLocation { if p.File != nil && desc != nil && p.File != desc.ParentFile() { return pref.SourceLocation{} // mismatching parent files } var pathArr [16]int32 path := pathArr[:0] for { switch desc.(type) { case pref.FileDescriptor: // Reverse the path since it was constructed in reverse. for i, j := 0, len(path)-1; i < j; i, j = i+1, j-1 { path[i], path[j] = path[j], path[i] } return p.byKey(newPathKey(path)) case pref.MessageDescriptor: path = append(path, int32(desc.Index())) desc = desc.Parent() switch desc.(type) { case pref.FileDescriptor: path = append(path, int32(genid.FileDescriptorProto_MessageType_field_number)) case pref.MessageDescriptor: path = append(path, int32(genid.DescriptorProto_NestedType_field_number)) default: return pref.SourceLocation{} } case pref.FieldDescriptor: isExtension := desc.(pref.FieldDescriptor).IsExtension() path = append(path, int32(desc.Index())) desc = desc.Parent() if isExtension { switch desc.(type) { case pref.FileDescriptor: path = append(path, int32(genid.FileDescriptorProto_Extension_field_number)) case pref.MessageDescriptor: path = append(path, int32(genid.DescriptorProto_Extension_field_number)) default: return pref.SourceLocation{} } } else { switch desc.(type) { case pref.MessageDescriptor: path = append(path, int32(genid.DescriptorProto_Field_field_number)) default: return pref.SourceLocation{} } } case pref.OneofDescriptor: path = append(path, int32(desc.Index())) desc = desc.Parent() switch desc.(type) { case pref.MessageDescriptor: path = append(path, int32(genid.DescriptorProto_OneofDecl_field_number)) default: return pref.SourceLocation{} } case pref.EnumDescriptor: path = append(path, int32(desc.Index())) desc = desc.Parent() switch desc.(type) { case pref.FileDescriptor: path = append(path, int32(genid.FileDescriptorProto_EnumType_field_number)) case pref.MessageDescriptor: path = append(path, int32(genid.DescriptorProto_EnumType_field_number)) default: return pref.SourceLocation{} } case pref.EnumValueDescriptor: path = append(path, int32(desc.Index())) desc = desc.Parent() switch desc.(type) { case pref.EnumDescriptor: path = append(path, int32(genid.EnumDescriptorProto_Value_field_number)) default: return pref.SourceLocation{} } case pref.ServiceDescriptor: path = append(path, int32(desc.Index())) desc = desc.Parent() switch desc.(type) { case pref.FileDescriptor: path = append(path, int32(genid.FileDescriptorProto_Service_field_number)) default: return pref.SourceLocation{} } case pref.MethodDescriptor: path = append(path, int32(desc.Index())) desc = desc.Parent() switch desc.(type) { case pref.ServiceDescriptor: path = append(path, int32(genid.ServiceDescriptorProto_Method_field_number)) default: return pref.SourceLocation{} } default: return pref.SourceLocation{} } } } func (p *SourceLocations) lazyInit() *SourceLocations { p.once.Do(func() { if len(p.List) > 0 { // Collect all the indexes for a given path. pathIdxs := make(map[pathKey][]int, len(p.List)) for i, l := range p.List { k := newPathKey(l.Path) pathIdxs[k] = append(pathIdxs[k], i) } // Update the next index for all locations. p.byPath = make(map[pathKey]int, len(p.List)) for k, idxs := range pathIdxs { for i := 0; i < len(idxs)-1; i++ { p.List[idxs[i]].Next = idxs[i+1] } p.List[idxs[len(idxs)-1]].Next = 0 p.byPath[k] = idxs[0] // record the first location for this path } } }) return p } func (p *SourceLocations) ProtoInternal(pragma.DoNotImplement) {} // pathKey is a comparable representation of protoreflect.SourcePath. type pathKey struct { arr [16]uint8 // first n-1 path segments; last element is the length str string // used if the path does not fit in arr } func newPathKey(p pref.SourcePath) (k pathKey) { if len(p) < len(k.arr) { for i, ps := range p { if ps < 0 || math.MaxUint8 <= ps { return pathKey{str: p.String()} } k.arr[i] = uint8(ps) } k.arr[len(k.arr)-1] = uint8(len(p)) return k } return pathKey{str: p.String()} } golang-google-protobuf-1.27.1/internal/filedesc/desc_list_gen.go000066400000000000000000000205761411250152500247120ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by generate-types. DO NOT EDIT. package filedesc import ( "fmt" "sync" "google.golang.org/protobuf/internal/descfmt" "google.golang.org/protobuf/internal/pragma" "google.golang.org/protobuf/reflect/protoreflect" ) type Enums struct { List []Enum once sync.Once byName map[protoreflect.Name]*Enum // protected by once } func (p *Enums) Len() int { return len(p.List) } func (p *Enums) Get(i int) protoreflect.EnumDescriptor { return &p.List[i] } func (p *Enums) ByName(s protoreflect.Name) protoreflect.EnumDescriptor { if d := p.lazyInit().byName[s]; d != nil { return d } return nil } func (p *Enums) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } func (p *Enums) ProtoInternal(pragma.DoNotImplement) {} func (p *Enums) lazyInit() *Enums { p.once.Do(func() { if len(p.List) > 0 { p.byName = make(map[protoreflect.Name]*Enum, len(p.List)) for i := range p.List { d := &p.List[i] if _, ok := p.byName[d.Name()]; !ok { p.byName[d.Name()] = d } } } }) return p } type EnumValues struct { List []EnumValue once sync.Once byName map[protoreflect.Name]*EnumValue // protected by once byNum map[protoreflect.EnumNumber]*EnumValue // protected by once } func (p *EnumValues) Len() int { return len(p.List) } func (p *EnumValues) Get(i int) protoreflect.EnumValueDescriptor { return &p.List[i] } func (p *EnumValues) ByName(s protoreflect.Name) protoreflect.EnumValueDescriptor { if d := p.lazyInit().byName[s]; d != nil { return d } return nil } func (p *EnumValues) ByNumber(n protoreflect.EnumNumber) protoreflect.EnumValueDescriptor { if d := p.lazyInit().byNum[n]; d != nil { return d } return nil } func (p *EnumValues) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } func (p *EnumValues) ProtoInternal(pragma.DoNotImplement) {} func (p *EnumValues) lazyInit() *EnumValues { p.once.Do(func() { if len(p.List) > 0 { p.byName = make(map[protoreflect.Name]*EnumValue, len(p.List)) p.byNum = make(map[protoreflect.EnumNumber]*EnumValue, len(p.List)) for i := range p.List { d := &p.List[i] if _, ok := p.byName[d.Name()]; !ok { p.byName[d.Name()] = d } if _, ok := p.byNum[d.Number()]; !ok { p.byNum[d.Number()] = d } } } }) return p } type Messages struct { List []Message once sync.Once byName map[protoreflect.Name]*Message // protected by once } func (p *Messages) Len() int { return len(p.List) } func (p *Messages) Get(i int) protoreflect.MessageDescriptor { return &p.List[i] } func (p *Messages) ByName(s protoreflect.Name) protoreflect.MessageDescriptor { if d := p.lazyInit().byName[s]; d != nil { return d } return nil } func (p *Messages) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } func (p *Messages) ProtoInternal(pragma.DoNotImplement) {} func (p *Messages) lazyInit() *Messages { p.once.Do(func() { if len(p.List) > 0 { p.byName = make(map[protoreflect.Name]*Message, len(p.List)) for i := range p.List { d := &p.List[i] if _, ok := p.byName[d.Name()]; !ok { p.byName[d.Name()] = d } } } }) return p } type Fields struct { List []Field once sync.Once byName map[protoreflect.Name]*Field // protected by once byJSON map[string]*Field // protected by once byText map[string]*Field // protected by once byNum map[protoreflect.FieldNumber]*Field // protected by once } func (p *Fields) Len() int { return len(p.List) } func (p *Fields) Get(i int) protoreflect.FieldDescriptor { return &p.List[i] } func (p *Fields) ByName(s protoreflect.Name) protoreflect.FieldDescriptor { if d := p.lazyInit().byName[s]; d != nil { return d } return nil } func (p *Fields) ByJSONName(s string) protoreflect.FieldDescriptor { if d := p.lazyInit().byJSON[s]; d != nil { return d } return nil } func (p *Fields) ByTextName(s string) protoreflect.FieldDescriptor { if d := p.lazyInit().byText[s]; d != nil { return d } return nil } func (p *Fields) ByNumber(n protoreflect.FieldNumber) protoreflect.FieldDescriptor { if d := p.lazyInit().byNum[n]; d != nil { return d } return nil } func (p *Fields) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } func (p *Fields) ProtoInternal(pragma.DoNotImplement) {} func (p *Fields) lazyInit() *Fields { p.once.Do(func() { if len(p.List) > 0 { p.byName = make(map[protoreflect.Name]*Field, len(p.List)) p.byJSON = make(map[string]*Field, len(p.List)) p.byText = make(map[string]*Field, len(p.List)) p.byNum = make(map[protoreflect.FieldNumber]*Field, len(p.List)) for i := range p.List { d := &p.List[i] if _, ok := p.byName[d.Name()]; !ok { p.byName[d.Name()] = d } if _, ok := p.byJSON[d.JSONName()]; !ok { p.byJSON[d.JSONName()] = d } if _, ok := p.byText[d.TextName()]; !ok { p.byText[d.TextName()] = d } if _, ok := p.byNum[d.Number()]; !ok { p.byNum[d.Number()] = d } } } }) return p } type Oneofs struct { List []Oneof once sync.Once byName map[protoreflect.Name]*Oneof // protected by once } func (p *Oneofs) Len() int { return len(p.List) } func (p *Oneofs) Get(i int) protoreflect.OneofDescriptor { return &p.List[i] } func (p *Oneofs) ByName(s protoreflect.Name) protoreflect.OneofDescriptor { if d := p.lazyInit().byName[s]; d != nil { return d } return nil } func (p *Oneofs) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } func (p *Oneofs) ProtoInternal(pragma.DoNotImplement) {} func (p *Oneofs) lazyInit() *Oneofs { p.once.Do(func() { if len(p.List) > 0 { p.byName = make(map[protoreflect.Name]*Oneof, len(p.List)) for i := range p.List { d := &p.List[i] if _, ok := p.byName[d.Name()]; !ok { p.byName[d.Name()] = d } } } }) return p } type Extensions struct { List []Extension once sync.Once byName map[protoreflect.Name]*Extension // protected by once } func (p *Extensions) Len() int { return len(p.List) } func (p *Extensions) Get(i int) protoreflect.ExtensionDescriptor { return &p.List[i] } func (p *Extensions) ByName(s protoreflect.Name) protoreflect.ExtensionDescriptor { if d := p.lazyInit().byName[s]; d != nil { return d } return nil } func (p *Extensions) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } func (p *Extensions) ProtoInternal(pragma.DoNotImplement) {} func (p *Extensions) lazyInit() *Extensions { p.once.Do(func() { if len(p.List) > 0 { p.byName = make(map[protoreflect.Name]*Extension, len(p.List)) for i := range p.List { d := &p.List[i] if _, ok := p.byName[d.Name()]; !ok { p.byName[d.Name()] = d } } } }) return p } type Services struct { List []Service once sync.Once byName map[protoreflect.Name]*Service // protected by once } func (p *Services) Len() int { return len(p.List) } func (p *Services) Get(i int) protoreflect.ServiceDescriptor { return &p.List[i] } func (p *Services) ByName(s protoreflect.Name) protoreflect.ServiceDescriptor { if d := p.lazyInit().byName[s]; d != nil { return d } return nil } func (p *Services) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } func (p *Services) ProtoInternal(pragma.DoNotImplement) {} func (p *Services) lazyInit() *Services { p.once.Do(func() { if len(p.List) > 0 { p.byName = make(map[protoreflect.Name]*Service, len(p.List)) for i := range p.List { d := &p.List[i] if _, ok := p.byName[d.Name()]; !ok { p.byName[d.Name()] = d } } } }) return p } type Methods struct { List []Method once sync.Once byName map[protoreflect.Name]*Method // protected by once } func (p *Methods) Len() int { return len(p.List) } func (p *Methods) Get(i int) protoreflect.MethodDescriptor { return &p.List[i] } func (p *Methods) ByName(s protoreflect.Name) protoreflect.MethodDescriptor { if d := p.lazyInit().byName[s]; d != nil { return d } return nil } func (p *Methods) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } func (p *Methods) ProtoInternal(pragma.DoNotImplement) {} func (p *Methods) lazyInit() *Methods { p.once.Do(func() { if len(p.List) > 0 { p.byName = make(map[protoreflect.Name]*Method, len(p.List)) for i := range p.List { d := &p.List[i] if _, ok := p.byName[d.Name()]; !ok { p.byName[d.Name()] = d } } } }) return p } golang-google-protobuf-1.27.1/internal/filedesc/desc_test.go000066400000000000000000000622541411250152500240640ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package filedesc_test import ( "fmt" "reflect" "regexp" "strconv" "strings" "testing" "github.com/google/go-cmp/cmp" detrand "google.golang.org/protobuf/internal/detrand" "google.golang.org/protobuf/internal/filedesc" "google.golang.org/protobuf/proto" pdesc "google.golang.org/protobuf/reflect/protodesc" pref "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/types/descriptorpb" ) func init() { // Disable detrand to enable direct comparisons on outputs. detrand.Disable() } // TODO: Test protodesc.NewFile with imported files. func TestFile(t *testing.T) { f1 := &descriptorpb.FileDescriptorProto{ Syntax: proto.String("proto2"), Name: proto.String("path/to/file.proto"), Package: proto.String("test"), Options: &descriptorpb.FileOptions{Deprecated: proto.Bool(true)}, MessageType: []*descriptorpb.DescriptorProto{{ Name: proto.String("A"), Options: &descriptorpb.MessageOptions{ Deprecated: proto.Bool(true), }, }, { Name: proto.String("B"), Field: []*descriptorpb.FieldDescriptorProto{{ Name: proto.String("field_one"), Number: proto.Int32(1), Label: descriptorpb.FieldDescriptorProto_Label(pref.Optional).Enum(), Type: descriptorpb.FieldDescriptorProto_Type(pref.StringKind).Enum(), DefaultValue: proto.String("hello, \"world!\"\n"), OneofIndex: proto.Int32(0), }, { Name: proto.String("field_two"), JsonName: proto.String("Field2"), Number: proto.Int32(2), Label: descriptorpb.FieldDescriptorProto_Label(pref.Optional).Enum(), Type: descriptorpb.FieldDescriptorProto_Type(pref.EnumKind).Enum(), DefaultValue: proto.String("BAR"), TypeName: proto.String(".test.E1"), OneofIndex: proto.Int32(1), }, { Name: proto.String("field_three"), Number: proto.Int32(3), Label: descriptorpb.FieldDescriptorProto_Label(pref.Optional).Enum(), Type: descriptorpb.FieldDescriptorProto_Type(pref.MessageKind).Enum(), TypeName: proto.String(".test.C"), OneofIndex: proto.Int32(1), }, { Name: proto.String("field_four"), JsonName: proto.String("Field4"), Number: proto.Int32(4), Label: descriptorpb.FieldDescriptorProto_Label(pref.Repeated).Enum(), Type: descriptorpb.FieldDescriptorProto_Type(pref.MessageKind).Enum(), TypeName: proto.String(".test.B.FieldFourEntry"), }, { Name: proto.String("field_five"), Number: proto.Int32(5), Label: descriptorpb.FieldDescriptorProto_Label(pref.Repeated).Enum(), Type: descriptorpb.FieldDescriptorProto_Type(pref.Int32Kind).Enum(), Options: &descriptorpb.FieldOptions{Packed: proto.Bool(true)}, }, { Name: proto.String("field_six"), Number: proto.Int32(6), Label: descriptorpb.FieldDescriptorProto_Label(pref.Required).Enum(), Type: descriptorpb.FieldDescriptorProto_Type(pref.BytesKind).Enum(), }}, OneofDecl: []*descriptorpb.OneofDescriptorProto{ { Name: proto.String("O1"), Options: &descriptorpb.OneofOptions{ UninterpretedOption: []*descriptorpb.UninterpretedOption{ {StringValue: []byte("option")}, }, }, }, {Name: proto.String("O2")}, }, ReservedName: []string{"fizz", "buzz"}, ReservedRange: []*descriptorpb.DescriptorProto_ReservedRange{ {Start: proto.Int32(100), End: proto.Int32(200)}, {Start: proto.Int32(300), End: proto.Int32(301)}, }, ExtensionRange: []*descriptorpb.DescriptorProto_ExtensionRange{ {Start: proto.Int32(1000), End: proto.Int32(2000)}, {Start: proto.Int32(3000), End: proto.Int32(3001), Options: new(descriptorpb.ExtensionRangeOptions)}, }, NestedType: []*descriptorpb.DescriptorProto{{ Name: proto.String("FieldFourEntry"), Field: []*descriptorpb.FieldDescriptorProto{{ Name: proto.String("key"), Number: proto.Int32(1), Label: descriptorpb.FieldDescriptorProto_Label(pref.Optional).Enum(), Type: descriptorpb.FieldDescriptorProto_Type(pref.StringKind).Enum(), }, { Name: proto.String("value"), Number: proto.Int32(2), Label: descriptorpb.FieldDescriptorProto_Label(pref.Optional).Enum(), Type: descriptorpb.FieldDescriptorProto_Type(pref.MessageKind).Enum(), TypeName: proto.String(".test.B"), }}, Options: &descriptorpb.MessageOptions{ MapEntry: proto.Bool(true), }, }}, }, { Name: proto.String("C"), NestedType: []*descriptorpb.DescriptorProto{{ Name: proto.String("A"), Field: []*descriptorpb.FieldDescriptorProto{{ Name: proto.String("F"), Number: proto.Int32(1), Label: descriptorpb.FieldDescriptorProto_Label(pref.Required).Enum(), Type: descriptorpb.FieldDescriptorProto_Type(pref.BytesKind).Enum(), DefaultValue: proto.String(`dead\276\357`), }}, }}, EnumType: []*descriptorpb.EnumDescriptorProto{{ Name: proto.String("E1"), Value: []*descriptorpb.EnumValueDescriptorProto{ {Name: proto.String("FOO"), Number: proto.Int32(0)}, {Name: proto.String("BAR"), Number: proto.Int32(1)}, }, }}, Extension: []*descriptorpb.FieldDescriptorProto{{ Name: proto.String("X"), Number: proto.Int32(1000), Label: descriptorpb.FieldDescriptorProto_Label(pref.Repeated).Enum(), Type: descriptorpb.FieldDescriptorProto_Type(pref.MessageKind).Enum(), TypeName: proto.String(".test.C"), Extendee: proto.String(".test.B"), }}, }}, EnumType: []*descriptorpb.EnumDescriptorProto{{ Name: proto.String("E1"), Options: &descriptorpb.EnumOptions{Deprecated: proto.Bool(true)}, Value: []*descriptorpb.EnumValueDescriptorProto{ { Name: proto.String("FOO"), Number: proto.Int32(0), Options: &descriptorpb.EnumValueOptions{Deprecated: proto.Bool(true)}, }, {Name: proto.String("BAR"), Number: proto.Int32(1)}, }, ReservedName: []string{"FIZZ", "BUZZ"}, ReservedRange: []*descriptorpb.EnumDescriptorProto_EnumReservedRange{ {Start: proto.Int32(10), End: proto.Int32(19)}, {Start: proto.Int32(30), End: proto.Int32(30)}, }, }}, Extension: []*descriptorpb.FieldDescriptorProto{{ Name: proto.String("X"), Number: proto.Int32(1000), Label: descriptorpb.FieldDescriptorProto_Label(pref.Repeated).Enum(), Type: descriptorpb.FieldDescriptorProto_Type(pref.EnumKind).Enum(), Options: &descriptorpb.FieldOptions{Packed: proto.Bool(true)}, TypeName: proto.String(".test.E1"), Extendee: proto.String(".test.B"), }}, Service: []*descriptorpb.ServiceDescriptorProto{{ Name: proto.String("S"), Options: &descriptorpb.ServiceOptions{Deprecated: proto.Bool(true)}, Method: []*descriptorpb.MethodDescriptorProto{{ Name: proto.String("M"), InputType: proto.String(".test.A"), OutputType: proto.String(".test.C.A"), ClientStreaming: proto.Bool(true), ServerStreaming: proto.Bool(true), Options: &descriptorpb.MethodOptions{Deprecated: proto.Bool(true)}, }}, }}, } fd1, err := pdesc.NewFile(f1, nil) if err != nil { t.Fatalf("protodesc.NewFile() error: %v", err) } b, err := proto.Marshal(f1) if err != nil { t.Fatalf("proto.Marshal() error: %v", err) } fd2 := filedesc.Builder{RawDescriptor: b}.Build().File tests := []struct { name string desc pref.FileDescriptor }{ {"protodesc.NewFile", fd1}, {"filedesc.Builder.Build", fd2}, } for _, tt := range tests { tt := tt t.Run(tt.name, func(t *testing.T) { // Run sub-tests in parallel to induce potential races. for i := 0; i < 2; i++ { t.Run("Accessors", func(t *testing.T) { t.Parallel(); testFileAccessors(t, tt.desc) }) t.Run("Format", func(t *testing.T) { t.Parallel(); testFileFormat(t, tt.desc) }) } }) } } func testFileAccessors(t *testing.T, fd pref.FileDescriptor) { // Represent the descriptor as a map where each key is an accessor method // and the value is either the wanted tail value or another accessor map. type M = map[string]interface{} want := M{ "Parent": nil, "Index": 0, "Syntax": pref.Proto2, "Name": pref.Name("test"), "FullName": pref.FullName("test"), "Path": "path/to/file.proto", "Package": pref.FullName("test"), "IsPlaceholder": false, "Options": &descriptorpb.FileOptions{Deprecated: proto.Bool(true)}, "Messages": M{ "Len": 3, "Get:0": M{ "Parent": M{"FullName": pref.FullName("test")}, "Index": 0, "Syntax": pref.Proto2, "Name": pref.Name("A"), "FullName": pref.FullName("test.A"), "IsPlaceholder": false, "IsMapEntry": false, "Options": &descriptorpb.MessageOptions{ Deprecated: proto.Bool(true), }, "Oneofs": M{"Len": 0}, "RequiredNumbers": M{"Len": 0}, "ExtensionRanges": M{"Len": 0}, "Messages": M{"Len": 0}, "Enums": M{"Len": 0}, "Extensions": M{"Len": 0}, }, "ByName:B": M{ "Name": pref.Name("B"), "Index": 1, "Fields": M{ "Len": 6, "ByJSONName:field_one": nil, "ByJSONName:fieldOne": M{ "Name": pref.Name("field_one"), "Index": 0, "JSONName": "fieldOne", "Default": "hello, \"world!\"\n", "ContainingOneof": M{"Name": pref.Name("O1"), "IsPlaceholder": false}, "ContainingMessage": M{"FullName": pref.FullName("test.B")}, }, "ByJSONName:fieldTwo": nil, "ByJSONName:Field2": M{ "Name": pref.Name("field_two"), "Index": 1, "HasJSONName": true, "JSONName": "Field2", "Default": pref.EnumNumber(1), "ContainingOneof": M{"Name": pref.Name("O2"), "IsPlaceholder": false}, }, "ByName:fieldThree": nil, "ByName:field_three": M{ "IsExtension": false, "IsMap": false, "MapKey": nil, "MapValue": nil, "Message": M{"FullName": pref.FullName("test.C"), "IsPlaceholder": false}, "ContainingOneof": M{"Name": pref.Name("O2"), "IsPlaceholder": false}, "ContainingMessage": M{"FullName": pref.FullName("test.B")}, }, "ByNumber:12": nil, "ByNumber:4": M{ "Cardinality": pref.Repeated, "IsExtension": false, "IsList": false, "IsMap": true, "MapKey": M{"Kind": pref.StringKind}, "MapValue": M{"Kind": pref.MessageKind, "Message": M{"FullName": pref.FullName("test.B")}}, "Default": nil, "Message": M{"FullName": pref.FullName("test.B.FieldFourEntry"), "IsPlaceholder": false}, }, "ByNumber:5": M{ "Cardinality": pref.Repeated, "Kind": pref.Int32Kind, "IsPacked": true, "IsList": true, "IsMap": false, "Default": nil, }, "ByNumber:6": M{ "Cardinality": pref.Required, "Default": []byte(nil), "ContainingOneof": nil, }, }, "Oneofs": M{ "Len": 2, "ByName:O0": nil, "ByName:O1": M{ "FullName": pref.FullName("test.B.O1"), "Index": 0, "Options": &descriptorpb.OneofOptions{ UninterpretedOption: []*descriptorpb.UninterpretedOption{ {StringValue: []byte("option")}, }, }, "Fields": M{ "Len": 1, "Get:0": M{"FullName": pref.FullName("test.B.field_one")}, }, }, "Get:1": M{ "FullName": pref.FullName("test.B.O2"), "Index": 1, "Fields": M{ "Len": 2, "ByName:field_two": M{"Name": pref.Name("field_two")}, "Get:1": M{"Name": pref.Name("field_three")}, }, }, }, "ReservedNames": M{ "Len": 2, "Get:0": pref.Name("fizz"), "Has:buzz": true, "Has:noexist": false, }, "ReservedRanges": M{ "Len": 2, "Get:0": [2]pref.FieldNumber{100, 200}, "Has:99": false, "Has:100": true, "Has:150": true, "Has:199": true, "Has:200": false, "Has:300": true, "Has:301": false, }, "RequiredNumbers": M{ "Len": 1, "Get:0": pref.FieldNumber(6), "Has:1": false, "Has:6": true, }, "ExtensionRanges": M{ "Len": 2, "Get:0": [2]pref.FieldNumber{1000, 2000}, "Has:999": false, "Has:1000": true, "Has:1500": true, "Has:1999": true, "Has:2000": false, "Has:3000": true, "Has:3001": false, }, "ExtensionRangeOptions:0": (*descriptorpb.ExtensionRangeOptions)(nil), "ExtensionRangeOptions:1": new(descriptorpb.ExtensionRangeOptions), "Messages": M{ "Get:0": M{ "Fields": M{ "Len": 2, "ByNumber:1": M{ "Parent": M{"FullName": pref.FullName("test.B.FieldFourEntry")}, "Index": 0, "Name": pref.Name("key"), "FullName": pref.FullName("test.B.FieldFourEntry.key"), "Number": pref.FieldNumber(1), "Cardinality": pref.Optional, "Kind": pref.StringKind, "Options": (*descriptorpb.FieldOptions)(nil), "HasJSONName": false, "JSONName": "key", "IsPacked": false, "IsList": false, "IsMap": false, "IsExtension": false, "IsWeak": false, "Default": "", "ContainingOneof": nil, "ContainingMessage": M{"FullName": pref.FullName("test.B.FieldFourEntry")}, "Message": nil, "Enum": nil, }, "ByNumber:2": M{ "Parent": M{"FullName": pref.FullName("test.B.FieldFourEntry")}, "Index": 1, "Name": pref.Name("value"), "FullName": pref.FullName("test.B.FieldFourEntry.value"), "Number": pref.FieldNumber(2), "Cardinality": pref.Optional, "Kind": pref.MessageKind, "JSONName": "value", "IsPacked": false, "IsList": false, "IsMap": false, "IsExtension": false, "IsWeak": false, "Default": nil, "ContainingOneof": nil, "ContainingMessage": M{"FullName": pref.FullName("test.B.FieldFourEntry")}, "Message": M{"FullName": pref.FullName("test.B"), "IsPlaceholder": false}, "Enum": nil, }, "ByNumber:3": nil, }, }, }, }, "Get:2": M{ "Name": pref.Name("C"), "Index": 2, "Messages": M{ "Len": 1, "Get:0": M{"FullName": pref.FullName("test.C.A")}, }, "Enums": M{ "Len": 1, "Get:0": M{"FullName": pref.FullName("test.C.E1")}, }, "Extensions": M{ "Len": 1, "Get:0": M{"FullName": pref.FullName("test.C.X")}, }, }, }, "Enums": M{ "Len": 1, "Get:0": M{ "Name": pref.Name("E1"), "Options": &descriptorpb.EnumOptions{Deprecated: proto.Bool(true)}, "Values": M{ "Len": 2, "ByName:Foo": nil, "ByName:FOO": M{ "FullName": pref.FullName("test.FOO"), "Options": &descriptorpb.EnumValueOptions{Deprecated: proto.Bool(true)}, }, "ByNumber:2": nil, "ByNumber:1": M{"FullName": pref.FullName("test.BAR")}, }, "ReservedNames": M{ "Len": 2, "Get:0": pref.Name("FIZZ"), "Has:BUZZ": true, "Has:NOEXIST": false, }, "ReservedRanges": M{ "Len": 2, "Get:0": [2]pref.EnumNumber{10, 19}, "Has:9": false, "Has:10": true, "Has:15": true, "Has:19": true, "Has:20": false, "Has:30": true, "Has:31": false, }, }, }, "Extensions": M{ "Len": 1, "ByName:X": M{ "Name": pref.Name("X"), "Number": pref.FieldNumber(1000), "Cardinality": pref.Repeated, "Kind": pref.EnumKind, "IsExtension": true, "IsPacked": true, "IsList": true, "IsMap": false, "MapKey": nil, "MapValue": nil, "ContainingOneof": nil, "ContainingMessage": M{"FullName": pref.FullName("test.B"), "IsPlaceholder": false}, "Enum": M{"FullName": pref.FullName("test.E1"), "IsPlaceholder": false}, "Options": &descriptorpb.FieldOptions{Packed: proto.Bool(true)}, }, }, "Services": M{ "Len": 1, "ByName:s": nil, "ByName:S": M{ "Parent": M{"FullName": pref.FullName("test")}, "Name": pref.Name("S"), "FullName": pref.FullName("test.S"), "Options": &descriptorpb.ServiceOptions{Deprecated: proto.Bool(true)}, "Methods": M{ "Len": 1, "Get:0": M{ "Parent": M{"FullName": pref.FullName("test.S")}, "Name": pref.Name("M"), "FullName": pref.FullName("test.S.M"), "Input": M{"FullName": pref.FullName("test.A"), "IsPlaceholder": false}, "Output": M{"FullName": pref.FullName("test.C.A"), "IsPlaceholder": false}, "IsStreamingClient": true, "IsStreamingServer": true, "Options": &descriptorpb.MethodOptions{Deprecated: proto.Bool(true)}, }, }, }, }, } checkAccessors(t, "", reflect.ValueOf(fd), want) } func checkAccessors(t *testing.T, p string, rv reflect.Value, want map[string]interface{}) { p0 := p defer func() { if ex := recover(); ex != nil { t.Errorf("panic at %v: %v", p, ex) } }() if rv.Interface() == nil { t.Errorf("%v is nil, want non-nil", p) return } for s, v := range want { // Call the accessor method. p = p0 + "." + s var rets []reflect.Value if i := strings.IndexByte(s, ':'); i >= 0 { // Accessor method takes in a single argument, which is encoded // after the accessor name, separated by a ':' delimiter. fnc := rv.MethodByName(s[:i]) arg := reflect.New(fnc.Type().In(0)).Elem() s = s[i+len(":"):] switch arg.Kind() { case reflect.String: arg.SetString(s) case reflect.Int32, reflect.Int: n, _ := strconv.ParseInt(s, 0, 64) arg.SetInt(n) } rets = fnc.Call([]reflect.Value{arg}) } else { rets = rv.MethodByName(s).Call(nil) } // Check that (val, ok) pattern is internally consistent. if len(rets) == 2 { if rets[0].IsNil() && rets[1].Bool() { t.Errorf("%v = (nil, true), want (nil, false)", p) } if !rets[0].IsNil() && !rets[1].Bool() { t.Errorf("%v = (non-nil, false), want (non-nil, true)", p) } } // Check that the accessor output matches. if want, ok := v.(map[string]interface{}); ok { checkAccessors(t, p, rets[0], want) continue } got := rets[0].Interface() if pv, ok := got.(pref.Value); ok { got = pv.Interface() } // Compare with proto.Equal if possible. gotMsg, gotMsgOK := got.(proto.Message) wantMsg, wantMsgOK := v.(proto.Message) if gotMsgOK && wantMsgOK { gotNil := reflect.ValueOf(gotMsg).IsNil() wantNil := reflect.ValueOf(wantMsg).IsNil() switch { case !gotNil && wantNil: t.Errorf("%v = non-nil, want nil", p) case gotNil && !wantNil: t.Errorf("%v = nil, want non-nil", p) case !proto.Equal(gotMsg, wantMsg): t.Errorf("%v = %v, want %v", p, gotMsg, wantMsg) } continue } if want := v; !reflect.DeepEqual(got, want) { t.Errorf("%v = %T(%v), want %T(%v)", p, got, got, want, want) } } } func testFileFormat(t *testing.T, fd pref.FileDescriptor) { const wantFileDescriptor = `FileDescriptor{ Syntax: proto2 Path: "path/to/file.proto" Package: test Messages: [{ Name: A }, { Name: B Fields: [{ Name: field_one Number: 1 Cardinality: optional Kind: string JSONName: "fieldOne" HasPresence: true HasDefault: true Default: "hello, \"world!\"\n" Oneof: O1 }, { Name: field_two Number: 2 Cardinality: optional Kind: enum HasJSONName: true JSONName: "Field2" HasPresence: true HasDefault: true Default: 1 Oneof: O2 Enum: test.E1 }, { Name: field_three Number: 3 Cardinality: optional Kind: message JSONName: "fieldThree" HasPresence: true Oneof: O2 Message: test.C }, { Name: field_four Number: 4 Cardinality: repeated Kind: message HasJSONName: true JSONName: "Field4" IsMap: true MapKey: string MapValue: test.B }, { Name: field_five Number: 5 Cardinality: repeated Kind: int32 JSONName: "fieldFive" IsPacked: true IsList: true }, { Name: field_six Number: 6 Cardinality: required Kind: bytes JSONName: "fieldSix" HasPresence: true }] Oneofs: [{ Name: O1 Fields: [field_one] }, { Name: O2 Fields: [field_two, field_three] }] ReservedNames: [fizz, buzz] ReservedRanges: [100:200, 300] RequiredNumbers: [6] ExtensionRanges: [1000:2000, 3000] Messages: [{ Name: FieldFourEntry IsMapEntry: true Fields: [{ Name: key Number: 1 Cardinality: optional Kind: string JSONName: "key" HasPresence: true }, { Name: value Number: 2 Cardinality: optional Kind: message JSONName: "value" HasPresence: true Message: test.B }] }] }, { Name: C Messages: [{ Name: A Fields: [{ Name: F Number: 1 Cardinality: required Kind: bytes JSONName: "F" HasPresence: true HasDefault: true Default: "dead\xbe\xef" }] RequiredNumbers: [1] }] Enums: [{ Name: E1 Values: [ {Name: FOO} {Name: BAR, Number: 1} ] }] Extensions: [{ Name: X Number: 1000 Cardinality: repeated Kind: message JSONName: "[test.C.X]" IsExtension: true IsList: true Extendee: test.B Message: test.C }] }] Enums: [{ Name: E1 Values: [ {Name: FOO} {Name: BAR, Number: 1} ] ReservedNames: [FIZZ, BUZZ] ReservedRanges: [10:20, 30] }] Extensions: [{ Name: X Number: 1000 Cardinality: repeated Kind: enum JSONName: "[test.X]" IsExtension: true IsPacked: true IsList: true Extendee: test.B Enum: test.E1 }] Services: [{ Name: S Methods: [{ Name: M Input: test.A Output: test.C.A IsStreamingClient: true IsStreamingServer: true }] }] }` const wantEnums = `Enums{{ Name: E1 Values: [ {Name: FOO} {Name: BAR, Number: 1} ] ReservedNames: [FIZZ, BUZZ] ReservedRanges: [10:20, 30] }}` const wantExtensions = `Extensions{{ Name: X Number: 1000 Cardinality: repeated Kind: enum JSONName: "[test.X]" IsExtension: true IsPacked: true IsList: true Extendee: test.B Enum: test.E1 }}` const wantImports = `FileImports{}` const wantReservedNames = "Names{fizz, buzz}" const wantReservedRanges = "FieldRanges{100:200, 300}" const wantServices = `Services{{ Name: S Methods: [{ Name: M Input: test.A Output: test.C.A IsStreamingClient: true IsStreamingServer: true }] }}` tests := []struct { path string fmt string want string val interface{} }{ {"fd", "%v", compactMultiFormat(wantFileDescriptor), fd}, {"fd", "%+v", wantFileDescriptor, fd}, {"fd.Enums()", "%v", compactMultiFormat(wantEnums), fd.Enums()}, {"fd.Enums()", "%+v", wantEnums, fd.Enums()}, {"fd.Extensions()", "%v", compactMultiFormat(wantExtensions), fd.Extensions()}, {"fd.Extensions()", "%+v", wantExtensions, fd.Extensions()}, {"fd.Imports()", "%v", compactMultiFormat(wantImports), fd.Imports()}, {"fd.Imports()", "%+v", wantImports, fd.Imports()}, {"fd.Messages(B).ReservedNames()", "%v", compactMultiFormat(wantReservedNames), fd.Messages().ByName("B").ReservedNames()}, {"fd.Messages(B).ReservedNames()", "%+v", wantReservedNames, fd.Messages().ByName("B").ReservedNames()}, {"fd.Messages(B).ReservedRanges()", "%v", compactMultiFormat(wantReservedRanges), fd.Messages().ByName("B").ReservedRanges()}, {"fd.Messages(B).ReservedRanges()", "%+v", wantReservedRanges, fd.Messages().ByName("B").ReservedRanges()}, {"fd.Services()", "%v", compactMultiFormat(wantServices), fd.Services()}, {"fd.Services()", "%+v", wantServices, fd.Services()}, } for _, tt := range tests { got := fmt.Sprintf(tt.fmt, tt.val) if diff := cmp.Diff(got, tt.want); diff != "" { t.Errorf("fmt.Sprintf(%q, %s) mismatch (-got +want):\n%s", tt.fmt, tt.path, diff) } } } // compactMultiFormat returns the single line form of a multi line output. func compactMultiFormat(s string) string { var b []byte for _, s := range strings.Split(s, "\n") { s = strings.TrimSpace(s) s = regexp.MustCompile(": +").ReplaceAllString(s, ": ") prevWord := len(b) > 0 && b[len(b)-1] != '[' && b[len(b)-1] != '{' nextWord := len(s) > 0 && s[0] != ']' && s[0] != '}' if prevWord && nextWord { b = append(b, ", "...) } b = append(b, s...) } return string(b) } golang-google-protobuf-1.27.1/internal/filedesc/placeholder.go000066400000000000000000000151151411250152500243630ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package filedesc import ( "google.golang.org/protobuf/internal/descopts" "google.golang.org/protobuf/internal/pragma" pref "google.golang.org/protobuf/reflect/protoreflect" ) var ( emptyNames = new(Names) emptyEnumRanges = new(EnumRanges) emptyFieldRanges = new(FieldRanges) emptyFieldNumbers = new(FieldNumbers) emptySourceLocations = new(SourceLocations) emptyFiles = new(FileImports) emptyMessages = new(Messages) emptyFields = new(Fields) emptyOneofs = new(Oneofs) emptyEnums = new(Enums) emptyEnumValues = new(EnumValues) emptyExtensions = new(Extensions) emptyServices = new(Services) ) // PlaceholderFile is a placeholder, representing only the file path. type PlaceholderFile string func (f PlaceholderFile) ParentFile() pref.FileDescriptor { return f } func (f PlaceholderFile) Parent() pref.Descriptor { return nil } func (f PlaceholderFile) Index() int { return 0 } func (f PlaceholderFile) Syntax() pref.Syntax { return 0 } func (f PlaceholderFile) Name() pref.Name { return "" } func (f PlaceholderFile) FullName() pref.FullName { return "" } func (f PlaceholderFile) IsPlaceholder() bool { return true } func (f PlaceholderFile) Options() pref.ProtoMessage { return descopts.File } func (f PlaceholderFile) Path() string { return string(f) } func (f PlaceholderFile) Package() pref.FullName { return "" } func (f PlaceholderFile) Imports() pref.FileImports { return emptyFiles } func (f PlaceholderFile) Messages() pref.MessageDescriptors { return emptyMessages } func (f PlaceholderFile) Enums() pref.EnumDescriptors { return emptyEnums } func (f PlaceholderFile) Extensions() pref.ExtensionDescriptors { return emptyExtensions } func (f PlaceholderFile) Services() pref.ServiceDescriptors { return emptyServices } func (f PlaceholderFile) SourceLocations() pref.SourceLocations { return emptySourceLocations } func (f PlaceholderFile) ProtoType(pref.FileDescriptor) { return } func (f PlaceholderFile) ProtoInternal(pragma.DoNotImplement) { return } // PlaceholderEnum is a placeholder, representing only the full name. type PlaceholderEnum pref.FullName func (e PlaceholderEnum) ParentFile() pref.FileDescriptor { return nil } func (e PlaceholderEnum) Parent() pref.Descriptor { return nil } func (e PlaceholderEnum) Index() int { return 0 } func (e PlaceholderEnum) Syntax() pref.Syntax { return 0 } func (e PlaceholderEnum) Name() pref.Name { return pref.FullName(e).Name() } func (e PlaceholderEnum) FullName() pref.FullName { return pref.FullName(e) } func (e PlaceholderEnum) IsPlaceholder() bool { return true } func (e PlaceholderEnum) Options() pref.ProtoMessage { return descopts.Enum } func (e PlaceholderEnum) Values() pref.EnumValueDescriptors { return emptyEnumValues } func (e PlaceholderEnum) ReservedNames() pref.Names { return emptyNames } func (e PlaceholderEnum) ReservedRanges() pref.EnumRanges { return emptyEnumRanges } func (e PlaceholderEnum) ProtoType(pref.EnumDescriptor) { return } func (e PlaceholderEnum) ProtoInternal(pragma.DoNotImplement) { return } // PlaceholderEnumValue is a placeholder, representing only the full name. type PlaceholderEnumValue pref.FullName func (e PlaceholderEnumValue) ParentFile() pref.FileDescriptor { return nil } func (e PlaceholderEnumValue) Parent() pref.Descriptor { return nil } func (e PlaceholderEnumValue) Index() int { return 0 } func (e PlaceholderEnumValue) Syntax() pref.Syntax { return 0 } func (e PlaceholderEnumValue) Name() pref.Name { return pref.FullName(e).Name() } func (e PlaceholderEnumValue) FullName() pref.FullName { return pref.FullName(e) } func (e PlaceholderEnumValue) IsPlaceholder() bool { return true } func (e PlaceholderEnumValue) Options() pref.ProtoMessage { return descopts.EnumValue } func (e PlaceholderEnumValue) Number() pref.EnumNumber { return 0 } func (e PlaceholderEnumValue) ProtoType(pref.EnumValueDescriptor) { return } func (e PlaceholderEnumValue) ProtoInternal(pragma.DoNotImplement) { return } // PlaceholderMessage is a placeholder, representing only the full name. type PlaceholderMessage pref.FullName func (m PlaceholderMessage) ParentFile() pref.FileDescriptor { return nil } func (m PlaceholderMessage) Parent() pref.Descriptor { return nil } func (m PlaceholderMessage) Index() int { return 0 } func (m PlaceholderMessage) Syntax() pref.Syntax { return 0 } func (m PlaceholderMessage) Name() pref.Name { return pref.FullName(m).Name() } func (m PlaceholderMessage) FullName() pref.FullName { return pref.FullName(m) } func (m PlaceholderMessage) IsPlaceholder() bool { return true } func (m PlaceholderMessage) Options() pref.ProtoMessage { return descopts.Message } func (m PlaceholderMessage) IsMapEntry() bool { return false } func (m PlaceholderMessage) Fields() pref.FieldDescriptors { return emptyFields } func (m PlaceholderMessage) Oneofs() pref.OneofDescriptors { return emptyOneofs } func (m PlaceholderMessage) ReservedNames() pref.Names { return emptyNames } func (m PlaceholderMessage) ReservedRanges() pref.FieldRanges { return emptyFieldRanges } func (m PlaceholderMessage) RequiredNumbers() pref.FieldNumbers { return emptyFieldNumbers } func (m PlaceholderMessage) ExtensionRanges() pref.FieldRanges { return emptyFieldRanges } func (m PlaceholderMessage) ExtensionRangeOptions(int) pref.ProtoMessage { panic("index out of range") } func (m PlaceholderMessage) Messages() pref.MessageDescriptors { return emptyMessages } func (m PlaceholderMessage) Enums() pref.EnumDescriptors { return emptyEnums } func (m PlaceholderMessage) Extensions() pref.ExtensionDescriptors { return emptyExtensions } func (m PlaceholderMessage) ProtoType(pref.MessageDescriptor) { return } func (m PlaceholderMessage) ProtoInternal(pragma.DoNotImplement) { return } golang-google-protobuf-1.27.1/internal/filetype/000077500000000000000000000000001411250152500216125ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/filetype/build.go000066400000000000000000000242221411250152500232420ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package filetype provides functionality for wrapping descriptors // with Go type information. package filetype import ( "reflect" "google.golang.org/protobuf/internal/descopts" fdesc "google.golang.org/protobuf/internal/filedesc" pimpl "google.golang.org/protobuf/internal/impl" pref "google.golang.org/protobuf/reflect/protoreflect" preg "google.golang.org/protobuf/reflect/protoregistry" ) // Builder constructs type descriptors from a raw file descriptor // and associated Go types for each enum and message declaration. // // // Flattened Ordering // // The protobuf type system represents declarations as a tree. Certain nodes in // the tree require us to either associate it with a concrete Go type or to // resolve a dependency, which is information that must be provided separately // since it cannot be derived from the file descriptor alone. // // However, representing a tree as Go literals is difficult to simply do in a // space and time efficient way. Thus, we store them as a flattened list of // objects where the serialization order from the tree-based form is important. // // The "flattened ordering" is defined as a tree traversal of all enum, message, // extension, and service declarations using the following algorithm: // // def VisitFileDecls(fd): // for e in fd.Enums: yield e // for m in fd.Messages: yield m // for x in fd.Extensions: yield x // for s in fd.Services: yield s // for m in fd.Messages: yield from VisitMessageDecls(m) // // def VisitMessageDecls(md): // for e in md.Enums: yield e // for m in md.Messages: yield m // for x in md.Extensions: yield x // for m in md.Messages: yield from VisitMessageDecls(m) // // The traversal starts at the root file descriptor and yields each direct // declaration within each node before traversing into sub-declarations // that children themselves may have. type Builder struct { // File is the underlying file descriptor builder. File fdesc.Builder // GoTypes is a unique set of the Go types for all declarations and // dependencies. Each type is represented as a zero value of the Go type. // // Declarations are Go types generated for enums and messages directly // declared (not publicly imported) in the proto source file. // Messages for map entries are accounted for, but represented by nil. // Enum declarations in "flattened ordering" come first, followed by // message declarations in "flattened ordering". // // Dependencies are Go types for enums or messages referenced by // message fields (excluding weak fields), for parent extended messages of // extension fields, for enums or messages referenced by extension fields, // and for input and output messages referenced by service methods. // Dependencies must come after declarations, but the ordering of // dependencies themselves is unspecified. GoTypes []interface{} // DependencyIndexes is an ordered list of indexes into GoTypes for the // dependencies of messages, extensions, or services. // // There are 5 sub-lists in "flattened ordering" concatenated back-to-back: // 0. Message field dependencies: list of the enum or message type // referred to by every message field. // 1. Extension field targets: list of the extended parent message of // every extension. // 2. Extension field dependencies: list of the enum or message type // referred to by every extension field. // 3. Service method inputs: list of the input message type // referred to by every service method. // 4. Service method outputs: list of the output message type // referred to by every service method. // // The offset into DependencyIndexes for the start of each sub-list // is appended to the end in reverse order. DependencyIndexes []int32 // EnumInfos is a list of enum infos in "flattened ordering". EnumInfos []pimpl.EnumInfo // MessageInfos is a list of message infos in "flattened ordering". // If provided, the GoType and PBType for each element is populated. // // Requirement: len(MessageInfos) == len(Build.Messages) MessageInfos []pimpl.MessageInfo // ExtensionInfos is a list of extension infos in "flattened ordering". // Each element is initialized and registered with the protoregistry package. // // Requirement: len(LegacyExtensions) == len(Build.Extensions) ExtensionInfos []pimpl.ExtensionInfo // TypeRegistry is the registry to register each type descriptor. // If nil, it uses protoregistry.GlobalTypes. TypeRegistry interface { RegisterMessage(pref.MessageType) error RegisterEnum(pref.EnumType) error RegisterExtension(pref.ExtensionType) error } } // Out is the output of the builder. type Out struct { File pref.FileDescriptor } func (tb Builder) Build() (out Out) { // Replace the resolver with one that resolves dependencies by index, // which is faster and more reliable than relying on the global registry. if tb.File.FileRegistry == nil { tb.File.FileRegistry = preg.GlobalFiles } tb.File.FileRegistry = &resolverByIndex{ goTypes: tb.GoTypes, depIdxs: tb.DependencyIndexes, fileRegistry: tb.File.FileRegistry, } // Initialize registry if unpopulated. if tb.TypeRegistry == nil { tb.TypeRegistry = preg.GlobalTypes } fbOut := tb.File.Build() out.File = fbOut.File // Process enums. enumGoTypes := tb.GoTypes[:len(fbOut.Enums)] if len(tb.EnumInfos) != len(fbOut.Enums) { panic("mismatching enum lengths") } if len(fbOut.Enums) > 0 { for i := range fbOut.Enums { tb.EnumInfos[i] = pimpl.EnumInfo{ GoReflectType: reflect.TypeOf(enumGoTypes[i]), Desc: &fbOut.Enums[i], } // Register enum types. if err := tb.TypeRegistry.RegisterEnum(&tb.EnumInfos[i]); err != nil { panic(err) } } } // Process messages. messageGoTypes := tb.GoTypes[len(fbOut.Enums):][:len(fbOut.Messages)] if len(tb.MessageInfos) != len(fbOut.Messages) { panic("mismatching message lengths") } if len(fbOut.Messages) > 0 { for i := range fbOut.Messages { if messageGoTypes[i] == nil { continue // skip map entry } tb.MessageInfos[i].GoReflectType = reflect.TypeOf(messageGoTypes[i]) tb.MessageInfos[i].Desc = &fbOut.Messages[i] // Register message types. if err := tb.TypeRegistry.RegisterMessage(&tb.MessageInfos[i]); err != nil { panic(err) } } // As a special-case for descriptor.proto, // locally register concrete message type for the options. if out.File.Path() == "google/protobuf/descriptor.proto" && out.File.Package() == "google.protobuf" { for i := range fbOut.Messages { switch fbOut.Messages[i].Name() { case "FileOptions": descopts.File = messageGoTypes[i].(pref.ProtoMessage) case "EnumOptions": descopts.Enum = messageGoTypes[i].(pref.ProtoMessage) case "EnumValueOptions": descopts.EnumValue = messageGoTypes[i].(pref.ProtoMessage) case "MessageOptions": descopts.Message = messageGoTypes[i].(pref.ProtoMessage) case "FieldOptions": descopts.Field = messageGoTypes[i].(pref.ProtoMessage) case "OneofOptions": descopts.Oneof = messageGoTypes[i].(pref.ProtoMessage) case "ExtensionRangeOptions": descopts.ExtensionRange = messageGoTypes[i].(pref.ProtoMessage) case "ServiceOptions": descopts.Service = messageGoTypes[i].(pref.ProtoMessage) case "MethodOptions": descopts.Method = messageGoTypes[i].(pref.ProtoMessage) } } } } // Process extensions. if len(tb.ExtensionInfos) != len(fbOut.Extensions) { panic("mismatching extension lengths") } var depIdx int32 for i := range fbOut.Extensions { // For enum and message kinds, determine the referent Go type so // that we can construct their constructors. const listExtDeps = 2 var goType reflect.Type switch fbOut.Extensions[i].L1.Kind { case pref.EnumKind: j := depIdxs.Get(tb.DependencyIndexes, listExtDeps, depIdx) goType = reflect.TypeOf(tb.GoTypes[j]) depIdx++ case pref.MessageKind, pref.GroupKind: j := depIdxs.Get(tb.DependencyIndexes, listExtDeps, depIdx) goType = reflect.TypeOf(tb.GoTypes[j]) depIdx++ default: goType = goTypeForPBKind[fbOut.Extensions[i].L1.Kind] } if fbOut.Extensions[i].IsList() { goType = reflect.SliceOf(goType) } pimpl.InitExtensionInfo(&tb.ExtensionInfos[i], &fbOut.Extensions[i], goType) // Register extension types. if err := tb.TypeRegistry.RegisterExtension(&tb.ExtensionInfos[i]); err != nil { panic(err) } } return out } var goTypeForPBKind = map[pref.Kind]reflect.Type{ pref.BoolKind: reflect.TypeOf(bool(false)), pref.Int32Kind: reflect.TypeOf(int32(0)), pref.Sint32Kind: reflect.TypeOf(int32(0)), pref.Sfixed32Kind: reflect.TypeOf(int32(0)), pref.Int64Kind: reflect.TypeOf(int64(0)), pref.Sint64Kind: reflect.TypeOf(int64(0)), pref.Sfixed64Kind: reflect.TypeOf(int64(0)), pref.Uint32Kind: reflect.TypeOf(uint32(0)), pref.Fixed32Kind: reflect.TypeOf(uint32(0)), pref.Uint64Kind: reflect.TypeOf(uint64(0)), pref.Fixed64Kind: reflect.TypeOf(uint64(0)), pref.FloatKind: reflect.TypeOf(float32(0)), pref.DoubleKind: reflect.TypeOf(float64(0)), pref.StringKind: reflect.TypeOf(string("")), pref.BytesKind: reflect.TypeOf([]byte(nil)), } type depIdxs []int32 // Get retrieves the jth element of the ith sub-list. func (x depIdxs) Get(i, j int32) int32 { return x[x[int32(len(x))-i-1]+j] } type ( resolverByIndex struct { goTypes []interface{} depIdxs depIdxs fileRegistry } fileRegistry interface { FindFileByPath(string) (pref.FileDescriptor, error) FindDescriptorByName(pref.FullName) (pref.Descriptor, error) RegisterFile(pref.FileDescriptor) error } ) func (r *resolverByIndex) FindEnumByIndex(i, j int32, es []fdesc.Enum, ms []fdesc.Message) pref.EnumDescriptor { if depIdx := int(r.depIdxs.Get(i, j)); int(depIdx) < len(es)+len(ms) { return &es[depIdx] } else { return pimpl.Export{}.EnumDescriptorOf(r.goTypes[depIdx]) } } func (r *resolverByIndex) FindMessageByIndex(i, j int32, es []fdesc.Enum, ms []fdesc.Message) pref.MessageDescriptor { if depIdx := int(r.depIdxs.Get(i, j)); depIdx < len(es)+len(ms) { return &ms[depIdx-len(es)] } else { return pimpl.Export{}.MessageDescriptorOf(r.goTypes[depIdx]) } } golang-google-protobuf-1.27.1/internal/flags/000077500000000000000000000000001411250152500210655ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/flags/flags.go000066400000000000000000000021141411250152500225060ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package flags provides a set of flags controlled by build tags. package flags // ProtoLegacy specifies whether to enable support for legacy functionality // such as MessageSets, weak fields, and various other obscure behavior // that is necessary to maintain backwards compatibility with proto1 or // the pre-release variants of proto2 and proto3. // // This is disabled by default unless built with the "protolegacy" tag. // // WARNING: The compatibility agreement covers nothing provided by this flag. // As such, functionality may suddenly be removed or changed at our discretion. const ProtoLegacy = protoLegacy // LazyUnmarshalExtensions specifies whether to lazily unmarshal extensions. // // Lazy extension unmarshaling validates the contents of message-valued // extension fields at unmarshal time, but defers creating the message // structure until the extension is first accessed. const LazyUnmarshalExtensions = ProtoLegacy golang-google-protobuf-1.27.1/internal/flags/proto_legacy_disable.go000066400000000000000000000003411411250152500255640ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build !protolegacy package flags const protoLegacy = false golang-google-protobuf-1.27.1/internal/flags/proto_legacy_enable.go000066400000000000000000000003371411250152500254140ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build protolegacy package flags const protoLegacy = true golang-google-protobuf-1.27.1/internal/fuzz/000077500000000000000000000000001411250152500207675ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/fuzz/README.md000066400000000000000000000013571411250152500222540ustar00rootroot00000000000000# Fuzzing Fuzzing support using [go-fuzz](https://github.com/dvyukov/go-fuzz). Basic operation: ```sh $ go install github.com/dvyukov/go-fuzz/go-fuzz $ go install github.com/mdempsky/go114-fuzz-build $ cd internal/fuzz/{fuzzer} $ go114-fuzz-build google.golang.org/protobuf/internal/fuzz/{fuzzer} $ go-fuzz ``` ## OSS-Fuzz Fuzzers are automatically run by [OSS-Fuzz](https://github.com/google/oss-fuzz). The OSS-Fuzz [configuration](https://github.com/google/oss-fuzz/blob/master/projects/golang-protobuf/build.sh) currently builds fuzzers in every directory under internal/fuzz. Only add fuzzers (not support packages) in this directory. Fuzzing results are available at the [OSS-Fuzz console](https://oss-fuzz.com/), under `golang-protobuf`. golang-google-protobuf-1.27.1/internal/fuzz/jsonfuzz/000077500000000000000000000000001411250152500226575ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/fuzz/jsonfuzz/corpus/000077500000000000000000000000001411250152500241725ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/fuzz/jsonfuzz/corpus/e619335648415cae976b3200d5a291e8da4b4866000077500000000000000000000040201411250152500312630ustar00rootroot00000000000000{"testAllTypes":{"optionalInt32":1001, "optionalInt64":"1002", "optionalUint32":1003, "optionalUint64":"1004", "optionalSint32":1005, "optionalSint64":"1006", "optionalFixed32":1007, "optionalFixed64":"1008", "optionalSfixed32":1009, "optionalSfixed64":"1010", "optionalFloat":1011.5, "optionalDouble":1012.5, "optionalBool":true, "optionalString":"string", "optionalBytes":"Ynl0ZXM=", "optionalgroup":{"a":1017}, "optionalNestedMessage":{"a":42, "corecursive":{"optionalInt32":43}}, "optionalNestedEnum":"BAR", "repeatedInt32":[1001, 2001], "repeatedInt64":["1002", "2002"], "repeatedUint32":[1003, 2003], "repeatedUint64":["1004", "2004"], "repeatedSint32":[1005, 2005], "repeatedSint64":["1006", "2006"], "repeatedFixed32":[1007, 2007], "repeatedFixed64":["1008", "2008"], "repeatedSfixed32":[1009, 2009], "repeatedSfixed64":["1010", "2010"], "repeatedFloat":[1011.5, 2011.5], "repeatedDouble":[1012.5, 2012.5], "repeatedBool":[true, false], "repeatedString":["foo", "bar"], "repeatedBytes":["Rk9P", "QkFS"], "repeatedgroup":[{"a":1017}, {}, {"a":2017}], "repeatedNestedMessage":[{"a":1}, {}, {"a":2}], "repeatedNestedEnum":["FOO", "BAR"], "mapInt32Int32":{"1056":1156, "2056":2156}, "mapInt64Int64":{"1057":"1157", "2057":"2157"}, "mapUint32Uint32":{"1058":1158, "2058":2158}, "mapUint64Uint64":{"1059":"1159", "2059":"2159"}, "mapSint32Sint32":{"1060":1160, "2060":2160}, "mapSint64Sint64":{"1061":"1161", "2061":"2161"}, "mapFixed32Fixed32":{"1062":1162, "2062":2162}, "mapFixed64Fixed64":{"1063":"1163", "2063":"2163"}, "mapSfixed32Sfixed32":{"1064":1164, "2064":2164}, "mapSfixed64Sfixed64":{"1065":"1165", "2065":"2165"}, "mapInt32Float":{"1066":1166.5, "2066":2166.5}, "mapInt32Double":{"1067":1167.5, "2067":2167.5}, "mapBoolBool":{"false":true, "true":false}, "mapStringString":{"69.1.key":"69.1.val", "69.2.key":"69.2.val"}, "mapStringBytes":{"70.1.key":"NzAuMS52YWw=", "70.2.key":"NzAuMi52YWw="}, "mapStringNestedMessage":{"71.1.key":{"a":1171}, "71.2.key":{"a":2171}}, "mapStringNestedEnum":{"73.1.key":"FOO", "73.2.key":"BAR"}, "oneofUint32":1111}}golang-google-protobuf-1.27.1/internal/fuzz/jsonfuzz/fuzz.go000066400000000000000000000017051411250152500242070ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package jsonfuzz includes fuzzers for protojson.Marshal and protojson.Unmarshal. package jsonfuzz import ( "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/proto" fuzzpb "google.golang.org/protobuf/internal/testprotos/fuzz" ) // Fuzz is a fuzzer for proto.Marshal and proto.Unmarshal. func Fuzz(data []byte) (score int) { m1 := &fuzzpb.Fuzz{} if err := (protojson.UnmarshalOptions{ AllowPartial: true, }).Unmarshal(data, m1); err != nil { return 0 } data1, err := protojson.MarshalOptions{ AllowPartial: true, }.Marshal(m1) if err != nil { panic(err) } m2 := &fuzzpb.Fuzz{} if err := (protojson.UnmarshalOptions{ AllowPartial: true, }).Unmarshal(data1, m2); err != nil { return 0 } if !proto.Equal(m1, m2) { panic("not equal") } return 1 } golang-google-protobuf-1.27.1/internal/fuzz/jsonfuzz/fuzz_test.go000066400000000000000000000004561411250152500252500ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package jsonfuzz import ( "testing" "google.golang.org/protobuf/internal/fuzztest" ) func Test(t *testing.T) { fuzztest.Test(t, Fuzz) } golang-google-protobuf-1.27.1/internal/fuzz/oss-fuzz-build.sh000066400000000000000000000007001411250152500242150ustar00rootroot00000000000000# Copyright 2020 The Go Authors. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. # This script is executed by OSS-Fuzz's build to create fuzzer binaries. for x in internal/fuzz/*; do if [ -d $x/corpus ]; then name=$(basename $x) compile_go_fuzzer google.golang.org/protobuf/$x Fuzz $name protolegacy zip -jr $OUT/${name}_seed_corpus.zip $x/corpus fi done golang-google-protobuf-1.27.1/internal/fuzz/textfuzz/000077500000000000000000000000001411250152500226725ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/fuzz/textfuzz/corpus/000077500000000000000000000000001411250152500242055ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/fuzz/textfuzz/corpus/a950e4f0890f34717c5c9beffe1bd0cee33e5a2b000077500000000000000000000055411411250152500320770ustar00rootroot00000000000000test_all_types:{optional_int32:1001 optional_int64:1002 optional_uint32:1003 optional_uint64:1004 optional_sint32:1005 optional_sint64:1006 optional_fixed32:1007 optional_fixed64:1008 optional_sfixed32:1009 optional_sfixed64:1010 optional_float:1011.5 optional_double:1012.5 optional_bool:true optional_string:"string" optional_bytes:"bytes" OptionalGroup:{a:1017} optional_nested_message:{a:42 corecursive:{optional_int32:43}} optional_nested_enum:BAR repeated_int32:1001 repeated_int32:2001 repeated_int64:1002 repeated_int64:2002 repeated_uint32:1003 repeated_uint32:2003 repeated_uint64:1004 repeated_uint64:2004 repeated_sint32:1005 repeated_sint32:2005 repeated_sint64:1006 repeated_sint64:2006 repeated_fixed32:1007 repeated_fixed32:2007 repeated_fixed64:1008 repeated_fixed64:2008 repeated_sfixed32:1009 repeated_sfixed32:2009 repeated_sfixed64:1010 repeated_sfixed64:2010 repeated_float:1011.5 repeated_float:2011.5 repeated_double:1012.5 repeated_double:2012.5 repeated_bool:true repeated_bool:false repeated_string:"foo" repeated_string:"bar" repeated_bytes:"FOO" repeated_bytes:"BAR" RepeatedGroup:{a:1017} RepeatedGroup:{} RepeatedGroup:{a:2017} repeated_nested_message:{a:1} repeated_nested_message:{} repeated_nested_message:{a:2} repeated_nested_enum:FOO repeated_nested_enum:BAR map_int32_int32:{key:1056 value:1156} map_int32_int32:{key:2056 value:2156} map_int64_int64:{key:1057 value:1157} map_int64_int64:{key:2057 value:2157} map_uint32_uint32:{key:1058 value:1158} map_uint32_uint32:{key:2058 value:2158} map_uint64_uint64:{key:1059 value:1159} map_uint64_uint64:{key:2059 value:2159} map_sint32_sint32:{key:1060 value:1160} map_sint32_sint32:{key:2060 value:2160} map_sint64_sint64:{key:1061 value:1161} map_sint64_sint64:{key:2061 value:2161} map_fixed32_fixed32:{key:1062 value:1162} map_fixed32_fixed32:{key:2062 value:2162} map_fixed64_fixed64:{key:1063 value:1163} map_fixed64_fixed64:{key:2063 value:2163} map_sfixed32_sfixed32:{key:1064 value:1164} map_sfixed32_sfixed32:{key:2064 value:2164} map_sfixed64_sfixed64:{key:1065 value:1165} map_sfixed64_sfixed64:{key:2065 value:2165} map_int32_float:{key:1066 value:1166.5} map_int32_float:{key:2066 value:2166.5} map_int32_double:{key:1067 value:1167.5} map_int32_double:{key:2067 value:2167.5} map_bool_bool:{key:false value:true} map_bool_bool:{key:true value:false} map_string_string:{key:"69.1.key" value:"69.1.val"} map_string_string:{key:"69.2.key" value:"69.2.val"} map_string_bytes:{key:"70.1.key" value:"70.1.val"} map_string_bytes:{key:"70.2.key" value:"70.2.val"} map_string_nested_message:{key:"71.1.key" value:{a:1171}} map_string_nested_message:{key:"71.2.key" value:{a:2171}} map_string_nested_enum:{key:"73.1.key" value:FOO} map_string_nested_enum:{key:"73.2.key" value:BAR} oneof_uint32:1111}golang-google-protobuf-1.27.1/internal/fuzz/textfuzz/fuzz.go000066400000000000000000000017051411250152500242220ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package textfuzz includes fuzzers for prototext.Marshal and prototext.Unmarshal. package textfuzz import ( "google.golang.org/protobuf/encoding/prototext" "google.golang.org/protobuf/proto" fuzzpb "google.golang.org/protobuf/internal/testprotos/fuzz" ) // Fuzz is a fuzzer for proto.Marshal and proto.Unmarshal. func Fuzz(data []byte) (score int) { m1 := &fuzzpb.Fuzz{} if err := (prototext.UnmarshalOptions{ AllowPartial: true, }).Unmarshal(data, m1); err != nil { return 0 } data1, err := prototext.MarshalOptions{ AllowPartial: true, }.Marshal(m1) if err != nil { panic(err) } m2 := &fuzzpb.Fuzz{} if err := (prototext.UnmarshalOptions{ AllowPartial: true, }).Unmarshal(data1, m2); err != nil { return 0 } if !proto.Equal(m1, m2) { panic("not equal") } return 1 } golang-google-protobuf-1.27.1/internal/fuzz/textfuzz/fuzz_test.go000066400000000000000000000004561411250152500252630ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package textfuzz import ( "testing" "google.golang.org/protobuf/internal/fuzztest" ) func Test(t *testing.T) { fuzztest.Test(t, Fuzz) } golang-google-protobuf-1.27.1/internal/fuzz/wirefuzz/000077500000000000000000000000001411250152500226545ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/fuzz/wirefuzz/corpus/000077500000000000000000000000001411250152500241675ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/fuzz/wirefuzz/corpus/20019c4ef10ebf8031c8d204bdd0ae1ec214bf90000077500000000000000000000014211411250152500316500ustar00rootroot00000000000000  (0=AMQ]|Da@hrstringzbytes*+|DpD@r@foobarFOOBAR     ! ! & r ' s ( t u )БDhE >@ @ 69.1.key69.1.val 69.2.key69.2.val 70.1.key70.1.val 70.2.key70.2.val 71.1.key  71.2.key 73.1.key 73.2.keygolang-google-protobuf-1.27.1/internal/fuzz/wirefuzz/fuzz.go000066400000000000000000000060701411250152500242040ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package wirefuzz includes a fuzzer for the wire marshaler and unmarshaler. package wirefuzz import ( "fmt" "google.golang.org/protobuf/internal/impl" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoregistry" piface "google.golang.org/protobuf/runtime/protoiface" fuzzpb "google.golang.org/protobuf/internal/testprotos/fuzz" ) // Fuzz is a fuzzer for proto.Marshal and proto.Unmarshal. func Fuzz(data []byte) (score int) { // Unmarshal and Validate should agree about the validity of the message. m1 := &fuzzpb.Fuzz{} mt := m1.ProtoReflect().Type() _, valid := impl.Validate(mt, piface.UnmarshalInput{Buf: data}) if err := (proto.UnmarshalOptions{AllowPartial: true}).Unmarshal(data, m1); err != nil { switch valid { case impl.ValidationUnknown: case impl.ValidationInvalid: default: panic("unmarshal error with validation status: " + valid.String()) } return 0 } switch valid { case impl.ValidationUnknown: case impl.ValidationValid: default: panic("unmarshal ok with validation status: " + valid.String()) } // Unmarshal, Validate, and CheckInitialized should agree about initialization. checkInit := proto.CheckInitialized(m1) == nil methods := m1.ProtoReflect().ProtoMethods() in := piface.UnmarshalInput{Message: mt.New(), Resolver: protoregistry.GlobalTypes} if checkInit { // If the message initialized, the both Unmarshal and Validate should // report it as such. False negatives are tolerated, but have a // significant impact on performance. In general, they should always // properly determine initialization for any normalized message, // we produce by re-marshaling the message. in.Buf, _ = proto.Marshal(m1) if out, _ := methods.Unmarshal(in); out.Flags&piface.UnmarshalInitialized == 0 { panic("unmarshal reports initialized message as partial") } if out, _ := impl.Validate(mt, in); out.Flags&piface.UnmarshalInitialized == 0 { panic("validate reports initialized message as partial") } } else { // If the message is partial, then neither Unmarshal nor Validate // should ever report it as such. False positives are unacceptable. in.Buf = data if out, _ := methods.Unmarshal(in); out.Flags&piface.UnmarshalInitialized != 0 { panic("unmarshal reports partial message as initialized") } if out, _ := impl.Validate(mt, in); out.Flags&piface.UnmarshalInitialized != 0 { panic("validate reports partial message as initialized") } } // Round-trip Marshal and Unmarshal should produce the same messages. data1, err := proto.MarshalOptions{AllowPartial: !checkInit}.Marshal(m1) if err != nil { panic(err) } if proto.Size(m1) != len(data1) { panic(fmt.Errorf("size does not match output: %d != %d", proto.Size(m1), len(data1))) } m2 := &fuzzpb.Fuzz{} if err := (proto.UnmarshalOptions{AllowPartial: !checkInit}).Unmarshal(data1, m2); err != nil { panic(err) } if !proto.Equal(m1, m2) { panic("not equal") } return 1 } golang-google-protobuf-1.27.1/internal/fuzz/wirefuzz/fuzz_test.go000066400000000000000000000004561411250152500252450ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package wirefuzz import ( "testing" "google.golang.org/protobuf/internal/fuzztest" ) func Test(t *testing.T) { fuzztest.Test(t, Fuzz) } golang-google-protobuf-1.27.1/internal/fuzztest/000077500000000000000000000000001411250152500216675ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/fuzztest/fuzztest.go000066400000000000000000000017221411250152500241160ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package fuzztest contains a common fuzzer test. package fuzztest import ( "flag" "io/ioutil" "os" "path/filepath" "sort" "testing" ) var corpus = flag.String("corpus", "corpus", "directory containing the fuzzer corpus") // Test executes a fuzz function for every entry in the corpus. func Test(t *testing.T, fuzz func(b []byte) int) { dir, err := os.Open(*corpus) if err != nil { t.Fatal(err) } infos, err := dir.Readdir(0) if err != nil { t.Fatal(err) } var names []string for _, info := range infos { names = append(names, info.Name()) } sort.Strings(names) for _, name := range names { t.Run(name, func(t *testing.T) { b, err := ioutil.ReadFile(filepath.Join(*corpus, name)) if err != nil { t.Fatal(err) } b = b[:len(b):len(b)] // set cap to len fuzz(b) }) } } golang-google-protobuf-1.27.1/internal/genid/000077500000000000000000000000001411250152500210575ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/genid/any_gen.go000066400000000000000000000017741411250152500230370ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by generate-protos. DO NOT EDIT. package genid import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" ) const File_google_protobuf_any_proto = "google/protobuf/any.proto" // Names for google.protobuf.Any. const ( Any_message_name protoreflect.Name = "Any" Any_message_fullname protoreflect.FullName = "google.protobuf.Any" ) // Field names for google.protobuf.Any. const ( Any_TypeUrl_field_name protoreflect.Name = "type_url" Any_Value_field_name protoreflect.Name = "value" Any_TypeUrl_field_fullname protoreflect.FullName = "google.protobuf.Any.type_url" Any_Value_field_fullname protoreflect.FullName = "google.protobuf.Any.value" ) // Field numbers for google.protobuf.Any. const ( Any_TypeUrl_field_number protoreflect.FieldNumber = 1 Any_Value_field_number protoreflect.FieldNumber = 2 ) golang-google-protobuf-1.27.1/internal/genid/api_gen.go000066400000000000000000000112211411250152500230050ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by generate-protos. DO NOT EDIT. package genid import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" ) const File_google_protobuf_api_proto = "google/protobuf/api.proto" // Names for google.protobuf.Api. const ( Api_message_name protoreflect.Name = "Api" Api_message_fullname protoreflect.FullName = "google.protobuf.Api" ) // Field names for google.protobuf.Api. const ( Api_Name_field_name protoreflect.Name = "name" Api_Methods_field_name protoreflect.Name = "methods" Api_Options_field_name protoreflect.Name = "options" Api_Version_field_name protoreflect.Name = "version" Api_SourceContext_field_name protoreflect.Name = "source_context" Api_Mixins_field_name protoreflect.Name = "mixins" Api_Syntax_field_name protoreflect.Name = "syntax" Api_Name_field_fullname protoreflect.FullName = "google.protobuf.Api.name" Api_Methods_field_fullname protoreflect.FullName = "google.protobuf.Api.methods" Api_Options_field_fullname protoreflect.FullName = "google.protobuf.Api.options" Api_Version_field_fullname protoreflect.FullName = "google.protobuf.Api.version" Api_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Api.source_context" Api_Mixins_field_fullname protoreflect.FullName = "google.protobuf.Api.mixins" Api_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Api.syntax" ) // Field numbers for google.protobuf.Api. const ( Api_Name_field_number protoreflect.FieldNumber = 1 Api_Methods_field_number protoreflect.FieldNumber = 2 Api_Options_field_number protoreflect.FieldNumber = 3 Api_Version_field_number protoreflect.FieldNumber = 4 Api_SourceContext_field_number protoreflect.FieldNumber = 5 Api_Mixins_field_number protoreflect.FieldNumber = 6 Api_Syntax_field_number protoreflect.FieldNumber = 7 ) // Names for google.protobuf.Method. const ( Method_message_name protoreflect.Name = "Method" Method_message_fullname protoreflect.FullName = "google.protobuf.Method" ) // Field names for google.protobuf.Method. const ( Method_Name_field_name protoreflect.Name = "name" Method_RequestTypeUrl_field_name protoreflect.Name = "request_type_url" Method_RequestStreaming_field_name protoreflect.Name = "request_streaming" Method_ResponseTypeUrl_field_name protoreflect.Name = "response_type_url" Method_ResponseStreaming_field_name protoreflect.Name = "response_streaming" Method_Options_field_name protoreflect.Name = "options" Method_Syntax_field_name protoreflect.Name = "syntax" Method_Name_field_fullname protoreflect.FullName = "google.protobuf.Method.name" Method_RequestTypeUrl_field_fullname protoreflect.FullName = "google.protobuf.Method.request_type_url" Method_RequestStreaming_field_fullname protoreflect.FullName = "google.protobuf.Method.request_streaming" Method_ResponseTypeUrl_field_fullname protoreflect.FullName = "google.protobuf.Method.response_type_url" Method_ResponseStreaming_field_fullname protoreflect.FullName = "google.protobuf.Method.response_streaming" Method_Options_field_fullname protoreflect.FullName = "google.protobuf.Method.options" Method_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Method.syntax" ) // Field numbers for google.protobuf.Method. const ( Method_Name_field_number protoreflect.FieldNumber = 1 Method_RequestTypeUrl_field_number protoreflect.FieldNumber = 2 Method_RequestStreaming_field_number protoreflect.FieldNumber = 3 Method_ResponseTypeUrl_field_number protoreflect.FieldNumber = 4 Method_ResponseStreaming_field_number protoreflect.FieldNumber = 5 Method_Options_field_number protoreflect.FieldNumber = 6 Method_Syntax_field_number protoreflect.FieldNumber = 7 ) // Names for google.protobuf.Mixin. const ( Mixin_message_name protoreflect.Name = "Mixin" Mixin_message_fullname protoreflect.FullName = "google.protobuf.Mixin" ) // Field names for google.protobuf.Mixin. const ( Mixin_Name_field_name protoreflect.Name = "name" Mixin_Root_field_name protoreflect.Name = "root" Mixin_Name_field_fullname protoreflect.FullName = "google.protobuf.Mixin.name" Mixin_Root_field_fullname protoreflect.FullName = "google.protobuf.Mixin.root" ) // Field numbers for google.protobuf.Mixin. const ( Mixin_Name_field_number protoreflect.FieldNumber = 1 Mixin_Root_field_number protoreflect.FieldNumber = 2 ) golang-google-protobuf-1.27.1/internal/genid/descriptor_gen.go000066400000000000000000001356141411250152500244270ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by generate-protos. DO NOT EDIT. package genid import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" ) const File_google_protobuf_descriptor_proto = "google/protobuf/descriptor.proto" // Names for google.protobuf.FileDescriptorSet. const ( FileDescriptorSet_message_name protoreflect.Name = "FileDescriptorSet" FileDescriptorSet_message_fullname protoreflect.FullName = "google.protobuf.FileDescriptorSet" ) // Field names for google.protobuf.FileDescriptorSet. const ( FileDescriptorSet_File_field_name protoreflect.Name = "file" FileDescriptorSet_File_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorSet.file" ) // Field numbers for google.protobuf.FileDescriptorSet. const ( FileDescriptorSet_File_field_number protoreflect.FieldNumber = 1 ) // Names for google.protobuf.FileDescriptorProto. const ( FileDescriptorProto_message_name protoreflect.Name = "FileDescriptorProto" FileDescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto" ) // Field names for google.protobuf.FileDescriptorProto. const ( FileDescriptorProto_Name_field_name protoreflect.Name = "name" FileDescriptorProto_Package_field_name protoreflect.Name = "package" FileDescriptorProto_Dependency_field_name protoreflect.Name = "dependency" FileDescriptorProto_PublicDependency_field_name protoreflect.Name = "public_dependency" FileDescriptorProto_WeakDependency_field_name protoreflect.Name = "weak_dependency" FileDescriptorProto_MessageType_field_name protoreflect.Name = "message_type" FileDescriptorProto_EnumType_field_name protoreflect.Name = "enum_type" FileDescriptorProto_Service_field_name protoreflect.Name = "service" FileDescriptorProto_Extension_field_name protoreflect.Name = "extension" FileDescriptorProto_Options_field_name protoreflect.Name = "options" FileDescriptorProto_SourceCodeInfo_field_name protoreflect.Name = "source_code_info" FileDescriptorProto_Syntax_field_name protoreflect.Name = "syntax" FileDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.name" FileDescriptorProto_Package_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.package" FileDescriptorProto_Dependency_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.dependency" FileDescriptorProto_PublicDependency_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.public_dependency" FileDescriptorProto_WeakDependency_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.weak_dependency" FileDescriptorProto_MessageType_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.message_type" FileDescriptorProto_EnumType_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.enum_type" FileDescriptorProto_Service_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.service" FileDescriptorProto_Extension_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.extension" FileDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.options" FileDescriptorProto_SourceCodeInfo_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.source_code_info" FileDescriptorProto_Syntax_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.syntax" ) // Field numbers for google.protobuf.FileDescriptorProto. const ( FileDescriptorProto_Name_field_number protoreflect.FieldNumber = 1 FileDescriptorProto_Package_field_number protoreflect.FieldNumber = 2 FileDescriptorProto_Dependency_field_number protoreflect.FieldNumber = 3 FileDescriptorProto_PublicDependency_field_number protoreflect.FieldNumber = 10 FileDescriptorProto_WeakDependency_field_number protoreflect.FieldNumber = 11 FileDescriptorProto_MessageType_field_number protoreflect.FieldNumber = 4 FileDescriptorProto_EnumType_field_number protoreflect.FieldNumber = 5 FileDescriptorProto_Service_field_number protoreflect.FieldNumber = 6 FileDescriptorProto_Extension_field_number protoreflect.FieldNumber = 7 FileDescriptorProto_Options_field_number protoreflect.FieldNumber = 8 FileDescriptorProto_SourceCodeInfo_field_number protoreflect.FieldNumber = 9 FileDescriptorProto_Syntax_field_number protoreflect.FieldNumber = 12 ) // Names for google.protobuf.DescriptorProto. const ( DescriptorProto_message_name protoreflect.Name = "DescriptorProto" DescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.DescriptorProto" ) // Field names for google.protobuf.DescriptorProto. const ( DescriptorProto_Name_field_name protoreflect.Name = "name" DescriptorProto_Field_field_name protoreflect.Name = "field" DescriptorProto_Extension_field_name protoreflect.Name = "extension" DescriptorProto_NestedType_field_name protoreflect.Name = "nested_type" DescriptorProto_EnumType_field_name protoreflect.Name = "enum_type" DescriptorProto_ExtensionRange_field_name protoreflect.Name = "extension_range" DescriptorProto_OneofDecl_field_name protoreflect.Name = "oneof_decl" DescriptorProto_Options_field_name protoreflect.Name = "options" DescriptorProto_ReservedRange_field_name protoreflect.Name = "reserved_range" DescriptorProto_ReservedName_field_name protoreflect.Name = "reserved_name" DescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.name" DescriptorProto_Field_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.field" DescriptorProto_Extension_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.extension" DescriptorProto_NestedType_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.nested_type" DescriptorProto_EnumType_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.enum_type" DescriptorProto_ExtensionRange_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.extension_range" DescriptorProto_OneofDecl_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.oneof_decl" DescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.options" DescriptorProto_ReservedRange_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.reserved_range" DescriptorProto_ReservedName_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.reserved_name" ) // Field numbers for google.protobuf.DescriptorProto. const ( DescriptorProto_Name_field_number protoreflect.FieldNumber = 1 DescriptorProto_Field_field_number protoreflect.FieldNumber = 2 DescriptorProto_Extension_field_number protoreflect.FieldNumber = 6 DescriptorProto_NestedType_field_number protoreflect.FieldNumber = 3 DescriptorProto_EnumType_field_number protoreflect.FieldNumber = 4 DescriptorProto_ExtensionRange_field_number protoreflect.FieldNumber = 5 DescriptorProto_OneofDecl_field_number protoreflect.FieldNumber = 8 DescriptorProto_Options_field_number protoreflect.FieldNumber = 7 DescriptorProto_ReservedRange_field_number protoreflect.FieldNumber = 9 DescriptorProto_ReservedName_field_number protoreflect.FieldNumber = 10 ) // Names for google.protobuf.DescriptorProto.ExtensionRange. const ( DescriptorProto_ExtensionRange_message_name protoreflect.Name = "ExtensionRange" DescriptorProto_ExtensionRange_message_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.ExtensionRange" ) // Field names for google.protobuf.DescriptorProto.ExtensionRange. const ( DescriptorProto_ExtensionRange_Start_field_name protoreflect.Name = "start" DescriptorProto_ExtensionRange_End_field_name protoreflect.Name = "end" DescriptorProto_ExtensionRange_Options_field_name protoreflect.Name = "options" DescriptorProto_ExtensionRange_Start_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.ExtensionRange.start" DescriptorProto_ExtensionRange_End_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.ExtensionRange.end" DescriptorProto_ExtensionRange_Options_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.ExtensionRange.options" ) // Field numbers for google.protobuf.DescriptorProto.ExtensionRange. const ( DescriptorProto_ExtensionRange_Start_field_number protoreflect.FieldNumber = 1 DescriptorProto_ExtensionRange_End_field_number protoreflect.FieldNumber = 2 DescriptorProto_ExtensionRange_Options_field_number protoreflect.FieldNumber = 3 ) // Names for google.protobuf.DescriptorProto.ReservedRange. const ( DescriptorProto_ReservedRange_message_name protoreflect.Name = "ReservedRange" DescriptorProto_ReservedRange_message_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.ReservedRange" ) // Field names for google.protobuf.DescriptorProto.ReservedRange. const ( DescriptorProto_ReservedRange_Start_field_name protoreflect.Name = "start" DescriptorProto_ReservedRange_End_field_name protoreflect.Name = "end" DescriptorProto_ReservedRange_Start_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.ReservedRange.start" DescriptorProto_ReservedRange_End_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.ReservedRange.end" ) // Field numbers for google.protobuf.DescriptorProto.ReservedRange. const ( DescriptorProto_ReservedRange_Start_field_number protoreflect.FieldNumber = 1 DescriptorProto_ReservedRange_End_field_number protoreflect.FieldNumber = 2 ) // Names for google.protobuf.ExtensionRangeOptions. const ( ExtensionRangeOptions_message_name protoreflect.Name = "ExtensionRangeOptions" ExtensionRangeOptions_message_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions" ) // Field names for google.protobuf.ExtensionRangeOptions. const ( ExtensionRangeOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" ExtensionRangeOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.uninterpreted_option" ) // Field numbers for google.protobuf.ExtensionRangeOptions. const ( ExtensionRangeOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 ) // Names for google.protobuf.FieldDescriptorProto. const ( FieldDescriptorProto_message_name protoreflect.Name = "FieldDescriptorProto" FieldDescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto" ) // Field names for google.protobuf.FieldDescriptorProto. const ( FieldDescriptorProto_Name_field_name protoreflect.Name = "name" FieldDescriptorProto_Number_field_name protoreflect.Name = "number" FieldDescriptorProto_Label_field_name protoreflect.Name = "label" FieldDescriptorProto_Type_field_name protoreflect.Name = "type" FieldDescriptorProto_TypeName_field_name protoreflect.Name = "type_name" FieldDescriptorProto_Extendee_field_name protoreflect.Name = "extendee" FieldDescriptorProto_DefaultValue_field_name protoreflect.Name = "default_value" FieldDescriptorProto_OneofIndex_field_name protoreflect.Name = "oneof_index" FieldDescriptorProto_JsonName_field_name protoreflect.Name = "json_name" FieldDescriptorProto_Options_field_name protoreflect.Name = "options" FieldDescriptorProto_Proto3Optional_field_name protoreflect.Name = "proto3_optional" FieldDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.name" FieldDescriptorProto_Number_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.number" FieldDescriptorProto_Label_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.label" FieldDescriptorProto_Type_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.type" FieldDescriptorProto_TypeName_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.type_name" FieldDescriptorProto_Extendee_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.extendee" FieldDescriptorProto_DefaultValue_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.default_value" FieldDescriptorProto_OneofIndex_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.oneof_index" FieldDescriptorProto_JsonName_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.json_name" FieldDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.options" FieldDescriptorProto_Proto3Optional_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.proto3_optional" ) // Field numbers for google.protobuf.FieldDescriptorProto. const ( FieldDescriptorProto_Name_field_number protoreflect.FieldNumber = 1 FieldDescriptorProto_Number_field_number protoreflect.FieldNumber = 3 FieldDescriptorProto_Label_field_number protoreflect.FieldNumber = 4 FieldDescriptorProto_Type_field_number protoreflect.FieldNumber = 5 FieldDescriptorProto_TypeName_field_number protoreflect.FieldNumber = 6 FieldDescriptorProto_Extendee_field_number protoreflect.FieldNumber = 2 FieldDescriptorProto_DefaultValue_field_number protoreflect.FieldNumber = 7 FieldDescriptorProto_OneofIndex_field_number protoreflect.FieldNumber = 9 FieldDescriptorProto_JsonName_field_number protoreflect.FieldNumber = 10 FieldDescriptorProto_Options_field_number protoreflect.FieldNumber = 8 FieldDescriptorProto_Proto3Optional_field_number protoreflect.FieldNumber = 17 ) // Full and short names for google.protobuf.FieldDescriptorProto.Type. const ( FieldDescriptorProto_Type_enum_fullname = "google.protobuf.FieldDescriptorProto.Type" FieldDescriptorProto_Type_enum_name = "Type" ) // Full and short names for google.protobuf.FieldDescriptorProto.Label. const ( FieldDescriptorProto_Label_enum_fullname = "google.protobuf.FieldDescriptorProto.Label" FieldDescriptorProto_Label_enum_name = "Label" ) // Names for google.protobuf.OneofDescriptorProto. const ( OneofDescriptorProto_message_name protoreflect.Name = "OneofDescriptorProto" OneofDescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.OneofDescriptorProto" ) // Field names for google.protobuf.OneofDescriptorProto. const ( OneofDescriptorProto_Name_field_name protoreflect.Name = "name" OneofDescriptorProto_Options_field_name protoreflect.Name = "options" OneofDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.OneofDescriptorProto.name" OneofDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.OneofDescriptorProto.options" ) // Field numbers for google.protobuf.OneofDescriptorProto. const ( OneofDescriptorProto_Name_field_number protoreflect.FieldNumber = 1 OneofDescriptorProto_Options_field_number protoreflect.FieldNumber = 2 ) // Names for google.protobuf.EnumDescriptorProto. const ( EnumDescriptorProto_message_name protoreflect.Name = "EnumDescriptorProto" EnumDescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto" ) // Field names for google.protobuf.EnumDescriptorProto. const ( EnumDescriptorProto_Name_field_name protoreflect.Name = "name" EnumDescriptorProto_Value_field_name protoreflect.Name = "value" EnumDescriptorProto_Options_field_name protoreflect.Name = "options" EnumDescriptorProto_ReservedRange_field_name protoreflect.Name = "reserved_range" EnumDescriptorProto_ReservedName_field_name protoreflect.Name = "reserved_name" EnumDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.name" EnumDescriptorProto_Value_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.value" EnumDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.options" EnumDescriptorProto_ReservedRange_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.reserved_range" EnumDescriptorProto_ReservedName_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.reserved_name" ) // Field numbers for google.protobuf.EnumDescriptorProto. const ( EnumDescriptorProto_Name_field_number protoreflect.FieldNumber = 1 EnumDescriptorProto_Value_field_number protoreflect.FieldNumber = 2 EnumDescriptorProto_Options_field_number protoreflect.FieldNumber = 3 EnumDescriptorProto_ReservedRange_field_number protoreflect.FieldNumber = 4 EnumDescriptorProto_ReservedName_field_number protoreflect.FieldNumber = 5 ) // Names for google.protobuf.EnumDescriptorProto.EnumReservedRange. const ( EnumDescriptorProto_EnumReservedRange_message_name protoreflect.Name = "EnumReservedRange" EnumDescriptorProto_EnumReservedRange_message_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.EnumReservedRange" ) // Field names for google.protobuf.EnumDescriptorProto.EnumReservedRange. const ( EnumDescriptorProto_EnumReservedRange_Start_field_name protoreflect.Name = "start" EnumDescriptorProto_EnumReservedRange_End_field_name protoreflect.Name = "end" EnumDescriptorProto_EnumReservedRange_Start_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.EnumReservedRange.start" EnumDescriptorProto_EnumReservedRange_End_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.EnumReservedRange.end" ) // Field numbers for google.protobuf.EnumDescriptorProto.EnumReservedRange. const ( EnumDescriptorProto_EnumReservedRange_Start_field_number protoreflect.FieldNumber = 1 EnumDescriptorProto_EnumReservedRange_End_field_number protoreflect.FieldNumber = 2 ) // Names for google.protobuf.EnumValueDescriptorProto. const ( EnumValueDescriptorProto_message_name protoreflect.Name = "EnumValueDescriptorProto" EnumValueDescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.EnumValueDescriptorProto" ) // Field names for google.protobuf.EnumValueDescriptorProto. const ( EnumValueDescriptorProto_Name_field_name protoreflect.Name = "name" EnumValueDescriptorProto_Number_field_name protoreflect.Name = "number" EnumValueDescriptorProto_Options_field_name protoreflect.Name = "options" EnumValueDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.EnumValueDescriptorProto.name" EnumValueDescriptorProto_Number_field_fullname protoreflect.FullName = "google.protobuf.EnumValueDescriptorProto.number" EnumValueDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.EnumValueDescriptorProto.options" ) // Field numbers for google.protobuf.EnumValueDescriptorProto. const ( EnumValueDescriptorProto_Name_field_number protoreflect.FieldNumber = 1 EnumValueDescriptorProto_Number_field_number protoreflect.FieldNumber = 2 EnumValueDescriptorProto_Options_field_number protoreflect.FieldNumber = 3 ) // Names for google.protobuf.ServiceDescriptorProto. const ( ServiceDescriptorProto_message_name protoreflect.Name = "ServiceDescriptorProto" ServiceDescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.ServiceDescriptorProto" ) // Field names for google.protobuf.ServiceDescriptorProto. const ( ServiceDescriptorProto_Name_field_name protoreflect.Name = "name" ServiceDescriptorProto_Method_field_name protoreflect.Name = "method" ServiceDescriptorProto_Options_field_name protoreflect.Name = "options" ServiceDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.ServiceDescriptorProto.name" ServiceDescriptorProto_Method_field_fullname protoreflect.FullName = "google.protobuf.ServiceDescriptorProto.method" ServiceDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.ServiceDescriptorProto.options" ) // Field numbers for google.protobuf.ServiceDescriptorProto. const ( ServiceDescriptorProto_Name_field_number protoreflect.FieldNumber = 1 ServiceDescriptorProto_Method_field_number protoreflect.FieldNumber = 2 ServiceDescriptorProto_Options_field_number protoreflect.FieldNumber = 3 ) // Names for google.protobuf.MethodDescriptorProto. const ( MethodDescriptorProto_message_name protoreflect.Name = "MethodDescriptorProto" MethodDescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.MethodDescriptorProto" ) // Field names for google.protobuf.MethodDescriptorProto. const ( MethodDescriptorProto_Name_field_name protoreflect.Name = "name" MethodDescriptorProto_InputType_field_name protoreflect.Name = "input_type" MethodDescriptorProto_OutputType_field_name protoreflect.Name = "output_type" MethodDescriptorProto_Options_field_name protoreflect.Name = "options" MethodDescriptorProto_ClientStreaming_field_name protoreflect.Name = "client_streaming" MethodDescriptorProto_ServerStreaming_field_name protoreflect.Name = "server_streaming" MethodDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.MethodDescriptorProto.name" MethodDescriptorProto_InputType_field_fullname protoreflect.FullName = "google.protobuf.MethodDescriptorProto.input_type" MethodDescriptorProto_OutputType_field_fullname protoreflect.FullName = "google.protobuf.MethodDescriptorProto.output_type" MethodDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.MethodDescriptorProto.options" MethodDescriptorProto_ClientStreaming_field_fullname protoreflect.FullName = "google.protobuf.MethodDescriptorProto.client_streaming" MethodDescriptorProto_ServerStreaming_field_fullname protoreflect.FullName = "google.protobuf.MethodDescriptorProto.server_streaming" ) // Field numbers for google.protobuf.MethodDescriptorProto. const ( MethodDescriptorProto_Name_field_number protoreflect.FieldNumber = 1 MethodDescriptorProto_InputType_field_number protoreflect.FieldNumber = 2 MethodDescriptorProto_OutputType_field_number protoreflect.FieldNumber = 3 MethodDescriptorProto_Options_field_number protoreflect.FieldNumber = 4 MethodDescriptorProto_ClientStreaming_field_number protoreflect.FieldNumber = 5 MethodDescriptorProto_ServerStreaming_field_number protoreflect.FieldNumber = 6 ) // Names for google.protobuf.FileOptions. const ( FileOptions_message_name protoreflect.Name = "FileOptions" FileOptions_message_fullname protoreflect.FullName = "google.protobuf.FileOptions" ) // Field names for google.protobuf.FileOptions. const ( FileOptions_JavaPackage_field_name protoreflect.Name = "java_package" FileOptions_JavaOuterClassname_field_name protoreflect.Name = "java_outer_classname" FileOptions_JavaMultipleFiles_field_name protoreflect.Name = "java_multiple_files" FileOptions_JavaGenerateEqualsAndHash_field_name protoreflect.Name = "java_generate_equals_and_hash" FileOptions_JavaStringCheckUtf8_field_name protoreflect.Name = "java_string_check_utf8" FileOptions_OptimizeFor_field_name protoreflect.Name = "optimize_for" FileOptions_GoPackage_field_name protoreflect.Name = "go_package" FileOptions_CcGenericServices_field_name protoreflect.Name = "cc_generic_services" FileOptions_JavaGenericServices_field_name protoreflect.Name = "java_generic_services" FileOptions_PyGenericServices_field_name protoreflect.Name = "py_generic_services" FileOptions_PhpGenericServices_field_name protoreflect.Name = "php_generic_services" FileOptions_Deprecated_field_name protoreflect.Name = "deprecated" FileOptions_CcEnableArenas_field_name protoreflect.Name = "cc_enable_arenas" FileOptions_ObjcClassPrefix_field_name protoreflect.Name = "objc_class_prefix" FileOptions_CsharpNamespace_field_name protoreflect.Name = "csharp_namespace" FileOptions_SwiftPrefix_field_name protoreflect.Name = "swift_prefix" FileOptions_PhpClassPrefix_field_name protoreflect.Name = "php_class_prefix" FileOptions_PhpNamespace_field_name protoreflect.Name = "php_namespace" FileOptions_PhpMetadataNamespace_field_name protoreflect.Name = "php_metadata_namespace" FileOptions_RubyPackage_field_name protoreflect.Name = "ruby_package" FileOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" FileOptions_JavaPackage_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_package" FileOptions_JavaOuterClassname_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_outer_classname" FileOptions_JavaMultipleFiles_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_multiple_files" FileOptions_JavaGenerateEqualsAndHash_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_generate_equals_and_hash" FileOptions_JavaStringCheckUtf8_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_string_check_utf8" FileOptions_OptimizeFor_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.optimize_for" FileOptions_GoPackage_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.go_package" FileOptions_CcGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.cc_generic_services" FileOptions_JavaGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_generic_services" FileOptions_PyGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.py_generic_services" FileOptions_PhpGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_generic_services" FileOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.deprecated" FileOptions_CcEnableArenas_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.cc_enable_arenas" FileOptions_ObjcClassPrefix_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.objc_class_prefix" FileOptions_CsharpNamespace_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.csharp_namespace" FileOptions_SwiftPrefix_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.swift_prefix" FileOptions_PhpClassPrefix_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_class_prefix" FileOptions_PhpNamespace_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_namespace" FileOptions_PhpMetadataNamespace_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_metadata_namespace" FileOptions_RubyPackage_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.ruby_package" FileOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.uninterpreted_option" ) // Field numbers for google.protobuf.FileOptions. const ( FileOptions_JavaPackage_field_number protoreflect.FieldNumber = 1 FileOptions_JavaOuterClassname_field_number protoreflect.FieldNumber = 8 FileOptions_JavaMultipleFiles_field_number protoreflect.FieldNumber = 10 FileOptions_JavaGenerateEqualsAndHash_field_number protoreflect.FieldNumber = 20 FileOptions_JavaStringCheckUtf8_field_number protoreflect.FieldNumber = 27 FileOptions_OptimizeFor_field_number protoreflect.FieldNumber = 9 FileOptions_GoPackage_field_number protoreflect.FieldNumber = 11 FileOptions_CcGenericServices_field_number protoreflect.FieldNumber = 16 FileOptions_JavaGenericServices_field_number protoreflect.FieldNumber = 17 FileOptions_PyGenericServices_field_number protoreflect.FieldNumber = 18 FileOptions_PhpGenericServices_field_number protoreflect.FieldNumber = 42 FileOptions_Deprecated_field_number protoreflect.FieldNumber = 23 FileOptions_CcEnableArenas_field_number protoreflect.FieldNumber = 31 FileOptions_ObjcClassPrefix_field_number protoreflect.FieldNumber = 36 FileOptions_CsharpNamespace_field_number protoreflect.FieldNumber = 37 FileOptions_SwiftPrefix_field_number protoreflect.FieldNumber = 39 FileOptions_PhpClassPrefix_field_number protoreflect.FieldNumber = 40 FileOptions_PhpNamespace_field_number protoreflect.FieldNumber = 41 FileOptions_PhpMetadataNamespace_field_number protoreflect.FieldNumber = 44 FileOptions_RubyPackage_field_number protoreflect.FieldNumber = 45 FileOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 ) // Full and short names for google.protobuf.FileOptions.OptimizeMode. const ( FileOptions_OptimizeMode_enum_fullname = "google.protobuf.FileOptions.OptimizeMode" FileOptions_OptimizeMode_enum_name = "OptimizeMode" ) // Names for google.protobuf.MessageOptions. const ( MessageOptions_message_name protoreflect.Name = "MessageOptions" MessageOptions_message_fullname protoreflect.FullName = "google.protobuf.MessageOptions" ) // Field names for google.protobuf.MessageOptions. const ( MessageOptions_MessageSetWireFormat_field_name protoreflect.Name = "message_set_wire_format" MessageOptions_NoStandardDescriptorAccessor_field_name protoreflect.Name = "no_standard_descriptor_accessor" MessageOptions_Deprecated_field_name protoreflect.Name = "deprecated" MessageOptions_MapEntry_field_name protoreflect.Name = "map_entry" MessageOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" MessageOptions_MessageSetWireFormat_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.message_set_wire_format" MessageOptions_NoStandardDescriptorAccessor_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.no_standard_descriptor_accessor" MessageOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated" MessageOptions_MapEntry_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.map_entry" MessageOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.uninterpreted_option" ) // Field numbers for google.protobuf.MessageOptions. const ( MessageOptions_MessageSetWireFormat_field_number protoreflect.FieldNumber = 1 MessageOptions_NoStandardDescriptorAccessor_field_number protoreflect.FieldNumber = 2 MessageOptions_Deprecated_field_number protoreflect.FieldNumber = 3 MessageOptions_MapEntry_field_number protoreflect.FieldNumber = 7 MessageOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 ) // Names for google.protobuf.FieldOptions. const ( FieldOptions_message_name protoreflect.Name = "FieldOptions" FieldOptions_message_fullname protoreflect.FullName = "google.protobuf.FieldOptions" ) // Field names for google.protobuf.FieldOptions. const ( FieldOptions_Ctype_field_name protoreflect.Name = "ctype" FieldOptions_Packed_field_name protoreflect.Name = "packed" FieldOptions_Jstype_field_name protoreflect.Name = "jstype" FieldOptions_Lazy_field_name protoreflect.Name = "lazy" FieldOptions_Deprecated_field_name protoreflect.Name = "deprecated" FieldOptions_Weak_field_name protoreflect.Name = "weak" FieldOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" FieldOptions_Ctype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.ctype" FieldOptions_Packed_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.packed" FieldOptions_Jstype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.jstype" FieldOptions_Lazy_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.lazy" FieldOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.deprecated" FieldOptions_Weak_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.weak" FieldOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.uninterpreted_option" ) // Field numbers for google.protobuf.FieldOptions. const ( FieldOptions_Ctype_field_number protoreflect.FieldNumber = 1 FieldOptions_Packed_field_number protoreflect.FieldNumber = 2 FieldOptions_Jstype_field_number protoreflect.FieldNumber = 6 FieldOptions_Lazy_field_number protoreflect.FieldNumber = 5 FieldOptions_Deprecated_field_number protoreflect.FieldNumber = 3 FieldOptions_Weak_field_number protoreflect.FieldNumber = 10 FieldOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 ) // Full and short names for google.protobuf.FieldOptions.CType. const ( FieldOptions_CType_enum_fullname = "google.protobuf.FieldOptions.CType" FieldOptions_CType_enum_name = "CType" ) // Full and short names for google.protobuf.FieldOptions.JSType. const ( FieldOptions_JSType_enum_fullname = "google.protobuf.FieldOptions.JSType" FieldOptions_JSType_enum_name = "JSType" ) // Names for google.protobuf.OneofOptions. const ( OneofOptions_message_name protoreflect.Name = "OneofOptions" OneofOptions_message_fullname protoreflect.FullName = "google.protobuf.OneofOptions" ) // Field names for google.protobuf.OneofOptions. const ( OneofOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" OneofOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.OneofOptions.uninterpreted_option" ) // Field numbers for google.protobuf.OneofOptions. const ( OneofOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 ) // Names for google.protobuf.EnumOptions. const ( EnumOptions_message_name protoreflect.Name = "EnumOptions" EnumOptions_message_fullname protoreflect.FullName = "google.protobuf.EnumOptions" ) // Field names for google.protobuf.EnumOptions. const ( EnumOptions_AllowAlias_field_name protoreflect.Name = "allow_alias" EnumOptions_Deprecated_field_name protoreflect.Name = "deprecated" EnumOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" EnumOptions_AllowAlias_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.allow_alias" EnumOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated" EnumOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.uninterpreted_option" ) // Field numbers for google.protobuf.EnumOptions. const ( EnumOptions_AllowAlias_field_number protoreflect.FieldNumber = 2 EnumOptions_Deprecated_field_number protoreflect.FieldNumber = 3 EnumOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 ) // Names for google.protobuf.EnumValueOptions. const ( EnumValueOptions_message_name protoreflect.Name = "EnumValueOptions" EnumValueOptions_message_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions" ) // Field names for google.protobuf.EnumValueOptions. const ( EnumValueOptions_Deprecated_field_name protoreflect.Name = "deprecated" EnumValueOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" EnumValueOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.deprecated" EnumValueOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.uninterpreted_option" ) // Field numbers for google.protobuf.EnumValueOptions. const ( EnumValueOptions_Deprecated_field_number protoreflect.FieldNumber = 1 EnumValueOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 ) // Names for google.protobuf.ServiceOptions. const ( ServiceOptions_message_name protoreflect.Name = "ServiceOptions" ServiceOptions_message_fullname protoreflect.FullName = "google.protobuf.ServiceOptions" ) // Field names for google.protobuf.ServiceOptions. const ( ServiceOptions_Deprecated_field_name protoreflect.Name = "deprecated" ServiceOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" ServiceOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.ServiceOptions.deprecated" ServiceOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ServiceOptions.uninterpreted_option" ) // Field numbers for google.protobuf.ServiceOptions. const ( ServiceOptions_Deprecated_field_number protoreflect.FieldNumber = 33 ServiceOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 ) // Names for google.protobuf.MethodOptions. const ( MethodOptions_message_name protoreflect.Name = "MethodOptions" MethodOptions_message_fullname protoreflect.FullName = "google.protobuf.MethodOptions" ) // Field names for google.protobuf.MethodOptions. const ( MethodOptions_Deprecated_field_name protoreflect.Name = "deprecated" MethodOptions_IdempotencyLevel_field_name protoreflect.Name = "idempotency_level" MethodOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" MethodOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.deprecated" MethodOptions_IdempotencyLevel_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.idempotency_level" MethodOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.uninterpreted_option" ) // Field numbers for google.protobuf.MethodOptions. const ( MethodOptions_Deprecated_field_number protoreflect.FieldNumber = 33 MethodOptions_IdempotencyLevel_field_number protoreflect.FieldNumber = 34 MethodOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 ) // Full and short names for google.protobuf.MethodOptions.IdempotencyLevel. const ( MethodOptions_IdempotencyLevel_enum_fullname = "google.protobuf.MethodOptions.IdempotencyLevel" MethodOptions_IdempotencyLevel_enum_name = "IdempotencyLevel" ) // Names for google.protobuf.UninterpretedOption. const ( UninterpretedOption_message_name protoreflect.Name = "UninterpretedOption" UninterpretedOption_message_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption" ) // Field names for google.protobuf.UninterpretedOption. const ( UninterpretedOption_Name_field_name protoreflect.Name = "name" UninterpretedOption_IdentifierValue_field_name protoreflect.Name = "identifier_value" UninterpretedOption_PositiveIntValue_field_name protoreflect.Name = "positive_int_value" UninterpretedOption_NegativeIntValue_field_name protoreflect.Name = "negative_int_value" UninterpretedOption_DoubleValue_field_name protoreflect.Name = "double_value" UninterpretedOption_StringValue_field_name protoreflect.Name = "string_value" UninterpretedOption_AggregateValue_field_name protoreflect.Name = "aggregate_value" UninterpretedOption_Name_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.name" UninterpretedOption_IdentifierValue_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.identifier_value" UninterpretedOption_PositiveIntValue_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.positive_int_value" UninterpretedOption_NegativeIntValue_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.negative_int_value" UninterpretedOption_DoubleValue_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.double_value" UninterpretedOption_StringValue_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.string_value" UninterpretedOption_AggregateValue_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.aggregate_value" ) // Field numbers for google.protobuf.UninterpretedOption. const ( UninterpretedOption_Name_field_number protoreflect.FieldNumber = 2 UninterpretedOption_IdentifierValue_field_number protoreflect.FieldNumber = 3 UninterpretedOption_PositiveIntValue_field_number protoreflect.FieldNumber = 4 UninterpretedOption_NegativeIntValue_field_number protoreflect.FieldNumber = 5 UninterpretedOption_DoubleValue_field_number protoreflect.FieldNumber = 6 UninterpretedOption_StringValue_field_number protoreflect.FieldNumber = 7 UninterpretedOption_AggregateValue_field_number protoreflect.FieldNumber = 8 ) // Names for google.protobuf.UninterpretedOption.NamePart. const ( UninterpretedOption_NamePart_message_name protoreflect.Name = "NamePart" UninterpretedOption_NamePart_message_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.NamePart" ) // Field names for google.protobuf.UninterpretedOption.NamePart. const ( UninterpretedOption_NamePart_NamePart_field_name protoreflect.Name = "name_part" UninterpretedOption_NamePart_IsExtension_field_name protoreflect.Name = "is_extension" UninterpretedOption_NamePart_NamePart_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.NamePart.name_part" UninterpretedOption_NamePart_IsExtension_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.NamePart.is_extension" ) // Field numbers for google.protobuf.UninterpretedOption.NamePart. const ( UninterpretedOption_NamePart_NamePart_field_number protoreflect.FieldNumber = 1 UninterpretedOption_NamePart_IsExtension_field_number protoreflect.FieldNumber = 2 ) // Names for google.protobuf.SourceCodeInfo. const ( SourceCodeInfo_message_name protoreflect.Name = "SourceCodeInfo" SourceCodeInfo_message_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo" ) // Field names for google.protobuf.SourceCodeInfo. const ( SourceCodeInfo_Location_field_name protoreflect.Name = "location" SourceCodeInfo_Location_field_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo.location" ) // Field numbers for google.protobuf.SourceCodeInfo. const ( SourceCodeInfo_Location_field_number protoreflect.FieldNumber = 1 ) // Names for google.protobuf.SourceCodeInfo.Location. const ( SourceCodeInfo_Location_message_name protoreflect.Name = "Location" SourceCodeInfo_Location_message_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo.Location" ) // Field names for google.protobuf.SourceCodeInfo.Location. const ( SourceCodeInfo_Location_Path_field_name protoreflect.Name = "path" SourceCodeInfo_Location_Span_field_name protoreflect.Name = "span" SourceCodeInfo_Location_LeadingComments_field_name protoreflect.Name = "leading_comments" SourceCodeInfo_Location_TrailingComments_field_name protoreflect.Name = "trailing_comments" SourceCodeInfo_Location_LeadingDetachedComments_field_name protoreflect.Name = "leading_detached_comments" SourceCodeInfo_Location_Path_field_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo.Location.path" SourceCodeInfo_Location_Span_field_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo.Location.span" SourceCodeInfo_Location_LeadingComments_field_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo.Location.leading_comments" SourceCodeInfo_Location_TrailingComments_field_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo.Location.trailing_comments" SourceCodeInfo_Location_LeadingDetachedComments_field_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo.Location.leading_detached_comments" ) // Field numbers for google.protobuf.SourceCodeInfo.Location. const ( SourceCodeInfo_Location_Path_field_number protoreflect.FieldNumber = 1 SourceCodeInfo_Location_Span_field_number protoreflect.FieldNumber = 2 SourceCodeInfo_Location_LeadingComments_field_number protoreflect.FieldNumber = 3 SourceCodeInfo_Location_TrailingComments_field_number protoreflect.FieldNumber = 4 SourceCodeInfo_Location_LeadingDetachedComments_field_number protoreflect.FieldNumber = 6 ) // Names for google.protobuf.GeneratedCodeInfo. const ( GeneratedCodeInfo_message_name protoreflect.Name = "GeneratedCodeInfo" GeneratedCodeInfo_message_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo" ) // Field names for google.protobuf.GeneratedCodeInfo. const ( GeneratedCodeInfo_Annotation_field_name protoreflect.Name = "annotation" GeneratedCodeInfo_Annotation_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.annotation" ) // Field numbers for google.protobuf.GeneratedCodeInfo. const ( GeneratedCodeInfo_Annotation_field_number protoreflect.FieldNumber = 1 ) // Names for google.protobuf.GeneratedCodeInfo.Annotation. const ( GeneratedCodeInfo_Annotation_message_name protoreflect.Name = "Annotation" GeneratedCodeInfo_Annotation_message_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation" ) // Field names for google.protobuf.GeneratedCodeInfo.Annotation. const ( GeneratedCodeInfo_Annotation_Path_field_name protoreflect.Name = "path" GeneratedCodeInfo_Annotation_SourceFile_field_name protoreflect.Name = "source_file" GeneratedCodeInfo_Annotation_Begin_field_name protoreflect.Name = "begin" GeneratedCodeInfo_Annotation_End_field_name protoreflect.Name = "end" GeneratedCodeInfo_Annotation_Path_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.path" GeneratedCodeInfo_Annotation_SourceFile_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.source_file" GeneratedCodeInfo_Annotation_Begin_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.begin" GeneratedCodeInfo_Annotation_End_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.end" ) // Field numbers for google.protobuf.GeneratedCodeInfo.Annotation. const ( GeneratedCodeInfo_Annotation_Path_field_number protoreflect.FieldNumber = 1 GeneratedCodeInfo_Annotation_SourceFile_field_number protoreflect.FieldNumber = 2 GeneratedCodeInfo_Annotation_Begin_field_number protoreflect.FieldNumber = 3 GeneratedCodeInfo_Annotation_End_field_number protoreflect.FieldNumber = 4 ) golang-google-protobuf-1.27.1/internal/genid/doc.go000066400000000000000000000006431411250152500221560ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package genid contains constants for declarations in descriptor.proto // and the well-known types. package genid import protoreflect "google.golang.org/protobuf/reflect/protoreflect" const GoogleProtobuf_package protoreflect.FullName = "google.protobuf" golang-google-protobuf-1.27.1/internal/genid/duration_gen.go000066400000000000000000000021171411250152500240650ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by generate-protos. DO NOT EDIT. package genid import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" ) const File_google_protobuf_duration_proto = "google/protobuf/duration.proto" // Names for google.protobuf.Duration. const ( Duration_message_name protoreflect.Name = "Duration" Duration_message_fullname protoreflect.FullName = "google.protobuf.Duration" ) // Field names for google.protobuf.Duration. const ( Duration_Seconds_field_name protoreflect.Name = "seconds" Duration_Nanos_field_name protoreflect.Name = "nanos" Duration_Seconds_field_fullname protoreflect.FullName = "google.protobuf.Duration.seconds" Duration_Nanos_field_fullname protoreflect.FullName = "google.protobuf.Duration.nanos" ) // Field numbers for google.protobuf.Duration. const ( Duration_Seconds_field_number protoreflect.FieldNumber = 1 Duration_Nanos_field_number protoreflect.FieldNumber = 2 ) golang-google-protobuf-1.27.1/internal/genid/empty_gen.go000066400000000000000000000010451411250152500233750ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by generate-protos. DO NOT EDIT. package genid import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" ) const File_google_protobuf_empty_proto = "google/protobuf/empty.proto" // Names for google.protobuf.Empty. const ( Empty_message_name protoreflect.Name = "Empty" Empty_message_fullname protoreflect.FullName = "google.protobuf.Empty" ) golang-google-protobuf-1.27.1/internal/genid/field_mask_gen.go000066400000000000000000000016051411250152500243370ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by generate-protos. DO NOT EDIT. package genid import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" ) const File_google_protobuf_field_mask_proto = "google/protobuf/field_mask.proto" // Names for google.protobuf.FieldMask. const ( FieldMask_message_name protoreflect.Name = "FieldMask" FieldMask_message_fullname protoreflect.FullName = "google.protobuf.FieldMask" ) // Field names for google.protobuf.FieldMask. const ( FieldMask_Paths_field_name protoreflect.Name = "paths" FieldMask_Paths_field_fullname protoreflect.FullName = "google.protobuf.FieldMask.paths" ) // Field numbers for google.protobuf.FieldMask. const ( FieldMask_Paths_field_number protoreflect.FieldNumber = 1 ) golang-google-protobuf-1.27.1/internal/genid/goname.go000066400000000000000000000012641411250152500226570ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package genid // Go names of implementation-specific struct fields in generated messages. const ( State_goname = "state" SizeCache_goname = "sizeCache" SizeCacheA_goname = "XXX_sizecache" WeakFields_goname = "weakFields" WeakFieldsA_goname = "XXX_weak" UnknownFields_goname = "unknownFields" UnknownFieldsA_goname = "XXX_unrecognized" ExtensionFields_goname = "extensionFields" ExtensionFieldsA_goname = "XXX_InternalExtensions" ExtensionFieldsB_goname = "XXX_extensions" WeakFieldPrefix_goname = "XXX_weak_" ) golang-google-protobuf-1.27.1/internal/genid/map_entry.go000066400000000000000000000010461411250152500234050ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package genid import protoreflect "google.golang.org/protobuf/reflect/protoreflect" // Generic field names and numbers for synthetic map entry messages. const ( MapEntry_Key_field_name protoreflect.Name = "key" MapEntry_Value_field_name protoreflect.Name = "value" MapEntry_Key_field_number protoreflect.FieldNumber = 1 MapEntry_Value_field_number protoreflect.FieldNumber = 2 ) golang-google-protobuf-1.27.1/internal/genid/source_context_gen.go000066400000000000000000000017121411250152500253040ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by generate-protos. DO NOT EDIT. package genid import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" ) const File_google_protobuf_source_context_proto = "google/protobuf/source_context.proto" // Names for google.protobuf.SourceContext. const ( SourceContext_message_name protoreflect.Name = "SourceContext" SourceContext_message_fullname protoreflect.FullName = "google.protobuf.SourceContext" ) // Field names for google.protobuf.SourceContext. const ( SourceContext_FileName_field_name protoreflect.Name = "file_name" SourceContext_FileName_field_fullname protoreflect.FullName = "google.protobuf.SourceContext.file_name" ) // Field numbers for google.protobuf.SourceContext. const ( SourceContext_FileName_field_number protoreflect.FieldNumber = 1 ) golang-google-protobuf-1.27.1/internal/genid/struct_gen.go000066400000000000000000000101171411250152500235630ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by generate-protos. DO NOT EDIT. package genid import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" ) const File_google_protobuf_struct_proto = "google/protobuf/struct.proto" // Full and short names for google.protobuf.NullValue. const ( NullValue_enum_fullname = "google.protobuf.NullValue" NullValue_enum_name = "NullValue" ) // Names for google.protobuf.Struct. const ( Struct_message_name protoreflect.Name = "Struct" Struct_message_fullname protoreflect.FullName = "google.protobuf.Struct" ) // Field names for google.protobuf.Struct. const ( Struct_Fields_field_name protoreflect.Name = "fields" Struct_Fields_field_fullname protoreflect.FullName = "google.protobuf.Struct.fields" ) // Field numbers for google.protobuf.Struct. const ( Struct_Fields_field_number protoreflect.FieldNumber = 1 ) // Names for google.protobuf.Struct.FieldsEntry. const ( Struct_FieldsEntry_message_name protoreflect.Name = "FieldsEntry" Struct_FieldsEntry_message_fullname protoreflect.FullName = "google.protobuf.Struct.FieldsEntry" ) // Field names for google.protobuf.Struct.FieldsEntry. const ( Struct_FieldsEntry_Key_field_name protoreflect.Name = "key" Struct_FieldsEntry_Value_field_name protoreflect.Name = "value" Struct_FieldsEntry_Key_field_fullname protoreflect.FullName = "google.protobuf.Struct.FieldsEntry.key" Struct_FieldsEntry_Value_field_fullname protoreflect.FullName = "google.protobuf.Struct.FieldsEntry.value" ) // Field numbers for google.protobuf.Struct.FieldsEntry. const ( Struct_FieldsEntry_Key_field_number protoreflect.FieldNumber = 1 Struct_FieldsEntry_Value_field_number protoreflect.FieldNumber = 2 ) // Names for google.protobuf.Value. const ( Value_message_name protoreflect.Name = "Value" Value_message_fullname protoreflect.FullName = "google.protobuf.Value" ) // Field names for google.protobuf.Value. const ( Value_NullValue_field_name protoreflect.Name = "null_value" Value_NumberValue_field_name protoreflect.Name = "number_value" Value_StringValue_field_name protoreflect.Name = "string_value" Value_BoolValue_field_name protoreflect.Name = "bool_value" Value_StructValue_field_name protoreflect.Name = "struct_value" Value_ListValue_field_name protoreflect.Name = "list_value" Value_NullValue_field_fullname protoreflect.FullName = "google.protobuf.Value.null_value" Value_NumberValue_field_fullname protoreflect.FullName = "google.protobuf.Value.number_value" Value_StringValue_field_fullname protoreflect.FullName = "google.protobuf.Value.string_value" Value_BoolValue_field_fullname protoreflect.FullName = "google.protobuf.Value.bool_value" Value_StructValue_field_fullname protoreflect.FullName = "google.protobuf.Value.struct_value" Value_ListValue_field_fullname protoreflect.FullName = "google.protobuf.Value.list_value" ) // Field numbers for google.protobuf.Value. const ( Value_NullValue_field_number protoreflect.FieldNumber = 1 Value_NumberValue_field_number protoreflect.FieldNumber = 2 Value_StringValue_field_number protoreflect.FieldNumber = 3 Value_BoolValue_field_number protoreflect.FieldNumber = 4 Value_StructValue_field_number protoreflect.FieldNumber = 5 Value_ListValue_field_number protoreflect.FieldNumber = 6 ) // Oneof names for google.protobuf.Value. const ( Value_Kind_oneof_name protoreflect.Name = "kind" Value_Kind_oneof_fullname protoreflect.FullName = "google.protobuf.Value.kind" ) // Names for google.protobuf.ListValue. const ( ListValue_message_name protoreflect.Name = "ListValue" ListValue_message_fullname protoreflect.FullName = "google.protobuf.ListValue" ) // Field names for google.protobuf.ListValue. const ( ListValue_Values_field_name protoreflect.Name = "values" ListValue_Values_field_fullname protoreflect.FullName = "google.protobuf.ListValue.values" ) // Field numbers for google.protobuf.ListValue. const ( ListValue_Values_field_number protoreflect.FieldNumber = 1 ) golang-google-protobuf-1.27.1/internal/genid/timestamp_gen.go000066400000000000000000000021401411250152500242370ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by generate-protos. DO NOT EDIT. package genid import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" ) const File_google_protobuf_timestamp_proto = "google/protobuf/timestamp.proto" // Names for google.protobuf.Timestamp. const ( Timestamp_message_name protoreflect.Name = "Timestamp" Timestamp_message_fullname protoreflect.FullName = "google.protobuf.Timestamp" ) // Field names for google.protobuf.Timestamp. const ( Timestamp_Seconds_field_name protoreflect.Name = "seconds" Timestamp_Nanos_field_name protoreflect.Name = "nanos" Timestamp_Seconds_field_fullname protoreflect.FullName = "google.protobuf.Timestamp.seconds" Timestamp_Nanos_field_fullname protoreflect.FullName = "google.protobuf.Timestamp.nanos" ) // Field numbers for google.protobuf.Timestamp. const ( Timestamp_Seconds_field_number protoreflect.FieldNumber = 1 Timestamp_Nanos_field_number protoreflect.FieldNumber = 2 ) golang-google-protobuf-1.27.1/internal/genid/type_gen.go000066400000000000000000000172471411250152500232330ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by generate-protos. DO NOT EDIT. package genid import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" ) const File_google_protobuf_type_proto = "google/protobuf/type.proto" // Full and short names for google.protobuf.Syntax. const ( Syntax_enum_fullname = "google.protobuf.Syntax" Syntax_enum_name = "Syntax" ) // Names for google.protobuf.Type. const ( Type_message_name protoreflect.Name = "Type" Type_message_fullname protoreflect.FullName = "google.protobuf.Type" ) // Field names for google.protobuf.Type. const ( Type_Name_field_name protoreflect.Name = "name" Type_Fields_field_name protoreflect.Name = "fields" Type_Oneofs_field_name protoreflect.Name = "oneofs" Type_Options_field_name protoreflect.Name = "options" Type_SourceContext_field_name protoreflect.Name = "source_context" Type_Syntax_field_name protoreflect.Name = "syntax" Type_Name_field_fullname protoreflect.FullName = "google.protobuf.Type.name" Type_Fields_field_fullname protoreflect.FullName = "google.protobuf.Type.fields" Type_Oneofs_field_fullname protoreflect.FullName = "google.protobuf.Type.oneofs" Type_Options_field_fullname protoreflect.FullName = "google.protobuf.Type.options" Type_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Type.source_context" Type_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Type.syntax" ) // Field numbers for google.protobuf.Type. const ( Type_Name_field_number protoreflect.FieldNumber = 1 Type_Fields_field_number protoreflect.FieldNumber = 2 Type_Oneofs_field_number protoreflect.FieldNumber = 3 Type_Options_field_number protoreflect.FieldNumber = 4 Type_SourceContext_field_number protoreflect.FieldNumber = 5 Type_Syntax_field_number protoreflect.FieldNumber = 6 ) // Names for google.protobuf.Field. const ( Field_message_name protoreflect.Name = "Field" Field_message_fullname protoreflect.FullName = "google.protobuf.Field" ) // Field names for google.protobuf.Field. const ( Field_Kind_field_name protoreflect.Name = "kind" Field_Cardinality_field_name protoreflect.Name = "cardinality" Field_Number_field_name protoreflect.Name = "number" Field_Name_field_name protoreflect.Name = "name" Field_TypeUrl_field_name protoreflect.Name = "type_url" Field_OneofIndex_field_name protoreflect.Name = "oneof_index" Field_Packed_field_name protoreflect.Name = "packed" Field_Options_field_name protoreflect.Name = "options" Field_JsonName_field_name protoreflect.Name = "json_name" Field_DefaultValue_field_name protoreflect.Name = "default_value" Field_Kind_field_fullname protoreflect.FullName = "google.protobuf.Field.kind" Field_Cardinality_field_fullname protoreflect.FullName = "google.protobuf.Field.cardinality" Field_Number_field_fullname protoreflect.FullName = "google.protobuf.Field.number" Field_Name_field_fullname protoreflect.FullName = "google.protobuf.Field.name" Field_TypeUrl_field_fullname protoreflect.FullName = "google.protobuf.Field.type_url" Field_OneofIndex_field_fullname protoreflect.FullName = "google.protobuf.Field.oneof_index" Field_Packed_field_fullname protoreflect.FullName = "google.protobuf.Field.packed" Field_Options_field_fullname protoreflect.FullName = "google.protobuf.Field.options" Field_JsonName_field_fullname protoreflect.FullName = "google.protobuf.Field.json_name" Field_DefaultValue_field_fullname protoreflect.FullName = "google.protobuf.Field.default_value" ) // Field numbers for google.protobuf.Field. const ( Field_Kind_field_number protoreflect.FieldNumber = 1 Field_Cardinality_field_number protoreflect.FieldNumber = 2 Field_Number_field_number protoreflect.FieldNumber = 3 Field_Name_field_number protoreflect.FieldNumber = 4 Field_TypeUrl_field_number protoreflect.FieldNumber = 6 Field_OneofIndex_field_number protoreflect.FieldNumber = 7 Field_Packed_field_number protoreflect.FieldNumber = 8 Field_Options_field_number protoreflect.FieldNumber = 9 Field_JsonName_field_number protoreflect.FieldNumber = 10 Field_DefaultValue_field_number protoreflect.FieldNumber = 11 ) // Full and short names for google.protobuf.Field.Kind. const ( Field_Kind_enum_fullname = "google.protobuf.Field.Kind" Field_Kind_enum_name = "Kind" ) // Full and short names for google.protobuf.Field.Cardinality. const ( Field_Cardinality_enum_fullname = "google.protobuf.Field.Cardinality" Field_Cardinality_enum_name = "Cardinality" ) // Names for google.protobuf.Enum. const ( Enum_message_name protoreflect.Name = "Enum" Enum_message_fullname protoreflect.FullName = "google.protobuf.Enum" ) // Field names for google.protobuf.Enum. const ( Enum_Name_field_name protoreflect.Name = "name" Enum_Enumvalue_field_name protoreflect.Name = "enumvalue" Enum_Options_field_name protoreflect.Name = "options" Enum_SourceContext_field_name protoreflect.Name = "source_context" Enum_Syntax_field_name protoreflect.Name = "syntax" Enum_Name_field_fullname protoreflect.FullName = "google.protobuf.Enum.name" Enum_Enumvalue_field_fullname protoreflect.FullName = "google.protobuf.Enum.enumvalue" Enum_Options_field_fullname protoreflect.FullName = "google.protobuf.Enum.options" Enum_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Enum.source_context" Enum_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Enum.syntax" ) // Field numbers for google.protobuf.Enum. const ( Enum_Name_field_number protoreflect.FieldNumber = 1 Enum_Enumvalue_field_number protoreflect.FieldNumber = 2 Enum_Options_field_number protoreflect.FieldNumber = 3 Enum_SourceContext_field_number protoreflect.FieldNumber = 4 Enum_Syntax_field_number protoreflect.FieldNumber = 5 ) // Names for google.protobuf.EnumValue. const ( EnumValue_message_name protoreflect.Name = "EnumValue" EnumValue_message_fullname protoreflect.FullName = "google.protobuf.EnumValue" ) // Field names for google.protobuf.EnumValue. const ( EnumValue_Name_field_name protoreflect.Name = "name" EnumValue_Number_field_name protoreflect.Name = "number" EnumValue_Options_field_name protoreflect.Name = "options" EnumValue_Name_field_fullname protoreflect.FullName = "google.protobuf.EnumValue.name" EnumValue_Number_field_fullname protoreflect.FullName = "google.protobuf.EnumValue.number" EnumValue_Options_field_fullname protoreflect.FullName = "google.protobuf.EnumValue.options" ) // Field numbers for google.protobuf.EnumValue. const ( EnumValue_Name_field_number protoreflect.FieldNumber = 1 EnumValue_Number_field_number protoreflect.FieldNumber = 2 EnumValue_Options_field_number protoreflect.FieldNumber = 3 ) // Names for google.protobuf.Option. const ( Option_message_name protoreflect.Name = "Option" Option_message_fullname protoreflect.FullName = "google.protobuf.Option" ) // Field names for google.protobuf.Option. const ( Option_Name_field_name protoreflect.Name = "name" Option_Value_field_name protoreflect.Name = "value" Option_Name_field_fullname protoreflect.FullName = "google.protobuf.Option.name" Option_Value_field_fullname protoreflect.FullName = "google.protobuf.Option.value" ) // Field numbers for google.protobuf.Option. const ( Option_Name_field_number protoreflect.FieldNumber = 1 Option_Value_field_number protoreflect.FieldNumber = 2 ) golang-google-protobuf-1.27.1/internal/genid/wrappers.go000066400000000000000000000007031411250152500232510ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package genid import protoreflect "google.golang.org/protobuf/reflect/protoreflect" // Generic field name and number for messages in wrappers.proto. const ( WrapperValue_Value_field_name protoreflect.Name = "value" WrapperValue_Value_field_number protoreflect.FieldNumber = 1 ) golang-google-protobuf-1.27.1/internal/genid/wrappers_gen.go000066400000000000000000000120551411250152500241050ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by generate-protos. DO NOT EDIT. package genid import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" ) const File_google_protobuf_wrappers_proto = "google/protobuf/wrappers.proto" // Names for google.protobuf.DoubleValue. const ( DoubleValue_message_name protoreflect.Name = "DoubleValue" DoubleValue_message_fullname protoreflect.FullName = "google.protobuf.DoubleValue" ) // Field names for google.protobuf.DoubleValue. const ( DoubleValue_Value_field_name protoreflect.Name = "value" DoubleValue_Value_field_fullname protoreflect.FullName = "google.protobuf.DoubleValue.value" ) // Field numbers for google.protobuf.DoubleValue. const ( DoubleValue_Value_field_number protoreflect.FieldNumber = 1 ) // Names for google.protobuf.FloatValue. const ( FloatValue_message_name protoreflect.Name = "FloatValue" FloatValue_message_fullname protoreflect.FullName = "google.protobuf.FloatValue" ) // Field names for google.protobuf.FloatValue. const ( FloatValue_Value_field_name protoreflect.Name = "value" FloatValue_Value_field_fullname protoreflect.FullName = "google.protobuf.FloatValue.value" ) // Field numbers for google.protobuf.FloatValue. const ( FloatValue_Value_field_number protoreflect.FieldNumber = 1 ) // Names for google.protobuf.Int64Value. const ( Int64Value_message_name protoreflect.Name = "Int64Value" Int64Value_message_fullname protoreflect.FullName = "google.protobuf.Int64Value" ) // Field names for google.protobuf.Int64Value. const ( Int64Value_Value_field_name protoreflect.Name = "value" Int64Value_Value_field_fullname protoreflect.FullName = "google.protobuf.Int64Value.value" ) // Field numbers for google.protobuf.Int64Value. const ( Int64Value_Value_field_number protoreflect.FieldNumber = 1 ) // Names for google.protobuf.UInt64Value. const ( UInt64Value_message_name protoreflect.Name = "UInt64Value" UInt64Value_message_fullname protoreflect.FullName = "google.protobuf.UInt64Value" ) // Field names for google.protobuf.UInt64Value. const ( UInt64Value_Value_field_name protoreflect.Name = "value" UInt64Value_Value_field_fullname protoreflect.FullName = "google.protobuf.UInt64Value.value" ) // Field numbers for google.protobuf.UInt64Value. const ( UInt64Value_Value_field_number protoreflect.FieldNumber = 1 ) // Names for google.protobuf.Int32Value. const ( Int32Value_message_name protoreflect.Name = "Int32Value" Int32Value_message_fullname protoreflect.FullName = "google.protobuf.Int32Value" ) // Field names for google.protobuf.Int32Value. const ( Int32Value_Value_field_name protoreflect.Name = "value" Int32Value_Value_field_fullname protoreflect.FullName = "google.protobuf.Int32Value.value" ) // Field numbers for google.protobuf.Int32Value. const ( Int32Value_Value_field_number protoreflect.FieldNumber = 1 ) // Names for google.protobuf.UInt32Value. const ( UInt32Value_message_name protoreflect.Name = "UInt32Value" UInt32Value_message_fullname protoreflect.FullName = "google.protobuf.UInt32Value" ) // Field names for google.protobuf.UInt32Value. const ( UInt32Value_Value_field_name protoreflect.Name = "value" UInt32Value_Value_field_fullname protoreflect.FullName = "google.protobuf.UInt32Value.value" ) // Field numbers for google.protobuf.UInt32Value. const ( UInt32Value_Value_field_number protoreflect.FieldNumber = 1 ) // Names for google.protobuf.BoolValue. const ( BoolValue_message_name protoreflect.Name = "BoolValue" BoolValue_message_fullname protoreflect.FullName = "google.protobuf.BoolValue" ) // Field names for google.protobuf.BoolValue. const ( BoolValue_Value_field_name protoreflect.Name = "value" BoolValue_Value_field_fullname protoreflect.FullName = "google.protobuf.BoolValue.value" ) // Field numbers for google.protobuf.BoolValue. const ( BoolValue_Value_field_number protoreflect.FieldNumber = 1 ) // Names for google.protobuf.StringValue. const ( StringValue_message_name protoreflect.Name = "StringValue" StringValue_message_fullname protoreflect.FullName = "google.protobuf.StringValue" ) // Field names for google.protobuf.StringValue. const ( StringValue_Value_field_name protoreflect.Name = "value" StringValue_Value_field_fullname protoreflect.FullName = "google.protobuf.StringValue.value" ) // Field numbers for google.protobuf.StringValue. const ( StringValue_Value_field_number protoreflect.FieldNumber = 1 ) // Names for google.protobuf.BytesValue. const ( BytesValue_message_name protoreflect.Name = "BytesValue" BytesValue_message_fullname protoreflect.FullName = "google.protobuf.BytesValue" ) // Field names for google.protobuf.BytesValue. const ( BytesValue_Value_field_name protoreflect.Name = "value" BytesValue_Value_field_fullname protoreflect.FullName = "google.protobuf.BytesValue.value" ) // Field numbers for google.protobuf.BytesValue. const ( BytesValue_Value_field_number protoreflect.FieldNumber = 1 ) golang-google-protobuf-1.27.1/internal/impl/000077500000000000000000000000001411250152500207325ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/impl/api_export.go000066400000000000000000000114631411250152500234400ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "fmt" "reflect" "strconv" "google.golang.org/protobuf/encoding/prototext" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/proto" pref "google.golang.org/protobuf/reflect/protoreflect" piface "google.golang.org/protobuf/runtime/protoiface" ) // Export is a zero-length named type that exists only to export a set of // functions that we do not want to appear in godoc. type Export struct{} // NewError formats a string according to the format specifier and arguments and // returns an error that has a "proto" prefix. func (Export) NewError(f string, x ...interface{}) error { return errors.New(f, x...) } // enum is any enum type generated by protoc-gen-go // and must be a named int32 type. type enum = interface{} // EnumOf returns the protoreflect.Enum interface over e. // It returns nil if e is nil. func (Export) EnumOf(e enum) pref.Enum { switch e := e.(type) { case nil: return nil case pref.Enum: return e default: return legacyWrapEnum(reflect.ValueOf(e)) } } // EnumDescriptorOf returns the protoreflect.EnumDescriptor for e. // It returns nil if e is nil. func (Export) EnumDescriptorOf(e enum) pref.EnumDescriptor { switch e := e.(type) { case nil: return nil case pref.Enum: return e.Descriptor() default: return LegacyLoadEnumDesc(reflect.TypeOf(e)) } } // EnumTypeOf returns the protoreflect.EnumType for e. // It returns nil if e is nil. func (Export) EnumTypeOf(e enum) pref.EnumType { switch e := e.(type) { case nil: return nil case pref.Enum: return e.Type() default: return legacyLoadEnumType(reflect.TypeOf(e)) } } // EnumStringOf returns the enum value as a string, either as the name if // the number is resolvable, or the number formatted as a string. func (Export) EnumStringOf(ed pref.EnumDescriptor, n pref.EnumNumber) string { ev := ed.Values().ByNumber(n) if ev != nil { return string(ev.Name()) } return strconv.Itoa(int(n)) } // message is any message type generated by protoc-gen-go // and must be a pointer to a named struct type. type message = interface{} // legacyMessageWrapper wraps a v2 message as a v1 message. type legacyMessageWrapper struct{ m pref.ProtoMessage } func (m legacyMessageWrapper) Reset() { proto.Reset(m.m) } func (m legacyMessageWrapper) String() string { return Export{}.MessageStringOf(m.m) } func (m legacyMessageWrapper) ProtoMessage() {} // ProtoMessageV1Of converts either a v1 or v2 message to a v1 message. // It returns nil if m is nil. func (Export) ProtoMessageV1Of(m message) piface.MessageV1 { switch mv := m.(type) { case nil: return nil case piface.MessageV1: return mv case unwrapper: return Export{}.ProtoMessageV1Of(mv.protoUnwrap()) case pref.ProtoMessage: return legacyMessageWrapper{mv} default: panic(fmt.Sprintf("message %T is neither a v1 or v2 Message", m)) } } func (Export) protoMessageV2Of(m message) pref.ProtoMessage { switch mv := m.(type) { case nil: return nil case pref.ProtoMessage: return mv case legacyMessageWrapper: return mv.m case piface.MessageV1: return nil default: panic(fmt.Sprintf("message %T is neither a v1 or v2 Message", m)) } } // ProtoMessageV2Of converts either a v1 or v2 message to a v2 message. // It returns nil if m is nil. func (Export) ProtoMessageV2Of(m message) pref.ProtoMessage { if m == nil { return nil } if mv := (Export{}).protoMessageV2Of(m); mv != nil { return mv } return legacyWrapMessage(reflect.ValueOf(m)).Interface() } // MessageOf returns the protoreflect.Message interface over m. // It returns nil if m is nil. func (Export) MessageOf(m message) pref.Message { if m == nil { return nil } if mv := (Export{}).protoMessageV2Of(m); mv != nil { return mv.ProtoReflect() } return legacyWrapMessage(reflect.ValueOf(m)) } // MessageDescriptorOf returns the protoreflect.MessageDescriptor for m. // It returns nil if m is nil. func (Export) MessageDescriptorOf(m message) pref.MessageDescriptor { if m == nil { return nil } if mv := (Export{}).protoMessageV2Of(m); mv != nil { return mv.ProtoReflect().Descriptor() } return LegacyLoadMessageDesc(reflect.TypeOf(m)) } // MessageTypeOf returns the protoreflect.MessageType for m. // It returns nil if m is nil. func (Export) MessageTypeOf(m message) pref.MessageType { if m == nil { return nil } if mv := (Export{}).protoMessageV2Of(m); mv != nil { return mv.ProtoReflect().Type() } return legacyLoadMessageType(reflect.TypeOf(m), "") } // MessageStringOf returns the message value as a string, // which is the message serialized in the protobuf text format. func (Export) MessageStringOf(m pref.ProtoMessage) string { return prototext.MarshalOptions{Multiline: false}.Format(m) } golang-google-protobuf-1.27.1/internal/impl/checkinit.go000066400000000000000000000067451411250152500232360ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "sync" "google.golang.org/protobuf/internal/errors" pref "google.golang.org/protobuf/reflect/protoreflect" piface "google.golang.org/protobuf/runtime/protoiface" ) func (mi *MessageInfo) checkInitialized(in piface.CheckInitializedInput) (piface.CheckInitializedOutput, error) { var p pointer if ms, ok := in.Message.(*messageState); ok { p = ms.pointer() } else { p = in.Message.(*messageReflectWrapper).pointer() } return piface.CheckInitializedOutput{}, mi.checkInitializedPointer(p) } func (mi *MessageInfo) checkInitializedPointer(p pointer) error { mi.init() if !mi.needsInitCheck { return nil } if p.IsNil() { for _, f := range mi.orderedCoderFields { if f.isRequired { return errors.RequiredNotSet(string(mi.Desc.Fields().ByNumber(f.num).FullName())) } } return nil } if mi.extensionOffset.IsValid() { e := p.Apply(mi.extensionOffset).Extensions() if err := mi.isInitExtensions(e); err != nil { return err } } for _, f := range mi.orderedCoderFields { if !f.isRequired && f.funcs.isInit == nil { continue } fptr := p.Apply(f.offset) if f.isPointer && fptr.Elem().IsNil() { if f.isRequired { return errors.RequiredNotSet(string(mi.Desc.Fields().ByNumber(f.num).FullName())) } continue } if f.funcs.isInit == nil { continue } if err := f.funcs.isInit(fptr, f); err != nil { return err } } return nil } func (mi *MessageInfo) isInitExtensions(ext *map[int32]ExtensionField) error { if ext == nil { return nil } for _, x := range *ext { ei := getExtensionFieldInfo(x.Type()) if ei.funcs.isInit == nil { continue } v := x.Value() if !v.IsValid() { continue } if err := ei.funcs.isInit(v); err != nil { return err } } return nil } var ( needsInitCheckMu sync.Mutex needsInitCheckMap sync.Map ) // needsInitCheck reports whether a message needs to be checked for partial initialization. // // It returns true if the message transitively includes any required or extension fields. func needsInitCheck(md pref.MessageDescriptor) bool { if v, ok := needsInitCheckMap.Load(md); ok { if has, ok := v.(bool); ok { return has } } needsInitCheckMu.Lock() defer needsInitCheckMu.Unlock() return needsInitCheckLocked(md) } func needsInitCheckLocked(md pref.MessageDescriptor) (has bool) { if v, ok := needsInitCheckMap.Load(md); ok { // If has is true, we've previously determined that this message // needs init checks. // // If has is false, we've previously determined that it can never // be uninitialized. // // If has is not a bool, we've just encountered a cycle in the // message graph. In this case, it is safe to return false: If // the message does have required fields, we'll detect them later // in the graph traversal. has, ok := v.(bool) return ok && has } needsInitCheckMap.Store(md, struct{}{}) // avoid cycles while descending into this message defer func() { needsInitCheckMap.Store(md, has) }() if md.RequiredNumbers().Len() > 0 { return true } if md.ExtensionRanges().Len() > 0 { return true } for i := 0; i < md.Fields().Len(); i++ { fd := md.Fields().Get(i) // Map keys are never messages, so just consider the map value. if fd.IsMap() { fd = fd.MapValue() } fmd := fd.Message() if fmd != nil && needsInitCheckLocked(fmd) { return true } } return false } golang-google-protobuf-1.27.1/internal/impl/codec_extension.go000066400000000000000000000132621411250152500244360ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "sync" "sync/atomic" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/errors" pref "google.golang.org/protobuf/reflect/protoreflect" ) type extensionFieldInfo struct { wiretag uint64 tagsize int unmarshalNeedsValue bool funcs valueCoderFuncs validation validationInfo } var legacyExtensionFieldInfoCache sync.Map // map[protoreflect.ExtensionType]*extensionFieldInfo func getExtensionFieldInfo(xt pref.ExtensionType) *extensionFieldInfo { if xi, ok := xt.(*ExtensionInfo); ok { xi.lazyInit() return xi.info } return legacyLoadExtensionFieldInfo(xt) } // legacyLoadExtensionFieldInfo dynamically loads a *ExtensionInfo for xt. func legacyLoadExtensionFieldInfo(xt pref.ExtensionType) *extensionFieldInfo { if xi, ok := legacyExtensionFieldInfoCache.Load(xt); ok { return xi.(*extensionFieldInfo) } e := makeExtensionFieldInfo(xt.TypeDescriptor()) if e, ok := legacyMessageTypeCache.LoadOrStore(xt, e); ok { return e.(*extensionFieldInfo) } return e } func makeExtensionFieldInfo(xd pref.ExtensionDescriptor) *extensionFieldInfo { var wiretag uint64 if !xd.IsPacked() { wiretag = protowire.EncodeTag(xd.Number(), wireTypes[xd.Kind()]) } else { wiretag = protowire.EncodeTag(xd.Number(), protowire.BytesType) } e := &extensionFieldInfo{ wiretag: wiretag, tagsize: protowire.SizeVarint(wiretag), funcs: encoderFuncsForValue(xd), } // Does the unmarshal function need a value passed to it? // This is true for composite types, where we pass in a message, list, or map to fill in, // and for enums, where we pass in a prototype value to specify the concrete enum type. switch xd.Kind() { case pref.MessageKind, pref.GroupKind, pref.EnumKind: e.unmarshalNeedsValue = true default: if xd.Cardinality() == pref.Repeated { e.unmarshalNeedsValue = true } } return e } type lazyExtensionValue struct { atomicOnce uint32 // atomically set if value is valid mu sync.Mutex xi *extensionFieldInfo value pref.Value b []byte fn func() pref.Value } type ExtensionField struct { typ pref.ExtensionType // value is either the value of GetValue, // or a *lazyExtensionValue that then returns the value of GetValue. value pref.Value lazy *lazyExtensionValue } func (f *ExtensionField) appendLazyBytes(xt pref.ExtensionType, xi *extensionFieldInfo, num protowire.Number, wtyp protowire.Type, b []byte) { if f.lazy == nil { f.lazy = &lazyExtensionValue{xi: xi} } f.typ = xt f.lazy.xi = xi f.lazy.b = protowire.AppendTag(f.lazy.b, num, wtyp) f.lazy.b = append(f.lazy.b, b...) } func (f *ExtensionField) canLazy(xt pref.ExtensionType) bool { if f.typ == nil { return true } if f.typ == xt && f.lazy != nil && atomic.LoadUint32(&f.lazy.atomicOnce) == 0 { return true } return false } func (f *ExtensionField) lazyInit() { f.lazy.mu.Lock() defer f.lazy.mu.Unlock() if atomic.LoadUint32(&f.lazy.atomicOnce) == 1 { return } if f.lazy.xi != nil { b := f.lazy.b val := f.typ.New() for len(b) > 0 { var tag uint64 if b[0] < 0x80 { tag = uint64(b[0]) b = b[1:] } else if len(b) >= 2 && b[1] < 128 { tag = uint64(b[0]&0x7f) + uint64(b[1])<<7 b = b[2:] } else { var n int tag, n = protowire.ConsumeVarint(b) if n < 0 { panic(errors.New("bad tag in lazy extension decoding")) } b = b[n:] } num := protowire.Number(tag >> 3) wtyp := protowire.Type(tag & 7) var out unmarshalOutput var err error val, out, err = f.lazy.xi.funcs.unmarshal(b, val, num, wtyp, lazyUnmarshalOptions) if err != nil { panic(errors.New("decode failure in lazy extension decoding: %v", err)) } b = b[out.n:] } f.lazy.value = val } else { f.lazy.value = f.lazy.fn() } f.lazy.xi = nil f.lazy.fn = nil f.lazy.b = nil atomic.StoreUint32(&f.lazy.atomicOnce, 1) } // Set sets the type and value of the extension field. // This must not be called concurrently. func (f *ExtensionField) Set(t pref.ExtensionType, v pref.Value) { f.typ = t f.value = v f.lazy = nil } // SetLazy sets the type and a value that is to be lazily evaluated upon first use. // This must not be called concurrently. func (f *ExtensionField) SetLazy(t pref.ExtensionType, fn func() pref.Value) { f.typ = t f.lazy = &lazyExtensionValue{fn: fn} } // Value returns the value of the extension field. // This may be called concurrently. func (f *ExtensionField) Value() pref.Value { if f.lazy != nil { if atomic.LoadUint32(&f.lazy.atomicOnce) == 0 { f.lazyInit() } return f.lazy.value } return f.value } // Type returns the type of the extension field. // This may be called concurrently. func (f ExtensionField) Type() pref.ExtensionType { return f.typ } // IsSet returns whether the extension field is set. // This may be called concurrently. func (f ExtensionField) IsSet() bool { return f.typ != nil } // IsLazy reports whether a field is lazily encoded. // It is exported for testing. func IsLazy(m pref.Message, fd pref.FieldDescriptor) bool { var mi *MessageInfo var p pointer switch m := m.(type) { case *messageState: mi = m.messageInfo() p = m.pointer() case *messageReflectWrapper: mi = m.messageInfo() p = m.pointer() default: return false } xd, ok := fd.(pref.ExtensionTypeDescriptor) if !ok { return false } xt := xd.Type() ext := mi.extensionMap(p) if ext == nil { return false } f, ok := (*ext)[int32(fd.Number())] if !ok { return false } return f.typ == xt && f.lazy != nil && atomic.LoadUint32(&f.lazy.atomicOnce) == 0 } golang-google-protobuf-1.27.1/internal/impl/codec_field.go000066400000000000000000000604721411250152500235120ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "fmt" "reflect" "sync" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/proto" pref "google.golang.org/protobuf/reflect/protoreflect" preg "google.golang.org/protobuf/reflect/protoregistry" piface "google.golang.org/protobuf/runtime/protoiface" ) type errInvalidUTF8 struct{} func (errInvalidUTF8) Error() string { return "string field contains invalid UTF-8" } func (errInvalidUTF8) InvalidUTF8() bool { return true } func (errInvalidUTF8) Unwrap() error { return errors.Error } // initOneofFieldCoders initializes the fast-path functions for the fields in a oneof. // // For size, marshal, and isInit operations, functions are set only on the first field // in the oneof. The functions are called when the oneof is non-nil, and will dispatch // to the appropriate field-specific function as necessary. // // The unmarshal function is set on each field individually as usual. func (mi *MessageInfo) initOneofFieldCoders(od pref.OneofDescriptor, si structInfo) { fs := si.oneofsByName[od.Name()] ft := fs.Type oneofFields := make(map[reflect.Type]*coderFieldInfo) needIsInit := false fields := od.Fields() for i, lim := 0, fields.Len(); i < lim; i++ { fd := od.Fields().Get(i) num := fd.Number() // Make a copy of the original coderFieldInfo for use in unmarshaling. // // oneofFields[oneofType].funcs.marshal is the field-specific marshal function. // // mi.coderFields[num].marshal is set on only the first field in the oneof, // and dispatches to the field-specific marshaler in oneofFields. cf := *mi.coderFields[num] ot := si.oneofWrappersByNumber[num] cf.ft = ot.Field(0).Type cf.mi, cf.funcs = fieldCoder(fd, cf.ft) oneofFields[ot] = &cf if cf.funcs.isInit != nil { needIsInit = true } mi.coderFields[num].funcs.unmarshal = func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) { var vw reflect.Value // pointer to wrapper type vi := p.AsValueOf(ft).Elem() // oneof field value of interface kind if !vi.IsNil() && !vi.Elem().IsNil() && vi.Elem().Elem().Type() == ot { vw = vi.Elem() } else { vw = reflect.New(ot) } out, err := cf.funcs.unmarshal(b, pointerOfValue(vw).Apply(zeroOffset), wtyp, &cf, opts) if err != nil { return out, err } vi.Set(vw) return out, nil } } getInfo := func(p pointer) (pointer, *coderFieldInfo) { v := p.AsValueOf(ft).Elem() if v.IsNil() { return pointer{}, nil } v = v.Elem() // interface -> *struct if v.IsNil() { return pointer{}, nil } return pointerOfValue(v).Apply(zeroOffset), oneofFields[v.Elem().Type()] } first := mi.coderFields[od.Fields().Get(0).Number()] first.funcs.size = func(p pointer, _ *coderFieldInfo, opts marshalOptions) int { p, info := getInfo(p) if info == nil || info.funcs.size == nil { return 0 } return info.funcs.size(p, info, opts) } first.funcs.marshal = func(b []byte, p pointer, _ *coderFieldInfo, opts marshalOptions) ([]byte, error) { p, info := getInfo(p) if info == nil || info.funcs.marshal == nil { return b, nil } return info.funcs.marshal(b, p, info, opts) } first.funcs.merge = func(dst, src pointer, _ *coderFieldInfo, opts mergeOptions) { srcp, srcinfo := getInfo(src) if srcinfo == nil || srcinfo.funcs.merge == nil { return } dstp, dstinfo := getInfo(dst) if dstinfo != srcinfo { dst.AsValueOf(ft).Elem().Set(reflect.New(src.AsValueOf(ft).Elem().Elem().Elem().Type())) dstp = pointerOfValue(dst.AsValueOf(ft).Elem().Elem()).Apply(zeroOffset) } srcinfo.funcs.merge(dstp, srcp, srcinfo, opts) } if needIsInit { first.funcs.isInit = func(p pointer, _ *coderFieldInfo) error { p, info := getInfo(p) if info == nil || info.funcs.isInit == nil { return nil } return info.funcs.isInit(p, info) } } } func makeWeakMessageFieldCoder(fd pref.FieldDescriptor) pointerCoderFuncs { var once sync.Once var messageType pref.MessageType lazyInit := func() { once.Do(func() { messageName := fd.Message().FullName() messageType, _ = preg.GlobalTypes.FindMessageByName(messageName) }) } return pointerCoderFuncs{ size: func(p pointer, f *coderFieldInfo, opts marshalOptions) int { m, ok := p.WeakFields().get(f.num) if !ok { return 0 } lazyInit() if messageType == nil { panic(fmt.Sprintf("weak message %v is not linked in", fd.Message().FullName())) } return sizeMessage(m, f.tagsize, opts) }, marshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { m, ok := p.WeakFields().get(f.num) if !ok { return b, nil } lazyInit() if messageType == nil { panic(fmt.Sprintf("weak message %v is not linked in", fd.Message().FullName())) } return appendMessage(b, m, f.wiretag, opts) }, unmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) { fs := p.WeakFields() m, ok := fs.get(f.num) if !ok { lazyInit() if messageType == nil { return unmarshalOutput{}, errUnknown } m = messageType.New().Interface() fs.set(f.num, m) } return consumeMessage(b, m, wtyp, opts) }, isInit: func(p pointer, f *coderFieldInfo) error { m, ok := p.WeakFields().get(f.num) if !ok { return nil } return proto.CheckInitialized(m) }, merge: func(dst, src pointer, f *coderFieldInfo, opts mergeOptions) { sm, ok := src.WeakFields().get(f.num) if !ok { return } dm, ok := dst.WeakFields().get(f.num) if !ok { lazyInit() if messageType == nil { panic(fmt.Sprintf("weak message %v is not linked in", fd.Message().FullName())) } dm = messageType.New().Interface() dst.WeakFields().set(f.num, dm) } opts.Merge(dm, sm) }, } } func makeMessageFieldCoder(fd pref.FieldDescriptor, ft reflect.Type) pointerCoderFuncs { if mi := getMessageInfo(ft); mi != nil { funcs := pointerCoderFuncs{ size: sizeMessageInfo, marshal: appendMessageInfo, unmarshal: consumeMessageInfo, merge: mergeMessage, } if needsInitCheck(mi.Desc) { funcs.isInit = isInitMessageInfo } return funcs } else { return pointerCoderFuncs{ size: func(p pointer, f *coderFieldInfo, opts marshalOptions) int { m := asMessage(p.AsValueOf(ft).Elem()) return sizeMessage(m, f.tagsize, opts) }, marshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { m := asMessage(p.AsValueOf(ft).Elem()) return appendMessage(b, m, f.wiretag, opts) }, unmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) { mp := p.AsValueOf(ft).Elem() if mp.IsNil() { mp.Set(reflect.New(ft.Elem())) } return consumeMessage(b, asMessage(mp), wtyp, opts) }, isInit: func(p pointer, f *coderFieldInfo) error { m := asMessage(p.AsValueOf(ft).Elem()) return proto.CheckInitialized(m) }, merge: mergeMessage, } } } func sizeMessageInfo(p pointer, f *coderFieldInfo, opts marshalOptions) int { return protowire.SizeBytes(f.mi.sizePointer(p.Elem(), opts)) + f.tagsize } func appendMessageInfo(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, uint64(f.mi.sizePointer(p.Elem(), opts))) return f.mi.marshalAppendPointer(b, p.Elem(), opts) } func consumeMessageInfo(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } if p.Elem().IsNil() { p.SetPointer(pointerOfValue(reflect.New(f.mi.GoReflectType.Elem()))) } o, err := f.mi.unmarshalPointer(v, p.Elem(), 0, opts) if err != nil { return out, err } out.n = n out.initialized = o.initialized return out, nil } func isInitMessageInfo(p pointer, f *coderFieldInfo) error { return f.mi.checkInitializedPointer(p.Elem()) } func sizeMessage(m proto.Message, tagsize int, _ marshalOptions) int { return protowire.SizeBytes(proto.Size(m)) + tagsize } func appendMessage(b []byte, m proto.Message, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, uint64(proto.Size(m))) return opts.Options().MarshalAppend(b, m) } func consumeMessage(b []byte, m proto.Message, wtyp protowire.Type, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } o, err := opts.Options().UnmarshalState(piface.UnmarshalInput{ Buf: v, Message: m.ProtoReflect(), }) if err != nil { return out, err } out.n = n out.initialized = o.Flags&piface.UnmarshalInitialized != 0 return out, nil } func sizeMessageValue(v pref.Value, tagsize int, opts marshalOptions) int { m := v.Message().Interface() return sizeMessage(m, tagsize, opts) } func appendMessageValue(b []byte, v pref.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { m := v.Message().Interface() return appendMessage(b, m, wiretag, opts) } func consumeMessageValue(b []byte, v pref.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (pref.Value, unmarshalOutput, error) { m := v.Message().Interface() out, err := consumeMessage(b, m, wtyp, opts) return v, out, err } func isInitMessageValue(v pref.Value) error { m := v.Message().Interface() return proto.CheckInitialized(m) } var coderMessageValue = valueCoderFuncs{ size: sizeMessageValue, marshal: appendMessageValue, unmarshal: consumeMessageValue, isInit: isInitMessageValue, merge: mergeMessageValue, } func sizeGroupValue(v pref.Value, tagsize int, opts marshalOptions) int { m := v.Message().Interface() return sizeGroup(m, tagsize, opts) } func appendGroupValue(b []byte, v pref.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { m := v.Message().Interface() return appendGroup(b, m, wiretag, opts) } func consumeGroupValue(b []byte, v pref.Value, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (pref.Value, unmarshalOutput, error) { m := v.Message().Interface() out, err := consumeGroup(b, m, num, wtyp, opts) return v, out, err } var coderGroupValue = valueCoderFuncs{ size: sizeGroupValue, marshal: appendGroupValue, unmarshal: consumeGroupValue, isInit: isInitMessageValue, merge: mergeMessageValue, } func makeGroupFieldCoder(fd pref.FieldDescriptor, ft reflect.Type) pointerCoderFuncs { num := fd.Number() if mi := getMessageInfo(ft); mi != nil { funcs := pointerCoderFuncs{ size: sizeGroupType, marshal: appendGroupType, unmarshal: consumeGroupType, merge: mergeMessage, } if needsInitCheck(mi.Desc) { funcs.isInit = isInitMessageInfo } return funcs } else { return pointerCoderFuncs{ size: func(p pointer, f *coderFieldInfo, opts marshalOptions) int { m := asMessage(p.AsValueOf(ft).Elem()) return sizeGroup(m, f.tagsize, opts) }, marshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { m := asMessage(p.AsValueOf(ft).Elem()) return appendGroup(b, m, f.wiretag, opts) }, unmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) { mp := p.AsValueOf(ft).Elem() if mp.IsNil() { mp.Set(reflect.New(ft.Elem())) } return consumeGroup(b, asMessage(mp), num, wtyp, opts) }, isInit: func(p pointer, f *coderFieldInfo) error { m := asMessage(p.AsValueOf(ft).Elem()) return proto.CheckInitialized(m) }, merge: mergeMessage, } } } func sizeGroupType(p pointer, f *coderFieldInfo, opts marshalOptions) int { return 2*f.tagsize + f.mi.sizePointer(p.Elem(), opts) } func appendGroupType(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, f.wiretag) // start group b, err := f.mi.marshalAppendPointer(b, p.Elem(), opts) b = protowire.AppendVarint(b, f.wiretag+1) // end group return b, err } func consumeGroupType(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.StartGroupType { return out, errUnknown } if p.Elem().IsNil() { p.SetPointer(pointerOfValue(reflect.New(f.mi.GoReflectType.Elem()))) } return f.mi.unmarshalPointer(b, p.Elem(), f.num, opts) } func sizeGroup(m proto.Message, tagsize int, _ marshalOptions) int { return 2*tagsize + proto.Size(m) } func appendGroup(b []byte, m proto.Message, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) // start group b, err := opts.Options().MarshalAppend(b, m) b = protowire.AppendVarint(b, wiretag+1) // end group return b, err } func consumeGroup(b []byte, m proto.Message, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.StartGroupType { return out, errUnknown } b, n := protowire.ConsumeGroup(num, b) if n < 0 { return out, errDecode } o, err := opts.Options().UnmarshalState(piface.UnmarshalInput{ Buf: b, Message: m.ProtoReflect(), }) if err != nil { return out, err } out.n = n out.initialized = o.Flags&piface.UnmarshalInitialized != 0 return out, nil } func makeMessageSliceFieldCoder(fd pref.FieldDescriptor, ft reflect.Type) pointerCoderFuncs { if mi := getMessageInfo(ft); mi != nil { funcs := pointerCoderFuncs{ size: sizeMessageSliceInfo, marshal: appendMessageSliceInfo, unmarshal: consumeMessageSliceInfo, merge: mergeMessageSlice, } if needsInitCheck(mi.Desc) { funcs.isInit = isInitMessageSliceInfo } return funcs } return pointerCoderFuncs{ size: func(p pointer, f *coderFieldInfo, opts marshalOptions) int { return sizeMessageSlice(p, ft, f.tagsize, opts) }, marshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { return appendMessageSlice(b, p, f.wiretag, ft, opts) }, unmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) { return consumeMessageSlice(b, p, ft, wtyp, opts) }, isInit: func(p pointer, f *coderFieldInfo) error { return isInitMessageSlice(p, ft) }, merge: mergeMessageSlice, } } func sizeMessageSliceInfo(p pointer, f *coderFieldInfo, opts marshalOptions) int { s := p.PointerSlice() n := 0 for _, v := range s { n += protowire.SizeBytes(f.mi.sizePointer(v, opts)) + f.tagsize } return n } func appendMessageSliceInfo(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := p.PointerSlice() var err error for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) siz := f.mi.sizePointer(v, opts) b = protowire.AppendVarint(b, uint64(siz)) b, err = f.mi.marshalAppendPointer(b, v, opts) if err != nil { return b, err } } return b, nil } func consumeMessageSliceInfo(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } m := reflect.New(f.mi.GoReflectType.Elem()).Interface() mp := pointerOfIface(m) o, err := f.mi.unmarshalPointer(v, mp, 0, opts) if err != nil { return out, err } p.AppendPointerSlice(mp) out.n = n out.initialized = o.initialized return out, nil } func isInitMessageSliceInfo(p pointer, f *coderFieldInfo) error { s := p.PointerSlice() for _, v := range s { if err := f.mi.checkInitializedPointer(v); err != nil { return err } } return nil } func sizeMessageSlice(p pointer, goType reflect.Type, tagsize int, _ marshalOptions) int { s := p.PointerSlice() n := 0 for _, v := range s { m := asMessage(v.AsValueOf(goType.Elem())) n += protowire.SizeBytes(proto.Size(m)) + tagsize } return n } func appendMessageSlice(b []byte, p pointer, wiretag uint64, goType reflect.Type, opts marshalOptions) ([]byte, error) { s := p.PointerSlice() var err error for _, v := range s { m := asMessage(v.AsValueOf(goType.Elem())) b = protowire.AppendVarint(b, wiretag) siz := proto.Size(m) b = protowire.AppendVarint(b, uint64(siz)) b, err = opts.Options().MarshalAppend(b, m) if err != nil { return b, err } } return b, nil } func consumeMessageSlice(b []byte, p pointer, goType reflect.Type, wtyp protowire.Type, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } mp := reflect.New(goType.Elem()) o, err := opts.Options().UnmarshalState(piface.UnmarshalInput{ Buf: v, Message: asMessage(mp).ProtoReflect(), }) if err != nil { return out, err } p.AppendPointerSlice(pointerOfValue(mp)) out.n = n out.initialized = o.Flags&piface.UnmarshalInitialized != 0 return out, nil } func isInitMessageSlice(p pointer, goType reflect.Type) error { s := p.PointerSlice() for _, v := range s { m := asMessage(v.AsValueOf(goType.Elem())) if err := proto.CheckInitialized(m); err != nil { return err } } return nil } // Slices of messages func sizeMessageSliceValue(listv pref.Value, tagsize int, opts marshalOptions) int { list := listv.List() n := 0 for i, llen := 0, list.Len(); i < llen; i++ { m := list.Get(i).Message().Interface() n += protowire.SizeBytes(proto.Size(m)) + tagsize } return n } func appendMessageSliceValue(b []byte, listv pref.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() mopts := opts.Options() for i, llen := 0, list.Len(); i < llen; i++ { m := list.Get(i).Message().Interface() b = protowire.AppendVarint(b, wiretag) siz := proto.Size(m) b = protowire.AppendVarint(b, uint64(siz)) var err error b, err = mopts.MarshalAppend(b, m) if err != nil { return b, err } } return b, nil } func consumeMessageSliceValue(b []byte, listv pref.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ pref.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp != protowire.BytesType { return pref.Value{}, out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return pref.Value{}, out, errDecode } m := list.NewElement() o, err := opts.Options().UnmarshalState(piface.UnmarshalInput{ Buf: v, Message: m.Message(), }) if err != nil { return pref.Value{}, out, err } list.Append(m) out.n = n out.initialized = o.Flags&piface.UnmarshalInitialized != 0 return listv, out, nil } func isInitMessageSliceValue(listv pref.Value) error { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { m := list.Get(i).Message().Interface() if err := proto.CheckInitialized(m); err != nil { return err } } return nil } var coderMessageSliceValue = valueCoderFuncs{ size: sizeMessageSliceValue, marshal: appendMessageSliceValue, unmarshal: consumeMessageSliceValue, isInit: isInitMessageSliceValue, merge: mergeMessageListValue, } func sizeGroupSliceValue(listv pref.Value, tagsize int, opts marshalOptions) int { list := listv.List() n := 0 for i, llen := 0, list.Len(); i < llen; i++ { m := list.Get(i).Message().Interface() n += 2*tagsize + proto.Size(m) } return n } func appendGroupSliceValue(b []byte, listv pref.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() mopts := opts.Options() for i, llen := 0, list.Len(); i < llen; i++ { m := list.Get(i).Message().Interface() b = protowire.AppendVarint(b, wiretag) // start group var err error b, err = mopts.MarshalAppend(b, m) if err != nil { return b, err } b = protowire.AppendVarint(b, wiretag+1) // end group } return b, nil } func consumeGroupSliceValue(b []byte, listv pref.Value, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ pref.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp != protowire.StartGroupType { return pref.Value{}, out, errUnknown } b, n := protowire.ConsumeGroup(num, b) if n < 0 { return pref.Value{}, out, errDecode } m := list.NewElement() o, err := opts.Options().UnmarshalState(piface.UnmarshalInput{ Buf: b, Message: m.Message(), }) if err != nil { return pref.Value{}, out, err } list.Append(m) out.n = n out.initialized = o.Flags&piface.UnmarshalInitialized != 0 return listv, out, nil } var coderGroupSliceValue = valueCoderFuncs{ size: sizeGroupSliceValue, marshal: appendGroupSliceValue, unmarshal: consumeGroupSliceValue, isInit: isInitMessageSliceValue, merge: mergeMessageListValue, } func makeGroupSliceFieldCoder(fd pref.FieldDescriptor, ft reflect.Type) pointerCoderFuncs { num := fd.Number() if mi := getMessageInfo(ft); mi != nil { funcs := pointerCoderFuncs{ size: sizeGroupSliceInfo, marshal: appendGroupSliceInfo, unmarshal: consumeGroupSliceInfo, merge: mergeMessageSlice, } if needsInitCheck(mi.Desc) { funcs.isInit = isInitMessageSliceInfo } return funcs } return pointerCoderFuncs{ size: func(p pointer, f *coderFieldInfo, opts marshalOptions) int { return sizeGroupSlice(p, ft, f.tagsize, opts) }, marshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { return appendGroupSlice(b, p, f.wiretag, ft, opts) }, unmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) { return consumeGroupSlice(b, p, num, wtyp, ft, opts) }, isInit: func(p pointer, f *coderFieldInfo) error { return isInitMessageSlice(p, ft) }, merge: mergeMessageSlice, } } func sizeGroupSlice(p pointer, messageType reflect.Type, tagsize int, _ marshalOptions) int { s := p.PointerSlice() n := 0 for _, v := range s { m := asMessage(v.AsValueOf(messageType.Elem())) n += 2*tagsize + proto.Size(m) } return n } func appendGroupSlice(b []byte, p pointer, wiretag uint64, messageType reflect.Type, opts marshalOptions) ([]byte, error) { s := p.PointerSlice() var err error for _, v := range s { m := asMessage(v.AsValueOf(messageType.Elem())) b = protowire.AppendVarint(b, wiretag) // start group b, err = opts.Options().MarshalAppend(b, m) if err != nil { return b, err } b = protowire.AppendVarint(b, wiretag+1) // end group } return b, nil } func consumeGroupSlice(b []byte, p pointer, num protowire.Number, wtyp protowire.Type, goType reflect.Type, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.StartGroupType { return out, errUnknown } b, n := protowire.ConsumeGroup(num, b) if n < 0 { return out, errDecode } mp := reflect.New(goType.Elem()) o, err := opts.Options().UnmarshalState(piface.UnmarshalInput{ Buf: b, Message: asMessage(mp).ProtoReflect(), }) if err != nil { return out, err } p.AppendPointerSlice(pointerOfValue(mp)) out.n = n out.initialized = o.Flags&piface.UnmarshalInitialized != 0 return out, nil } func sizeGroupSliceInfo(p pointer, f *coderFieldInfo, opts marshalOptions) int { s := p.PointerSlice() n := 0 for _, v := range s { n += 2*f.tagsize + f.mi.sizePointer(v, opts) } return n } func appendGroupSliceInfo(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := p.PointerSlice() var err error for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) // start group b, err = f.mi.marshalAppendPointer(b, v, opts) if err != nil { return b, err } b = protowire.AppendVarint(b, f.wiretag+1) // end group } return b, nil } func consumeGroupSliceInfo(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) { if wtyp != protowire.StartGroupType { return unmarshalOutput{}, errUnknown } m := reflect.New(f.mi.GoReflectType.Elem()).Interface() mp := pointerOfIface(m) out, err := f.mi.unmarshalPointer(b, mp, f.num, opts) if err != nil { return out, err } p.AppendPointerSlice(mp) return out, nil } func asMessage(v reflect.Value) pref.ProtoMessage { if m, ok := v.Interface().(pref.ProtoMessage); ok { return m } return legacyWrapMessage(v).Interface() } golang-google-protobuf-1.27.1/internal/impl/codec_gen.go000066400000000000000000005027041411250152500231770ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by generate-types. DO NOT EDIT. package impl import ( "math" "unicode/utf8" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/reflect/protoreflect" ) // sizeBool returns the size of wire encoding a bool pointer as a Bool. func sizeBool(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Bool() return f.tagsize + protowire.SizeVarint(protowire.EncodeBool(v)) } // appendBool wire encodes a bool pointer as a Bool. func appendBool(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Bool() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, protowire.EncodeBool(v)) return b, nil } // consumeBool wire decodes a bool pointer as a Bool. func consumeBool(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } *p.Bool() = protowire.DecodeBool(v) out.n = n return out, nil } var coderBool = pointerCoderFuncs{ size: sizeBool, marshal: appendBool, unmarshal: consumeBool, merge: mergeBool, } // sizeBoolNoZero returns the size of wire encoding a bool pointer as a Bool. // The zero value is not encoded. func sizeBoolNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Bool() if v == false { return 0 } return f.tagsize + protowire.SizeVarint(protowire.EncodeBool(v)) } // appendBoolNoZero wire encodes a bool pointer as a Bool. // The zero value is not encoded. func appendBoolNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Bool() if v == false { return b, nil } b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, protowire.EncodeBool(v)) return b, nil } var coderBoolNoZero = pointerCoderFuncs{ size: sizeBoolNoZero, marshal: appendBoolNoZero, unmarshal: consumeBool, merge: mergeBoolNoZero, } // sizeBoolPtr returns the size of wire encoding a *bool pointer as a Bool. // It panics if the pointer is nil. func sizeBoolPtr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := **p.BoolPtr() return f.tagsize + protowire.SizeVarint(protowire.EncodeBool(v)) } // appendBoolPtr wire encodes a *bool pointer as a Bool. // It panics if the pointer is nil. func appendBoolPtr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.BoolPtr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, protowire.EncodeBool(v)) return b, nil } // consumeBoolPtr wire decodes a *bool pointer as a Bool. func consumeBoolPtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } vp := p.BoolPtr() if *vp == nil { *vp = new(bool) } **vp = protowire.DecodeBool(v) out.n = n return out, nil } var coderBoolPtr = pointerCoderFuncs{ size: sizeBoolPtr, marshal: appendBoolPtr, unmarshal: consumeBoolPtr, merge: mergeBoolPtr, } // sizeBoolSlice returns the size of wire encoding a []bool pointer as a repeated Bool. func sizeBoolSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.BoolSlice() for _, v := range s { size += f.tagsize + protowire.SizeVarint(protowire.EncodeBool(v)) } return size } // appendBoolSlice encodes a []bool pointer as a repeated Bool. func appendBoolSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.BoolSlice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, protowire.EncodeBool(v)) } return b, nil } // consumeBoolSlice wire decodes a []bool pointer as a repeated Bool. func consumeBoolSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.BoolSlice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } for len(b) > 0 { var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } s = append(s, protowire.DecodeBool(v)) b = b[n:] } *sp = s out.n = n return out, nil } if wtyp != protowire.VarintType { return out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } *sp = append(*sp, protowire.DecodeBool(v)) out.n = n return out, nil } var coderBoolSlice = pointerCoderFuncs{ size: sizeBoolSlice, marshal: appendBoolSlice, unmarshal: consumeBoolSlice, merge: mergeBoolSlice, } // sizeBoolPackedSlice returns the size of wire encoding a []bool pointer as a packed repeated Bool. func sizeBoolPackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.BoolSlice() if len(s) == 0 { return 0 } n := 0 for _, v := range s { n += protowire.SizeVarint(protowire.EncodeBool(v)) } return f.tagsize + protowire.SizeBytes(n) } // appendBoolPackedSlice encodes a []bool pointer as a packed repeated Bool. func appendBoolPackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.BoolSlice() if len(s) == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) n := 0 for _, v := range s { n += protowire.SizeVarint(protowire.EncodeBool(v)) } b = protowire.AppendVarint(b, uint64(n)) for _, v := range s { b = protowire.AppendVarint(b, protowire.EncodeBool(v)) } return b, nil } var coderBoolPackedSlice = pointerCoderFuncs{ size: sizeBoolPackedSlice, marshal: appendBoolPackedSlice, unmarshal: consumeBoolSlice, merge: mergeBoolSlice, } // sizeBoolValue returns the size of wire encoding a bool value as a Bool. func sizeBoolValue(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeVarint(protowire.EncodeBool(v.Bool())) } // appendBoolValue encodes a bool value as a Bool. func appendBoolValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, protowire.EncodeBool(v.Bool())) return b, nil } // consumeBoolValue decodes a bool value as a Bool. func consumeBoolValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfBool(protowire.DecodeBool(v)), out, nil } var coderBoolValue = valueCoderFuncs{ size: sizeBoolValue, marshal: appendBoolValue, unmarshal: consumeBoolValue, merge: mergeScalarValue, } // sizeBoolSliceValue returns the size of wire encoding a []bool value as a repeated Bool. func sizeBoolSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) size += tagsize + protowire.SizeVarint(protowire.EncodeBool(v.Bool())) } return size } // appendBoolSliceValue encodes a []bool value as a repeated Bool. func appendBoolSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, protowire.EncodeBool(v.Bool())) } return b, nil } // consumeBoolSliceValue wire decodes a []bool value as a repeated Bool. func consumeBoolSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { return protoreflect.Value{}, out, errDecode } for len(b) > 0 { var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfBool(protowire.DecodeBool(v))) b = b[n:] } out.n = n return listv, out, nil } if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfBool(protowire.DecodeBool(v))) out.n = n return listv, out, nil } var coderBoolSliceValue = valueCoderFuncs{ size: sizeBoolSliceValue, marshal: appendBoolSliceValue, unmarshal: consumeBoolSliceValue, merge: mergeListValue, } // sizeBoolPackedSliceValue returns the size of wire encoding a []bool value as a packed repeated Bool. func sizeBoolPackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { return 0 } n := 0 for i, llen := 0, llen; i < llen; i++ { v := list.Get(i) n += protowire.SizeVarint(protowire.EncodeBool(v.Bool())) } return tagsize + protowire.SizeBytes(n) } // appendBoolPackedSliceValue encodes a []bool value as a packed repeated Bool. func appendBoolPackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { return b, nil } b = protowire.AppendVarint(b, wiretag) n := 0 for i := 0; i < llen; i++ { v := list.Get(i) n += protowire.SizeVarint(protowire.EncodeBool(v.Bool())) } b = protowire.AppendVarint(b, uint64(n)) for i := 0; i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, protowire.EncodeBool(v.Bool())) } return b, nil } var coderBoolPackedSliceValue = valueCoderFuncs{ size: sizeBoolPackedSliceValue, marshal: appendBoolPackedSliceValue, unmarshal: consumeBoolSliceValue, merge: mergeListValue, } // sizeEnumValue returns the size of wire encoding a value as a Enum. func sizeEnumValue(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeVarint(uint64(v.Enum())) } // appendEnumValue encodes a value as a Enum. func appendEnumValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, uint64(v.Enum())) return b, nil } // consumeEnumValue decodes a value as a Enum. func consumeEnumValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfEnum(protoreflect.EnumNumber(v)), out, nil } var coderEnumValue = valueCoderFuncs{ size: sizeEnumValue, marshal: appendEnumValue, unmarshal: consumeEnumValue, merge: mergeScalarValue, } // sizeEnumSliceValue returns the size of wire encoding a [] value as a repeated Enum. func sizeEnumSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) size += tagsize + protowire.SizeVarint(uint64(v.Enum())) } return size } // appendEnumSliceValue encodes a [] value as a repeated Enum. func appendEnumSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, uint64(v.Enum())) } return b, nil } // consumeEnumSliceValue wire decodes a [] value as a repeated Enum. func consumeEnumSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { return protoreflect.Value{}, out, errDecode } for len(b) > 0 { var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfEnum(protoreflect.EnumNumber(v))) b = b[n:] } out.n = n return listv, out, nil } if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfEnum(protoreflect.EnumNumber(v))) out.n = n return listv, out, nil } var coderEnumSliceValue = valueCoderFuncs{ size: sizeEnumSliceValue, marshal: appendEnumSliceValue, unmarshal: consumeEnumSliceValue, merge: mergeListValue, } // sizeEnumPackedSliceValue returns the size of wire encoding a [] value as a packed repeated Enum. func sizeEnumPackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { return 0 } n := 0 for i, llen := 0, llen; i < llen; i++ { v := list.Get(i) n += protowire.SizeVarint(uint64(v.Enum())) } return tagsize + protowire.SizeBytes(n) } // appendEnumPackedSliceValue encodes a [] value as a packed repeated Enum. func appendEnumPackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { return b, nil } b = protowire.AppendVarint(b, wiretag) n := 0 for i := 0; i < llen; i++ { v := list.Get(i) n += protowire.SizeVarint(uint64(v.Enum())) } b = protowire.AppendVarint(b, uint64(n)) for i := 0; i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, uint64(v.Enum())) } return b, nil } var coderEnumPackedSliceValue = valueCoderFuncs{ size: sizeEnumPackedSliceValue, marshal: appendEnumPackedSliceValue, unmarshal: consumeEnumSliceValue, merge: mergeListValue, } // sizeInt32 returns the size of wire encoding a int32 pointer as a Int32. func sizeInt32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Int32() return f.tagsize + protowire.SizeVarint(uint64(v)) } // appendInt32 wire encodes a int32 pointer as a Int32. func appendInt32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int32() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, uint64(v)) return b, nil } // consumeInt32 wire decodes a int32 pointer as a Int32. func consumeInt32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } *p.Int32() = int32(v) out.n = n return out, nil } var coderInt32 = pointerCoderFuncs{ size: sizeInt32, marshal: appendInt32, unmarshal: consumeInt32, merge: mergeInt32, } // sizeInt32NoZero returns the size of wire encoding a int32 pointer as a Int32. // The zero value is not encoded. func sizeInt32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Int32() if v == 0 { return 0 } return f.tagsize + protowire.SizeVarint(uint64(v)) } // appendInt32NoZero wire encodes a int32 pointer as a Int32. // The zero value is not encoded. func appendInt32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int32() if v == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, uint64(v)) return b, nil } var coderInt32NoZero = pointerCoderFuncs{ size: sizeInt32NoZero, marshal: appendInt32NoZero, unmarshal: consumeInt32, merge: mergeInt32NoZero, } // sizeInt32Ptr returns the size of wire encoding a *int32 pointer as a Int32. // It panics if the pointer is nil. func sizeInt32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := **p.Int32Ptr() return f.tagsize + protowire.SizeVarint(uint64(v)) } // appendInt32Ptr wire encodes a *int32 pointer as a Int32. // It panics if the pointer is nil. func appendInt32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Int32Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, uint64(v)) return b, nil } // consumeInt32Ptr wire decodes a *int32 pointer as a Int32. func consumeInt32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } vp := p.Int32Ptr() if *vp == nil { *vp = new(int32) } **vp = int32(v) out.n = n return out, nil } var coderInt32Ptr = pointerCoderFuncs{ size: sizeInt32Ptr, marshal: appendInt32Ptr, unmarshal: consumeInt32Ptr, merge: mergeInt32Ptr, } // sizeInt32Slice returns the size of wire encoding a []int32 pointer as a repeated Int32. func sizeInt32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int32Slice() for _, v := range s { size += f.tagsize + protowire.SizeVarint(uint64(v)) } return size } // appendInt32Slice encodes a []int32 pointer as a repeated Int32. func appendInt32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int32Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, uint64(v)) } return b, nil } // consumeInt32Slice wire decodes a []int32 pointer as a repeated Int32. func consumeInt32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Int32Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } for len(b) > 0 { var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } s = append(s, int32(v)) b = b[n:] } *sp = s out.n = n return out, nil } if wtyp != protowire.VarintType { return out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } *sp = append(*sp, int32(v)) out.n = n return out, nil } var coderInt32Slice = pointerCoderFuncs{ size: sizeInt32Slice, marshal: appendInt32Slice, unmarshal: consumeInt32Slice, merge: mergeInt32Slice, } // sizeInt32PackedSlice returns the size of wire encoding a []int32 pointer as a packed repeated Int32. func sizeInt32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int32Slice() if len(s) == 0 { return 0 } n := 0 for _, v := range s { n += protowire.SizeVarint(uint64(v)) } return f.tagsize + protowire.SizeBytes(n) } // appendInt32PackedSlice encodes a []int32 pointer as a packed repeated Int32. func appendInt32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int32Slice() if len(s) == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) n := 0 for _, v := range s { n += protowire.SizeVarint(uint64(v)) } b = protowire.AppendVarint(b, uint64(n)) for _, v := range s { b = protowire.AppendVarint(b, uint64(v)) } return b, nil } var coderInt32PackedSlice = pointerCoderFuncs{ size: sizeInt32PackedSlice, marshal: appendInt32PackedSlice, unmarshal: consumeInt32Slice, merge: mergeInt32Slice, } // sizeInt32Value returns the size of wire encoding a int32 value as a Int32. func sizeInt32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeVarint(uint64(int32(v.Int()))) } // appendInt32Value encodes a int32 value as a Int32. func appendInt32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, uint64(int32(v.Int()))) return b, nil } // consumeInt32Value decodes a int32 value as a Int32. func consumeInt32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfInt32(int32(v)), out, nil } var coderInt32Value = valueCoderFuncs{ size: sizeInt32Value, marshal: appendInt32Value, unmarshal: consumeInt32Value, merge: mergeScalarValue, } // sizeInt32SliceValue returns the size of wire encoding a []int32 value as a repeated Int32. func sizeInt32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) size += tagsize + protowire.SizeVarint(uint64(int32(v.Int()))) } return size } // appendInt32SliceValue encodes a []int32 value as a repeated Int32. func appendInt32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, uint64(int32(v.Int()))) } return b, nil } // consumeInt32SliceValue wire decodes a []int32 value as a repeated Int32. func consumeInt32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { return protoreflect.Value{}, out, errDecode } for len(b) > 0 { var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt32(int32(v))) b = b[n:] } out.n = n return listv, out, nil } if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt32(int32(v))) out.n = n return listv, out, nil } var coderInt32SliceValue = valueCoderFuncs{ size: sizeInt32SliceValue, marshal: appendInt32SliceValue, unmarshal: consumeInt32SliceValue, merge: mergeListValue, } // sizeInt32PackedSliceValue returns the size of wire encoding a []int32 value as a packed repeated Int32. func sizeInt32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { return 0 } n := 0 for i, llen := 0, llen; i < llen; i++ { v := list.Get(i) n += protowire.SizeVarint(uint64(int32(v.Int()))) } return tagsize + protowire.SizeBytes(n) } // appendInt32PackedSliceValue encodes a []int32 value as a packed repeated Int32. func appendInt32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { return b, nil } b = protowire.AppendVarint(b, wiretag) n := 0 for i := 0; i < llen; i++ { v := list.Get(i) n += protowire.SizeVarint(uint64(int32(v.Int()))) } b = protowire.AppendVarint(b, uint64(n)) for i := 0; i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, uint64(int32(v.Int()))) } return b, nil } var coderInt32PackedSliceValue = valueCoderFuncs{ size: sizeInt32PackedSliceValue, marshal: appendInt32PackedSliceValue, unmarshal: consumeInt32SliceValue, merge: mergeListValue, } // sizeSint32 returns the size of wire encoding a int32 pointer as a Sint32. func sizeSint32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Int32() return f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(v))) } // appendSint32 wire encodes a int32 pointer as a Sint32. func appendSint32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int32() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(v))) return b, nil } // consumeSint32 wire decodes a int32 pointer as a Sint32. func consumeSint32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } *p.Int32() = int32(protowire.DecodeZigZag(v & math.MaxUint32)) out.n = n return out, nil } var coderSint32 = pointerCoderFuncs{ size: sizeSint32, marshal: appendSint32, unmarshal: consumeSint32, merge: mergeInt32, } // sizeSint32NoZero returns the size of wire encoding a int32 pointer as a Sint32. // The zero value is not encoded. func sizeSint32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Int32() if v == 0 { return 0 } return f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(v))) } // appendSint32NoZero wire encodes a int32 pointer as a Sint32. // The zero value is not encoded. func appendSint32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int32() if v == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(v))) return b, nil } var coderSint32NoZero = pointerCoderFuncs{ size: sizeSint32NoZero, marshal: appendSint32NoZero, unmarshal: consumeSint32, merge: mergeInt32NoZero, } // sizeSint32Ptr returns the size of wire encoding a *int32 pointer as a Sint32. // It panics if the pointer is nil. func sizeSint32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := **p.Int32Ptr() return f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(v))) } // appendSint32Ptr wire encodes a *int32 pointer as a Sint32. // It panics if the pointer is nil. func appendSint32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Int32Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(v))) return b, nil } // consumeSint32Ptr wire decodes a *int32 pointer as a Sint32. func consumeSint32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } vp := p.Int32Ptr() if *vp == nil { *vp = new(int32) } **vp = int32(protowire.DecodeZigZag(v & math.MaxUint32)) out.n = n return out, nil } var coderSint32Ptr = pointerCoderFuncs{ size: sizeSint32Ptr, marshal: appendSint32Ptr, unmarshal: consumeSint32Ptr, merge: mergeInt32Ptr, } // sizeSint32Slice returns the size of wire encoding a []int32 pointer as a repeated Sint32. func sizeSint32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int32Slice() for _, v := range s { size += f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(v))) } return size } // appendSint32Slice encodes a []int32 pointer as a repeated Sint32. func appendSint32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int32Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(v))) } return b, nil } // consumeSint32Slice wire decodes a []int32 pointer as a repeated Sint32. func consumeSint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Int32Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } for len(b) > 0 { var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } s = append(s, int32(protowire.DecodeZigZag(v&math.MaxUint32))) b = b[n:] } *sp = s out.n = n return out, nil } if wtyp != protowire.VarintType { return out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } *sp = append(*sp, int32(protowire.DecodeZigZag(v&math.MaxUint32))) out.n = n return out, nil } var coderSint32Slice = pointerCoderFuncs{ size: sizeSint32Slice, marshal: appendSint32Slice, unmarshal: consumeSint32Slice, merge: mergeInt32Slice, } // sizeSint32PackedSlice returns the size of wire encoding a []int32 pointer as a packed repeated Sint32. func sizeSint32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int32Slice() if len(s) == 0 { return 0 } n := 0 for _, v := range s { n += protowire.SizeVarint(protowire.EncodeZigZag(int64(v))) } return f.tagsize + protowire.SizeBytes(n) } // appendSint32PackedSlice encodes a []int32 pointer as a packed repeated Sint32. func appendSint32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int32Slice() if len(s) == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) n := 0 for _, v := range s { n += protowire.SizeVarint(protowire.EncodeZigZag(int64(v))) } b = protowire.AppendVarint(b, uint64(n)) for _, v := range s { b = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(v))) } return b, nil } var coderSint32PackedSlice = pointerCoderFuncs{ size: sizeSint32PackedSlice, marshal: appendSint32PackedSlice, unmarshal: consumeSint32Slice, merge: mergeInt32Slice, } // sizeSint32Value returns the size of wire encoding a int32 value as a Sint32. func sizeSint32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(int32(v.Int())))) } // appendSint32Value encodes a int32 value as a Sint32. func appendSint32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(int32(v.Int())))) return b, nil } // consumeSint32Value decodes a int32 value as a Sint32. func consumeSint32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32))), out, nil } var coderSint32Value = valueCoderFuncs{ size: sizeSint32Value, marshal: appendSint32Value, unmarshal: consumeSint32Value, merge: mergeScalarValue, } // sizeSint32SliceValue returns the size of wire encoding a []int32 value as a repeated Sint32. func sizeSint32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) size += tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(int32(v.Int())))) } return size } // appendSint32SliceValue encodes a []int32 value as a repeated Sint32. func appendSint32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(int32(v.Int())))) } return b, nil } // consumeSint32SliceValue wire decodes a []int32 value as a repeated Sint32. func consumeSint32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { return protoreflect.Value{}, out, errDecode } for len(b) > 0 { var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32)))) b = b[n:] } out.n = n return listv, out, nil } if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32)))) out.n = n return listv, out, nil } var coderSint32SliceValue = valueCoderFuncs{ size: sizeSint32SliceValue, marshal: appendSint32SliceValue, unmarshal: consumeSint32SliceValue, merge: mergeListValue, } // sizeSint32PackedSliceValue returns the size of wire encoding a []int32 value as a packed repeated Sint32. func sizeSint32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { return 0 } n := 0 for i, llen := 0, llen; i < llen; i++ { v := list.Get(i) n += protowire.SizeVarint(protowire.EncodeZigZag(int64(int32(v.Int())))) } return tagsize + protowire.SizeBytes(n) } // appendSint32PackedSliceValue encodes a []int32 value as a packed repeated Sint32. func appendSint32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { return b, nil } b = protowire.AppendVarint(b, wiretag) n := 0 for i := 0; i < llen; i++ { v := list.Get(i) n += protowire.SizeVarint(protowire.EncodeZigZag(int64(int32(v.Int())))) } b = protowire.AppendVarint(b, uint64(n)) for i := 0; i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(int32(v.Int())))) } return b, nil } var coderSint32PackedSliceValue = valueCoderFuncs{ size: sizeSint32PackedSliceValue, marshal: appendSint32PackedSliceValue, unmarshal: consumeSint32SliceValue, merge: mergeListValue, } // sizeUint32 returns the size of wire encoding a uint32 pointer as a Uint32. func sizeUint32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Uint32() return f.tagsize + protowire.SizeVarint(uint64(v)) } // appendUint32 wire encodes a uint32 pointer as a Uint32. func appendUint32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Uint32() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, uint64(v)) return b, nil } // consumeUint32 wire decodes a uint32 pointer as a Uint32. func consumeUint32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } *p.Uint32() = uint32(v) out.n = n return out, nil } var coderUint32 = pointerCoderFuncs{ size: sizeUint32, marshal: appendUint32, unmarshal: consumeUint32, merge: mergeUint32, } // sizeUint32NoZero returns the size of wire encoding a uint32 pointer as a Uint32. // The zero value is not encoded. func sizeUint32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Uint32() if v == 0 { return 0 } return f.tagsize + protowire.SizeVarint(uint64(v)) } // appendUint32NoZero wire encodes a uint32 pointer as a Uint32. // The zero value is not encoded. func appendUint32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Uint32() if v == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, uint64(v)) return b, nil } var coderUint32NoZero = pointerCoderFuncs{ size: sizeUint32NoZero, marshal: appendUint32NoZero, unmarshal: consumeUint32, merge: mergeUint32NoZero, } // sizeUint32Ptr returns the size of wire encoding a *uint32 pointer as a Uint32. // It panics if the pointer is nil. func sizeUint32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := **p.Uint32Ptr() return f.tagsize + protowire.SizeVarint(uint64(v)) } // appendUint32Ptr wire encodes a *uint32 pointer as a Uint32. // It panics if the pointer is nil. func appendUint32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Uint32Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, uint64(v)) return b, nil } // consumeUint32Ptr wire decodes a *uint32 pointer as a Uint32. func consumeUint32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } vp := p.Uint32Ptr() if *vp == nil { *vp = new(uint32) } **vp = uint32(v) out.n = n return out, nil } var coderUint32Ptr = pointerCoderFuncs{ size: sizeUint32Ptr, marshal: appendUint32Ptr, unmarshal: consumeUint32Ptr, merge: mergeUint32Ptr, } // sizeUint32Slice returns the size of wire encoding a []uint32 pointer as a repeated Uint32. func sizeUint32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Uint32Slice() for _, v := range s { size += f.tagsize + protowire.SizeVarint(uint64(v)) } return size } // appendUint32Slice encodes a []uint32 pointer as a repeated Uint32. func appendUint32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Uint32Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, uint64(v)) } return b, nil } // consumeUint32Slice wire decodes a []uint32 pointer as a repeated Uint32. func consumeUint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Uint32Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } for len(b) > 0 { var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } s = append(s, uint32(v)) b = b[n:] } *sp = s out.n = n return out, nil } if wtyp != protowire.VarintType { return out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } *sp = append(*sp, uint32(v)) out.n = n return out, nil } var coderUint32Slice = pointerCoderFuncs{ size: sizeUint32Slice, marshal: appendUint32Slice, unmarshal: consumeUint32Slice, merge: mergeUint32Slice, } // sizeUint32PackedSlice returns the size of wire encoding a []uint32 pointer as a packed repeated Uint32. func sizeUint32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Uint32Slice() if len(s) == 0 { return 0 } n := 0 for _, v := range s { n += protowire.SizeVarint(uint64(v)) } return f.tagsize + protowire.SizeBytes(n) } // appendUint32PackedSlice encodes a []uint32 pointer as a packed repeated Uint32. func appendUint32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Uint32Slice() if len(s) == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) n := 0 for _, v := range s { n += protowire.SizeVarint(uint64(v)) } b = protowire.AppendVarint(b, uint64(n)) for _, v := range s { b = protowire.AppendVarint(b, uint64(v)) } return b, nil } var coderUint32PackedSlice = pointerCoderFuncs{ size: sizeUint32PackedSlice, marshal: appendUint32PackedSlice, unmarshal: consumeUint32Slice, merge: mergeUint32Slice, } // sizeUint32Value returns the size of wire encoding a uint32 value as a Uint32. func sizeUint32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeVarint(uint64(uint32(v.Uint()))) } // appendUint32Value encodes a uint32 value as a Uint32. func appendUint32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, uint64(uint32(v.Uint()))) return b, nil } // consumeUint32Value decodes a uint32 value as a Uint32. func consumeUint32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfUint32(uint32(v)), out, nil } var coderUint32Value = valueCoderFuncs{ size: sizeUint32Value, marshal: appendUint32Value, unmarshal: consumeUint32Value, merge: mergeScalarValue, } // sizeUint32SliceValue returns the size of wire encoding a []uint32 value as a repeated Uint32. func sizeUint32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) size += tagsize + protowire.SizeVarint(uint64(uint32(v.Uint()))) } return size } // appendUint32SliceValue encodes a []uint32 value as a repeated Uint32. func appendUint32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, uint64(uint32(v.Uint()))) } return b, nil } // consumeUint32SliceValue wire decodes a []uint32 value as a repeated Uint32. func consumeUint32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { return protoreflect.Value{}, out, errDecode } for len(b) > 0 { var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfUint32(uint32(v))) b = b[n:] } out.n = n return listv, out, nil } if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfUint32(uint32(v))) out.n = n return listv, out, nil } var coderUint32SliceValue = valueCoderFuncs{ size: sizeUint32SliceValue, marshal: appendUint32SliceValue, unmarshal: consumeUint32SliceValue, merge: mergeListValue, } // sizeUint32PackedSliceValue returns the size of wire encoding a []uint32 value as a packed repeated Uint32. func sizeUint32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { return 0 } n := 0 for i, llen := 0, llen; i < llen; i++ { v := list.Get(i) n += protowire.SizeVarint(uint64(uint32(v.Uint()))) } return tagsize + protowire.SizeBytes(n) } // appendUint32PackedSliceValue encodes a []uint32 value as a packed repeated Uint32. func appendUint32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { return b, nil } b = protowire.AppendVarint(b, wiretag) n := 0 for i := 0; i < llen; i++ { v := list.Get(i) n += protowire.SizeVarint(uint64(uint32(v.Uint()))) } b = protowire.AppendVarint(b, uint64(n)) for i := 0; i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, uint64(uint32(v.Uint()))) } return b, nil } var coderUint32PackedSliceValue = valueCoderFuncs{ size: sizeUint32PackedSliceValue, marshal: appendUint32PackedSliceValue, unmarshal: consumeUint32SliceValue, merge: mergeListValue, } // sizeInt64 returns the size of wire encoding a int64 pointer as a Int64. func sizeInt64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Int64() return f.tagsize + protowire.SizeVarint(uint64(v)) } // appendInt64 wire encodes a int64 pointer as a Int64. func appendInt64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int64() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, uint64(v)) return b, nil } // consumeInt64 wire decodes a int64 pointer as a Int64. func consumeInt64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } *p.Int64() = int64(v) out.n = n return out, nil } var coderInt64 = pointerCoderFuncs{ size: sizeInt64, marshal: appendInt64, unmarshal: consumeInt64, merge: mergeInt64, } // sizeInt64NoZero returns the size of wire encoding a int64 pointer as a Int64. // The zero value is not encoded. func sizeInt64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Int64() if v == 0 { return 0 } return f.tagsize + protowire.SizeVarint(uint64(v)) } // appendInt64NoZero wire encodes a int64 pointer as a Int64. // The zero value is not encoded. func appendInt64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int64() if v == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, uint64(v)) return b, nil } var coderInt64NoZero = pointerCoderFuncs{ size: sizeInt64NoZero, marshal: appendInt64NoZero, unmarshal: consumeInt64, merge: mergeInt64NoZero, } // sizeInt64Ptr returns the size of wire encoding a *int64 pointer as a Int64. // It panics if the pointer is nil. func sizeInt64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := **p.Int64Ptr() return f.tagsize + protowire.SizeVarint(uint64(v)) } // appendInt64Ptr wire encodes a *int64 pointer as a Int64. // It panics if the pointer is nil. func appendInt64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Int64Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, uint64(v)) return b, nil } // consumeInt64Ptr wire decodes a *int64 pointer as a Int64. func consumeInt64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } vp := p.Int64Ptr() if *vp == nil { *vp = new(int64) } **vp = int64(v) out.n = n return out, nil } var coderInt64Ptr = pointerCoderFuncs{ size: sizeInt64Ptr, marshal: appendInt64Ptr, unmarshal: consumeInt64Ptr, merge: mergeInt64Ptr, } // sizeInt64Slice returns the size of wire encoding a []int64 pointer as a repeated Int64. func sizeInt64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int64Slice() for _, v := range s { size += f.tagsize + protowire.SizeVarint(uint64(v)) } return size } // appendInt64Slice encodes a []int64 pointer as a repeated Int64. func appendInt64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int64Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, uint64(v)) } return b, nil } // consumeInt64Slice wire decodes a []int64 pointer as a repeated Int64. func consumeInt64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Int64Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } for len(b) > 0 { var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } s = append(s, int64(v)) b = b[n:] } *sp = s out.n = n return out, nil } if wtyp != protowire.VarintType { return out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } *sp = append(*sp, int64(v)) out.n = n return out, nil } var coderInt64Slice = pointerCoderFuncs{ size: sizeInt64Slice, marshal: appendInt64Slice, unmarshal: consumeInt64Slice, merge: mergeInt64Slice, } // sizeInt64PackedSlice returns the size of wire encoding a []int64 pointer as a packed repeated Int64. func sizeInt64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int64Slice() if len(s) == 0 { return 0 } n := 0 for _, v := range s { n += protowire.SizeVarint(uint64(v)) } return f.tagsize + protowire.SizeBytes(n) } // appendInt64PackedSlice encodes a []int64 pointer as a packed repeated Int64. func appendInt64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int64Slice() if len(s) == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) n := 0 for _, v := range s { n += protowire.SizeVarint(uint64(v)) } b = protowire.AppendVarint(b, uint64(n)) for _, v := range s { b = protowire.AppendVarint(b, uint64(v)) } return b, nil } var coderInt64PackedSlice = pointerCoderFuncs{ size: sizeInt64PackedSlice, marshal: appendInt64PackedSlice, unmarshal: consumeInt64Slice, merge: mergeInt64Slice, } // sizeInt64Value returns the size of wire encoding a int64 value as a Int64. func sizeInt64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeVarint(uint64(v.Int())) } // appendInt64Value encodes a int64 value as a Int64. func appendInt64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, uint64(v.Int())) return b, nil } // consumeInt64Value decodes a int64 value as a Int64. func consumeInt64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfInt64(int64(v)), out, nil } var coderInt64Value = valueCoderFuncs{ size: sizeInt64Value, marshal: appendInt64Value, unmarshal: consumeInt64Value, merge: mergeScalarValue, } // sizeInt64SliceValue returns the size of wire encoding a []int64 value as a repeated Int64. func sizeInt64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) size += tagsize + protowire.SizeVarint(uint64(v.Int())) } return size } // appendInt64SliceValue encodes a []int64 value as a repeated Int64. func appendInt64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, uint64(v.Int())) } return b, nil } // consumeInt64SliceValue wire decodes a []int64 value as a repeated Int64. func consumeInt64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { return protoreflect.Value{}, out, errDecode } for len(b) > 0 { var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt64(int64(v))) b = b[n:] } out.n = n return listv, out, nil } if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt64(int64(v))) out.n = n return listv, out, nil } var coderInt64SliceValue = valueCoderFuncs{ size: sizeInt64SliceValue, marshal: appendInt64SliceValue, unmarshal: consumeInt64SliceValue, merge: mergeListValue, } // sizeInt64PackedSliceValue returns the size of wire encoding a []int64 value as a packed repeated Int64. func sizeInt64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { return 0 } n := 0 for i, llen := 0, llen; i < llen; i++ { v := list.Get(i) n += protowire.SizeVarint(uint64(v.Int())) } return tagsize + protowire.SizeBytes(n) } // appendInt64PackedSliceValue encodes a []int64 value as a packed repeated Int64. func appendInt64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { return b, nil } b = protowire.AppendVarint(b, wiretag) n := 0 for i := 0; i < llen; i++ { v := list.Get(i) n += protowire.SizeVarint(uint64(v.Int())) } b = protowire.AppendVarint(b, uint64(n)) for i := 0; i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, uint64(v.Int())) } return b, nil } var coderInt64PackedSliceValue = valueCoderFuncs{ size: sizeInt64PackedSliceValue, marshal: appendInt64PackedSliceValue, unmarshal: consumeInt64SliceValue, merge: mergeListValue, } // sizeSint64 returns the size of wire encoding a int64 pointer as a Sint64. func sizeSint64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Int64() return f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v)) } // appendSint64 wire encodes a int64 pointer as a Sint64. func appendSint64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int64() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, protowire.EncodeZigZag(v)) return b, nil } // consumeSint64 wire decodes a int64 pointer as a Sint64. func consumeSint64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } *p.Int64() = protowire.DecodeZigZag(v) out.n = n return out, nil } var coderSint64 = pointerCoderFuncs{ size: sizeSint64, marshal: appendSint64, unmarshal: consumeSint64, merge: mergeInt64, } // sizeSint64NoZero returns the size of wire encoding a int64 pointer as a Sint64. // The zero value is not encoded. func sizeSint64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Int64() if v == 0 { return 0 } return f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v)) } // appendSint64NoZero wire encodes a int64 pointer as a Sint64. // The zero value is not encoded. func appendSint64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int64() if v == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, protowire.EncodeZigZag(v)) return b, nil } var coderSint64NoZero = pointerCoderFuncs{ size: sizeSint64NoZero, marshal: appendSint64NoZero, unmarshal: consumeSint64, merge: mergeInt64NoZero, } // sizeSint64Ptr returns the size of wire encoding a *int64 pointer as a Sint64. // It panics if the pointer is nil. func sizeSint64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := **p.Int64Ptr() return f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v)) } // appendSint64Ptr wire encodes a *int64 pointer as a Sint64. // It panics if the pointer is nil. func appendSint64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Int64Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, protowire.EncodeZigZag(v)) return b, nil } // consumeSint64Ptr wire decodes a *int64 pointer as a Sint64. func consumeSint64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } vp := p.Int64Ptr() if *vp == nil { *vp = new(int64) } **vp = protowire.DecodeZigZag(v) out.n = n return out, nil } var coderSint64Ptr = pointerCoderFuncs{ size: sizeSint64Ptr, marshal: appendSint64Ptr, unmarshal: consumeSint64Ptr, merge: mergeInt64Ptr, } // sizeSint64Slice returns the size of wire encoding a []int64 pointer as a repeated Sint64. func sizeSint64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int64Slice() for _, v := range s { size += f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v)) } return size } // appendSint64Slice encodes a []int64 pointer as a repeated Sint64. func appendSint64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int64Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, protowire.EncodeZigZag(v)) } return b, nil } // consumeSint64Slice wire decodes a []int64 pointer as a repeated Sint64. func consumeSint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Int64Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } for len(b) > 0 { var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } s = append(s, protowire.DecodeZigZag(v)) b = b[n:] } *sp = s out.n = n return out, nil } if wtyp != protowire.VarintType { return out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } *sp = append(*sp, protowire.DecodeZigZag(v)) out.n = n return out, nil } var coderSint64Slice = pointerCoderFuncs{ size: sizeSint64Slice, marshal: appendSint64Slice, unmarshal: consumeSint64Slice, merge: mergeInt64Slice, } // sizeSint64PackedSlice returns the size of wire encoding a []int64 pointer as a packed repeated Sint64. func sizeSint64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int64Slice() if len(s) == 0 { return 0 } n := 0 for _, v := range s { n += protowire.SizeVarint(protowire.EncodeZigZag(v)) } return f.tagsize + protowire.SizeBytes(n) } // appendSint64PackedSlice encodes a []int64 pointer as a packed repeated Sint64. func appendSint64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int64Slice() if len(s) == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) n := 0 for _, v := range s { n += protowire.SizeVarint(protowire.EncodeZigZag(v)) } b = protowire.AppendVarint(b, uint64(n)) for _, v := range s { b = protowire.AppendVarint(b, protowire.EncodeZigZag(v)) } return b, nil } var coderSint64PackedSlice = pointerCoderFuncs{ size: sizeSint64PackedSlice, marshal: appendSint64PackedSlice, unmarshal: consumeSint64Slice, merge: mergeInt64Slice, } // sizeSint64Value returns the size of wire encoding a int64 value as a Sint64. func sizeSint64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v.Int())) } // appendSint64Value encodes a int64 value as a Sint64. func appendSint64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, protowire.EncodeZigZag(v.Int())) return b, nil } // consumeSint64Value decodes a int64 value as a Sint64. func consumeSint64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfInt64(protowire.DecodeZigZag(v)), out, nil } var coderSint64Value = valueCoderFuncs{ size: sizeSint64Value, marshal: appendSint64Value, unmarshal: consumeSint64Value, merge: mergeScalarValue, } // sizeSint64SliceValue returns the size of wire encoding a []int64 value as a repeated Sint64. func sizeSint64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) size += tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v.Int())) } return size } // appendSint64SliceValue encodes a []int64 value as a repeated Sint64. func appendSint64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, protowire.EncodeZigZag(v.Int())) } return b, nil } // consumeSint64SliceValue wire decodes a []int64 value as a repeated Sint64. func consumeSint64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { return protoreflect.Value{}, out, errDecode } for len(b) > 0 { var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt64(protowire.DecodeZigZag(v))) b = b[n:] } out.n = n return listv, out, nil } if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt64(protowire.DecodeZigZag(v))) out.n = n return listv, out, nil } var coderSint64SliceValue = valueCoderFuncs{ size: sizeSint64SliceValue, marshal: appendSint64SliceValue, unmarshal: consumeSint64SliceValue, merge: mergeListValue, } // sizeSint64PackedSliceValue returns the size of wire encoding a []int64 value as a packed repeated Sint64. func sizeSint64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { return 0 } n := 0 for i, llen := 0, llen; i < llen; i++ { v := list.Get(i) n += protowire.SizeVarint(protowire.EncodeZigZag(v.Int())) } return tagsize + protowire.SizeBytes(n) } // appendSint64PackedSliceValue encodes a []int64 value as a packed repeated Sint64. func appendSint64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { return b, nil } b = protowire.AppendVarint(b, wiretag) n := 0 for i := 0; i < llen; i++ { v := list.Get(i) n += protowire.SizeVarint(protowire.EncodeZigZag(v.Int())) } b = protowire.AppendVarint(b, uint64(n)) for i := 0; i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, protowire.EncodeZigZag(v.Int())) } return b, nil } var coderSint64PackedSliceValue = valueCoderFuncs{ size: sizeSint64PackedSliceValue, marshal: appendSint64PackedSliceValue, unmarshal: consumeSint64SliceValue, merge: mergeListValue, } // sizeUint64 returns the size of wire encoding a uint64 pointer as a Uint64. func sizeUint64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Uint64() return f.tagsize + protowire.SizeVarint(v) } // appendUint64 wire encodes a uint64 pointer as a Uint64. func appendUint64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Uint64() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, v) return b, nil } // consumeUint64 wire decodes a uint64 pointer as a Uint64. func consumeUint64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } *p.Uint64() = v out.n = n return out, nil } var coderUint64 = pointerCoderFuncs{ size: sizeUint64, marshal: appendUint64, unmarshal: consumeUint64, merge: mergeUint64, } // sizeUint64NoZero returns the size of wire encoding a uint64 pointer as a Uint64. // The zero value is not encoded. func sizeUint64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Uint64() if v == 0 { return 0 } return f.tagsize + protowire.SizeVarint(v) } // appendUint64NoZero wire encodes a uint64 pointer as a Uint64. // The zero value is not encoded. func appendUint64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Uint64() if v == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, v) return b, nil } var coderUint64NoZero = pointerCoderFuncs{ size: sizeUint64NoZero, marshal: appendUint64NoZero, unmarshal: consumeUint64, merge: mergeUint64NoZero, } // sizeUint64Ptr returns the size of wire encoding a *uint64 pointer as a Uint64. // It panics if the pointer is nil. func sizeUint64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := **p.Uint64Ptr() return f.tagsize + protowire.SizeVarint(v) } // appendUint64Ptr wire encodes a *uint64 pointer as a Uint64. // It panics if the pointer is nil. func appendUint64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Uint64Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, v) return b, nil } // consumeUint64Ptr wire decodes a *uint64 pointer as a Uint64. func consumeUint64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } vp := p.Uint64Ptr() if *vp == nil { *vp = new(uint64) } **vp = v out.n = n return out, nil } var coderUint64Ptr = pointerCoderFuncs{ size: sizeUint64Ptr, marshal: appendUint64Ptr, unmarshal: consumeUint64Ptr, merge: mergeUint64Ptr, } // sizeUint64Slice returns the size of wire encoding a []uint64 pointer as a repeated Uint64. func sizeUint64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Uint64Slice() for _, v := range s { size += f.tagsize + protowire.SizeVarint(v) } return size } // appendUint64Slice encodes a []uint64 pointer as a repeated Uint64. func appendUint64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Uint64Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, v) } return b, nil } // consumeUint64Slice wire decodes a []uint64 pointer as a repeated Uint64. func consumeUint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Uint64Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } for len(b) > 0 { var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } s = append(s, v) b = b[n:] } *sp = s out.n = n return out, nil } if wtyp != protowire.VarintType { return out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return out, errDecode } *sp = append(*sp, v) out.n = n return out, nil } var coderUint64Slice = pointerCoderFuncs{ size: sizeUint64Slice, marshal: appendUint64Slice, unmarshal: consumeUint64Slice, merge: mergeUint64Slice, } // sizeUint64PackedSlice returns the size of wire encoding a []uint64 pointer as a packed repeated Uint64. func sizeUint64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Uint64Slice() if len(s) == 0 { return 0 } n := 0 for _, v := range s { n += protowire.SizeVarint(v) } return f.tagsize + protowire.SizeBytes(n) } // appendUint64PackedSlice encodes a []uint64 pointer as a packed repeated Uint64. func appendUint64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Uint64Slice() if len(s) == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) n := 0 for _, v := range s { n += protowire.SizeVarint(v) } b = protowire.AppendVarint(b, uint64(n)) for _, v := range s { b = protowire.AppendVarint(b, v) } return b, nil } var coderUint64PackedSlice = pointerCoderFuncs{ size: sizeUint64PackedSlice, marshal: appendUint64PackedSlice, unmarshal: consumeUint64Slice, merge: mergeUint64Slice, } // sizeUint64Value returns the size of wire encoding a uint64 value as a Uint64. func sizeUint64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeVarint(v.Uint()) } // appendUint64Value encodes a uint64 value as a Uint64. func appendUint64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, v.Uint()) return b, nil } // consumeUint64Value decodes a uint64 value as a Uint64. func consumeUint64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfUint64(v), out, nil } var coderUint64Value = valueCoderFuncs{ size: sizeUint64Value, marshal: appendUint64Value, unmarshal: consumeUint64Value, merge: mergeScalarValue, } // sizeUint64SliceValue returns the size of wire encoding a []uint64 value as a repeated Uint64. func sizeUint64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) size += tagsize + protowire.SizeVarint(v.Uint()) } return size } // appendUint64SliceValue encodes a []uint64 value as a repeated Uint64. func appendUint64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, v.Uint()) } return b, nil } // consumeUint64SliceValue wire decodes a []uint64 value as a repeated Uint64. func consumeUint64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { return protoreflect.Value{}, out, errDecode } for len(b) > 0 { var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfUint64(v)) b = b[n:] } out.n = n return listv, out, nil } if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } var v uint64 var n int if len(b) >= 1 && b[0] < 0x80 { v = uint64(b[0]) n = 1 } else if len(b) >= 2 && b[1] < 128 { v = uint64(b[0]&0x7f) + uint64(b[1])<<7 n = 2 } else { v, n = protowire.ConsumeVarint(b) } if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfUint64(v)) out.n = n return listv, out, nil } var coderUint64SliceValue = valueCoderFuncs{ size: sizeUint64SliceValue, marshal: appendUint64SliceValue, unmarshal: consumeUint64SliceValue, merge: mergeListValue, } // sizeUint64PackedSliceValue returns the size of wire encoding a []uint64 value as a packed repeated Uint64. func sizeUint64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { return 0 } n := 0 for i, llen := 0, llen; i < llen; i++ { v := list.Get(i) n += protowire.SizeVarint(v.Uint()) } return tagsize + protowire.SizeBytes(n) } // appendUint64PackedSliceValue encodes a []uint64 value as a packed repeated Uint64. func appendUint64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { return b, nil } b = protowire.AppendVarint(b, wiretag) n := 0 for i := 0; i < llen; i++ { v := list.Get(i) n += protowire.SizeVarint(v.Uint()) } b = protowire.AppendVarint(b, uint64(n)) for i := 0; i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, v.Uint()) } return b, nil } var coderUint64PackedSliceValue = valueCoderFuncs{ size: sizeUint64PackedSliceValue, marshal: appendUint64PackedSliceValue, unmarshal: consumeUint64SliceValue, merge: mergeListValue, } // sizeSfixed32 returns the size of wire encoding a int32 pointer as a Sfixed32. func sizeSfixed32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed32() } // appendSfixed32 wire encodes a int32 pointer as a Sfixed32. func appendSfixed32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int32() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed32(b, uint32(v)) return b, nil } // consumeSfixed32 wire decodes a int32 pointer as a Sfixed32. func consumeSfixed32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed32Type { return out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { return out, errDecode } *p.Int32() = int32(v) out.n = n return out, nil } var coderSfixed32 = pointerCoderFuncs{ size: sizeSfixed32, marshal: appendSfixed32, unmarshal: consumeSfixed32, merge: mergeInt32, } // sizeSfixed32NoZero returns the size of wire encoding a int32 pointer as a Sfixed32. // The zero value is not encoded. func sizeSfixed32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Int32() if v == 0 { return 0 } return f.tagsize + protowire.SizeFixed32() } // appendSfixed32NoZero wire encodes a int32 pointer as a Sfixed32. // The zero value is not encoded. func appendSfixed32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int32() if v == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed32(b, uint32(v)) return b, nil } var coderSfixed32NoZero = pointerCoderFuncs{ size: sizeSfixed32NoZero, marshal: appendSfixed32NoZero, unmarshal: consumeSfixed32, merge: mergeInt32NoZero, } // sizeSfixed32Ptr returns the size of wire encoding a *int32 pointer as a Sfixed32. // It panics if the pointer is nil. func sizeSfixed32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed32() } // appendSfixed32Ptr wire encodes a *int32 pointer as a Sfixed32. // It panics if the pointer is nil. func appendSfixed32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Int32Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed32(b, uint32(v)) return b, nil } // consumeSfixed32Ptr wire decodes a *int32 pointer as a Sfixed32. func consumeSfixed32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed32Type { return out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { return out, errDecode } vp := p.Int32Ptr() if *vp == nil { *vp = new(int32) } **vp = int32(v) out.n = n return out, nil } var coderSfixed32Ptr = pointerCoderFuncs{ size: sizeSfixed32Ptr, marshal: appendSfixed32Ptr, unmarshal: consumeSfixed32Ptr, merge: mergeInt32Ptr, } // sizeSfixed32Slice returns the size of wire encoding a []int32 pointer as a repeated Sfixed32. func sizeSfixed32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int32Slice() size = len(s) * (f.tagsize + protowire.SizeFixed32()) return size } // appendSfixed32Slice encodes a []int32 pointer as a repeated Sfixed32. func appendSfixed32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int32Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed32(b, uint32(v)) } return b, nil } // consumeSfixed32Slice wire decodes a []int32 pointer as a repeated Sfixed32. func consumeSfixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Int32Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed32(b) if n < 0 { return out, errDecode } s = append(s, int32(v)) b = b[n:] } *sp = s out.n = n return out, nil } if wtyp != protowire.Fixed32Type { return out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { return out, errDecode } *sp = append(*sp, int32(v)) out.n = n return out, nil } var coderSfixed32Slice = pointerCoderFuncs{ size: sizeSfixed32Slice, marshal: appendSfixed32Slice, unmarshal: consumeSfixed32Slice, merge: mergeInt32Slice, } // sizeSfixed32PackedSlice returns the size of wire encoding a []int32 pointer as a packed repeated Sfixed32. func sizeSfixed32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int32Slice() if len(s) == 0 { return 0 } n := len(s) * protowire.SizeFixed32() return f.tagsize + protowire.SizeBytes(n) } // appendSfixed32PackedSlice encodes a []int32 pointer as a packed repeated Sfixed32. func appendSfixed32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int32Slice() if len(s) == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) n := len(s) * protowire.SizeFixed32() b = protowire.AppendVarint(b, uint64(n)) for _, v := range s { b = protowire.AppendFixed32(b, uint32(v)) } return b, nil } var coderSfixed32PackedSlice = pointerCoderFuncs{ size: sizeSfixed32PackedSlice, marshal: appendSfixed32PackedSlice, unmarshal: consumeSfixed32Slice, merge: mergeInt32Slice, } // sizeSfixed32Value returns the size of wire encoding a int32 value as a Sfixed32. func sizeSfixed32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeFixed32() } // appendSfixed32Value encodes a int32 value as a Sfixed32. func appendSfixed32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendFixed32(b, uint32(v.Int())) return b, nil } // consumeSfixed32Value decodes a int32 value as a Sfixed32. func consumeSfixed32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.Fixed32Type { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfInt32(int32(v)), out, nil } var coderSfixed32Value = valueCoderFuncs{ size: sizeSfixed32Value, marshal: appendSfixed32Value, unmarshal: consumeSfixed32Value, merge: mergeScalarValue, } // sizeSfixed32SliceValue returns the size of wire encoding a []int32 value as a repeated Sfixed32. func sizeSfixed32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() size = list.Len() * (tagsize + protowire.SizeFixed32()) return size } // appendSfixed32SliceValue encodes a []int32 value as a repeated Sfixed32. func appendSfixed32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, wiretag) b = protowire.AppendFixed32(b, uint32(v.Int())) } return b, nil } // consumeSfixed32SliceValue wire decodes a []int32 value as a repeated Sfixed32. func consumeSfixed32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { return protoreflect.Value{}, out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed32(b) if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt32(int32(v))) b = b[n:] } out.n = n return listv, out, nil } if wtyp != protowire.Fixed32Type { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt32(int32(v))) out.n = n return listv, out, nil } var coderSfixed32SliceValue = valueCoderFuncs{ size: sizeSfixed32SliceValue, marshal: appendSfixed32SliceValue, unmarshal: consumeSfixed32SliceValue, merge: mergeListValue, } // sizeSfixed32PackedSliceValue returns the size of wire encoding a []int32 value as a packed repeated Sfixed32. func sizeSfixed32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { return 0 } n := llen * protowire.SizeFixed32() return tagsize + protowire.SizeBytes(n) } // appendSfixed32PackedSliceValue encodes a []int32 value as a packed repeated Sfixed32. func appendSfixed32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { return b, nil } b = protowire.AppendVarint(b, wiretag) n := llen * protowire.SizeFixed32() b = protowire.AppendVarint(b, uint64(n)) for i := 0; i < llen; i++ { v := list.Get(i) b = protowire.AppendFixed32(b, uint32(v.Int())) } return b, nil } var coderSfixed32PackedSliceValue = valueCoderFuncs{ size: sizeSfixed32PackedSliceValue, marshal: appendSfixed32PackedSliceValue, unmarshal: consumeSfixed32SliceValue, merge: mergeListValue, } // sizeFixed32 returns the size of wire encoding a uint32 pointer as a Fixed32. func sizeFixed32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed32() } // appendFixed32 wire encodes a uint32 pointer as a Fixed32. func appendFixed32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Uint32() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed32(b, v) return b, nil } // consumeFixed32 wire decodes a uint32 pointer as a Fixed32. func consumeFixed32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed32Type { return out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { return out, errDecode } *p.Uint32() = v out.n = n return out, nil } var coderFixed32 = pointerCoderFuncs{ size: sizeFixed32, marshal: appendFixed32, unmarshal: consumeFixed32, merge: mergeUint32, } // sizeFixed32NoZero returns the size of wire encoding a uint32 pointer as a Fixed32. // The zero value is not encoded. func sizeFixed32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Uint32() if v == 0 { return 0 } return f.tagsize + protowire.SizeFixed32() } // appendFixed32NoZero wire encodes a uint32 pointer as a Fixed32. // The zero value is not encoded. func appendFixed32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Uint32() if v == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed32(b, v) return b, nil } var coderFixed32NoZero = pointerCoderFuncs{ size: sizeFixed32NoZero, marshal: appendFixed32NoZero, unmarshal: consumeFixed32, merge: mergeUint32NoZero, } // sizeFixed32Ptr returns the size of wire encoding a *uint32 pointer as a Fixed32. // It panics if the pointer is nil. func sizeFixed32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed32() } // appendFixed32Ptr wire encodes a *uint32 pointer as a Fixed32. // It panics if the pointer is nil. func appendFixed32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Uint32Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed32(b, v) return b, nil } // consumeFixed32Ptr wire decodes a *uint32 pointer as a Fixed32. func consumeFixed32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed32Type { return out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { return out, errDecode } vp := p.Uint32Ptr() if *vp == nil { *vp = new(uint32) } **vp = v out.n = n return out, nil } var coderFixed32Ptr = pointerCoderFuncs{ size: sizeFixed32Ptr, marshal: appendFixed32Ptr, unmarshal: consumeFixed32Ptr, merge: mergeUint32Ptr, } // sizeFixed32Slice returns the size of wire encoding a []uint32 pointer as a repeated Fixed32. func sizeFixed32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Uint32Slice() size = len(s) * (f.tagsize + protowire.SizeFixed32()) return size } // appendFixed32Slice encodes a []uint32 pointer as a repeated Fixed32. func appendFixed32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Uint32Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed32(b, v) } return b, nil } // consumeFixed32Slice wire decodes a []uint32 pointer as a repeated Fixed32. func consumeFixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Uint32Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed32(b) if n < 0 { return out, errDecode } s = append(s, v) b = b[n:] } *sp = s out.n = n return out, nil } if wtyp != protowire.Fixed32Type { return out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { return out, errDecode } *sp = append(*sp, v) out.n = n return out, nil } var coderFixed32Slice = pointerCoderFuncs{ size: sizeFixed32Slice, marshal: appendFixed32Slice, unmarshal: consumeFixed32Slice, merge: mergeUint32Slice, } // sizeFixed32PackedSlice returns the size of wire encoding a []uint32 pointer as a packed repeated Fixed32. func sizeFixed32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Uint32Slice() if len(s) == 0 { return 0 } n := len(s) * protowire.SizeFixed32() return f.tagsize + protowire.SizeBytes(n) } // appendFixed32PackedSlice encodes a []uint32 pointer as a packed repeated Fixed32. func appendFixed32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Uint32Slice() if len(s) == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) n := len(s) * protowire.SizeFixed32() b = protowire.AppendVarint(b, uint64(n)) for _, v := range s { b = protowire.AppendFixed32(b, v) } return b, nil } var coderFixed32PackedSlice = pointerCoderFuncs{ size: sizeFixed32PackedSlice, marshal: appendFixed32PackedSlice, unmarshal: consumeFixed32Slice, merge: mergeUint32Slice, } // sizeFixed32Value returns the size of wire encoding a uint32 value as a Fixed32. func sizeFixed32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeFixed32() } // appendFixed32Value encodes a uint32 value as a Fixed32. func appendFixed32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendFixed32(b, uint32(v.Uint())) return b, nil } // consumeFixed32Value decodes a uint32 value as a Fixed32. func consumeFixed32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.Fixed32Type { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfUint32(uint32(v)), out, nil } var coderFixed32Value = valueCoderFuncs{ size: sizeFixed32Value, marshal: appendFixed32Value, unmarshal: consumeFixed32Value, merge: mergeScalarValue, } // sizeFixed32SliceValue returns the size of wire encoding a []uint32 value as a repeated Fixed32. func sizeFixed32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() size = list.Len() * (tagsize + protowire.SizeFixed32()) return size } // appendFixed32SliceValue encodes a []uint32 value as a repeated Fixed32. func appendFixed32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, wiretag) b = protowire.AppendFixed32(b, uint32(v.Uint())) } return b, nil } // consumeFixed32SliceValue wire decodes a []uint32 value as a repeated Fixed32. func consumeFixed32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { return protoreflect.Value{}, out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed32(b) if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfUint32(uint32(v))) b = b[n:] } out.n = n return listv, out, nil } if wtyp != protowire.Fixed32Type { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfUint32(uint32(v))) out.n = n return listv, out, nil } var coderFixed32SliceValue = valueCoderFuncs{ size: sizeFixed32SliceValue, marshal: appendFixed32SliceValue, unmarshal: consumeFixed32SliceValue, merge: mergeListValue, } // sizeFixed32PackedSliceValue returns the size of wire encoding a []uint32 value as a packed repeated Fixed32. func sizeFixed32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { return 0 } n := llen * protowire.SizeFixed32() return tagsize + protowire.SizeBytes(n) } // appendFixed32PackedSliceValue encodes a []uint32 value as a packed repeated Fixed32. func appendFixed32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { return b, nil } b = protowire.AppendVarint(b, wiretag) n := llen * protowire.SizeFixed32() b = protowire.AppendVarint(b, uint64(n)) for i := 0; i < llen; i++ { v := list.Get(i) b = protowire.AppendFixed32(b, uint32(v.Uint())) } return b, nil } var coderFixed32PackedSliceValue = valueCoderFuncs{ size: sizeFixed32PackedSliceValue, marshal: appendFixed32PackedSliceValue, unmarshal: consumeFixed32SliceValue, merge: mergeListValue, } // sizeFloat returns the size of wire encoding a float32 pointer as a Float. func sizeFloat(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed32() } // appendFloat wire encodes a float32 pointer as a Float. func appendFloat(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Float32() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed32(b, math.Float32bits(v)) return b, nil } // consumeFloat wire decodes a float32 pointer as a Float. func consumeFloat(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed32Type { return out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { return out, errDecode } *p.Float32() = math.Float32frombits(v) out.n = n return out, nil } var coderFloat = pointerCoderFuncs{ size: sizeFloat, marshal: appendFloat, unmarshal: consumeFloat, merge: mergeFloat32, } // sizeFloatNoZero returns the size of wire encoding a float32 pointer as a Float. // The zero value is not encoded. func sizeFloatNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Float32() if v == 0 && !math.Signbit(float64(v)) { return 0 } return f.tagsize + protowire.SizeFixed32() } // appendFloatNoZero wire encodes a float32 pointer as a Float. // The zero value is not encoded. func appendFloatNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Float32() if v == 0 && !math.Signbit(float64(v)) { return b, nil } b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed32(b, math.Float32bits(v)) return b, nil } var coderFloatNoZero = pointerCoderFuncs{ size: sizeFloatNoZero, marshal: appendFloatNoZero, unmarshal: consumeFloat, merge: mergeFloat32NoZero, } // sizeFloatPtr returns the size of wire encoding a *float32 pointer as a Float. // It panics if the pointer is nil. func sizeFloatPtr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed32() } // appendFloatPtr wire encodes a *float32 pointer as a Float. // It panics if the pointer is nil. func appendFloatPtr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Float32Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed32(b, math.Float32bits(v)) return b, nil } // consumeFloatPtr wire decodes a *float32 pointer as a Float. func consumeFloatPtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed32Type { return out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { return out, errDecode } vp := p.Float32Ptr() if *vp == nil { *vp = new(float32) } **vp = math.Float32frombits(v) out.n = n return out, nil } var coderFloatPtr = pointerCoderFuncs{ size: sizeFloatPtr, marshal: appendFloatPtr, unmarshal: consumeFloatPtr, merge: mergeFloat32Ptr, } // sizeFloatSlice returns the size of wire encoding a []float32 pointer as a repeated Float. func sizeFloatSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Float32Slice() size = len(s) * (f.tagsize + protowire.SizeFixed32()) return size } // appendFloatSlice encodes a []float32 pointer as a repeated Float. func appendFloatSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Float32Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed32(b, math.Float32bits(v)) } return b, nil } // consumeFloatSlice wire decodes a []float32 pointer as a repeated Float. func consumeFloatSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Float32Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed32(b) if n < 0 { return out, errDecode } s = append(s, math.Float32frombits(v)) b = b[n:] } *sp = s out.n = n return out, nil } if wtyp != protowire.Fixed32Type { return out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { return out, errDecode } *sp = append(*sp, math.Float32frombits(v)) out.n = n return out, nil } var coderFloatSlice = pointerCoderFuncs{ size: sizeFloatSlice, marshal: appendFloatSlice, unmarshal: consumeFloatSlice, merge: mergeFloat32Slice, } // sizeFloatPackedSlice returns the size of wire encoding a []float32 pointer as a packed repeated Float. func sizeFloatPackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Float32Slice() if len(s) == 0 { return 0 } n := len(s) * protowire.SizeFixed32() return f.tagsize + protowire.SizeBytes(n) } // appendFloatPackedSlice encodes a []float32 pointer as a packed repeated Float. func appendFloatPackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Float32Slice() if len(s) == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) n := len(s) * protowire.SizeFixed32() b = protowire.AppendVarint(b, uint64(n)) for _, v := range s { b = protowire.AppendFixed32(b, math.Float32bits(v)) } return b, nil } var coderFloatPackedSlice = pointerCoderFuncs{ size: sizeFloatPackedSlice, marshal: appendFloatPackedSlice, unmarshal: consumeFloatSlice, merge: mergeFloat32Slice, } // sizeFloatValue returns the size of wire encoding a float32 value as a Float. func sizeFloatValue(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeFixed32() } // appendFloatValue encodes a float32 value as a Float. func appendFloatValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendFixed32(b, math.Float32bits(float32(v.Float()))) return b, nil } // consumeFloatValue decodes a float32 value as a Float. func consumeFloatValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.Fixed32Type { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v))), out, nil } var coderFloatValue = valueCoderFuncs{ size: sizeFloatValue, marshal: appendFloatValue, unmarshal: consumeFloatValue, merge: mergeScalarValue, } // sizeFloatSliceValue returns the size of wire encoding a []float32 value as a repeated Float. func sizeFloatSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() size = list.Len() * (tagsize + protowire.SizeFixed32()) return size } // appendFloatSliceValue encodes a []float32 value as a repeated Float. func appendFloatSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, wiretag) b = protowire.AppendFixed32(b, math.Float32bits(float32(v.Float()))) } return b, nil } // consumeFloatSliceValue wire decodes a []float32 value as a repeated Float. func consumeFloatSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { return protoreflect.Value{}, out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed32(b) if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v)))) b = b[n:] } out.n = n return listv, out, nil } if wtyp != protowire.Fixed32Type { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v)))) out.n = n return listv, out, nil } var coderFloatSliceValue = valueCoderFuncs{ size: sizeFloatSliceValue, marshal: appendFloatSliceValue, unmarshal: consumeFloatSliceValue, merge: mergeListValue, } // sizeFloatPackedSliceValue returns the size of wire encoding a []float32 value as a packed repeated Float. func sizeFloatPackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { return 0 } n := llen * protowire.SizeFixed32() return tagsize + protowire.SizeBytes(n) } // appendFloatPackedSliceValue encodes a []float32 value as a packed repeated Float. func appendFloatPackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { return b, nil } b = protowire.AppendVarint(b, wiretag) n := llen * protowire.SizeFixed32() b = protowire.AppendVarint(b, uint64(n)) for i := 0; i < llen; i++ { v := list.Get(i) b = protowire.AppendFixed32(b, math.Float32bits(float32(v.Float()))) } return b, nil } var coderFloatPackedSliceValue = valueCoderFuncs{ size: sizeFloatPackedSliceValue, marshal: appendFloatPackedSliceValue, unmarshal: consumeFloatSliceValue, merge: mergeListValue, } // sizeSfixed64 returns the size of wire encoding a int64 pointer as a Sfixed64. func sizeSfixed64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed64() } // appendSfixed64 wire encodes a int64 pointer as a Sfixed64. func appendSfixed64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int64() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed64(b, uint64(v)) return b, nil } // consumeSfixed64 wire decodes a int64 pointer as a Sfixed64. func consumeSfixed64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed64Type { return out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { return out, errDecode } *p.Int64() = int64(v) out.n = n return out, nil } var coderSfixed64 = pointerCoderFuncs{ size: sizeSfixed64, marshal: appendSfixed64, unmarshal: consumeSfixed64, merge: mergeInt64, } // sizeSfixed64NoZero returns the size of wire encoding a int64 pointer as a Sfixed64. // The zero value is not encoded. func sizeSfixed64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Int64() if v == 0 { return 0 } return f.tagsize + protowire.SizeFixed64() } // appendSfixed64NoZero wire encodes a int64 pointer as a Sfixed64. // The zero value is not encoded. func appendSfixed64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int64() if v == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed64(b, uint64(v)) return b, nil } var coderSfixed64NoZero = pointerCoderFuncs{ size: sizeSfixed64NoZero, marshal: appendSfixed64NoZero, unmarshal: consumeSfixed64, merge: mergeInt64NoZero, } // sizeSfixed64Ptr returns the size of wire encoding a *int64 pointer as a Sfixed64. // It panics if the pointer is nil. func sizeSfixed64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed64() } // appendSfixed64Ptr wire encodes a *int64 pointer as a Sfixed64. // It panics if the pointer is nil. func appendSfixed64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Int64Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed64(b, uint64(v)) return b, nil } // consumeSfixed64Ptr wire decodes a *int64 pointer as a Sfixed64. func consumeSfixed64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed64Type { return out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { return out, errDecode } vp := p.Int64Ptr() if *vp == nil { *vp = new(int64) } **vp = int64(v) out.n = n return out, nil } var coderSfixed64Ptr = pointerCoderFuncs{ size: sizeSfixed64Ptr, marshal: appendSfixed64Ptr, unmarshal: consumeSfixed64Ptr, merge: mergeInt64Ptr, } // sizeSfixed64Slice returns the size of wire encoding a []int64 pointer as a repeated Sfixed64. func sizeSfixed64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int64Slice() size = len(s) * (f.tagsize + protowire.SizeFixed64()) return size } // appendSfixed64Slice encodes a []int64 pointer as a repeated Sfixed64. func appendSfixed64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int64Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed64(b, uint64(v)) } return b, nil } // consumeSfixed64Slice wire decodes a []int64 pointer as a repeated Sfixed64. func consumeSfixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Int64Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed64(b) if n < 0 { return out, errDecode } s = append(s, int64(v)) b = b[n:] } *sp = s out.n = n return out, nil } if wtyp != protowire.Fixed64Type { return out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { return out, errDecode } *sp = append(*sp, int64(v)) out.n = n return out, nil } var coderSfixed64Slice = pointerCoderFuncs{ size: sizeSfixed64Slice, marshal: appendSfixed64Slice, unmarshal: consumeSfixed64Slice, merge: mergeInt64Slice, } // sizeSfixed64PackedSlice returns the size of wire encoding a []int64 pointer as a packed repeated Sfixed64. func sizeSfixed64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int64Slice() if len(s) == 0 { return 0 } n := len(s) * protowire.SizeFixed64() return f.tagsize + protowire.SizeBytes(n) } // appendSfixed64PackedSlice encodes a []int64 pointer as a packed repeated Sfixed64. func appendSfixed64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int64Slice() if len(s) == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) n := len(s) * protowire.SizeFixed64() b = protowire.AppendVarint(b, uint64(n)) for _, v := range s { b = protowire.AppendFixed64(b, uint64(v)) } return b, nil } var coderSfixed64PackedSlice = pointerCoderFuncs{ size: sizeSfixed64PackedSlice, marshal: appendSfixed64PackedSlice, unmarshal: consumeSfixed64Slice, merge: mergeInt64Slice, } // sizeSfixed64Value returns the size of wire encoding a int64 value as a Sfixed64. func sizeSfixed64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeFixed64() } // appendSfixed64Value encodes a int64 value as a Sfixed64. func appendSfixed64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendFixed64(b, uint64(v.Int())) return b, nil } // consumeSfixed64Value decodes a int64 value as a Sfixed64. func consumeSfixed64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.Fixed64Type { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfInt64(int64(v)), out, nil } var coderSfixed64Value = valueCoderFuncs{ size: sizeSfixed64Value, marshal: appendSfixed64Value, unmarshal: consumeSfixed64Value, merge: mergeScalarValue, } // sizeSfixed64SliceValue returns the size of wire encoding a []int64 value as a repeated Sfixed64. func sizeSfixed64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() size = list.Len() * (tagsize + protowire.SizeFixed64()) return size } // appendSfixed64SliceValue encodes a []int64 value as a repeated Sfixed64. func appendSfixed64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, wiretag) b = protowire.AppendFixed64(b, uint64(v.Int())) } return b, nil } // consumeSfixed64SliceValue wire decodes a []int64 value as a repeated Sfixed64. func consumeSfixed64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { return protoreflect.Value{}, out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed64(b) if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt64(int64(v))) b = b[n:] } out.n = n return listv, out, nil } if wtyp != protowire.Fixed64Type { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt64(int64(v))) out.n = n return listv, out, nil } var coderSfixed64SliceValue = valueCoderFuncs{ size: sizeSfixed64SliceValue, marshal: appendSfixed64SliceValue, unmarshal: consumeSfixed64SliceValue, merge: mergeListValue, } // sizeSfixed64PackedSliceValue returns the size of wire encoding a []int64 value as a packed repeated Sfixed64. func sizeSfixed64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { return 0 } n := llen * protowire.SizeFixed64() return tagsize + protowire.SizeBytes(n) } // appendSfixed64PackedSliceValue encodes a []int64 value as a packed repeated Sfixed64. func appendSfixed64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { return b, nil } b = protowire.AppendVarint(b, wiretag) n := llen * protowire.SizeFixed64() b = protowire.AppendVarint(b, uint64(n)) for i := 0; i < llen; i++ { v := list.Get(i) b = protowire.AppendFixed64(b, uint64(v.Int())) } return b, nil } var coderSfixed64PackedSliceValue = valueCoderFuncs{ size: sizeSfixed64PackedSliceValue, marshal: appendSfixed64PackedSliceValue, unmarshal: consumeSfixed64SliceValue, merge: mergeListValue, } // sizeFixed64 returns the size of wire encoding a uint64 pointer as a Fixed64. func sizeFixed64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed64() } // appendFixed64 wire encodes a uint64 pointer as a Fixed64. func appendFixed64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Uint64() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed64(b, v) return b, nil } // consumeFixed64 wire decodes a uint64 pointer as a Fixed64. func consumeFixed64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed64Type { return out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { return out, errDecode } *p.Uint64() = v out.n = n return out, nil } var coderFixed64 = pointerCoderFuncs{ size: sizeFixed64, marshal: appendFixed64, unmarshal: consumeFixed64, merge: mergeUint64, } // sizeFixed64NoZero returns the size of wire encoding a uint64 pointer as a Fixed64. // The zero value is not encoded. func sizeFixed64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Uint64() if v == 0 { return 0 } return f.tagsize + protowire.SizeFixed64() } // appendFixed64NoZero wire encodes a uint64 pointer as a Fixed64. // The zero value is not encoded. func appendFixed64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Uint64() if v == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed64(b, v) return b, nil } var coderFixed64NoZero = pointerCoderFuncs{ size: sizeFixed64NoZero, marshal: appendFixed64NoZero, unmarshal: consumeFixed64, merge: mergeUint64NoZero, } // sizeFixed64Ptr returns the size of wire encoding a *uint64 pointer as a Fixed64. // It panics if the pointer is nil. func sizeFixed64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed64() } // appendFixed64Ptr wire encodes a *uint64 pointer as a Fixed64. // It panics if the pointer is nil. func appendFixed64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Uint64Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed64(b, v) return b, nil } // consumeFixed64Ptr wire decodes a *uint64 pointer as a Fixed64. func consumeFixed64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed64Type { return out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { return out, errDecode } vp := p.Uint64Ptr() if *vp == nil { *vp = new(uint64) } **vp = v out.n = n return out, nil } var coderFixed64Ptr = pointerCoderFuncs{ size: sizeFixed64Ptr, marshal: appendFixed64Ptr, unmarshal: consumeFixed64Ptr, merge: mergeUint64Ptr, } // sizeFixed64Slice returns the size of wire encoding a []uint64 pointer as a repeated Fixed64. func sizeFixed64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Uint64Slice() size = len(s) * (f.tagsize + protowire.SizeFixed64()) return size } // appendFixed64Slice encodes a []uint64 pointer as a repeated Fixed64. func appendFixed64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Uint64Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed64(b, v) } return b, nil } // consumeFixed64Slice wire decodes a []uint64 pointer as a repeated Fixed64. func consumeFixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Uint64Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed64(b) if n < 0 { return out, errDecode } s = append(s, v) b = b[n:] } *sp = s out.n = n return out, nil } if wtyp != protowire.Fixed64Type { return out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { return out, errDecode } *sp = append(*sp, v) out.n = n return out, nil } var coderFixed64Slice = pointerCoderFuncs{ size: sizeFixed64Slice, marshal: appendFixed64Slice, unmarshal: consumeFixed64Slice, merge: mergeUint64Slice, } // sizeFixed64PackedSlice returns the size of wire encoding a []uint64 pointer as a packed repeated Fixed64. func sizeFixed64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Uint64Slice() if len(s) == 0 { return 0 } n := len(s) * protowire.SizeFixed64() return f.tagsize + protowire.SizeBytes(n) } // appendFixed64PackedSlice encodes a []uint64 pointer as a packed repeated Fixed64. func appendFixed64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Uint64Slice() if len(s) == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) n := len(s) * protowire.SizeFixed64() b = protowire.AppendVarint(b, uint64(n)) for _, v := range s { b = protowire.AppendFixed64(b, v) } return b, nil } var coderFixed64PackedSlice = pointerCoderFuncs{ size: sizeFixed64PackedSlice, marshal: appendFixed64PackedSlice, unmarshal: consumeFixed64Slice, merge: mergeUint64Slice, } // sizeFixed64Value returns the size of wire encoding a uint64 value as a Fixed64. func sizeFixed64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeFixed64() } // appendFixed64Value encodes a uint64 value as a Fixed64. func appendFixed64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendFixed64(b, v.Uint()) return b, nil } // consumeFixed64Value decodes a uint64 value as a Fixed64. func consumeFixed64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.Fixed64Type { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfUint64(v), out, nil } var coderFixed64Value = valueCoderFuncs{ size: sizeFixed64Value, marshal: appendFixed64Value, unmarshal: consumeFixed64Value, merge: mergeScalarValue, } // sizeFixed64SliceValue returns the size of wire encoding a []uint64 value as a repeated Fixed64. func sizeFixed64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() size = list.Len() * (tagsize + protowire.SizeFixed64()) return size } // appendFixed64SliceValue encodes a []uint64 value as a repeated Fixed64. func appendFixed64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, wiretag) b = protowire.AppendFixed64(b, v.Uint()) } return b, nil } // consumeFixed64SliceValue wire decodes a []uint64 value as a repeated Fixed64. func consumeFixed64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { return protoreflect.Value{}, out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed64(b) if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfUint64(v)) b = b[n:] } out.n = n return listv, out, nil } if wtyp != protowire.Fixed64Type { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfUint64(v)) out.n = n return listv, out, nil } var coderFixed64SliceValue = valueCoderFuncs{ size: sizeFixed64SliceValue, marshal: appendFixed64SliceValue, unmarshal: consumeFixed64SliceValue, merge: mergeListValue, } // sizeFixed64PackedSliceValue returns the size of wire encoding a []uint64 value as a packed repeated Fixed64. func sizeFixed64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { return 0 } n := llen * protowire.SizeFixed64() return tagsize + protowire.SizeBytes(n) } // appendFixed64PackedSliceValue encodes a []uint64 value as a packed repeated Fixed64. func appendFixed64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { return b, nil } b = protowire.AppendVarint(b, wiretag) n := llen * protowire.SizeFixed64() b = protowire.AppendVarint(b, uint64(n)) for i := 0; i < llen; i++ { v := list.Get(i) b = protowire.AppendFixed64(b, v.Uint()) } return b, nil } var coderFixed64PackedSliceValue = valueCoderFuncs{ size: sizeFixed64PackedSliceValue, marshal: appendFixed64PackedSliceValue, unmarshal: consumeFixed64SliceValue, merge: mergeListValue, } // sizeDouble returns the size of wire encoding a float64 pointer as a Double. func sizeDouble(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed64() } // appendDouble wire encodes a float64 pointer as a Double. func appendDouble(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Float64() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed64(b, math.Float64bits(v)) return b, nil } // consumeDouble wire decodes a float64 pointer as a Double. func consumeDouble(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed64Type { return out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { return out, errDecode } *p.Float64() = math.Float64frombits(v) out.n = n return out, nil } var coderDouble = pointerCoderFuncs{ size: sizeDouble, marshal: appendDouble, unmarshal: consumeDouble, merge: mergeFloat64, } // sizeDoubleNoZero returns the size of wire encoding a float64 pointer as a Double. // The zero value is not encoded. func sizeDoubleNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Float64() if v == 0 && !math.Signbit(float64(v)) { return 0 } return f.tagsize + protowire.SizeFixed64() } // appendDoubleNoZero wire encodes a float64 pointer as a Double. // The zero value is not encoded. func appendDoubleNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Float64() if v == 0 && !math.Signbit(float64(v)) { return b, nil } b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed64(b, math.Float64bits(v)) return b, nil } var coderDoubleNoZero = pointerCoderFuncs{ size: sizeDoubleNoZero, marshal: appendDoubleNoZero, unmarshal: consumeDouble, merge: mergeFloat64NoZero, } // sizeDoublePtr returns the size of wire encoding a *float64 pointer as a Double. // It panics if the pointer is nil. func sizeDoublePtr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed64() } // appendDoublePtr wire encodes a *float64 pointer as a Double. // It panics if the pointer is nil. func appendDoublePtr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Float64Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed64(b, math.Float64bits(v)) return b, nil } // consumeDoublePtr wire decodes a *float64 pointer as a Double. func consumeDoublePtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed64Type { return out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { return out, errDecode } vp := p.Float64Ptr() if *vp == nil { *vp = new(float64) } **vp = math.Float64frombits(v) out.n = n return out, nil } var coderDoublePtr = pointerCoderFuncs{ size: sizeDoublePtr, marshal: appendDoublePtr, unmarshal: consumeDoublePtr, merge: mergeFloat64Ptr, } // sizeDoubleSlice returns the size of wire encoding a []float64 pointer as a repeated Double. func sizeDoubleSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Float64Slice() size = len(s) * (f.tagsize + protowire.SizeFixed64()) return size } // appendDoubleSlice encodes a []float64 pointer as a repeated Double. func appendDoubleSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Float64Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed64(b, math.Float64bits(v)) } return b, nil } // consumeDoubleSlice wire decodes a []float64 pointer as a repeated Double. func consumeDoubleSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Float64Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed64(b) if n < 0 { return out, errDecode } s = append(s, math.Float64frombits(v)) b = b[n:] } *sp = s out.n = n return out, nil } if wtyp != protowire.Fixed64Type { return out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { return out, errDecode } *sp = append(*sp, math.Float64frombits(v)) out.n = n return out, nil } var coderDoubleSlice = pointerCoderFuncs{ size: sizeDoubleSlice, marshal: appendDoubleSlice, unmarshal: consumeDoubleSlice, merge: mergeFloat64Slice, } // sizeDoublePackedSlice returns the size of wire encoding a []float64 pointer as a packed repeated Double. func sizeDoublePackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Float64Slice() if len(s) == 0 { return 0 } n := len(s) * protowire.SizeFixed64() return f.tagsize + protowire.SizeBytes(n) } // appendDoublePackedSlice encodes a []float64 pointer as a packed repeated Double. func appendDoublePackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Float64Slice() if len(s) == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) n := len(s) * protowire.SizeFixed64() b = protowire.AppendVarint(b, uint64(n)) for _, v := range s { b = protowire.AppendFixed64(b, math.Float64bits(v)) } return b, nil } var coderDoublePackedSlice = pointerCoderFuncs{ size: sizeDoublePackedSlice, marshal: appendDoublePackedSlice, unmarshal: consumeDoubleSlice, merge: mergeFloat64Slice, } // sizeDoubleValue returns the size of wire encoding a float64 value as a Double. func sizeDoubleValue(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeFixed64() } // appendDoubleValue encodes a float64 value as a Double. func appendDoubleValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendFixed64(b, math.Float64bits(v.Float())) return b, nil } // consumeDoubleValue decodes a float64 value as a Double. func consumeDoubleValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.Fixed64Type { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfFloat64(math.Float64frombits(v)), out, nil } var coderDoubleValue = valueCoderFuncs{ size: sizeDoubleValue, marshal: appendDoubleValue, unmarshal: consumeDoubleValue, merge: mergeScalarValue, } // sizeDoubleSliceValue returns the size of wire encoding a []float64 value as a repeated Double. func sizeDoubleSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() size = list.Len() * (tagsize + protowire.SizeFixed64()) return size } // appendDoubleSliceValue encodes a []float64 value as a repeated Double. func appendDoubleSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, wiretag) b = protowire.AppendFixed64(b, math.Float64bits(v.Float())) } return b, nil } // consumeDoubleSliceValue wire decodes a []float64 value as a repeated Double. func consumeDoubleSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { return protoreflect.Value{}, out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed64(b) if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfFloat64(math.Float64frombits(v))) b = b[n:] } out.n = n return listv, out, nil } if wtyp != protowire.Fixed64Type { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfFloat64(math.Float64frombits(v))) out.n = n return listv, out, nil } var coderDoubleSliceValue = valueCoderFuncs{ size: sizeDoubleSliceValue, marshal: appendDoubleSliceValue, unmarshal: consumeDoubleSliceValue, merge: mergeListValue, } // sizeDoublePackedSliceValue returns the size of wire encoding a []float64 value as a packed repeated Double. func sizeDoublePackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { return 0 } n := llen * protowire.SizeFixed64() return tagsize + protowire.SizeBytes(n) } // appendDoublePackedSliceValue encodes a []float64 value as a packed repeated Double. func appendDoublePackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { return b, nil } b = protowire.AppendVarint(b, wiretag) n := llen * protowire.SizeFixed64() b = protowire.AppendVarint(b, uint64(n)) for i := 0; i < llen; i++ { v := list.Get(i) b = protowire.AppendFixed64(b, math.Float64bits(v.Float())) } return b, nil } var coderDoublePackedSliceValue = valueCoderFuncs{ size: sizeDoublePackedSliceValue, marshal: appendDoublePackedSliceValue, unmarshal: consumeDoubleSliceValue, merge: mergeListValue, } // sizeString returns the size of wire encoding a string pointer as a String. func sizeString(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.String() return f.tagsize + protowire.SizeBytes(len(v)) } // appendString wire encodes a string pointer as a String. func appendString(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.String() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendString(b, v) return b, nil } // consumeString wire decodes a string pointer as a String. func consumeString(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } *p.String() = string(v) out.n = n return out, nil } var coderString = pointerCoderFuncs{ size: sizeString, marshal: appendString, unmarshal: consumeString, merge: mergeString, } // appendStringValidateUTF8 wire encodes a string pointer as a String. func appendStringValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.String() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendString(b, v) if !utf8.ValidString(v) { return b, errInvalidUTF8{} } return b, nil } // consumeStringValidateUTF8 wire decodes a string pointer as a String. func consumeStringValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } if !utf8.Valid(v) { return out, errInvalidUTF8{} } *p.String() = string(v) out.n = n return out, nil } var coderStringValidateUTF8 = pointerCoderFuncs{ size: sizeString, marshal: appendStringValidateUTF8, unmarshal: consumeStringValidateUTF8, merge: mergeString, } // sizeStringNoZero returns the size of wire encoding a string pointer as a String. // The zero value is not encoded. func sizeStringNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.String() if len(v) == 0 { return 0 } return f.tagsize + protowire.SizeBytes(len(v)) } // appendStringNoZero wire encodes a string pointer as a String. // The zero value is not encoded. func appendStringNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.String() if len(v) == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendString(b, v) return b, nil } var coderStringNoZero = pointerCoderFuncs{ size: sizeStringNoZero, marshal: appendStringNoZero, unmarshal: consumeString, merge: mergeStringNoZero, } // appendStringNoZeroValidateUTF8 wire encodes a string pointer as a String. // The zero value is not encoded. func appendStringNoZeroValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.String() if len(v) == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendString(b, v) if !utf8.ValidString(v) { return b, errInvalidUTF8{} } return b, nil } var coderStringNoZeroValidateUTF8 = pointerCoderFuncs{ size: sizeStringNoZero, marshal: appendStringNoZeroValidateUTF8, unmarshal: consumeStringValidateUTF8, merge: mergeStringNoZero, } // sizeStringPtr returns the size of wire encoding a *string pointer as a String. // It panics if the pointer is nil. func sizeStringPtr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := **p.StringPtr() return f.tagsize + protowire.SizeBytes(len(v)) } // appendStringPtr wire encodes a *string pointer as a String. // It panics if the pointer is nil. func appendStringPtr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.StringPtr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendString(b, v) return b, nil } // consumeStringPtr wire decodes a *string pointer as a String. func consumeStringPtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } vp := p.StringPtr() if *vp == nil { *vp = new(string) } **vp = string(v) out.n = n return out, nil } var coderStringPtr = pointerCoderFuncs{ size: sizeStringPtr, marshal: appendStringPtr, unmarshal: consumeStringPtr, merge: mergeStringPtr, } // appendStringPtrValidateUTF8 wire encodes a *string pointer as a String. // It panics if the pointer is nil. func appendStringPtrValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.StringPtr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendString(b, v) if !utf8.ValidString(v) { return b, errInvalidUTF8{} } return b, nil } // consumeStringPtrValidateUTF8 wire decodes a *string pointer as a String. func consumeStringPtrValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } if !utf8.Valid(v) { return out, errInvalidUTF8{} } vp := p.StringPtr() if *vp == nil { *vp = new(string) } **vp = string(v) out.n = n return out, nil } var coderStringPtrValidateUTF8 = pointerCoderFuncs{ size: sizeStringPtr, marshal: appendStringPtrValidateUTF8, unmarshal: consumeStringPtrValidateUTF8, merge: mergeStringPtr, } // sizeStringSlice returns the size of wire encoding a []string pointer as a repeated String. func sizeStringSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.StringSlice() for _, v := range s { size += f.tagsize + protowire.SizeBytes(len(v)) } return size } // appendStringSlice encodes a []string pointer as a repeated String. func appendStringSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.StringSlice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendString(b, v) } return b, nil } // consumeStringSlice wire decodes a []string pointer as a repeated String. func consumeStringSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.StringSlice() if wtyp != protowire.BytesType { return out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } *sp = append(*sp, string(v)) out.n = n return out, nil } var coderStringSlice = pointerCoderFuncs{ size: sizeStringSlice, marshal: appendStringSlice, unmarshal: consumeStringSlice, merge: mergeStringSlice, } // appendStringSliceValidateUTF8 encodes a []string pointer as a repeated String. func appendStringSliceValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.StringSlice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendString(b, v) if !utf8.ValidString(v) { return b, errInvalidUTF8{} } } return b, nil } // consumeStringSliceValidateUTF8 wire decodes a []string pointer as a repeated String. func consumeStringSliceValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } if !utf8.Valid(v) { return out, errInvalidUTF8{} } sp := p.StringSlice() *sp = append(*sp, string(v)) out.n = n return out, nil } var coderStringSliceValidateUTF8 = pointerCoderFuncs{ size: sizeStringSlice, marshal: appendStringSliceValidateUTF8, unmarshal: consumeStringSliceValidateUTF8, merge: mergeStringSlice, } // sizeStringValue returns the size of wire encoding a string value as a String. func sizeStringValue(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeBytes(len(v.String())) } // appendStringValue encodes a string value as a String. func appendStringValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendString(b, v.String()) return b, nil } // consumeStringValue decodes a string value as a String. func consumeStringValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfString(string(v)), out, nil } var coderStringValue = valueCoderFuncs{ size: sizeStringValue, marshal: appendStringValue, unmarshal: consumeStringValue, merge: mergeScalarValue, } // appendStringValueValidateUTF8 encodes a string value as a String. func appendStringValueValidateUTF8(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendString(b, v.String()) if !utf8.ValidString(v.String()) { return b, errInvalidUTF8{} } return b, nil } // consumeStringValueValidateUTF8 decodes a string value as a String. func consumeStringValueValidateUTF8(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return protoreflect.Value{}, out, errDecode } if !utf8.Valid(v) { return protoreflect.Value{}, out, errInvalidUTF8{} } out.n = n return protoreflect.ValueOfString(string(v)), out, nil } var coderStringValueValidateUTF8 = valueCoderFuncs{ size: sizeStringValue, marshal: appendStringValueValidateUTF8, unmarshal: consumeStringValueValidateUTF8, merge: mergeScalarValue, } // sizeStringSliceValue returns the size of wire encoding a []string value as a repeated String. func sizeStringSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) size += tagsize + protowire.SizeBytes(len(v.String())) } return size } // appendStringSliceValue encodes a []string value as a repeated String. func appendStringSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, wiretag) b = protowire.AppendString(b, v.String()) } return b, nil } // consumeStringSliceValue wire decodes a []string value as a repeated String. func consumeStringSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp != protowire.BytesType { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfString(string(v))) out.n = n return listv, out, nil } var coderStringSliceValue = valueCoderFuncs{ size: sizeStringSliceValue, marshal: appendStringSliceValue, unmarshal: consumeStringSliceValue, merge: mergeListValue, } // sizeBytes returns the size of wire encoding a []byte pointer as a Bytes. func sizeBytes(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Bytes() return f.tagsize + protowire.SizeBytes(len(v)) } // appendBytes wire encodes a []byte pointer as a Bytes. func appendBytes(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Bytes() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendBytes(b, v) return b, nil } // consumeBytes wire decodes a []byte pointer as a Bytes. func consumeBytes(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } *p.Bytes() = append(emptyBuf[:], v...) out.n = n return out, nil } var coderBytes = pointerCoderFuncs{ size: sizeBytes, marshal: appendBytes, unmarshal: consumeBytes, merge: mergeBytes, } // appendBytesValidateUTF8 wire encodes a []byte pointer as a Bytes. func appendBytesValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Bytes() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendBytes(b, v) if !utf8.Valid(v) { return b, errInvalidUTF8{} } return b, nil } // consumeBytesValidateUTF8 wire decodes a []byte pointer as a Bytes. func consumeBytesValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } if !utf8.Valid(v) { return out, errInvalidUTF8{} } *p.Bytes() = append(emptyBuf[:], v...) out.n = n return out, nil } var coderBytesValidateUTF8 = pointerCoderFuncs{ size: sizeBytes, marshal: appendBytesValidateUTF8, unmarshal: consumeBytesValidateUTF8, merge: mergeBytes, } // sizeBytesNoZero returns the size of wire encoding a []byte pointer as a Bytes. // The zero value is not encoded. func sizeBytesNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Bytes() if len(v) == 0 { return 0 } return f.tagsize + protowire.SizeBytes(len(v)) } // appendBytesNoZero wire encodes a []byte pointer as a Bytes. // The zero value is not encoded. func appendBytesNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Bytes() if len(v) == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendBytes(b, v) return b, nil } // consumeBytesNoZero wire decodes a []byte pointer as a Bytes. // The zero value is not decoded. func consumeBytesNoZero(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } *p.Bytes() = append(([]byte)(nil), v...) out.n = n return out, nil } var coderBytesNoZero = pointerCoderFuncs{ size: sizeBytesNoZero, marshal: appendBytesNoZero, unmarshal: consumeBytesNoZero, merge: mergeBytesNoZero, } // appendBytesNoZeroValidateUTF8 wire encodes a []byte pointer as a Bytes. // The zero value is not encoded. func appendBytesNoZeroValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Bytes() if len(v) == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendBytes(b, v) if !utf8.Valid(v) { return b, errInvalidUTF8{} } return b, nil } // consumeBytesNoZeroValidateUTF8 wire decodes a []byte pointer as a Bytes. func consumeBytesNoZeroValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } if !utf8.Valid(v) { return out, errInvalidUTF8{} } *p.Bytes() = append(([]byte)(nil), v...) out.n = n return out, nil } var coderBytesNoZeroValidateUTF8 = pointerCoderFuncs{ size: sizeBytesNoZero, marshal: appendBytesNoZeroValidateUTF8, unmarshal: consumeBytesNoZeroValidateUTF8, merge: mergeBytesNoZero, } // sizeBytesSlice returns the size of wire encoding a [][]byte pointer as a repeated Bytes. func sizeBytesSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.BytesSlice() for _, v := range s { size += f.tagsize + protowire.SizeBytes(len(v)) } return size } // appendBytesSlice encodes a [][]byte pointer as a repeated Bytes. func appendBytesSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.BytesSlice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendBytes(b, v) } return b, nil } // consumeBytesSlice wire decodes a [][]byte pointer as a repeated Bytes. func consumeBytesSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.BytesSlice() if wtyp != protowire.BytesType { return out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } *sp = append(*sp, append(emptyBuf[:], v...)) out.n = n return out, nil } var coderBytesSlice = pointerCoderFuncs{ size: sizeBytesSlice, marshal: appendBytesSlice, unmarshal: consumeBytesSlice, merge: mergeBytesSlice, } // appendBytesSliceValidateUTF8 encodes a [][]byte pointer as a repeated Bytes. func appendBytesSliceValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.BytesSlice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendBytes(b, v) if !utf8.Valid(v) { return b, errInvalidUTF8{} } } return b, nil } // consumeBytesSliceValidateUTF8 wire decodes a [][]byte pointer as a repeated Bytes. func consumeBytesSliceValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } if !utf8.Valid(v) { return out, errInvalidUTF8{} } sp := p.BytesSlice() *sp = append(*sp, append(emptyBuf[:], v...)) out.n = n return out, nil } var coderBytesSliceValidateUTF8 = pointerCoderFuncs{ size: sizeBytesSlice, marshal: appendBytesSliceValidateUTF8, unmarshal: consumeBytesSliceValidateUTF8, merge: mergeBytesSlice, } // sizeBytesValue returns the size of wire encoding a []byte value as a Bytes. func sizeBytesValue(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeBytes(len(v.Bytes())) } // appendBytesValue encodes a []byte value as a Bytes. func appendBytesValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendBytes(b, v.Bytes()) return b, nil } // consumeBytesValue decodes a []byte value as a Bytes. func consumeBytesValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfBytes(append(emptyBuf[:], v...)), out, nil } var coderBytesValue = valueCoderFuncs{ size: sizeBytesValue, marshal: appendBytesValue, unmarshal: consumeBytesValue, merge: mergeBytesValue, } // sizeBytesSliceValue returns the size of wire encoding a [][]byte value as a repeated Bytes. func sizeBytesSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) size += tagsize + protowire.SizeBytes(len(v.Bytes())) } return size } // appendBytesSliceValue encodes a [][]byte value as a repeated Bytes. func appendBytesSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) b = protowire.AppendVarint(b, wiretag) b = protowire.AppendBytes(b, v.Bytes()) } return b, nil } // consumeBytesSliceValue wire decodes a [][]byte value as a repeated Bytes. func consumeBytesSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp != protowire.BytesType { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfBytes(append(emptyBuf[:], v...))) out.n = n return listv, out, nil } var coderBytesSliceValue = valueCoderFuncs{ size: sizeBytesSliceValue, marshal: appendBytesSliceValue, unmarshal: consumeBytesSliceValue, merge: mergeBytesListValue, } // We append to an empty array rather than a nil []byte to get non-nil zero-length byte slices. var emptyBuf [0]byte var wireTypes = map[protoreflect.Kind]protowire.Type{ protoreflect.BoolKind: protowire.VarintType, protoreflect.EnumKind: protowire.VarintType, protoreflect.Int32Kind: protowire.VarintType, protoreflect.Sint32Kind: protowire.VarintType, protoreflect.Uint32Kind: protowire.VarintType, protoreflect.Int64Kind: protowire.VarintType, protoreflect.Sint64Kind: protowire.VarintType, protoreflect.Uint64Kind: protowire.VarintType, protoreflect.Sfixed32Kind: protowire.Fixed32Type, protoreflect.Fixed32Kind: protowire.Fixed32Type, protoreflect.FloatKind: protowire.Fixed32Type, protoreflect.Sfixed64Kind: protowire.Fixed64Type, protoreflect.Fixed64Kind: protowire.Fixed64Type, protoreflect.DoubleKind: protowire.Fixed64Type, protoreflect.StringKind: protowire.BytesType, protoreflect.BytesKind: protowire.BytesType, protoreflect.MessageKind: protowire.BytesType, protoreflect.GroupKind: protowire.StartGroupType, } golang-google-protobuf-1.27.1/internal/impl/codec_map.go000066400000000000000000000241641411250152500232020ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "reflect" "sort" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/genid" pref "google.golang.org/protobuf/reflect/protoreflect" ) type mapInfo struct { goType reflect.Type keyWiretag uint64 valWiretag uint64 keyFuncs valueCoderFuncs valFuncs valueCoderFuncs keyZero pref.Value keyKind pref.Kind conv *mapConverter } func encoderFuncsForMap(fd pref.FieldDescriptor, ft reflect.Type) (valueMessage *MessageInfo, funcs pointerCoderFuncs) { // TODO: Consider generating specialized map coders. keyField := fd.MapKey() valField := fd.MapValue() keyWiretag := protowire.EncodeTag(1, wireTypes[keyField.Kind()]) valWiretag := protowire.EncodeTag(2, wireTypes[valField.Kind()]) keyFuncs := encoderFuncsForValue(keyField) valFuncs := encoderFuncsForValue(valField) conv := newMapConverter(ft, fd) mapi := &mapInfo{ goType: ft, keyWiretag: keyWiretag, valWiretag: valWiretag, keyFuncs: keyFuncs, valFuncs: valFuncs, keyZero: keyField.Default(), keyKind: keyField.Kind(), conv: conv, } if valField.Kind() == pref.MessageKind { valueMessage = getMessageInfo(ft.Elem()) } funcs = pointerCoderFuncs{ size: func(p pointer, f *coderFieldInfo, opts marshalOptions) int { return sizeMap(p.AsValueOf(ft).Elem(), mapi, f, opts) }, marshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { return appendMap(b, p.AsValueOf(ft).Elem(), mapi, f, opts) }, unmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) { mp := p.AsValueOf(ft) if mp.Elem().IsNil() { mp.Elem().Set(reflect.MakeMap(mapi.goType)) } if f.mi == nil { return consumeMap(b, mp.Elem(), wtyp, mapi, f, opts) } else { return consumeMapOfMessage(b, mp.Elem(), wtyp, mapi, f, opts) } }, } switch valField.Kind() { case pref.MessageKind: funcs.merge = mergeMapOfMessage case pref.BytesKind: funcs.merge = mergeMapOfBytes default: funcs.merge = mergeMap } if valFuncs.isInit != nil { funcs.isInit = func(p pointer, f *coderFieldInfo) error { return isInitMap(p.AsValueOf(ft).Elem(), mapi, f) } } return valueMessage, funcs } const ( mapKeyTagSize = 1 // field 1, tag size 1. mapValTagSize = 1 // field 2, tag size 2. ) func sizeMap(mapv reflect.Value, mapi *mapInfo, f *coderFieldInfo, opts marshalOptions) int { if mapv.Len() == 0 { return 0 } n := 0 iter := mapRange(mapv) for iter.Next() { key := mapi.conv.keyConv.PBValueOf(iter.Key()).MapKey() keySize := mapi.keyFuncs.size(key.Value(), mapKeyTagSize, opts) var valSize int value := mapi.conv.valConv.PBValueOf(iter.Value()) if f.mi == nil { valSize = mapi.valFuncs.size(value, mapValTagSize, opts) } else { p := pointerOfValue(iter.Value()) valSize += mapValTagSize valSize += protowire.SizeBytes(f.mi.sizePointer(p, opts)) } n += f.tagsize + protowire.SizeBytes(keySize+valSize) } return n } func consumeMap(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi *mapInfo, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } b, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } var ( key = mapi.keyZero val = mapi.conv.valConv.New() ) for len(b) > 0 { num, wtyp, n := protowire.ConsumeTag(b) if n < 0 { return out, errDecode } if num > protowire.MaxValidNumber { return out, errDecode } b = b[n:] err := errUnknown switch num { case genid.MapEntry_Key_field_number: var v pref.Value var o unmarshalOutput v, o, err = mapi.keyFuncs.unmarshal(b, key, num, wtyp, opts) if err != nil { break } key = v n = o.n case genid.MapEntry_Value_field_number: var v pref.Value var o unmarshalOutput v, o, err = mapi.valFuncs.unmarshal(b, val, num, wtyp, opts) if err != nil { break } val = v n = o.n } if err == errUnknown { n = protowire.ConsumeFieldValue(num, wtyp, b) if n < 0 { return out, errDecode } } else if err != nil { return out, err } b = b[n:] } mapv.SetMapIndex(mapi.conv.keyConv.GoValueOf(key), mapi.conv.valConv.GoValueOf(val)) out.n = n return out, nil } func consumeMapOfMessage(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi *mapInfo, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } b, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } var ( key = mapi.keyZero val = reflect.New(f.mi.GoReflectType.Elem()) ) for len(b) > 0 { num, wtyp, n := protowire.ConsumeTag(b) if n < 0 { return out, errDecode } if num > protowire.MaxValidNumber { return out, errDecode } b = b[n:] err := errUnknown switch num { case 1: var v pref.Value var o unmarshalOutput v, o, err = mapi.keyFuncs.unmarshal(b, key, num, wtyp, opts) if err != nil { break } key = v n = o.n case 2: if wtyp != protowire.BytesType { break } var v []byte v, n = protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } var o unmarshalOutput o, err = f.mi.unmarshalPointer(v, pointerOfValue(val), 0, opts) if o.initialized { // Consider this map item initialized so long as we see // an initialized value. out.initialized = true } } if err == errUnknown { n = protowire.ConsumeFieldValue(num, wtyp, b) if n < 0 { return out, errDecode } } else if err != nil { return out, err } b = b[n:] } mapv.SetMapIndex(mapi.conv.keyConv.GoValueOf(key), val) out.n = n return out, nil } func appendMapItem(b []byte, keyrv, valrv reflect.Value, mapi *mapInfo, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { if f.mi == nil { key := mapi.conv.keyConv.PBValueOf(keyrv).MapKey() val := mapi.conv.valConv.PBValueOf(valrv) size := 0 size += mapi.keyFuncs.size(key.Value(), mapKeyTagSize, opts) size += mapi.valFuncs.size(val, mapValTagSize, opts) b = protowire.AppendVarint(b, uint64(size)) b, err := mapi.keyFuncs.marshal(b, key.Value(), mapi.keyWiretag, opts) if err != nil { return nil, err } return mapi.valFuncs.marshal(b, val, mapi.valWiretag, opts) } else { key := mapi.conv.keyConv.PBValueOf(keyrv).MapKey() val := pointerOfValue(valrv) valSize := f.mi.sizePointer(val, opts) size := 0 size += mapi.keyFuncs.size(key.Value(), mapKeyTagSize, opts) size += mapValTagSize + protowire.SizeBytes(valSize) b = protowire.AppendVarint(b, uint64(size)) b, err := mapi.keyFuncs.marshal(b, key.Value(), mapi.keyWiretag, opts) if err != nil { return nil, err } b = protowire.AppendVarint(b, mapi.valWiretag) b = protowire.AppendVarint(b, uint64(valSize)) return f.mi.marshalAppendPointer(b, val, opts) } } func appendMap(b []byte, mapv reflect.Value, mapi *mapInfo, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { if mapv.Len() == 0 { return b, nil } if opts.Deterministic() { return appendMapDeterministic(b, mapv, mapi, f, opts) } iter := mapRange(mapv) for iter.Next() { var err error b = protowire.AppendVarint(b, f.wiretag) b, err = appendMapItem(b, iter.Key(), iter.Value(), mapi, f, opts) if err != nil { return b, err } } return b, nil } func appendMapDeterministic(b []byte, mapv reflect.Value, mapi *mapInfo, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { keys := mapv.MapKeys() sort.Slice(keys, func(i, j int) bool { switch keys[i].Kind() { case reflect.Bool: return !keys[i].Bool() && keys[j].Bool() case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: return keys[i].Int() < keys[j].Int() case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: return keys[i].Uint() < keys[j].Uint() case reflect.Float32, reflect.Float64: return keys[i].Float() < keys[j].Float() case reflect.String: return keys[i].String() < keys[j].String() default: panic("invalid kind: " + keys[i].Kind().String()) } }) for _, key := range keys { var err error b = protowire.AppendVarint(b, f.wiretag) b, err = appendMapItem(b, key, mapv.MapIndex(key), mapi, f, opts) if err != nil { return b, err } } return b, nil } func isInitMap(mapv reflect.Value, mapi *mapInfo, f *coderFieldInfo) error { if mi := f.mi; mi != nil { mi.init() if !mi.needsInitCheck { return nil } iter := mapRange(mapv) for iter.Next() { val := pointerOfValue(iter.Value()) if err := mi.checkInitializedPointer(val); err != nil { return err } } } else { iter := mapRange(mapv) for iter.Next() { val := mapi.conv.valConv.PBValueOf(iter.Value()) if err := mapi.valFuncs.isInit(val); err != nil { return err } } } return nil } func mergeMap(dst, src pointer, f *coderFieldInfo, opts mergeOptions) { dstm := dst.AsValueOf(f.ft).Elem() srcm := src.AsValueOf(f.ft).Elem() if srcm.Len() == 0 { return } if dstm.IsNil() { dstm.Set(reflect.MakeMap(f.ft)) } iter := mapRange(srcm) for iter.Next() { dstm.SetMapIndex(iter.Key(), iter.Value()) } } func mergeMapOfBytes(dst, src pointer, f *coderFieldInfo, opts mergeOptions) { dstm := dst.AsValueOf(f.ft).Elem() srcm := src.AsValueOf(f.ft).Elem() if srcm.Len() == 0 { return } if dstm.IsNil() { dstm.Set(reflect.MakeMap(f.ft)) } iter := mapRange(srcm) for iter.Next() { dstm.SetMapIndex(iter.Key(), reflect.ValueOf(append(emptyBuf[:], iter.Value().Bytes()...))) } } func mergeMapOfMessage(dst, src pointer, f *coderFieldInfo, opts mergeOptions) { dstm := dst.AsValueOf(f.ft).Elem() srcm := src.AsValueOf(f.ft).Elem() if srcm.Len() == 0 { return } if dstm.IsNil() { dstm.Set(reflect.MakeMap(f.ft)) } iter := mapRange(srcm) for iter.Next() { val := reflect.New(f.ft.Elem().Elem()) if f.mi != nil { f.mi.mergePointer(pointerOfValue(val), pointerOfValue(iter.Value()), opts) } else { opts.Merge(asMessage(val), asMessage(iter.Value())) } dstm.SetMapIndex(iter.Key(), val) } } golang-google-protobuf-1.27.1/internal/impl/codec_map_go111.go000066400000000000000000000013201411250152500240770ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build !go1.12 package impl import "reflect" type mapIter struct { v reflect.Value keys []reflect.Value } // mapRange provides a less-efficient equivalent to // the Go 1.12 reflect.Value.MapRange method. func mapRange(v reflect.Value) *mapIter { return &mapIter{v: v} } func (i *mapIter) Next() bool { if i.keys == nil { i.keys = i.v.MapKeys() } else { i.keys = i.keys[1:] } return len(i.keys) > 0 } func (i *mapIter) Key() reflect.Value { return i.keys[0] } func (i *mapIter) Value() reflect.Value { return i.v.MapIndex(i.keys[0]) } golang-google-protobuf-1.27.1/internal/impl/codec_map_go112.go000066400000000000000000000004321411250152500241030ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build go1.12 package impl import "reflect" func mapRange(v reflect.Value) *reflect.MapIter { return v.MapRange() } golang-google-protobuf-1.27.1/internal/impl/codec_message.go000066400000000000000000000160571411250152500240530ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "fmt" "reflect" "sort" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/encoding/messageset" "google.golang.org/protobuf/internal/order" pref "google.golang.org/protobuf/reflect/protoreflect" piface "google.golang.org/protobuf/runtime/protoiface" ) // coderMessageInfo contains per-message information used by the fast-path functions. // This is a different type from MessageInfo to keep MessageInfo as general-purpose as // possible. type coderMessageInfo struct { methods piface.Methods orderedCoderFields []*coderFieldInfo denseCoderFields []*coderFieldInfo coderFields map[protowire.Number]*coderFieldInfo sizecacheOffset offset unknownOffset offset unknownPtrKind bool extensionOffset offset needsInitCheck bool isMessageSet bool numRequiredFields uint8 } type coderFieldInfo struct { funcs pointerCoderFuncs // fast-path per-field functions mi *MessageInfo // field's message ft reflect.Type validation validationInfo // information used by message validation num pref.FieldNumber // field number offset offset // struct field offset wiretag uint64 // field tag (number + wire type) tagsize int // size of the varint-encoded tag isPointer bool // true if IsNil may be called on the struct field isRequired bool // true if field is required } func (mi *MessageInfo) makeCoderMethods(t reflect.Type, si structInfo) { mi.sizecacheOffset = invalidOffset mi.unknownOffset = invalidOffset mi.extensionOffset = invalidOffset if si.sizecacheOffset.IsValid() && si.sizecacheType == sizecacheType { mi.sizecacheOffset = si.sizecacheOffset } if si.unknownOffset.IsValid() && (si.unknownType == unknownFieldsAType || si.unknownType == unknownFieldsBType) { mi.unknownOffset = si.unknownOffset mi.unknownPtrKind = si.unknownType.Kind() == reflect.Ptr } if si.extensionOffset.IsValid() && si.extensionType == extensionFieldsType { mi.extensionOffset = si.extensionOffset } mi.coderFields = make(map[protowire.Number]*coderFieldInfo) fields := mi.Desc.Fields() preallocFields := make([]coderFieldInfo, fields.Len()) for i := 0; i < fields.Len(); i++ { fd := fields.Get(i) fs := si.fieldsByNumber[fd.Number()] isOneof := fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic() if isOneof { fs = si.oneofsByName[fd.ContainingOneof().Name()] } ft := fs.Type var wiretag uint64 if !fd.IsPacked() { wiretag = protowire.EncodeTag(fd.Number(), wireTypes[fd.Kind()]) } else { wiretag = protowire.EncodeTag(fd.Number(), protowire.BytesType) } var fieldOffset offset var funcs pointerCoderFuncs var childMessage *MessageInfo switch { case ft == nil: // This never occurs for generated message types. // It implies that a hand-crafted type has missing Go fields // for specific protobuf message fields. funcs = pointerCoderFuncs{ size: func(p pointer, f *coderFieldInfo, opts marshalOptions) int { return 0 }, marshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { return nil, nil }, unmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) { panic("missing Go struct field for " + string(fd.FullName())) }, isInit: func(p pointer, f *coderFieldInfo) error { panic("missing Go struct field for " + string(fd.FullName())) }, merge: func(dst, src pointer, f *coderFieldInfo, opts mergeOptions) { panic("missing Go struct field for " + string(fd.FullName())) }, } case isOneof: fieldOffset = offsetOf(fs, mi.Exporter) case fd.IsWeak(): fieldOffset = si.weakOffset funcs = makeWeakMessageFieldCoder(fd) default: fieldOffset = offsetOf(fs, mi.Exporter) childMessage, funcs = fieldCoder(fd, ft) } cf := &preallocFields[i] *cf = coderFieldInfo{ num: fd.Number(), offset: fieldOffset, wiretag: wiretag, ft: ft, tagsize: protowire.SizeVarint(wiretag), funcs: funcs, mi: childMessage, validation: newFieldValidationInfo(mi, si, fd, ft), isPointer: fd.Cardinality() == pref.Repeated || fd.HasPresence(), isRequired: fd.Cardinality() == pref.Required, } mi.orderedCoderFields = append(mi.orderedCoderFields, cf) mi.coderFields[cf.num] = cf } for i, oneofs := 0, mi.Desc.Oneofs(); i < oneofs.Len(); i++ { if od := oneofs.Get(i); !od.IsSynthetic() { mi.initOneofFieldCoders(od, si) } } if messageset.IsMessageSet(mi.Desc) { if !mi.extensionOffset.IsValid() { panic(fmt.Sprintf("%v: MessageSet with no extensions field", mi.Desc.FullName())) } if !mi.unknownOffset.IsValid() { panic(fmt.Sprintf("%v: MessageSet with no unknown field", mi.Desc.FullName())) } mi.isMessageSet = true } sort.Slice(mi.orderedCoderFields, func(i, j int) bool { return mi.orderedCoderFields[i].num < mi.orderedCoderFields[j].num }) var maxDense pref.FieldNumber for _, cf := range mi.orderedCoderFields { if cf.num >= 16 && cf.num >= 2*maxDense { break } maxDense = cf.num } mi.denseCoderFields = make([]*coderFieldInfo, maxDense+1) for _, cf := range mi.orderedCoderFields { if int(cf.num) >= len(mi.denseCoderFields) { break } mi.denseCoderFields[cf.num] = cf } // To preserve compatibility with historic wire output, marshal oneofs last. if mi.Desc.Oneofs().Len() > 0 { sort.Slice(mi.orderedCoderFields, func(i, j int) bool { fi := fields.ByNumber(mi.orderedCoderFields[i].num) fj := fields.ByNumber(mi.orderedCoderFields[j].num) return order.LegacyFieldOrder(fi, fj) }) } mi.needsInitCheck = needsInitCheck(mi.Desc) if mi.methods.Marshal == nil && mi.methods.Size == nil { mi.methods.Flags |= piface.SupportMarshalDeterministic mi.methods.Marshal = mi.marshal mi.methods.Size = mi.size } if mi.methods.Unmarshal == nil { mi.methods.Flags |= piface.SupportUnmarshalDiscardUnknown mi.methods.Unmarshal = mi.unmarshal } if mi.methods.CheckInitialized == nil { mi.methods.CheckInitialized = mi.checkInitialized } if mi.methods.Merge == nil { mi.methods.Merge = mi.merge } } // getUnknownBytes returns a *[]byte for the unknown fields. // It is the caller's responsibility to check whether the pointer is nil. // This function is specially designed to be inlineable. func (mi *MessageInfo) getUnknownBytes(p pointer) *[]byte { if mi.unknownPtrKind { return *p.Apply(mi.unknownOffset).BytesPtr() } else { return p.Apply(mi.unknownOffset).Bytes() } } // mutableUnknownBytes returns a *[]byte for the unknown fields. // The returned pointer is guaranteed to not be nil. func (mi *MessageInfo) mutableUnknownBytes(p pointer) *[]byte { if mi.unknownPtrKind { bp := p.Apply(mi.unknownOffset).BytesPtr() if *bp == nil { *bp = new([]byte) } return *bp } else { return p.Apply(mi.unknownOffset).Bytes() } } golang-google-protobuf-1.27.1/internal/impl/codec_messageset.go000066400000000000000000000062341411250152500245630ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "sort" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/encoding/messageset" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/flags" ) func sizeMessageSet(mi *MessageInfo, p pointer, opts marshalOptions) (size int) { if !flags.ProtoLegacy { return 0 } ext := *p.Apply(mi.extensionOffset).Extensions() for _, x := range ext { xi := getExtensionFieldInfo(x.Type()) if xi.funcs.size == nil { continue } num, _ := protowire.DecodeTag(xi.wiretag) size += messageset.SizeField(num) size += xi.funcs.size(x.Value(), protowire.SizeTag(messageset.FieldMessage), opts) } if u := mi.getUnknownBytes(p); u != nil { size += messageset.SizeUnknown(*u) } return size } func marshalMessageSet(mi *MessageInfo, b []byte, p pointer, opts marshalOptions) ([]byte, error) { if !flags.ProtoLegacy { return b, errors.New("no support for message_set_wire_format") } ext := *p.Apply(mi.extensionOffset).Extensions() switch len(ext) { case 0: case 1: // Fast-path for one extension: Don't bother sorting the keys. for _, x := range ext { var err error b, err = marshalMessageSetField(mi, b, x, opts) if err != nil { return b, err } } default: // Sort the keys to provide a deterministic encoding. // Not sure this is required, but the old code does it. keys := make([]int, 0, len(ext)) for k := range ext { keys = append(keys, int(k)) } sort.Ints(keys) for _, k := range keys { var err error b, err = marshalMessageSetField(mi, b, ext[int32(k)], opts) if err != nil { return b, err } } } if u := mi.getUnknownBytes(p); u != nil { var err error b, err = messageset.AppendUnknown(b, *u) if err != nil { return b, err } } return b, nil } func marshalMessageSetField(mi *MessageInfo, b []byte, x ExtensionField, opts marshalOptions) ([]byte, error) { xi := getExtensionFieldInfo(x.Type()) num, _ := protowire.DecodeTag(xi.wiretag) b = messageset.AppendFieldStart(b, num) b, err := xi.funcs.marshal(b, x.Value(), protowire.EncodeTag(messageset.FieldMessage, protowire.BytesType), opts) if err != nil { return b, err } b = messageset.AppendFieldEnd(b) return b, nil } func unmarshalMessageSet(mi *MessageInfo, b []byte, p pointer, opts unmarshalOptions) (out unmarshalOutput, err error) { if !flags.ProtoLegacy { return out, errors.New("no support for message_set_wire_format") } ep := p.Apply(mi.extensionOffset).Extensions() if *ep == nil { *ep = make(map[int32]ExtensionField) } ext := *ep initialized := true err = messageset.Unmarshal(b, true, func(num protowire.Number, v []byte) error { o, err := mi.unmarshalExtension(v, num, protowire.BytesType, ext, opts) if err == errUnknown { u := mi.mutableUnknownBytes(p) *u = protowire.AppendTag(*u, num, protowire.BytesType) *u = append(*u, v...) return nil } if !o.initialized { initialized = false } return err }) out.n = len(b) out.initialized = initialized return out, err } golang-google-protobuf-1.27.1/internal/impl/codec_reflect.go000066400000000000000000000124051411250152500240440ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build purego appengine package impl import ( "reflect" "google.golang.org/protobuf/encoding/protowire" ) func sizeEnum(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { v := p.v.Elem().Int() return f.tagsize + protowire.SizeVarint(uint64(v)) } func appendEnum(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := p.v.Elem().Int() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, uint64(v)) return b, nil } func consumeEnum(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } v, n := protowire.ConsumeVarint(b) if n < 0 { return out, errDecode } p.v.Elem().SetInt(int64(v)) out.n = n return out, nil } func mergeEnum(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { dst.v.Elem().Set(src.v.Elem()) } var coderEnum = pointerCoderFuncs{ size: sizeEnum, marshal: appendEnum, unmarshal: consumeEnum, merge: mergeEnum, } func sizeEnumNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { if p.v.Elem().Int() == 0 { return 0 } return sizeEnum(p, f, opts) } func appendEnumNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { if p.v.Elem().Int() == 0 { return b, nil } return appendEnum(b, p, f, opts) } func mergeEnumNoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { if src.v.Elem().Int() != 0 { dst.v.Elem().Set(src.v.Elem()) } } var coderEnumNoZero = pointerCoderFuncs{ size: sizeEnumNoZero, marshal: appendEnumNoZero, unmarshal: consumeEnum, merge: mergeEnumNoZero, } func sizeEnumPtr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return sizeEnum(pointer{p.v.Elem()}, f, opts) } func appendEnumPtr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { return appendEnum(b, pointer{p.v.Elem()}, f, opts) } func consumeEnumPtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } if p.v.Elem().IsNil() { p.v.Elem().Set(reflect.New(p.v.Elem().Type().Elem())) } return consumeEnum(b, pointer{p.v.Elem()}, wtyp, f, opts) } func mergeEnumPtr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { if !src.v.Elem().IsNil() { v := reflect.New(dst.v.Type().Elem().Elem()) v.Elem().Set(src.v.Elem().Elem()) dst.v.Elem().Set(v) } } var coderEnumPtr = pointerCoderFuncs{ size: sizeEnumPtr, marshal: appendEnumPtr, unmarshal: consumeEnumPtr, merge: mergeEnumPtr, } func sizeEnumSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := p.v.Elem() for i, llen := 0, s.Len(); i < llen; i++ { size += protowire.SizeVarint(uint64(s.Index(i).Int())) + f.tagsize } return size } func appendEnumSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := p.v.Elem() for i, llen := 0, s.Len(); i < llen; i++ { b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, uint64(s.Index(i).Int())) } return b, nil } func consumeEnumSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { s := p.v.Elem() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { return out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeVarint(b) if n < 0 { return out, errDecode } rv := reflect.New(s.Type().Elem()).Elem() rv.SetInt(int64(v)) s.Set(reflect.Append(s, rv)) b = b[n:] } out.n = n return out, nil } if wtyp != protowire.VarintType { return out, errUnknown } v, n := protowire.ConsumeVarint(b) if n < 0 { return out, errDecode } rv := reflect.New(s.Type().Elem()).Elem() rv.SetInt(int64(v)) s.Set(reflect.Append(s, rv)) out.n = n return out, nil } func mergeEnumSlice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { dst.v.Elem().Set(reflect.AppendSlice(dst.v.Elem(), src.v.Elem())) } var coderEnumSlice = pointerCoderFuncs{ size: sizeEnumSlice, marshal: appendEnumSlice, unmarshal: consumeEnumSlice, merge: mergeEnumSlice, } func sizeEnumPackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := p.v.Elem() llen := s.Len() if llen == 0 { return 0 } n := 0 for i := 0; i < llen; i++ { n += protowire.SizeVarint(uint64(s.Index(i).Int())) } return f.tagsize + protowire.SizeBytes(n) } func appendEnumPackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := p.v.Elem() llen := s.Len() if llen == 0 { return b, nil } b = protowire.AppendVarint(b, f.wiretag) n := 0 for i := 0; i < llen; i++ { n += protowire.SizeVarint(uint64(s.Index(i).Int())) } b = protowire.AppendVarint(b, uint64(n)) for i := 0; i < llen; i++ { b = protowire.AppendVarint(b, uint64(s.Index(i).Int())) } return b, nil } var coderEnumPackedSlice = pointerCoderFuncs{ size: sizeEnumPackedSlice, marshal: appendEnumPackedSlice, unmarshal: consumeEnumSlice, merge: mergeEnumSlice, } golang-google-protobuf-1.27.1/internal/impl/codec_tables.go000066400000000000000000000363371411250152500237040ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "fmt" "reflect" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/strs" pref "google.golang.org/protobuf/reflect/protoreflect" ) // pointerCoderFuncs is a set of pointer encoding functions. type pointerCoderFuncs struct { mi *MessageInfo size func(p pointer, f *coderFieldInfo, opts marshalOptions) int marshal func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) unmarshal func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) isInit func(p pointer, f *coderFieldInfo) error merge func(dst, src pointer, f *coderFieldInfo, opts mergeOptions) } // valueCoderFuncs is a set of protoreflect.Value encoding functions. type valueCoderFuncs struct { size func(v pref.Value, tagsize int, opts marshalOptions) int marshal func(b []byte, v pref.Value, wiretag uint64, opts marshalOptions) ([]byte, error) unmarshal func(b []byte, v pref.Value, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (pref.Value, unmarshalOutput, error) isInit func(v pref.Value) error merge func(dst, src pref.Value, opts mergeOptions) pref.Value } // fieldCoder returns pointer functions for a field, used for operating on // struct fields. func fieldCoder(fd pref.FieldDescriptor, ft reflect.Type) (*MessageInfo, pointerCoderFuncs) { switch { case fd.IsMap(): return encoderFuncsForMap(fd, ft) case fd.Cardinality() == pref.Repeated && !fd.IsPacked(): // Repeated fields (not packed). if ft.Kind() != reflect.Slice { break } ft := ft.Elem() switch fd.Kind() { case pref.BoolKind: if ft.Kind() == reflect.Bool { return nil, coderBoolSlice } case pref.EnumKind: if ft.Kind() == reflect.Int32 { return nil, coderEnumSlice } case pref.Int32Kind: if ft.Kind() == reflect.Int32 { return nil, coderInt32Slice } case pref.Sint32Kind: if ft.Kind() == reflect.Int32 { return nil, coderSint32Slice } case pref.Uint32Kind: if ft.Kind() == reflect.Uint32 { return nil, coderUint32Slice } case pref.Int64Kind: if ft.Kind() == reflect.Int64 { return nil, coderInt64Slice } case pref.Sint64Kind: if ft.Kind() == reflect.Int64 { return nil, coderSint64Slice } case pref.Uint64Kind: if ft.Kind() == reflect.Uint64 { return nil, coderUint64Slice } case pref.Sfixed32Kind: if ft.Kind() == reflect.Int32 { return nil, coderSfixed32Slice } case pref.Fixed32Kind: if ft.Kind() == reflect.Uint32 { return nil, coderFixed32Slice } case pref.FloatKind: if ft.Kind() == reflect.Float32 { return nil, coderFloatSlice } case pref.Sfixed64Kind: if ft.Kind() == reflect.Int64 { return nil, coderSfixed64Slice } case pref.Fixed64Kind: if ft.Kind() == reflect.Uint64 { return nil, coderFixed64Slice } case pref.DoubleKind: if ft.Kind() == reflect.Float64 { return nil, coderDoubleSlice } case pref.StringKind: if ft.Kind() == reflect.String && strs.EnforceUTF8(fd) { return nil, coderStringSliceValidateUTF8 } if ft.Kind() == reflect.String { return nil, coderStringSlice } if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 && strs.EnforceUTF8(fd) { return nil, coderBytesSliceValidateUTF8 } if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 { return nil, coderBytesSlice } case pref.BytesKind: if ft.Kind() == reflect.String { return nil, coderStringSlice } if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 { return nil, coderBytesSlice } case pref.MessageKind: return getMessageInfo(ft), makeMessageSliceFieldCoder(fd, ft) case pref.GroupKind: return getMessageInfo(ft), makeGroupSliceFieldCoder(fd, ft) } case fd.Cardinality() == pref.Repeated && fd.IsPacked(): // Packed repeated fields. // // Only repeated fields of primitive numeric types // (Varint, Fixed32, or Fixed64 wire type) can be packed. if ft.Kind() != reflect.Slice { break } ft := ft.Elem() switch fd.Kind() { case pref.BoolKind: if ft.Kind() == reflect.Bool { return nil, coderBoolPackedSlice } case pref.EnumKind: if ft.Kind() == reflect.Int32 { return nil, coderEnumPackedSlice } case pref.Int32Kind: if ft.Kind() == reflect.Int32 { return nil, coderInt32PackedSlice } case pref.Sint32Kind: if ft.Kind() == reflect.Int32 { return nil, coderSint32PackedSlice } case pref.Uint32Kind: if ft.Kind() == reflect.Uint32 { return nil, coderUint32PackedSlice } case pref.Int64Kind: if ft.Kind() == reflect.Int64 { return nil, coderInt64PackedSlice } case pref.Sint64Kind: if ft.Kind() == reflect.Int64 { return nil, coderSint64PackedSlice } case pref.Uint64Kind: if ft.Kind() == reflect.Uint64 { return nil, coderUint64PackedSlice } case pref.Sfixed32Kind: if ft.Kind() == reflect.Int32 { return nil, coderSfixed32PackedSlice } case pref.Fixed32Kind: if ft.Kind() == reflect.Uint32 { return nil, coderFixed32PackedSlice } case pref.FloatKind: if ft.Kind() == reflect.Float32 { return nil, coderFloatPackedSlice } case pref.Sfixed64Kind: if ft.Kind() == reflect.Int64 { return nil, coderSfixed64PackedSlice } case pref.Fixed64Kind: if ft.Kind() == reflect.Uint64 { return nil, coderFixed64PackedSlice } case pref.DoubleKind: if ft.Kind() == reflect.Float64 { return nil, coderDoublePackedSlice } } case fd.Kind() == pref.MessageKind: return getMessageInfo(ft), makeMessageFieldCoder(fd, ft) case fd.Kind() == pref.GroupKind: return getMessageInfo(ft), makeGroupFieldCoder(fd, ft) case fd.Syntax() == pref.Proto3 && fd.ContainingOneof() == nil: // Populated oneof fields always encode even if set to the zero value, // which normally are not encoded in proto3. switch fd.Kind() { case pref.BoolKind: if ft.Kind() == reflect.Bool { return nil, coderBoolNoZero } case pref.EnumKind: if ft.Kind() == reflect.Int32 { return nil, coderEnumNoZero } case pref.Int32Kind: if ft.Kind() == reflect.Int32 { return nil, coderInt32NoZero } case pref.Sint32Kind: if ft.Kind() == reflect.Int32 { return nil, coderSint32NoZero } case pref.Uint32Kind: if ft.Kind() == reflect.Uint32 { return nil, coderUint32NoZero } case pref.Int64Kind: if ft.Kind() == reflect.Int64 { return nil, coderInt64NoZero } case pref.Sint64Kind: if ft.Kind() == reflect.Int64 { return nil, coderSint64NoZero } case pref.Uint64Kind: if ft.Kind() == reflect.Uint64 { return nil, coderUint64NoZero } case pref.Sfixed32Kind: if ft.Kind() == reflect.Int32 { return nil, coderSfixed32NoZero } case pref.Fixed32Kind: if ft.Kind() == reflect.Uint32 { return nil, coderFixed32NoZero } case pref.FloatKind: if ft.Kind() == reflect.Float32 { return nil, coderFloatNoZero } case pref.Sfixed64Kind: if ft.Kind() == reflect.Int64 { return nil, coderSfixed64NoZero } case pref.Fixed64Kind: if ft.Kind() == reflect.Uint64 { return nil, coderFixed64NoZero } case pref.DoubleKind: if ft.Kind() == reflect.Float64 { return nil, coderDoubleNoZero } case pref.StringKind: if ft.Kind() == reflect.String && strs.EnforceUTF8(fd) { return nil, coderStringNoZeroValidateUTF8 } if ft.Kind() == reflect.String { return nil, coderStringNoZero } if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 && strs.EnforceUTF8(fd) { return nil, coderBytesNoZeroValidateUTF8 } if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 { return nil, coderBytesNoZero } case pref.BytesKind: if ft.Kind() == reflect.String { return nil, coderStringNoZero } if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 { return nil, coderBytesNoZero } } case ft.Kind() == reflect.Ptr: ft := ft.Elem() switch fd.Kind() { case pref.BoolKind: if ft.Kind() == reflect.Bool { return nil, coderBoolPtr } case pref.EnumKind: if ft.Kind() == reflect.Int32 { return nil, coderEnumPtr } case pref.Int32Kind: if ft.Kind() == reflect.Int32 { return nil, coderInt32Ptr } case pref.Sint32Kind: if ft.Kind() == reflect.Int32 { return nil, coderSint32Ptr } case pref.Uint32Kind: if ft.Kind() == reflect.Uint32 { return nil, coderUint32Ptr } case pref.Int64Kind: if ft.Kind() == reflect.Int64 { return nil, coderInt64Ptr } case pref.Sint64Kind: if ft.Kind() == reflect.Int64 { return nil, coderSint64Ptr } case pref.Uint64Kind: if ft.Kind() == reflect.Uint64 { return nil, coderUint64Ptr } case pref.Sfixed32Kind: if ft.Kind() == reflect.Int32 { return nil, coderSfixed32Ptr } case pref.Fixed32Kind: if ft.Kind() == reflect.Uint32 { return nil, coderFixed32Ptr } case pref.FloatKind: if ft.Kind() == reflect.Float32 { return nil, coderFloatPtr } case pref.Sfixed64Kind: if ft.Kind() == reflect.Int64 { return nil, coderSfixed64Ptr } case pref.Fixed64Kind: if ft.Kind() == reflect.Uint64 { return nil, coderFixed64Ptr } case pref.DoubleKind: if ft.Kind() == reflect.Float64 { return nil, coderDoublePtr } case pref.StringKind: if ft.Kind() == reflect.String && strs.EnforceUTF8(fd) { return nil, coderStringPtrValidateUTF8 } if ft.Kind() == reflect.String { return nil, coderStringPtr } case pref.BytesKind: if ft.Kind() == reflect.String { return nil, coderStringPtr } } default: switch fd.Kind() { case pref.BoolKind: if ft.Kind() == reflect.Bool { return nil, coderBool } case pref.EnumKind: if ft.Kind() == reflect.Int32 { return nil, coderEnum } case pref.Int32Kind: if ft.Kind() == reflect.Int32 { return nil, coderInt32 } case pref.Sint32Kind: if ft.Kind() == reflect.Int32 { return nil, coderSint32 } case pref.Uint32Kind: if ft.Kind() == reflect.Uint32 { return nil, coderUint32 } case pref.Int64Kind: if ft.Kind() == reflect.Int64 { return nil, coderInt64 } case pref.Sint64Kind: if ft.Kind() == reflect.Int64 { return nil, coderSint64 } case pref.Uint64Kind: if ft.Kind() == reflect.Uint64 { return nil, coderUint64 } case pref.Sfixed32Kind: if ft.Kind() == reflect.Int32 { return nil, coderSfixed32 } case pref.Fixed32Kind: if ft.Kind() == reflect.Uint32 { return nil, coderFixed32 } case pref.FloatKind: if ft.Kind() == reflect.Float32 { return nil, coderFloat } case pref.Sfixed64Kind: if ft.Kind() == reflect.Int64 { return nil, coderSfixed64 } case pref.Fixed64Kind: if ft.Kind() == reflect.Uint64 { return nil, coderFixed64 } case pref.DoubleKind: if ft.Kind() == reflect.Float64 { return nil, coderDouble } case pref.StringKind: if ft.Kind() == reflect.String && strs.EnforceUTF8(fd) { return nil, coderStringValidateUTF8 } if ft.Kind() == reflect.String { return nil, coderString } if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 && strs.EnforceUTF8(fd) { return nil, coderBytesValidateUTF8 } if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 { return nil, coderBytes } case pref.BytesKind: if ft.Kind() == reflect.String { return nil, coderString } if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 { return nil, coderBytes } } } panic(fmt.Sprintf("invalid type: no encoder for %v %v %v/%v", fd.FullName(), fd.Cardinality(), fd.Kind(), ft)) } // encoderFuncsForValue returns value functions for a field, used for // extension values and map encoding. func encoderFuncsForValue(fd pref.FieldDescriptor) valueCoderFuncs { switch { case fd.Cardinality() == pref.Repeated && !fd.IsPacked(): switch fd.Kind() { case pref.BoolKind: return coderBoolSliceValue case pref.EnumKind: return coderEnumSliceValue case pref.Int32Kind: return coderInt32SliceValue case pref.Sint32Kind: return coderSint32SliceValue case pref.Uint32Kind: return coderUint32SliceValue case pref.Int64Kind: return coderInt64SliceValue case pref.Sint64Kind: return coderSint64SliceValue case pref.Uint64Kind: return coderUint64SliceValue case pref.Sfixed32Kind: return coderSfixed32SliceValue case pref.Fixed32Kind: return coderFixed32SliceValue case pref.FloatKind: return coderFloatSliceValue case pref.Sfixed64Kind: return coderSfixed64SliceValue case pref.Fixed64Kind: return coderFixed64SliceValue case pref.DoubleKind: return coderDoubleSliceValue case pref.StringKind: // We don't have a UTF-8 validating coder for repeated string fields. // Value coders are used for extensions and maps. // Extensions are never proto3, and maps never contain lists. return coderStringSliceValue case pref.BytesKind: return coderBytesSliceValue case pref.MessageKind: return coderMessageSliceValue case pref.GroupKind: return coderGroupSliceValue } case fd.Cardinality() == pref.Repeated && fd.IsPacked(): switch fd.Kind() { case pref.BoolKind: return coderBoolPackedSliceValue case pref.EnumKind: return coderEnumPackedSliceValue case pref.Int32Kind: return coderInt32PackedSliceValue case pref.Sint32Kind: return coderSint32PackedSliceValue case pref.Uint32Kind: return coderUint32PackedSliceValue case pref.Int64Kind: return coderInt64PackedSliceValue case pref.Sint64Kind: return coderSint64PackedSliceValue case pref.Uint64Kind: return coderUint64PackedSliceValue case pref.Sfixed32Kind: return coderSfixed32PackedSliceValue case pref.Fixed32Kind: return coderFixed32PackedSliceValue case pref.FloatKind: return coderFloatPackedSliceValue case pref.Sfixed64Kind: return coderSfixed64PackedSliceValue case pref.Fixed64Kind: return coderFixed64PackedSliceValue case pref.DoubleKind: return coderDoublePackedSliceValue } default: switch fd.Kind() { default: case pref.BoolKind: return coderBoolValue case pref.EnumKind: return coderEnumValue case pref.Int32Kind: return coderInt32Value case pref.Sint32Kind: return coderSint32Value case pref.Uint32Kind: return coderUint32Value case pref.Int64Kind: return coderInt64Value case pref.Sint64Kind: return coderSint64Value case pref.Uint64Kind: return coderUint64Value case pref.Sfixed32Kind: return coderSfixed32Value case pref.Fixed32Kind: return coderFixed32Value case pref.FloatKind: return coderFloatValue case pref.Sfixed64Kind: return coderSfixed64Value case pref.Fixed64Kind: return coderFixed64Value case pref.DoubleKind: return coderDoubleValue case pref.StringKind: if strs.EnforceUTF8(fd) { return coderStringValueValidateUTF8 } return coderStringValue case pref.BytesKind: return coderBytesValue case pref.MessageKind: return coderMessageValue case pref.GroupKind: return coderGroupValue } } panic(fmt.Sprintf("invalid field: no encoder for %v %v %v", fd.FullName(), fd.Cardinality(), fd.Kind())) } golang-google-protobuf-1.27.1/internal/impl/codec_unsafe.go000066400000000000000000000007451411250152500237050ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build !purego,!appengine package impl // When using unsafe pointers, we can just treat enum values as int32s. var ( coderEnumNoZero = coderInt32NoZero coderEnum = coderInt32 coderEnumPtr = coderInt32Ptr coderEnumSlice = coderInt32Slice coderEnumPackedSlice = coderInt32PackedSlice ) golang-google-protobuf-1.27.1/internal/impl/convert.go000066400000000000000000000352011411250152500227420ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "fmt" "reflect" pref "google.golang.org/protobuf/reflect/protoreflect" ) // unwrapper unwraps the value to the underlying value. // This is implemented by List and Map. type unwrapper interface { protoUnwrap() interface{} } // A Converter coverts to/from Go reflect.Value types and protobuf protoreflect.Value types. type Converter interface { // PBValueOf converts a reflect.Value to a protoreflect.Value. PBValueOf(reflect.Value) pref.Value // GoValueOf converts a protoreflect.Value to a reflect.Value. GoValueOf(pref.Value) reflect.Value // IsValidPB returns whether a protoreflect.Value is compatible with this type. IsValidPB(pref.Value) bool // IsValidGo returns whether a reflect.Value is compatible with this type. IsValidGo(reflect.Value) bool // New returns a new field value. // For scalars, it returns the default value of the field. // For composite types, it returns a new mutable value. New() pref.Value // Zero returns a new field value. // For scalars, it returns the default value of the field. // For composite types, it returns an immutable, empty value. Zero() pref.Value } // NewConverter matches a Go type with a protobuf field and returns a Converter // that converts between the two. Enums must be a named int32 kind that // implements protoreflect.Enum, and messages must be pointer to a named // struct type that implements protoreflect.ProtoMessage. // // This matcher deliberately supports a wider range of Go types than what // protoc-gen-go historically generated to be able to automatically wrap some // v1 messages generated by other forks of protoc-gen-go. func NewConverter(t reflect.Type, fd pref.FieldDescriptor) Converter { switch { case fd.IsList(): return newListConverter(t, fd) case fd.IsMap(): return newMapConverter(t, fd) default: return newSingularConverter(t, fd) } panic(fmt.Sprintf("invalid Go type %v for field %v", t, fd.FullName())) } var ( boolType = reflect.TypeOf(bool(false)) int32Type = reflect.TypeOf(int32(0)) int64Type = reflect.TypeOf(int64(0)) uint32Type = reflect.TypeOf(uint32(0)) uint64Type = reflect.TypeOf(uint64(0)) float32Type = reflect.TypeOf(float32(0)) float64Type = reflect.TypeOf(float64(0)) stringType = reflect.TypeOf(string("")) bytesType = reflect.TypeOf([]byte(nil)) byteType = reflect.TypeOf(byte(0)) ) var ( boolZero = pref.ValueOfBool(false) int32Zero = pref.ValueOfInt32(0) int64Zero = pref.ValueOfInt64(0) uint32Zero = pref.ValueOfUint32(0) uint64Zero = pref.ValueOfUint64(0) float32Zero = pref.ValueOfFloat32(0) float64Zero = pref.ValueOfFloat64(0) stringZero = pref.ValueOfString("") bytesZero = pref.ValueOfBytes(nil) ) func newSingularConverter(t reflect.Type, fd pref.FieldDescriptor) Converter { defVal := func(fd pref.FieldDescriptor, zero pref.Value) pref.Value { if fd.Cardinality() == pref.Repeated { // Default isn't defined for repeated fields. return zero } return fd.Default() } switch fd.Kind() { case pref.BoolKind: if t.Kind() == reflect.Bool { return &boolConverter{t, defVal(fd, boolZero)} } case pref.Int32Kind, pref.Sint32Kind, pref.Sfixed32Kind: if t.Kind() == reflect.Int32 { return &int32Converter{t, defVal(fd, int32Zero)} } case pref.Int64Kind, pref.Sint64Kind, pref.Sfixed64Kind: if t.Kind() == reflect.Int64 { return &int64Converter{t, defVal(fd, int64Zero)} } case pref.Uint32Kind, pref.Fixed32Kind: if t.Kind() == reflect.Uint32 { return &uint32Converter{t, defVal(fd, uint32Zero)} } case pref.Uint64Kind, pref.Fixed64Kind: if t.Kind() == reflect.Uint64 { return &uint64Converter{t, defVal(fd, uint64Zero)} } case pref.FloatKind: if t.Kind() == reflect.Float32 { return &float32Converter{t, defVal(fd, float32Zero)} } case pref.DoubleKind: if t.Kind() == reflect.Float64 { return &float64Converter{t, defVal(fd, float64Zero)} } case pref.StringKind: if t.Kind() == reflect.String || (t.Kind() == reflect.Slice && t.Elem() == byteType) { return &stringConverter{t, defVal(fd, stringZero)} } case pref.BytesKind: if t.Kind() == reflect.String || (t.Kind() == reflect.Slice && t.Elem() == byteType) { return &bytesConverter{t, defVal(fd, bytesZero)} } case pref.EnumKind: // Handle enums, which must be a named int32 type. if t.Kind() == reflect.Int32 { return newEnumConverter(t, fd) } case pref.MessageKind, pref.GroupKind: return newMessageConverter(t) } panic(fmt.Sprintf("invalid Go type %v for field %v", t, fd.FullName())) } type boolConverter struct { goType reflect.Type def pref.Value } func (c *boolConverter) PBValueOf(v reflect.Value) pref.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } return pref.ValueOfBool(v.Bool()) } func (c *boolConverter) GoValueOf(v pref.Value) reflect.Value { return reflect.ValueOf(v.Bool()).Convert(c.goType) } func (c *boolConverter) IsValidPB(v pref.Value) bool { _, ok := v.Interface().(bool) return ok } func (c *boolConverter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } func (c *boolConverter) New() pref.Value { return c.def } func (c *boolConverter) Zero() pref.Value { return c.def } type int32Converter struct { goType reflect.Type def pref.Value } func (c *int32Converter) PBValueOf(v reflect.Value) pref.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } return pref.ValueOfInt32(int32(v.Int())) } func (c *int32Converter) GoValueOf(v pref.Value) reflect.Value { return reflect.ValueOf(int32(v.Int())).Convert(c.goType) } func (c *int32Converter) IsValidPB(v pref.Value) bool { _, ok := v.Interface().(int32) return ok } func (c *int32Converter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } func (c *int32Converter) New() pref.Value { return c.def } func (c *int32Converter) Zero() pref.Value { return c.def } type int64Converter struct { goType reflect.Type def pref.Value } func (c *int64Converter) PBValueOf(v reflect.Value) pref.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } return pref.ValueOfInt64(int64(v.Int())) } func (c *int64Converter) GoValueOf(v pref.Value) reflect.Value { return reflect.ValueOf(int64(v.Int())).Convert(c.goType) } func (c *int64Converter) IsValidPB(v pref.Value) bool { _, ok := v.Interface().(int64) return ok } func (c *int64Converter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } func (c *int64Converter) New() pref.Value { return c.def } func (c *int64Converter) Zero() pref.Value { return c.def } type uint32Converter struct { goType reflect.Type def pref.Value } func (c *uint32Converter) PBValueOf(v reflect.Value) pref.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } return pref.ValueOfUint32(uint32(v.Uint())) } func (c *uint32Converter) GoValueOf(v pref.Value) reflect.Value { return reflect.ValueOf(uint32(v.Uint())).Convert(c.goType) } func (c *uint32Converter) IsValidPB(v pref.Value) bool { _, ok := v.Interface().(uint32) return ok } func (c *uint32Converter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } func (c *uint32Converter) New() pref.Value { return c.def } func (c *uint32Converter) Zero() pref.Value { return c.def } type uint64Converter struct { goType reflect.Type def pref.Value } func (c *uint64Converter) PBValueOf(v reflect.Value) pref.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } return pref.ValueOfUint64(uint64(v.Uint())) } func (c *uint64Converter) GoValueOf(v pref.Value) reflect.Value { return reflect.ValueOf(uint64(v.Uint())).Convert(c.goType) } func (c *uint64Converter) IsValidPB(v pref.Value) bool { _, ok := v.Interface().(uint64) return ok } func (c *uint64Converter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } func (c *uint64Converter) New() pref.Value { return c.def } func (c *uint64Converter) Zero() pref.Value { return c.def } type float32Converter struct { goType reflect.Type def pref.Value } func (c *float32Converter) PBValueOf(v reflect.Value) pref.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } return pref.ValueOfFloat32(float32(v.Float())) } func (c *float32Converter) GoValueOf(v pref.Value) reflect.Value { return reflect.ValueOf(float32(v.Float())).Convert(c.goType) } func (c *float32Converter) IsValidPB(v pref.Value) bool { _, ok := v.Interface().(float32) return ok } func (c *float32Converter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } func (c *float32Converter) New() pref.Value { return c.def } func (c *float32Converter) Zero() pref.Value { return c.def } type float64Converter struct { goType reflect.Type def pref.Value } func (c *float64Converter) PBValueOf(v reflect.Value) pref.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } return pref.ValueOfFloat64(float64(v.Float())) } func (c *float64Converter) GoValueOf(v pref.Value) reflect.Value { return reflect.ValueOf(float64(v.Float())).Convert(c.goType) } func (c *float64Converter) IsValidPB(v pref.Value) bool { _, ok := v.Interface().(float64) return ok } func (c *float64Converter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } func (c *float64Converter) New() pref.Value { return c.def } func (c *float64Converter) Zero() pref.Value { return c.def } type stringConverter struct { goType reflect.Type def pref.Value } func (c *stringConverter) PBValueOf(v reflect.Value) pref.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } return pref.ValueOfString(v.Convert(stringType).String()) } func (c *stringConverter) GoValueOf(v pref.Value) reflect.Value { // pref.Value.String never panics, so we go through an interface // conversion here to check the type. s := v.Interface().(string) if c.goType.Kind() == reflect.Slice && s == "" { return reflect.Zero(c.goType) // ensure empty string is []byte(nil) } return reflect.ValueOf(s).Convert(c.goType) } func (c *stringConverter) IsValidPB(v pref.Value) bool { _, ok := v.Interface().(string) return ok } func (c *stringConverter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } func (c *stringConverter) New() pref.Value { return c.def } func (c *stringConverter) Zero() pref.Value { return c.def } type bytesConverter struct { goType reflect.Type def pref.Value } func (c *bytesConverter) PBValueOf(v reflect.Value) pref.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } if c.goType.Kind() == reflect.String && v.Len() == 0 { return pref.ValueOfBytes(nil) // ensure empty string is []byte(nil) } return pref.ValueOfBytes(v.Convert(bytesType).Bytes()) } func (c *bytesConverter) GoValueOf(v pref.Value) reflect.Value { return reflect.ValueOf(v.Bytes()).Convert(c.goType) } func (c *bytesConverter) IsValidPB(v pref.Value) bool { _, ok := v.Interface().([]byte) return ok } func (c *bytesConverter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } func (c *bytesConverter) New() pref.Value { return c.def } func (c *bytesConverter) Zero() pref.Value { return c.def } type enumConverter struct { goType reflect.Type def pref.Value } func newEnumConverter(goType reflect.Type, fd pref.FieldDescriptor) Converter { var def pref.Value if fd.Cardinality() == pref.Repeated { def = pref.ValueOfEnum(fd.Enum().Values().Get(0).Number()) } else { def = fd.Default() } return &enumConverter{goType, def} } func (c *enumConverter) PBValueOf(v reflect.Value) pref.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } return pref.ValueOfEnum(pref.EnumNumber(v.Int())) } func (c *enumConverter) GoValueOf(v pref.Value) reflect.Value { return reflect.ValueOf(v.Enum()).Convert(c.goType) } func (c *enumConverter) IsValidPB(v pref.Value) bool { _, ok := v.Interface().(pref.EnumNumber) return ok } func (c *enumConverter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } func (c *enumConverter) New() pref.Value { return c.def } func (c *enumConverter) Zero() pref.Value { return c.def } type messageConverter struct { goType reflect.Type } func newMessageConverter(goType reflect.Type) Converter { return &messageConverter{goType} } func (c *messageConverter) PBValueOf(v reflect.Value) pref.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } if c.isNonPointer() { if v.CanAddr() { v = v.Addr() // T => *T } else { v = reflect.Zero(reflect.PtrTo(v.Type())) } } if m, ok := v.Interface().(pref.ProtoMessage); ok { return pref.ValueOfMessage(m.ProtoReflect()) } return pref.ValueOfMessage(legacyWrapMessage(v)) } func (c *messageConverter) GoValueOf(v pref.Value) reflect.Value { m := v.Message() var rv reflect.Value if u, ok := m.(unwrapper); ok { rv = reflect.ValueOf(u.protoUnwrap()) } else { rv = reflect.ValueOf(m.Interface()) } if c.isNonPointer() { if rv.Type() != reflect.PtrTo(c.goType) { panic(fmt.Sprintf("invalid type: got %v, want %v", rv.Type(), reflect.PtrTo(c.goType))) } if !rv.IsNil() { rv = rv.Elem() // *T => T } else { rv = reflect.Zero(rv.Type().Elem()) } } if rv.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", rv.Type(), c.goType)) } return rv } func (c *messageConverter) IsValidPB(v pref.Value) bool { m := v.Message() var rv reflect.Value if u, ok := m.(unwrapper); ok { rv = reflect.ValueOf(u.protoUnwrap()) } else { rv = reflect.ValueOf(m.Interface()) } if c.isNonPointer() { return rv.Type() == reflect.PtrTo(c.goType) } return rv.Type() == c.goType } func (c *messageConverter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } func (c *messageConverter) New() pref.Value { if c.isNonPointer() { return c.PBValueOf(reflect.New(c.goType).Elem()) } return c.PBValueOf(reflect.New(c.goType.Elem())) } func (c *messageConverter) Zero() pref.Value { return c.PBValueOf(reflect.Zero(c.goType)) } // isNonPointer reports whether the type is a non-pointer type. // This never occurs for generated message types. func (c *messageConverter) isNonPointer() bool { return c.goType.Kind() != reflect.Ptr } golang-google-protobuf-1.27.1/internal/impl/convert_list.go000066400000000000000000000067471411250152500240120ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "fmt" "reflect" pref "google.golang.org/protobuf/reflect/protoreflect" ) func newListConverter(t reflect.Type, fd pref.FieldDescriptor) Converter { switch { case t.Kind() == reflect.Ptr && t.Elem().Kind() == reflect.Slice: return &listPtrConverter{t, newSingularConverter(t.Elem().Elem(), fd)} case t.Kind() == reflect.Slice: return &listConverter{t, newSingularConverter(t.Elem(), fd)} } panic(fmt.Sprintf("invalid Go type %v for field %v", t, fd.FullName())) } type listConverter struct { goType reflect.Type // []T c Converter } func (c *listConverter) PBValueOf(v reflect.Value) pref.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } pv := reflect.New(c.goType) pv.Elem().Set(v) return pref.ValueOfList(&listReflect{pv, c.c}) } func (c *listConverter) GoValueOf(v pref.Value) reflect.Value { rv := v.List().(*listReflect).v if rv.IsNil() { return reflect.Zero(c.goType) } return rv.Elem() } func (c *listConverter) IsValidPB(v pref.Value) bool { list, ok := v.Interface().(*listReflect) if !ok { return false } return list.v.Type().Elem() == c.goType } func (c *listConverter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } func (c *listConverter) New() pref.Value { return pref.ValueOfList(&listReflect{reflect.New(c.goType), c.c}) } func (c *listConverter) Zero() pref.Value { return pref.ValueOfList(&listReflect{reflect.Zero(reflect.PtrTo(c.goType)), c.c}) } type listPtrConverter struct { goType reflect.Type // *[]T c Converter } func (c *listPtrConverter) PBValueOf(v reflect.Value) pref.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } return pref.ValueOfList(&listReflect{v, c.c}) } func (c *listPtrConverter) GoValueOf(v pref.Value) reflect.Value { return v.List().(*listReflect).v } func (c *listPtrConverter) IsValidPB(v pref.Value) bool { list, ok := v.Interface().(*listReflect) if !ok { return false } return list.v.Type() == c.goType } func (c *listPtrConverter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } func (c *listPtrConverter) New() pref.Value { return c.PBValueOf(reflect.New(c.goType.Elem())) } func (c *listPtrConverter) Zero() pref.Value { return c.PBValueOf(reflect.Zero(c.goType)) } type listReflect struct { v reflect.Value // *[]T conv Converter } func (ls *listReflect) Len() int { if ls.v.IsNil() { return 0 } return ls.v.Elem().Len() } func (ls *listReflect) Get(i int) pref.Value { return ls.conv.PBValueOf(ls.v.Elem().Index(i)) } func (ls *listReflect) Set(i int, v pref.Value) { ls.v.Elem().Index(i).Set(ls.conv.GoValueOf(v)) } func (ls *listReflect) Append(v pref.Value) { ls.v.Elem().Set(reflect.Append(ls.v.Elem(), ls.conv.GoValueOf(v))) } func (ls *listReflect) AppendMutable() pref.Value { if _, ok := ls.conv.(*messageConverter); !ok { panic("invalid AppendMutable on list with non-message type") } v := ls.NewElement() ls.Append(v) return v } func (ls *listReflect) Truncate(i int) { ls.v.Elem().Set(ls.v.Elem().Slice(0, i)) } func (ls *listReflect) NewElement() pref.Value { return ls.conv.New() } func (ls *listReflect) IsValid() bool { return !ls.v.IsNil() } func (ls *listReflect) protoUnwrap() interface{} { return ls.v.Interface() } golang-google-protobuf-1.27.1/internal/impl/convert_map.go000066400000000000000000000056131411250152500236030ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "fmt" "reflect" pref "google.golang.org/protobuf/reflect/protoreflect" ) type mapConverter struct { goType reflect.Type // map[K]V keyConv, valConv Converter } func newMapConverter(t reflect.Type, fd pref.FieldDescriptor) *mapConverter { if t.Kind() != reflect.Map { panic(fmt.Sprintf("invalid Go type %v for field %v", t, fd.FullName())) } return &mapConverter{ goType: t, keyConv: newSingularConverter(t.Key(), fd.MapKey()), valConv: newSingularConverter(t.Elem(), fd.MapValue()), } } func (c *mapConverter) PBValueOf(v reflect.Value) pref.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } return pref.ValueOfMap(&mapReflect{v, c.keyConv, c.valConv}) } func (c *mapConverter) GoValueOf(v pref.Value) reflect.Value { return v.Map().(*mapReflect).v } func (c *mapConverter) IsValidPB(v pref.Value) bool { mapv, ok := v.Interface().(*mapReflect) if !ok { return false } return mapv.v.Type() == c.goType } func (c *mapConverter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } func (c *mapConverter) New() pref.Value { return c.PBValueOf(reflect.MakeMap(c.goType)) } func (c *mapConverter) Zero() pref.Value { return c.PBValueOf(reflect.Zero(c.goType)) } type mapReflect struct { v reflect.Value // map[K]V keyConv Converter valConv Converter } func (ms *mapReflect) Len() int { return ms.v.Len() } func (ms *mapReflect) Has(k pref.MapKey) bool { rk := ms.keyConv.GoValueOf(k.Value()) rv := ms.v.MapIndex(rk) return rv.IsValid() } func (ms *mapReflect) Get(k pref.MapKey) pref.Value { rk := ms.keyConv.GoValueOf(k.Value()) rv := ms.v.MapIndex(rk) if !rv.IsValid() { return pref.Value{} } return ms.valConv.PBValueOf(rv) } func (ms *mapReflect) Set(k pref.MapKey, v pref.Value) { rk := ms.keyConv.GoValueOf(k.Value()) rv := ms.valConv.GoValueOf(v) ms.v.SetMapIndex(rk, rv) } func (ms *mapReflect) Clear(k pref.MapKey) { rk := ms.keyConv.GoValueOf(k.Value()) ms.v.SetMapIndex(rk, reflect.Value{}) } func (ms *mapReflect) Mutable(k pref.MapKey) pref.Value { if _, ok := ms.valConv.(*messageConverter); !ok { panic("invalid Mutable on map with non-message value type") } v := ms.Get(k) if !v.IsValid() { v = ms.NewValue() ms.Set(k, v) } return v } func (ms *mapReflect) Range(f func(pref.MapKey, pref.Value) bool) { iter := mapRange(ms.v) for iter.Next() { k := ms.keyConv.PBValueOf(iter.Key()).MapKey() v := ms.valConv.PBValueOf(iter.Value()) if !f(k, v) { return } } } func (ms *mapReflect) NewValue() pref.Value { return ms.valConv.New() } func (ms *mapReflect) IsValid() bool { return !ms.v.IsNil() } func (ms *mapReflect) protoUnwrap() interface{} { return ms.v.Interface() } golang-google-protobuf-1.27.1/internal/impl/decode.go000066400000000000000000000163561411250152500225170ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "math/bits" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" preg "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/runtime/protoiface" piface "google.golang.org/protobuf/runtime/protoiface" ) var errDecode = errors.New("cannot parse invalid wire-format data") type unmarshalOptions struct { flags protoiface.UnmarshalInputFlags resolver interface { FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) } } func (o unmarshalOptions) Options() proto.UnmarshalOptions { return proto.UnmarshalOptions{ Merge: true, AllowPartial: true, DiscardUnknown: o.DiscardUnknown(), Resolver: o.resolver, } } func (o unmarshalOptions) DiscardUnknown() bool { return o.flags&piface.UnmarshalDiscardUnknown != 0 } func (o unmarshalOptions) IsDefault() bool { return o.flags == 0 && o.resolver == preg.GlobalTypes } var lazyUnmarshalOptions = unmarshalOptions{ resolver: preg.GlobalTypes, } type unmarshalOutput struct { n int // number of bytes consumed initialized bool } // unmarshal is protoreflect.Methods.Unmarshal. func (mi *MessageInfo) unmarshal(in piface.UnmarshalInput) (piface.UnmarshalOutput, error) { var p pointer if ms, ok := in.Message.(*messageState); ok { p = ms.pointer() } else { p = in.Message.(*messageReflectWrapper).pointer() } out, err := mi.unmarshalPointer(in.Buf, p, 0, unmarshalOptions{ flags: in.Flags, resolver: in.Resolver, }) var flags piface.UnmarshalOutputFlags if out.initialized { flags |= piface.UnmarshalInitialized } return piface.UnmarshalOutput{ Flags: flags, }, err } // errUnknown is returned during unmarshaling to indicate a parse error that // should result in a field being placed in the unknown fields section (for example, // when the wire type doesn't match) as opposed to the entire unmarshal operation // failing (for example, when a field extends past the available input). // // This is a sentinel error which should never be visible to the user. var errUnknown = errors.New("unknown") func (mi *MessageInfo) unmarshalPointer(b []byte, p pointer, groupTag protowire.Number, opts unmarshalOptions) (out unmarshalOutput, err error) { mi.init() if flags.ProtoLegacy && mi.isMessageSet { return unmarshalMessageSet(mi, b, p, opts) } initialized := true var requiredMask uint64 var exts *map[int32]ExtensionField start := len(b) for len(b) > 0 { // Parse the tag (field number and wire type). var tag uint64 if b[0] < 0x80 { tag = uint64(b[0]) b = b[1:] } else if len(b) >= 2 && b[1] < 128 { tag = uint64(b[0]&0x7f) + uint64(b[1])<<7 b = b[2:] } else { var n int tag, n = protowire.ConsumeVarint(b) if n < 0 { return out, errDecode } b = b[n:] } var num protowire.Number if n := tag >> 3; n < uint64(protowire.MinValidNumber) || n > uint64(protowire.MaxValidNumber) { return out, errDecode } else { num = protowire.Number(n) } wtyp := protowire.Type(tag & 7) if wtyp == protowire.EndGroupType { if num != groupTag { return out, errDecode } groupTag = 0 break } var f *coderFieldInfo if int(num) < len(mi.denseCoderFields) { f = mi.denseCoderFields[num] } else { f = mi.coderFields[num] } var n int err := errUnknown switch { case f != nil: if f.funcs.unmarshal == nil { break } var o unmarshalOutput o, err = f.funcs.unmarshal(b, p.Apply(f.offset), wtyp, f, opts) n = o.n if err != nil { break } requiredMask |= f.validation.requiredBit if f.funcs.isInit != nil && !o.initialized { initialized = false } default: // Possible extension. if exts == nil && mi.extensionOffset.IsValid() { exts = p.Apply(mi.extensionOffset).Extensions() if *exts == nil { *exts = make(map[int32]ExtensionField) } } if exts == nil { break } var o unmarshalOutput o, err = mi.unmarshalExtension(b, num, wtyp, *exts, opts) if err != nil { break } n = o.n if !o.initialized { initialized = false } } if err != nil { if err != errUnknown { return out, err } n = protowire.ConsumeFieldValue(num, wtyp, b) if n < 0 { return out, errDecode } if !opts.DiscardUnknown() && mi.unknownOffset.IsValid() { u := mi.mutableUnknownBytes(p) *u = protowire.AppendTag(*u, num, wtyp) *u = append(*u, b[:n]...) } } b = b[n:] } if groupTag != 0 { return out, errDecode } if mi.numRequiredFields > 0 && bits.OnesCount64(requiredMask) != int(mi.numRequiredFields) { initialized = false } if initialized { out.initialized = true } out.n = start - len(b) return out, nil } func (mi *MessageInfo) unmarshalExtension(b []byte, num protowire.Number, wtyp protowire.Type, exts map[int32]ExtensionField, opts unmarshalOptions) (out unmarshalOutput, err error) { x := exts[int32(num)] xt := x.Type() if xt == nil { var err error xt, err = opts.resolver.FindExtensionByNumber(mi.Desc.FullName(), num) if err != nil { if err == preg.NotFound { return out, errUnknown } return out, errors.New("%v: unable to resolve extension %v: %v", mi.Desc.FullName(), num, err) } } xi := getExtensionFieldInfo(xt) if xi.funcs.unmarshal == nil { return out, errUnknown } if flags.LazyUnmarshalExtensions { if opts.IsDefault() && x.canLazy(xt) { out, valid := skipExtension(b, xi, num, wtyp, opts) switch valid { case ValidationValid: if out.initialized { x.appendLazyBytes(xt, xi, num, wtyp, b[:out.n]) exts[int32(num)] = x return out, nil } case ValidationInvalid: return out, errDecode case ValidationUnknown: } } } ival := x.Value() if !ival.IsValid() && xi.unmarshalNeedsValue { // Create a new message, list, or map value to fill in. // For enums, create a prototype value to let the unmarshal func know the // concrete type. ival = xt.New() } v, out, err := xi.funcs.unmarshal(b, ival, num, wtyp, opts) if err != nil { return out, err } if xi.funcs.isInit == nil { out.initialized = true } x.Set(xt, v) exts[int32(num)] = x return out, nil } func skipExtension(b []byte, xi *extensionFieldInfo, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (out unmarshalOutput, _ ValidationStatus) { if xi.validation.mi == nil { return out, ValidationUnknown } xi.validation.mi.init() switch xi.validation.typ { case validationTypeMessage: if wtyp != protowire.BytesType { return out, ValidationUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return out, ValidationUnknown } out, st := xi.validation.mi.validate(v, 0, opts) out.n = n return out, st case validationTypeGroup: if wtyp != protowire.StartGroupType { return out, ValidationUnknown } out, st := xi.validation.mi.validate(b, num, opts) return out, st default: return out, ValidationUnknown } } golang-google-protobuf-1.27.1/internal/impl/encode.go000066400000000000000000000121211411250152500225130ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "math" "sort" "sync/atomic" "google.golang.org/protobuf/internal/flags" proto "google.golang.org/protobuf/proto" piface "google.golang.org/protobuf/runtime/protoiface" ) type marshalOptions struct { flags piface.MarshalInputFlags } func (o marshalOptions) Options() proto.MarshalOptions { return proto.MarshalOptions{ AllowPartial: true, Deterministic: o.Deterministic(), UseCachedSize: o.UseCachedSize(), } } func (o marshalOptions) Deterministic() bool { return o.flags&piface.MarshalDeterministic != 0 } func (o marshalOptions) UseCachedSize() bool { return o.flags&piface.MarshalUseCachedSize != 0 } // size is protoreflect.Methods.Size. func (mi *MessageInfo) size(in piface.SizeInput) piface.SizeOutput { var p pointer if ms, ok := in.Message.(*messageState); ok { p = ms.pointer() } else { p = in.Message.(*messageReflectWrapper).pointer() } size := mi.sizePointer(p, marshalOptions{ flags: in.Flags, }) return piface.SizeOutput{Size: size} } func (mi *MessageInfo) sizePointer(p pointer, opts marshalOptions) (size int) { mi.init() if p.IsNil() { return 0 } if opts.UseCachedSize() && mi.sizecacheOffset.IsValid() { if size := atomic.LoadInt32(p.Apply(mi.sizecacheOffset).Int32()); size >= 0 { return int(size) } } return mi.sizePointerSlow(p, opts) } func (mi *MessageInfo) sizePointerSlow(p pointer, opts marshalOptions) (size int) { if flags.ProtoLegacy && mi.isMessageSet { size = sizeMessageSet(mi, p, opts) if mi.sizecacheOffset.IsValid() { atomic.StoreInt32(p.Apply(mi.sizecacheOffset).Int32(), int32(size)) } return size } if mi.extensionOffset.IsValid() { e := p.Apply(mi.extensionOffset).Extensions() size += mi.sizeExtensions(e, opts) } for _, f := range mi.orderedCoderFields { if f.funcs.size == nil { continue } fptr := p.Apply(f.offset) if f.isPointer && fptr.Elem().IsNil() { continue } size += f.funcs.size(fptr, f, opts) } if mi.unknownOffset.IsValid() { if u := mi.getUnknownBytes(p); u != nil { size += len(*u) } } if mi.sizecacheOffset.IsValid() { if size > math.MaxInt32 { // The size is too large for the int32 sizecache field. // We will need to recompute the size when encoding; // unfortunately expensive, but better than invalid output. atomic.StoreInt32(p.Apply(mi.sizecacheOffset).Int32(), -1) } else { atomic.StoreInt32(p.Apply(mi.sizecacheOffset).Int32(), int32(size)) } } return size } // marshal is protoreflect.Methods.Marshal. func (mi *MessageInfo) marshal(in piface.MarshalInput) (out piface.MarshalOutput, err error) { var p pointer if ms, ok := in.Message.(*messageState); ok { p = ms.pointer() } else { p = in.Message.(*messageReflectWrapper).pointer() } b, err := mi.marshalAppendPointer(in.Buf, p, marshalOptions{ flags: in.Flags, }) return piface.MarshalOutput{Buf: b}, err } func (mi *MessageInfo) marshalAppendPointer(b []byte, p pointer, opts marshalOptions) ([]byte, error) { mi.init() if p.IsNil() { return b, nil } if flags.ProtoLegacy && mi.isMessageSet { return marshalMessageSet(mi, b, p, opts) } var err error // The old marshaler encodes extensions at beginning. if mi.extensionOffset.IsValid() { e := p.Apply(mi.extensionOffset).Extensions() // TODO: Special handling for MessageSet? b, err = mi.appendExtensions(b, e, opts) if err != nil { return b, err } } for _, f := range mi.orderedCoderFields { if f.funcs.marshal == nil { continue } fptr := p.Apply(f.offset) if f.isPointer && fptr.Elem().IsNil() { continue } b, err = f.funcs.marshal(b, fptr, f, opts) if err != nil { return b, err } } if mi.unknownOffset.IsValid() && !mi.isMessageSet { if u := mi.getUnknownBytes(p); u != nil { b = append(b, (*u)...) } } return b, nil } func (mi *MessageInfo) sizeExtensions(ext *map[int32]ExtensionField, opts marshalOptions) (n int) { if ext == nil { return 0 } for _, x := range *ext { xi := getExtensionFieldInfo(x.Type()) if xi.funcs.size == nil { continue } n += xi.funcs.size(x.Value(), xi.tagsize, opts) } return n } func (mi *MessageInfo) appendExtensions(b []byte, ext *map[int32]ExtensionField, opts marshalOptions) ([]byte, error) { if ext == nil { return b, nil } switch len(*ext) { case 0: return b, nil case 1: // Fast-path for one extension: Don't bother sorting the keys. var err error for _, x := range *ext { xi := getExtensionFieldInfo(x.Type()) b, err = xi.funcs.marshal(b, x.Value(), xi.wiretag, opts) } return b, err default: // Sort the keys to provide a deterministic encoding. // Not sure this is required, but the old code does it. keys := make([]int, 0, len(*ext)) for k := range *ext { keys = append(keys, int(k)) } sort.Ints(keys) var err error for _, k := range keys { x := (*ext)[int32(k)] xi := getExtensionFieldInfo(x.Type()) b, err = xi.funcs.marshal(b, x.Value(), xi.wiretag, opts) if err != nil { return b, err } } return b, nil } } golang-google-protobuf-1.27.1/internal/impl/enum.go000066400000000000000000000010571411250152500222300ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "reflect" pref "google.golang.org/protobuf/reflect/protoreflect" ) type EnumInfo struct { GoReflectType reflect.Type // int32 kind Desc pref.EnumDescriptor } func (t *EnumInfo) New(n pref.EnumNumber) pref.Enum { return reflect.ValueOf(n).Convert(t.GoReflectType).Interface().(pref.Enum) } func (t *EnumInfo) Descriptor() pref.EnumDescriptor { return t.Desc } golang-google-protobuf-1.27.1/internal/impl/enum_test.go000066400000000000000000000011741411250152500232670ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl_test import ( "testing" pref "google.golang.org/protobuf/reflect/protoreflect" testpb "google.golang.org/protobuf/internal/testprotos/test" ) func TestEnum(t *testing.T) { et := testpb.ForeignEnum_FOREIGN_FOO.Type() if got, want := et.New(pref.EnumNumber(testpb.ForeignEnum_FOREIGN_FOO)), pref.Enum(testpb.ForeignEnum_FOREIGN_FOO); got != want { t.Errorf("testpb.ForeignEnum_FOREIGN_FOO.Type().New() = %[1]T(%[1]v), want %[2]T(%[2]v)", got, want) } } golang-google-protobuf-1.27.1/internal/impl/extension.go000066400000000000000000000110511411250152500232730ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "reflect" "sync" "sync/atomic" pref "google.golang.org/protobuf/reflect/protoreflect" piface "google.golang.org/protobuf/runtime/protoiface" ) // ExtensionInfo implements ExtensionType. // // This type contains a number of exported fields for legacy compatibility. // The only non-deprecated use of this type is through the methods of the // ExtensionType interface. type ExtensionInfo struct { // An ExtensionInfo may exist in several stages of initialization. // // extensionInfoUninitialized: Some or all of the legacy exported // fields may be set, but none of the unexported fields have been // initialized. This is the starting state for an ExtensionInfo // in legacy generated code. // // extensionInfoDescInit: The desc field is set, but other unexported fields // may not be initialized. Legacy exported fields may or may not be set. // This is the starting state for an ExtensionInfo in newly generated code. // // extensionInfoFullInit: The ExtensionInfo is fully initialized. // This state is only entered after lazy initialization is complete. init uint32 mu sync.Mutex goType reflect.Type desc extensionTypeDescriptor conv Converter info *extensionFieldInfo // for fast-path method implementations // ExtendedType is a typed nil-pointer to the parent message type that // is being extended. It is possible for this to be unpopulated in v2 // since the message may no longer implement the MessageV1 interface. // // Deprecated: Use the ExtendedType method instead. ExtendedType piface.MessageV1 // ExtensionType is the zero value of the extension type. // // For historical reasons, reflect.TypeOf(ExtensionType) and the // type returned by InterfaceOf may not be identical. // // Deprecated: Use InterfaceOf(xt.Zero()) instead. ExtensionType interface{} // Field is the field number of the extension. // // Deprecated: Use the Descriptor().Number method instead. Field int32 // Name is the fully qualified name of extension. // // Deprecated: Use the Descriptor().FullName method instead. Name string // Tag is the protobuf struct tag used in the v1 API. // // Deprecated: Do not use. Tag string // Filename is the proto filename in which the extension is defined. // // Deprecated: Use Descriptor().ParentFile().Path() instead. Filename string } // Stages of initialization: See the ExtensionInfo.init field. const ( extensionInfoUninitialized = 0 extensionInfoDescInit = 1 extensionInfoFullInit = 2 ) func InitExtensionInfo(xi *ExtensionInfo, xd pref.ExtensionDescriptor, goType reflect.Type) { xi.goType = goType xi.desc = extensionTypeDescriptor{xd, xi} xi.init = extensionInfoDescInit } func (xi *ExtensionInfo) New() pref.Value { return xi.lazyInit().New() } func (xi *ExtensionInfo) Zero() pref.Value { return xi.lazyInit().Zero() } func (xi *ExtensionInfo) ValueOf(v interface{}) pref.Value { return xi.lazyInit().PBValueOf(reflect.ValueOf(v)) } func (xi *ExtensionInfo) InterfaceOf(v pref.Value) interface{} { return xi.lazyInit().GoValueOf(v).Interface() } func (xi *ExtensionInfo) IsValidValue(v pref.Value) bool { return xi.lazyInit().IsValidPB(v) } func (xi *ExtensionInfo) IsValidInterface(v interface{}) bool { return xi.lazyInit().IsValidGo(reflect.ValueOf(v)) } func (xi *ExtensionInfo) TypeDescriptor() pref.ExtensionTypeDescriptor { if atomic.LoadUint32(&xi.init) < extensionInfoDescInit { xi.lazyInitSlow() } return &xi.desc } func (xi *ExtensionInfo) lazyInit() Converter { if atomic.LoadUint32(&xi.init) < extensionInfoFullInit { xi.lazyInitSlow() } return xi.conv } func (xi *ExtensionInfo) lazyInitSlow() { xi.mu.Lock() defer xi.mu.Unlock() if xi.init == extensionInfoFullInit { return } defer atomic.StoreUint32(&xi.init, extensionInfoFullInit) if xi.desc.ExtensionDescriptor == nil { xi.initFromLegacy() } if !xi.desc.ExtensionDescriptor.IsPlaceholder() { if xi.ExtensionType == nil { xi.initToLegacy() } xi.conv = NewConverter(xi.goType, xi.desc.ExtensionDescriptor) xi.info = makeExtensionFieldInfo(xi.desc.ExtensionDescriptor) xi.info.validation = newValidationInfo(xi.desc.ExtensionDescriptor, xi.goType) } } type extensionTypeDescriptor struct { pref.ExtensionDescriptor xi *ExtensionInfo } func (xtd *extensionTypeDescriptor) Type() pref.ExtensionType { return xtd.xi } func (xtd *extensionTypeDescriptor) Descriptor() pref.ExtensionDescriptor { return xtd.ExtensionDescriptor } golang-google-protobuf-1.27.1/internal/impl/extension_test.go000066400000000000000000000053021411250152500243340ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl_test import ( "fmt" "testing" "github.com/google/go-cmp/cmp" "google.golang.org/protobuf/proto" pref "google.golang.org/protobuf/reflect/protoreflect" testpb "google.golang.org/protobuf/internal/testprotos/test" ) func TestExtensionType(t *testing.T) { cmpOpts := cmp.Options{ cmp.Comparer(func(x, y proto.Message) bool { return proto.Equal(x, y) }), } for _, test := range []struct { xt pref.ExtensionType value interface{} }{ { xt: testpb.E_OptionalInt32, value: int32(0), }, { xt: testpb.E_OptionalInt64, value: int64(0), }, { xt: testpb.E_OptionalUint32, value: uint32(0), }, { xt: testpb.E_OptionalUint64, value: uint64(0), }, { xt: testpb.E_OptionalFloat, value: float32(0), }, { xt: testpb.E_OptionalDouble, value: float64(0), }, { xt: testpb.E_OptionalBool, value: true, }, { xt: testpb.E_OptionalString, value: "", }, { xt: testpb.E_OptionalBytes, value: []byte{}, }, { xt: testpb.E_OptionalNestedMessage, value: &testpb.TestAllExtensions_NestedMessage{}, }, { xt: testpb.E_OptionalNestedEnum, value: testpb.TestAllTypes_FOO, }, { xt: testpb.E_RepeatedInt32, value: []int32{0}, }, { xt: testpb.E_RepeatedInt64, value: []int64{0}, }, { xt: testpb.E_RepeatedUint32, value: []uint32{0}, }, { xt: testpb.E_RepeatedUint64, value: []uint64{0}, }, { xt: testpb.E_RepeatedFloat, value: []float32{0}, }, { xt: testpb.E_RepeatedDouble, value: []float64{0}, }, { xt: testpb.E_RepeatedBool, value: []bool{true}, }, { xt: testpb.E_RepeatedString, value: []string{""}, }, { xt: testpb.E_RepeatedBytes, value: [][]byte{nil}, }, { xt: testpb.E_RepeatedNestedMessage, value: []*testpb.TestAllExtensions_NestedMessage{{}}, }, { xt: testpb.E_RepeatedNestedEnum, value: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_FOO}, }, } { name := test.xt.TypeDescriptor().FullName() t.Run(fmt.Sprint(name), func(t *testing.T) { if !test.xt.IsValidInterface(test.value) { t.Fatalf("IsValidInterface(%[1]T(%[1]v)) = false, want true", test.value) } v := test.xt.ValueOf(test.value) if !test.xt.IsValidValue(v) { t.Fatalf("IsValidValue(%[1]T(%[1]v)) = false, want true", v) } if got, want := test.xt.InterfaceOf(v), test.value; !cmp.Equal(got, want, cmpOpts) { t.Fatalf("round trip InterfaceOf(ValueOf(x)) = %v, want %v", got, want) } }) } } golang-google-protobuf-1.27.1/internal/impl/lazy_test.go000066400000000000000000000030661411250152500233040ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl_test import ( "testing" "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/internal/impl" "google.golang.org/protobuf/internal/protobuild" "google.golang.org/protobuf/proto" testpb "google.golang.org/protobuf/internal/testprotos/test" ) func TestLazyExtensions(t *testing.T) { checkLazy := func(when string, m *testpb.TestAllExtensions, want bool) { xd := testpb.E_OptionalNestedMessage.TypeDescriptor() if got := impl.IsLazy(m.ProtoReflect(), xd); got != want { t.Errorf("%v: m.optional_nested_message lazy=%v, want %v", when, got, want) } e := proto.GetExtension(m, testpb.E_OptionalNestedMessage).(*testpb.TestAllExtensions_NestedMessage).Corecursive if got := impl.IsLazy(e.ProtoReflect(), xd); got != want { t.Errorf("%v: m.optional_nested_message.corecursive.optional_nested_message lazy=%v, want %v", when, got, want) } } m1 := &testpb.TestAllExtensions{} protobuild.Message{ "optional_nested_message": protobuild.Message{ "a": 1, "corecursive": protobuild.Message{ "optional_nested_message": protobuild.Message{ "a": 2, }, }, }, }.Build(m1.ProtoReflect()) checkLazy("before unmarshal", m1, false) w, err := proto.Marshal(m1) if err != nil { t.Fatal(err) } m := &testpb.TestAllExtensions{} if err := proto.Unmarshal(w, m); err != nil { t.Fatal(err) } checkLazy("after unmarshal", m, flags.LazyUnmarshalExtensions) } golang-google-protobuf-1.27.1/internal/impl/legacy_aberrant_test.go000066400000000000000000000561621411250152500254540ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl_test import ( "io" "reflect" "sync" "testing" "github.com/google/go-cmp/cmp" "google.golang.org/protobuf/encoding/prototext" "google.golang.org/protobuf/internal/impl" "google.golang.org/protobuf/reflect/protodesc" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/runtime/protoiface" "google.golang.org/protobuf/testing/protocmp" "google.golang.org/protobuf/types/descriptorpb" ) type AberrantMessage struct { OptionalBool *bool `protobuf:"varint,1,opt,name=opt_bool,def=1"` OptionalInt32 *int32 `protobuf:"varint,2,opt,name=opt_int32,def=-12345"` OptionalSint32 *int32 `protobuf:"zigzag32,3,opt,name=opt_sint32,def=-3200"` OptionalUint32 *uint32 `protobuf:"varint,4,opt,name=opt_uint32,def=3200"` OptionalInt64 *int64 `protobuf:"varint,5,opt,name=opt_int64,def=-123456789"` OptionalSint64 *int64 `protobuf:"zigzag64,6,opt,name=opt_sint64,def=-6400"` OptionalUint64 *uint64 `protobuf:"varint,7,opt,name=opt_uint64,def=6400"` OptionalFixed32 *uint32 `protobuf:"fixed32,8,opt,name=opt_fixed32,def=320000"` OptionalSfixed32 *int32 `protobuf:"fixed32,9,opt,name=opt_sfixed32,def=-320000"` OptionalFloat *float32 `protobuf:"fixed32,10,opt,name=opt_float,def=3.14159"` OptionalFixed64 *uint64 `protobuf:"fixed64,11,opt,name=opt_fixed64,def=640000"` OptionalSfixed64 *int64 `protobuf:"fixed64,12,opt,name=opt_sfixed64,def=-640000"` OptionalDouble *float64 `protobuf:"fixed64,13,opt,name=opt_double,def=3.14159265359"` OptionalString *string `protobuf:"bytes,14,opt,name=opt_string,def=hello, \"world!\"\n"` OptionalBytes []byte `protobuf:"bytes,15,opt,name=opt_bytes,def=dead\\336\\255\\276\\357beef"` OptionalEnum *AberrantEnum `protobuf:"varint,16,opt,name=opt_enum,enum=google.golang.org.example.AberrantEnum,def=0"` OptionalMessage *AberrantMessage `protobuf:"bytes,17,opt,name=opt_message"` RepeatedBool []bool `protobuf:"varint,18,rep,packed,name=rep_bool"` RepeatedInt32 []int32 `protobuf:"varint,19,rep,packed,name=rep_int32"` RepeatedSint32 []int32 `protobuf:"zigzag32,20,rep,packed,name=rep_sint32"` RepeatedUint32 []uint32 `protobuf:"varint,21,rep,packed,name=rep_uint32"` RepeatedInt64 []int64 `protobuf:"varint,22,rep,packed,name=rep_int64"` RepeatedSint64 []int64 `protobuf:"zigzag64,23,rep,packed,name=rep_sint64"` RepeatedUint64 []uint64 `protobuf:"varint,24,rep,packed,name=rep_uint64"` RepeatedFixed32 []uint32 `protobuf:"fixed32,25,rep,packed,name=rep_fixed32"` RepeatedSfixed32 []int32 `protobuf:"fixed32,26,rep,packed,name=rep_sfixed32"` RepeatedFloat []float32 `protobuf:"fixed32,27,rep,packed,name=rep_float"` RepeatedFixed64 []uint64 `protobuf:"fixed64,28,rep,packed,name=rep_fixed64"` RepeatedSfixed64 []int64 `protobuf:"fixed64,29,rep,packed,name=rep_sfixed64"` RepeatedDouble []float64 `protobuf:"fixed64,30,rep,packed,name=rep_double"` RepeatedString []string `protobuf:"bytes,31,rep,name=rep_string"` RepeatedBytes [][]byte `protobuf:"bytes,32,rep,name=rep_bytes"` RepeatedEnum []AberrantEnum `protobuf:"varint,33,rep,name=rep_enum,enum=google.golang.org.example.AberrantEnum"` RepeatedMessage []*AberrantMessage `protobuf:"bytes,34,rep,name=rep_message"` MapStringBool map[string]bool `protobuf:"bytes,35,rep,name=map_string_bool" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapStringInt32 map[string]int32 `protobuf:"bytes,36,rep,name=map_string_int32" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapStringSint32 map[string]int32 `protobuf:"bytes,37,rep,name=map_string_sint32" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` MapStringUint32 map[string]uint32 `protobuf:"bytes,38,rep,name=map_string_uint32" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapStringInt64 map[string]int64 `protobuf:"bytes,39,rep,name=map_string_int64" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapStringSint64 map[string]int64 `protobuf:"bytes,40,rep,name=map_string_sint64" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` MapStringUint64 map[string]uint64 `protobuf:"bytes,41,rep,name=map_string_uint64" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapStringFixed32 map[string]uint32 `protobuf:"bytes,42,rep,name=map_string_fixed32" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapStringSfixed32 map[string]int32 `protobuf:"bytes,43,rep,name=map_string_sfixed32" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapStringFloat map[string]float32 `protobuf:"bytes,44,rep,name=map_string_float" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapStringFixed64 map[string]uint64 `protobuf:"bytes,45,rep,name=map_string_fixed64" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapStringSfixed64 map[string]int64 `protobuf:"bytes,46,rep,name=map_string_sfixed64" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapStringDouble map[string]float64 `protobuf:"bytes,47,rep,name=map_string_double" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapStringString map[string]string `protobuf:"bytes,48,rep,name=map_string_string" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapStringBytes map[string][]byte `protobuf:"bytes,49,rep,name=map_string_bytes" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapStringEnum map[string]AberrantEnum `protobuf:"bytes,50,rep,name=map_string_enum" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.golang.org.example.AberrantEnum"` MapStringMessage map[string]*AberrantMessage `protobuf:"bytes,51,rep,name=map_string_message" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` OneofUnion isOneofUnion `protobuf_oneof:"oneof_union"` Ignored io.Reader } func (m *AberrantMessage) ExtensionRangeArray() []protoiface.ExtensionRangeV1 { return []protoiface.ExtensionRangeV1{{Start: 10, End: 100}} } func (m *AberrantMessage) XXX_OneofFuncs() []interface{} { return []interface{}{ (*OneofBool)(nil), (*OneofInt32)(nil), (*OneofSint32)(nil), (*OneofUint32)(nil), (*OneofInt64)(nil), (*OneofSint64)(nil), (*OneofUint64)(nil), (*OneofFixed32)(nil), (*OneofSfixed32)(nil), (*OneofFloat)(nil), (*OneofFixed64)(nil), (*OneofSfixed64)(nil), (*OneofDouble)(nil), (*OneofString)(nil), (*OneofBytes)(nil), (*OneofEnum)(nil), (*OneofMessage)(nil), } } type isOneofUnion interface{ isOneofUnion() } type OneofBool struct { OneofBool bool `protobuf:"varint,52,opt,name=oneof_bool,oneof,def=1"` } type OneofInt32 struct { OneofInt32 int32 `protobuf:"varint,53,opt,name=oneof_int32,oneof,def=-12345"` } type OneofSint32 struct { OneofSint32 int32 `protobuf:"zigzag32,54,opt,name=oneof_sint32,oneof,def=-3200"` } type OneofUint32 struct { OneofUint32 uint32 `protobuf:"varint,55,opt,name=oneof_uint32,oneof,def=3200"` } type OneofInt64 struct { OneofInt64 int64 `protobuf:"varint,56,opt,name=oneof_int64,oneof,def=-123456789"` } type OneofSint64 struct { OneofSint64 int64 `protobuf:"zigzag64,57,opt,name=oneof_sint64,oneof,def=-6400"` } type OneofUint64 struct { OneofUint64 uint64 `protobuf:"varint,58,opt,name=oneof_uint64,oneof,def=6400"` } type OneofFixed32 struct { OneofFixed32 uint32 `protobuf:"fixed32,59,opt,name=oneof_fixed32,oneof,def=320000"` } type OneofSfixed32 struct { OneofSfixed32 int32 `protobuf:"fixed32,60,opt,name=oneof_sfixed32,oneof,def=-320000"` } type OneofFloat struct { OneofFloat float32 `protobuf:"fixed32,61,opt,name=oneof_float,oneof,def=3.14159"` } type OneofFixed64 struct { OneofFixed64 uint64 `protobuf:"fixed64,62,opt,name=oneof_fixed64,oneof,def=640000"` } type OneofSfixed64 struct { OneofSfixed64 int64 `protobuf:"fixed64,63,opt,name=oneof_sfixed64,oneof,def=-640000"` } type OneofDouble struct { OneofDouble float64 `protobuf:"fixed64,64,opt,name=oneof_double,oneof,def=3.14159265359"` } type OneofString struct { OneofString string `protobuf:"bytes,65,opt,name=oneof_string,oneof,def=hello, \"world!\"\n"` } type OneofBytes struct { OneofBytes []byte `protobuf:"bytes,66,opt,name=oneof_bytes,oneof,def=dead\\336\\255\\276\\357beef"` } type OneofEnum struct { OneofEnum AberrantEnum `protobuf:"varint,67,opt,name=oneof_enum,enum=google.golang.org.example.AberrantEnum,oneof,def=0"` } type OneofMessage struct { OneofMessage *AberrantMessage `protobuf:"bytes,68,opt,name=oneof_message,oneof"` } func (OneofBool) isOneofUnion() {} func (OneofInt32) isOneofUnion() {} func (OneofSint32) isOneofUnion() {} func (OneofUint32) isOneofUnion() {} func (OneofInt64) isOneofUnion() {} func (OneofSint64) isOneofUnion() {} func (OneofUint64) isOneofUnion() {} func (OneofFixed32) isOneofUnion() {} func (OneofSfixed32) isOneofUnion() {} func (OneofFloat) isOneofUnion() {} func (OneofFixed64) isOneofUnion() {} func (OneofSfixed64) isOneofUnion() {} func (OneofDouble) isOneofUnion() {} func (OneofString) isOneofUnion() {} func (OneofBytes) isOneofUnion() {} func (OneofEnum) isOneofUnion() {} func (OneofMessage) isOneofUnion() {} type AberrantEnum int32 func TestAberrantMessages(t *testing.T) { enumName := impl.AberrantDeriveFullName(reflect.TypeOf(AberrantEnum(0))) messageName := impl.AberrantDeriveFullName(reflect.TypeOf(AberrantMessage{})) want := new(descriptorpb.DescriptorProto) if err := prototext.Unmarshal([]byte(` name: "AberrantMessage" field: [ {name:"opt_bool" number:1 label:LABEL_OPTIONAL type:TYPE_BOOL default_value:"true"}, {name:"opt_int32" number:2 label:LABEL_OPTIONAL type:TYPE_INT32 default_value:"-12345"}, {name:"opt_sint32" number:3 label:LABEL_OPTIONAL type:TYPE_SINT32 default_value:"-3200"}, {name:"opt_uint32" number:4 label:LABEL_OPTIONAL type:TYPE_UINT32 default_value:"3200"}, {name:"opt_int64" number:5 label:LABEL_OPTIONAL type:TYPE_INT64 default_value:"-123456789"}, {name:"opt_sint64" number:6 label:LABEL_OPTIONAL type:TYPE_SINT64 default_value:"-6400"}, {name:"opt_uint64" number:7 label:LABEL_OPTIONAL type:TYPE_UINT64 default_value:"6400"}, {name:"opt_fixed32" number:8 label:LABEL_OPTIONAL type:TYPE_FIXED32 default_value:"320000"}, {name:"opt_sfixed32" number:9 label:LABEL_OPTIONAL type:TYPE_SFIXED32 default_value:"-320000"}, {name:"opt_float" number:10 label:LABEL_OPTIONAL type:TYPE_FLOAT default_value:"3.14159"}, {name:"opt_fixed64" number:11 label:LABEL_OPTIONAL type:TYPE_FIXED64 default_value:"640000"}, {name:"opt_sfixed64" number:12 label:LABEL_OPTIONAL type:TYPE_SFIXED64 default_value:"-640000"}, {name:"opt_double" number:13 label:LABEL_OPTIONAL type:TYPE_DOUBLE default_value:"3.14159265359"}, {name:"opt_string" number:14 label:LABEL_OPTIONAL type:TYPE_STRING default_value:"hello, \"world!\"\n"}, {name:"opt_bytes" number:15 label:LABEL_OPTIONAL type:TYPE_BYTES default_value:"dead\\336\\255\\276\\357beef"}, {name:"opt_enum" number:16 label:LABEL_OPTIONAL type:TYPE_ENUM type_name:".`+enumName+`" default_value:"UNKNOWN_0"}, {name:"opt_message" number:17 label:LABEL_OPTIONAL type:TYPE_MESSAGE type_name:".`+messageName+`"}, {name:"rep_bool" number:18 label:LABEL_REPEATED type:TYPE_BOOL options:{packed:true}}, {name:"rep_int32" number:19 label:LABEL_REPEATED type:TYPE_INT32 options:{packed:true}}, {name:"rep_sint32" number:20 label:LABEL_REPEATED type:TYPE_SINT32 options:{packed:true}}, {name:"rep_uint32" number:21 label:LABEL_REPEATED type:TYPE_UINT32 options:{packed:true}}, {name:"rep_int64" number:22 label:LABEL_REPEATED type:TYPE_INT64 options:{packed:true}}, {name:"rep_sint64" number:23 label:LABEL_REPEATED type:TYPE_SINT64 options:{packed:true}}, {name:"rep_uint64" number:24 label:LABEL_REPEATED type:TYPE_UINT64 options:{packed:true}}, {name:"rep_fixed32" number:25 label:LABEL_REPEATED type:TYPE_FIXED32 options:{packed:true}}, {name:"rep_sfixed32" number:26 label:LABEL_REPEATED type:TYPE_SFIXED32 options:{packed:true}}, {name:"rep_float" number:27 label:LABEL_REPEATED type:TYPE_FLOAT options:{packed:true}}, {name:"rep_fixed64" number:28 label:LABEL_REPEATED type:TYPE_FIXED64 options:{packed:true}}, {name:"rep_sfixed64" number:29 label:LABEL_REPEATED type:TYPE_SFIXED64 options:{packed:true}}, {name:"rep_double" number:30 label:LABEL_REPEATED type:TYPE_DOUBLE options:{packed:true}}, {name:"rep_string" number:31 label:LABEL_REPEATED type:TYPE_STRING}, {name:"rep_bytes" number:32 label:LABEL_REPEATED type:TYPE_BYTES}, {name:"rep_enum" number:33 label:LABEL_REPEATED type:TYPE_ENUM type_name:".`+enumName+`"}, {name:"rep_message" number:34 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".`+messageName+`"}, {name:"map_string_bool" number:35 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".`+messageName+`.MapStringBoolEntry"}, {name:"map_string_int32" number:36 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".`+messageName+`.MapStringInt32Entry"}, {name:"map_string_sint32" number:37 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".`+messageName+`.MapStringSint32Entry"}, {name:"map_string_uint32" number:38 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".`+messageName+`.MapStringUint32Entry"}, {name:"map_string_int64" number:39 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".`+messageName+`.MapStringInt64Entry"}, {name:"map_string_sint64" number:40 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".`+messageName+`.MapStringSint64Entry"}, {name:"map_string_uint64" number:41 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".`+messageName+`.MapStringUint64Entry"}, {name:"map_string_fixed32" number:42 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".`+messageName+`.MapStringFixed32Entry"}, {name:"map_string_sfixed32" number:43 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".`+messageName+`.MapStringSfixed32Entry"}, {name:"map_string_float" number:44 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".`+messageName+`.MapStringFloatEntry"}, {name:"map_string_fixed64" number:45 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".`+messageName+`.MapStringFixed64Entry"}, {name:"map_string_sfixed64" number:46 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".`+messageName+`.MapStringSfixed64Entry"}, {name:"map_string_double" number:47 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".`+messageName+`.MapStringDoubleEntry"}, {name:"map_string_string" number:48 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".`+messageName+`.MapStringStringEntry"}, {name:"map_string_bytes" number:49 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".`+messageName+`.MapStringBytesEntry"}, {name:"map_string_enum" number:50 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".`+messageName+`.MapStringEnumEntry"}, {name:"map_string_message" number:51 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".`+messageName+`.MapStringMessageEntry"}, {name:"oneof_bool" number:52 label:LABEL_OPTIONAL type:TYPE_BOOL oneof_index:0 default_value:"true"}, {name:"oneof_int32" number:53 label:LABEL_OPTIONAL type:TYPE_INT32 oneof_index:0 default_value:"-12345"}, {name:"oneof_sint32" number:54 label:LABEL_OPTIONAL type:TYPE_SINT32 oneof_index:0 default_value:"-3200"}, {name:"oneof_uint32" number:55 label:LABEL_OPTIONAL type:TYPE_UINT32 oneof_index:0 default_value:"3200"}, {name:"oneof_int64" number:56 label:LABEL_OPTIONAL type:TYPE_INT64 oneof_index:0 default_value:"-123456789"}, {name:"oneof_sint64" number:57 label:LABEL_OPTIONAL type:TYPE_SINT64 oneof_index:0 default_value:"-6400"}, {name:"oneof_uint64" number:58 label:LABEL_OPTIONAL type:TYPE_UINT64 oneof_index:0 default_value:"6400"}, {name:"oneof_fixed32" number:59 label:LABEL_OPTIONAL type:TYPE_FIXED32 oneof_index:0 default_value:"320000"}, {name:"oneof_sfixed32" number:60 label:LABEL_OPTIONAL type:TYPE_SFIXED32 oneof_index:0 default_value:"-320000"}, {name:"oneof_float" number:61 label:LABEL_OPTIONAL type:TYPE_FLOAT oneof_index:0 default_value:"3.14159"}, {name:"oneof_fixed64" number:62 label:LABEL_OPTIONAL type:TYPE_FIXED64 oneof_index:0 default_value:"640000"}, {name:"oneof_sfixed64" number:63 label:LABEL_OPTIONAL type:TYPE_SFIXED64 oneof_index:0 default_value:"-640000"}, {name:"oneof_double" number:64 label:LABEL_OPTIONAL type:TYPE_DOUBLE oneof_index:0 default_value:"3.14159265359"}, {name:"oneof_string" number:65 label:LABEL_OPTIONAL type:TYPE_STRING oneof_index:0 default_value:"hello, \"world!\"\n"}, {name:"oneof_bytes" number:66 label:LABEL_OPTIONAL type:TYPE_BYTES oneof_index:0 default_value:"dead\\336\\255\\276\\357beef"}, {name:"oneof_enum" number:67 label:LABEL_OPTIONAL type:TYPE_ENUM oneof_index:0 type_name:".`+enumName+`" default_value:"UNKNOWN_0"}, {name:"oneof_message" number:68 label:LABEL_OPTIONAL type:TYPE_MESSAGE oneof_index:0 type_name:".`+messageName+`"} ] oneof_decl: [{name:"oneof_union"}] extension_range: [{start:10 end:101}] nested_type: [ {name:"MapStringBoolEntry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_BOOL}] options:{map_entry:true}}, {name:"MapStringInt32Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_INT32}] options:{map_entry:true}}, {name:"MapStringSint32Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_SINT32}] options:{map_entry:true}}, {name:"MapStringUint32Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_UINT32}] options:{map_entry:true}}, {name:"MapStringInt64Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_INT64}] options:{map_entry:true}}, {name:"MapStringSint64Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_SINT64}] options:{map_entry:true}}, {name:"MapStringUint64Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_UINT64}] options:{map_entry:true}}, {name:"MapStringFixed32Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_FIXED32}] options:{map_entry:true}}, {name:"MapStringSfixed32Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_SFIXED32}] options:{map_entry:true}}, {name:"MapStringFloatEntry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_FLOAT}] options:{map_entry:true}}, {name:"MapStringFixed64Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_FIXED64}] options:{map_entry:true}}, {name:"MapStringSfixed64Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_SFIXED64}] options:{map_entry:true}}, {name:"MapStringDoubleEntry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_DOUBLE}] options:{map_entry:true}}, {name:"MapStringStringEntry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_STRING}] options:{map_entry:true}}, {name:"MapStringBytesEntry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_BYTES}] options:{map_entry:true}}, {name:"MapStringEnumEntry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_ENUM type_name:".`+enumName+`"}] options:{map_entry:true}}, {name:"MapStringMessageEntry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_MESSAGE type_name:".`+messageName+`"}] options:{map_entry:true}} ] `), want); err != nil { t.Fatalf("prototext.Unmarshal() error: %v", err) } md := impl.LegacyLoadMessageDesc(reflect.TypeOf(&AberrantMessage{})) got := protodesc.ToDescriptorProto(md) if diff := cmp.Diff(want, got, protocmp.Transform()); diff != "" { t.Errorf("mismatching descriptor (-want +got):\n%s", diff) } } type AberrantMessage1 struct { M *AberrantMessage2 `protobuf:"bytes,1,opt,name=message"` } type AberrantMessage2 struct { M *AberrantMessage1 `protobuf:"bytes,1,opt,name=message"` } func TestAberrantRace(t *testing.T) { var gotMD1, wantMD1, gotMD2, wantMD2 protoreflect.MessageDescriptor var wg sync.WaitGroup wg.Add(2) go func() { defer wg.Done() md := impl.LegacyLoadMessageDesc(reflect.TypeOf(&AberrantMessage1{})) wantMD2 = md.Fields().Get(0).Message() gotMD2 = wantMD2.Fields().Get(0).Message().Fields().Get(0).Message() }() go func() { defer wg.Done() md := impl.LegacyLoadMessageDesc(reflect.TypeOf(&AberrantMessage2{})) wantMD1 = md.Fields().Get(0).Message() gotMD1 = wantMD1.Fields().Get(0).Message().Fields().Get(0).Message() }() wg.Wait() if gotMD1 != wantMD1 || gotMD2 != wantMD2 { t.Errorf("mismatching exact message descriptors") } } func TestAberrantExtensions(t *testing.T) { tests := []struct { in *impl.ExtensionInfo wantName protoreflect.FullName wantNumber protoreflect.FieldNumber wantPlaceholder bool }{{ in: &impl.ExtensionInfo{Field: 500}, wantNumber: 500, wantPlaceholder: true, }, { in: &impl.ExtensionInfo{Name: "foo.bar.baz"}, wantName: "foo.bar.baz", wantPlaceholder: true, }} for _, tt := range tests { t.Run("", func(t *testing.T) { xtd := tt.in.TypeDescriptor() switch { case xtd.FullName() != tt.wantName: t.Errorf("FullName() = %v, want %v", xtd.FullName(), tt.wantName) case xtd.Number() != tt.wantNumber: t.Errorf("Number() = %v, want %v", xtd.Number(), tt.wantNumber) case xtd.IsPlaceholder() != tt.wantPlaceholder: t.Errorf("IsPlaceholder() = %v, want %v", xtd.IsPlaceholder(), tt.wantPlaceholder) } }) } } golang-google-protobuf-1.27.1/internal/impl/legacy_enum.go000066400000000000000000000150731411250152500235570ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "fmt" "reflect" "strings" "sync" "google.golang.org/protobuf/internal/filedesc" "google.golang.org/protobuf/internal/strs" "google.golang.org/protobuf/reflect/protoreflect" pref "google.golang.org/protobuf/reflect/protoreflect" ) // legacyEnumName returns the name of enums used in legacy code. // It is neither the protobuf full name nor the qualified Go name, // but rather an odd hybrid of both. func legacyEnumName(ed pref.EnumDescriptor) string { var protoPkg string enumName := string(ed.FullName()) if fd := ed.ParentFile(); fd != nil { protoPkg = string(fd.Package()) enumName = strings.TrimPrefix(enumName, protoPkg+".") } if protoPkg == "" { return strs.GoCamelCase(enumName) } return protoPkg + "." + strs.GoCamelCase(enumName) } // legacyWrapEnum wraps v as a protoreflect.Enum, // where v must be a int32 kind and not implement the v2 API already. func legacyWrapEnum(v reflect.Value) pref.Enum { et := legacyLoadEnumType(v.Type()) return et.New(pref.EnumNumber(v.Int())) } var legacyEnumTypeCache sync.Map // map[reflect.Type]protoreflect.EnumType // legacyLoadEnumType dynamically loads a protoreflect.EnumType for t, // where t must be an int32 kind and not implement the v2 API already. func legacyLoadEnumType(t reflect.Type) pref.EnumType { // Fast-path: check if a EnumType is cached for this concrete type. if et, ok := legacyEnumTypeCache.Load(t); ok { return et.(pref.EnumType) } // Slow-path: derive enum descriptor and initialize EnumType. var et pref.EnumType ed := LegacyLoadEnumDesc(t) et = &legacyEnumType{ desc: ed, goType: t, } if et, ok := legacyEnumTypeCache.LoadOrStore(t, et); ok { return et.(pref.EnumType) } return et } type legacyEnumType struct { desc pref.EnumDescriptor goType reflect.Type m sync.Map // map[protoreflect.EnumNumber]proto.Enum } func (t *legacyEnumType) New(n pref.EnumNumber) pref.Enum { if e, ok := t.m.Load(n); ok { return e.(pref.Enum) } e := &legacyEnumWrapper{num: n, pbTyp: t, goTyp: t.goType} t.m.Store(n, e) return e } func (t *legacyEnumType) Descriptor() pref.EnumDescriptor { return t.desc } type legacyEnumWrapper struct { num pref.EnumNumber pbTyp pref.EnumType goTyp reflect.Type } func (e *legacyEnumWrapper) Descriptor() pref.EnumDescriptor { return e.pbTyp.Descriptor() } func (e *legacyEnumWrapper) Type() pref.EnumType { return e.pbTyp } func (e *legacyEnumWrapper) Number() pref.EnumNumber { return e.num } func (e *legacyEnumWrapper) ProtoReflect() pref.Enum { return e } func (e *legacyEnumWrapper) protoUnwrap() interface{} { v := reflect.New(e.goTyp).Elem() v.SetInt(int64(e.num)) return v.Interface() } var ( _ pref.Enum = (*legacyEnumWrapper)(nil) _ unwrapper = (*legacyEnumWrapper)(nil) ) var legacyEnumDescCache sync.Map // map[reflect.Type]protoreflect.EnumDescriptor // LegacyLoadEnumDesc returns an EnumDescriptor derived from the Go type, // which must be an int32 kind and not implement the v2 API already. // // This is exported for testing purposes. func LegacyLoadEnumDesc(t reflect.Type) pref.EnumDescriptor { // Fast-path: check if an EnumDescriptor is cached for this concrete type. if ed, ok := legacyEnumDescCache.Load(t); ok { return ed.(pref.EnumDescriptor) } // Slow-path: initialize EnumDescriptor from the raw descriptor. ev := reflect.Zero(t).Interface() if _, ok := ev.(pref.Enum); ok { panic(fmt.Sprintf("%v already implements proto.Enum", t)) } edV1, ok := ev.(enumV1) if !ok { return aberrantLoadEnumDesc(t) } b, idxs := edV1.EnumDescriptor() var ed pref.EnumDescriptor if len(idxs) == 1 { ed = legacyLoadFileDesc(b).Enums().Get(idxs[0]) } else { md := legacyLoadFileDesc(b).Messages().Get(idxs[0]) for _, i := range idxs[1 : len(idxs)-1] { md = md.Messages().Get(i) } ed = md.Enums().Get(idxs[len(idxs)-1]) } if ed, ok := legacyEnumDescCache.LoadOrStore(t, ed); ok { return ed.(protoreflect.EnumDescriptor) } return ed } var aberrantEnumDescCache sync.Map // map[reflect.Type]protoreflect.EnumDescriptor // aberrantLoadEnumDesc returns an EnumDescriptor derived from the Go type, // which must not implement protoreflect.Enum or enumV1. // // If the type does not implement enumV1, then there is no reliable // way to derive the original protobuf type information. // We are unable to use the global enum registry since it is // unfortunately keyed by the protobuf full name, which we also do not know. // Thus, this produces some bogus enum descriptor based on the Go type name. func aberrantLoadEnumDesc(t reflect.Type) pref.EnumDescriptor { // Fast-path: check if an EnumDescriptor is cached for this concrete type. if ed, ok := aberrantEnumDescCache.Load(t); ok { return ed.(pref.EnumDescriptor) } // Slow-path: construct a bogus, but unique EnumDescriptor. ed := &filedesc.Enum{L2: new(filedesc.EnumL2)} ed.L0.FullName = AberrantDeriveFullName(t) // e.g., github_com.user.repo.MyEnum ed.L0.ParentFile = filedesc.SurrogateProto3 ed.L2.Values.List = append(ed.L2.Values.List, filedesc.EnumValue{}) // TODO: Use the presence of a UnmarshalJSON method to determine proto2? vd := &ed.L2.Values.List[0] vd.L0.FullName = ed.L0.FullName + "_UNKNOWN" // e.g., github_com.user.repo.MyEnum_UNKNOWN vd.L0.ParentFile = ed.L0.ParentFile vd.L0.Parent = ed // TODO: We could use the String method to obtain some enum value names by // starting at 0 and print the enum until it produces invalid identifiers. // An exhaustive query is clearly impractical, but can be best-effort. if ed, ok := aberrantEnumDescCache.LoadOrStore(t, ed); ok { return ed.(pref.EnumDescriptor) } return ed } // AberrantDeriveFullName derives a fully qualified protobuf name for the given Go type // The provided name is not guaranteed to be stable nor universally unique. // It should be sufficiently unique within a program. // // This is exported for testing purposes. func AberrantDeriveFullName(t reflect.Type) pref.FullName { sanitize := func(r rune) rune { switch { case r == '/': return '.' case 'a' <= r && r <= 'z', 'A' <= r && r <= 'Z', '0' <= r && r <= '9': return r default: return '_' } } prefix := strings.Map(sanitize, t.PkgPath()) suffix := strings.Map(sanitize, t.Name()) if suffix == "" { suffix = fmt.Sprintf("UnknownX%X", reflect.ValueOf(t).Pointer()) } ss := append(strings.Split(prefix, "."), suffix) for i, s := range ss { if s == "" || ('0' <= s[0] && s[0] <= '9') { ss[i] = "x" + s } } return pref.FullName(strings.Join(ss, ".")) } golang-google-protobuf-1.27.1/internal/impl/legacy_export.go000066400000000000000000000061421411250152500241310ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "encoding/binary" "encoding/json" "hash/crc32" "math" "reflect" "google.golang.org/protobuf/internal/errors" pref "google.golang.org/protobuf/reflect/protoreflect" piface "google.golang.org/protobuf/runtime/protoiface" ) // These functions exist to support exported APIs in generated protobufs. // While these are deprecated, they cannot be removed for compatibility reasons. // LegacyEnumName returns the name of enums used in legacy code. func (Export) LegacyEnumName(ed pref.EnumDescriptor) string { return legacyEnumName(ed) } // LegacyMessageTypeOf returns the protoreflect.MessageType for m, // with name used as the message name if necessary. func (Export) LegacyMessageTypeOf(m piface.MessageV1, name pref.FullName) pref.MessageType { if mv := (Export{}).protoMessageV2Of(m); mv != nil { return mv.ProtoReflect().Type() } return legacyLoadMessageType(reflect.TypeOf(m), name) } // UnmarshalJSONEnum unmarshals an enum from a JSON-encoded input. // The input can either be a string representing the enum value by name, // or a number representing the enum number itself. func (Export) UnmarshalJSONEnum(ed pref.EnumDescriptor, b []byte) (pref.EnumNumber, error) { if b[0] == '"' { var name pref.Name if err := json.Unmarshal(b, &name); err != nil { return 0, errors.New("invalid input for enum %v: %s", ed.FullName(), b) } ev := ed.Values().ByName(name) if ev == nil { return 0, errors.New("invalid value for enum %v: %s", ed.FullName(), name) } return ev.Number(), nil } else { var num pref.EnumNumber if err := json.Unmarshal(b, &num); err != nil { return 0, errors.New("invalid input for enum %v: %s", ed.FullName(), b) } return num, nil } } // CompressGZIP compresses the input as a GZIP-encoded file. // The current implementation does no compression. func (Export) CompressGZIP(in []byte) (out []byte) { // RFC 1952, section 2.3.1. var gzipHeader = [10]byte{0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff} // RFC 1951, section 3.2.4. var blockHeader [5]byte const maxBlockSize = math.MaxUint16 numBlocks := 1 + len(in)/maxBlockSize // RFC 1952, section 2.3.1. var gzipFooter [8]byte binary.LittleEndian.PutUint32(gzipFooter[0:4], crc32.ChecksumIEEE(in)) binary.LittleEndian.PutUint32(gzipFooter[4:8], uint32(len(in))) // Encode the input without compression using raw DEFLATE blocks. out = make([]byte, 0, len(gzipHeader)+len(blockHeader)*numBlocks+len(in)+len(gzipFooter)) out = append(out, gzipHeader[:]...) for blockHeader[0] == 0 { blockSize := maxBlockSize if blockSize > len(in) { blockHeader[0] = 0x01 // final bit per RFC 1951, section 3.2.3. blockSize = len(in) } binary.LittleEndian.PutUint16(blockHeader[1:3], uint16(blockSize)^0x0000) binary.LittleEndian.PutUint16(blockHeader[3:5], uint16(blockSize)^0xffff) out = append(out, blockHeader[:]...) out = append(out, in[:blockSize]...) in = in[blockSize:] } out = append(out, gzipFooter[:]...) return out } golang-google-protobuf-1.27.1/internal/impl/legacy_export_test.go000066400000000000000000000016651411250152500251750ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "bytes" "compress/gzip" "io/ioutil" "math" "strings" "testing" ) func TestCompressGZIP(t *testing.T) { tests := []string{ "", "a", "ab", "abc", strings.Repeat("a", math.MaxUint16-1), strings.Repeat("b", math.MaxUint16), strings.Repeat("c", math.MaxUint16+1), strings.Repeat("abcdefghijklmnopqrstuvwxyz", math.MaxUint16-13), } for _, want := range tests { rb := bytes.NewReader(Export{}.CompressGZIP([]byte(want))) zr, err := gzip.NewReader(rb) if err != nil { t.Errorf("unexpected gzip.NewReader error: %v", err) } b, err := ioutil.ReadAll(zr) if err != nil { t.Errorf("unexpected ioutil.ReadAll error: %v", err) } if got := string(b); got != want { t.Errorf("output mismatch: got %q, want %q", got, want) } } } golang-google-protobuf-1.27.1/internal/impl/legacy_extension.go000066400000000000000000000162431411250152500246270ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "reflect" "google.golang.org/protobuf/internal/descopts" "google.golang.org/protobuf/internal/encoding/messageset" ptag "google.golang.org/protobuf/internal/encoding/tag" "google.golang.org/protobuf/internal/filedesc" "google.golang.org/protobuf/internal/pragma" pref "google.golang.org/protobuf/reflect/protoreflect" preg "google.golang.org/protobuf/reflect/protoregistry" piface "google.golang.org/protobuf/runtime/protoiface" ) func (xi *ExtensionInfo) initToLegacy() { xd := xi.desc var parent piface.MessageV1 messageName := xd.ContainingMessage().FullName() if mt, _ := preg.GlobalTypes.FindMessageByName(messageName); mt != nil { // Create a new parent message and unwrap it if possible. mv := mt.New().Interface() t := reflect.TypeOf(mv) if mv, ok := mv.(unwrapper); ok { t = reflect.TypeOf(mv.protoUnwrap()) } // Check whether the message implements the legacy v1 Message interface. mz := reflect.Zero(t).Interface() if mz, ok := mz.(piface.MessageV1); ok { parent = mz } } // Determine the v1 extension type, which is unfortunately not the same as // the v2 ExtensionType.GoType. extType := xi.goType switch extType.Kind() { case reflect.Bool, reflect.Int32, reflect.Int64, reflect.Uint32, reflect.Uint64, reflect.Float32, reflect.Float64, reflect.String: extType = reflect.PtrTo(extType) // T -> *T for singular scalar fields } // Reconstruct the legacy enum full name. var enumName string if xd.Kind() == pref.EnumKind { enumName = legacyEnumName(xd.Enum()) } // Derive the proto file that the extension was declared within. var filename string if fd := xd.ParentFile(); fd != nil { filename = fd.Path() } // For MessageSet extensions, the name used is the parent message. name := xd.FullName() if messageset.IsMessageSetExtension(xd) { name = name.Parent() } xi.ExtendedType = parent xi.ExtensionType = reflect.Zero(extType).Interface() xi.Field = int32(xd.Number()) xi.Name = string(name) xi.Tag = ptag.Marshal(xd, enumName) xi.Filename = filename } // initFromLegacy initializes an ExtensionInfo from // the contents of the deprecated exported fields of the type. func (xi *ExtensionInfo) initFromLegacy() { // The v1 API returns "type incomplete" descriptors where only the // field number is specified. In such a case, use a placeholder. if xi.ExtendedType == nil || xi.ExtensionType == nil { xd := placeholderExtension{ name: pref.FullName(xi.Name), number: pref.FieldNumber(xi.Field), } xi.desc = extensionTypeDescriptor{xd, xi} return } // Resolve enum or message dependencies. var ed pref.EnumDescriptor var md pref.MessageDescriptor t := reflect.TypeOf(xi.ExtensionType) isOptional := t.Kind() == reflect.Ptr && t.Elem().Kind() != reflect.Struct isRepeated := t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8 if isOptional || isRepeated { t = t.Elem() } switch v := reflect.Zero(t).Interface().(type) { case pref.Enum: ed = v.Descriptor() case enumV1: ed = LegacyLoadEnumDesc(t) case pref.ProtoMessage: md = v.ProtoReflect().Descriptor() case messageV1: md = LegacyLoadMessageDesc(t) } // Derive basic field information from the struct tag. var evs pref.EnumValueDescriptors if ed != nil { evs = ed.Values() } fd := ptag.Unmarshal(xi.Tag, t, evs).(*filedesc.Field) // Construct a v2 ExtensionType. xd := &filedesc.Extension{L2: new(filedesc.ExtensionL2)} xd.L0.ParentFile = filedesc.SurrogateProto2 xd.L0.FullName = pref.FullName(xi.Name) xd.L1.Number = pref.FieldNumber(xi.Field) xd.L1.Cardinality = fd.L1.Cardinality xd.L1.Kind = fd.L1.Kind xd.L2.IsPacked = fd.L1.IsPacked xd.L2.Default = fd.L1.Default xd.L1.Extendee = Export{}.MessageDescriptorOf(xi.ExtendedType) xd.L2.Enum = ed xd.L2.Message = md // Derive real extension field name for MessageSets. if messageset.IsMessageSet(xd.L1.Extendee) && md.FullName() == xd.L0.FullName { xd.L0.FullName = xd.L0.FullName.Append(messageset.ExtensionName) } tt := reflect.TypeOf(xi.ExtensionType) if isOptional { tt = tt.Elem() } xi.goType = tt xi.desc = extensionTypeDescriptor{xd, xi} } type placeholderExtension struct { name pref.FullName number pref.FieldNumber } func (x placeholderExtension) ParentFile() pref.FileDescriptor { return nil } func (x placeholderExtension) Parent() pref.Descriptor { return nil } func (x placeholderExtension) Index() int { return 0 } func (x placeholderExtension) Syntax() pref.Syntax { return 0 } func (x placeholderExtension) Name() pref.Name { return x.name.Name() } func (x placeholderExtension) FullName() pref.FullName { return x.name } func (x placeholderExtension) IsPlaceholder() bool { return true } func (x placeholderExtension) Options() pref.ProtoMessage { return descopts.Field } func (x placeholderExtension) Number() pref.FieldNumber { return x.number } func (x placeholderExtension) Cardinality() pref.Cardinality { return 0 } func (x placeholderExtension) Kind() pref.Kind { return 0 } func (x placeholderExtension) HasJSONName() bool { return false } func (x placeholderExtension) JSONName() string { return "[" + string(x.name) + "]" } func (x placeholderExtension) TextName() string { return "[" + string(x.name) + "]" } func (x placeholderExtension) HasPresence() bool { return false } func (x placeholderExtension) HasOptionalKeyword() bool { return false } func (x placeholderExtension) IsExtension() bool { return true } func (x placeholderExtension) IsWeak() bool { return false } func (x placeholderExtension) IsPacked() bool { return false } func (x placeholderExtension) IsList() bool { return false } func (x placeholderExtension) IsMap() bool { return false } func (x placeholderExtension) MapKey() pref.FieldDescriptor { return nil } func (x placeholderExtension) MapValue() pref.FieldDescriptor { return nil } func (x placeholderExtension) HasDefault() bool { return false } func (x placeholderExtension) Default() pref.Value { return pref.Value{} } func (x placeholderExtension) DefaultEnumValue() pref.EnumValueDescriptor { return nil } func (x placeholderExtension) ContainingOneof() pref.OneofDescriptor { return nil } func (x placeholderExtension) ContainingMessage() pref.MessageDescriptor { return nil } func (x placeholderExtension) Enum() pref.EnumDescriptor { return nil } func (x placeholderExtension) Message() pref.MessageDescriptor { return nil } func (x placeholderExtension) ProtoType(pref.FieldDescriptor) { return } func (x placeholderExtension) ProtoInternal(pragma.DoNotImplement) { return } golang-google-protobuf-1.27.1/internal/impl/legacy_file.go000066400000000000000000000050121411250152500235220ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "bytes" "compress/gzip" "io/ioutil" "sync" "google.golang.org/protobuf/internal/filedesc" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" ) // Every enum and message type generated by protoc-gen-go since commit 2fc053c5 // on February 25th, 2016 has had a method to get the raw descriptor. // Types that were not generated by protoc-gen-go or were generated prior // to that version are not supported. // // The []byte returned is the encoded form of a FileDescriptorProto message // compressed using GZIP. The []int is the path from the top-level file // to the specific message or enum declaration. type ( enumV1 interface { EnumDescriptor() ([]byte, []int) } messageV1 interface { Descriptor() ([]byte, []int) } ) var legacyFileDescCache sync.Map // map[*byte]protoreflect.FileDescriptor // legacyLoadFileDesc unmarshals b as a compressed FileDescriptorProto message. // // This assumes that b is immutable and that b does not refer to part of a // concatenated series of GZIP files (which would require shenanigans that // rely on the concatenation properties of both protobufs and GZIP). // File descriptors generated by protoc-gen-go do not rely on that property. func legacyLoadFileDesc(b []byte) protoreflect.FileDescriptor { // Fast-path: check whether we already have a cached file descriptor. if fd, ok := legacyFileDescCache.Load(&b[0]); ok { return fd.(protoreflect.FileDescriptor) } // Slow-path: decompress and unmarshal the file descriptor proto. zr, err := gzip.NewReader(bytes.NewReader(b)) if err != nil { panic(err) } b2, err := ioutil.ReadAll(zr) if err != nil { panic(err) } fd := filedesc.Builder{ RawDescriptor: b2, FileRegistry: resolverOnly{protoregistry.GlobalFiles}, // do not register back to global registry }.Build().File if fd, ok := legacyFileDescCache.LoadOrStore(&b[0], fd); ok { return fd.(protoreflect.FileDescriptor) } return fd } type resolverOnly struct { reg *protoregistry.Files } func (r resolverOnly) FindFileByPath(path string) (protoreflect.FileDescriptor, error) { return r.reg.FindFileByPath(path) } func (r resolverOnly) FindDescriptorByName(name protoreflect.FullName) (protoreflect.Descriptor, error) { return r.reg.FindDescriptorByName(name) } func (resolverOnly) RegisterFile(protoreflect.FileDescriptor) error { return nil } golang-google-protobuf-1.27.1/internal/impl/legacy_file_test.go000066400000000000000000000574301411250152500245740ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl_test import ( "bytes" "compress/gzip" "io/ioutil" "reflect" "testing" "github.com/google/go-cmp/cmp" "google.golang.org/protobuf/internal/impl" "google.golang.org/protobuf/internal/pragma" "google.golang.org/protobuf/proto" pdesc "google.golang.org/protobuf/reflect/protodesc" pref "google.golang.org/protobuf/reflect/protoreflect" proto2_20160225 "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20160225_2fc053c5" proto2_20160519 "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20160519_a4ab9ec5" proto2_20180125 "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20180125_92554152" proto2_20180430 "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20180430_b4deda09" proto2_20180814 "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20180814_aa810b61" proto2_20190205 "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20190205_c823c79e" proto3_20160225 "google.golang.org/protobuf/internal/testprotos/legacy/proto3_20160225_2fc053c5" proto3_20160519 "google.golang.org/protobuf/internal/testprotos/legacy/proto3_20160519_a4ab9ec5" proto3_20180125 "google.golang.org/protobuf/internal/testprotos/legacy/proto3_20180125_92554152" proto3_20180430 "google.golang.org/protobuf/internal/testprotos/legacy/proto3_20180430_b4deda09" proto3_20180814 "google.golang.org/protobuf/internal/testprotos/legacy/proto3_20180814_aa810b61" proto3_20190205 "google.golang.org/protobuf/internal/testprotos/legacy/proto3_20190205_c823c79e" "google.golang.org/protobuf/types/descriptorpb" ) func mustLoadFileDesc(b []byte, _ []int) pref.FileDescriptor { zr, err := gzip.NewReader(bytes.NewReader(b)) if err != nil { panic(err) } b, err = ioutil.ReadAll(zr) if err != nil { panic(err) } p := new(descriptorpb.FileDescriptorProto) err = proto.UnmarshalOptions{DiscardUnknown: true}.Unmarshal(b, p) if err != nil { panic(err) } fd, err := pdesc.NewFile(p, nil) if err != nil { panic(err) } return fd } func TestDescriptor(t *testing.T) { var tests []struct{ got, want pref.Descriptor } fileDescP2_20160225 := mustLoadFileDesc(new(proto2_20160225.Message).Descriptor()) tests = append(tests, []struct{ got, want pref.Descriptor }{{ got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto2_20160225.SiblingEnum(0))), want: fileDescP2_20160225.Enums().ByName("SiblingEnum"), }, { got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto2_20160225.Message_ChildEnum(0))), want: fileDescP2_20160225.Messages().ByName("Message").Enums().ByName("ChildEnum"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20160225.SiblingMessage))), want: fileDescP2_20160225.Messages().ByName("SiblingMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20160225.Message_ChildMessage))), want: fileDescP2_20160225.Messages().ByName("Message").Messages().ByName("ChildMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20160225.Message))), want: fileDescP2_20160225.Messages().ByName("Message"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20160225.Message_NamedGroup))), want: fileDescP2_20160225.Messages().ByName("Message").Messages().ByName("NamedGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20160225.Message_OptionalGroup))), want: fileDescP2_20160225.Messages().ByName("Message").Messages().ByName("OptionalGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20160225.Message_RequiredGroup))), want: fileDescP2_20160225.Messages().ByName("Message").Messages().ByName("RequiredGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20160225.Message_RepeatedGroup))), want: fileDescP2_20160225.Messages().ByName("Message").Messages().ByName("RepeatedGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20160225.Message_OneofGroup))), want: fileDescP2_20160225.Messages().ByName("Message").Messages().ByName("OneofGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20160225.Message_ExtensionOptionalGroup))), want: fileDescP2_20160225.Messages().ByName("Message").Messages().ByName("ExtensionOptionalGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20160225.Message_ExtensionRepeatedGroup))), want: fileDescP2_20160225.Messages().ByName("Message").Messages().ByName("ExtensionRepeatedGroup"), }}...) fileDescP3_20160225 := mustLoadFileDesc(new(proto3_20160225.Message).Descriptor()) tests = append(tests, []struct{ got, want pref.Descriptor }{{ got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto3_20160225.SiblingEnum(0))), want: fileDescP3_20160225.Enums().ByName("SiblingEnum"), }, { got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto3_20160225.Message_ChildEnum(0))), want: fileDescP3_20160225.Messages().ByName("Message").Enums().ByName("ChildEnum"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto3_20160225.SiblingMessage))), want: fileDescP3_20160225.Messages().ByName("SiblingMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto3_20160225.Message_ChildMessage))), want: fileDescP3_20160225.Messages().ByName("Message").Messages().ByName("ChildMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto3_20160225.Message))), want: fileDescP3_20160225.Messages().ByName("Message"), }}...) fileDescP2_20160519 := mustLoadFileDesc(new(proto2_20160519.Message).Descriptor()) tests = append(tests, []struct{ got, want pref.Descriptor }{{ got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto2_20160519.SiblingEnum(0))), want: fileDescP2_20160519.Enums().ByName("SiblingEnum"), }, { got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto2_20160519.Message_ChildEnum(0))), want: fileDescP2_20160519.Messages().ByName("Message").Enums().ByName("ChildEnum"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20160519.SiblingMessage))), want: fileDescP2_20160519.Messages().ByName("SiblingMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20160519.Message_ChildMessage))), want: fileDescP2_20160519.Messages().ByName("Message").Messages().ByName("ChildMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20160519.Message))), want: fileDescP2_20160519.Messages().ByName("Message"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20160519.Message_NamedGroup))), want: fileDescP2_20160519.Messages().ByName("Message").Messages().ByName("NamedGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20160519.Message_OptionalGroup))), want: fileDescP2_20160519.Messages().ByName("Message").Messages().ByName("OptionalGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20160519.Message_RequiredGroup))), want: fileDescP2_20160519.Messages().ByName("Message").Messages().ByName("RequiredGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20160519.Message_RepeatedGroup))), want: fileDescP2_20160519.Messages().ByName("Message").Messages().ByName("RepeatedGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20160519.Message_OneofGroup))), want: fileDescP2_20160519.Messages().ByName("Message").Messages().ByName("OneofGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20160519.Message_ExtensionOptionalGroup))), want: fileDescP2_20160519.Messages().ByName("Message").Messages().ByName("ExtensionOptionalGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20160519.Message_ExtensionRepeatedGroup))), want: fileDescP2_20160519.Messages().ByName("Message").Messages().ByName("ExtensionRepeatedGroup"), }}...) fileDescP3_20160519 := mustLoadFileDesc(new(proto3_20160519.Message).Descriptor()) tests = append(tests, []struct{ got, want pref.Descriptor }{{ got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto3_20160519.SiblingEnum(0))), want: fileDescP3_20160519.Enums().ByName("SiblingEnum"), }, { got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto3_20160519.Message_ChildEnum(0))), want: fileDescP3_20160519.Messages().ByName("Message").Enums().ByName("ChildEnum"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto3_20160519.SiblingMessage))), want: fileDescP3_20160519.Messages().ByName("SiblingMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto3_20160519.Message_ChildMessage))), want: fileDescP3_20160519.Messages().ByName("Message").Messages().ByName("ChildMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto3_20160519.Message))), want: fileDescP3_20160519.Messages().ByName("Message"), }}...) fileDescP2_20180125 := mustLoadFileDesc(new(proto2_20180125.Message).Descriptor()) tests = append(tests, []struct{ got, want pref.Descriptor }{{ got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto2_20180125.SiblingEnum(0))), want: fileDescP2_20180125.Enums().ByName("SiblingEnum"), }, { got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto2_20180125.Message_ChildEnum(0))), want: fileDescP2_20180125.Messages().ByName("Message").Enums().ByName("ChildEnum"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180125.SiblingMessage))), want: fileDescP2_20180125.Messages().ByName("SiblingMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180125.Message_ChildMessage))), want: fileDescP2_20180125.Messages().ByName("Message").Messages().ByName("ChildMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180125.Message))), want: fileDescP2_20180125.Messages().ByName("Message"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180125.Message_NamedGroup))), want: fileDescP2_20180125.Messages().ByName("Message").Messages().ByName("NamedGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180125.Message_OptionalGroup))), want: fileDescP2_20180125.Messages().ByName("Message").Messages().ByName("OptionalGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180125.Message_RequiredGroup))), want: fileDescP2_20180125.Messages().ByName("Message").Messages().ByName("RequiredGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180125.Message_RepeatedGroup))), want: fileDescP2_20180125.Messages().ByName("Message").Messages().ByName("RepeatedGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180125.Message_OneofGroup))), want: fileDescP2_20180125.Messages().ByName("Message").Messages().ByName("OneofGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180125.Message_ExtensionOptionalGroup))), want: fileDescP2_20180125.Messages().ByName("Message").Messages().ByName("ExtensionOptionalGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180125.Message_ExtensionRepeatedGroup))), want: fileDescP2_20180125.Messages().ByName("Message").Messages().ByName("ExtensionRepeatedGroup"), }}...) fileDescP3_20180125 := mustLoadFileDesc(new(proto3_20180125.Message).Descriptor()) tests = append(tests, []struct{ got, want pref.Descriptor }{{ got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto3_20180125.SiblingEnum(0))), want: fileDescP3_20180125.Enums().ByName("SiblingEnum"), }, { got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto3_20180125.Message_ChildEnum(0))), want: fileDescP3_20180125.Messages().ByName("Message").Enums().ByName("ChildEnum"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto3_20180125.SiblingMessage))), want: fileDescP3_20180125.Messages().ByName("SiblingMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto3_20180125.Message_ChildMessage))), want: fileDescP3_20180125.Messages().ByName("Message").Messages().ByName("ChildMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto3_20180125.Message))), want: fileDescP3_20180125.Messages().ByName("Message"), }}...) fileDescP2_20180430 := mustLoadFileDesc(new(proto2_20180430.Message).Descriptor()) tests = append(tests, []struct{ got, want pref.Descriptor }{{ got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto2_20180430.SiblingEnum(0))), want: fileDescP2_20180430.Enums().ByName("SiblingEnum"), }, { got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto2_20180430.Message_ChildEnum(0))), want: fileDescP2_20180430.Messages().ByName("Message").Enums().ByName("ChildEnum"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180430.SiblingMessage))), want: fileDescP2_20180430.Messages().ByName("SiblingMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180430.Message_ChildMessage))), want: fileDescP2_20180430.Messages().ByName("Message").Messages().ByName("ChildMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180430.Message))), want: fileDescP2_20180430.Messages().ByName("Message"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180430.Message_NamedGroup))), want: fileDescP2_20180430.Messages().ByName("Message").Messages().ByName("NamedGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180430.Message_OptionalGroup))), want: fileDescP2_20180430.Messages().ByName("Message").Messages().ByName("OptionalGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180430.Message_RequiredGroup))), want: fileDescP2_20180430.Messages().ByName("Message").Messages().ByName("RequiredGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180430.Message_RepeatedGroup))), want: fileDescP2_20180430.Messages().ByName("Message").Messages().ByName("RepeatedGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180430.Message_OneofGroup))), want: fileDescP2_20180430.Messages().ByName("Message").Messages().ByName("OneofGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180430.Message_ExtensionOptionalGroup))), want: fileDescP2_20180430.Messages().ByName("Message").Messages().ByName("ExtensionOptionalGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180430.Message_ExtensionRepeatedGroup))), want: fileDescP2_20180430.Messages().ByName("Message").Messages().ByName("ExtensionRepeatedGroup"), }}...) fileDescP3_20180430 := mustLoadFileDesc(new(proto3_20180430.Message).Descriptor()) tests = append(tests, []struct{ got, want pref.Descriptor }{{ got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto3_20180430.SiblingEnum(0))), want: fileDescP3_20180430.Enums().ByName("SiblingEnum"), }, { got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto3_20180430.Message_ChildEnum(0))), want: fileDescP3_20180430.Messages().ByName("Message").Enums().ByName("ChildEnum"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto3_20180430.SiblingMessage))), want: fileDescP3_20180430.Messages().ByName("SiblingMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto3_20180430.Message_ChildMessage))), want: fileDescP3_20180430.Messages().ByName("Message").Messages().ByName("ChildMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto3_20180430.Message))), want: fileDescP3_20180430.Messages().ByName("Message"), }}...) fileDescP2_20180814 := mustLoadFileDesc(new(proto2_20180814.Message).Descriptor()) tests = append(tests, []struct{ got, want pref.Descriptor }{{ got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto2_20180814.SiblingEnum(0))), want: fileDescP2_20180814.Enums().ByName("SiblingEnum"), }, { got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto2_20180814.Message_ChildEnum(0))), want: fileDescP2_20180814.Messages().ByName("Message").Enums().ByName("ChildEnum"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180814.SiblingMessage))), want: fileDescP2_20180814.Messages().ByName("SiblingMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180814.Message_ChildMessage))), want: fileDescP2_20180814.Messages().ByName("Message").Messages().ByName("ChildMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180814.Message))), want: fileDescP2_20180814.Messages().ByName("Message"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180814.Message_NamedGroup))), want: fileDescP2_20180814.Messages().ByName("Message").Messages().ByName("NamedGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180814.Message_OptionalGroup))), want: fileDescP2_20180814.Messages().ByName("Message").Messages().ByName("OptionalGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180814.Message_RequiredGroup))), want: fileDescP2_20180814.Messages().ByName("Message").Messages().ByName("RequiredGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180814.Message_RepeatedGroup))), want: fileDescP2_20180814.Messages().ByName("Message").Messages().ByName("RepeatedGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180814.Message_OneofGroup))), want: fileDescP2_20180814.Messages().ByName("Message").Messages().ByName("OneofGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180814.Message_ExtensionOptionalGroup))), want: fileDescP2_20180814.Messages().ByName("Message").Messages().ByName("ExtensionOptionalGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20180814.Message_ExtensionRepeatedGroup))), want: fileDescP2_20180814.Messages().ByName("Message").Messages().ByName("ExtensionRepeatedGroup"), }}...) fileDescP3_20180814 := mustLoadFileDesc(new(proto3_20180814.Message).Descriptor()) tests = append(tests, []struct{ got, want pref.Descriptor }{{ got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto3_20180814.SiblingEnum(0))), want: fileDescP3_20180814.Enums().ByName("SiblingEnum"), }, { got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto3_20180814.Message_ChildEnum(0))), want: fileDescP3_20180814.Messages().ByName("Message").Enums().ByName("ChildEnum"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto3_20180814.SiblingMessage))), want: fileDescP3_20180814.Messages().ByName("SiblingMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto3_20180814.Message_ChildMessage))), want: fileDescP3_20180814.Messages().ByName("Message").Messages().ByName("ChildMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto3_20180814.Message))), want: fileDescP3_20180814.Messages().ByName("Message"), }}...) fileDescP2_20190205 := mustLoadFileDesc(new(proto2_20190205.Message).Descriptor()) tests = append(tests, []struct{ got, want pref.Descriptor }{{ got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto2_20190205.SiblingEnum(0))), want: fileDescP2_20190205.Enums().ByName("SiblingEnum"), }, { got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto2_20190205.Message_ChildEnum(0))), want: fileDescP2_20190205.Messages().ByName("Message").Enums().ByName("ChildEnum"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20190205.SiblingMessage))), want: fileDescP2_20190205.Messages().ByName("SiblingMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20190205.Message_ChildMessage))), want: fileDescP2_20190205.Messages().ByName("Message").Messages().ByName("ChildMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20190205.Message))), want: fileDescP2_20190205.Messages().ByName("Message"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20190205.Message_NamedGroup))), want: fileDescP2_20190205.Messages().ByName("Message").Messages().ByName("NamedGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20190205.Message_OptionalGroup))), want: fileDescP2_20190205.Messages().ByName("Message").Messages().ByName("OptionalGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20190205.Message_RequiredGroup))), want: fileDescP2_20190205.Messages().ByName("Message").Messages().ByName("RequiredGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20190205.Message_RepeatedGroup))), want: fileDescP2_20190205.Messages().ByName("Message").Messages().ByName("RepeatedGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20190205.Message_OneofGroup))), want: fileDescP2_20190205.Messages().ByName("Message").Messages().ByName("OneofGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20190205.Message_ExtensionOptionalGroup))), want: fileDescP2_20190205.Messages().ByName("Message").Messages().ByName("ExtensionOptionalGroup"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto2_20190205.Message_ExtensionRepeatedGroup))), want: fileDescP2_20190205.Messages().ByName("Message").Messages().ByName("ExtensionRepeatedGroup"), }}...) fileDescP3_20190205 := mustLoadFileDesc(new(proto3_20190205.Message).Descriptor()) tests = append(tests, []struct{ got, want pref.Descriptor }{{ got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto3_20190205.SiblingEnum(0))), want: fileDescP3_20190205.Enums().ByName("SiblingEnum"), }, { got: impl.LegacyLoadEnumDesc(reflect.TypeOf(proto3_20190205.Message_ChildEnum(0))), want: fileDescP3_20190205.Messages().ByName("Message").Enums().ByName("ChildEnum"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto3_20190205.SiblingMessage))), want: fileDescP3_20190205.Messages().ByName("SiblingMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto3_20190205.Message_ChildMessage))), want: fileDescP3_20190205.Messages().ByName("Message").Messages().ByName("ChildMessage"), }, { got: impl.LegacyLoadMessageDesc(reflect.TypeOf(new(proto3_20190205.Message))), want: fileDescP3_20190205.Messages().ByName("Message"), }}...) // TODO: We need a test package to compare descriptors. type list interface { Len() int pragma.DoNotImplement } opts := cmp.Options{ cmp.Transformer("", func(x list) []interface{} { out := make([]interface{}, x.Len()) v := reflect.ValueOf(x) for i := 0; i < x.Len(); i++ { m := v.MethodByName("Get") out[i] = m.Call([]reflect.Value{reflect.ValueOf(i)})[0].Interface() } return out }), cmp.Transformer("", func(x pref.Descriptor) map[string]interface{} { out := make(map[string]interface{}) v := reflect.ValueOf(x) for i := 0; i < v.NumMethod(); i++ { name := v.Type().Method(i).Name if m := v.Method(i); m.Type().NumIn() == 0 && m.Type().NumOut() == 1 { switch name { case "ParentFile", "Parent": // Ignore parents to avoid recursive cycle. case "Index": // Ignore index since legacy descriptors have no parent. case "Options": // Ignore descriptor options since protos are not cmperable. case "Enums", "Messages", "Extensions": // Ignore nested message and enum declarations since // legacy descriptors are all created standalone. case "HasJSONName": // Ignore this since the semantics of the field has // changed across protoc and protoc-gen-go releases. case "ContainingOneof", "ContainingMessage", "Enum", "Message": // Avoid descending into a dependency to avoid a cycle. // Just record the full name if available. // // TODO: Cycle support in cmp would be useful here. v := m.Call(nil)[0] if !v.IsNil() { out[name] = v.Interface().(pref.Descriptor).FullName() } default: out[name] = m.Call(nil)[0].Interface() } } } return out }), cmp.Transformer("", func(v pref.Value) interface{} { return v.Interface() }), } for _, tt := range tests { t.Run(string(tt.want.FullName()), func(t *testing.T) { if diff := cmp.Diff(&tt.want, &tt.got, opts); diff != "" { t.Errorf("descriptor mismatch (-want, +got):\n%s", diff) } }) } } golang-google-protobuf-1.27.1/internal/impl/legacy_message.go000066400000000000000000000441201411250152500242320ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "fmt" "reflect" "strings" "sync" "google.golang.org/protobuf/internal/descopts" ptag "google.golang.org/protobuf/internal/encoding/tag" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/filedesc" "google.golang.org/protobuf/internal/strs" "google.golang.org/protobuf/reflect/protoreflect" pref "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/runtime/protoiface" piface "google.golang.org/protobuf/runtime/protoiface" ) // legacyWrapMessage wraps v as a protoreflect.Message, // where v must be a *struct kind and not implement the v2 API already. func legacyWrapMessage(v reflect.Value) pref.Message { t := v.Type() if t.Kind() != reflect.Ptr || t.Elem().Kind() != reflect.Struct { return aberrantMessage{v: v} } mt := legacyLoadMessageInfo(t, "") return mt.MessageOf(v.Interface()) } // legacyLoadMessageType dynamically loads a protoreflect.Type for t, // where t must be not implement the v2 API already. // The provided name is used if it cannot be determined from the message. func legacyLoadMessageType(t reflect.Type, name pref.FullName) protoreflect.MessageType { if t.Kind() != reflect.Ptr || t.Elem().Kind() != reflect.Struct { return aberrantMessageType{t} } return legacyLoadMessageInfo(t, name) } var legacyMessageTypeCache sync.Map // map[reflect.Type]*MessageInfo // legacyLoadMessageInfo dynamically loads a *MessageInfo for t, // where t must be a *struct kind and not implement the v2 API already. // The provided name is used if it cannot be determined from the message. func legacyLoadMessageInfo(t reflect.Type, name pref.FullName) *MessageInfo { // Fast-path: check if a MessageInfo is cached for this concrete type. if mt, ok := legacyMessageTypeCache.Load(t); ok { return mt.(*MessageInfo) } // Slow-path: derive message descriptor and initialize MessageInfo. mi := &MessageInfo{ Desc: legacyLoadMessageDesc(t, name), GoReflectType: t, } var hasMarshal, hasUnmarshal bool v := reflect.Zero(t).Interface() if _, hasMarshal = v.(legacyMarshaler); hasMarshal { mi.methods.Marshal = legacyMarshal // We have no way to tell whether the type's Marshal method // supports deterministic serialization or not, but this // preserves the v1 implementation's behavior of always // calling Marshal methods when present. mi.methods.Flags |= piface.SupportMarshalDeterministic } if _, hasUnmarshal = v.(legacyUnmarshaler); hasUnmarshal { mi.methods.Unmarshal = legacyUnmarshal } if _, hasMerge := v.(legacyMerger); hasMerge || (hasMarshal && hasUnmarshal) { mi.methods.Merge = legacyMerge } if mi, ok := legacyMessageTypeCache.LoadOrStore(t, mi); ok { return mi.(*MessageInfo) } return mi } var legacyMessageDescCache sync.Map // map[reflect.Type]protoreflect.MessageDescriptor // LegacyLoadMessageDesc returns an MessageDescriptor derived from the Go type, // which should be a *struct kind and must not implement the v2 API already. // // This is exported for testing purposes. func LegacyLoadMessageDesc(t reflect.Type) pref.MessageDescriptor { return legacyLoadMessageDesc(t, "") } func legacyLoadMessageDesc(t reflect.Type, name pref.FullName) pref.MessageDescriptor { // Fast-path: check if a MessageDescriptor is cached for this concrete type. if mi, ok := legacyMessageDescCache.Load(t); ok { return mi.(pref.MessageDescriptor) } // Slow-path: initialize MessageDescriptor from the raw descriptor. mv := reflect.Zero(t).Interface() if _, ok := mv.(pref.ProtoMessage); ok { panic(fmt.Sprintf("%v already implements proto.Message", t)) } mdV1, ok := mv.(messageV1) if !ok { return aberrantLoadMessageDesc(t, name) } // If this is a dynamic message type where there isn't a 1-1 mapping between // Go and protobuf types, calling the Descriptor method on the zero value of // the message type isn't likely to work. If it panics, swallow the panic and // continue as if the Descriptor method wasn't present. b, idxs := func() ([]byte, []int) { defer func() { recover() }() return mdV1.Descriptor() }() if b == nil { return aberrantLoadMessageDesc(t, name) } // If the Go type has no fields, then this might be a proto3 empty message // from before the size cache was added. If there are any fields, check to // see that at least one of them looks like something we generated. if t.Elem().Kind() == reflect.Struct { if nfield := t.Elem().NumField(); nfield > 0 { hasProtoField := false for i := 0; i < nfield; i++ { f := t.Elem().Field(i) if f.Tag.Get("protobuf") != "" || f.Tag.Get("protobuf_oneof") != "" || strings.HasPrefix(f.Name, "XXX_") { hasProtoField = true break } } if !hasProtoField { return aberrantLoadMessageDesc(t, name) } } } md := legacyLoadFileDesc(b).Messages().Get(idxs[0]) for _, i := range idxs[1:] { md = md.Messages().Get(i) } if name != "" && md.FullName() != name { panic(fmt.Sprintf("mismatching message name: got %v, want %v", md.FullName(), name)) } if md, ok := legacyMessageDescCache.LoadOrStore(t, md); ok { return md.(protoreflect.MessageDescriptor) } return md } var ( aberrantMessageDescLock sync.Mutex aberrantMessageDescCache map[reflect.Type]protoreflect.MessageDescriptor ) // aberrantLoadMessageDesc returns an MessageDescriptor derived from the Go type, // which must not implement protoreflect.ProtoMessage or messageV1. // // This is a best-effort derivation of the message descriptor using the protobuf // tags on the struct fields. func aberrantLoadMessageDesc(t reflect.Type, name pref.FullName) pref.MessageDescriptor { aberrantMessageDescLock.Lock() defer aberrantMessageDescLock.Unlock() if aberrantMessageDescCache == nil { aberrantMessageDescCache = make(map[reflect.Type]protoreflect.MessageDescriptor) } return aberrantLoadMessageDescReentrant(t, name) } func aberrantLoadMessageDescReentrant(t reflect.Type, name pref.FullName) pref.MessageDescriptor { // Fast-path: check if an MessageDescriptor is cached for this concrete type. if md, ok := aberrantMessageDescCache[t]; ok { return md } // Slow-path: construct a descriptor from the Go struct type (best-effort). // Cache the MessageDescriptor early on so that we can resolve internal // cyclic references. md := &filedesc.Message{L2: new(filedesc.MessageL2)} md.L0.FullName = aberrantDeriveMessageName(t, name) md.L0.ParentFile = filedesc.SurrogateProto2 aberrantMessageDescCache[t] = md if t.Kind() != reflect.Ptr || t.Elem().Kind() != reflect.Struct { return md } // Try to determine if the message is using proto3 by checking scalars. for i := 0; i < t.Elem().NumField(); i++ { f := t.Elem().Field(i) if tag := f.Tag.Get("protobuf"); tag != "" { switch f.Type.Kind() { case reflect.Bool, reflect.Int32, reflect.Int64, reflect.Uint32, reflect.Uint64, reflect.Float32, reflect.Float64, reflect.String: md.L0.ParentFile = filedesc.SurrogateProto3 } for _, s := range strings.Split(tag, ",") { if s == "proto3" { md.L0.ParentFile = filedesc.SurrogateProto3 } } } } // Obtain a list of oneof wrapper types. var oneofWrappers []reflect.Type for _, method := range []string{"XXX_OneofFuncs", "XXX_OneofWrappers"} { if fn, ok := t.MethodByName(method); ok { for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { if vs, ok := v.Interface().([]interface{}); ok { for _, v := range vs { oneofWrappers = append(oneofWrappers, reflect.TypeOf(v)) } } } } } // Obtain a list of the extension ranges. if fn, ok := t.MethodByName("ExtensionRangeArray"); ok { vs := fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))})[0] for i := 0; i < vs.Len(); i++ { v := vs.Index(i) md.L2.ExtensionRanges.List = append(md.L2.ExtensionRanges.List, [2]pref.FieldNumber{ pref.FieldNumber(v.FieldByName("Start").Int()), pref.FieldNumber(v.FieldByName("End").Int() + 1), }) md.L2.ExtensionRangeOptions = append(md.L2.ExtensionRangeOptions, nil) } } // Derive the message fields by inspecting the struct fields. for i := 0; i < t.Elem().NumField(); i++ { f := t.Elem().Field(i) if tag := f.Tag.Get("protobuf"); tag != "" { tagKey := f.Tag.Get("protobuf_key") tagVal := f.Tag.Get("protobuf_val") aberrantAppendField(md, f.Type, tag, tagKey, tagVal) } if tag := f.Tag.Get("protobuf_oneof"); tag != "" { n := len(md.L2.Oneofs.List) md.L2.Oneofs.List = append(md.L2.Oneofs.List, filedesc.Oneof{}) od := &md.L2.Oneofs.List[n] od.L0.FullName = md.FullName().Append(pref.Name(tag)) od.L0.ParentFile = md.L0.ParentFile od.L0.Parent = md od.L0.Index = n for _, t := range oneofWrappers { if t.Implements(f.Type) { f := t.Elem().Field(0) if tag := f.Tag.Get("protobuf"); tag != "" { aberrantAppendField(md, f.Type, tag, "", "") fd := &md.L2.Fields.List[len(md.L2.Fields.List)-1] fd.L1.ContainingOneof = od od.L1.Fields.List = append(od.L1.Fields.List, fd) } } } } } return md } func aberrantDeriveMessageName(t reflect.Type, name pref.FullName) pref.FullName { if name.IsValid() { return name } func() { defer func() { recover() }() // swallow possible nil panics if m, ok := reflect.Zero(t).Interface().(interface{ XXX_MessageName() string }); ok { name = pref.FullName(m.XXX_MessageName()) } }() if name.IsValid() { return name } if t.Kind() == reflect.Ptr { t = t.Elem() } return AberrantDeriveFullName(t) } func aberrantAppendField(md *filedesc.Message, goType reflect.Type, tag, tagKey, tagVal string) { t := goType isOptional := t.Kind() == reflect.Ptr && t.Elem().Kind() != reflect.Struct isRepeated := t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8 if isOptional || isRepeated { t = t.Elem() } fd := ptag.Unmarshal(tag, t, placeholderEnumValues{}).(*filedesc.Field) // Append field descriptor to the message. n := len(md.L2.Fields.List) md.L2.Fields.List = append(md.L2.Fields.List, *fd) fd = &md.L2.Fields.List[n] fd.L0.FullName = md.FullName().Append(fd.Name()) fd.L0.ParentFile = md.L0.ParentFile fd.L0.Parent = md fd.L0.Index = n if fd.L1.IsWeak || fd.L1.HasPacked { fd.L1.Options = func() pref.ProtoMessage { opts := descopts.Field.ProtoReflect().New() if fd.L1.IsWeak { opts.Set(opts.Descriptor().Fields().ByName("weak"), protoreflect.ValueOfBool(true)) } if fd.L1.HasPacked { opts.Set(opts.Descriptor().Fields().ByName("packed"), protoreflect.ValueOfBool(fd.L1.IsPacked)) } return opts.Interface() } } // Populate Enum and Message. if fd.Enum() == nil && fd.Kind() == pref.EnumKind { switch v := reflect.Zero(t).Interface().(type) { case pref.Enum: fd.L1.Enum = v.Descriptor() default: fd.L1.Enum = LegacyLoadEnumDesc(t) } } if fd.Message() == nil && (fd.Kind() == pref.MessageKind || fd.Kind() == pref.GroupKind) { switch v := reflect.Zero(t).Interface().(type) { case pref.ProtoMessage: fd.L1.Message = v.ProtoReflect().Descriptor() case messageV1: fd.L1.Message = LegacyLoadMessageDesc(t) default: if t.Kind() == reflect.Map { n := len(md.L1.Messages.List) md.L1.Messages.List = append(md.L1.Messages.List, filedesc.Message{L2: new(filedesc.MessageL2)}) md2 := &md.L1.Messages.List[n] md2.L0.FullName = md.FullName().Append(pref.Name(strs.MapEntryName(string(fd.Name())))) md2.L0.ParentFile = md.L0.ParentFile md2.L0.Parent = md md2.L0.Index = n md2.L1.IsMapEntry = true md2.L2.Options = func() pref.ProtoMessage { opts := descopts.Message.ProtoReflect().New() opts.Set(opts.Descriptor().Fields().ByName("map_entry"), protoreflect.ValueOfBool(true)) return opts.Interface() } aberrantAppendField(md2, t.Key(), tagKey, "", "") aberrantAppendField(md2, t.Elem(), tagVal, "", "") fd.L1.Message = md2 break } fd.L1.Message = aberrantLoadMessageDescReentrant(t, "") } } } type placeholderEnumValues struct { protoreflect.EnumValueDescriptors } func (placeholderEnumValues) ByNumber(n pref.EnumNumber) pref.EnumValueDescriptor { return filedesc.PlaceholderEnumValue(pref.FullName(fmt.Sprintf("UNKNOWN_%d", n))) } // legacyMarshaler is the proto.Marshaler interface superseded by protoiface.Methoder. type legacyMarshaler interface { Marshal() ([]byte, error) } // legacyUnmarshaler is the proto.Unmarshaler interface superseded by protoiface.Methoder. type legacyUnmarshaler interface { Unmarshal([]byte) error } // legacyMerger is the proto.Merger interface superseded by protoiface.Methoder. type legacyMerger interface { Merge(protoiface.MessageV1) } var aberrantProtoMethods = &piface.Methods{ Marshal: legacyMarshal, Unmarshal: legacyUnmarshal, Merge: legacyMerge, // We have no way to tell whether the type's Marshal method // supports deterministic serialization or not, but this // preserves the v1 implementation's behavior of always // calling Marshal methods when present. Flags: piface.SupportMarshalDeterministic, } func legacyMarshal(in piface.MarshalInput) (piface.MarshalOutput, error) { v := in.Message.(unwrapper).protoUnwrap() marshaler, ok := v.(legacyMarshaler) if !ok { return piface.MarshalOutput{}, errors.New("%T does not implement Marshal", v) } out, err := marshaler.Marshal() if in.Buf != nil { out = append(in.Buf, out...) } return piface.MarshalOutput{ Buf: out, }, err } func legacyUnmarshal(in piface.UnmarshalInput) (piface.UnmarshalOutput, error) { v := in.Message.(unwrapper).protoUnwrap() unmarshaler, ok := v.(legacyUnmarshaler) if !ok { return piface.UnmarshalOutput{}, errors.New("%T does not implement Unmarshal", v) } return piface.UnmarshalOutput{}, unmarshaler.Unmarshal(in.Buf) } func legacyMerge(in piface.MergeInput) piface.MergeOutput { // Check whether this supports the legacy merger. dstv := in.Destination.(unwrapper).protoUnwrap() merger, ok := dstv.(legacyMerger) if ok { merger.Merge(Export{}.ProtoMessageV1Of(in.Source)) return piface.MergeOutput{Flags: piface.MergeComplete} } // If legacy merger is unavailable, implement merge in terms of // a marshal and unmarshal operation. srcv := in.Source.(unwrapper).protoUnwrap() marshaler, ok := srcv.(legacyMarshaler) if !ok { return piface.MergeOutput{} } dstv = in.Destination.(unwrapper).protoUnwrap() unmarshaler, ok := dstv.(legacyUnmarshaler) if !ok { return piface.MergeOutput{} } if !in.Source.IsValid() { // Legacy Marshal methods may not function on nil messages. // Check for a typed nil source only after we confirm that // legacy Marshal/Unmarshal methods are present, for // consistency. return piface.MergeOutput{Flags: piface.MergeComplete} } b, err := marshaler.Marshal() if err != nil { return piface.MergeOutput{} } err = unmarshaler.Unmarshal(b) if err != nil { return piface.MergeOutput{} } return piface.MergeOutput{Flags: piface.MergeComplete} } // aberrantMessageType implements MessageType for all types other than pointer-to-struct. type aberrantMessageType struct { t reflect.Type } func (mt aberrantMessageType) New() pref.Message { if mt.t.Kind() == reflect.Ptr { return aberrantMessage{reflect.New(mt.t.Elem())} } return aberrantMessage{reflect.Zero(mt.t)} } func (mt aberrantMessageType) Zero() pref.Message { return aberrantMessage{reflect.Zero(mt.t)} } func (mt aberrantMessageType) GoType() reflect.Type { return mt.t } func (mt aberrantMessageType) Descriptor() pref.MessageDescriptor { return LegacyLoadMessageDesc(mt.t) } // aberrantMessage implements Message for all types other than pointer-to-struct. // // When the underlying type implements legacyMarshaler or legacyUnmarshaler, // the aberrant Message can be marshaled or unmarshaled. Otherwise, there is // not much that can be done with values of this type. type aberrantMessage struct { v reflect.Value } // Reset implements the v1 proto.Message.Reset method. func (m aberrantMessage) Reset() { if mr, ok := m.v.Interface().(interface{ Reset() }); ok { mr.Reset() return } if m.v.Kind() == reflect.Ptr && !m.v.IsNil() { m.v.Elem().Set(reflect.Zero(m.v.Type().Elem())) } } func (m aberrantMessage) ProtoReflect() pref.Message { return m } func (m aberrantMessage) Descriptor() pref.MessageDescriptor { return LegacyLoadMessageDesc(m.v.Type()) } func (m aberrantMessage) Type() pref.MessageType { return aberrantMessageType{m.v.Type()} } func (m aberrantMessage) New() pref.Message { if m.v.Type().Kind() == reflect.Ptr { return aberrantMessage{reflect.New(m.v.Type().Elem())} } return aberrantMessage{reflect.Zero(m.v.Type())} } func (m aberrantMessage) Interface() pref.ProtoMessage { return m } func (m aberrantMessage) Range(f func(pref.FieldDescriptor, pref.Value) bool) { return } func (m aberrantMessage) Has(pref.FieldDescriptor) bool { return false } func (m aberrantMessage) Clear(pref.FieldDescriptor) { panic("invalid Message.Clear on " + string(m.Descriptor().FullName())) } func (m aberrantMessage) Get(fd pref.FieldDescriptor) pref.Value { if fd.Default().IsValid() { return fd.Default() } panic("invalid Message.Get on " + string(m.Descriptor().FullName())) } func (m aberrantMessage) Set(pref.FieldDescriptor, pref.Value) { panic("invalid Message.Set on " + string(m.Descriptor().FullName())) } func (m aberrantMessage) Mutable(pref.FieldDescriptor) pref.Value { panic("invalid Message.Mutable on " + string(m.Descriptor().FullName())) } func (m aberrantMessage) NewField(pref.FieldDescriptor) pref.Value { panic("invalid Message.NewField on " + string(m.Descriptor().FullName())) } func (m aberrantMessage) WhichOneof(pref.OneofDescriptor) pref.FieldDescriptor { panic("invalid Message.WhichOneof descriptor on " + string(m.Descriptor().FullName())) } func (m aberrantMessage) GetUnknown() pref.RawFields { return nil } func (m aberrantMessage) SetUnknown(pref.RawFields) { // SetUnknown discards its input on messages which don't support unknown field storage. } func (m aberrantMessage) IsValid() bool { if m.v.Kind() == reflect.Ptr { return !m.v.IsNil() } return false } func (m aberrantMessage) ProtoMethods() *piface.Methods { return aberrantProtoMethods } func (m aberrantMessage) protoUnwrap() interface{} { return m.v.Interface() } golang-google-protobuf-1.27.1/internal/impl/legacy_test.go000066400000000000000000000632601411250152500235730ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl_test import ( "fmt" "reflect" "sync" "testing" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "google.golang.org/protobuf/encoding/prototext" pimpl "google.golang.org/protobuf/internal/impl" "google.golang.org/protobuf/internal/pragma" "google.golang.org/protobuf/proto" pdesc "google.golang.org/protobuf/reflect/protodesc" pref "google.golang.org/protobuf/reflect/protoreflect" preg "google.golang.org/protobuf/reflect/protoregistry" piface "google.golang.org/protobuf/runtime/protoiface" proto2_20180125 "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20180125_92554152" "google.golang.org/protobuf/types/descriptorpb" ) type LegacyTestMessage struct { XXX_unrecognized []byte XXX_InternalExtensions map[int32]pimpl.ExtensionField } func (*LegacyTestMessage) Reset() {} func (*LegacyTestMessage) String() string { return "" } func (*LegacyTestMessage) ProtoMessage() {} func (*LegacyTestMessage) ExtensionRangeArray() []piface.ExtensionRangeV1 { return []piface.ExtensionRangeV1{{Start: 10, End: 20}, {Start: 40, End: 80}, {Start: 10000, End: 20000}} } func (*LegacyTestMessage) Descriptor() ([]byte, []int) { return legacyFD, []int{0} } var legacyFD = func() []byte { b, _ := proto.Marshal(pdesc.ToFileDescriptorProto(mustMakeFileDesc(` name: "legacy.proto" syntax: "proto2" message_type: [{ name: "LegacyTestMessage" extension_range: [{start:10 end:20}, {start:40 end:80}, {start:10000 end:20000}] }] `, nil))) return pimpl.Export{}.CompressGZIP(b) }() func init() { mt := pimpl.Export{}.MessageTypeOf((*LegacyTestMessage)(nil)) preg.GlobalFiles.RegisterFile(mt.Descriptor().ParentFile()) preg.GlobalTypes.RegisterMessage(mt) } func mustMakeExtensionType(fileDesc, extDesc string, t reflect.Type, r pdesc.Resolver) pref.ExtensionType { s := fmt.Sprintf(`name:"test.proto" syntax:"proto2" %s extension:[{%s}]`, fileDesc, extDesc) xd := mustMakeFileDesc(s, r).Extensions().Get(0) xi := &pimpl.ExtensionInfo{} pimpl.InitExtensionInfo(xi, xd, t) return xi } func mustMakeFileDesc(s string, r pdesc.Resolver) pref.FileDescriptor { pb := new(descriptorpb.FileDescriptorProto) if err := prototext.Unmarshal([]byte(s), pb); err != nil { panic(err) } fd, err := pdesc.NewFile(pb, r) if err != nil { panic(err) } return fd } var ( testParentDesc = pimpl.Export{}.MessageDescriptorOf((*LegacyTestMessage)(nil)) testEnumV1Desc = pimpl.Export{}.EnumDescriptorOf(proto2_20180125.Message_ChildEnum(0)) testMessageV1Desc = pimpl.Export{}.MessageDescriptorOf((*proto2_20180125.Message_ChildMessage)(nil)) testMessageV2Desc = enumMessagesType.Desc depReg = newFileRegistry( testParentDesc.ParentFile(), testEnumV1Desc.ParentFile(), testMessageV1Desc.ParentFile(), enumProto2Desc.ParentFile(), testMessageV2Desc.ParentFile(), ) extensionTypes = []pref.ExtensionType{ mustMakeExtensionType( `package:"fizz.buzz" dependency:"legacy.proto"`, `name:"optional_bool" number:10000 label:LABEL_OPTIONAL type:TYPE_BOOL default_value:"true" extendee:".LegacyTestMessage"`, reflect.TypeOf(false), depReg, ), mustMakeExtensionType( `package:"fizz.buzz" dependency:"legacy.proto"`, `name:"optional_int32" number:10001 label:LABEL_OPTIONAL type:TYPE_INT32 default_value:"-12345" extendee:".LegacyTestMessage"`, reflect.TypeOf(int32(0)), depReg, ), mustMakeExtensionType( `package:"fizz.buzz" dependency:"legacy.proto"`, `name:"optional_uint32" number:10002 label:LABEL_OPTIONAL type:TYPE_UINT32 default_value:"3200" extendee:".LegacyTestMessage"`, reflect.TypeOf(uint32(0)), depReg, ), mustMakeExtensionType( `package:"fizz.buzz" dependency:"legacy.proto"`, `name:"optional_float" number:10003 label:LABEL_OPTIONAL type:TYPE_FLOAT default_value:"3.14159" extendee:".LegacyTestMessage"`, reflect.TypeOf(float32(0)), depReg, ), mustMakeExtensionType( `package:"fizz.buzz" dependency:"legacy.proto"`, `name:"optional_string" number:10004 label:LABEL_OPTIONAL type:TYPE_STRING default_value:"hello, \"world!\"\n" extendee:".LegacyTestMessage"`, reflect.TypeOf(""), depReg, ), mustMakeExtensionType( `package:"fizz.buzz" dependency:"legacy.proto"`, `name:"optional_bytes" number:10005 label:LABEL_OPTIONAL type:TYPE_BYTES default_value:"dead\\336\\255\\276\\357beef" extendee:".LegacyTestMessage"`, reflect.TypeOf(([]byte)(nil)), depReg, ), mustMakeExtensionType( `package:"fizz.buzz" dependency:["legacy.proto", "proto2_20180125_92554152/test.proto"]`, `name:"optional_enum_v1" number:10006 label:LABEL_OPTIONAL type:TYPE_ENUM type_name:".google.golang.org.proto2_20180125.Message.ChildEnum" default_value:"ALPHA" extendee:".LegacyTestMessage"`, reflect.TypeOf(proto2_20180125.Message_ChildEnum(0)), depReg, ), mustMakeExtensionType( `package:"fizz.buzz" dependency:["legacy.proto", "proto2_20180125_92554152/test.proto"]`, `name:"optional_message_v1" number:10007 label:LABEL_OPTIONAL type:TYPE_MESSAGE type_name:".google.golang.org.proto2_20180125.Message.ChildMessage" extendee:".LegacyTestMessage"`, reflect.TypeOf((*proto2_20180125.Message_ChildMessage)(nil)), depReg, ), mustMakeExtensionType( `package:"fizz.buzz" dependency:["legacy.proto", "enum2.proto"]`, `name:"optional_enum_v2" number:10008 label:LABEL_OPTIONAL type:TYPE_ENUM type_name:".EnumProto2" default_value:"DEAD" extendee:".LegacyTestMessage"`, reflect.TypeOf(EnumProto2(0)), depReg, ), mustMakeExtensionType( `package:"fizz.buzz" dependency:["legacy.proto", "enum-messages.proto"]`, `name:"optional_message_v2" number:10009 label:LABEL_OPTIONAL type:TYPE_MESSAGE type_name:".EnumMessages" extendee:".LegacyTestMessage"`, reflect.TypeOf((*EnumMessages)(nil)), depReg, ), mustMakeExtensionType( `package:"fizz.buzz" dependency:"legacy.proto"`, `name:"repeated_bool" number:10010 label:LABEL_REPEATED type:TYPE_BOOL extendee:".LegacyTestMessage"`, reflect.TypeOf([]bool(nil)), depReg, ), mustMakeExtensionType( `package:"fizz.buzz" dependency:"legacy.proto"`, `name:"repeated_int32" number:10011 label:LABEL_REPEATED type:TYPE_INT32 extendee:".LegacyTestMessage"`, reflect.TypeOf([]int32(nil)), depReg, ), mustMakeExtensionType( `package:"fizz.buzz" dependency:"legacy.proto"`, `name:"repeated_uint32" number:10012 label:LABEL_REPEATED type:TYPE_UINT32 extendee:".LegacyTestMessage"`, reflect.TypeOf([]uint32(nil)), depReg, ), mustMakeExtensionType( `package:"fizz.buzz" dependency:"legacy.proto"`, `name:"repeated_float" number:10013 label:LABEL_REPEATED type:TYPE_FLOAT extendee:".LegacyTestMessage"`, reflect.TypeOf([]float32(nil)), depReg, ), mustMakeExtensionType( `package:"fizz.buzz" dependency:"legacy.proto"`, `name:"repeated_string" number:10014 label:LABEL_REPEATED type:TYPE_STRING extendee:".LegacyTestMessage"`, reflect.TypeOf([]string(nil)), depReg, ), mustMakeExtensionType( `package:"fizz.buzz" dependency:"legacy.proto"`, `name:"repeated_bytes" number:10015 label:LABEL_REPEATED type:TYPE_BYTES extendee:".LegacyTestMessage"`, reflect.TypeOf([][]byte(nil)), depReg, ), mustMakeExtensionType( `package:"fizz.buzz" dependency:["legacy.proto", "proto2_20180125_92554152/test.proto"]`, `name:"repeated_enum_v1" number:10016 label:LABEL_REPEATED type:TYPE_ENUM type_name:".google.golang.org.proto2_20180125.Message.ChildEnum" extendee:".LegacyTestMessage"`, reflect.TypeOf([]proto2_20180125.Message_ChildEnum(nil)), depReg, ), mustMakeExtensionType( `package:"fizz.buzz" dependency:["legacy.proto", "proto2_20180125_92554152/test.proto"]`, `name:"repeated_message_v1" number:10017 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".google.golang.org.proto2_20180125.Message.ChildMessage" extendee:".LegacyTestMessage"`, reflect.TypeOf([]*proto2_20180125.Message_ChildMessage(nil)), depReg, ), mustMakeExtensionType( `package:"fizz.buzz" dependency:["legacy.proto", "enum2.proto"]`, `name:"repeated_enum_v2" number:10018 label:LABEL_REPEATED type:TYPE_ENUM type_name:".EnumProto2" extendee:".LegacyTestMessage"`, reflect.TypeOf([]EnumProto2(nil)), depReg, ), mustMakeExtensionType( `package:"fizz.buzz" dependency:["legacy.proto", "enum-messages.proto"]`, `name:"repeated_message_v2" number:10019 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".EnumMessages" extendee:".LegacyTestMessage"`, reflect.TypeOf([]*EnumMessages(nil)), depReg, ), } extensionDescs = []*pimpl.ExtensionInfo{{ ExtendedType: (*LegacyTestMessage)(nil), ExtensionType: (*bool)(nil), Field: 10000, Name: "fizz.buzz.optional_bool", Tag: "varint,10000,opt,name=optional_bool,def=1", Filename: "test.proto", }, { ExtendedType: (*LegacyTestMessage)(nil), ExtensionType: (*int32)(nil), Field: 10001, Name: "fizz.buzz.optional_int32", Tag: "varint,10001,opt,name=optional_int32,def=-12345", Filename: "test.proto", }, { ExtendedType: (*LegacyTestMessage)(nil), ExtensionType: (*uint32)(nil), Field: 10002, Name: "fizz.buzz.optional_uint32", Tag: "varint,10002,opt,name=optional_uint32,def=3200", Filename: "test.proto", }, { ExtendedType: (*LegacyTestMessage)(nil), ExtensionType: (*float32)(nil), Field: 10003, Name: "fizz.buzz.optional_float", Tag: "fixed32,10003,opt,name=optional_float,def=3.14159", Filename: "test.proto", }, { ExtendedType: (*LegacyTestMessage)(nil), ExtensionType: (*string)(nil), Field: 10004, Name: "fizz.buzz.optional_string", Tag: "bytes,10004,opt,name=optional_string,def=hello, \"world!\"\n", Filename: "test.proto", }, { ExtendedType: (*LegacyTestMessage)(nil), ExtensionType: ([]byte)(nil), Field: 10005, Name: "fizz.buzz.optional_bytes", Tag: "bytes,10005,opt,name=optional_bytes,def=dead\\336\\255\\276\\357beef", Filename: "test.proto", }, { ExtendedType: (*LegacyTestMessage)(nil), ExtensionType: (*proto2_20180125.Message_ChildEnum)(nil), Field: 10006, Name: "fizz.buzz.optional_enum_v1", Tag: "varint,10006,opt,name=optional_enum_v1,enum=google.golang.org.proto2_20180125.Message_ChildEnum,def=0", Filename: "test.proto", }, { ExtendedType: (*LegacyTestMessage)(nil), ExtensionType: (*proto2_20180125.Message_ChildMessage)(nil), Field: 10007, Name: "fizz.buzz.optional_message_v1", Tag: "bytes,10007,opt,name=optional_message_v1", Filename: "test.proto", }, { ExtendedType: (*LegacyTestMessage)(nil), ExtensionType: (*EnumProto2)(nil), Field: 10008, Name: "fizz.buzz.optional_enum_v2", Tag: "varint,10008,opt,name=optional_enum_v2,enum=EnumProto2,def=57005", Filename: "test.proto", }, { ExtendedType: (*LegacyTestMessage)(nil), ExtensionType: (*EnumMessages)(nil), Field: 10009, Name: "fizz.buzz.optional_message_v2", Tag: "bytes,10009,opt,name=optional_message_v2", Filename: "test.proto", }, { ExtendedType: (*LegacyTestMessage)(nil), ExtensionType: ([]bool)(nil), Field: 10010, Name: "fizz.buzz.repeated_bool", Tag: "varint,10010,rep,name=repeated_bool", Filename: "test.proto", }, { ExtendedType: (*LegacyTestMessage)(nil), ExtensionType: ([]int32)(nil), Field: 10011, Name: "fizz.buzz.repeated_int32", Tag: "varint,10011,rep,name=repeated_int32", Filename: "test.proto", }, { ExtendedType: (*LegacyTestMessage)(nil), ExtensionType: ([]uint32)(nil), Field: 10012, Name: "fizz.buzz.repeated_uint32", Tag: "varint,10012,rep,name=repeated_uint32", Filename: "test.proto", }, { ExtendedType: (*LegacyTestMessage)(nil), ExtensionType: ([]float32)(nil), Field: 10013, Name: "fizz.buzz.repeated_float", Tag: "fixed32,10013,rep,name=repeated_float", Filename: "test.proto", }, { ExtendedType: (*LegacyTestMessage)(nil), ExtensionType: ([]string)(nil), Field: 10014, Name: "fizz.buzz.repeated_string", Tag: "bytes,10014,rep,name=repeated_string", Filename: "test.proto", }, { ExtendedType: (*LegacyTestMessage)(nil), ExtensionType: ([][]byte)(nil), Field: 10015, Name: "fizz.buzz.repeated_bytes", Tag: "bytes,10015,rep,name=repeated_bytes", Filename: "test.proto", }, { ExtendedType: (*LegacyTestMessage)(nil), ExtensionType: ([]proto2_20180125.Message_ChildEnum)(nil), Field: 10016, Name: "fizz.buzz.repeated_enum_v1", Tag: "varint,10016,rep,name=repeated_enum_v1,enum=google.golang.org.proto2_20180125.Message_ChildEnum", Filename: "test.proto", }, { ExtendedType: (*LegacyTestMessage)(nil), ExtensionType: ([]*proto2_20180125.Message_ChildMessage)(nil), Field: 10017, Name: "fizz.buzz.repeated_message_v1", Tag: "bytes,10017,rep,name=repeated_message_v1", Filename: "test.proto", }, { ExtendedType: (*LegacyTestMessage)(nil), ExtensionType: ([]EnumProto2)(nil), Field: 10018, Name: "fizz.buzz.repeated_enum_v2", Tag: "varint,10018,rep,name=repeated_enum_v2,enum=EnumProto2", Filename: "test.proto", }, { ExtendedType: (*LegacyTestMessage)(nil), ExtensionType: ([]*EnumMessages)(nil), Field: 10019, Name: "fizz.buzz.repeated_message_v2", Tag: "bytes,10019,rep,name=repeated_message_v2", Filename: "test.proto", }} ) func TestLegacyExtensions(t *testing.T) { opts := cmp.Options{cmp.Comparer(func(x, y *proto2_20180125.Message_ChildMessage) bool { return x == y // pointer compare messages for object identity })} m := pimpl.Export{}.MessageOf(new(LegacyTestMessage)) // Check that getting the zero value returns the default value for scalars, // nil for singular messages, and an empty list for repeated fields. defaultValues := map[int]interface{}{ 0: bool(true), 1: int32(-12345), 2: uint32(3200), 3: float32(3.14159), 4: string("hello, \"world!\"\n"), 5: []byte("dead\xde\xad\xbe\xefbeef"), 6: proto2_20180125.Message_ALPHA, 7: nil, 8: EnumProto2(0xdead), 9: nil, } for i, xt := range extensionTypes { var got interface{} xd := xt.TypeDescriptor() if !(xd.IsList() || xd.IsMap() || xd.Message() != nil) { got = xt.InterfaceOf(m.Get(xd)) } want := defaultValues[i] if diff := cmp.Diff(want, got, opts); diff != "" { t.Errorf("Message.Get(%d) mismatch (-want +got):\n%v", xd.Number(), diff) } } // All fields should be unpopulated. for _, xt := range extensionTypes { xd := xt.TypeDescriptor() if m.Has(xd) { t.Errorf("Message.Has(%d) = true, want false", xd.Number()) } } // Set some values and append to values to the lists. m1a := &proto2_20180125.Message_ChildMessage{F1: proto.String("m1a")} m1b := &proto2_20180125.Message_ChildMessage{F1: proto.String("m2b")} m2a := &EnumMessages{EnumP2: EnumProto2(0x1b).Enum()} m2b := &EnumMessages{EnumP2: EnumProto2(0x2b).Enum()} setValues := map[int]interface{}{ 0: bool(false), 1: int32(-54321), 2: uint32(6400), 3: float32(2.71828), 4: string("goodbye, \"world!\"\n"), 5: []byte("live\xde\xad\xbe\xefchicken"), 6: proto2_20180125.Message_CHARLIE, 7: m1a, 8: EnumProto2(0xbeef), 9: m2a, 10: []bool{true}, 11: []int32{-1000}, 12: []uint32{1280}, 13: []float32{1.6180}, 14: []string{"zero"}, 15: [][]byte{[]byte("zero")}, 16: []proto2_20180125.Message_ChildEnum{proto2_20180125.Message_BRAVO}, 17: []*proto2_20180125.Message_ChildMessage{m1b}, 18: []EnumProto2{0xdead}, 19: []*EnumMessages{m2b}, } for i, xt := range extensionTypes { m.Set(xt.TypeDescriptor(), xt.ValueOf(setValues[i])) } for i, xt := range extensionTypes[len(extensionTypes)/2:] { v := extensionTypes[i].ValueOf(setValues[i]) m.Get(xt.TypeDescriptor()).List().Append(v) } // Get the values and check for equality. getValues := map[int]interface{}{ 0: bool(false), 1: int32(-54321), 2: uint32(6400), 3: float32(2.71828), 4: string("goodbye, \"world!\"\n"), 5: []byte("live\xde\xad\xbe\xefchicken"), 6: proto2_20180125.Message_ChildEnum(proto2_20180125.Message_CHARLIE), 7: m1a, 8: EnumProto2(0xbeef), 9: m2a, 10: []bool{true, false}, 11: []int32{-1000, -54321}, 12: []uint32{1280, 6400}, 13: []float32{1.6180, 2.71828}, 14: []string{"zero", "goodbye, \"world!\"\n"}, 15: [][]byte{[]byte("zero"), []byte("live\xde\xad\xbe\xefchicken")}, 16: []proto2_20180125.Message_ChildEnum{proto2_20180125.Message_BRAVO, proto2_20180125.Message_CHARLIE}, 17: []*proto2_20180125.Message_ChildMessage{m1b, m1a}, 18: []EnumProto2{0xdead, 0xbeef}, 19: []*EnumMessages{m2b, m2a}, } for i, xt := range extensionTypes { xd := xt.TypeDescriptor() got := xt.InterfaceOf(m.Get(xd)) want := getValues[i] if diff := cmp.Diff(want, got, opts); diff != "" { t.Errorf("Message.Get(%d) mismatch (-want +got):\n%v", xd.Number(), diff) } } // Clear all singular fields and truncate all repeated fields. for _, xt := range extensionTypes[:len(extensionTypes)/2] { m.Clear(xt.TypeDescriptor()) } for _, xt := range extensionTypes[len(extensionTypes)/2:] { m.Get(xt.TypeDescriptor()).List().Truncate(0) } // Clear all repeated fields. for _, xt := range extensionTypes[len(extensionTypes)/2:] { m.Clear(xt.TypeDescriptor()) } } func TestLegacyExtensionConvert(t *testing.T) { for i := range extensionTypes { i := i t.Run("", func(t *testing.T) { t.Parallel() wantType := extensionTypes[i] wantDesc := extensionDescs[i] gotType := (pref.ExtensionType)(wantDesc) gotDesc := wantType.(*pimpl.ExtensionInfo) // Concurrently call accessors to trigger possible races. for _, xt := range []pref.ExtensionType{wantType, wantDesc} { xt := xt go func() { xt.New() }() go func() { xt.Zero() }() go func() { xt.TypeDescriptor() }() } // TODO: We need a test package to compare descriptors. type list interface { Len() int pragma.DoNotImplement } opts := cmp.Options{ cmp.Comparer(func(x, y reflect.Type) bool { return x == y }), cmp.Transformer("", func(x list) []interface{} { out := make([]interface{}, x.Len()) v := reflect.ValueOf(x) for i := 0; i < x.Len(); i++ { m := v.MethodByName("Get") out[i] = m.Call([]reflect.Value{reflect.ValueOf(i)})[0].Interface() } return out }), cmp.Transformer("", func(x pref.Descriptor) map[string]interface{} { out := make(map[string]interface{}) v := reflect.ValueOf(x) for i := 0; i < v.NumMethod(); i++ { name := v.Type().Method(i).Name if m := v.Method(i); m.Type().NumIn() == 0 && m.Type().NumOut() == 1 { switch name { case "ParentFile", "Parent": // Ignore parents to avoid recursive cycle. case "Options": // Ignore descriptor options since protos are not cmperable. case "ContainingOneof", "ContainingMessage", "Enum", "Message": // Avoid descending into a dependency to avoid a cycle. // Just record the full name if available. // // TODO: Cycle support in cmp would be useful here. v := m.Call(nil)[0] if !v.IsNil() { out[name] = v.Interface().(pref.Descriptor).FullName() } case "Type": // Ignore ExtensionTypeDescriptor.Type method to avoid cycle. default: out[name] = m.Call(nil)[0].Interface() } } } return out }), cmp.Transformer("", func(xt pref.ExtensionType) map[string]interface{} { return map[string]interface{}{ "Descriptor": xt.TypeDescriptor(), } }), cmp.Transformer("", func(v pref.Value) interface{} { return v.Interface() }), } if diff := cmp.Diff(&wantType, &gotType, opts); diff != "" { t.Errorf("ExtensionType mismatch (-want, +got):\n%v", diff) } opts = cmp.Options{ cmpopts.IgnoreFields(pimpl.ExtensionInfo{}, "ExtensionType"), cmpopts.IgnoreUnexported(pimpl.ExtensionInfo{}), } if diff := cmp.Diff(wantDesc, gotDesc, opts); diff != "" { t.Errorf("ExtensionDesc mismatch (-want, +got):\n%v", diff) } }) } } type ( MessageA struct { A1 *MessageA `protobuf:"bytes,1,req,name=a1"` A2 *MessageB `protobuf:"bytes,2,req,name=a2"` A3 Enum `protobuf:"varint,3,opt,name=a3,enum=legacy.Enum"` } MessageB struct { B1 *MessageA `protobuf:"bytes,1,req,name=b1"` B2 *MessageB `protobuf:"bytes,2,req,name=b2"` B3 Enum `protobuf:"varint,3,opt,name=b3,enum=legacy.Enum"` } Enum int32 ) func (*MessageA) Reset() { panic("not implemented") } func (*MessageA) String() string { panic("not implemented") } func (*MessageA) ProtoMessage() { panic("not implemented") } func (*MessageA) Descriptor() ([]byte, []int) { return concurrentFD, []int{0} } func (*MessageB) Reset() { panic("not implemented") } func (*MessageB) String() string { panic("not implemented") } func (*MessageB) ProtoMessage() { panic("not implemented") } func (*MessageB) Descriptor() ([]byte, []int) { return concurrentFD, []int{1} } func (Enum) EnumDescriptor() ([]byte, []int) { return concurrentFD, []int{0} } var concurrentFD = func() []byte { b, _ := proto.Marshal(pdesc.ToFileDescriptorProto(mustMakeFileDesc(` name: "concurrent.proto" syntax: "proto2" package: "legacy" message_type: [{ name: "MessageA" field: [ {name:"a1" number:1 label:LABEL_REQUIRED type:TYPE_MESSAGE type_name:".legacy.MessageA"}, {name:"a2" number:2 label:LABEL_REQUIRED type:TYPE_MESSAGE type_name:".legacy.MessageB"}, {name:"a3" number:3 label:LABEL_OPTIONAL type:TYPE_ENUM type_name:".legacy.Enum"} ] }, { name: "MessageB" field: [ {name:"a1" number:1 label:LABEL_REQUIRED type:TYPE_MESSAGE type_name:".legacy.MessageA"}, {name:"a2" number:2 label:LABEL_REQUIRED type:TYPE_MESSAGE type_name:".legacy.MessageB"}, {name:"a3" number:3 label:LABEL_OPTIONAL type:TYPE_ENUM type_name:".legacy.Enum"} ] }] enum_type: [{ name: "Enum" value: [{name:"FOO" number:500}] }] `, nil))) return pimpl.Export{}.CompressGZIP(b) }() // TestLegacyConcurrentInit tests that concurrent wrapping of multiple legacy types // results in the exact same descriptor being created. func TestLegacyConcurrentInit(t *testing.T) { const numParallel = 5 var messageATypes [numParallel]pref.MessageType var messageBTypes [numParallel]pref.MessageType var enumDescs [numParallel]pref.EnumDescriptor // Concurrently load message and enum types. var wg sync.WaitGroup for i := 0; i < numParallel; i++ { i := i wg.Add(3) go func() { defer wg.Done() messageATypes[i] = pimpl.Export{}.MessageTypeOf((*MessageA)(nil)) }() go func() { defer wg.Done() messageBTypes[i] = pimpl.Export{}.MessageTypeOf((*MessageB)(nil)) }() go func() { defer wg.Done() enumDescs[i] = pimpl.Export{}.EnumDescriptorOf(Enum(0)) }() } wg.Wait() var ( wantMTA = messageATypes[0] wantMDA = messageATypes[0].Descriptor().Fields().ByNumber(1).Message() wantMTB = messageBTypes[0] wantMDB = messageBTypes[0].Descriptor().Fields().ByNumber(2).Message() wantED = messageATypes[0].Descriptor().Fields().ByNumber(3).Enum() ) for _, gotMT := range messageATypes[1:] { if gotMT != wantMTA { t.Error("MessageType(MessageA) mismatch") } if gotMDA := gotMT.Descriptor().Fields().ByNumber(1).Message(); gotMDA != wantMDA { t.Error("MessageDescriptor(MessageA) mismatch") } if gotMDB := gotMT.Descriptor().Fields().ByNumber(2).Message(); gotMDB != wantMDB { t.Error("MessageDescriptor(MessageB) mismatch") } if gotED := gotMT.Descriptor().Fields().ByNumber(3).Enum(); gotED != wantED { t.Error("EnumDescriptor(Enum) mismatch") } } for _, gotMT := range messageBTypes[1:] { if gotMT != wantMTB { t.Error("MessageType(MessageB) mismatch") } if gotMDA := gotMT.Descriptor().Fields().ByNumber(1).Message(); gotMDA != wantMDA { t.Error("MessageDescriptor(MessageA) mismatch") } if gotMDB := gotMT.Descriptor().Fields().ByNumber(2).Message(); gotMDB != wantMDB { t.Error("MessageDescriptor(MessageB) mismatch") } if gotED := gotMT.Descriptor().Fields().ByNumber(3).Enum(); gotED != wantED { t.Error("EnumDescriptor(Enum) mismatch") } } for _, gotED := range enumDescs[1:] { if gotED != wantED { t.Error("EnumType(Enum) mismatch") } } } type LegacyTestMessageName1 struct{} func (*LegacyTestMessageName1) Reset() { panic("not implemented") } func (*LegacyTestMessageName1) String() string { panic("not implemented") } func (*LegacyTestMessageName1) ProtoMessage() { panic("not implemented") } type LegacyTestMessageName2 struct{} func (*LegacyTestMessageName2) Reset() { panic("not implemented") } func (*LegacyTestMessageName2) String() string { panic("not implemented") } func (*LegacyTestMessageName2) ProtoMessage() { panic("not implemented") } func (*LegacyTestMessageName2) XXX_MessageName() string { return "google.golang.org.LegacyTestMessageName2" } func TestLegacyMessageName(t *testing.T) { tests := []struct { in piface.MessageV1 suggestName pref.FullName wantName pref.FullName }{ {new(LegacyTestMessageName1), "google.golang.org.LegacyTestMessageName1", "google.golang.org.LegacyTestMessageName1"}, {new(LegacyTestMessageName2), "", "google.golang.org.LegacyTestMessageName2"}, } for _, tt := range tests { mt := pimpl.Export{}.LegacyMessageTypeOf(tt.in, tt.suggestName) if got := mt.Descriptor().FullName(); got != tt.wantName { t.Errorf("type: %T, name mismatch: got %v, want %v", tt.in, got, tt.wantName) } } } golang-google-protobuf-1.27.1/internal/impl/merge.go000066400000000000000000000106471411250152500223700ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "fmt" "reflect" "google.golang.org/protobuf/proto" pref "google.golang.org/protobuf/reflect/protoreflect" piface "google.golang.org/protobuf/runtime/protoiface" ) type mergeOptions struct{} func (o mergeOptions) Merge(dst, src proto.Message) { proto.Merge(dst, src) } // merge is protoreflect.Methods.Merge. func (mi *MessageInfo) merge(in piface.MergeInput) piface.MergeOutput { dp, ok := mi.getPointer(in.Destination) if !ok { return piface.MergeOutput{} } sp, ok := mi.getPointer(in.Source) if !ok { return piface.MergeOutput{} } mi.mergePointer(dp, sp, mergeOptions{}) return piface.MergeOutput{Flags: piface.MergeComplete} } func (mi *MessageInfo) mergePointer(dst, src pointer, opts mergeOptions) { mi.init() if dst.IsNil() { panic(fmt.Sprintf("invalid value: merging into nil message")) } if src.IsNil() { return } for _, f := range mi.orderedCoderFields { if f.funcs.merge == nil { continue } sfptr := src.Apply(f.offset) if f.isPointer && sfptr.Elem().IsNil() { continue } f.funcs.merge(dst.Apply(f.offset), sfptr, f, opts) } if mi.extensionOffset.IsValid() { sext := src.Apply(mi.extensionOffset).Extensions() dext := dst.Apply(mi.extensionOffset).Extensions() if *dext == nil { *dext = make(map[int32]ExtensionField) } for num, sx := range *sext { xt := sx.Type() xi := getExtensionFieldInfo(xt) if xi.funcs.merge == nil { continue } dx := (*dext)[num] var dv pref.Value if dx.Type() == sx.Type() { dv = dx.Value() } if !dv.IsValid() && xi.unmarshalNeedsValue { dv = xt.New() } dv = xi.funcs.merge(dv, sx.Value(), opts) dx.Set(sx.Type(), dv) (*dext)[num] = dx } } if mi.unknownOffset.IsValid() { su := mi.getUnknownBytes(src) if su != nil && len(*su) > 0 { du := mi.mutableUnknownBytes(dst) *du = append(*du, *su...) } } } func mergeScalarValue(dst, src pref.Value, opts mergeOptions) pref.Value { return src } func mergeBytesValue(dst, src pref.Value, opts mergeOptions) pref.Value { return pref.ValueOfBytes(append(emptyBuf[:], src.Bytes()...)) } func mergeListValue(dst, src pref.Value, opts mergeOptions) pref.Value { dstl := dst.List() srcl := src.List() for i, llen := 0, srcl.Len(); i < llen; i++ { dstl.Append(srcl.Get(i)) } return dst } func mergeBytesListValue(dst, src pref.Value, opts mergeOptions) pref.Value { dstl := dst.List() srcl := src.List() for i, llen := 0, srcl.Len(); i < llen; i++ { sb := srcl.Get(i).Bytes() db := append(emptyBuf[:], sb...) dstl.Append(pref.ValueOfBytes(db)) } return dst } func mergeMessageListValue(dst, src pref.Value, opts mergeOptions) pref.Value { dstl := dst.List() srcl := src.List() for i, llen := 0, srcl.Len(); i < llen; i++ { sm := srcl.Get(i).Message() dm := proto.Clone(sm.Interface()).ProtoReflect() dstl.Append(pref.ValueOfMessage(dm)) } return dst } func mergeMessageValue(dst, src pref.Value, opts mergeOptions) pref.Value { opts.Merge(dst.Message().Interface(), src.Message().Interface()) return dst } func mergeMessage(dst, src pointer, f *coderFieldInfo, opts mergeOptions) { if f.mi != nil { if dst.Elem().IsNil() { dst.SetPointer(pointerOfValue(reflect.New(f.mi.GoReflectType.Elem()))) } f.mi.mergePointer(dst.Elem(), src.Elem(), opts) } else { dm := dst.AsValueOf(f.ft).Elem() sm := src.AsValueOf(f.ft).Elem() if dm.IsNil() { dm.Set(reflect.New(f.ft.Elem())) } opts.Merge(asMessage(dm), asMessage(sm)) } } func mergeMessageSlice(dst, src pointer, f *coderFieldInfo, opts mergeOptions) { for _, sp := range src.PointerSlice() { dm := reflect.New(f.ft.Elem().Elem()) if f.mi != nil { f.mi.mergePointer(pointerOfValue(dm), sp, opts) } else { opts.Merge(asMessage(dm), asMessage(sp.AsValueOf(f.ft.Elem().Elem()))) } dst.AppendPointerSlice(pointerOfValue(dm)) } } func mergeBytes(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { *dst.Bytes() = append(emptyBuf[:], *src.Bytes()...) } func mergeBytesNoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { v := *src.Bytes() if len(v) > 0 { *dst.Bytes() = append(emptyBuf[:], v...) } } func mergeBytesSlice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { ds := dst.BytesSlice() for _, v := range *src.BytesSlice() { *ds = append(*ds, append(emptyBuf[:], v...)) } } golang-google-protobuf-1.27.1/internal/impl/merge_gen.go000066400000000000000000000110401411250152500232050ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by generate-types. DO NOT EDIT. package impl import () func mergeBool(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { *dst.Bool() = *src.Bool() } func mergeBoolNoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { v := *src.Bool() if v != false { *dst.Bool() = v } } func mergeBoolPtr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { p := *src.BoolPtr() if p != nil { v := *p *dst.BoolPtr() = &v } } func mergeBoolSlice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { ds := dst.BoolSlice() ss := src.BoolSlice() *ds = append(*ds, *ss...) } func mergeInt32(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { *dst.Int32() = *src.Int32() } func mergeInt32NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { v := *src.Int32() if v != 0 { *dst.Int32() = v } } func mergeInt32Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { p := *src.Int32Ptr() if p != nil { v := *p *dst.Int32Ptr() = &v } } func mergeInt32Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { ds := dst.Int32Slice() ss := src.Int32Slice() *ds = append(*ds, *ss...) } func mergeUint32(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { *dst.Uint32() = *src.Uint32() } func mergeUint32NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { v := *src.Uint32() if v != 0 { *dst.Uint32() = v } } func mergeUint32Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { p := *src.Uint32Ptr() if p != nil { v := *p *dst.Uint32Ptr() = &v } } func mergeUint32Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { ds := dst.Uint32Slice() ss := src.Uint32Slice() *ds = append(*ds, *ss...) } func mergeInt64(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { *dst.Int64() = *src.Int64() } func mergeInt64NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { v := *src.Int64() if v != 0 { *dst.Int64() = v } } func mergeInt64Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { p := *src.Int64Ptr() if p != nil { v := *p *dst.Int64Ptr() = &v } } func mergeInt64Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { ds := dst.Int64Slice() ss := src.Int64Slice() *ds = append(*ds, *ss...) } func mergeUint64(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { *dst.Uint64() = *src.Uint64() } func mergeUint64NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { v := *src.Uint64() if v != 0 { *dst.Uint64() = v } } func mergeUint64Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { p := *src.Uint64Ptr() if p != nil { v := *p *dst.Uint64Ptr() = &v } } func mergeUint64Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { ds := dst.Uint64Slice() ss := src.Uint64Slice() *ds = append(*ds, *ss...) } func mergeFloat32(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { *dst.Float32() = *src.Float32() } func mergeFloat32NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { v := *src.Float32() if v != 0 { *dst.Float32() = v } } func mergeFloat32Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { p := *src.Float32Ptr() if p != nil { v := *p *dst.Float32Ptr() = &v } } func mergeFloat32Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { ds := dst.Float32Slice() ss := src.Float32Slice() *ds = append(*ds, *ss...) } func mergeFloat64(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { *dst.Float64() = *src.Float64() } func mergeFloat64NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { v := *src.Float64() if v != 0 { *dst.Float64() = v } } func mergeFloat64Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { p := *src.Float64Ptr() if p != nil { v := *p *dst.Float64Ptr() = &v } } func mergeFloat64Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { ds := dst.Float64Slice() ss := src.Float64Slice() *ds = append(*ds, *ss...) } func mergeString(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { *dst.String() = *src.String() } func mergeStringNoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { v := *src.String() if v != "" { *dst.String() = v } } func mergeStringPtr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { p := *src.StringPtr() if p != nil { v := *p *dst.StringPtr() = &v } } func mergeStringSlice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { ds := dst.StringSlice() ss := src.StringSlice() *ds = append(*ds, *ss...) } golang-google-protobuf-1.27.1/internal/impl/message.go000066400000000000000000000203411411250152500227050ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "fmt" "reflect" "strconv" "strings" "sync" "sync/atomic" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/reflect/protoreflect" pref "google.golang.org/protobuf/reflect/protoreflect" preg "google.golang.org/protobuf/reflect/protoregistry" ) // MessageInfo provides protobuf related functionality for a given Go type // that represents a message. A given instance of MessageInfo is tied to // exactly one Go type, which must be a pointer to a struct type. // // The exported fields must be populated before any methods are called // and cannot be mutated after set. type MessageInfo struct { // GoReflectType is the underlying message Go type and must be populated. GoReflectType reflect.Type // pointer to struct // Desc is the underlying message descriptor type and must be populated. Desc pref.MessageDescriptor // Exporter must be provided in a purego environment in order to provide // access to unexported fields. Exporter exporter // OneofWrappers is list of pointers to oneof wrapper struct types. OneofWrappers []interface{} initMu sync.Mutex // protects all unexported fields initDone uint32 reflectMessageInfo // for reflection implementation coderMessageInfo // for fast-path method implementations } // exporter is a function that returns a reference to the ith field of v, // where v is a pointer to a struct. It returns nil if it does not support // exporting the requested field (e.g., already exported). type exporter func(v interface{}, i int) interface{} // getMessageInfo returns the MessageInfo for any message type that // is generated by our implementation of protoc-gen-go (for v2 and on). // If it is unable to obtain a MessageInfo, it returns nil. func getMessageInfo(mt reflect.Type) *MessageInfo { m, ok := reflect.Zero(mt).Interface().(pref.ProtoMessage) if !ok { return nil } mr, ok := m.ProtoReflect().(interface{ ProtoMessageInfo() *MessageInfo }) if !ok { return nil } return mr.ProtoMessageInfo() } func (mi *MessageInfo) init() { // This function is called in the hot path. Inline the sync.Once logic, // since allocating a closure for Once.Do is expensive. // Keep init small to ensure that it can be inlined. if atomic.LoadUint32(&mi.initDone) == 0 { mi.initOnce() } } func (mi *MessageInfo) initOnce() { mi.initMu.Lock() defer mi.initMu.Unlock() if mi.initDone == 1 { return } t := mi.GoReflectType if t.Kind() != reflect.Ptr && t.Elem().Kind() != reflect.Struct { panic(fmt.Sprintf("got %v, want *struct kind", t)) } t = t.Elem() si := mi.makeStructInfo(t) mi.makeReflectFuncs(t, si) mi.makeCoderMethods(t, si) atomic.StoreUint32(&mi.initDone, 1) } // getPointer returns the pointer for a message, which should be of // the type of the MessageInfo. If the message is of a different type, // it returns ok==false. func (mi *MessageInfo) getPointer(m pref.Message) (p pointer, ok bool) { switch m := m.(type) { case *messageState: return m.pointer(), m.messageInfo() == mi case *messageReflectWrapper: return m.pointer(), m.messageInfo() == mi } return pointer{}, false } type ( SizeCache = int32 WeakFields = map[int32]protoreflect.ProtoMessage UnknownFields = unknownFieldsA // TODO: switch to unknownFieldsB unknownFieldsA = []byte unknownFieldsB = *[]byte ExtensionFields = map[int32]ExtensionField ) var ( sizecacheType = reflect.TypeOf(SizeCache(0)) weakFieldsType = reflect.TypeOf(WeakFields(nil)) unknownFieldsAType = reflect.TypeOf(unknownFieldsA(nil)) unknownFieldsBType = reflect.TypeOf(unknownFieldsB(nil)) extensionFieldsType = reflect.TypeOf(ExtensionFields(nil)) ) type structInfo struct { sizecacheOffset offset sizecacheType reflect.Type weakOffset offset weakType reflect.Type unknownOffset offset unknownType reflect.Type extensionOffset offset extensionType reflect.Type fieldsByNumber map[pref.FieldNumber]reflect.StructField oneofsByName map[pref.Name]reflect.StructField oneofWrappersByType map[reflect.Type]pref.FieldNumber oneofWrappersByNumber map[pref.FieldNumber]reflect.Type } func (mi *MessageInfo) makeStructInfo(t reflect.Type) structInfo { si := structInfo{ sizecacheOffset: invalidOffset, weakOffset: invalidOffset, unknownOffset: invalidOffset, extensionOffset: invalidOffset, fieldsByNumber: map[pref.FieldNumber]reflect.StructField{}, oneofsByName: map[pref.Name]reflect.StructField{}, oneofWrappersByType: map[reflect.Type]pref.FieldNumber{}, oneofWrappersByNumber: map[pref.FieldNumber]reflect.Type{}, } fieldLoop: for i := 0; i < t.NumField(); i++ { switch f := t.Field(i); f.Name { case genid.SizeCache_goname, genid.SizeCacheA_goname: if f.Type == sizecacheType { si.sizecacheOffset = offsetOf(f, mi.Exporter) si.sizecacheType = f.Type } case genid.WeakFields_goname, genid.WeakFieldsA_goname: if f.Type == weakFieldsType { si.weakOffset = offsetOf(f, mi.Exporter) si.weakType = f.Type } case genid.UnknownFields_goname, genid.UnknownFieldsA_goname: if f.Type == unknownFieldsAType || f.Type == unknownFieldsBType { si.unknownOffset = offsetOf(f, mi.Exporter) si.unknownType = f.Type } case genid.ExtensionFields_goname, genid.ExtensionFieldsA_goname, genid.ExtensionFieldsB_goname: if f.Type == extensionFieldsType { si.extensionOffset = offsetOf(f, mi.Exporter) si.extensionType = f.Type } default: for _, s := range strings.Split(f.Tag.Get("protobuf"), ",") { if len(s) > 0 && strings.Trim(s, "0123456789") == "" { n, _ := strconv.ParseUint(s, 10, 64) si.fieldsByNumber[pref.FieldNumber(n)] = f continue fieldLoop } } if s := f.Tag.Get("protobuf_oneof"); len(s) > 0 { si.oneofsByName[pref.Name(s)] = f continue fieldLoop } } } // Derive a mapping of oneof wrappers to fields. oneofWrappers := mi.OneofWrappers for _, method := range []string{"XXX_OneofFuncs", "XXX_OneofWrappers"} { if fn, ok := reflect.PtrTo(t).MethodByName(method); ok { for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { if vs, ok := v.Interface().([]interface{}); ok { oneofWrappers = vs } } } } for _, v := range oneofWrappers { tf := reflect.TypeOf(v).Elem() f := tf.Field(0) for _, s := range strings.Split(f.Tag.Get("protobuf"), ",") { if len(s) > 0 && strings.Trim(s, "0123456789") == "" { n, _ := strconv.ParseUint(s, 10, 64) si.oneofWrappersByType[tf] = pref.FieldNumber(n) si.oneofWrappersByNumber[pref.FieldNumber(n)] = tf break } } } return si } func (mi *MessageInfo) New() protoreflect.Message { return mi.MessageOf(reflect.New(mi.GoReflectType.Elem()).Interface()) } func (mi *MessageInfo) Zero() protoreflect.Message { return mi.MessageOf(reflect.Zero(mi.GoReflectType).Interface()) } func (mi *MessageInfo) Descriptor() protoreflect.MessageDescriptor { return mi.Desc } func (mi *MessageInfo) Enum(i int) protoreflect.EnumType { mi.init() fd := mi.Desc.Fields().Get(i) return Export{}.EnumTypeOf(mi.fieldTypes[fd.Number()]) } func (mi *MessageInfo) Message(i int) protoreflect.MessageType { mi.init() fd := mi.Desc.Fields().Get(i) switch { case fd.IsWeak(): mt, _ := preg.GlobalTypes.FindMessageByName(fd.Message().FullName()) return mt case fd.IsMap(): return mapEntryType{fd.Message(), mi.fieldTypes[fd.Number()]} default: return Export{}.MessageTypeOf(mi.fieldTypes[fd.Number()]) } } type mapEntryType struct { desc protoreflect.MessageDescriptor valType interface{} // zero value of enum or message type } func (mt mapEntryType) New() protoreflect.Message { return nil } func (mt mapEntryType) Zero() protoreflect.Message { return nil } func (mt mapEntryType) Descriptor() protoreflect.MessageDescriptor { return mt.desc } func (mt mapEntryType) Enum(i int) protoreflect.EnumType { fd := mt.desc.Fields().Get(i) if fd.Enum() == nil { return nil } return Export{}.EnumTypeOf(mt.valType) } func (mt mapEntryType) Message(i int) protoreflect.MessageType { fd := mt.desc.Fields().Get(i) if fd.Message() == nil { return nil } return Export{}.MessageTypeOf(mt.valType) } golang-google-protobuf-1.27.1/internal/impl/message_reflect.go000066400000000000000000000325021411250152500244130ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "fmt" "reflect" "google.golang.org/protobuf/internal/detrand" "google.golang.org/protobuf/internal/pragma" pref "google.golang.org/protobuf/reflect/protoreflect" ) type reflectMessageInfo struct { fields map[pref.FieldNumber]*fieldInfo oneofs map[pref.Name]*oneofInfo // fieldTypes contains the zero value of an enum or message field. // For lists, it contains the element type. // For maps, it contains the entry value type. fieldTypes map[pref.FieldNumber]interface{} // denseFields is a subset of fields where: // 0 < fieldDesc.Number() < len(denseFields) // It provides faster access to the fieldInfo, but may be incomplete. denseFields []*fieldInfo // rangeInfos is a list of all fields (not belonging to a oneof) and oneofs. rangeInfos []interface{} // either *fieldInfo or *oneofInfo getUnknown func(pointer) pref.RawFields setUnknown func(pointer, pref.RawFields) extensionMap func(pointer) *extensionMap nilMessage atomicNilMessage } // makeReflectFuncs generates the set of functions to support reflection. func (mi *MessageInfo) makeReflectFuncs(t reflect.Type, si structInfo) { mi.makeKnownFieldsFunc(si) mi.makeUnknownFieldsFunc(t, si) mi.makeExtensionFieldsFunc(t, si) mi.makeFieldTypes(si) } // makeKnownFieldsFunc generates functions for operations that can be performed // on each protobuf message field. It takes in a reflect.Type representing the // Go struct and matches message fields with struct fields. // // This code assumes that the struct is well-formed and panics if there are // any discrepancies. func (mi *MessageInfo) makeKnownFieldsFunc(si structInfo) { mi.fields = map[pref.FieldNumber]*fieldInfo{} md := mi.Desc fds := md.Fields() for i := 0; i < fds.Len(); i++ { fd := fds.Get(i) fs := si.fieldsByNumber[fd.Number()] isOneof := fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic() if isOneof { fs = si.oneofsByName[fd.ContainingOneof().Name()] } var fi fieldInfo switch { case fs.Type == nil: fi = fieldInfoForMissing(fd) // never occurs for officially generated message types case isOneof: fi = fieldInfoForOneof(fd, fs, mi.Exporter, si.oneofWrappersByNumber[fd.Number()]) case fd.IsMap(): fi = fieldInfoForMap(fd, fs, mi.Exporter) case fd.IsList(): fi = fieldInfoForList(fd, fs, mi.Exporter) case fd.IsWeak(): fi = fieldInfoForWeakMessage(fd, si.weakOffset) case fd.Message() != nil: fi = fieldInfoForMessage(fd, fs, mi.Exporter) default: fi = fieldInfoForScalar(fd, fs, mi.Exporter) } mi.fields[fd.Number()] = &fi } mi.oneofs = map[pref.Name]*oneofInfo{} for i := 0; i < md.Oneofs().Len(); i++ { od := md.Oneofs().Get(i) mi.oneofs[od.Name()] = makeOneofInfo(od, si, mi.Exporter) } mi.denseFields = make([]*fieldInfo, fds.Len()*2) for i := 0; i < fds.Len(); i++ { if fd := fds.Get(i); int(fd.Number()) < len(mi.denseFields) { mi.denseFields[fd.Number()] = mi.fields[fd.Number()] } } for i := 0; i < fds.Len(); { fd := fds.Get(i) if od := fd.ContainingOneof(); od != nil && !od.IsSynthetic() { mi.rangeInfos = append(mi.rangeInfos, mi.oneofs[od.Name()]) i += od.Fields().Len() } else { mi.rangeInfos = append(mi.rangeInfos, mi.fields[fd.Number()]) i++ } } // Introduce instability to iteration order, but keep it deterministic. if len(mi.rangeInfos) > 1 && detrand.Bool() { i := detrand.Intn(len(mi.rangeInfos) - 1) mi.rangeInfos[i], mi.rangeInfos[i+1] = mi.rangeInfos[i+1], mi.rangeInfos[i] } } func (mi *MessageInfo) makeUnknownFieldsFunc(t reflect.Type, si structInfo) { switch { case si.unknownOffset.IsValid() && si.unknownType == unknownFieldsAType: // Handle as []byte. mi.getUnknown = func(p pointer) pref.RawFields { if p.IsNil() { return nil } return *p.Apply(mi.unknownOffset).Bytes() } mi.setUnknown = func(p pointer, b pref.RawFields) { if p.IsNil() { panic("invalid SetUnknown on nil Message") } *p.Apply(mi.unknownOffset).Bytes() = b } case si.unknownOffset.IsValid() && si.unknownType == unknownFieldsBType: // Handle as *[]byte. mi.getUnknown = func(p pointer) pref.RawFields { if p.IsNil() { return nil } bp := p.Apply(mi.unknownOffset).BytesPtr() if *bp == nil { return nil } return **bp } mi.setUnknown = func(p pointer, b pref.RawFields) { if p.IsNil() { panic("invalid SetUnknown on nil Message") } bp := p.Apply(mi.unknownOffset).BytesPtr() if *bp == nil { *bp = new([]byte) } **bp = b } default: mi.getUnknown = func(pointer) pref.RawFields { return nil } mi.setUnknown = func(p pointer, _ pref.RawFields) { if p.IsNil() { panic("invalid SetUnknown on nil Message") } } } } func (mi *MessageInfo) makeExtensionFieldsFunc(t reflect.Type, si structInfo) { if si.extensionOffset.IsValid() { mi.extensionMap = func(p pointer) *extensionMap { if p.IsNil() { return (*extensionMap)(nil) } v := p.Apply(si.extensionOffset).AsValueOf(extensionFieldsType) return (*extensionMap)(v.Interface().(*map[int32]ExtensionField)) } } else { mi.extensionMap = func(pointer) *extensionMap { return (*extensionMap)(nil) } } } func (mi *MessageInfo) makeFieldTypes(si structInfo) { md := mi.Desc fds := md.Fields() for i := 0; i < fds.Len(); i++ { var ft reflect.Type fd := fds.Get(i) fs := si.fieldsByNumber[fd.Number()] isOneof := fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic() if isOneof { fs = si.oneofsByName[fd.ContainingOneof().Name()] } var isMessage bool switch { case fs.Type == nil: continue // never occurs for officially generated message types case isOneof: if fd.Enum() != nil || fd.Message() != nil { ft = si.oneofWrappersByNumber[fd.Number()].Field(0).Type } case fd.IsMap(): if fd.MapValue().Enum() != nil || fd.MapValue().Message() != nil { ft = fs.Type.Elem() } isMessage = fd.MapValue().Message() != nil case fd.IsList(): if fd.Enum() != nil || fd.Message() != nil { ft = fs.Type.Elem() } isMessage = fd.Message() != nil case fd.Enum() != nil: ft = fs.Type if fd.HasPresence() && ft.Kind() == reflect.Ptr { ft = ft.Elem() } case fd.Message() != nil: ft = fs.Type if fd.IsWeak() { ft = nil } isMessage = true } if isMessage && ft != nil && ft.Kind() != reflect.Ptr { ft = reflect.PtrTo(ft) // never occurs for officially generated message types } if ft != nil { if mi.fieldTypes == nil { mi.fieldTypes = make(map[pref.FieldNumber]interface{}) } mi.fieldTypes[fd.Number()] = reflect.Zero(ft).Interface() } } } type extensionMap map[int32]ExtensionField func (m *extensionMap) Range(f func(pref.FieldDescriptor, pref.Value) bool) { if m != nil { for _, x := range *m { xd := x.Type().TypeDescriptor() v := x.Value() if xd.IsList() && v.List().Len() == 0 { continue } if !f(xd, v) { return } } } } func (m *extensionMap) Has(xt pref.ExtensionType) (ok bool) { if m == nil { return false } xd := xt.TypeDescriptor() x, ok := (*m)[int32(xd.Number())] if !ok { return false } switch { case xd.IsList(): return x.Value().List().Len() > 0 case xd.IsMap(): return x.Value().Map().Len() > 0 case xd.Message() != nil: return x.Value().Message().IsValid() } return true } func (m *extensionMap) Clear(xt pref.ExtensionType) { delete(*m, int32(xt.TypeDescriptor().Number())) } func (m *extensionMap) Get(xt pref.ExtensionType) pref.Value { xd := xt.TypeDescriptor() if m != nil { if x, ok := (*m)[int32(xd.Number())]; ok { return x.Value() } } return xt.Zero() } func (m *extensionMap) Set(xt pref.ExtensionType, v pref.Value) { xd := xt.TypeDescriptor() isValid := true switch { case !xt.IsValidValue(v): isValid = false case xd.IsList(): isValid = v.List().IsValid() case xd.IsMap(): isValid = v.Map().IsValid() case xd.Message() != nil: isValid = v.Message().IsValid() } if !isValid { panic(fmt.Sprintf("%v: assigning invalid value", xt.TypeDescriptor().FullName())) } if *m == nil { *m = make(map[int32]ExtensionField) } var x ExtensionField x.Set(xt, v) (*m)[int32(xd.Number())] = x } func (m *extensionMap) Mutable(xt pref.ExtensionType) pref.Value { xd := xt.TypeDescriptor() if xd.Kind() != pref.MessageKind && xd.Kind() != pref.GroupKind && !xd.IsList() && !xd.IsMap() { panic("invalid Mutable on field with non-composite type") } if x, ok := (*m)[int32(xd.Number())]; ok { return x.Value() } v := xt.New() m.Set(xt, v) return v } // MessageState is a data structure that is nested as the first field in a // concrete message. It provides a way to implement the ProtoReflect method // in an allocation-free way without needing to have a shadow Go type generated // for every message type. This technique only works using unsafe. // // // Example generated code: // // type M struct { // state protoimpl.MessageState // // Field1 int32 // Field2 string // Field3 *BarMessage // ... // } // // func (m *M) ProtoReflect() protoreflect.Message { // mi := &file_fizz_buzz_proto_msgInfos[5] // if protoimpl.UnsafeEnabled && m != nil { // ms := protoimpl.X.MessageStateOf(Pointer(m)) // if ms.LoadMessageInfo() == nil { // ms.StoreMessageInfo(mi) // } // return ms // } // return mi.MessageOf(m) // } // // The MessageState type holds a *MessageInfo, which must be atomically set to // the message info associated with a given message instance. // By unsafely converting a *M into a *MessageState, the MessageState object // has access to all the information needed to implement protobuf reflection. // It has access to the message info as its first field, and a pointer to the // MessageState is identical to a pointer to the concrete message value. // // // Requirements: // • The type M must implement protoreflect.ProtoMessage. // • The address of m must not be nil. // • The address of m and the address of m.state must be equal, // even though they are different Go types. type MessageState struct { pragma.NoUnkeyedLiterals pragma.DoNotCompare pragma.DoNotCopy atomicMessageInfo *MessageInfo } type messageState MessageState var ( _ pref.Message = (*messageState)(nil) _ unwrapper = (*messageState)(nil) ) // messageDataType is a tuple of a pointer to the message data and // a pointer to the message type. It is a generalized way of providing a // reflective view over a message instance. The disadvantage of this approach // is the need to allocate this tuple of 16B. type messageDataType struct { p pointer mi *MessageInfo } type ( messageReflectWrapper messageDataType messageIfaceWrapper messageDataType ) var ( _ pref.Message = (*messageReflectWrapper)(nil) _ unwrapper = (*messageReflectWrapper)(nil) _ pref.ProtoMessage = (*messageIfaceWrapper)(nil) _ unwrapper = (*messageIfaceWrapper)(nil) ) // MessageOf returns a reflective view over a message. The input must be a // pointer to a named Go struct. If the provided type has a ProtoReflect method, // it must be implemented by calling this method. func (mi *MessageInfo) MessageOf(m interface{}) pref.Message { if reflect.TypeOf(m) != mi.GoReflectType { panic(fmt.Sprintf("type mismatch: got %T, want %v", m, mi.GoReflectType)) } p := pointerOfIface(m) if p.IsNil() { return mi.nilMessage.Init(mi) } return &messageReflectWrapper{p, mi} } func (m *messageReflectWrapper) pointer() pointer { return m.p } func (m *messageReflectWrapper) messageInfo() *MessageInfo { return m.mi } // Reset implements the v1 proto.Message.Reset method. func (m *messageIfaceWrapper) Reset() { if mr, ok := m.protoUnwrap().(interface{ Reset() }); ok { mr.Reset() return } rv := reflect.ValueOf(m.protoUnwrap()) if rv.Kind() == reflect.Ptr && !rv.IsNil() { rv.Elem().Set(reflect.Zero(rv.Type().Elem())) } } func (m *messageIfaceWrapper) ProtoReflect() pref.Message { return (*messageReflectWrapper)(m) } func (m *messageIfaceWrapper) protoUnwrap() interface{} { return m.p.AsIfaceOf(m.mi.GoReflectType.Elem()) } // checkField verifies that the provided field descriptor is valid. // Exactly one of the returned values is populated. func (mi *MessageInfo) checkField(fd pref.FieldDescriptor) (*fieldInfo, pref.ExtensionType) { var fi *fieldInfo if n := fd.Number(); 0 < n && int(n) < len(mi.denseFields) { fi = mi.denseFields[n] } else { fi = mi.fields[n] } if fi != nil { if fi.fieldDesc != fd { if got, want := fd.FullName(), fi.fieldDesc.FullName(); got != want { panic(fmt.Sprintf("mismatching field: got %v, want %v", got, want)) } panic(fmt.Sprintf("mismatching field: %v", fd.FullName())) } return fi, nil } if fd.IsExtension() { if got, want := fd.ContainingMessage().FullName(), mi.Desc.FullName(); got != want { // TODO: Should this be exact containing message descriptor match? panic(fmt.Sprintf("extension %v has mismatching containing message: got %v, want %v", fd.FullName(), got, want)) } if !mi.Desc.ExtensionRanges().Has(fd.Number()) { panic(fmt.Sprintf("extension %v extends %v outside the extension range", fd.FullName(), mi.Desc.FullName())) } xtd, ok := fd.(pref.ExtensionTypeDescriptor) if !ok { panic(fmt.Sprintf("extension %v does not implement protoreflect.ExtensionTypeDescriptor", fd.FullName())) } return nil, xtd.Type() } panic(fmt.Sprintf("field %v is invalid", fd.FullName())) } golang-google-protobuf-1.27.1/internal/impl/message_reflect_field.go000066400000000000000000000352251411250152500255630ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "fmt" "math" "reflect" "sync" "google.golang.org/protobuf/internal/flags" pref "google.golang.org/protobuf/reflect/protoreflect" preg "google.golang.org/protobuf/reflect/protoregistry" ) type fieldInfo struct { fieldDesc pref.FieldDescriptor // These fields are used for protobuf reflection support. has func(pointer) bool clear func(pointer) get func(pointer) pref.Value set func(pointer, pref.Value) mutable func(pointer) pref.Value newMessage func() pref.Message newField func() pref.Value } func fieldInfoForMissing(fd pref.FieldDescriptor) fieldInfo { // This never occurs for generated message types. // It implies that a hand-crafted type has missing Go fields // for specific protobuf message fields. return fieldInfo{ fieldDesc: fd, has: func(p pointer) bool { return false }, clear: func(p pointer) { panic("missing Go struct field for " + string(fd.FullName())) }, get: func(p pointer) pref.Value { return fd.Default() }, set: func(p pointer, v pref.Value) { panic("missing Go struct field for " + string(fd.FullName())) }, mutable: func(p pointer) pref.Value { panic("missing Go struct field for " + string(fd.FullName())) }, newMessage: func() pref.Message { panic("missing Go struct field for " + string(fd.FullName())) }, newField: func() pref.Value { if v := fd.Default(); v.IsValid() { return v } panic("missing Go struct field for " + string(fd.FullName())) }, } } func fieldInfoForOneof(fd pref.FieldDescriptor, fs reflect.StructField, x exporter, ot reflect.Type) fieldInfo { ft := fs.Type if ft.Kind() != reflect.Interface { panic(fmt.Sprintf("field %v has invalid type: got %v, want interface kind", fd.FullName(), ft)) } if ot.Kind() != reflect.Struct { panic(fmt.Sprintf("field %v has invalid type: got %v, want struct kind", fd.FullName(), ot)) } if !reflect.PtrTo(ot).Implements(ft) { panic(fmt.Sprintf("field %v has invalid type: %v does not implement %v", fd.FullName(), ot, ft)) } conv := NewConverter(ot.Field(0).Type, fd) isMessage := fd.Message() != nil // TODO: Implement unsafe fast path? fieldOffset := offsetOf(fs, x) return fieldInfo{ // NOTE: The logic below intentionally assumes that oneof fields are // well-formatted. That is, the oneof interface never contains a // typed nil pointer to one of the wrapper structs. fieldDesc: fd, has: func(p pointer) bool { if p.IsNil() { return false } rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() if rv.IsNil() || rv.Elem().Type().Elem() != ot || rv.Elem().IsNil() { return false } return true }, clear: func(p pointer) { rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() if rv.IsNil() || rv.Elem().Type().Elem() != ot { // NOTE: We intentionally don't check for rv.Elem().IsNil() // so that (*OneofWrapperType)(nil) gets cleared to nil. return } rv.Set(reflect.Zero(rv.Type())) }, get: func(p pointer) pref.Value { if p.IsNil() { return conv.Zero() } rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() if rv.IsNil() || rv.Elem().Type().Elem() != ot || rv.Elem().IsNil() { return conv.Zero() } rv = rv.Elem().Elem().Field(0) return conv.PBValueOf(rv) }, set: func(p pointer, v pref.Value) { rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() if rv.IsNil() || rv.Elem().Type().Elem() != ot || rv.Elem().IsNil() { rv.Set(reflect.New(ot)) } rv = rv.Elem().Elem().Field(0) rv.Set(conv.GoValueOf(v)) }, mutable: func(p pointer) pref.Value { if !isMessage { panic(fmt.Sprintf("field %v with invalid Mutable call on field with non-composite type", fd.FullName())) } rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() if rv.IsNil() || rv.Elem().Type().Elem() != ot || rv.Elem().IsNil() { rv.Set(reflect.New(ot)) } rv = rv.Elem().Elem().Field(0) if rv.Kind() == reflect.Ptr && rv.IsNil() { rv.Set(conv.GoValueOf(pref.ValueOfMessage(conv.New().Message()))) } return conv.PBValueOf(rv) }, newMessage: func() pref.Message { return conv.New().Message() }, newField: func() pref.Value { return conv.New() }, } } func fieldInfoForMap(fd pref.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo { ft := fs.Type if ft.Kind() != reflect.Map { panic(fmt.Sprintf("field %v has invalid type: got %v, want map kind", fd.FullName(), ft)) } conv := NewConverter(ft, fd) // TODO: Implement unsafe fast path? fieldOffset := offsetOf(fs, x) return fieldInfo{ fieldDesc: fd, has: func(p pointer) bool { if p.IsNil() { return false } rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() return rv.Len() > 0 }, clear: func(p pointer) { rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() rv.Set(reflect.Zero(rv.Type())) }, get: func(p pointer) pref.Value { if p.IsNil() { return conv.Zero() } rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() if rv.Len() == 0 { return conv.Zero() } return conv.PBValueOf(rv) }, set: func(p pointer, v pref.Value) { rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() pv := conv.GoValueOf(v) if pv.IsNil() { panic(fmt.Sprintf("map field %v cannot be set with read-only value", fd.FullName())) } rv.Set(pv) }, mutable: func(p pointer) pref.Value { v := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() if v.IsNil() { v.Set(reflect.MakeMap(fs.Type)) } return conv.PBValueOf(v) }, newField: func() pref.Value { return conv.New() }, } } func fieldInfoForList(fd pref.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo { ft := fs.Type if ft.Kind() != reflect.Slice { panic(fmt.Sprintf("field %v has invalid type: got %v, want slice kind", fd.FullName(), ft)) } conv := NewConverter(reflect.PtrTo(ft), fd) // TODO: Implement unsafe fast path? fieldOffset := offsetOf(fs, x) return fieldInfo{ fieldDesc: fd, has: func(p pointer) bool { if p.IsNil() { return false } rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() return rv.Len() > 0 }, clear: func(p pointer) { rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() rv.Set(reflect.Zero(rv.Type())) }, get: func(p pointer) pref.Value { if p.IsNil() { return conv.Zero() } rv := p.Apply(fieldOffset).AsValueOf(fs.Type) if rv.Elem().Len() == 0 { return conv.Zero() } return conv.PBValueOf(rv) }, set: func(p pointer, v pref.Value) { rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() pv := conv.GoValueOf(v) if pv.IsNil() { panic(fmt.Sprintf("list field %v cannot be set with read-only value", fd.FullName())) } rv.Set(pv.Elem()) }, mutable: func(p pointer) pref.Value { v := p.Apply(fieldOffset).AsValueOf(fs.Type) return conv.PBValueOf(v) }, newField: func() pref.Value { return conv.New() }, } } var ( nilBytes = reflect.ValueOf([]byte(nil)) emptyBytes = reflect.ValueOf([]byte{}) ) func fieldInfoForScalar(fd pref.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo { ft := fs.Type nullable := fd.HasPresence() isBytes := ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 if nullable { if ft.Kind() != reflect.Ptr && ft.Kind() != reflect.Slice { // This never occurs for generated message types. // Despite the protobuf type system specifying presence, // the Go field type cannot represent it. nullable = false } if ft.Kind() == reflect.Ptr { ft = ft.Elem() } } conv := NewConverter(ft, fd) // TODO: Implement unsafe fast path? fieldOffset := offsetOf(fs, x) return fieldInfo{ fieldDesc: fd, has: func(p pointer) bool { if p.IsNil() { return false } rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() if nullable { return !rv.IsNil() } switch rv.Kind() { case reflect.Bool: return rv.Bool() case reflect.Int32, reflect.Int64: return rv.Int() != 0 case reflect.Uint32, reflect.Uint64: return rv.Uint() != 0 case reflect.Float32, reflect.Float64: return rv.Float() != 0 || math.Signbit(rv.Float()) case reflect.String, reflect.Slice: return rv.Len() > 0 default: panic(fmt.Sprintf("field %v has invalid type: %v", fd.FullName(), rv.Type())) // should never happen } }, clear: func(p pointer) { rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() rv.Set(reflect.Zero(rv.Type())) }, get: func(p pointer) pref.Value { if p.IsNil() { return conv.Zero() } rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() if nullable { if rv.IsNil() { return conv.Zero() } if rv.Kind() == reflect.Ptr { rv = rv.Elem() } } return conv.PBValueOf(rv) }, set: func(p pointer, v pref.Value) { rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() if nullable && rv.Kind() == reflect.Ptr { if rv.IsNil() { rv.Set(reflect.New(ft)) } rv = rv.Elem() } rv.Set(conv.GoValueOf(v)) if isBytes && rv.Len() == 0 { if nullable { rv.Set(emptyBytes) // preserve presence } else { rv.Set(nilBytes) // do not preserve presence } } }, newField: func() pref.Value { return conv.New() }, } } func fieldInfoForWeakMessage(fd pref.FieldDescriptor, weakOffset offset) fieldInfo { if !flags.ProtoLegacy { panic("no support for proto1 weak fields") } var once sync.Once var messageType pref.MessageType lazyInit := func() { once.Do(func() { messageName := fd.Message().FullName() messageType, _ = preg.GlobalTypes.FindMessageByName(messageName) if messageType == nil { panic(fmt.Sprintf("weak message %v for field %v is not linked in", messageName, fd.FullName())) } }) } num := fd.Number() return fieldInfo{ fieldDesc: fd, has: func(p pointer) bool { if p.IsNil() { return false } _, ok := p.Apply(weakOffset).WeakFields().get(num) return ok }, clear: func(p pointer) { p.Apply(weakOffset).WeakFields().clear(num) }, get: func(p pointer) pref.Value { lazyInit() if p.IsNil() { return pref.ValueOfMessage(messageType.Zero()) } m, ok := p.Apply(weakOffset).WeakFields().get(num) if !ok { return pref.ValueOfMessage(messageType.Zero()) } return pref.ValueOfMessage(m.ProtoReflect()) }, set: func(p pointer, v pref.Value) { lazyInit() m := v.Message() if m.Descriptor() != messageType.Descriptor() { if got, want := m.Descriptor().FullName(), messageType.Descriptor().FullName(); got != want { panic(fmt.Sprintf("field %v has mismatching message descriptor: got %v, want %v", fd.FullName(), got, want)) } panic(fmt.Sprintf("field %v has mismatching message descriptor: %v", fd.FullName(), m.Descriptor().FullName())) } p.Apply(weakOffset).WeakFields().set(num, m.Interface()) }, mutable: func(p pointer) pref.Value { lazyInit() fs := p.Apply(weakOffset).WeakFields() m, ok := fs.get(num) if !ok { m = messageType.New().Interface() fs.set(num, m) } return pref.ValueOfMessage(m.ProtoReflect()) }, newMessage: func() pref.Message { lazyInit() return messageType.New() }, newField: func() pref.Value { lazyInit() return pref.ValueOfMessage(messageType.New()) }, } } func fieldInfoForMessage(fd pref.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo { ft := fs.Type conv := NewConverter(ft, fd) // TODO: Implement unsafe fast path? fieldOffset := offsetOf(fs, x) return fieldInfo{ fieldDesc: fd, has: func(p pointer) bool { if p.IsNil() { return false } rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() if fs.Type.Kind() != reflect.Ptr { return !isZero(rv) } return !rv.IsNil() }, clear: func(p pointer) { rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() rv.Set(reflect.Zero(rv.Type())) }, get: func(p pointer) pref.Value { if p.IsNil() { return conv.Zero() } rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() return conv.PBValueOf(rv) }, set: func(p pointer, v pref.Value) { rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() rv.Set(conv.GoValueOf(v)) if fs.Type.Kind() == reflect.Ptr && rv.IsNil() { panic(fmt.Sprintf("field %v has invalid nil pointer", fd.FullName())) } }, mutable: func(p pointer) pref.Value { rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() if fs.Type.Kind() == reflect.Ptr && rv.IsNil() { rv.Set(conv.GoValueOf(conv.New())) } return conv.PBValueOf(rv) }, newMessage: func() pref.Message { return conv.New().Message() }, newField: func() pref.Value { return conv.New() }, } } type oneofInfo struct { oneofDesc pref.OneofDescriptor which func(pointer) pref.FieldNumber } func makeOneofInfo(od pref.OneofDescriptor, si structInfo, x exporter) *oneofInfo { oi := &oneofInfo{oneofDesc: od} if od.IsSynthetic() { fs := si.fieldsByNumber[od.Fields().Get(0).Number()] fieldOffset := offsetOf(fs, x) oi.which = func(p pointer) pref.FieldNumber { if p.IsNil() { return 0 } rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() if rv.IsNil() { // valid on either *T or []byte return 0 } return od.Fields().Get(0).Number() } } else { fs := si.oneofsByName[od.Name()] fieldOffset := offsetOf(fs, x) oi.which = func(p pointer) pref.FieldNumber { if p.IsNil() { return 0 } rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() if rv.IsNil() { return 0 } rv = rv.Elem() if rv.IsNil() { return 0 } return si.oneofWrappersByType[rv.Type().Elem()] } } return oi } // isZero is identical to reflect.Value.IsZero. // TODO: Remove this when Go1.13 is the minimally supported Go version. func isZero(v reflect.Value) bool { switch v.Kind() { case reflect.Bool: return !v.Bool() case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: return v.Int() == 0 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: return v.Uint() == 0 case reflect.Float32, reflect.Float64: return math.Float64bits(v.Float()) == 0 case reflect.Complex64, reflect.Complex128: c := v.Complex() return math.Float64bits(real(c)) == 0 && math.Float64bits(imag(c)) == 0 case reflect.Array: for i := 0; i < v.Len(); i++ { if !isZero(v.Index(i)) { return false } } return true case reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice, reflect.UnsafePointer: return v.IsNil() case reflect.String: return v.Len() == 0 case reflect.Struct: for i := 0; i < v.NumField(); i++ { if !isZero(v.Field(i)) { return false } } return true default: panic(&reflect.ValueError{"reflect.Value.IsZero", v.Kind()}) } } golang-google-protobuf-1.27.1/internal/impl/message_reflect_gen.go000066400000000000000000000175011411250152500252460ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by generate-types. DO NOT EDIT. package impl import ( "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/runtime/protoiface" ) func (m *messageState) Descriptor() protoreflect.MessageDescriptor { return m.messageInfo().Desc } func (m *messageState) Type() protoreflect.MessageType { return m.messageInfo() } func (m *messageState) New() protoreflect.Message { return m.messageInfo().New() } func (m *messageState) Interface() protoreflect.ProtoMessage { return m.protoUnwrap().(protoreflect.ProtoMessage) } func (m *messageState) protoUnwrap() interface{} { return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem()) } func (m *messageState) ProtoMethods() *protoiface.Methods { m.messageInfo().init() return &m.messageInfo().methods } // ProtoMessageInfo is a pseudo-internal API for allowing the v1 code // to be able to retrieve a v2 MessageInfo struct. // // WARNING: This method is exempt from the compatibility promise and // may be removed in the future without warning. func (m *messageState) ProtoMessageInfo() *MessageInfo { return m.messageInfo() } func (m *messageState) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { m.messageInfo().init() for _, ri := range m.messageInfo().rangeInfos { switch ri := ri.(type) { case *fieldInfo: if ri.has(m.pointer()) { if !f(ri.fieldDesc, ri.get(m.pointer())) { return } } case *oneofInfo: if n := ri.which(m.pointer()); n > 0 { fi := m.messageInfo().fields[n] if !f(fi.fieldDesc, fi.get(m.pointer())) { return } } } } m.messageInfo().extensionMap(m.pointer()).Range(f) } func (m *messageState) Has(fd protoreflect.FieldDescriptor) bool { m.messageInfo().init() if fi, xt := m.messageInfo().checkField(fd); fi != nil { return fi.has(m.pointer()) } else { return m.messageInfo().extensionMap(m.pointer()).Has(xt) } } func (m *messageState) Clear(fd protoreflect.FieldDescriptor) { m.messageInfo().init() if fi, xt := m.messageInfo().checkField(fd); fi != nil { fi.clear(m.pointer()) } else { m.messageInfo().extensionMap(m.pointer()).Clear(xt) } } func (m *messageState) Get(fd protoreflect.FieldDescriptor) protoreflect.Value { m.messageInfo().init() if fi, xt := m.messageInfo().checkField(fd); fi != nil { return fi.get(m.pointer()) } else { return m.messageInfo().extensionMap(m.pointer()).Get(xt) } } func (m *messageState) Set(fd protoreflect.FieldDescriptor, v protoreflect.Value) { m.messageInfo().init() if fi, xt := m.messageInfo().checkField(fd); fi != nil { fi.set(m.pointer(), v) } else { m.messageInfo().extensionMap(m.pointer()).Set(xt, v) } } func (m *messageState) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { m.messageInfo().init() if fi, xt := m.messageInfo().checkField(fd); fi != nil { return fi.mutable(m.pointer()) } else { return m.messageInfo().extensionMap(m.pointer()).Mutable(xt) } } func (m *messageState) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { m.messageInfo().init() if fi, xt := m.messageInfo().checkField(fd); fi != nil { return fi.newField() } else { return xt.New() } } func (m *messageState) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { m.messageInfo().init() if oi := m.messageInfo().oneofs[od.Name()]; oi != nil && oi.oneofDesc == od { return od.Fields().ByNumber(oi.which(m.pointer())) } panic("invalid oneof descriptor " + string(od.FullName()) + " for message " + string(m.Descriptor().FullName())) } func (m *messageState) GetUnknown() protoreflect.RawFields { m.messageInfo().init() return m.messageInfo().getUnknown(m.pointer()) } func (m *messageState) SetUnknown(b protoreflect.RawFields) { m.messageInfo().init() m.messageInfo().setUnknown(m.pointer(), b) } func (m *messageState) IsValid() bool { return !m.pointer().IsNil() } func (m *messageReflectWrapper) Descriptor() protoreflect.MessageDescriptor { return m.messageInfo().Desc } func (m *messageReflectWrapper) Type() protoreflect.MessageType { return m.messageInfo() } func (m *messageReflectWrapper) New() protoreflect.Message { return m.messageInfo().New() } func (m *messageReflectWrapper) Interface() protoreflect.ProtoMessage { if m, ok := m.protoUnwrap().(protoreflect.ProtoMessage); ok { return m } return (*messageIfaceWrapper)(m) } func (m *messageReflectWrapper) protoUnwrap() interface{} { return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem()) } func (m *messageReflectWrapper) ProtoMethods() *protoiface.Methods { m.messageInfo().init() return &m.messageInfo().methods } // ProtoMessageInfo is a pseudo-internal API for allowing the v1 code // to be able to retrieve a v2 MessageInfo struct. // // WARNING: This method is exempt from the compatibility promise and // may be removed in the future without warning. func (m *messageReflectWrapper) ProtoMessageInfo() *MessageInfo { return m.messageInfo() } func (m *messageReflectWrapper) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { m.messageInfo().init() for _, ri := range m.messageInfo().rangeInfos { switch ri := ri.(type) { case *fieldInfo: if ri.has(m.pointer()) { if !f(ri.fieldDesc, ri.get(m.pointer())) { return } } case *oneofInfo: if n := ri.which(m.pointer()); n > 0 { fi := m.messageInfo().fields[n] if !f(fi.fieldDesc, fi.get(m.pointer())) { return } } } } m.messageInfo().extensionMap(m.pointer()).Range(f) } func (m *messageReflectWrapper) Has(fd protoreflect.FieldDescriptor) bool { m.messageInfo().init() if fi, xt := m.messageInfo().checkField(fd); fi != nil { return fi.has(m.pointer()) } else { return m.messageInfo().extensionMap(m.pointer()).Has(xt) } } func (m *messageReflectWrapper) Clear(fd protoreflect.FieldDescriptor) { m.messageInfo().init() if fi, xt := m.messageInfo().checkField(fd); fi != nil { fi.clear(m.pointer()) } else { m.messageInfo().extensionMap(m.pointer()).Clear(xt) } } func (m *messageReflectWrapper) Get(fd protoreflect.FieldDescriptor) protoreflect.Value { m.messageInfo().init() if fi, xt := m.messageInfo().checkField(fd); fi != nil { return fi.get(m.pointer()) } else { return m.messageInfo().extensionMap(m.pointer()).Get(xt) } } func (m *messageReflectWrapper) Set(fd protoreflect.FieldDescriptor, v protoreflect.Value) { m.messageInfo().init() if fi, xt := m.messageInfo().checkField(fd); fi != nil { fi.set(m.pointer(), v) } else { m.messageInfo().extensionMap(m.pointer()).Set(xt, v) } } func (m *messageReflectWrapper) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { m.messageInfo().init() if fi, xt := m.messageInfo().checkField(fd); fi != nil { return fi.mutable(m.pointer()) } else { return m.messageInfo().extensionMap(m.pointer()).Mutable(xt) } } func (m *messageReflectWrapper) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { m.messageInfo().init() if fi, xt := m.messageInfo().checkField(fd); fi != nil { return fi.newField() } else { return xt.New() } } func (m *messageReflectWrapper) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { m.messageInfo().init() if oi := m.messageInfo().oneofs[od.Name()]; oi != nil && oi.oneofDesc == od { return od.Fields().ByNumber(oi.which(m.pointer())) } panic("invalid oneof descriptor " + string(od.FullName()) + " for message " + string(m.Descriptor().FullName())) } func (m *messageReflectWrapper) GetUnknown() protoreflect.RawFields { m.messageInfo().init() return m.messageInfo().getUnknown(m.pointer()) } func (m *messageReflectWrapper) SetUnknown(b protoreflect.RawFields) { m.messageInfo().init() m.messageInfo().setUnknown(m.pointer(), b) } func (m *messageReflectWrapper) IsValid() bool { return !m.pointer().IsNil() } golang-google-protobuf-1.27.1/internal/impl/message_reflect_test.go000066400000000000000000002063301411250152500254540ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl_test import ( "fmt" "math" "reflect" "runtime" "strings" "sync" "testing" cmp "github.com/google/go-cmp/cmp" cmpopts "github.com/google/go-cmp/cmp/cmpopts" "google.golang.org/protobuf/encoding/prototext" pimpl "google.golang.org/protobuf/internal/impl" "google.golang.org/protobuf/proto" pdesc "google.golang.org/protobuf/reflect/protodesc" pref "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/testing/protopack" proto2_20180125 "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20180125_92554152" testpb "google.golang.org/protobuf/internal/testprotos/test" "google.golang.org/protobuf/types/descriptorpb" ) // List of test operations to perform on messages, lists, or maps. type ( messageOp interface{ isMessageOp() } messageOps []messageOp listOp interface{ isListOp() } listOps []listOp mapOp interface{ isMapOp() } mapOps []mapOp ) // Test operations performed on a message. type ( // check that the message contents match equalMessage struct{ pref.Message } // check presence for specific fields in the message hasFields map[pref.FieldNumber]bool // check that specific message fields match getFields map[pref.FieldNumber]pref.Value // set specific message fields setFields map[pref.FieldNumber]pref.Value // clear specific fields in the message clearFields []pref.FieldNumber // check for the presence of specific oneof member fields. whichOneofs map[pref.Name]pref.FieldNumber // apply messageOps on each specified message field messageFields map[pref.FieldNumber]messageOps messageFieldsMutable map[pref.FieldNumber]messageOps // apply listOps on each specified list field listFields map[pref.FieldNumber]listOps listFieldsMutable map[pref.FieldNumber]listOps // apply mapOps on each specified map fields mapFields map[pref.FieldNumber]mapOps mapFieldsMutable map[pref.FieldNumber]mapOps // range through all fields and check that they match rangeFields map[pref.FieldNumber]pref.Value ) func (equalMessage) isMessageOp() {} func (hasFields) isMessageOp() {} func (getFields) isMessageOp() {} func (setFields) isMessageOp() {} func (clearFields) isMessageOp() {} func (whichOneofs) isMessageOp() {} func (messageFields) isMessageOp() {} func (messageFieldsMutable) isMessageOp() {} func (listFields) isMessageOp() {} func (listFieldsMutable) isMessageOp() {} func (mapFields) isMessageOp() {} func (mapFieldsMutable) isMessageOp() {} func (rangeFields) isMessageOp() {} // Test operations performed on a list. type ( // check that the list contents match equalList struct{ pref.List } // check that list length matches lenList int // check that specific list entries match getList map[int]pref.Value // set specific list entries setList map[int]pref.Value // append entries to the list appendList []pref.Value // apply messageOps on a newly appended message appendMessageList messageOps // truncate the list to the specified length truncList int ) func (equalList) isListOp() {} func (lenList) isListOp() {} func (getList) isListOp() {} func (setList) isListOp() {} func (appendList) isListOp() {} func (appendMessageList) isListOp() {} func (truncList) isListOp() {} // Test operations performed on a map. type ( // check that the map contents match equalMap struct{ pref.Map } // check that map length matches lenMap int // check presence for specific entries in the map hasMap map[interface{}]bool // check that specific map entries match getMap map[interface{}]pref.Value // set specific map entries setMap map[interface{}]pref.Value // clear specific entries in the map clearMap []interface{} // apply messageOps on each specified message entry messageMap map[interface{}]messageOps // range through all entries and check that they match rangeMap map[interface{}]pref.Value ) func (equalMap) isMapOp() {} func (lenMap) isMapOp() {} func (hasMap) isMapOp() {} func (getMap) isMapOp() {} func (setMap) isMapOp() {} func (clearMap) isMapOp() {} func (messageMap) isMapOp() {} func (rangeMap) isMapOp() {} type ScalarProto2 struct { Bool *bool `protobuf:"1"` Int32 *int32 `protobuf:"2"` Int64 *int64 `protobuf:"3"` Uint32 *uint32 `protobuf:"4"` Uint64 *uint64 `protobuf:"5"` Float32 *float32 `protobuf:"6"` Float64 *float64 `protobuf:"7"` String *string `protobuf:"8"` StringA []byte `protobuf:"9"` Bytes []byte `protobuf:"10"` BytesA *string `protobuf:"11"` MyBool *MyBool `protobuf:"12"` MyInt32 *MyInt32 `protobuf:"13"` MyInt64 *MyInt64 `protobuf:"14"` MyUint32 *MyUint32 `protobuf:"15"` MyUint64 *MyUint64 `protobuf:"16"` MyFloat32 *MyFloat32 `protobuf:"17"` MyFloat64 *MyFloat64 `protobuf:"18"` MyString *MyString `protobuf:"19"` MyStringA MyBytes `protobuf:"20"` MyBytes MyBytes `protobuf:"21"` MyBytesA *MyString `protobuf:"22"` } func mustMakeEnumDesc(path string, syntax pref.Syntax, enumDesc string) pref.EnumDescriptor { s := fmt.Sprintf(`name:%q syntax:%q enum_type:[{%s}]`, path, syntax, enumDesc) pb := new(descriptorpb.FileDescriptorProto) if err := prototext.Unmarshal([]byte(s), pb); err != nil { panic(err) } fd, err := pdesc.NewFile(pb, nil) if err != nil { panic(err) } return fd.Enums().Get(0) } func mustMakeMessageDesc(path string, syntax pref.Syntax, fileDesc, msgDesc string, r pdesc.Resolver) pref.MessageDescriptor { s := fmt.Sprintf(`name:%q syntax:%q %s message_type:[{%s}]`, path, syntax, fileDesc, msgDesc) pb := new(descriptorpb.FileDescriptorProto) if err := prototext.Unmarshal([]byte(s), pb); err != nil { panic(err) } fd, err := pdesc.NewFile(pb, r) if err != nil { panic(err) } return fd.Messages().Get(0) } var V = pref.ValueOf var VE = func(n pref.EnumNumber) pref.Value { return V(n) } type ( MyBool bool MyInt32 int32 MyInt64 int64 MyUint32 uint32 MyUint64 uint64 MyFloat32 float32 MyFloat64 float64 MyString string MyBytes []byte ListStrings []MyString ListBytes []MyBytes MapStrings map[MyString]MyString MapBytes map[MyString]MyBytes ) var scalarProto2Type = pimpl.MessageInfo{GoReflectType: reflect.TypeOf(new(ScalarProto2)), Desc: mustMakeMessageDesc("scalar2.proto", pref.Proto2, "", ` name: "ScalarProto2" field: [ {name:"f1" number:1 label:LABEL_OPTIONAL type:TYPE_BOOL default_value:"true"}, {name:"f2" number:2 label:LABEL_OPTIONAL type:TYPE_INT32 default_value:"2"}, {name:"f3" number:3 label:LABEL_OPTIONAL type:TYPE_INT64 default_value:"3"}, {name:"f4" number:4 label:LABEL_OPTIONAL type:TYPE_UINT32 default_value:"4"}, {name:"f5" number:5 label:LABEL_OPTIONAL type:TYPE_UINT64 default_value:"5"}, {name:"f6" number:6 label:LABEL_OPTIONAL type:TYPE_FLOAT default_value:"6"}, {name:"f7" number:7 label:LABEL_OPTIONAL type:TYPE_DOUBLE default_value:"7"}, {name:"f8" number:8 label:LABEL_OPTIONAL type:TYPE_STRING default_value:"8"}, {name:"f9" number:9 label:LABEL_OPTIONAL type:TYPE_STRING default_value:"9"}, {name:"f10" number:10 label:LABEL_OPTIONAL type:TYPE_BYTES default_value:"10"}, {name:"f11" number:11 label:LABEL_OPTIONAL type:TYPE_BYTES default_value:"11"}, {name:"f12" number:12 label:LABEL_OPTIONAL type:TYPE_BOOL default_value:"true"}, {name:"f13" number:13 label:LABEL_OPTIONAL type:TYPE_INT32 default_value:"13"}, {name:"f14" number:14 label:LABEL_OPTIONAL type:TYPE_INT64 default_value:"14"}, {name:"f15" number:15 label:LABEL_OPTIONAL type:TYPE_UINT32 default_value:"15"}, {name:"f16" number:16 label:LABEL_OPTIONAL type:TYPE_UINT64 default_value:"16"}, {name:"f17" number:17 label:LABEL_OPTIONAL type:TYPE_FLOAT default_value:"17"}, {name:"f18" number:18 label:LABEL_OPTIONAL type:TYPE_DOUBLE default_value:"18"}, {name:"f19" number:19 label:LABEL_OPTIONAL type:TYPE_STRING default_value:"19"}, {name:"f20" number:20 label:LABEL_OPTIONAL type:TYPE_STRING default_value:"20"}, {name:"f21" number:21 label:LABEL_OPTIONAL type:TYPE_BYTES default_value:"21"}, {name:"f22" number:22 label:LABEL_OPTIONAL type:TYPE_BYTES default_value:"22"} ] `, nil), } func (m *ScalarProto2) ProtoReflect() pref.Message { return scalarProto2Type.MessageOf(m) } func TestScalarProto2(t *testing.T) { testMessage(t, nil, new(ScalarProto2).ProtoReflect(), messageOps{ hasFields{ 1: false, 2: false, 3: false, 4: false, 5: false, 6: false, 7: false, 8: false, 9: false, 10: false, 11: false, 12: false, 13: false, 14: false, 15: false, 16: false, 17: false, 18: false, 19: false, 20: false, 21: false, 22: false, }, getFields{ 1: V(bool(true)), 2: V(int32(2)), 3: V(int64(3)), 4: V(uint32(4)), 5: V(uint64(5)), 6: V(float32(6)), 7: V(float64(7)), 8: V(string("8")), 9: V(string("9")), 10: V([]byte("10")), 11: V([]byte("11")), 12: V(bool(true)), 13: V(int32(13)), 14: V(int64(14)), 15: V(uint32(15)), 16: V(uint64(16)), 17: V(float32(17)), 18: V(float64(18)), 19: V(string("19")), 20: V(string("20")), 21: V([]byte("21")), 22: V([]byte("22")), }, setFields{ 1: V(bool(false)), 2: V(int32(0)), 3: V(int64(0)), 4: V(uint32(0)), 5: V(uint64(0)), 6: V(float32(0)), 7: V(float64(0)), 8: V(string("")), 9: V(string("")), 10: V([]byte(nil)), 11: V([]byte(nil)), 12: V(bool(false)), 13: V(int32(0)), 14: V(int64(0)), 15: V(uint32(0)), 16: V(uint64(0)), 17: V(float32(0)), 18: V(float64(0)), 19: V(string("")), 20: V(string("")), 21: V([]byte(nil)), 22: V([]byte(nil)), }, hasFields{ 1: true, 2: true, 3: true, 4: true, 5: true, 6: true, 7: true, 8: true, 9: true, 10: true, 11: true, 12: true, 13: true, 14: true, 15: true, 16: true, 17: true, 18: true, 19: true, 20: true, 21: true, 22: true, }, equalMessage{(&ScalarProto2{ new(bool), new(int32), new(int64), new(uint32), new(uint64), new(float32), new(float64), new(string), []byte{}, []byte{}, new(string), new(MyBool), new(MyInt32), new(MyInt64), new(MyUint32), new(MyUint64), new(MyFloat32), new(MyFloat64), new(MyString), MyBytes{}, MyBytes{}, new(MyString), }).ProtoReflect()}, clearFields{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22}, equalMessage{new(ScalarProto2).ProtoReflect()}, // Setting a bytes field nil empty bytes should preserve presence. setFields{10: V([]byte(nil)), 11: V([]byte(nil)), 21: V([]byte(nil)), 22: V([]byte(nil))}, getFields{10: V([]byte{}), 11: V([]byte(nil)), 21: V([]byte{}), 22: V([]byte(nil))}, hasFields{10: true, 11: true, 21: true, 22: true}, }) // Test read-only operations on nil message. testMessage(t, nil, (*ScalarProto2)(nil).ProtoReflect(), messageOps{ hasFields{ 1: false, 2: false, 3: false, 4: false, 5: false, 6: false, 7: false, 8: false, 9: false, 10: false, 11: false, 12: false, 13: false, 14: false, 15: false, 16: false, 17: false, 18: false, 19: false, 20: false, 21: false, 22: false, }, getFields{ 1: V(bool(true)), 2: V(int32(2)), 3: V(int64(3)), 4: V(uint32(4)), 5: V(uint64(5)), 6: V(float32(6)), 7: V(float64(7)), 8: V(string("8")), 9: V(string("9")), 10: V([]byte("10")), 11: V([]byte("11")), 12: V(bool(true)), 13: V(int32(13)), 14: V(int64(14)), 15: V(uint32(15)), 16: V(uint64(16)), 17: V(float32(17)), 18: V(float64(18)), 19: V(string("19")), 20: V(string("20")), 21: V([]byte("21")), 22: V([]byte("22")), }, }) } type ScalarProto3 struct { Bool bool `protobuf:"1"` Int32 int32 `protobuf:"2"` Int64 int64 `protobuf:"3"` Uint32 uint32 `protobuf:"4"` Uint64 uint64 `protobuf:"5"` Float32 float32 `protobuf:"6"` Float64 float64 `protobuf:"7"` String string `protobuf:"8"` StringA []byte `protobuf:"9"` Bytes []byte `protobuf:"10"` BytesA string `protobuf:"11"` MyBool MyBool `protobuf:"12"` MyInt32 MyInt32 `protobuf:"13"` MyInt64 MyInt64 `protobuf:"14"` MyUint32 MyUint32 `protobuf:"15"` MyUint64 MyUint64 `protobuf:"16"` MyFloat32 MyFloat32 `protobuf:"17"` MyFloat64 MyFloat64 `protobuf:"18"` MyString MyString `protobuf:"19"` MyStringA MyBytes `protobuf:"20"` MyBytes MyBytes `protobuf:"21"` MyBytesA MyString `protobuf:"22"` } var scalarProto3Type = pimpl.MessageInfo{GoReflectType: reflect.TypeOf(new(ScalarProto3)), Desc: mustMakeMessageDesc("scalar3.proto", pref.Proto3, "", ` name: "ScalarProto3" field: [ {name:"f1" number:1 label:LABEL_OPTIONAL type:TYPE_BOOL}, {name:"f2" number:2 label:LABEL_OPTIONAL type:TYPE_INT32}, {name:"f3" number:3 label:LABEL_OPTIONAL type:TYPE_INT64}, {name:"f4" number:4 label:LABEL_OPTIONAL type:TYPE_UINT32}, {name:"f5" number:5 label:LABEL_OPTIONAL type:TYPE_UINT64}, {name:"f6" number:6 label:LABEL_OPTIONAL type:TYPE_FLOAT}, {name:"f7" number:7 label:LABEL_OPTIONAL type:TYPE_DOUBLE}, {name:"f8" number:8 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"f9" number:9 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"f10" number:10 label:LABEL_OPTIONAL type:TYPE_BYTES}, {name:"f11" number:11 label:LABEL_OPTIONAL type:TYPE_BYTES}, {name:"f12" number:12 label:LABEL_OPTIONAL type:TYPE_BOOL}, {name:"f13" number:13 label:LABEL_OPTIONAL type:TYPE_INT32}, {name:"f14" number:14 label:LABEL_OPTIONAL type:TYPE_INT64}, {name:"f15" number:15 label:LABEL_OPTIONAL type:TYPE_UINT32}, {name:"f16" number:16 label:LABEL_OPTIONAL type:TYPE_UINT64}, {name:"f17" number:17 label:LABEL_OPTIONAL type:TYPE_FLOAT}, {name:"f18" number:18 label:LABEL_OPTIONAL type:TYPE_DOUBLE}, {name:"f19" number:19 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"f20" number:20 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"f21" number:21 label:LABEL_OPTIONAL type:TYPE_BYTES}, {name:"f22" number:22 label:LABEL_OPTIONAL type:TYPE_BYTES} ] `, nil), } func (m *ScalarProto3) ProtoReflect() pref.Message { return scalarProto3Type.MessageOf(m) } func TestScalarProto3(t *testing.T) { testMessage(t, nil, new(ScalarProto3).ProtoReflect(), messageOps{ hasFields{ 1: false, 2: false, 3: false, 4: false, 5: false, 6: false, 7: false, 8: false, 9: false, 10: false, 11: false, 12: false, 13: false, 14: false, 15: false, 16: false, 17: false, 18: false, 19: false, 20: false, 21: false, 22: false, }, getFields{ 1: V(bool(false)), 2: V(int32(0)), 3: V(int64(0)), 4: V(uint32(0)), 5: V(uint64(0)), 6: V(float32(0)), 7: V(float64(0)), 8: V(string("")), 9: V(string("")), 10: V([]byte(nil)), 11: V([]byte(nil)), 12: V(bool(false)), 13: V(int32(0)), 14: V(int64(0)), 15: V(uint32(0)), 16: V(uint64(0)), 17: V(float32(0)), 18: V(float64(0)), 19: V(string("")), 20: V(string("")), 21: V([]byte(nil)), 22: V([]byte(nil)), }, setFields{ 1: V(bool(false)), 2: V(int32(0)), 3: V(int64(0)), 4: V(uint32(0)), 5: V(uint64(0)), 6: V(float32(0)), 7: V(float64(0)), 8: V(string("")), 9: V(string("")), 10: V([]byte(nil)), 11: V([]byte(nil)), 12: V(bool(false)), 13: V(int32(0)), 14: V(int64(0)), 15: V(uint32(0)), 16: V(uint64(0)), 17: V(float32(0)), 18: V(float64(0)), 19: V(string("")), 20: V(string("")), 21: V([]byte(nil)), 22: V([]byte(nil)), }, hasFields{ 1: false, 2: false, 3: false, 4: false, 5: false, 6: false, 7: false, 8: false, 9: false, 10: false, 11: false, 12: false, 13: false, 14: false, 15: false, 16: false, 17: false, 18: false, 19: false, 20: false, 21: false, 22: false, }, equalMessage{new(ScalarProto3).ProtoReflect()}, setFields{ 1: V(bool(true)), 2: V(int32(2)), 3: V(int64(3)), 4: V(uint32(4)), 5: V(uint64(5)), 6: V(float32(6)), 7: V(float64(7)), 8: V(string("8")), 9: V(string("9")), 10: V([]byte("10")), 11: V([]byte("11")), 12: V(bool(true)), 13: V(int32(13)), 14: V(int64(14)), 15: V(uint32(15)), 16: V(uint64(16)), 17: V(float32(17)), 18: V(float64(18)), 19: V(string("19")), 20: V(string("20")), 21: V([]byte("21")), 22: V([]byte("22")), }, hasFields{ 1: true, 2: true, 3: true, 4: true, 5: true, 6: true, 7: true, 8: true, 9: true, 10: true, 11: true, 12: true, 13: true, 14: true, 15: true, 16: true, 17: true, 18: true, 19: true, 20: true, 21: true, 22: true, }, equalMessage{(&ScalarProto3{ true, 2, 3, 4, 5, 6, 7, "8", []byte("9"), []byte("10"), "11", true, 13, 14, 15, 16, 17, 18, "19", []byte("20"), []byte("21"), "22", }).ProtoReflect()}, setFields{ 2: V(int32(-2)), 3: V(int64(-3)), 6: V(float32(math.Inf(-1))), 7: V(float64(math.NaN())), }, hasFields{ 2: true, 3: true, 6: true, 7: true, }, clearFields{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22}, equalMessage{new(ScalarProto3).ProtoReflect()}, // Verify that -0 triggers proper Has behavior. hasFields{6: false, 7: false}, setFields{6: V(float32(math.Copysign(0, -1))), 7: V(float64(math.Copysign(0, -1)))}, hasFields{6: true, 7: true}, // Setting a bytes field to non-nil empty bytes should not preserve presence. setFields{10: V([]byte{}), 11: V([]byte{}), 21: V([]byte{}), 22: V([]byte{})}, getFields{10: V([]byte(nil)), 11: V([]byte(nil)), 21: V([]byte(nil)), 22: V([]byte(nil))}, hasFields{10: false, 11: false, 21: false, 22: false}, }) // Test read-only operations on nil message. testMessage(t, nil, (*ScalarProto3)(nil).ProtoReflect(), messageOps{ hasFields{ 1: false, 2: false, 3: false, 4: false, 5: false, 6: false, 7: false, 8: false, 9: false, 10: false, 11: false, 12: false, 13: false, 14: false, 15: false, 16: false, 17: false, 18: false, 19: false, 20: false, 21: false, 22: false, }, getFields{ 1: V(bool(false)), 2: V(int32(0)), 3: V(int64(0)), 4: V(uint32(0)), 5: V(uint64(0)), 6: V(float32(0)), 7: V(float64(0)), 8: V(string("")), 9: V(string("")), 10: V([]byte(nil)), 11: V([]byte(nil)), 12: V(bool(false)), 13: V(int32(0)), 14: V(int64(0)), 15: V(uint32(0)), 16: V(uint64(0)), 17: V(float32(0)), 18: V(float64(0)), 19: V(string("")), 20: V(string("")), 21: V([]byte(nil)), 22: V([]byte(nil)), }, }) } type ListScalars struct { Bools []bool `protobuf:"1"` Int32s []int32 `protobuf:"2"` Int64s []int64 `protobuf:"3"` Uint32s []uint32 `protobuf:"4"` Uint64s []uint64 `protobuf:"5"` Float32s []float32 `protobuf:"6"` Float64s []float64 `protobuf:"7"` Strings []string `protobuf:"8"` StringsA [][]byte `protobuf:"9"` Bytes [][]byte `protobuf:"10"` BytesA []string `protobuf:"11"` MyStrings1 []MyString `protobuf:"12"` MyStrings2 []MyBytes `protobuf:"13"` MyBytes1 []MyBytes `protobuf:"14"` MyBytes2 []MyString `protobuf:"15"` MyStrings3 ListStrings `protobuf:"16"` MyStrings4 ListBytes `protobuf:"17"` MyBytes3 ListBytes `protobuf:"18"` MyBytes4 ListStrings `protobuf:"19"` } var listScalarsType = pimpl.MessageInfo{GoReflectType: reflect.TypeOf(new(ListScalars)), Desc: mustMakeMessageDesc("list-scalars.proto", pref.Proto2, "", ` name: "ListScalars" field: [ {name:"f1" number:1 label:LABEL_REPEATED type:TYPE_BOOL}, {name:"f2" number:2 label:LABEL_REPEATED type:TYPE_INT32}, {name:"f3" number:3 label:LABEL_REPEATED type:TYPE_INT64}, {name:"f4" number:4 label:LABEL_REPEATED type:TYPE_UINT32}, {name:"f5" number:5 label:LABEL_REPEATED type:TYPE_UINT64}, {name:"f6" number:6 label:LABEL_REPEATED type:TYPE_FLOAT}, {name:"f7" number:7 label:LABEL_REPEATED type:TYPE_DOUBLE}, {name:"f8" number:8 label:LABEL_REPEATED type:TYPE_STRING}, {name:"f9" number:9 label:LABEL_REPEATED type:TYPE_STRING}, {name:"f10" number:10 label:LABEL_REPEATED type:TYPE_BYTES}, {name:"f11" number:11 label:LABEL_REPEATED type:TYPE_BYTES}, {name:"f12" number:12 label:LABEL_REPEATED type:TYPE_STRING}, {name:"f13" number:13 label:LABEL_REPEATED type:TYPE_STRING}, {name:"f14" number:14 label:LABEL_REPEATED type:TYPE_BYTES}, {name:"f15" number:15 label:LABEL_REPEATED type:TYPE_BYTES}, {name:"f16" number:16 label:LABEL_REPEATED type:TYPE_STRING}, {name:"f17" number:17 label:LABEL_REPEATED type:TYPE_STRING}, {name:"f18" number:18 label:LABEL_REPEATED type:TYPE_BYTES}, {name:"f19" number:19 label:LABEL_REPEATED type:TYPE_BYTES} ] `, nil), } func (m *ListScalars) ProtoReflect() pref.Message { return listScalarsType.MessageOf(m) } func TestListScalars(t *testing.T) { empty := new(ListScalars).ProtoReflect() want := (&ListScalars{ Bools: []bool{true, false, true}, Int32s: []int32{2, math.MinInt32, math.MaxInt32}, Int64s: []int64{3, math.MinInt64, math.MaxInt64}, Uint32s: []uint32{4, math.MaxUint32 / 2, math.MaxUint32}, Uint64s: []uint64{5, math.MaxUint64 / 2, math.MaxUint64}, Float32s: []float32{6, math.SmallestNonzeroFloat32, float32(math.NaN()), math.MaxFloat32}, Float64s: []float64{7, math.SmallestNonzeroFloat64, float64(math.NaN()), math.MaxFloat64}, Strings: []string{"8", "", "eight"}, StringsA: [][]byte{[]byte("9"), nil, []byte("nine")}, Bytes: [][]byte{[]byte("10"), nil, []byte("ten")}, BytesA: []string{"11", "", "eleven"}, MyStrings1: []MyString{"12", "", "twelve"}, MyStrings2: []MyBytes{[]byte("13"), nil, []byte("thirteen")}, MyBytes1: []MyBytes{[]byte("14"), nil, []byte("fourteen")}, MyBytes2: []MyString{"15", "", "fifteen"}, MyStrings3: ListStrings{"16", "", "sixteen"}, MyStrings4: ListBytes{[]byte("17"), nil, []byte("seventeen")}, MyBytes3: ListBytes{[]byte("18"), nil, []byte("eighteen")}, MyBytes4: ListStrings{"19", "", "nineteen"}, }).ProtoReflect() testMessage(t, nil, new(ListScalars).ProtoReflect(), messageOps{ hasFields{1: false, 2: false, 3: false, 4: false, 5: false, 6: false, 7: false, 8: false, 9: false, 10: false, 11: false, 12: false, 13: false, 14: false, 15: false, 16: false, 17: false, 18: false, 19: false}, getFields{1: getField(empty, 1), 3: getField(empty, 3), 5: getField(empty, 5), 7: getField(empty, 7), 9: getField(empty, 9), 11: getField(empty, 11), 13: getField(empty, 13), 15: getField(empty, 15), 17: getField(empty, 17), 19: getField(empty, 19)}, setFields{1: getField(want, 1), 3: getField(want, 3), 5: getField(want, 5), 7: getField(want, 7), 9: getField(want, 9), 11: getField(want, 11), 13: getField(want, 13), 15: getField(want, 15), 17: getField(want, 17), 19: getField(want, 19)}, listFieldsMutable{ 2: { lenList(0), appendList{V(int32(2)), V(int32(math.MinInt32)), V(int32(math.MaxInt32))}, getList{0: V(int32(2)), 1: V(int32(math.MinInt32)), 2: V(int32(math.MaxInt32))}, equalList{getField(want, 2).List()}, }, 4: { appendList{V(uint32(0)), V(uint32(0)), V(uint32(0))}, setList{0: V(uint32(4)), 1: V(uint32(math.MaxUint32 / 2)), 2: V(uint32(math.MaxUint32))}, lenList(3), }, 6: { appendList{V(float32(6)), V(float32(math.SmallestNonzeroFloat32)), V(float32(math.NaN())), V(float32(math.MaxFloat32))}, equalList{getField(want, 6).List()}, }, 8: { appendList{V(""), V(""), V(""), V(""), V(""), V("")}, lenList(6), setList{0: V("8"), 2: V("eight")}, truncList(3), equalList{getField(want, 8).List()}, }, 10: { appendList{V([]byte(nil)), V([]byte(nil))}, setList{0: V([]byte("10"))}, appendList{V([]byte("wrong"))}, setList{2: V([]byte("ten"))}, equalList{getField(want, 10).List()}, }, 12: { appendList{V("12"), V("wrong"), V("twelve")}, setList{1: V("")}, equalList{getField(want, 12).List()}, }, 14: { appendList{V([]byte("14")), V([]byte(nil)), V([]byte("fourteen"))}, equalList{getField(want, 14).List()}, }, 16: { appendList{V("16"), V(""), V("sixteen"), V("extra")}, truncList(3), equalList{getField(want, 16).List()}, }, 18: { appendList{V([]byte("18")), V([]byte(nil)), V([]byte("eighteen"))}, equalList{getField(want, 18).List()}, }, }, hasFields{1: true, 2: true, 3: true, 4: true, 5: true, 6: true, 7: true, 8: true, 9: true, 10: true, 11: true, 12: true, 13: true, 14: true, 15: true, 16: true, 17: true, 18: true, 19: true}, equalMessage{want}, clearFields{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19}, equalMessage{empty}, }) // Test read-only operations on nil message. testMessage(t, nil, (*ListScalars)(nil).ProtoReflect(), messageOps{ hasFields{1: false, 2: false, 3: false, 4: false, 5: false, 6: false, 7: false, 8: false, 9: false, 10: false, 11: false, 12: false, 13: false, 14: false, 15: false, 16: false, 17: false, 18: false, 19: false}, listFields{2: {lenList(0)}, 4: {lenList(0)}, 6: {lenList(0)}, 8: {lenList(0)}, 10: {lenList(0)}, 12: {lenList(0)}, 14: {lenList(0)}, 16: {lenList(0)}, 18: {lenList(0)}}, }) } type MapScalars struct { KeyBools map[bool]string `protobuf:"1"` KeyInt32s map[int32]string `protobuf:"2"` KeyInt64s map[int64]string `protobuf:"3"` KeyUint32s map[uint32]string `protobuf:"4"` KeyUint64s map[uint64]string `protobuf:"5"` KeyStrings map[string]string `protobuf:"6"` ValBools map[string]bool `protobuf:"7"` ValInt32s map[string]int32 `protobuf:"8"` ValInt64s map[string]int64 `protobuf:"9"` ValUint32s map[string]uint32 `protobuf:"10"` ValUint64s map[string]uint64 `protobuf:"11"` ValFloat32s map[string]float32 `protobuf:"12"` ValFloat64s map[string]float64 `protobuf:"13"` ValStrings map[string]string `protobuf:"14"` ValStringsA map[string][]byte `protobuf:"15"` ValBytes map[string][]byte `protobuf:"16"` ValBytesA map[string]string `protobuf:"17"` MyStrings1 map[MyString]MyString `protobuf:"18"` MyStrings2 map[MyString]MyBytes `protobuf:"19"` MyBytes1 map[MyString]MyBytes `protobuf:"20"` MyBytes2 map[MyString]MyString `protobuf:"21"` MyStrings3 MapStrings `protobuf:"22"` MyStrings4 MapBytes `protobuf:"23"` MyBytes3 MapBytes `protobuf:"24"` MyBytes4 MapStrings `protobuf:"25"` } var mapScalarsType = pimpl.MessageInfo{GoReflectType: reflect.TypeOf(new(MapScalars)), Desc: mustMakeMessageDesc("map-scalars.proto", pref.Proto2, "", ` name: "MapScalars" field: [ {name:"f1" number:1 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F1Entry"}, {name:"f2" number:2 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F2Entry"}, {name:"f3" number:3 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F3Entry"}, {name:"f4" number:4 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F4Entry"}, {name:"f5" number:5 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F5Entry"}, {name:"f6" number:6 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F6Entry"}, {name:"f7" number:7 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F7Entry"}, {name:"f8" number:8 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F8Entry"}, {name:"f9" number:9 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F9Entry"}, {name:"f10" number:10 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F10Entry"}, {name:"f11" number:11 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F11Entry"}, {name:"f12" number:12 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F12Entry"}, {name:"f13" number:13 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F13Entry"}, {name:"f14" number:14 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F14Entry"}, {name:"f15" number:15 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F15Entry"}, {name:"f16" number:16 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F16Entry"}, {name:"f17" number:17 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F17Entry"}, {name:"f18" number:18 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F18Entry"}, {name:"f19" number:19 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F19Entry"}, {name:"f20" number:20 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F20Entry"}, {name:"f21" number:21 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F21Entry"}, {name:"f22" number:22 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F22Entry"}, {name:"f23" number:23 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F23Entry"}, {name:"f24" number:24 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F24Entry"}, {name:"f25" number:25 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F25Entry"} ] nested_type: [ {name:"F1Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_BOOL}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_STRING}] options:{map_entry:true}}, {name:"F2Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_INT32}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_STRING}] options:{map_entry:true}}, {name:"F3Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_INT64}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_STRING}] options:{map_entry:true}}, {name:"F4Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_UINT32}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_STRING}] options:{map_entry:true}}, {name:"F5Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_UINT64}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_STRING}] options:{map_entry:true}}, {name:"F6Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_STRING}] options:{map_entry:true}}, {name:"F7Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_BOOL}] options:{map_entry:true}}, {name:"F8Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_INT32}] options:{map_entry:true}}, {name:"F9Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_INT64}] options:{map_entry:true}}, {name:"F10Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_UINT32}] options:{map_entry:true}}, {name:"F11Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_UINT64}] options:{map_entry:true}}, {name:"F12Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_FLOAT}] options:{map_entry:true}}, {name:"F13Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_DOUBLE}] options:{map_entry:true}}, {name:"F14Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_STRING}] options:{map_entry:true}}, {name:"F15Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_STRING}] options:{map_entry:true}}, {name:"F16Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_BYTES}] options:{map_entry:true}}, {name:"F17Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_BYTES}] options:{map_entry:true}}, {name:"F18Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_STRING}] options:{map_entry:true}}, {name:"F19Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_STRING}] options:{map_entry:true}}, {name:"F20Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_BYTES}] options:{map_entry:true}}, {name:"F21Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_BYTES}] options:{map_entry:true}}, {name:"F22Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_STRING}] options:{map_entry:true}}, {name:"F23Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_STRING}] options:{map_entry:true}}, {name:"F24Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_BYTES}] options:{map_entry:true}}, {name:"F25Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_BYTES}] options:{map_entry:true}} ] `, nil), } func (m *MapScalars) ProtoReflect() pref.Message { return mapScalarsType.MessageOf(m) } func TestMapScalars(t *testing.T) { empty := new(MapScalars).ProtoReflect() want := (&MapScalars{ KeyBools: map[bool]string{true: "true", false: "false"}, KeyInt32s: map[int32]string{0: "zero", -1: "one", 2: "two"}, KeyInt64s: map[int64]string{0: "zero", -10: "ten", 20: "twenty"}, KeyUint32s: map[uint32]string{0: "zero", 1: "one", 2: "two"}, KeyUint64s: map[uint64]string{0: "zero", 10: "ten", 20: "twenty"}, KeyStrings: map[string]string{"": "", "foo": "bar"}, ValBools: map[string]bool{"true": true, "false": false}, ValInt32s: map[string]int32{"one": 1, "two": 2, "three": 3}, ValInt64s: map[string]int64{"ten": 10, "twenty": -20, "thirty": 30}, ValUint32s: map[string]uint32{"0x00": 0x00, "0xff": 0xff, "0xdead": 0xdead}, ValUint64s: map[string]uint64{"0x00": 0x00, "0xff": 0xff, "0xdead": 0xdead}, ValFloat32s: map[string]float32{"nan": float32(math.NaN()), "pi": float32(math.Pi)}, ValFloat64s: map[string]float64{"nan": float64(math.NaN()), "pi": float64(math.Pi)}, ValStrings: map[string]string{"s1": "s1", "s2": "s2"}, ValStringsA: map[string][]byte{"s1": []byte("s1"), "s2": []byte("s2")}, ValBytes: map[string][]byte{"s1": []byte("s1"), "s2": []byte("s2")}, ValBytesA: map[string]string{"s1": "s1", "s2": "s2"}, MyStrings1: map[MyString]MyString{"s1": "s1", "s2": "s2"}, MyStrings2: map[MyString]MyBytes{"s1": []byte("s1"), "s2": []byte("s2")}, MyBytes1: map[MyString]MyBytes{"s1": []byte("s1"), "s2": []byte("s2")}, MyBytes2: map[MyString]MyString{"s1": "s1", "s2": "s2"}, MyStrings3: MapStrings{"s1": "s1", "s2": "s2"}, MyStrings4: MapBytes{"s1": []byte("s1"), "s2": []byte("s2")}, MyBytes3: MapBytes{"s1": []byte("s1"), "s2": []byte("s2")}, MyBytes4: MapStrings{"s1": "s1", "s2": "s2"}, }).ProtoReflect() testMessage(t, nil, new(MapScalars).ProtoReflect(), messageOps{ hasFields{1: false, 2: false, 3: false, 4: false, 5: false, 6: false, 7: false, 8: false, 9: false, 10: false, 11: false, 12: false, 13: false, 14: false, 15: false, 16: false, 17: false, 18: false, 19: false, 20: false, 21: false, 22: false, 23: false, 24: false, 25: false}, getFields{1: getField(empty, 1), 3: getField(empty, 3), 5: getField(empty, 5), 7: getField(empty, 7), 9: getField(empty, 9), 11: getField(empty, 11), 13: getField(empty, 13), 15: getField(empty, 15), 17: getField(empty, 17), 19: getField(empty, 19), 21: getField(empty, 21), 23: getField(empty, 23), 25: getField(empty, 25)}, setFields{1: getField(want, 1), 3: getField(want, 3), 5: getField(want, 5), 7: getField(want, 7), 9: getField(want, 9), 11: getField(want, 11), 13: getField(want, 13), 15: getField(want, 15), 17: getField(want, 17), 19: getField(want, 19), 21: getField(want, 21), 23: getField(want, 23), 25: getField(want, 25)}, mapFieldsMutable{ 2: { lenMap(0), hasMap{int32(0): false, int32(-1): false, int32(2): false}, setMap{int32(0): V("zero")}, lenMap(1), hasMap{int32(0): true, int32(-1): false, int32(2): false}, setMap{int32(-1): V("one")}, lenMap(2), hasMap{int32(0): true, int32(-1): true, int32(2): false}, setMap{int32(2): V("two")}, lenMap(3), hasMap{int32(0): true, int32(-1): true, int32(2): true}, }, 4: { setMap{uint32(0): V("zero"), uint32(1): V("one"), uint32(2): V("two")}, equalMap{getField(want, 4).Map()}, }, 6: { clearMap{"noexist"}, setMap{"foo": V("bar")}, setMap{"": V("empty")}, getMap{"": V("empty"), "foo": V("bar"), "noexist": V(nil)}, setMap{"": V(""), "extra": V("extra")}, clearMap{"extra", "noexist"}, }, 8: { equalMap{getField(empty, 8).Map()}, setMap{"one": V(int32(1)), "two": V(int32(2)), "three": V(int32(3))}, }, 10: { setMap{"0x00": V(uint32(0x00)), "0xff": V(uint32(0xff)), "0xdead": V(uint32(0xdead))}, lenMap(3), equalMap{getField(want, 10).Map()}, getMap{"0x00": V(uint32(0x00)), "0xff": V(uint32(0xff)), "0xdead": V(uint32(0xdead)), "0xdeadbeef": V(nil)}, }, 12: { setMap{"nan": V(float32(math.NaN())), "pi": V(float32(math.Pi)), "e": V(float32(math.E))}, clearMap{"e", "phi"}, rangeMap{"nan": V(float32(math.NaN())), "pi": V(float32(math.Pi))}, }, 14: { equalMap{getField(empty, 14).Map()}, setMap{"s1": V("s1"), "s2": V("s2")}, }, 16: { setMap{"s1": V([]byte("s1")), "s2": V([]byte("s2"))}, equalMap{getField(want, 16).Map()}, }, 18: { hasMap{"s1": false, "s2": false, "s3": false}, setMap{"s1": V("s1"), "s2": V("s2")}, hasMap{"s1": true, "s2": true, "s3": false}, }, 20: { equalMap{getField(empty, 20).Map()}, setMap{"s1": V([]byte("s1")), "s2": V([]byte("s2"))}, }, 22: { rangeMap{}, setMap{"s1": V("s1"), "s2": V("s2")}, rangeMap{"s1": V("s1"), "s2": V("s2")}, lenMap(2), }, 24: { setMap{"s1": V([]byte("s1")), "s2": V([]byte("s2"))}, equalMap{getField(want, 24).Map()}, }, }, hasFields{1: true, 2: true, 3: true, 4: true, 5: true, 6: true, 7: true, 8: true, 9: true, 10: true, 11: true, 12: true, 13: true, 14: true, 15: true, 16: true, 17: true, 18: true, 19: true, 20: true, 21: true, 22: true, 23: true, 24: true, 25: true}, equalMessage{want}, clearFields{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25}, equalMessage{empty}, }) // Test read-only operations on nil message. testMessage(t, nil, (*MapScalars)(nil).ProtoReflect(), messageOps{ hasFields{1: false, 2: false, 3: false, 4: false, 5: false, 6: false, 7: false, 8: false, 9: false, 10: false, 11: false, 12: false, 13: false, 14: false, 15: false, 16: false, 17: false, 18: false, 19: false, 20: false, 21: false, 22: false, 23: false, 24: false, 25: false}, mapFields{2: {lenMap(0)}, 4: {lenMap(0)}, 6: {lenMap(0)}, 8: {lenMap(0)}, 10: {lenMap(0)}, 12: {lenMap(0)}, 14: {lenMap(0)}, 16: {lenMap(0)}, 18: {lenMap(0)}, 20: {lenMap(0)}, 22: {lenMap(0)}, 24: {lenMap(0)}}, }) } type OneofScalars struct { Union isOneofScalars_Union `protobuf_oneof:"union"` } var oneofScalarsType = pimpl.MessageInfo{GoReflectType: reflect.TypeOf(new(OneofScalars)), Desc: mustMakeMessageDesc("oneof-scalars.proto", pref.Proto2, "", ` name: "OneofScalars" field: [ {name:"f1" number:1 label:LABEL_OPTIONAL type:TYPE_BOOL default_value:"true" oneof_index:0}, {name:"f2" number:2 label:LABEL_OPTIONAL type:TYPE_INT32 default_value:"2" oneof_index:0}, {name:"f3" number:3 label:LABEL_OPTIONAL type:TYPE_INT64 default_value:"3" oneof_index:0}, {name:"f4" number:4 label:LABEL_OPTIONAL type:TYPE_UINT32 default_value:"4" oneof_index:0}, {name:"f5" number:5 label:LABEL_OPTIONAL type:TYPE_UINT64 default_value:"5" oneof_index:0}, {name:"f6" number:6 label:LABEL_OPTIONAL type:TYPE_FLOAT default_value:"6" oneof_index:0}, {name:"f7" number:7 label:LABEL_OPTIONAL type:TYPE_DOUBLE default_value:"7" oneof_index:0}, {name:"f8" number:8 label:LABEL_OPTIONAL type:TYPE_STRING default_value:"8" oneof_index:0}, {name:"f9" number:9 label:LABEL_OPTIONAL type:TYPE_STRING default_value:"9" oneof_index:0}, {name:"f10" number:10 label:LABEL_OPTIONAL type:TYPE_STRING default_value:"10" oneof_index:0}, {name:"f11" number:11 label:LABEL_OPTIONAL type:TYPE_BYTES default_value:"11" oneof_index:0}, {name:"f12" number:12 label:LABEL_OPTIONAL type:TYPE_BYTES default_value:"12" oneof_index:0}, {name:"f13" number:13 label:LABEL_OPTIONAL type:TYPE_BYTES default_value:"13" oneof_index:0} ] oneof_decl: [{name:"union"}] `, nil), } func (m *OneofScalars) ProtoReflect() pref.Message { return oneofScalarsType.MessageOf(m) } func (*OneofScalars) XXX_OneofWrappers() []interface{} { return []interface{}{ (*OneofScalars_Bool)(nil), (*OneofScalars_Int32)(nil), (*OneofScalars_Int64)(nil), (*OneofScalars_Uint32)(nil), (*OneofScalars_Uint64)(nil), (*OneofScalars_Float32)(nil), (*OneofScalars_Float64)(nil), (*OneofScalars_String)(nil), (*OneofScalars_StringA)(nil), (*OneofScalars_StringB)(nil), (*OneofScalars_Bytes)(nil), (*OneofScalars_BytesA)(nil), (*OneofScalars_BytesB)(nil), } } type ( isOneofScalars_Union interface { isOneofScalars_Union() } OneofScalars_Bool struct { Bool bool `protobuf:"1"` } OneofScalars_Int32 struct { Int32 MyInt32 `protobuf:"2"` } OneofScalars_Int64 struct { Int64 int64 `protobuf:"3"` } OneofScalars_Uint32 struct { Uint32 MyUint32 `protobuf:"4"` } OneofScalars_Uint64 struct { Uint64 uint64 `protobuf:"5"` } OneofScalars_Float32 struct { Float32 MyFloat32 `protobuf:"6"` } OneofScalars_Float64 struct { Float64 float64 `protobuf:"7"` } OneofScalars_String struct { String string `protobuf:"8"` } OneofScalars_StringA struct { StringA []byte `protobuf:"9"` } OneofScalars_StringB struct { StringB MyString `protobuf:"10"` } OneofScalars_Bytes struct { Bytes []byte `protobuf:"11"` } OneofScalars_BytesA struct { BytesA string `protobuf:"12"` } OneofScalars_BytesB struct { BytesB MyBytes `protobuf:"13"` } ) func (*OneofScalars_Bool) isOneofScalars_Union() {} func (*OneofScalars_Int32) isOneofScalars_Union() {} func (*OneofScalars_Int64) isOneofScalars_Union() {} func (*OneofScalars_Uint32) isOneofScalars_Union() {} func (*OneofScalars_Uint64) isOneofScalars_Union() {} func (*OneofScalars_Float32) isOneofScalars_Union() {} func (*OneofScalars_Float64) isOneofScalars_Union() {} func (*OneofScalars_String) isOneofScalars_Union() {} func (*OneofScalars_StringA) isOneofScalars_Union() {} func (*OneofScalars_StringB) isOneofScalars_Union() {} func (*OneofScalars_Bytes) isOneofScalars_Union() {} func (*OneofScalars_BytesA) isOneofScalars_Union() {} func (*OneofScalars_BytesB) isOneofScalars_Union() {} func TestOneofs(t *testing.T) { empty := &OneofScalars{} want1 := &OneofScalars{Union: &OneofScalars_Bool{true}} want2 := &OneofScalars{Union: &OneofScalars_Int32{20}} want3 := &OneofScalars{Union: &OneofScalars_Int64{30}} want4 := &OneofScalars{Union: &OneofScalars_Uint32{40}} want5 := &OneofScalars{Union: &OneofScalars_Uint64{50}} want6 := &OneofScalars{Union: &OneofScalars_Float32{60}} want7 := &OneofScalars{Union: &OneofScalars_Float64{70}} want8 := &OneofScalars{Union: &OneofScalars_String{string("80")}} want9 := &OneofScalars{Union: &OneofScalars_StringA{[]byte("90")}} want10 := &OneofScalars{Union: &OneofScalars_StringB{MyString("100")}} want11 := &OneofScalars{Union: &OneofScalars_Bytes{[]byte("110")}} want12 := &OneofScalars{Union: &OneofScalars_BytesA{string("120")}} want13 := &OneofScalars{Union: &OneofScalars_BytesB{MyBytes("130")}} testMessage(t, nil, new(OneofScalars).ProtoReflect(), messageOps{ hasFields{1: false, 2: false, 3: false, 4: false, 5: false, 6: false, 7: false, 8: false, 9: false, 10: false, 11: false, 12: false, 13: false}, getFields{1: V(bool(true)), 2: V(int32(2)), 3: V(int64(3)), 4: V(uint32(4)), 5: V(uint64(5)), 6: V(float32(6)), 7: V(float64(7)), 8: V(string("8")), 9: V(string("9")), 10: V(string("10")), 11: V([]byte("11")), 12: V([]byte("12")), 13: V([]byte("13"))}, whichOneofs{"union": 0}, setFields{1: V(bool(true))}, hasFields{1: true}, equalMessage{want1.ProtoReflect()}, setFields{2: V(int32(20))}, hasFields{2: true}, equalMessage{want2.ProtoReflect()}, setFields{3: V(int64(30))}, hasFields{3: true}, equalMessage{want3.ProtoReflect()}, setFields{4: V(uint32(40))}, hasFields{4: true}, equalMessage{want4.ProtoReflect()}, setFields{5: V(uint64(50))}, hasFields{5: true}, equalMessage{want5.ProtoReflect()}, setFields{6: V(float32(60))}, hasFields{6: true}, equalMessage{want6.ProtoReflect()}, setFields{7: V(float64(70))}, hasFields{7: true}, equalMessage{want7.ProtoReflect()}, hasFields{1: false, 2: false, 3: false, 4: false, 5: false, 6: false, 7: true, 8: false, 9: false, 10: false, 11: false, 12: false, 13: false}, whichOneofs{"union": 7}, setFields{8: V(string("80"))}, hasFields{8: true}, equalMessage{want8.ProtoReflect()}, setFields{9: V(string("90"))}, hasFields{9: true}, equalMessage{want9.ProtoReflect()}, setFields{10: V(string("100"))}, hasFields{10: true}, equalMessage{want10.ProtoReflect()}, setFields{11: V([]byte("110"))}, hasFields{11: true}, equalMessage{want11.ProtoReflect()}, setFields{12: V([]byte("120"))}, hasFields{12: true}, equalMessage{want12.ProtoReflect()}, setFields{13: V([]byte("130"))}, hasFields{13: true}, equalMessage{want13.ProtoReflect()}, hasFields{1: false, 2: false, 3: false, 4: false, 5: false, 6: false, 7: false, 8: false, 9: false, 10: false, 11: false, 12: false, 13: true}, getFields{1: V(bool(true)), 2: V(int32(2)), 3: V(int64(3)), 4: V(uint32(4)), 5: V(uint64(5)), 6: V(float32(6)), 7: V(float64(7)), 8: V(string("8")), 9: V(string("9")), 10: V(string("10")), 11: V([]byte("11")), 12: V([]byte("12")), 13: V([]byte("130"))}, clearFields{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}, whichOneofs{"union": 13}, equalMessage{want13.ProtoReflect()}, clearFields{13}, whichOneofs{"union": 0}, equalMessage{empty.ProtoReflect()}, }) // Test read-only operations on nil message. testMessage(t, nil, (*OneofScalars)(nil).ProtoReflect(), messageOps{ hasFields{1: false, 2: false, 3: false, 4: false, 5: false, 6: false, 7: false, 8: false, 9: false, 10: false, 11: false, 12: false, 13: false}, getFields{1: V(bool(true)), 2: V(int32(2)), 3: V(int64(3)), 4: V(uint32(4)), 5: V(uint64(5)), 6: V(float32(6)), 7: V(float64(7)), 8: V(string("8")), 9: V(string("9")), 10: V(string("10")), 11: V([]byte("11")), 12: V([]byte("12")), 13: V([]byte("13"))}, }) } type EnumProto2 int32 var enumProto2Desc = mustMakeEnumDesc("enum2.proto", pref.Proto2, ` name: "EnumProto2" value: [{name:"DEAD" number:0xdead}, {name:"BEEF" number:0xbeef}] `) func (e EnumProto2) Descriptor() pref.EnumDescriptor { return enumProto2Desc } func (e EnumProto2) Type() pref.EnumType { return e } func (e EnumProto2) Enum() *EnumProto2 { return &e } func (e EnumProto2) Number() pref.EnumNumber { return pref.EnumNumber(e) } func (t EnumProto2) New(n pref.EnumNumber) pref.Enum { return EnumProto2(n) } type EnumProto3 int32 var enumProto3Desc = mustMakeEnumDesc("enum3.proto", pref.Proto3, ` name: "EnumProto3", value: [{name:"ALPHA" number:0}, {name:"BRAVO" number:1}] `) func (e EnumProto3) Descriptor() pref.EnumDescriptor { return enumProto3Desc } func (e EnumProto3) Type() pref.EnumType { return e } func (e EnumProto3) Enum() *EnumProto3 { return &e } func (e EnumProto3) Number() pref.EnumNumber { return pref.EnumNumber(e) } func (t EnumProto3) New(n pref.EnumNumber) pref.Enum { return EnumProto3(n) } type EnumMessages struct { EnumP2 *EnumProto2 `protobuf:"1"` EnumP3 *EnumProto3 `protobuf:"2"` MessageLegacy *proto2_20180125.Message `protobuf:"3"` MessageCycle *EnumMessages `protobuf:"4"` EnumList []EnumProto2 `protobuf:"5"` MessageList []*ScalarProto2 `protobuf:"6"` EnumMap map[string]EnumProto3 `protobuf:"7"` MessageMap map[string]*ScalarProto3 `protobuf:"8"` Union isEnumMessages_Union `protobuf_oneof:"union"` } var enumMessagesType = pimpl.MessageInfo{GoReflectType: reflect.TypeOf(new(EnumMessages)), Desc: mustMakeMessageDesc("enum-messages.proto", pref.Proto2, ` dependency: ["enum2.proto", "enum3.proto", "scalar2.proto", "scalar3.proto", "proto2_20180125_92554152/test.proto"] `, ` name: "EnumMessages" field: [ {name:"f1" number:1 label:LABEL_OPTIONAL type:TYPE_ENUM type_name:".EnumProto2" default_value:"BEEF"}, {name:"f2" number:2 label:LABEL_OPTIONAL type:TYPE_ENUM type_name:".EnumProto3" default_value:"BRAVO"}, {name:"f3" number:3 label:LABEL_OPTIONAL type:TYPE_MESSAGE type_name:".google.golang.org.proto2_20180125.Message"}, {name:"f4" number:4 label:LABEL_OPTIONAL type:TYPE_MESSAGE type_name:".EnumMessages"}, {name:"f5" number:5 label:LABEL_REPEATED type:TYPE_ENUM type_name:".EnumProto2"}, {name:"f6" number:6 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".ScalarProto2"}, {name:"f7" number:7 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".EnumMessages.F7Entry"}, {name:"f8" number:8 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".EnumMessages.F8Entry"}, {name:"f9" number:9 label:LABEL_OPTIONAL type:TYPE_ENUM type_name:".EnumProto2" oneof_index:0 default_value:"BEEF"}, {name:"f10" number:10 label:LABEL_OPTIONAL type:TYPE_ENUM type_name:".EnumProto3" oneof_index:0 default_value:"BRAVO"}, {name:"f11" number:11 label:LABEL_OPTIONAL type:TYPE_MESSAGE type_name:".ScalarProto2" oneof_index:0}, {name:"f12" number:12 label:LABEL_OPTIONAL type:TYPE_MESSAGE type_name:".ScalarProto3" oneof_index:0} ] oneof_decl: [{name:"union"}] nested_type: [ {name:"F7Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_ENUM type_name:".EnumProto3"}] options:{map_entry:true}}, {name:"F8Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_MESSAGE type_name:".ScalarProto3"}] options:{map_entry:true}} ] `, newFileRegistry( EnumProto2(0).Descriptor().ParentFile(), EnumProto3(0).Descriptor().ParentFile(), ((*ScalarProto2)(nil)).ProtoReflect().Descriptor().ParentFile(), ((*ScalarProto3)(nil)).ProtoReflect().Descriptor().ParentFile(), pimpl.Export{}.MessageDescriptorOf((*proto2_20180125.Message)(nil)).ParentFile(), )), } func newFileRegistry(files ...pref.FileDescriptor) *protoregistry.Files { r := new(protoregistry.Files) for _, file := range files { r.RegisterFile(file) } return r } func (m *EnumMessages) ProtoReflect() pref.Message { return enumMessagesType.MessageOf(m) } func (*EnumMessages) XXX_OneofWrappers() []interface{} { return []interface{}{ (*EnumMessages_OneofE2)(nil), (*EnumMessages_OneofE3)(nil), (*EnumMessages_OneofM2)(nil), (*EnumMessages_OneofM3)(nil), } } type ( isEnumMessages_Union interface { isEnumMessages_Union() } EnumMessages_OneofE2 struct { OneofE2 EnumProto2 `protobuf:"9"` } EnumMessages_OneofE3 struct { OneofE3 EnumProto3 `protobuf:"10"` } EnumMessages_OneofM2 struct { OneofM2 *ScalarProto2 `protobuf:"11"` } EnumMessages_OneofM3 struct { OneofM3 *ScalarProto3 `protobuf:"12"` } ) func (*EnumMessages_OneofE2) isEnumMessages_Union() {} func (*EnumMessages_OneofE3) isEnumMessages_Union() {} func (*EnumMessages_OneofM2) isEnumMessages_Union() {} func (*EnumMessages_OneofM3) isEnumMessages_Union() {} func TestEnumMessages(t *testing.T) { emptyL := pimpl.Export{}.MessageOf(new(proto2_20180125.Message)) emptyM := new(EnumMessages).ProtoReflect() emptyM2 := new(ScalarProto2).ProtoReflect() emptyM3 := new(ScalarProto3).ProtoReflect() wantL := pimpl.Export{}.MessageOf(&proto2_20180125.Message{OptionalFloat: proto.Float32(math.E)}) wantM := (&EnumMessages{EnumP2: EnumProto2(1234).Enum()}).ProtoReflect() wantM2a := &ScalarProto2{Float32: proto.Float32(math.Pi)} wantM2b := &ScalarProto2{Float32: proto.Float32(math.Phi)} wantM3a := &ScalarProto3{Float32: math.Pi} wantM3b := &ScalarProto3{Float32: math.Ln2} wantList5 := getField((&EnumMessages{EnumList: []EnumProto2{333, 222}}).ProtoReflect(), 5) wantList6 := getField((&EnumMessages{MessageList: []*ScalarProto2{wantM2a, wantM2b}}).ProtoReflect(), 6) wantMap7 := getField((&EnumMessages{EnumMap: map[string]EnumProto3{"one": 1, "two": 2}}).ProtoReflect(), 7) wantMap8 := getField((&EnumMessages{MessageMap: map[string]*ScalarProto3{"pi": wantM3a, "ln2": wantM3b}}).ProtoReflect(), 8) testMessage(t, nil, new(EnumMessages).ProtoReflect(), messageOps{ hasFields{1: false, 2: false, 3: false, 4: false, 5: false, 6: false, 7: false, 8: false, 9: false, 10: false, 11: false, 12: false}, getFields{1: VE(0xbeef), 2: VE(1), 3: V(emptyL), 4: V(emptyM), 9: VE(0xbeef), 10: VE(1)}, // Test singular enums. setFields{1: VE(0xdead), 2: VE(0)}, getFields{1: VE(0xdead), 2: VE(0)}, hasFields{1: true, 2: true}, // Test singular messages. messageFieldsMutable{3: messageOps{setFields{109: V(float32(math.E))}}}, messageFieldsMutable{4: messageOps{setFields{1: VE(1234)}}}, getFields{3: V(wantL), 4: V(wantM)}, clearFields{3, 4}, hasFields{3: false, 4: false}, setFields{3: V(wantL), 4: V(wantM)}, hasFields{3: true, 4: true}, // Test list of enums and messages. listFieldsMutable{ 5: listOps{ appendList{VE(111), VE(222)}, setList{0: VE(333)}, getList{0: VE(333), 1: VE(222)}, lenList(2), }, 6: listOps{ appendMessageList{setFields{4: V(uint32(1e6))}}, appendMessageList{setFields{6: V(float32(math.Phi))}}, setList{0: V(wantM2a.ProtoReflect())}, getList{0: V(wantM2a.ProtoReflect()), 1: V(wantM2b.ProtoReflect())}, }, }, getFields{5: wantList5, 6: wantList6}, hasFields{5: true, 6: true}, listFields{5: listOps{truncList(0)}}, hasFields{5: false, 6: true}, // Test maps of enums and messages. mapFieldsMutable{ 7: mapOps{ setMap{"one": VE(1), "two": VE(2)}, hasMap{"one": true, "two": true, "three": false}, lenMap(2), }, 8: mapOps{ messageMap{"pi": messageOps{setFields{6: V(float32(math.Pi))}}}, setMap{"ln2": V(wantM3b.ProtoReflect())}, getMap{"pi": V(wantM3a.ProtoReflect()), "ln2": V(wantM3b.ProtoReflect()), "none": V(nil)}, lenMap(2), }, }, getFields{7: wantMap7, 8: wantMap8}, hasFields{7: true, 8: true}, mapFields{8: mapOps{clearMap{"pi", "ln2", "none"}}}, hasFields{7: true, 8: false}, // Test oneofs of enums and messages. setFields{9: VE(0xdead)}, hasFields{1: true, 2: true, 9: true, 10: false, 11: false, 12: false}, setFields{10: VE(0)}, hasFields{1: true, 2: true, 9: false, 10: true, 11: false, 12: false}, messageFieldsMutable{11: messageOps{setFields{6: V(float32(math.Pi))}}}, getFields{11: V(wantM2a.ProtoReflect())}, hasFields{1: true, 2: true, 9: false, 10: false, 11: true, 12: false}, messageFieldsMutable{12: messageOps{setFields{6: V(float32(math.Pi))}}}, getFields{12: V(wantM3a.ProtoReflect())}, hasFields{1: true, 2: true, 9: false, 10: false, 11: false, 12: true}, // Check entire message. rangeFields{1: VE(0xdead), 2: VE(0), 3: V(wantL), 4: V(wantM), 6: wantList6, 7: wantMap7, 12: V(wantM3a.ProtoReflect())}, equalMessage{(&EnumMessages{ EnumP2: EnumProto2(0xdead).Enum(), EnumP3: EnumProto3(0).Enum(), MessageLegacy: &proto2_20180125.Message{OptionalFloat: proto.Float32(math.E)}, MessageCycle: wantM.Interface().(*EnumMessages), MessageList: []*ScalarProto2{wantM2a, wantM2b}, EnumMap: map[string]EnumProto3{"one": 1, "two": 2}, Union: &EnumMessages_OneofM3{wantM3a}, }).ProtoReflect()}, clearFields{1, 2, 3, 4, 6, 7, 12}, equalMessage{new(EnumMessages).ProtoReflect()}, }) // Test read-only operations on nil message. testMessage(t, nil, (*EnumMessages)(nil).ProtoReflect(), messageOps{ hasFields{1: false, 2: false, 3: false, 4: false, 5: false, 6: false, 7: false, 8: false, 9: false, 10: false, 11: false, 12: false}, getFields{1: VE(0xbeef), 2: VE(1), 3: V(emptyL), 4: V(emptyM), 9: VE(0xbeef), 10: VE(1), 11: V(emptyM2), 12: V(emptyM3)}, listFields{5: {lenList(0)}, 6: {lenList(0)}}, mapFields{7: {lenMap(0)}, 8: {lenMap(0)}}, }) } var cmpOpts = cmp.Options{ cmp.Comparer(func(x, y *proto2_20180125.Message) bool { mx := pimpl.Export{}.MessageOf(x).Interface() my := pimpl.Export{}.MessageOf(y).Interface() return proto.Equal(mx, my) }), cmp.Transformer("UnwrapValue", func(pv pref.Value) interface{} { switch v := pv.Interface().(type) { case pref.Message: out := make(map[pref.FieldNumber]pref.Value) v.Range(func(fd pref.FieldDescriptor, v pref.Value) bool { out[fd.Number()] = v return true }) return out case pref.List: var out []pref.Value for i := 0; i < v.Len(); i++ { out = append(out, v.Get(i)) } return out case pref.Map: out := make(map[interface{}]pref.Value) v.Range(func(k pref.MapKey, v pref.Value) bool { out[k.Interface()] = v return true }) return out default: return v } }), cmpopts.EquateNaNs(), } func testMessage(t *testing.T, p path, m pref.Message, tt messageOps) { fieldDescs := m.Descriptor().Fields() oneofDescs := m.Descriptor().Oneofs() for i, op := range tt { p.Push(i) switch op := op.(type) { case equalMessage: if diff := cmp.Diff(V(op.Message), V(m), cmpOpts); diff != "" { t.Errorf("operation %v, message mismatch (-want, +got):\n%s", p, diff) } case hasFields: got := map[pref.FieldNumber]bool{} want := map[pref.FieldNumber]bool(op) for n := range want { fd := fieldDescs.ByNumber(n) got[n] = m.Has(fd) } if diff := cmp.Diff(want, got); diff != "" { t.Errorf("operation %v, Message.Has mismatch (-want, +got):\n%s", p, diff) } case getFields: got := map[pref.FieldNumber]pref.Value{} want := map[pref.FieldNumber]pref.Value(op) for n := range want { fd := fieldDescs.ByNumber(n) got[n] = m.Get(fd) } if diff := cmp.Diff(want, got, cmpOpts); diff != "" { t.Errorf("operation %v, Message.Get mismatch (-want, +got):\n%s", p, diff) } case setFields: for n, v := range op { fd := fieldDescs.ByNumber(n) m.Set(fd, v) } case clearFields: for _, n := range op { fd := fieldDescs.ByNumber(n) m.Clear(fd) } case whichOneofs: got := map[pref.Name]pref.FieldNumber{} want := map[pref.Name]pref.FieldNumber(op) for s := range want { od := oneofDescs.ByName(s) fd := m.WhichOneof(od) if fd == nil { got[s] = 0 } else { got[s] = fd.Number() } } if diff := cmp.Diff(want, got); diff != "" { t.Errorf("operation %v, Message.WhichOneof mismatch (-want, +got):\n%s", p, diff) } case messageFields: for n, tt := range op { p.Push(int(n)) fd := fieldDescs.ByNumber(n) testMessage(t, p, m.Get(fd).Message(), tt) p.Pop() } case messageFieldsMutable: for n, tt := range op { p.Push(int(n)) fd := fieldDescs.ByNumber(n) testMessage(t, p, m.Mutable(fd).Message(), tt) p.Pop() } case listFields: for n, tt := range op { p.Push(int(n)) fd := fieldDescs.ByNumber(n) testLists(t, p, m.Get(fd).List(), tt) p.Pop() } case listFieldsMutable: for n, tt := range op { p.Push(int(n)) fd := fieldDescs.ByNumber(n) testLists(t, p, m.Mutable(fd).List(), tt) p.Pop() } case mapFields: for n, tt := range op { p.Push(int(n)) fd := fieldDescs.ByNumber(n) testMaps(t, p, m.Get(fd).Map(), tt) p.Pop() } case mapFieldsMutable: for n, tt := range op { p.Push(int(n)) fd := fieldDescs.ByNumber(n) testMaps(t, p, m.Mutable(fd).Map(), tt) p.Pop() } case rangeFields: got := map[pref.FieldNumber]pref.Value{} want := map[pref.FieldNumber]pref.Value(op) m.Range(func(fd pref.FieldDescriptor, v pref.Value) bool { got[fd.Number()] = v return true }) if diff := cmp.Diff(want, got, cmpOpts); diff != "" { t.Errorf("operation %v, Message.Range mismatch (-want, +got):\n%s", p, diff) } default: t.Fatalf("operation %v, invalid operation: %T", p, op) } p.Pop() } } func testLists(t *testing.T, p path, v pref.List, tt listOps) { for i, op := range tt { p.Push(i) switch op := op.(type) { case equalList: if diff := cmp.Diff(V(op.List), V(v), cmpOpts); diff != "" { t.Errorf("operation %v, list mismatch (-want, +got):\n%s", p, diff) } case lenList: if got, want := v.Len(), int(op); got != want { t.Errorf("operation %v, List.Len = %d, want %d", p, got, want) } case getList: got := map[int]pref.Value{} want := map[int]pref.Value(op) for n := range want { got[n] = v.Get(n) } if diff := cmp.Diff(want, got, cmpOpts); diff != "" { t.Errorf("operation %v, List.Get mismatch (-want, +got):\n%s", p, diff) } case setList: for n, e := range op { v.Set(n, e) } case appendList: for _, e := range op { v.Append(e) } case appendMessageList: e := v.NewElement() v.Append(e) testMessage(t, p, e.Message(), messageOps(op)) case truncList: v.Truncate(int(op)) default: t.Fatalf("operation %v, invalid operation: %T", p, op) } p.Pop() } } func testMaps(t *testing.T, p path, m pref.Map, tt mapOps) { for i, op := range tt { p.Push(i) switch op := op.(type) { case equalMap: if diff := cmp.Diff(V(op.Map), V(m), cmpOpts); diff != "" { t.Errorf("operation %v, map mismatch (-want, +got):\n%s", p, diff) } case lenMap: if got, want := m.Len(), int(op); got != want { t.Errorf("operation %v, Map.Len = %d, want %d", p, got, want) } case hasMap: got := map[interface{}]bool{} want := map[interface{}]bool(op) for k := range want { got[k] = m.Has(V(k).MapKey()) } if diff := cmp.Diff(want, got, cmpOpts); diff != "" { t.Errorf("operation %v, Map.Has mismatch (-want, +got):\n%s", p, diff) } case getMap: got := map[interface{}]pref.Value{} want := map[interface{}]pref.Value(op) for k := range want { got[k] = m.Get(V(k).MapKey()) } if diff := cmp.Diff(want, got, cmpOpts); diff != "" { t.Errorf("operation %v, Map.Get mismatch (-want, +got):\n%s", p, diff) } case setMap: for k, v := range op { m.Set(V(k).MapKey(), v) } case clearMap: for _, k := range op { m.Clear(V(k).MapKey()) } case messageMap: for k, tt := range op { mk := V(k).MapKey() if !m.Has(mk) { m.Set(mk, m.NewValue()) } testMessage(t, p, m.Get(mk).Message(), tt) } case rangeMap: got := map[interface{}]pref.Value{} want := map[interface{}]pref.Value(op) m.Range(func(k pref.MapKey, v pref.Value) bool { got[k.Interface()] = v return true }) if diff := cmp.Diff(want, got, cmpOpts); diff != "" { t.Errorf("operation %v, Map.Range mismatch (-want, +got):\n%s", p, diff) } default: t.Fatalf("operation %v, invalid operation: %T", p, op) } p.Pop() } } func getField(m pref.Message, n pref.FieldNumber) pref.Value { fd := m.Descriptor().Fields().ByNumber(n) return m.Get(fd) } type path []int func (p *path) Push(i int) { *p = append(*p, i) } func (p *path) Pop() { *p = (*p)[:len(*p)-1] } func (p path) String() string { var ss []string for _, i := range p { ss = append(ss, fmt.Sprint(i)) } return strings.Join(ss, ".") } type UnknownFieldsA struct { XXX_unrecognized []byte } var unknownFieldsAType = pimpl.MessageInfo{ GoReflectType: reflect.TypeOf(new(UnknownFieldsA)), Desc: mustMakeMessageDesc("unknown.proto", pref.Proto2, "", `name: "UnknownFieldsA"`, nil), } func (m *UnknownFieldsA) ProtoReflect() pref.Message { return unknownFieldsAType.MessageOf(m) } type UnknownFieldsB struct { XXX_unrecognized *[]byte } var unknownFieldsBType = pimpl.MessageInfo{ GoReflectType: reflect.TypeOf(new(UnknownFieldsB)), Desc: mustMakeMessageDesc("unknown.proto", pref.Proto2, "", `name: "UnknownFieldsB"`, nil), } func (m *UnknownFieldsB) ProtoReflect() pref.Message { return unknownFieldsBType.MessageOf(m) } func TestUnknownFields(t *testing.T) { for _, m := range []proto.Message{new(UnknownFieldsA), new(UnknownFieldsB)} { t.Run(reflect.TypeOf(m).Elem().Name(), func(t *testing.T) { want := protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.String("Hello, world!"), }.Marshal() m.ProtoReflect().SetUnknown(want) got := []byte(m.ProtoReflect().GetUnknown()) if diff := cmp.Diff(want, got); diff != "" { t.Errorf("UnknownFields mismatch (-want +got):\n%s", diff) } }) } } func TestReset(t *testing.T) { mi := new(testpb.TestAllTypes) // ProtoReflect is implemented using a messageState cache. m := mi.ProtoReflect() // Reset must not clear the messageState cache. mi.Reset() // If Reset accidentally cleared the messageState cache, this panics. m.Descriptor() } func TestIsValid(t *testing.T) { var m *testpb.TestAllTypes if got, want := m.ProtoReflect().IsValid(), false; got != want { t.Errorf("((*M)(nil)).ProtoReflect().IsValid() = %v, want %v", got, want) } m = &testpb.TestAllTypes{} if got, want := m.ProtoReflect().IsValid(), true; got != want { t.Errorf("(&M{}).ProtoReflect().IsValid() = %v, want %v", got, want) } } // The MessageState implementation makes the assumption that when a // concrete message is unsafe casted as a *MessageState, the Go GC does // not reclaim the memory for the remainder of the concrete message. func TestUnsafeAssumptions(t *testing.T) { if !pimpl.UnsafeEnabled { t.Skip() } var wg sync.WaitGroup for i := 0; i < 10; i++ { wg.Add(1) go func() { var ms [10]pref.Message // Store the message only in its reflective form. // Trigger the GC after each iteration. for j := 0; j < 10; j++ { ms[j] = (&testpb.TestAllTypes{ OptionalInt32: proto.Int32(int32(j)), OptionalFloat: proto.Float32(float32(j)), RepeatedInt32: []int32{int32(j)}, RepeatedFloat: []float32{float32(j)}, DefaultInt32: proto.Int32(int32(j)), DefaultFloat: proto.Float32(float32(j)), }).ProtoReflect() runtime.GC() } // Convert the reflective form back into a concrete form. // Verify that the values written previously are still the same. for j := 0; j < 10; j++ { switch m := ms[j].Interface().(*testpb.TestAllTypes); { case m.GetOptionalInt32() != int32(j): case m.GetOptionalFloat() != float32(j): case m.GetRepeatedInt32()[0] != int32(j): case m.GetRepeatedFloat()[0] != float32(j): case m.GetDefaultInt32() != int32(j): case m.GetDefaultFloat() != float32(j): default: continue } t.Error("memory corrupted detected") } defer wg.Done() }() } wg.Wait() } func BenchmarkName(b *testing.B) { var sink pref.FullName b.Run("Value", func(b *testing.B) { b.ReportAllocs() m := new(descriptorpb.FileDescriptorProto) for i := 0; i < b.N; i++ { sink = m.ProtoReflect().Descriptor().FullName() } }) b.Run("Nil", func(b *testing.B) { b.ReportAllocs() m := (*descriptorpb.FileDescriptorProto)(nil) for i := 0; i < b.N; i++ { sink = m.ProtoReflect().Descriptor().FullName() } }) runtime.KeepAlive(sink) } func BenchmarkReflect(b *testing.B) { m := new(testpb.TestAllTypes).ProtoReflect() fds := m.Descriptor().Fields() vs := make([]pref.Value, fds.Len()) for i := range vs { vs[i] = m.NewField(fds.Get(i)) } b.Run("Has", func(b *testing.B) { b.ReportAllocs() for i := 0; i < b.N; i++ { for j := 0; j < fds.Len(); j++ { m.Has(fds.Get(j)) } } }) b.Run("Get", func(b *testing.B) { b.ReportAllocs() for i := 0; i < b.N; i++ { for j := 0; j < fds.Len(); j++ { m.Get(fds.Get(j)) } } }) b.Run("Set", func(b *testing.B) { b.ReportAllocs() for i := 0; i < b.N; i++ { for j := 0; j < fds.Len(); j++ { m.Set(fds.Get(j), vs[j]) } } }) b.Run("Clear", func(b *testing.B) { b.ReportAllocs() for i := 0; i < b.N; i++ { for j := 0; j < fds.Len(); j++ { m.Clear(fds.Get(j)) } } }) b.Run("Range", func(b *testing.B) { b.ReportAllocs() for i := 0; i < b.N; i++ { m.Range(func(pref.FieldDescriptor, pref.Value) bool { return true }) } }) } golang-google-protobuf-1.27.1/internal/impl/pointer_reflect.go000066400000000000000000000144711411250152500244540ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build purego appengine package impl import ( "fmt" "reflect" "sync" ) const UnsafeEnabled = false // Pointer is an opaque pointer type. type Pointer interface{} // offset represents the offset to a struct field, accessible from a pointer. // The offset is the field index into a struct. type offset struct { index int export exporter } // offsetOf returns a field offset for the struct field. func offsetOf(f reflect.StructField, x exporter) offset { if len(f.Index) != 1 { panic("embedded structs are not supported") } if f.PkgPath == "" { return offset{index: f.Index[0]} // field is already exported } if x == nil { panic("exporter must be provided for unexported field") } return offset{index: f.Index[0], export: x} } // IsValid reports whether the offset is valid. func (f offset) IsValid() bool { return f.index >= 0 } // invalidOffset is an invalid field offset. var invalidOffset = offset{index: -1} // zeroOffset is a noop when calling pointer.Apply. var zeroOffset = offset{index: 0} // pointer is an abstract representation of a pointer to a struct or field. type pointer struct{ v reflect.Value } // pointerOf returns p as a pointer. func pointerOf(p Pointer) pointer { return pointerOfIface(p) } // pointerOfValue returns v as a pointer. func pointerOfValue(v reflect.Value) pointer { return pointer{v: v} } // pointerOfIface returns the pointer portion of an interface. func pointerOfIface(v interface{}) pointer { return pointer{v: reflect.ValueOf(v)} } // IsNil reports whether the pointer is nil. func (p pointer) IsNil() bool { return p.v.IsNil() } // Apply adds an offset to the pointer to derive a new pointer // to a specified field. The current pointer must be pointing at a struct. func (p pointer) Apply(f offset) pointer { if f.export != nil { if v := reflect.ValueOf(f.export(p.v.Interface(), f.index)); v.IsValid() { return pointer{v: v} } } return pointer{v: p.v.Elem().Field(f.index).Addr()} } // AsValueOf treats p as a pointer to an object of type t and returns the value. // It is equivalent to reflect.ValueOf(p.AsIfaceOf(t)) func (p pointer) AsValueOf(t reflect.Type) reflect.Value { if got := p.v.Type().Elem(); got != t { panic(fmt.Sprintf("invalid type: got %v, want %v", got, t)) } return p.v } // AsIfaceOf treats p as a pointer to an object of type t and returns the value. // It is equivalent to p.AsValueOf(t).Interface() func (p pointer) AsIfaceOf(t reflect.Type) interface{} { return p.AsValueOf(t).Interface() } func (p pointer) Bool() *bool { return p.v.Interface().(*bool) } func (p pointer) BoolPtr() **bool { return p.v.Interface().(**bool) } func (p pointer) BoolSlice() *[]bool { return p.v.Interface().(*[]bool) } func (p pointer) Int32() *int32 { return p.v.Interface().(*int32) } func (p pointer) Int32Ptr() **int32 { return p.v.Interface().(**int32) } func (p pointer) Int32Slice() *[]int32 { return p.v.Interface().(*[]int32) } func (p pointer) Int64() *int64 { return p.v.Interface().(*int64) } func (p pointer) Int64Ptr() **int64 { return p.v.Interface().(**int64) } func (p pointer) Int64Slice() *[]int64 { return p.v.Interface().(*[]int64) } func (p pointer) Uint32() *uint32 { return p.v.Interface().(*uint32) } func (p pointer) Uint32Ptr() **uint32 { return p.v.Interface().(**uint32) } func (p pointer) Uint32Slice() *[]uint32 { return p.v.Interface().(*[]uint32) } func (p pointer) Uint64() *uint64 { return p.v.Interface().(*uint64) } func (p pointer) Uint64Ptr() **uint64 { return p.v.Interface().(**uint64) } func (p pointer) Uint64Slice() *[]uint64 { return p.v.Interface().(*[]uint64) } func (p pointer) Float32() *float32 { return p.v.Interface().(*float32) } func (p pointer) Float32Ptr() **float32 { return p.v.Interface().(**float32) } func (p pointer) Float32Slice() *[]float32 { return p.v.Interface().(*[]float32) } func (p pointer) Float64() *float64 { return p.v.Interface().(*float64) } func (p pointer) Float64Ptr() **float64 { return p.v.Interface().(**float64) } func (p pointer) Float64Slice() *[]float64 { return p.v.Interface().(*[]float64) } func (p pointer) String() *string { return p.v.Interface().(*string) } func (p pointer) StringPtr() **string { return p.v.Interface().(**string) } func (p pointer) StringSlice() *[]string { return p.v.Interface().(*[]string) } func (p pointer) Bytes() *[]byte { return p.v.Interface().(*[]byte) } func (p pointer) BytesPtr() **[]byte { return p.v.Interface().(**[]byte) } func (p pointer) BytesSlice() *[][]byte { return p.v.Interface().(*[][]byte) } func (p pointer) WeakFields() *weakFields { return (*weakFields)(p.v.Interface().(*WeakFields)) } func (p pointer) Extensions() *map[int32]ExtensionField { return p.v.Interface().(*map[int32]ExtensionField) } func (p pointer) Elem() pointer { return pointer{v: p.v.Elem()} } // PointerSlice copies []*T from p as a new []pointer. // This behavior differs from the implementation in pointer_unsafe.go. func (p pointer) PointerSlice() []pointer { // TODO: reconsider this if p.v.IsNil() { return nil } n := p.v.Elem().Len() s := make([]pointer, n) for i := 0; i < n; i++ { s[i] = pointer{v: p.v.Elem().Index(i)} } return s } // AppendPointerSlice appends v to p, which must be a []*T. func (p pointer) AppendPointerSlice(v pointer) { sp := p.v.Elem() sp.Set(reflect.Append(sp, v.v)) } // SetPointer sets *p to v. func (p pointer) SetPointer(v pointer) { p.v.Elem().Set(v.v) } func (Export) MessageStateOf(p Pointer) *messageState { panic("not supported") } func (ms *messageState) pointer() pointer { panic("not supported") } func (ms *messageState) messageInfo() *MessageInfo { panic("not supported") } func (ms *messageState) LoadMessageInfo() *MessageInfo { panic("not supported") } func (ms *messageState) StoreMessageInfo(mi *MessageInfo) { panic("not supported") } type atomicNilMessage struct { once sync.Once m messageReflectWrapper } func (m *atomicNilMessage) Init(mi *MessageInfo) *messageReflectWrapper { m.once.Do(func() { m.m.p = pointerOfIface(reflect.Zero(mi.GoReflectType).Interface()) m.m.mi = mi }) return &m.m } golang-google-protobuf-1.27.1/internal/impl/pointer_unsafe.go000066400000000000000000000155231411250152500243100ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build !purego,!appengine package impl import ( "reflect" "sync/atomic" "unsafe" ) const UnsafeEnabled = true // Pointer is an opaque pointer type. type Pointer unsafe.Pointer // offset represents the offset to a struct field, accessible from a pointer. // The offset is the byte offset to the field from the start of the struct. type offset uintptr // offsetOf returns a field offset for the struct field. func offsetOf(f reflect.StructField, x exporter) offset { return offset(f.Offset) } // IsValid reports whether the offset is valid. func (f offset) IsValid() bool { return f != invalidOffset } // invalidOffset is an invalid field offset. var invalidOffset = ^offset(0) // zeroOffset is a noop when calling pointer.Apply. var zeroOffset = offset(0) // pointer is a pointer to a message struct or field. type pointer struct{ p unsafe.Pointer } // pointerOf returns p as a pointer. func pointerOf(p Pointer) pointer { return pointer{p: unsafe.Pointer(p)} } // pointerOfValue returns v as a pointer. func pointerOfValue(v reflect.Value) pointer { return pointer{p: unsafe.Pointer(v.Pointer())} } // pointerOfIface returns the pointer portion of an interface. func pointerOfIface(v interface{}) pointer { type ifaceHeader struct { Type unsafe.Pointer Data unsafe.Pointer } return pointer{p: (*ifaceHeader)(unsafe.Pointer(&v)).Data} } // IsNil reports whether the pointer is nil. func (p pointer) IsNil() bool { return p.p == nil } // Apply adds an offset to the pointer to derive a new pointer // to a specified field. The pointer must be valid and pointing at a struct. func (p pointer) Apply(f offset) pointer { if p.IsNil() { panic("invalid nil pointer") } return pointer{p: unsafe.Pointer(uintptr(p.p) + uintptr(f))} } // AsValueOf treats p as a pointer to an object of type t and returns the value. // It is equivalent to reflect.ValueOf(p.AsIfaceOf(t)) func (p pointer) AsValueOf(t reflect.Type) reflect.Value { return reflect.NewAt(t, p.p) } // AsIfaceOf treats p as a pointer to an object of type t and returns the value. // It is equivalent to p.AsValueOf(t).Interface() func (p pointer) AsIfaceOf(t reflect.Type) interface{} { // TODO: Use tricky unsafe magic to directly create ifaceHeader. return p.AsValueOf(t).Interface() } func (p pointer) Bool() *bool { return (*bool)(p.p) } func (p pointer) BoolPtr() **bool { return (**bool)(p.p) } func (p pointer) BoolSlice() *[]bool { return (*[]bool)(p.p) } func (p pointer) Int32() *int32 { return (*int32)(p.p) } func (p pointer) Int32Ptr() **int32 { return (**int32)(p.p) } func (p pointer) Int32Slice() *[]int32 { return (*[]int32)(p.p) } func (p pointer) Int64() *int64 { return (*int64)(p.p) } func (p pointer) Int64Ptr() **int64 { return (**int64)(p.p) } func (p pointer) Int64Slice() *[]int64 { return (*[]int64)(p.p) } func (p pointer) Uint32() *uint32 { return (*uint32)(p.p) } func (p pointer) Uint32Ptr() **uint32 { return (**uint32)(p.p) } func (p pointer) Uint32Slice() *[]uint32 { return (*[]uint32)(p.p) } func (p pointer) Uint64() *uint64 { return (*uint64)(p.p) } func (p pointer) Uint64Ptr() **uint64 { return (**uint64)(p.p) } func (p pointer) Uint64Slice() *[]uint64 { return (*[]uint64)(p.p) } func (p pointer) Float32() *float32 { return (*float32)(p.p) } func (p pointer) Float32Ptr() **float32 { return (**float32)(p.p) } func (p pointer) Float32Slice() *[]float32 { return (*[]float32)(p.p) } func (p pointer) Float64() *float64 { return (*float64)(p.p) } func (p pointer) Float64Ptr() **float64 { return (**float64)(p.p) } func (p pointer) Float64Slice() *[]float64 { return (*[]float64)(p.p) } func (p pointer) String() *string { return (*string)(p.p) } func (p pointer) StringPtr() **string { return (**string)(p.p) } func (p pointer) StringSlice() *[]string { return (*[]string)(p.p) } func (p pointer) Bytes() *[]byte { return (*[]byte)(p.p) } func (p pointer) BytesPtr() **[]byte { return (**[]byte)(p.p) } func (p pointer) BytesSlice() *[][]byte { return (*[][]byte)(p.p) } func (p pointer) WeakFields() *weakFields { return (*weakFields)(p.p) } func (p pointer) Extensions() *map[int32]ExtensionField { return (*map[int32]ExtensionField)(p.p) } func (p pointer) Elem() pointer { return pointer{p: *(*unsafe.Pointer)(p.p)} } // PointerSlice loads []*T from p as a []pointer. // The value returned is aliased with the original slice. // This behavior differs from the implementation in pointer_reflect.go. func (p pointer) PointerSlice() []pointer { // Super-tricky - p should point to a []*T where T is a // message type. We load it as []pointer. return *(*[]pointer)(p.p) } // AppendPointerSlice appends v to p, which must be a []*T. func (p pointer) AppendPointerSlice(v pointer) { *(*[]pointer)(p.p) = append(*(*[]pointer)(p.p), v) } // SetPointer sets *p to v. func (p pointer) SetPointer(v pointer) { *(*unsafe.Pointer)(p.p) = (unsafe.Pointer)(v.p) } // Static check that MessageState does not exceed the size of a pointer. const _ = uint(unsafe.Sizeof(unsafe.Pointer(nil)) - unsafe.Sizeof(MessageState{})) func (Export) MessageStateOf(p Pointer) *messageState { // Super-tricky - see documentation on MessageState. return (*messageState)(unsafe.Pointer(p)) } func (ms *messageState) pointer() pointer { // Super-tricky - see documentation on MessageState. return pointer{p: unsafe.Pointer(ms)} } func (ms *messageState) messageInfo() *MessageInfo { mi := ms.LoadMessageInfo() if mi == nil { panic("invalid nil message info; this suggests memory corruption due to a race or shallow copy on the message struct") } return mi } func (ms *messageState) LoadMessageInfo() *MessageInfo { return (*MessageInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&ms.atomicMessageInfo)))) } func (ms *messageState) StoreMessageInfo(mi *MessageInfo) { atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&ms.atomicMessageInfo)), unsafe.Pointer(mi)) } type atomicNilMessage struct{ p unsafe.Pointer } // p is a *messageReflectWrapper func (m *atomicNilMessage) Init(mi *MessageInfo) *messageReflectWrapper { if p := atomic.LoadPointer(&m.p); p != nil { return (*messageReflectWrapper)(p) } w := &messageReflectWrapper{mi: mi} atomic.CompareAndSwapPointer(&m.p, nil, (unsafe.Pointer)(w)) return (*messageReflectWrapper)(atomic.LoadPointer(&m.p)) } golang-google-protobuf-1.27.1/internal/impl/validate.go000066400000000000000000000357301411250152500230620ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "fmt" "math" "math/bits" "reflect" "unicode/utf8" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/encoding/messageset" "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/internal/strs" pref "google.golang.org/protobuf/reflect/protoreflect" preg "google.golang.org/protobuf/reflect/protoregistry" piface "google.golang.org/protobuf/runtime/protoiface" ) // ValidationStatus is the result of validating the wire-format encoding of a message. type ValidationStatus int const ( // ValidationUnknown indicates that unmarshaling the message might succeed or fail. // The validator was unable to render a judgement. // // The only causes of this status are an aberrant message type appearing somewhere // in the message or a failure in the extension resolver. ValidationUnknown ValidationStatus = iota + 1 // ValidationInvalid indicates that unmarshaling the message will fail. ValidationInvalid // ValidationValid indicates that unmarshaling the message will succeed. ValidationValid ) func (v ValidationStatus) String() string { switch v { case ValidationUnknown: return "ValidationUnknown" case ValidationInvalid: return "ValidationInvalid" case ValidationValid: return "ValidationValid" default: return fmt.Sprintf("ValidationStatus(%d)", int(v)) } } // Validate determines whether the contents of the buffer are a valid wire encoding // of the message type. // // This function is exposed for testing. func Validate(mt pref.MessageType, in piface.UnmarshalInput) (out piface.UnmarshalOutput, _ ValidationStatus) { mi, ok := mt.(*MessageInfo) if !ok { return out, ValidationUnknown } if in.Resolver == nil { in.Resolver = preg.GlobalTypes } o, st := mi.validate(in.Buf, 0, unmarshalOptions{ flags: in.Flags, resolver: in.Resolver, }) if o.initialized { out.Flags |= piface.UnmarshalInitialized } return out, st } type validationInfo struct { mi *MessageInfo typ validationType keyType, valType validationType // For non-required fields, requiredBit is 0. // // For required fields, requiredBit's nth bit is set, where n is a // unique index in the range [0, MessageInfo.numRequiredFields). // // If there are more than 64 required fields, requiredBit is 0. requiredBit uint64 } type validationType uint8 const ( validationTypeOther validationType = iota validationTypeMessage validationTypeGroup validationTypeMap validationTypeRepeatedVarint validationTypeRepeatedFixed32 validationTypeRepeatedFixed64 validationTypeVarint validationTypeFixed32 validationTypeFixed64 validationTypeBytes validationTypeUTF8String validationTypeMessageSetItem ) func newFieldValidationInfo(mi *MessageInfo, si structInfo, fd pref.FieldDescriptor, ft reflect.Type) validationInfo { var vi validationInfo switch { case fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic(): switch fd.Kind() { case pref.MessageKind: vi.typ = validationTypeMessage if ot, ok := si.oneofWrappersByNumber[fd.Number()]; ok { vi.mi = getMessageInfo(ot.Field(0).Type) } case pref.GroupKind: vi.typ = validationTypeGroup if ot, ok := si.oneofWrappersByNumber[fd.Number()]; ok { vi.mi = getMessageInfo(ot.Field(0).Type) } case pref.StringKind: if strs.EnforceUTF8(fd) { vi.typ = validationTypeUTF8String } } default: vi = newValidationInfo(fd, ft) } if fd.Cardinality() == pref.Required { // Avoid overflow. The required field check is done with a 64-bit mask, with // any message containing more than 64 required fields always reported as // potentially uninitialized, so it is not important to get a precise count // of the required fields past 64. if mi.numRequiredFields < math.MaxUint8 { mi.numRequiredFields++ vi.requiredBit = 1 << (mi.numRequiredFields - 1) } } return vi } func newValidationInfo(fd pref.FieldDescriptor, ft reflect.Type) validationInfo { var vi validationInfo switch { case fd.IsList(): switch fd.Kind() { case pref.MessageKind: vi.typ = validationTypeMessage if ft.Kind() == reflect.Slice { vi.mi = getMessageInfo(ft.Elem()) } case pref.GroupKind: vi.typ = validationTypeGroup if ft.Kind() == reflect.Slice { vi.mi = getMessageInfo(ft.Elem()) } case pref.StringKind: vi.typ = validationTypeBytes if strs.EnforceUTF8(fd) { vi.typ = validationTypeUTF8String } default: switch wireTypes[fd.Kind()] { case protowire.VarintType: vi.typ = validationTypeRepeatedVarint case protowire.Fixed32Type: vi.typ = validationTypeRepeatedFixed32 case protowire.Fixed64Type: vi.typ = validationTypeRepeatedFixed64 } } case fd.IsMap(): vi.typ = validationTypeMap switch fd.MapKey().Kind() { case pref.StringKind: if strs.EnforceUTF8(fd) { vi.keyType = validationTypeUTF8String } } switch fd.MapValue().Kind() { case pref.MessageKind: vi.valType = validationTypeMessage if ft.Kind() == reflect.Map { vi.mi = getMessageInfo(ft.Elem()) } case pref.StringKind: if strs.EnforceUTF8(fd) { vi.valType = validationTypeUTF8String } } default: switch fd.Kind() { case pref.MessageKind: vi.typ = validationTypeMessage if !fd.IsWeak() { vi.mi = getMessageInfo(ft) } case pref.GroupKind: vi.typ = validationTypeGroup vi.mi = getMessageInfo(ft) case pref.StringKind: vi.typ = validationTypeBytes if strs.EnforceUTF8(fd) { vi.typ = validationTypeUTF8String } default: switch wireTypes[fd.Kind()] { case protowire.VarintType: vi.typ = validationTypeVarint case protowire.Fixed32Type: vi.typ = validationTypeFixed32 case protowire.Fixed64Type: vi.typ = validationTypeFixed64 case protowire.BytesType: vi.typ = validationTypeBytes } } } return vi } func (mi *MessageInfo) validate(b []byte, groupTag protowire.Number, opts unmarshalOptions) (out unmarshalOutput, result ValidationStatus) { mi.init() type validationState struct { typ validationType keyType, valType validationType endGroup protowire.Number mi *MessageInfo tail []byte requiredMask uint64 } // Pre-allocate some slots to avoid repeated slice reallocation. states := make([]validationState, 0, 16) states = append(states, validationState{ typ: validationTypeMessage, mi: mi, }) if groupTag > 0 { states[0].typ = validationTypeGroup states[0].endGroup = groupTag } initialized := true start := len(b) State: for len(states) > 0 { st := &states[len(states)-1] for len(b) > 0 { // Parse the tag (field number and wire type). var tag uint64 if b[0] < 0x80 { tag = uint64(b[0]) b = b[1:] } else if len(b) >= 2 && b[1] < 128 { tag = uint64(b[0]&0x7f) + uint64(b[1])<<7 b = b[2:] } else { var n int tag, n = protowire.ConsumeVarint(b) if n < 0 { return out, ValidationInvalid } b = b[n:] } var num protowire.Number if n := tag >> 3; n < uint64(protowire.MinValidNumber) || n > uint64(protowire.MaxValidNumber) { return out, ValidationInvalid } else { num = protowire.Number(n) } wtyp := protowire.Type(tag & 7) if wtyp == protowire.EndGroupType { if st.endGroup == num { goto PopState } return out, ValidationInvalid } var vi validationInfo switch { case st.typ == validationTypeMap: switch num { case genid.MapEntry_Key_field_number: vi.typ = st.keyType case genid.MapEntry_Value_field_number: vi.typ = st.valType vi.mi = st.mi vi.requiredBit = 1 } case flags.ProtoLegacy && st.mi.isMessageSet: switch num { case messageset.FieldItem: vi.typ = validationTypeMessageSetItem } default: var f *coderFieldInfo if int(num) < len(st.mi.denseCoderFields) { f = st.mi.denseCoderFields[num] } else { f = st.mi.coderFields[num] } if f != nil { vi = f.validation if vi.typ == validationTypeMessage && vi.mi == nil { // Probable weak field. // // TODO: Consider storing the results of this lookup somewhere // rather than recomputing it on every validation. fd := st.mi.Desc.Fields().ByNumber(num) if fd == nil || !fd.IsWeak() { break } messageName := fd.Message().FullName() messageType, err := preg.GlobalTypes.FindMessageByName(messageName) switch err { case nil: vi.mi, _ = messageType.(*MessageInfo) case preg.NotFound: vi.typ = validationTypeBytes default: return out, ValidationUnknown } } break } // Possible extension field. // // TODO: We should return ValidationUnknown when: // 1. The resolver is not frozen. (More extensions may be added to it.) // 2. The resolver returns preg.NotFound. // In this case, a type added to the resolver in the future could cause // unmarshaling to begin failing. Supporting this requires some way to // determine if the resolver is frozen. xt, err := opts.resolver.FindExtensionByNumber(st.mi.Desc.FullName(), num) if err != nil && err != preg.NotFound { return out, ValidationUnknown } if err == nil { vi = getExtensionFieldInfo(xt).validation } } if vi.requiredBit != 0 { // Check that the field has a compatible wire type. // We only need to consider non-repeated field types, // since repeated fields (and maps) can never be required. ok := false switch vi.typ { case validationTypeVarint: ok = wtyp == protowire.VarintType case validationTypeFixed32: ok = wtyp == protowire.Fixed32Type case validationTypeFixed64: ok = wtyp == protowire.Fixed64Type case validationTypeBytes, validationTypeUTF8String, validationTypeMessage: ok = wtyp == protowire.BytesType case validationTypeGroup: ok = wtyp == protowire.StartGroupType } if ok { st.requiredMask |= vi.requiredBit } } switch wtyp { case protowire.VarintType: if len(b) >= 10 { switch { case b[0] < 0x80: b = b[1:] case b[1] < 0x80: b = b[2:] case b[2] < 0x80: b = b[3:] case b[3] < 0x80: b = b[4:] case b[4] < 0x80: b = b[5:] case b[5] < 0x80: b = b[6:] case b[6] < 0x80: b = b[7:] case b[7] < 0x80: b = b[8:] case b[8] < 0x80: b = b[9:] case b[9] < 0x80 && b[9] < 2: b = b[10:] default: return out, ValidationInvalid } } else { switch { case len(b) > 0 && b[0] < 0x80: b = b[1:] case len(b) > 1 && b[1] < 0x80: b = b[2:] case len(b) > 2 && b[2] < 0x80: b = b[3:] case len(b) > 3 && b[3] < 0x80: b = b[4:] case len(b) > 4 && b[4] < 0x80: b = b[5:] case len(b) > 5 && b[5] < 0x80: b = b[6:] case len(b) > 6 && b[6] < 0x80: b = b[7:] case len(b) > 7 && b[7] < 0x80: b = b[8:] case len(b) > 8 && b[8] < 0x80: b = b[9:] case len(b) > 9 && b[9] < 2: b = b[10:] default: return out, ValidationInvalid } } continue State case protowire.BytesType: var size uint64 if len(b) >= 1 && b[0] < 0x80 { size = uint64(b[0]) b = b[1:] } else if len(b) >= 2 && b[1] < 128 { size = uint64(b[0]&0x7f) + uint64(b[1])<<7 b = b[2:] } else { var n int size, n = protowire.ConsumeVarint(b) if n < 0 { return out, ValidationInvalid } b = b[n:] } if size > uint64(len(b)) { return out, ValidationInvalid } v := b[:size] b = b[size:] switch vi.typ { case validationTypeMessage: if vi.mi == nil { return out, ValidationUnknown } vi.mi.init() fallthrough case validationTypeMap: if vi.mi != nil { vi.mi.init() } states = append(states, validationState{ typ: vi.typ, keyType: vi.keyType, valType: vi.valType, mi: vi.mi, tail: b, }) b = v continue State case validationTypeRepeatedVarint: // Packed field. for len(v) > 0 { _, n := protowire.ConsumeVarint(v) if n < 0 { return out, ValidationInvalid } v = v[n:] } case validationTypeRepeatedFixed32: // Packed field. if len(v)%4 != 0 { return out, ValidationInvalid } case validationTypeRepeatedFixed64: // Packed field. if len(v)%8 != 0 { return out, ValidationInvalid } case validationTypeUTF8String: if !utf8.Valid(v) { return out, ValidationInvalid } } case protowire.Fixed32Type: if len(b) < 4 { return out, ValidationInvalid } b = b[4:] case protowire.Fixed64Type: if len(b) < 8 { return out, ValidationInvalid } b = b[8:] case protowire.StartGroupType: switch { case vi.typ == validationTypeGroup: if vi.mi == nil { return out, ValidationUnknown } vi.mi.init() states = append(states, validationState{ typ: validationTypeGroup, mi: vi.mi, endGroup: num, }) continue State case flags.ProtoLegacy && vi.typ == validationTypeMessageSetItem: typeid, v, n, err := messageset.ConsumeFieldValue(b, false) if err != nil { return out, ValidationInvalid } xt, err := opts.resolver.FindExtensionByNumber(st.mi.Desc.FullName(), typeid) switch { case err == preg.NotFound: b = b[n:] case err != nil: return out, ValidationUnknown default: xvi := getExtensionFieldInfo(xt).validation if xvi.mi != nil { xvi.mi.init() } states = append(states, validationState{ typ: xvi.typ, mi: xvi.mi, tail: b[n:], }) b = v continue State } default: n := protowire.ConsumeFieldValue(num, wtyp, b) if n < 0 { return out, ValidationInvalid } b = b[n:] } default: return out, ValidationInvalid } } if st.endGroup != 0 { return out, ValidationInvalid } if len(b) != 0 { return out, ValidationInvalid } b = st.tail PopState: numRequiredFields := 0 switch st.typ { case validationTypeMessage, validationTypeGroup: numRequiredFields = int(st.mi.numRequiredFields) case validationTypeMap: // If this is a map field with a message value that contains // required fields, require that the value be present. if st.mi != nil && st.mi.numRequiredFields > 0 { numRequiredFields = 1 } } // If there are more than 64 required fields, this check will // always fail and we will report that the message is potentially // uninitialized. if numRequiredFields > 0 && bits.OnesCount64(st.requiredMask) != numRequiredFields { initialized = false } states = states[:len(states)-1] } out.n = start - len(b) if initialized { out.initialized = true } return out, ValidationValid } golang-google-protobuf-1.27.1/internal/impl/weak.go000066400000000000000000000036171411250152500222170ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package impl import ( "fmt" pref "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" ) // weakFields adds methods to the exported WeakFields type for internal use. // // The exported type is an alias to an unnamed type, so methods can't be // defined directly on it. type weakFields WeakFields func (w weakFields) get(num pref.FieldNumber) (pref.ProtoMessage, bool) { m, ok := w[int32(num)] return m, ok } func (w *weakFields) set(num pref.FieldNumber, m pref.ProtoMessage) { if *w == nil { *w = make(weakFields) } (*w)[int32(num)] = m } func (w *weakFields) clear(num pref.FieldNumber) { delete(*w, int32(num)) } func (Export) HasWeak(w WeakFields, num pref.FieldNumber) bool { _, ok := w[int32(num)] return ok } func (Export) ClearWeak(w *WeakFields, num pref.FieldNumber) { delete(*w, int32(num)) } func (Export) GetWeak(w WeakFields, num pref.FieldNumber, name pref.FullName) pref.ProtoMessage { if m, ok := w[int32(num)]; ok { return m } mt, _ := protoregistry.GlobalTypes.FindMessageByName(name) if mt == nil { panic(fmt.Sprintf("message %v for weak field is not linked in", name)) } return mt.Zero().Interface() } func (Export) SetWeak(w *WeakFields, num pref.FieldNumber, name pref.FullName, m pref.ProtoMessage) { if m != nil { mt, _ := protoregistry.GlobalTypes.FindMessageByName(name) if mt == nil { panic(fmt.Sprintf("message %v for weak field is not linked in", name)) } if mt != m.ProtoReflect().Type() { panic(fmt.Sprintf("invalid message type for weak field: got %T, want %T", m, mt.Zero().Interface())) } } if m == nil || !m.ProtoReflect().IsValid() { delete(*w, int32(num)) return } if *w == nil { *w = make(weakFields) } (*w)[int32(num)] = m } golang-google-protobuf-1.27.1/internal/msgfmt/000077500000000000000000000000001411250152500212665ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/msgfmt/format.go000066400000000000000000000170621411250152500231130ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package msgfmt implements a text marshaler combining the desirable features // of both the JSON and proto text formats. // It is optimized for human readability and has no associated deserializer. package msgfmt import ( "bytes" "fmt" "reflect" "sort" "strconv" "strings" "time" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/detrand" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/internal/order" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" ) // Format returns a formatted string for the message. func Format(m proto.Message) string { return string(appendMessage(nil, m.ProtoReflect())) } // FormatValue returns a formatted string for an arbitrary value. func FormatValue(v protoreflect.Value, fd protoreflect.FieldDescriptor) string { return string(appendValue(nil, v, fd)) } func appendValue(b []byte, v protoreflect.Value, fd protoreflect.FieldDescriptor) []byte { switch v := v.Interface().(type) { case nil: return append(b, ""...) case bool, int32, int64, uint32, uint64, float32, float64: return append(b, fmt.Sprint(v)...) case string: return append(b, strconv.Quote(string(v))...) case []byte: return append(b, strconv.Quote(string(v))...) case protoreflect.EnumNumber: return appendEnum(b, v, fd) case protoreflect.Message: return appendMessage(b, v) case protoreflect.List: return appendList(b, v, fd) case protoreflect.Map: return appendMap(b, v, fd) default: panic(fmt.Sprintf("invalid type: %T", v)) } } func appendEnum(b []byte, v protoreflect.EnumNumber, fd protoreflect.FieldDescriptor) []byte { if fd != nil { if ev := fd.Enum().Values().ByNumber(v); ev != nil { return append(b, ev.Name()...) } } return strconv.AppendInt(b, int64(v), 10) } func appendMessage(b []byte, m protoreflect.Message) []byte { if b2 := appendKnownMessage(b, m); b2 != nil { return b2 } b = append(b, '{') order.RangeFields(m, order.IndexNameFieldOrder, func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { b = append(b, fd.TextName()...) b = append(b, ':') b = appendValue(b, v, fd) b = append(b, delim()...) return true }) b = appendUnknown(b, m.GetUnknown()) b = bytes.TrimRight(b, delim()) b = append(b, '}') return b } var protocmpMessageType = reflect.TypeOf(map[string]interface{}(nil)) func appendKnownMessage(b []byte, m protoreflect.Message) []byte { md := m.Descriptor() fds := md.Fields() switch md.FullName() { case genid.Any_message_fullname: var msgVal protoreflect.Message url := m.Get(fds.ByNumber(genid.Any_TypeUrl_field_number)).String() if v := reflect.ValueOf(m); v.Type().ConvertibleTo(protocmpMessageType) { // For protocmp.Message, directly obtain the sub-message value // which is stored in structured form, rather than as raw bytes. m2 := v.Convert(protocmpMessageType).Interface().(map[string]interface{}) v, ok := m2[string(genid.Any_Value_field_name)].(proto.Message) if !ok { return nil } msgVal = v.ProtoReflect() } else { val := m.Get(fds.ByNumber(genid.Any_Value_field_number)).Bytes() mt, err := protoregistry.GlobalTypes.FindMessageByURL(url) if err != nil { return nil } msgVal = mt.New() err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(val, msgVal.Interface()) if err != nil { return nil } } b = append(b, '{') b = append(b, "["+url+"]"...) b = append(b, ':') b = appendMessage(b, msgVal) b = append(b, '}') return b case genid.Timestamp_message_fullname: secs := m.Get(fds.ByNumber(genid.Timestamp_Seconds_field_number)).Int() nanos := m.Get(fds.ByNumber(genid.Timestamp_Nanos_field_number)).Int() if nanos < 0 || nanos >= 1e9 { return nil } t := time.Unix(secs, nanos).UTC() x := t.Format("2006-01-02T15:04:05.000000000") // RFC 3339 x = strings.TrimSuffix(x, "000") x = strings.TrimSuffix(x, "000") x = strings.TrimSuffix(x, ".000") return append(b, x+"Z"...) case genid.Duration_message_fullname: sign := "" secs := m.Get(fds.ByNumber(genid.Duration_Seconds_field_number)).Int() nanos := m.Get(fds.ByNumber(genid.Duration_Nanos_field_number)).Int() if nanos <= -1e9 || nanos >= 1e9 || (secs > 0 && nanos < 0) || (secs < 0 && nanos > 0) { return nil } if secs < 0 || nanos < 0 { sign, secs, nanos = "-", -1*secs, -1*nanos } x := fmt.Sprintf("%s%d.%09d", sign, secs, nanos) x = strings.TrimSuffix(x, "000") x = strings.TrimSuffix(x, "000") x = strings.TrimSuffix(x, ".000") return append(b, x+"s"...) case genid.BoolValue_message_fullname, genid.Int32Value_message_fullname, genid.Int64Value_message_fullname, genid.UInt32Value_message_fullname, genid.UInt64Value_message_fullname, genid.FloatValue_message_fullname, genid.DoubleValue_message_fullname, genid.StringValue_message_fullname, genid.BytesValue_message_fullname: fd := fds.ByNumber(genid.WrapperValue_Value_field_number) return appendValue(b, m.Get(fd), fd) } return nil } func appendUnknown(b []byte, raw protoreflect.RawFields) []byte { rs := make(map[protoreflect.FieldNumber][]protoreflect.RawFields) for len(raw) > 0 { num, _, n := protowire.ConsumeField(raw) rs[num] = append(rs[num], raw[:n]) raw = raw[n:] } var ns []protoreflect.FieldNumber for n := range rs { ns = append(ns, n) } sort.Slice(ns, func(i, j int) bool { return ns[i] < ns[j] }) for _, n := range ns { var leftBracket, rightBracket string if len(rs[n]) > 1 { leftBracket, rightBracket = "[", "]" } b = strconv.AppendInt(b, int64(n), 10) b = append(b, ':') b = append(b, leftBracket...) for _, r := range rs[n] { num, typ, n := protowire.ConsumeTag(r) r = r[n:] switch typ { case protowire.VarintType: v, _ := protowire.ConsumeVarint(r) b = strconv.AppendInt(b, int64(v), 10) case protowire.Fixed32Type: v, _ := protowire.ConsumeFixed32(r) b = append(b, fmt.Sprintf("0x%08x", v)...) case protowire.Fixed64Type: v, _ := protowire.ConsumeFixed64(r) b = append(b, fmt.Sprintf("0x%016x", v)...) case protowire.BytesType: v, _ := protowire.ConsumeBytes(r) b = strconv.AppendQuote(b, string(v)) case protowire.StartGroupType: v, _ := protowire.ConsumeGroup(num, r) b = append(b, '{') b = appendUnknown(b, v) b = bytes.TrimRight(b, delim()) b = append(b, '}') default: panic(fmt.Sprintf("invalid type: %v", typ)) } b = append(b, delim()...) } b = bytes.TrimRight(b, delim()) b = append(b, rightBracket...) b = append(b, delim()...) } return b } func appendList(b []byte, v protoreflect.List, fd protoreflect.FieldDescriptor) []byte { b = append(b, '[') for i := 0; i < v.Len(); i++ { b = appendValue(b, v.Get(i), fd) b = append(b, delim()...) } b = bytes.TrimRight(b, delim()) b = append(b, ']') return b } func appendMap(b []byte, v protoreflect.Map, fd protoreflect.FieldDescriptor) []byte { b = append(b, '{') order.RangeEntries(v, order.GenericKeyOrder, func(k protoreflect.MapKey, v protoreflect.Value) bool { b = appendValue(b, k.Value(), fd.MapKey()) b = append(b, ':') b = appendValue(b, v, fd.MapValue()) b = append(b, delim()...) return true }) b = bytes.TrimRight(b, delim()) b = append(b, '}') return b } func delim() string { // Deliberately introduce instability into the message string to // discourage users from depending on it. if detrand.Bool() { return " " } return ", " } golang-google-protobuf-1.27.1/internal/msgfmt/format_test.go000066400000000000000000000303431411250152500241470ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package msgfmt_test import ( "math" "sync" "testing" "github.com/google/go-cmp/cmp" "google.golang.org/protobuf/internal/detrand" "google.golang.org/protobuf/internal/msgfmt" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/testing/protocmp" "google.golang.org/protobuf/testing/protopack" testpb "google.golang.org/protobuf/internal/testprotos/test" textpb "google.golang.org/protobuf/internal/testprotos/textpb2" dynpb "google.golang.org/protobuf/types/dynamicpb" anypb "google.golang.org/protobuf/types/known/anypb" durpb "google.golang.org/protobuf/types/known/durationpb" tspb "google.golang.org/protobuf/types/known/timestamppb" wpb "google.golang.org/protobuf/types/known/wrapperspb" ) func init() { detrand.Disable() } func TestFormat(t *testing.T) { optMsg := &testpb.TestAllTypes{ OptionalBool: proto.Bool(false), OptionalInt32: proto.Int32(-32), OptionalInt64: proto.Int64(-64), OptionalUint32: proto.Uint32(32), OptionalUint64: proto.Uint64(64), OptionalFloat: proto.Float32(32.32), OptionalDouble: proto.Float64(64.64), OptionalString: proto.String("string"), OptionalBytes: []byte("bytes"), OptionalNestedEnum: testpb.TestAllTypes_NEG.Enum(), OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{A: proto.Int32(5)}, } repMsg := &testpb.TestAllTypes{ RepeatedBool: []bool{false, true}, RepeatedInt32: []int32{32, -32}, RepeatedInt64: []int64{64, -64}, RepeatedUint32: []uint32{0, 32}, RepeatedUint64: []uint64{0, 64}, RepeatedFloat: []float32{0, 32.32}, RepeatedDouble: []float64{0, 64.64}, RepeatedString: []string{"s1", "s2"}, RepeatedBytes: [][]byte{{1}, {2}}, RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{ testpb.TestAllTypes_FOO, testpb.TestAllTypes_BAR, }, RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{ {A: proto.Int32(5)}, {A: proto.Int32(-5)}, }, } mapMsg := &testpb.TestAllTypes{ MapBoolBool: map[bool]bool{true: false}, MapInt32Int32: map[int32]int32{-32: 32}, MapInt64Int64: map[int64]int64{-64: 64}, MapUint32Uint32: map[uint32]uint32{0: 32}, MapUint64Uint64: map[uint64]uint64{0: 64}, MapInt32Float: map[int32]float32{32: 32.32}, MapInt32Double: map[int32]float64{64: 64.64}, MapStringString: map[string]string{"k": "v"}, MapStringBytes: map[string][]byte{"k": []byte("v")}, MapStringNestedEnum: map[string]testpb.TestAllTypes_NestedEnum{ "k": testpb.TestAllTypes_FOO, }, MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{ "k": {A: proto.Int32(5)}, }, } tests := []struct { in proto.Message want string }{{ in: optMsg, want: `{optional_int32:-32, optional_int64:-64, optional_uint32:32, optional_uint64:64, optional_float:32.32, optional_double:64.64, optional_bool:false, optional_string:"string", optional_bytes:"bytes", optional_nested_message:{a:5}, optional_nested_enum:NEG}`, }, { in: repMsg, want: `{repeated_int32:[32, -32], repeated_int64:[64, -64], repeated_uint32:[0, 32], repeated_uint64:[0, 64], repeated_float:[0, 32.32], repeated_double:[0, 64.64], repeated_bool:[false, true], repeated_string:["s1", "s2"], repeated_bytes:["\x01", "\x02"], repeated_nested_message:[{a:5}, {a:-5}], repeated_nested_enum:[FOO, BAR]}`, }, { in: mapMsg, want: `{map_int32_int32:{-32:32}, map_int64_int64:{-64:64}, map_uint32_uint32:{0:32}, map_uint64_uint64:{0:64}, map_int32_float:{32:32.32}, map_int32_double:{64:64.64}, map_bool_bool:{true:false}, map_string_string:{"k":"v"}, map_string_bytes:{"k":"v"}, map_string_nested_message:{"k":{a:5}}, map_string_nested_enum:{"k":FOO}}`, }, { in: func() proto.Message { m := &testpb.TestAllExtensions{} proto.SetExtension(m, testpb.E_OptionalBool, bool(false)) proto.SetExtension(m, testpb.E_OptionalInt32, int32(-32)) proto.SetExtension(m, testpb.E_OptionalInt64, int64(-64)) proto.SetExtension(m, testpb.E_OptionalUint32, uint32(32)) proto.SetExtension(m, testpb.E_OptionalUint64, uint64(64)) proto.SetExtension(m, testpb.E_OptionalFloat, float32(32.32)) proto.SetExtension(m, testpb.E_OptionalDouble, float64(64.64)) proto.SetExtension(m, testpb.E_OptionalString, string("string")) proto.SetExtension(m, testpb.E_OptionalBytes, []byte("bytes")) proto.SetExtension(m, testpb.E_OptionalNestedEnum, testpb.TestAllTypes_NEG) proto.SetExtension(m, testpb.E_OptionalNestedMessage, &testpb.TestAllExtensions_NestedMessage{A: proto.Int32(5)}) return m }(), want: `{[goproto.proto.test.optional_bool]:false, [goproto.proto.test.optional_bytes]:"bytes", [goproto.proto.test.optional_double]:64.64, [goproto.proto.test.optional_float]:32.32, [goproto.proto.test.optional_int32]:-32, [goproto.proto.test.optional_int64]:-64, [goproto.proto.test.optional_nested_enum]:NEG, [goproto.proto.test.optional_nested_message]:{a:5}, [goproto.proto.test.optional_string]:"string", [goproto.proto.test.optional_uint32]:32, [goproto.proto.test.optional_uint64]:64}`, }, { in: func() proto.Message { m := &testpb.TestAllExtensions{} proto.SetExtension(m, testpb.E_RepeatedBool, []bool{false, true}) proto.SetExtension(m, testpb.E_RepeatedInt32, []int32{32, -32}) proto.SetExtension(m, testpb.E_RepeatedInt64, []int64{64, -64}) proto.SetExtension(m, testpb.E_RepeatedUint32, []uint32{0, 32}) proto.SetExtension(m, testpb.E_RepeatedUint64, []uint64{0, 64}) proto.SetExtension(m, testpb.E_RepeatedFloat, []float32{0, 32.32}) proto.SetExtension(m, testpb.E_RepeatedDouble, []float64{0, 64.64}) proto.SetExtension(m, testpb.E_RepeatedString, []string{"s1", "s2"}) proto.SetExtension(m, testpb.E_RepeatedBytes, [][]byte{{1}, {2}}) proto.SetExtension(m, testpb.E_RepeatedNestedEnum, []testpb.TestAllTypes_NestedEnum{ testpb.TestAllTypes_FOO, testpb.TestAllTypes_BAR, }) proto.SetExtension(m, testpb.E_RepeatedNestedMessage, []*testpb.TestAllExtensions_NestedMessage{ {A: proto.Int32(5)}, {A: proto.Int32(-5)}, }) return m }(), want: `{[goproto.proto.test.repeated_bool]:[false, true], [goproto.proto.test.repeated_bytes]:["\x01", "\x02"], [goproto.proto.test.repeated_double]:[0, 64.64], [goproto.proto.test.repeated_float]:[0, 32.32], [goproto.proto.test.repeated_int32]:[32, -32], [goproto.proto.test.repeated_int64]:[64, -64], [goproto.proto.test.repeated_nested_enum]:[FOO, BAR], [goproto.proto.test.repeated_nested_message]:[{a:5}, {a:-5}], [goproto.proto.test.repeated_string]:["s1", "s2"], [goproto.proto.test.repeated_uint32]:[0, 32], [goproto.proto.test.repeated_uint64]:[0, 64]}`, }, { in: func() proto.Message { m := &testpb.TestAllTypes{} m.ProtoReflect().SetUnknown(protopack.Message{ protopack.Tag{Number: 50000, Type: protopack.VarintType}, protopack.Uvarint(100), protopack.Tag{Number: 50001, Type: protopack.Fixed32Type}, protopack.Uint32(200), protopack.Tag{Number: 50002, Type: protopack.Fixed64Type}, protopack.Uint64(300), protopack.Tag{Number: 50003, Type: protopack.BytesType}, protopack.String("hello"), protopack.Message{ protopack.Tag{Number: 50004, Type: protopack.StartGroupType}, protopack.Tag{Number: 1, Type: protopack.VarintType}, protopack.Uvarint(100), protopack.Tag{Number: 1, Type: protopack.Fixed32Type}, protopack.Uint32(200), protopack.Tag{Number: 1, Type: protopack.Fixed64Type}, protopack.Uint64(300), protopack.Tag{Number: 1, Type: protopack.BytesType}, protopack.String("hello"), protopack.Message{ protopack.Tag{Number: 1, Type: protopack.StartGroupType}, protopack.Tag{Number: 1, Type: protopack.VarintType}, protopack.Uvarint(100), protopack.Tag{Number: 1, Type: protopack.Fixed32Type}, protopack.Uint32(200), protopack.Tag{Number: 1, Type: protopack.Fixed64Type}, protopack.Uint64(300), protopack.Tag{Number: 1, Type: protopack.BytesType}, protopack.String("hello"), protopack.Tag{Number: 1, Type: protopack.EndGroupType}, }, protopack.Tag{Number: 50004, Type: protopack.EndGroupType}, }, }.Marshal()) return m }(), want: `{50000:100, 50001:0x000000c8, 50002:0x000000000000012c, 50003:"hello", 50004:{1:[100, 0x000000c8, 0x000000000000012c, "hello", {1:[100, 0x000000c8, 0x000000000000012c, "hello"]}]}}`, }, { in: &textpb.KnownTypes{ OptAny: &anypb.Any{ TypeUrl: "google.golang.org/goproto.proto.test.TestAllTypes", Value: func() []byte { b1, _ := proto.MarshalOptions{Deterministic: true}.Marshal(optMsg) b2, _ := proto.MarshalOptions{Deterministic: true}.Marshal(repMsg) b3, _ := proto.MarshalOptions{Deterministic: true}.Marshal(mapMsg) return append(append(append([]byte(nil), b1...), b2...), b3...) }(), }, }, want: `{opt_any:{[google.golang.org/goproto.proto.test.TestAllTypes]:{optional_int32:-32, optional_int64:-64, optional_uint32:32, optional_uint64:64, optional_float:32.32, optional_double:64.64, optional_bool:false, optional_string:"string", optional_bytes:"bytes", optional_nested_message:{a:5}, optional_nested_enum:NEG, repeated_int32:[32, -32], repeated_int64:[64, -64], repeated_uint32:[0, 32], repeated_uint64:[0, 64], repeated_float:[0, 32.32], repeated_double:[0, 64.64], repeated_bool:[false, true], repeated_string:["s1", "s2"], repeated_bytes:["\x01", "\x02"], repeated_nested_message:[{a:5}, {a:-5}], repeated_nested_enum:[FOO, BAR], map_int32_int32:{-32:32}, map_int64_int64:{-64:64}, map_uint32_uint32:{0:32}, map_uint64_uint64:{0:64}, map_int32_float:{32:32.32}, map_int32_double:{64:64.64}, map_bool_bool:{true:false}, map_string_string:{"k":"v"}, map_string_bytes:{"k":"v"}, map_string_nested_message:{"k":{a:5}}, map_string_nested_enum:{"k":FOO}}}}`, }, { in: &textpb.KnownTypes{ OptTimestamp: &tspb.Timestamp{Seconds: math.MinInt64, Nanos: math.MaxInt32}, }, want: `{opt_timestamp:{seconds:-9223372036854775808, nanos:2147483647}}`, }, { in: &textpb.KnownTypes{ OptTimestamp: &tspb.Timestamp{Seconds: 1257894123, Nanos: 456789}, }, want: `{opt_timestamp:2009-11-10T23:02:03.000456789Z}`, }, { in: &textpb.KnownTypes{ OptDuration: &durpb.Duration{Seconds: math.MinInt64, Nanos: math.MaxInt32}, }, want: `{opt_duration:{seconds:-9223372036854775808, nanos:2147483647}}`, }, { in: &textpb.KnownTypes{ OptDuration: &durpb.Duration{Seconds: +1257894123, Nanos: +456789}, }, want: `{opt_duration:1257894123.000456789s}`, }, { in: &textpb.KnownTypes{ OptDuration: &durpb.Duration{Seconds: -1257894123, Nanos: -456789}, }, want: `{opt_duration:-1257894123.000456789s}`, }, { in: &textpb.KnownTypes{ OptDuration: &durpb.Duration{Seconds: 0, Nanos: -1}, }, want: `{opt_duration:-0.000000001s}`, }, { in: &textpb.KnownTypes{ OptBool: &wpb.BoolValue{}, OptInt32: &wpb.Int32Value{}, OptInt64: &wpb.Int64Value{}, OptUint32: &wpb.UInt32Value{}, OptUint64: &wpb.UInt64Value{}, OptFloat: &wpb.FloatValue{}, OptDouble: &wpb.DoubleValue{}, OptString: &wpb.StringValue{}, OptBytes: &wpb.BytesValue{}, }, want: `{opt_bool:false, opt_int32:0, opt_int64:0, opt_uint32:0, opt_uint64:0, opt_float:0, opt_double:0, opt_string:"", opt_bytes:""}`, }} for _, tt := range tests { t.Run("Generated", func(t *testing.T) { got := msgfmt.Format(tt.in) if diff := cmp.Diff(tt.want, got); diff != "" { t.Errorf("Format() mismatch (-want +got):\n%v", diff) } }) t.Run("dynamicpb.Message", func(t *testing.T) { m := dynpb.NewMessage(tt.in.ProtoReflect().Descriptor()) proto.Merge(m, tt.in) got := msgfmt.Format(m) if diff := cmp.Diff(tt.want, got); diff != "" { t.Errorf("Format() mismatch (-want +got):\n%v", diff) } }) t.Run("protocmp.Message", func(t *testing.T) { // This is a roundabout way to obtain a protocmp.Message since there // is no exported API in protocmp to directly transform a message. var m proto.Message var once sync.Once cmp.Equal(tt.in, tt.in, protocmp.Transform(), cmp.FilterPath(func(p cmp.Path) bool { if v, _ := p.Index(1).Values(); v.IsValid() { once.Do(func() { m = v.Interface().(protocmp.Message) }) } return false }, cmp.Ignore())) got := msgfmt.Format(m) if diff := cmp.Diff(tt.want, got); diff != "" { t.Errorf("Format() mismatch (-want +got):\n%v", diff) } }) } } golang-google-protobuf-1.27.1/internal/order/000077500000000000000000000000001411250152500211045ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/order/order.go000066400000000000000000000055531411250152500225560ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package order import ( pref "google.golang.org/protobuf/reflect/protoreflect" ) // FieldOrder specifies the ordering to visit message fields. // It is a function that reports whether x is ordered before y. type FieldOrder func(x, y pref.FieldDescriptor) bool var ( // AnyFieldOrder specifies no specific field ordering. AnyFieldOrder FieldOrder = nil // LegacyFieldOrder sorts fields in the same ordering as emitted by // wire serialization in the github.com/golang/protobuf implementation. LegacyFieldOrder FieldOrder = func(x, y pref.FieldDescriptor) bool { ox, oy := x.ContainingOneof(), y.ContainingOneof() inOneof := func(od pref.OneofDescriptor) bool { return od != nil && !od.IsSynthetic() } // Extension fields sort before non-extension fields. if x.IsExtension() != y.IsExtension() { return x.IsExtension() && !y.IsExtension() } // Fields not within a oneof sort before those within a oneof. if inOneof(ox) != inOneof(oy) { return !inOneof(ox) && inOneof(oy) } // Fields in disjoint oneof sets are sorted by declaration index. if ox != nil && oy != nil && ox != oy { return ox.Index() < oy.Index() } // Fields sorted by field number. return x.Number() < y.Number() } // NumberFieldOrder sorts fields by their field number. NumberFieldOrder FieldOrder = func(x, y pref.FieldDescriptor) bool { return x.Number() < y.Number() } // IndexNameFieldOrder sorts non-extension fields before extension fields. // Non-extensions are sorted according to their declaration index. // Extensions are sorted according to their full name. IndexNameFieldOrder FieldOrder = func(x, y pref.FieldDescriptor) bool { // Non-extension fields sort before extension fields. if x.IsExtension() != y.IsExtension() { return !x.IsExtension() && y.IsExtension() } // Extensions sorted by fullname. if x.IsExtension() && y.IsExtension() { return x.FullName() < y.FullName() } // Non-extensions sorted by declaration index. return x.Index() < y.Index() } ) // KeyOrder specifies the ordering to visit map entries. // It is a function that reports whether x is ordered before y. type KeyOrder func(x, y pref.MapKey) bool var ( // AnyKeyOrder specifies no specific key ordering. AnyKeyOrder KeyOrder = nil // GenericKeyOrder sorts false before true, numeric keys in ascending order, // and strings in lexicographical ordering according to UTF-8 codepoints. GenericKeyOrder KeyOrder = func(x, y pref.MapKey) bool { switch x.Interface().(type) { case bool: return !x.Bool() && y.Bool() case int32, int64: return x.Int() < y.Int() case uint32, uint64: return x.Uint() < y.Uint() case string: return x.String() < y.String() default: panic("invalid map key type") } } ) golang-google-protobuf-1.27.1/internal/order/order_test.go000066400000000000000000000120041411250152500236020ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package order import ( "math/rand" "sort" "testing" "github.com/google/go-cmp/cmp" "google.golang.org/protobuf/reflect/protoreflect" pref "google.golang.org/protobuf/reflect/protoreflect" ) type fieldDesc struct { index int name protoreflect.FullName number protoreflect.FieldNumber extension bool oneofIndex int // non-zero means within oneof; negative means synthetic pref.FieldDescriptor } func (d fieldDesc) Index() int { return d.index } func (d fieldDesc) Name() pref.Name { return d.name.Name() } func (d fieldDesc) FullName() pref.FullName { return d.name } func (d fieldDesc) Number() pref.FieldNumber { return d.number } func (d fieldDesc) IsExtension() bool { return d.extension } func (d fieldDesc) ContainingOneof() pref.OneofDescriptor { switch { case d.oneofIndex < 0: return oneofDesc{index: -d.oneofIndex, synthetic: true} case d.oneofIndex > 0: return oneofDesc{index: +d.oneofIndex, synthetic: false} default: return nil } } type oneofDesc struct { index int synthetic bool pref.OneofDescriptor } func (d oneofDesc) Index() int { return d.index } func (d oneofDesc) IsSynthetic() bool { return d.synthetic } func TestFieldOrder(t *testing.T) { tests := []struct { label string order FieldOrder fields []fieldDesc }{{ label: "LegacyFieldOrder", order: LegacyFieldOrder, fields: []fieldDesc{ // Extension fields sorted first by field number. {number: 2, extension: true}, {number: 4, extension: true}, {number: 100, extension: true}, {number: 120, extension: true}, // Non-extension fields that are not within a oneof // sorted next by field number. {number: 1}, {number: 5, oneofIndex: -9}, // synthetic oneof {number: 10}, {number: 11, oneofIndex: -10}, // synthetic oneof {number: 12}, // Non-synthetic oneofs sorted last by index. {number: 13, oneofIndex: 4}, {number: 3, oneofIndex: 5}, {number: 9, oneofIndex: 5}, {number: 7, oneofIndex: 8}, }, }, { label: "NumberFieldOrder", order: NumberFieldOrder, fields: []fieldDesc{ {number: 1, index: 5, name: "c"}, {number: 2, index: 2, name: "b"}, {number: 3, index: 3, name: "d"}, {number: 5, index: 1, name: "a"}, {number: 7, index: 7, name: "e"}, }, }, { label: "IndexNameFieldOrder", order: IndexNameFieldOrder, fields: []fieldDesc{ // Non-extension fields sorted first by index. {index: 0, number: 5, name: "c"}, {index: 2, number: 2, name: "a"}, {index: 4, number: 4, name: "b"}, {index: 7, number: 6, name: "d"}, // Extension fields sorted last by full name. {index: 3, number: 1, name: "d.a", extension: true}, {index: 5, number: 3, name: "e", extension: true}, {index: 1, number: 7, name: "g", extension: true}, }, }} for _, tt := range tests { t.Run(tt.label, func(t *testing.T) { want := tt.fields got := append([]fieldDesc(nil), want...) for i, j := range rand.Perm(len(got)) { got[i], got[j] = got[j], got[i] } sort.Slice(got, func(i, j int) bool { return tt.order(got[i], got[j]) }) if diff := cmp.Diff(want, got, cmp.Comparer(func(x, y fieldDesc) bool { return x == y }), ); diff != "" { t.Errorf("order mismatch (-want +got):\n%s", diff) } }) } } func TestKeyOrder(t *testing.T) { tests := []struct { label string order KeyOrder keys []interface{} }{{ label: "GenericKeyOrder", order: GenericKeyOrder, keys: []interface{}{false, true}, }, { label: "GenericKeyOrder", order: GenericKeyOrder, keys: []interface{}{int32(-100), int32(-99), int32(-10), int32(-9), int32(-1), int32(0), int32(+1), int32(+9), int32(+10), int32(+99), int32(+100)}, }, { label: "GenericKeyOrder", order: GenericKeyOrder, keys: []interface{}{int64(-100), int64(-99), int64(-10), int64(-9), int64(-1), int64(0), int64(+1), int64(+9), int64(+10), int64(+99), int64(+100)}, }, { label: "GenericKeyOrder", order: GenericKeyOrder, keys: []interface{}{uint32(0), uint32(1), uint32(9), uint32(10), uint32(99), uint32(100)}, }, { label: "GenericKeyOrder", order: GenericKeyOrder, keys: []interface{}{uint64(0), uint64(1), uint64(9), uint64(10), uint64(99), uint64(100)}, }, { label: "GenericKeyOrder", order: GenericKeyOrder, keys: []interface{}{"", "a", "aa", "ab", "ba", "bb", "\u0080", "\u0080\u0081", "\u0082\u0080"}, }} for _, tt := range tests { t.Run(tt.label, func(t *testing.T) { var got, want []protoreflect.MapKey for _, v := range tt.keys { want = append(want, pref.ValueOf(v).MapKey()) } got = append(got, want...) for i, j := range rand.Perm(len(got)) { got[i], got[j] = got[j], got[i] } sort.Slice(got, func(i, j int) bool { return tt.order(got[i], got[j]) }) if diff := cmp.Diff(want, got, cmp.Transformer("", protoreflect.MapKey.Interface)); diff != "" { t.Errorf("order mismatch (-want +got):\n%s", diff) } }) } } golang-google-protobuf-1.27.1/internal/order/range.go000066400000000000000000000053151411250152500225330ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package order provides ordered access to messages and maps. package order import ( "sort" "sync" pref "google.golang.org/protobuf/reflect/protoreflect" ) type messageField struct { fd pref.FieldDescriptor v pref.Value } var messageFieldPool = sync.Pool{ New: func() interface{} { return new([]messageField) }, } type ( // FieldRnger is an interface for visiting all fields in a message. // The protoreflect.Message type implements this interface. FieldRanger interface{ Range(VisitField) } // VisitField is called everytime a message field is visited. VisitField = func(pref.FieldDescriptor, pref.Value) bool ) // RangeFields iterates over the fields of fs according to the specified order. func RangeFields(fs FieldRanger, less FieldOrder, fn VisitField) { if less == nil { fs.Range(fn) return } // Obtain a pre-allocated scratch buffer. p := messageFieldPool.Get().(*[]messageField) fields := (*p)[:0] defer func() { if cap(fields) < 1024 { *p = fields messageFieldPool.Put(p) } }() // Collect all fields in the message and sort them. fs.Range(func(fd pref.FieldDescriptor, v pref.Value) bool { fields = append(fields, messageField{fd, v}) return true }) sort.Slice(fields, func(i, j int) bool { return less(fields[i].fd, fields[j].fd) }) // Visit the fields in the specified ordering. for _, f := range fields { if !fn(f.fd, f.v) { return } } } type mapEntry struct { k pref.MapKey v pref.Value } var mapEntryPool = sync.Pool{ New: func() interface{} { return new([]mapEntry) }, } type ( // EntryRanger is an interface for visiting all fields in a message. // The protoreflect.Map type implements this interface. EntryRanger interface{ Range(VisitEntry) } // VisitEntry is called everytime a map entry is visited. VisitEntry = func(pref.MapKey, pref.Value) bool ) // RangeEntries iterates over the entries of es according to the specified order. func RangeEntries(es EntryRanger, less KeyOrder, fn VisitEntry) { if less == nil { es.Range(fn) return } // Obtain a pre-allocated scratch buffer. p := mapEntryPool.Get().(*[]mapEntry) entries := (*p)[:0] defer func() { if cap(entries) < 1024 { *p = entries mapEntryPool.Put(p) } }() // Collect all entries in the map and sort them. es.Range(func(k pref.MapKey, v pref.Value) bool { entries = append(entries, mapEntry{k, v}) return true }) sort.Slice(entries, func(i, j int) bool { return less(entries[i].k, entries[j].k) }) // Visit the entries in the specified ordering. for _, e := range entries { if !fn(e.k, e.v) { return } } } golang-google-protobuf-1.27.1/internal/pragma/000077500000000000000000000000001411250152500212405ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/pragma/pragma.go000066400000000000000000000021211411250152500230320ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package pragma provides types that can be embedded into a struct to // statically enforce or prevent certain language properties. package pragma import "sync" // NoUnkeyedLiterals can be embedded in a struct to prevent unkeyed literals. type NoUnkeyedLiterals struct{} // DoNotImplement can be embedded in an interface to prevent trivial // implementations of the interface. // // This is useful to prevent unauthorized implementations of an interface // so that it can be extended in the future for any protobuf language changes. type DoNotImplement interface{ ProtoInternal(DoNotImplement) } // DoNotCompare can be embedded in a struct to prevent comparability. type DoNotCompare [0]func() // DoNotCopy can be embedded in a struct to help prevent shallow copies. // This does not rely on a Go language feature, but rather a special case // within the vet checker. // // See https://golang.org/issues/8005. type DoNotCopy [0]sync.Mutex golang-google-protobuf-1.27.1/internal/protobuild/000077500000000000000000000000001411250152500221545ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/protobuild/build.go000066400000000000000000000102731411250152500236050ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package protobuild constructs messages. // // This package is used to construct multiple types of message with a similar shape // from a common template. package protobuild import ( "fmt" "math" "reflect" pref "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" ) // A Value is a value assignable to a field. // A Value may be a value accepted by protoreflect.ValueOf. In addition: // // • An int may be assigned to any numeric field. // // • A float64 may be assigned to a double field. // // • Either a string or []byte may be assigned to a string or bytes field. // // • A string containing the value name may be assigned to an enum field. // // • A slice may be assigned to a list, and a map may be assigned to a map. type Value interface{} // A Message is a template to apply to a message. Keys are field names, including // extension names. type Message map[pref.Name]Value // Unknown is a key associated with the unknown fields of a message. // The value should be a []byte. const Unknown = "@unknown" // Build applies the template to a message. func (template Message) Build(m pref.Message) { md := m.Descriptor() fields := md.Fields() exts := make(map[pref.Name]pref.FieldDescriptor) protoregistry.GlobalTypes.RangeExtensionsByMessage(md.FullName(), func(xt pref.ExtensionType) bool { xd := xt.TypeDescriptor() exts[xd.Name()] = xd return true }) for k, v := range template { if k == Unknown { m.SetUnknown(pref.RawFields(v.([]byte))) continue } fd := fields.ByName(k) if fd == nil { fd = exts[k] } if fd == nil { panic(fmt.Sprintf("%v.%v: not found", md.FullName(), k)) } switch { case fd.IsList(): list := m.Mutable(fd).List() s := reflect.ValueOf(v) for i := 0; i < s.Len(); i++ { if fd.Message() == nil { list.Append(fieldValue(fd, s.Index(i).Interface())) } else { e := list.NewElement() s.Index(i).Interface().(Message).Build(e.Message()) list.Append(e) } } case fd.IsMap(): mapv := m.Mutable(fd).Map() rm := reflect.ValueOf(v) for _, k := range rm.MapKeys() { mk := fieldValue(fd.MapKey(), k.Interface()).MapKey() if fd.MapValue().Message() == nil { mv := fieldValue(fd.MapValue(), rm.MapIndex(k).Interface()) mapv.Set(mk, mv) } else if mapv.Has(mk) { mv := mapv.Get(mk).Message() rm.MapIndex(k).Interface().(Message).Build(mv) } else { mv := mapv.NewValue() rm.MapIndex(k).Interface().(Message).Build(mv.Message()) mapv.Set(mk, mv) } } default: if fd.Message() == nil { m.Set(fd, fieldValue(fd, v)) } else { v.(Message).Build(m.Mutable(fd).Message()) } } } } func fieldValue(fd pref.FieldDescriptor, v interface{}) pref.Value { switch o := v.(type) { case int: switch fd.Kind() { case pref.Int32Kind, pref.Sint32Kind, pref.Sfixed32Kind: if o < math.MinInt32 || math.MaxInt32 < o { panic(fmt.Sprintf("%v: value %v out of range [%v, %v]", fd.FullName(), o, int32(math.MinInt32), int32(math.MaxInt32))) } v = int32(o) case pref.Uint32Kind, pref.Fixed32Kind: if o < 0 || math.MaxUint32 < 0 { panic(fmt.Sprintf("%v: value %v out of range [%v, %v]", fd.FullName(), o, uint32(0), uint32(math.MaxUint32))) } v = uint32(o) case pref.Int64Kind, pref.Sint64Kind, pref.Sfixed64Kind: v = int64(o) case pref.Uint64Kind, pref.Fixed64Kind: if o < 0 { panic(fmt.Sprintf("%v: value %v out of range [%v, %v]", fd.FullName(), o, uint64(0), uint64(math.MaxUint64))) } v = uint64(o) case pref.FloatKind: v = float32(o) case pref.DoubleKind: v = float64(o) case pref.EnumKind: v = pref.EnumNumber(o) default: panic(fmt.Sprintf("%v: invalid value type int", fd.FullName())) } case float64: switch fd.Kind() { case pref.FloatKind: v = float32(o) } case string: switch fd.Kind() { case pref.BytesKind: v = []byte(o) case pref.EnumKind: v = fd.Enum().Values().ByName(pref.Name(o)).Number() } case []byte: return pref.ValueOf(append([]byte{}, o...)) } return pref.ValueOf(v) } golang-google-protobuf-1.27.1/internal/protolegacy/000077500000000000000000000000001411250152500223215ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/protolegacy/proto.go000066400000000000000000000116271411250152500240220ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package protolegacy is a stub version of the v1 proto package // to satisfy internal/testprotos/legacy dependencies. package protolegacy import ( "bytes" "compress/gzip" "errors" "fmt" "io/ioutil" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/runtime/protoiface" "google.golang.org/protobuf/runtime/protoimpl" ) const ( ProtoPackageIsVersion1 = true ProtoPackageIsVersion2 = true ProtoPackageIsVersion3 = true ) const ( WireVarint = 0 WireFixed32 = 5 WireFixed64 = 1 WireBytes = 2 WireStartGroup = 3 WireEndGroup = 4 ) type ( Message = protoiface.MessageV1 ExtensionRange = protoiface.ExtensionRangeV1 ExtensionDesc = protoimpl.ExtensionInfo Extension = protoimpl.ExtensionFieldV1 XXX_InternalExtensions = protoimpl.ExtensionFields ) func RegisterFile(s string, d []byte) { // Decompress the descriptor. zr, err := gzip.NewReader(bytes.NewReader(d)) if err != nil { panic(fmt.Sprintf("proto: invalid compressed file descriptor: %v", err)) } b, err := ioutil.ReadAll(zr) if err != nil { panic(fmt.Sprintf("proto: invalid compressed file descriptor: %v", err)) } // Construct a protoreflect.FileDescriptor from the raw descriptor. // Note that DescBuilder.Build automatically registers the constructed // file descriptor with the v2 registry. protoimpl.DescBuilder{RawDescriptor: b}.Build() } func RegisterType(m Message, s string) { mt := protoimpl.X.LegacyMessageTypeOf(m, protoreflect.FullName(s)) if err := protoregistry.GlobalTypes.RegisterMessage(mt); err != nil { panic(err) } } func RegisterMapType(interface{}, string) { // Do nothing. } func RegisterEnum(string, map[int32]string, map[string]int32) { // Do nothing. } func RegisterExtension(d *ExtensionDesc) { if err := protoregistry.GlobalTypes.RegisterExtension(d); err != nil { panic(err) } } var ErrInternalBadWireType = errors.New("not implemented") func Size(Message) int { panic("not implemented") } func Marshal(Message) ([]byte, error) { panic("not implemented") } func Unmarshal([]byte, Message) error { panic("not implemented") } func SizeVarint(uint64) int { panic("not implemented") } func EncodeVarint(uint64) []byte { panic("not implemented") } func DecodeVarint([]byte) (uint64, int) { panic("not implemented") } func CompactTextString(Message) string { panic("not implemented") } func EnumName(map[int32]string, int32) string { panic("not implemented") } func UnmarshalJSONEnum(map[string]int32, []byte, string) (int32, error) { panic("not implemented") } type Buffer struct{} func (*Buffer) DecodeFixed32() (uint64, error) { panic("not implemented") } func (*Buffer) DecodeFixed64() (uint64, error) { panic("not implemented") } func (*Buffer) DecodeGroup(Message) error { panic("not implemented") } func (*Buffer) DecodeMessage(Message) error { panic("not implemented") } func (*Buffer) DecodeRawBytes(bool) ([]byte, error) { panic("not implemented") } func (*Buffer) DecodeStringBytes() (string, error) { panic("not implemented") } func (*Buffer) DecodeVarint() (uint64, error) { panic("not implemented") } func (*Buffer) DecodeZigzag32() (uint64, error) { panic("not implemented") } func (*Buffer) DecodeZigzag64() (uint64, error) { panic("not implemented") } func (*Buffer) EncodeFixed32(uint64) error { panic("not implemented") } func (*Buffer) EncodeFixed64(uint64) error { panic("not implemented") } func (*Buffer) EncodeMessage(Message) error { panic("not implemented") } func (*Buffer) EncodeRawBytes([]byte) error { panic("not implemented") } func (*Buffer) EncodeStringBytes(string) error { panic("not implemented") } func (*Buffer) EncodeVarint(uint64) error { panic("not implemented") } func (*Buffer) EncodeZigzag32(uint64) error { panic("not implemented") } func (*Buffer) EncodeZigzag64(uint64) error { panic("not implemented") } func (*Buffer) Marshal(Message) error { panic("not implemented") } func (*Buffer) Unmarshal(Message) error { panic("not implemented") } type InternalMessageInfo struct{} func (*InternalMessageInfo) DiscardUnknown(Message) { panic("not implemented") } func (*InternalMessageInfo) Marshal([]byte, Message, bool) ([]byte, error) { panic("not implemented") } func (*InternalMessageInfo) Merge(Message, Message) { panic("not implemented") } func (*InternalMessageInfo) Size(Message) int { panic("not implemented") } func (*InternalMessageInfo) Unmarshal(Message, []byte) error { panic("not implemented") } golang-google-protobuf-1.27.1/internal/set/000077500000000000000000000000001411250152500205645ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/set/ints.go000066400000000000000000000022471411250152500220750ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package set provides simple set data structures for uint64s. package set import "math/bits" // int64s represents a set of integers within the range of 0..63. type int64s uint64 func (bs *int64s) Len() int { return bits.OnesCount64(uint64(*bs)) } func (bs *int64s) Has(n uint64) bool { return uint64(*bs)&(uint64(1)< 0 } func (bs *int64s) Set(n uint64) { *(*uint64)(bs) |= uint64(1) << n } func (bs *int64s) Clear(n uint64) { *(*uint64)(bs) &^= uint64(1) << n } // Ints represents a set of integers within the range of 0..math.MaxUint64. type Ints struct { lo int64s hi map[uint64]struct{} } func (bs *Ints) Len() int { return bs.lo.Len() + len(bs.hi) } func (bs *Ints) Has(n uint64) bool { if n < 64 { return bs.lo.Has(n) } _, ok := bs.hi[n] return ok } func (bs *Ints) Set(n uint64) { if n < 64 { bs.lo.Set(n) return } if bs.hi == nil { bs.hi = make(map[uint64]struct{}) } bs.hi[n] = struct{}{} } func (bs *Ints) Clear(n uint64) { if n < 64 { bs.lo.Clear(n) return } delete(bs.hi, n) } golang-google-protobuf-1.27.1/internal/set/ints_test.go000066400000000000000000000030111411250152500231220ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package set import ( "math/rand" "testing" ) const maxLimit = 1024 var toSet, toClear [maxLimit]bool func init() { r := rand.New(rand.NewSource(0)) for i := 0; i < maxLimit; i++ { toSet[i] = r.Intn(2) == 0 toClear[i] = r.Intn(2) == 0 } } func TestInts(t *testing.T) { ns := new(Ints) // Check that set starts empty. wantLen := 0 if ns.Len() != wantLen { t.Errorf("init: Len() = %d, want %d", ns.Len(), wantLen) } for i := 0; i < maxLimit; i++ { if ns.Has(uint64(i)) { t.Errorf("init: Has(%d) = true, want false", i) } } // Set some numbers. for i, b := range toSet[:maxLimit] { if b { ns.Set(uint64(i)) wantLen++ } } // Check that integers were set. if ns.Len() != wantLen { t.Errorf("after Set: Len() = %d, want %d", ns.Len(), wantLen) } for i := 0; i < maxLimit; i++ { if got := ns.Has(uint64(i)); got != toSet[i] { t.Errorf("after Set: Has(%d) = %v, want %v", i, got, !got) } } // Clear some numbers. for i, b := range toClear[:maxLimit] { if b { ns.Clear(uint64(i)) if toSet[i] { wantLen-- } } } // Check that integers were cleared. if ns.Len() != wantLen { t.Errorf("after Clear: Len() = %d, want %d", ns.Len(), wantLen) } for i := 0; i < maxLimit; i++ { if got := ns.Has(uint64(i)); got != toSet[i] && !toClear[i] { t.Errorf("after Clear: Has(%d) = %v, want %v", i, got, !got) } } } golang-google-protobuf-1.27.1/internal/strs/000077500000000000000000000000001411250152500207645ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/strs/strings.go000066400000000000000000000123621411250152500230100ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package strs provides string manipulation functionality specific to protobuf. package strs import ( "go/token" "strings" "unicode" "unicode/utf8" "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/reflect/protoreflect" ) // EnforceUTF8 reports whether to enforce strict UTF-8 validation. func EnforceUTF8(fd protoreflect.FieldDescriptor) bool { if flags.ProtoLegacy { if fd, ok := fd.(interface{ EnforceUTF8() bool }); ok { return fd.EnforceUTF8() } } return fd.Syntax() == protoreflect.Proto3 } // GoCamelCase camel-cases a protobuf name for use as a Go identifier. // // If there is an interior underscore followed by a lower case letter, // drop the underscore and convert the letter to upper case. func GoCamelCase(s string) string { // Invariant: if the next letter is lower case, it must be converted // to upper case. // That is, we process a word at a time, where words are marked by _ or // upper case letter. Digits are treated as words. var b []byte for i := 0; i < len(s); i++ { c := s[i] switch { case c == '.' && i+1 < len(s) && isASCIILower(s[i+1]): // Skip over '.' in ".{{lowercase}}". case c == '.': b = append(b, '_') // convert '.' to '_' case c == '_' && (i == 0 || s[i-1] == '.'): // Convert initial '_' to ensure we start with a capital letter. // Do the same for '_' after '.' to match historic behavior. b = append(b, 'X') // convert '_' to 'X' case c == '_' && i+1 < len(s) && isASCIILower(s[i+1]): // Skip over '_' in "_{{lowercase}}". case isASCIIDigit(c): b = append(b, c) default: // Assume we have a letter now - if not, it's a bogus identifier. // The next word is a sequence of characters that must start upper case. if isASCIILower(c) { c -= 'a' - 'A' // convert lowercase to uppercase } b = append(b, c) // Accept lower case sequence that follows. for ; i+1 < len(s) && isASCIILower(s[i+1]); i++ { b = append(b, s[i+1]) } } } return string(b) } // GoSanitized converts a string to a valid Go identifier. func GoSanitized(s string) string { // Sanitize the input to the set of valid characters, // which must be '_' or be in the Unicode L or N categories. s = strings.Map(func(r rune) rune { if unicode.IsLetter(r) || unicode.IsDigit(r) { return r } return '_' }, s) // Prepend '_' in the event of a Go keyword conflict or if // the identifier is invalid (does not start in the Unicode L category). r, _ := utf8.DecodeRuneInString(s) if token.Lookup(s).IsKeyword() || !unicode.IsLetter(r) { return "_" + s } return s } // JSONCamelCase converts a snake_case identifier to a camelCase identifier, // according to the protobuf JSON specification. func JSONCamelCase(s string) string { var b []byte var wasUnderscore bool for i := 0; i < len(s); i++ { // proto identifiers are always ASCII c := s[i] if c != '_' { if wasUnderscore && isASCIILower(c) { c -= 'a' - 'A' // convert to uppercase } b = append(b, c) } wasUnderscore = c == '_' } return string(b) } // JSONSnakeCase converts a camelCase identifier to a snake_case identifier, // according to the protobuf JSON specification. func JSONSnakeCase(s string) string { var b []byte for i := 0; i < len(s); i++ { // proto identifiers are always ASCII c := s[i] if isASCIIUpper(c) { b = append(b, '_') c += 'a' - 'A' // convert to lowercase } b = append(b, c) } return string(b) } // MapEntryName derives the name of the map entry message given the field name. // See protoc v3.8.0: src/google/protobuf/descriptor.cc:254-276,6057 func MapEntryName(s string) string { var b []byte upperNext := true for _, c := range s { switch { case c == '_': upperNext = true case upperNext: b = append(b, byte(unicode.ToUpper(c))) upperNext = false default: b = append(b, byte(c)) } } b = append(b, "Entry"...) return string(b) } // EnumValueName derives the camel-cased enum value name. // See protoc v3.8.0: src/google/protobuf/descriptor.cc:297-313 func EnumValueName(s string) string { var b []byte upperNext := true for _, c := range s { switch { case c == '_': upperNext = true case upperNext: b = append(b, byte(unicode.ToUpper(c))) upperNext = false default: b = append(b, byte(unicode.ToLower(c))) upperNext = false } } return string(b) } // TrimEnumPrefix trims the enum name prefix from an enum value name, // where the prefix is all lowercase without underscores. // See protoc v3.8.0: src/google/protobuf/descriptor.cc:330-375 func TrimEnumPrefix(s, prefix string) string { s0 := s // original input for len(s) > 0 && len(prefix) > 0 { if s[0] == '_' { s = s[1:] continue } if unicode.ToLower(rune(s[0])) != rune(prefix[0]) { return s0 // no prefix match } s, prefix = s[1:], prefix[1:] } if len(prefix) > 0 { return s0 // no prefix match } s = strings.TrimLeft(s, "_") if len(s) == 0 { return s0 // avoid returning empty string } return s } func isASCIILower(c byte) bool { return 'a' <= c && c <= 'z' } func isASCIIUpper(c byte) bool { return 'A' <= c && c <= 'Z' } func isASCIIDigit(c byte) bool { return '0' <= c && c <= '9' } golang-google-protobuf-1.27.1/internal/strs/strings_pure.go000066400000000000000000000011111411250152500240310ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build purego appengine package strs import pref "google.golang.org/protobuf/reflect/protoreflect" func UnsafeString(b []byte) string { return string(b) } func UnsafeBytes(s string) []byte { return []byte(s) } type Builder struct{} func (*Builder) AppendFullName(prefix pref.FullName, name pref.Name) pref.FullName { return prefix.Append(name) } func (*Builder) MakeString(b []byte) string { return string(b) } golang-google-protobuf-1.27.1/internal/strs/strings_test.go000066400000000000000000000104121411250152500240410ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package strs import ( "strconv" "testing" ) func TestGoCamelCase(t *testing.T) { tests := []struct { in, want string }{ {"", ""}, {"one", "One"}, {"one_two", "OneTwo"}, {"_my_field_name_2", "XMyFieldName_2"}, {"Something_Capped", "Something_Capped"}, {"my_Name", "My_Name"}, {"OneTwo", "OneTwo"}, {"_", "X"}, {"_a_", "XA_"}, {"one.two", "OneTwo"}, {"one.Two", "One_Two"}, {"one_two.three_four", "OneTwoThreeFour"}, {"one_two.Three_four", "OneTwo_ThreeFour"}, {"_one._two", "XOne_XTwo"}, {"SCREAMING_SNAKE_CASE", "SCREAMING_SNAKE_CASE"}, {"double__underscore", "Double_Underscore"}, {"camelCase", "CamelCase"}, {"go2proto", "Go2Proto"}, {"世界", "世界"}, {"x世界", "X世界"}, {"foo_bar世界", "FooBar世界"}, } for _, tc := range tests { if got := GoCamelCase(tc.in); got != tc.want { t.Errorf("GoCamelCase(%q) = %q, want %q", tc.in, got, tc.want) } } } func TestGoSanitized(t *testing.T) { tests := []struct { in, want string }{ {"", "_"}, {"boo", "boo"}, {"Boo", "Boo"}, {"ßoo", "ßoo"}, {"default", "_default"}, {"hello", "hello"}, {"hello-world!!", "hello_world__"}, {"hello-\xde\xad\xbe\xef\x00", "hello_____"}, {"hello 世界", "hello_世界"}, {"世界", "世界"}, } for _, tc := range tests { if got := GoSanitized(tc.in); got != tc.want { t.Errorf("GoSanitized(%q) = %q, want %q", tc.in, got, tc.want) } } } func TestName(t *testing.T) { tests := []struct { in string inEnumPrefix string wantMapEntry string wantEnumValue string wantTrimValue string wantJSONCamelCase string wantJSONSnakeCase string }{{ in: "abc", inEnumPrefix: "", wantMapEntry: "AbcEntry", wantEnumValue: "Abc", wantTrimValue: "abc", wantJSONCamelCase: "abc", wantJSONSnakeCase: "abc", }, { in: "foo_baR_", inEnumPrefix: "foo_bar", wantMapEntry: "FooBaREntry", wantEnumValue: "FooBar", wantTrimValue: "foo_baR_", wantJSONCamelCase: "fooBaR", wantJSONSnakeCase: "foo_ba_r_", }, { in: "snake_caseCamelCase", inEnumPrefix: "snakecasecamel", wantMapEntry: "SnakeCaseCamelCaseEntry", wantEnumValue: "SnakeCasecamelcase", wantTrimValue: "Case", wantJSONCamelCase: "snakeCaseCamelCase", wantJSONSnakeCase: "snake_case_camel_case", }, { in: "FiZz_BuZz", inEnumPrefix: "fizz", wantMapEntry: "FiZzBuZzEntry", wantEnumValue: "FizzBuzz", wantTrimValue: "BuZz", wantJSONCamelCase: "FiZzBuZz", wantJSONSnakeCase: "_fi_zz__bu_zz", }} for _, tt := range tests { if got := MapEntryName(tt.in); got != tt.wantMapEntry { t.Errorf("MapEntryName(%q) = %q, want %q", tt.in, got, tt.wantMapEntry) } if got := EnumValueName(tt.in); got != tt.wantEnumValue { t.Errorf("EnumValueName(%q) = %q, want %q", tt.in, got, tt.wantEnumValue) } if got := TrimEnumPrefix(tt.in, tt.inEnumPrefix); got != tt.wantTrimValue { t.Errorf("ErimEnumPrefix(%q, %q) = %q, want %q", tt.in, tt.inEnumPrefix, got, tt.wantTrimValue) } if got := JSONCamelCase(tt.in); got != tt.wantJSONCamelCase { t.Errorf("JSONCamelCase(%q) = %q, want %q", tt.in, got, tt.wantJSONCamelCase) } if got := JSONSnakeCase(tt.in); got != tt.wantJSONSnakeCase { t.Errorf("JSONSnakeCase(%q) = %q, want %q", tt.in, got, tt.wantJSONSnakeCase) } } } var ( srcString = "1234" srcBytes = []byte(srcString) dst uint64 ) func BenchmarkCast(b *testing.B) { b.Run("Ideal", func(b *testing.B) { b.ReportAllocs() for i := 0; i < b.N; i++ { dst, _ = strconv.ParseUint(srcString, 0, 64) } if dst != 1234 { b.Errorf("got %d, want %s", dst, srcString) } }) b.Run("Copy", func(b *testing.B) { b.ReportAllocs() for i := 0; i < b.N; i++ { dst, _ = strconv.ParseUint(string(srcBytes), 0, 64) } if dst != 1234 { b.Errorf("got %d, want %s", dst, srcString) } }) b.Run("Cast", func(b *testing.B) { b.ReportAllocs() for i := 0; i < b.N; i++ { dst, _ = strconv.ParseUint(UnsafeString(srcBytes), 0, 64) } if dst != 1234 { b.Errorf("got %d, want %s", dst, srcString) } }) } golang-google-protobuf-1.27.1/internal/strs/strings_unsafe.go000066400000000000000000000046561411250152500243600ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build !purego,!appengine package strs import ( "unsafe" pref "google.golang.org/protobuf/reflect/protoreflect" ) type ( stringHeader struct { Data unsafe.Pointer Len int } sliceHeader struct { Data unsafe.Pointer Len int Cap int } ) // UnsafeString returns an unsafe string reference of b. // The caller must treat the input slice as immutable. // // WARNING: Use carefully. The returned result must not leak to the end user // unless the input slice is provably immutable. func UnsafeString(b []byte) (s string) { src := (*sliceHeader)(unsafe.Pointer(&b)) dst := (*stringHeader)(unsafe.Pointer(&s)) dst.Data = src.Data dst.Len = src.Len return s } // UnsafeBytes returns an unsafe bytes slice reference of s. // The caller must treat returned slice as immutable. // // WARNING: Use carefully. The returned result must not leak to the end user. func UnsafeBytes(s string) (b []byte) { src := (*stringHeader)(unsafe.Pointer(&s)) dst := (*sliceHeader)(unsafe.Pointer(&b)) dst.Data = src.Data dst.Len = src.Len dst.Cap = src.Len return b } // Builder builds a set of strings with shared lifetime. // This differs from strings.Builder, which is for building a single string. type Builder struct { buf []byte } // AppendFullName is equivalent to protoreflect.FullName.Append, // but optimized for large batches where each name has a shared lifetime. func (sb *Builder) AppendFullName(prefix pref.FullName, name pref.Name) pref.FullName { n := len(prefix) + len(".") + len(name) if len(prefix) == 0 { n -= len(".") } sb.grow(n) sb.buf = append(sb.buf, prefix...) sb.buf = append(sb.buf, '.') sb.buf = append(sb.buf, name...) return pref.FullName(sb.last(n)) } // MakeString is equivalent to string(b), but optimized for large batches // with a shared lifetime. func (sb *Builder) MakeString(b []byte) string { sb.grow(len(b)) sb.buf = append(sb.buf, b...) return sb.last(len(b)) } func (sb *Builder) grow(n int) { if cap(sb.buf)-len(sb.buf) >= n { return } // Unlike strings.Builder, we do not need to copy over the contents // of the old buffer since our builder provides no API for // retrieving previously created strings. sb.buf = make([]byte, 2*(cap(sb.buf)+n)) } func (sb *Builder) last(n int) string { return UnsafeString(sb.buf[len(sb.buf)-n:]) } golang-google-protobuf-1.27.1/internal/testprotos/000077500000000000000000000000001411250152500222175ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/annotation/000077500000000000000000000000001411250152500243715ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/annotation/annotation.pb.go000066400000000000000000000107271411250152500275010ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/annotation/annotation.proto package annotation import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" descriptorpb "google.golang.org/protobuf/types/descriptorpb" reflect "reflect" ) var file_internal_testprotos_annotation_annotation_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*bool)(nil), Field: 37383685, Name: "go_annotation.track_field_use", Tag: "varint,37383685,opt,name=track_field_use", Filename: "internal/testprotos/annotation/annotation.proto", }, } // Extension fields to descriptorpb.MessageOptions. var ( // Setting this on a message enables tracking of which fields in the message // a specific binary might access. As a consequence, it also disables the use // of the message accessor methods to satisfy interfaces: they can only be // called directly. // // optional bool track_field_use = 37383685; E_TrackFieldUse = &file_internal_testprotos_annotation_annotation_proto_extTypes[0] ) var File_internal_testprotos_annotation_annotation_proto protoreflect.FileDescriptor var file_internal_testprotos_annotation_annotation_proto_rawDesc = []byte{ 0x0a, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x67, 0x6f, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x4a, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x85, 0xdc, 0xe9, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x55, 0x73, 0x65, 0x42, 0x3b, 0x5a, 0x39, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, } var file_internal_testprotos_annotation_annotation_proto_goTypes = []interface{}{ (*descriptorpb.MessageOptions)(nil), // 0: google.protobuf.MessageOptions } var file_internal_testprotos_annotation_annotation_proto_depIdxs = []int32{ 0, // 0: go_annotation.track_field_use:extendee -> google.protobuf.MessageOptions 1, // [1:1] is the sub-list for method output_type 1, // [1:1] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name 0, // [0:1] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_internal_testprotos_annotation_annotation_proto_init() } func file_internal_testprotos_annotation_annotation_proto_init() { if File_internal_testprotos_annotation_annotation_proto != nil { return } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_annotation_annotation_proto_rawDesc, NumEnums: 0, NumMessages: 0, NumExtensions: 1, NumServices: 0, }, GoTypes: file_internal_testprotos_annotation_annotation_proto_goTypes, DependencyIndexes: file_internal_testprotos_annotation_annotation_proto_depIdxs, ExtensionInfos: file_internal_testprotos_annotation_annotation_proto_extTypes, }.Build() File_internal_testprotos_annotation_annotation_proto = out.File file_internal_testprotos_annotation_annotation_proto_rawDesc = nil file_internal_testprotos_annotation_annotation_proto_goTypes = nil file_internal_testprotos_annotation_annotation_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/annotation/annotation.proto000066400000000000000000000012421411250152500276270ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package go_annotation; import "google/protobuf/descriptor.proto"; option go_package = "google.golang.org/protobuf/internal/testprotos/annotation"; extend google.protobuf.MessageOptions { // Setting this on a message enables tracking of which fields in the message // a specific binary might access. As a consequence, it also disables the use // of the message accessor methods to satisfy interfaces: they can only be // called directly. optional bool track_field_use = 37383685; } golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/000077500000000000000000000000001411250152500243345ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/benchmarks.pb.go000066400000000000000000000166261411250152500274130ustar00rootroot00000000000000// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Code generated by protoc-gen-go. DO NOT EDIT. // source: benchmarks.proto package benchmarks import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type BenchmarkDataset struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Name of the benchmark dataset. This should be unique across all datasets. // Should only contain word characters: [a-zA-Z0-9_] Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Fully-qualified name of the protobuf message for this dataset. // It will be one of the messages defined benchmark_messages_proto2.proto // or benchmark_messages_proto3.proto. // // Implementations that do not support reflection can implement this with // an explicit "if/else" chain that lists every known message defined // in those files. MessageName string `protobuf:"bytes,2,opt,name=message_name,json=messageName,proto3" json:"message_name,omitempty"` // The payload(s) for this dataset. They should be parsed or serialized // in sequence, in a loop, ie. // // while (!benchmarkDone) { // Benchmark runner decides when to exit. // for (i = 0; i < benchmark.payload.length; i++) { // parse(benchmark.payload[i]) // } // } // // This is intended to let datasets include a variety of data to provide // potentially more realistic results than just parsing the same message // over and over. A single message parsed repeatedly could yield unusually // good branch prediction performance. Payload [][]byte `protobuf:"bytes,3,rep,name=payload,proto3" json:"payload,omitempty"` } func (x *BenchmarkDataset) Reset() { *x = BenchmarkDataset{} if protoimpl.UnsafeEnabled { mi := &file_benchmarks_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BenchmarkDataset) String() string { return protoimpl.X.MessageStringOf(x) } func (*BenchmarkDataset) ProtoMessage() {} func (x *BenchmarkDataset) ProtoReflect() protoreflect.Message { mi := &file_benchmarks_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BenchmarkDataset.ProtoReflect.Descriptor instead. func (*BenchmarkDataset) Descriptor() ([]byte, []int) { return file_benchmarks_proto_rawDescGZIP(), []int{0} } func (x *BenchmarkDataset) GetName() string { if x != nil { return x.Name } return "" } func (x *BenchmarkDataset) GetMessageName() string { if x != nil { return x.MessageName } return "" } func (x *BenchmarkDataset) GetPayload() [][]byte { if x != nil { return x.Payload } return nil } var File_benchmarks_proto protoreflect.FileDescriptor var file_benchmarks_proto_rawDesc = []byte{ 0x0a, 0x10, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x22, 0x63, 0x0a, 0x10, 0x42, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x20, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_benchmarks_proto_rawDescOnce sync.Once file_benchmarks_proto_rawDescData = file_benchmarks_proto_rawDesc ) func file_benchmarks_proto_rawDescGZIP() []byte { file_benchmarks_proto_rawDescOnce.Do(func() { file_benchmarks_proto_rawDescData = protoimpl.X.CompressGZIP(file_benchmarks_proto_rawDescData) }) return file_benchmarks_proto_rawDescData } var file_benchmarks_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_benchmarks_proto_goTypes = []interface{}{ (*BenchmarkDataset)(nil), // 0: benchmarks.BenchmarkDataset } var file_benchmarks_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_benchmarks_proto_init() } func file_benchmarks_proto_init() { if File_benchmarks_proto != nil { return } if !protoimpl.UnsafeEnabled { file_benchmarks_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BenchmarkDataset); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_benchmarks_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_benchmarks_proto_goTypes, DependencyIndexes: file_benchmarks_proto_depIdxs, MessageInfos: file_benchmarks_proto_msgTypes, }.Build() File_benchmarks_proto = out.File file_benchmarks_proto_rawDesc = nil file_benchmarks_proto_goTypes = nil file_benchmarks_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/datasets/000077500000000000000000000000001411250152500261445ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/datasets/google_message1/000077500000000000000000000000001411250152500312055ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/datasets/google_message1/proto2/000077500000000000000000000000001411250152500324325ustar00rootroot00000000000000benchmark_message1_proto2.pb.go000066400000000000000000001067311411250152500403360ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/datasets/google_message1/proto2// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Benchmark messages for proto2. // Code generated by protoc-gen-go. DO NOT EDIT. // source: datasets/google_message1/proto2/benchmark_message1_proto2.proto package proto2 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type GoogleMessage1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field1 *string `protobuf:"bytes,1,req,name=field1" json:"field1,omitempty"` Field9 *string `protobuf:"bytes,9,opt,name=field9" json:"field9,omitempty"` Field18 *string `protobuf:"bytes,18,opt,name=field18" json:"field18,omitempty"` Field80 *bool `protobuf:"varint,80,opt,name=field80,def=0" json:"field80,omitempty"` Field81 *bool `protobuf:"varint,81,opt,name=field81,def=1" json:"field81,omitempty"` Field2 *int32 `protobuf:"varint,2,req,name=field2" json:"field2,omitempty"` Field3 *int32 `protobuf:"varint,3,req,name=field3" json:"field3,omitempty"` Field280 *int32 `protobuf:"varint,280,opt,name=field280" json:"field280,omitempty"` Field6 *int32 `protobuf:"varint,6,opt,name=field6,def=0" json:"field6,omitempty"` Field22 *int64 `protobuf:"varint,22,opt,name=field22" json:"field22,omitempty"` Field4 *string `protobuf:"bytes,4,opt,name=field4" json:"field4,omitempty"` Field5 []uint64 `protobuf:"fixed64,5,rep,name=field5" json:"field5,omitempty"` Field59 *bool `protobuf:"varint,59,opt,name=field59,def=0" json:"field59,omitempty"` Field7 *string `protobuf:"bytes,7,opt,name=field7" json:"field7,omitempty"` Field16 *int32 `protobuf:"varint,16,opt,name=field16" json:"field16,omitempty"` Field130 *int32 `protobuf:"varint,130,opt,name=field130,def=0" json:"field130,omitempty"` Field12 *bool `protobuf:"varint,12,opt,name=field12,def=1" json:"field12,omitempty"` Field17 *bool `protobuf:"varint,17,opt,name=field17,def=1" json:"field17,omitempty"` Field13 *bool `protobuf:"varint,13,opt,name=field13,def=1" json:"field13,omitempty"` Field14 *bool `protobuf:"varint,14,opt,name=field14,def=1" json:"field14,omitempty"` Field104 *int32 `protobuf:"varint,104,opt,name=field104,def=0" json:"field104,omitempty"` Field100 *int32 `protobuf:"varint,100,opt,name=field100,def=0" json:"field100,omitempty"` Field101 *int32 `protobuf:"varint,101,opt,name=field101,def=0" json:"field101,omitempty"` Field102 *string `protobuf:"bytes,102,opt,name=field102" json:"field102,omitempty"` Field103 *string `protobuf:"bytes,103,opt,name=field103" json:"field103,omitempty"` Field29 *int32 `protobuf:"varint,29,opt,name=field29,def=0" json:"field29,omitempty"` Field30 *bool `protobuf:"varint,30,opt,name=field30,def=0" json:"field30,omitempty"` Field60 *int32 `protobuf:"varint,60,opt,name=field60,def=-1" json:"field60,omitempty"` Field271 *int32 `protobuf:"varint,271,opt,name=field271,def=-1" json:"field271,omitempty"` Field272 *int32 `protobuf:"varint,272,opt,name=field272,def=-1" json:"field272,omitempty"` Field150 *int32 `protobuf:"varint,150,opt,name=field150" json:"field150,omitempty"` Field23 *int32 `protobuf:"varint,23,opt,name=field23,def=0" json:"field23,omitempty"` Field24 *bool `protobuf:"varint,24,opt,name=field24,def=0" json:"field24,omitempty"` Field25 *int32 `protobuf:"varint,25,opt,name=field25,def=0" json:"field25,omitempty"` Field15 *GoogleMessage1SubMessage `protobuf:"bytes,15,opt,name=field15" json:"field15,omitempty"` Field78 *bool `protobuf:"varint,78,opt,name=field78" json:"field78,omitempty"` Field67 *int32 `protobuf:"varint,67,opt,name=field67,def=0" json:"field67,omitempty"` Field68 *int32 `protobuf:"varint,68,opt,name=field68" json:"field68,omitempty"` Field128 *int32 `protobuf:"varint,128,opt,name=field128,def=0" json:"field128,omitempty"` Field129 *string `protobuf:"bytes,129,opt,name=field129,def=xxxxxxxxxxxxxxxxxxxxx" json:"field129,omitempty"` Field131 *int32 `protobuf:"varint,131,opt,name=field131,def=0" json:"field131,omitempty"` } // Default values for GoogleMessage1 fields. const ( Default_GoogleMessage1_Field80 = bool(false) Default_GoogleMessage1_Field81 = bool(true) Default_GoogleMessage1_Field6 = int32(0) Default_GoogleMessage1_Field59 = bool(false) Default_GoogleMessage1_Field130 = int32(0) Default_GoogleMessage1_Field12 = bool(true) Default_GoogleMessage1_Field17 = bool(true) Default_GoogleMessage1_Field13 = bool(true) Default_GoogleMessage1_Field14 = bool(true) Default_GoogleMessage1_Field104 = int32(0) Default_GoogleMessage1_Field100 = int32(0) Default_GoogleMessage1_Field101 = int32(0) Default_GoogleMessage1_Field29 = int32(0) Default_GoogleMessage1_Field30 = bool(false) Default_GoogleMessage1_Field60 = int32(-1) Default_GoogleMessage1_Field271 = int32(-1) Default_GoogleMessage1_Field272 = int32(-1) Default_GoogleMessage1_Field23 = int32(0) Default_GoogleMessage1_Field24 = bool(false) Default_GoogleMessage1_Field25 = int32(0) Default_GoogleMessage1_Field67 = int32(0) Default_GoogleMessage1_Field128 = int32(0) Default_GoogleMessage1_Field129 = string("xxxxxxxxxxxxxxxxxxxxx") Default_GoogleMessage1_Field131 = int32(0) ) func (x *GoogleMessage1) Reset() { *x = GoogleMessage1{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GoogleMessage1) String() string { return protoimpl.X.MessageStringOf(x) } func (*GoogleMessage1) ProtoMessage() {} func (x *GoogleMessage1) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GoogleMessage1.ProtoReflect.Descriptor instead. func (*GoogleMessage1) Descriptor() ([]byte, []int) { return file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_rawDescGZIP(), []int{0} } func (x *GoogleMessage1) GetField1() string { if x != nil && x.Field1 != nil { return *x.Field1 } return "" } func (x *GoogleMessage1) GetField9() string { if x != nil && x.Field9 != nil { return *x.Field9 } return "" } func (x *GoogleMessage1) GetField18() string { if x != nil && x.Field18 != nil { return *x.Field18 } return "" } func (x *GoogleMessage1) GetField80() bool { if x != nil && x.Field80 != nil { return *x.Field80 } return Default_GoogleMessage1_Field80 } func (x *GoogleMessage1) GetField81() bool { if x != nil && x.Field81 != nil { return *x.Field81 } return Default_GoogleMessage1_Field81 } func (x *GoogleMessage1) GetField2() int32 { if x != nil && x.Field2 != nil { return *x.Field2 } return 0 } func (x *GoogleMessage1) GetField3() int32 { if x != nil && x.Field3 != nil { return *x.Field3 } return 0 } func (x *GoogleMessage1) GetField280() int32 { if x != nil && x.Field280 != nil { return *x.Field280 } return 0 } func (x *GoogleMessage1) GetField6() int32 { if x != nil && x.Field6 != nil { return *x.Field6 } return Default_GoogleMessage1_Field6 } func (x *GoogleMessage1) GetField22() int64 { if x != nil && x.Field22 != nil { return *x.Field22 } return 0 } func (x *GoogleMessage1) GetField4() string { if x != nil && x.Field4 != nil { return *x.Field4 } return "" } func (x *GoogleMessage1) GetField5() []uint64 { if x != nil { return x.Field5 } return nil } func (x *GoogleMessage1) GetField59() bool { if x != nil && x.Field59 != nil { return *x.Field59 } return Default_GoogleMessage1_Field59 } func (x *GoogleMessage1) GetField7() string { if x != nil && x.Field7 != nil { return *x.Field7 } return "" } func (x *GoogleMessage1) GetField16() int32 { if x != nil && x.Field16 != nil { return *x.Field16 } return 0 } func (x *GoogleMessage1) GetField130() int32 { if x != nil && x.Field130 != nil { return *x.Field130 } return Default_GoogleMessage1_Field130 } func (x *GoogleMessage1) GetField12() bool { if x != nil && x.Field12 != nil { return *x.Field12 } return Default_GoogleMessage1_Field12 } func (x *GoogleMessage1) GetField17() bool { if x != nil && x.Field17 != nil { return *x.Field17 } return Default_GoogleMessage1_Field17 } func (x *GoogleMessage1) GetField13() bool { if x != nil && x.Field13 != nil { return *x.Field13 } return Default_GoogleMessage1_Field13 } func (x *GoogleMessage1) GetField14() bool { if x != nil && x.Field14 != nil { return *x.Field14 } return Default_GoogleMessage1_Field14 } func (x *GoogleMessage1) GetField104() int32 { if x != nil && x.Field104 != nil { return *x.Field104 } return Default_GoogleMessage1_Field104 } func (x *GoogleMessage1) GetField100() int32 { if x != nil && x.Field100 != nil { return *x.Field100 } return Default_GoogleMessage1_Field100 } func (x *GoogleMessage1) GetField101() int32 { if x != nil && x.Field101 != nil { return *x.Field101 } return Default_GoogleMessage1_Field101 } func (x *GoogleMessage1) GetField102() string { if x != nil && x.Field102 != nil { return *x.Field102 } return "" } func (x *GoogleMessage1) GetField103() string { if x != nil && x.Field103 != nil { return *x.Field103 } return "" } func (x *GoogleMessage1) GetField29() int32 { if x != nil && x.Field29 != nil { return *x.Field29 } return Default_GoogleMessage1_Field29 } func (x *GoogleMessage1) GetField30() bool { if x != nil && x.Field30 != nil { return *x.Field30 } return Default_GoogleMessage1_Field30 } func (x *GoogleMessage1) GetField60() int32 { if x != nil && x.Field60 != nil { return *x.Field60 } return Default_GoogleMessage1_Field60 } func (x *GoogleMessage1) GetField271() int32 { if x != nil && x.Field271 != nil { return *x.Field271 } return Default_GoogleMessage1_Field271 } func (x *GoogleMessage1) GetField272() int32 { if x != nil && x.Field272 != nil { return *x.Field272 } return Default_GoogleMessage1_Field272 } func (x *GoogleMessage1) GetField150() int32 { if x != nil && x.Field150 != nil { return *x.Field150 } return 0 } func (x *GoogleMessage1) GetField23() int32 { if x != nil && x.Field23 != nil { return *x.Field23 } return Default_GoogleMessage1_Field23 } func (x *GoogleMessage1) GetField24() bool { if x != nil && x.Field24 != nil { return *x.Field24 } return Default_GoogleMessage1_Field24 } func (x *GoogleMessage1) GetField25() int32 { if x != nil && x.Field25 != nil { return *x.Field25 } return Default_GoogleMessage1_Field25 } func (x *GoogleMessage1) GetField15() *GoogleMessage1SubMessage { if x != nil { return x.Field15 } return nil } func (x *GoogleMessage1) GetField78() bool { if x != nil && x.Field78 != nil { return *x.Field78 } return false } func (x *GoogleMessage1) GetField67() int32 { if x != nil && x.Field67 != nil { return *x.Field67 } return Default_GoogleMessage1_Field67 } func (x *GoogleMessage1) GetField68() int32 { if x != nil && x.Field68 != nil { return *x.Field68 } return 0 } func (x *GoogleMessage1) GetField128() int32 { if x != nil && x.Field128 != nil { return *x.Field128 } return Default_GoogleMessage1_Field128 } func (x *GoogleMessage1) GetField129() string { if x != nil && x.Field129 != nil { return *x.Field129 } return Default_GoogleMessage1_Field129 } func (x *GoogleMessage1) GetField131() int32 { if x != nil && x.Field131 != nil { return *x.Field131 } return Default_GoogleMessage1_Field131 } type GoogleMessage1SubMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field1 *int32 `protobuf:"varint,1,opt,name=field1,def=0" json:"field1,omitempty"` Field2 *int32 `protobuf:"varint,2,opt,name=field2,def=0" json:"field2,omitempty"` Field3 *int32 `protobuf:"varint,3,opt,name=field3,def=0" json:"field3,omitempty"` Field15 *string `protobuf:"bytes,15,opt,name=field15" json:"field15,omitempty"` Field12 *bool `protobuf:"varint,12,opt,name=field12,def=1" json:"field12,omitempty"` Field13 *int64 `protobuf:"varint,13,opt,name=field13" json:"field13,omitempty"` Field14 *int64 `protobuf:"varint,14,opt,name=field14" json:"field14,omitempty"` Field16 *int32 `protobuf:"varint,16,opt,name=field16" json:"field16,omitempty"` Field19 *int32 `protobuf:"varint,19,opt,name=field19,def=2" json:"field19,omitempty"` Field20 *bool `protobuf:"varint,20,opt,name=field20,def=1" json:"field20,omitempty"` Field28 *bool `protobuf:"varint,28,opt,name=field28,def=1" json:"field28,omitempty"` Field21 *uint64 `protobuf:"fixed64,21,opt,name=field21" json:"field21,omitempty"` Field22 *int32 `protobuf:"varint,22,opt,name=field22" json:"field22,omitempty"` Field23 *bool `protobuf:"varint,23,opt,name=field23,def=0" json:"field23,omitempty"` Field206 *bool `protobuf:"varint,206,opt,name=field206,def=0" json:"field206,omitempty"` Field203 *uint32 `protobuf:"fixed32,203,opt,name=field203" json:"field203,omitempty"` Field204 *int32 `protobuf:"varint,204,opt,name=field204" json:"field204,omitempty"` Field205 *string `protobuf:"bytes,205,opt,name=field205" json:"field205,omitempty"` Field207 *uint64 `protobuf:"varint,207,opt,name=field207" json:"field207,omitempty"` Field300 *uint64 `protobuf:"varint,300,opt,name=field300" json:"field300,omitempty"` } // Default values for GoogleMessage1SubMessage fields. const ( Default_GoogleMessage1SubMessage_Field1 = int32(0) Default_GoogleMessage1SubMessage_Field2 = int32(0) Default_GoogleMessage1SubMessage_Field3 = int32(0) Default_GoogleMessage1SubMessage_Field12 = bool(true) Default_GoogleMessage1SubMessage_Field19 = int32(2) Default_GoogleMessage1SubMessage_Field20 = bool(true) Default_GoogleMessage1SubMessage_Field28 = bool(true) Default_GoogleMessage1SubMessage_Field23 = bool(false) Default_GoogleMessage1SubMessage_Field206 = bool(false) ) func (x *GoogleMessage1SubMessage) Reset() { *x = GoogleMessage1SubMessage{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GoogleMessage1SubMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*GoogleMessage1SubMessage) ProtoMessage() {} func (x *GoogleMessage1SubMessage) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GoogleMessage1SubMessage.ProtoReflect.Descriptor instead. func (*GoogleMessage1SubMessage) Descriptor() ([]byte, []int) { return file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_rawDescGZIP(), []int{1} } func (x *GoogleMessage1SubMessage) GetField1() int32 { if x != nil && x.Field1 != nil { return *x.Field1 } return Default_GoogleMessage1SubMessage_Field1 } func (x *GoogleMessage1SubMessage) GetField2() int32 { if x != nil && x.Field2 != nil { return *x.Field2 } return Default_GoogleMessage1SubMessage_Field2 } func (x *GoogleMessage1SubMessage) GetField3() int32 { if x != nil && x.Field3 != nil { return *x.Field3 } return Default_GoogleMessage1SubMessage_Field3 } func (x *GoogleMessage1SubMessage) GetField15() string { if x != nil && x.Field15 != nil { return *x.Field15 } return "" } func (x *GoogleMessage1SubMessage) GetField12() bool { if x != nil && x.Field12 != nil { return *x.Field12 } return Default_GoogleMessage1SubMessage_Field12 } func (x *GoogleMessage1SubMessage) GetField13() int64 { if x != nil && x.Field13 != nil { return *x.Field13 } return 0 } func (x *GoogleMessage1SubMessage) GetField14() int64 { if x != nil && x.Field14 != nil { return *x.Field14 } return 0 } func (x *GoogleMessage1SubMessage) GetField16() int32 { if x != nil && x.Field16 != nil { return *x.Field16 } return 0 } func (x *GoogleMessage1SubMessage) GetField19() int32 { if x != nil && x.Field19 != nil { return *x.Field19 } return Default_GoogleMessage1SubMessage_Field19 } func (x *GoogleMessage1SubMessage) GetField20() bool { if x != nil && x.Field20 != nil { return *x.Field20 } return Default_GoogleMessage1SubMessage_Field20 } func (x *GoogleMessage1SubMessage) GetField28() bool { if x != nil && x.Field28 != nil { return *x.Field28 } return Default_GoogleMessage1SubMessage_Field28 } func (x *GoogleMessage1SubMessage) GetField21() uint64 { if x != nil && x.Field21 != nil { return *x.Field21 } return 0 } func (x *GoogleMessage1SubMessage) GetField22() int32 { if x != nil && x.Field22 != nil { return *x.Field22 } return 0 } func (x *GoogleMessage1SubMessage) GetField23() bool { if x != nil && x.Field23 != nil { return *x.Field23 } return Default_GoogleMessage1SubMessage_Field23 } func (x *GoogleMessage1SubMessage) GetField206() bool { if x != nil && x.Field206 != nil { return *x.Field206 } return Default_GoogleMessage1SubMessage_Field206 } func (x *GoogleMessage1SubMessage) GetField203() uint32 { if x != nil && x.Field203 != nil { return *x.Field203 } return 0 } func (x *GoogleMessage1SubMessage) GetField204() int32 { if x != nil && x.Field204 != nil { return *x.Field204 } return 0 } func (x *GoogleMessage1SubMessage) GetField205() string { if x != nil && x.Field205 != nil { return *x.Field205 } return "" } func (x *GoogleMessage1SubMessage) GetField207() uint64 { if x != nil && x.Field207 != nil { return *x.Field207 } return 0 } func (x *GoogleMessage1SubMessage) GetField300() uint64 { if x != nil && x.Field300 != nil { return *x.Field300 } return 0 } var File_datasets_google_message1_proto2_benchmark_message1_proto2_proto protoreflect.FileDescriptor var file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_rawDesc = []byte{ 0x0a, 0x3f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x22, 0xf7, 0x09, 0x0a, 0x0e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x12, 0x1f, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x18, 0x50, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x12, 0x1e, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x18, 0x51, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x18, 0x02, 0x20, 0x02, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x18, 0x03, 0x20, 0x02, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x38, 0x30, 0x18, 0x98, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x38, 0x30, 0x12, 0x19, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x18, 0x05, 0x20, 0x03, 0x28, 0x06, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x12, 0x1f, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x12, 0x1e, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x18, 0x82, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x12, 0x1e, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x12, 0x1e, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x12, 0x1e, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x12, 0x1e, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x34, 0x12, 0x1d, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x18, 0x68, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x12, 0x1d, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x30, 0x18, 0x64, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x30, 0x12, 0x1d, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x31, 0x18, 0x65, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x18, 0x66, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x18, 0x67, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x12, 0x1b, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x39, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x39, 0x12, 0x1f, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x30, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x30, 0x12, 0x1c, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x12, 0x1f, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x31, 0x18, 0x8f, 0x02, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x31, 0x12, 0x1f, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x32, 0x18, 0x90, 0x02, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x32, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x35, 0x30, 0x18, 0x96, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x35, 0x30, 0x12, 0x1b, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x12, 0x1f, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x12, 0x1b, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x35, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x35, 0x12, 0x45, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x35, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x53, 0x75, 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x35, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x12, 0x1b, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x18, 0x43, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x38, 0x18, 0x44, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x38, 0x12, 0x1e, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x18, 0x80, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x12, 0x32, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x18, 0x81, 0x01, 0x20, 0x01, 0x28, 0x09, 0x3a, 0x15, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x12, 0x1e, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x18, 0x83, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x22, 0xda, 0x04, 0x0a, 0x18, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x53, 0x75, 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x12, 0x19, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x12, 0x19, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x35, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x35, 0x12, 0x1e, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x34, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x12, 0x1b, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x39, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x32, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x39, 0x12, 0x1e, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x12, 0x1e, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x38, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x38, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x31, 0x18, 0x15, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x12, 0x1f, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x12, 0x22, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x36, 0x18, 0xce, 0x01, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x36, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x33, 0x18, 0xcb, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x33, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x34, 0x18, 0xcc, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x34, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x35, 0x18, 0xcd, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x35, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x37, 0x18, 0xcf, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x37, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x30, 0x30, 0x18, 0xac, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x30, 0x30, 0x42, 0x25, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x48, 0x01, 0xf8, 0x01, 0x01, } var ( file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_rawDescOnce sync.Once file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_rawDescData = file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_rawDesc ) func file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_rawDescGZIP() []byte { file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_rawDescOnce.Do(func() { file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_rawDescData = protoimpl.X.CompressGZIP(file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_rawDescData) }) return file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_rawDescData } var file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_msgTypes = make([]protoimpl.MessageInfo, 2) var file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_goTypes = []interface{}{ (*GoogleMessage1)(nil), // 0: benchmarks.proto2.GoogleMessage1 (*GoogleMessage1SubMessage)(nil), // 1: benchmarks.proto2.GoogleMessage1SubMessage } var file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_depIdxs = []int32{ 1, // 0: benchmarks.proto2.GoogleMessage1.field15:type_name -> benchmarks.proto2.GoogleMessage1SubMessage 1, // [1:1] is the sub-list for method output_type 1, // [1:1] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name 1, // [1:1] is the sub-list for extension extendee 0, // [0:1] is the sub-list for field type_name } func init() { file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_init() } func file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_init() { if File_datasets_google_message1_proto2_benchmark_message1_proto2_proto != nil { return } if !protoimpl.UnsafeEnabled { file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GoogleMessage1); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GoogleMessage1SubMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_rawDesc, NumEnums: 0, NumMessages: 2, NumExtensions: 0, NumServices: 0, }, GoTypes: file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_goTypes, DependencyIndexes: file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_depIdxs, MessageInfos: file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_msgTypes, }.Build() File_datasets_google_message1_proto2_benchmark_message1_proto2_proto = out.File file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_rawDesc = nil file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_goTypes = nil file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/datasets/google_message1/proto3/000077500000000000000000000000001411250152500324335ustar00rootroot00000000000000benchmark_message1_proto3.pb.go000066400000000000000000000755031411250152500403420ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/datasets/google_message1/proto3// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Benchmark messages for proto3. // Code generated by protoc-gen-go. DO NOT EDIT. // source: datasets/google_message1/proto3/benchmark_message1_proto3.proto package proto3 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type GoogleMessage1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field1 string `protobuf:"bytes,1,opt,name=field1,proto3" json:"field1,omitempty"` Field9 string `protobuf:"bytes,9,opt,name=field9,proto3" json:"field9,omitempty"` Field18 string `protobuf:"bytes,18,opt,name=field18,proto3" json:"field18,omitempty"` Field80 bool `protobuf:"varint,80,opt,name=field80,proto3" json:"field80,omitempty"` Field81 bool `protobuf:"varint,81,opt,name=field81,proto3" json:"field81,omitempty"` Field2 int32 `protobuf:"varint,2,opt,name=field2,proto3" json:"field2,omitempty"` Field3 int32 `protobuf:"varint,3,opt,name=field3,proto3" json:"field3,omitempty"` Field280 int32 `protobuf:"varint,280,opt,name=field280,proto3" json:"field280,omitempty"` Field6 int32 `protobuf:"varint,6,opt,name=field6,proto3" json:"field6,omitempty"` Field22 int64 `protobuf:"varint,22,opt,name=field22,proto3" json:"field22,omitempty"` Field4 string `protobuf:"bytes,4,opt,name=field4,proto3" json:"field4,omitempty"` Field5 []uint64 `protobuf:"fixed64,5,rep,packed,name=field5,proto3" json:"field5,omitempty"` Field59 bool `protobuf:"varint,59,opt,name=field59,proto3" json:"field59,omitempty"` Field7 string `protobuf:"bytes,7,opt,name=field7,proto3" json:"field7,omitempty"` Field16 int32 `protobuf:"varint,16,opt,name=field16,proto3" json:"field16,omitempty"` Field130 int32 `protobuf:"varint,130,opt,name=field130,proto3" json:"field130,omitempty"` Field12 bool `protobuf:"varint,12,opt,name=field12,proto3" json:"field12,omitempty"` Field17 bool `protobuf:"varint,17,opt,name=field17,proto3" json:"field17,omitempty"` Field13 bool `protobuf:"varint,13,opt,name=field13,proto3" json:"field13,omitempty"` Field14 bool `protobuf:"varint,14,opt,name=field14,proto3" json:"field14,omitempty"` Field104 int32 `protobuf:"varint,104,opt,name=field104,proto3" json:"field104,omitempty"` Field100 int32 `protobuf:"varint,100,opt,name=field100,proto3" json:"field100,omitempty"` Field101 int32 `protobuf:"varint,101,opt,name=field101,proto3" json:"field101,omitempty"` Field102 string `protobuf:"bytes,102,opt,name=field102,proto3" json:"field102,omitempty"` Field103 string `protobuf:"bytes,103,opt,name=field103,proto3" json:"field103,omitempty"` Field29 int32 `protobuf:"varint,29,opt,name=field29,proto3" json:"field29,omitempty"` Field30 bool `protobuf:"varint,30,opt,name=field30,proto3" json:"field30,omitempty"` Field60 int32 `protobuf:"varint,60,opt,name=field60,proto3" json:"field60,omitempty"` Field271 int32 `protobuf:"varint,271,opt,name=field271,proto3" json:"field271,omitempty"` Field272 int32 `protobuf:"varint,272,opt,name=field272,proto3" json:"field272,omitempty"` Field150 int32 `protobuf:"varint,150,opt,name=field150,proto3" json:"field150,omitempty"` Field23 int32 `protobuf:"varint,23,opt,name=field23,proto3" json:"field23,omitempty"` Field24 bool `protobuf:"varint,24,opt,name=field24,proto3" json:"field24,omitempty"` Field25 int32 `protobuf:"varint,25,opt,name=field25,proto3" json:"field25,omitempty"` Field15 *GoogleMessage1SubMessage `protobuf:"bytes,15,opt,name=field15,proto3" json:"field15,omitempty"` Field78 bool `protobuf:"varint,78,opt,name=field78,proto3" json:"field78,omitempty"` Field67 int32 `protobuf:"varint,67,opt,name=field67,proto3" json:"field67,omitempty"` Field68 int32 `protobuf:"varint,68,opt,name=field68,proto3" json:"field68,omitempty"` Field128 int32 `protobuf:"varint,128,opt,name=field128,proto3" json:"field128,omitempty"` Field129 string `protobuf:"bytes,129,opt,name=field129,proto3" json:"field129,omitempty"` Field131 int32 `protobuf:"varint,131,opt,name=field131,proto3" json:"field131,omitempty"` } func (x *GoogleMessage1) Reset() { *x = GoogleMessage1{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GoogleMessage1) String() string { return protoimpl.X.MessageStringOf(x) } func (*GoogleMessage1) ProtoMessage() {} func (x *GoogleMessage1) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GoogleMessage1.ProtoReflect.Descriptor instead. func (*GoogleMessage1) Descriptor() ([]byte, []int) { return file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_rawDescGZIP(), []int{0} } func (x *GoogleMessage1) GetField1() string { if x != nil { return x.Field1 } return "" } func (x *GoogleMessage1) GetField9() string { if x != nil { return x.Field9 } return "" } func (x *GoogleMessage1) GetField18() string { if x != nil { return x.Field18 } return "" } func (x *GoogleMessage1) GetField80() bool { if x != nil { return x.Field80 } return false } func (x *GoogleMessage1) GetField81() bool { if x != nil { return x.Field81 } return false } func (x *GoogleMessage1) GetField2() int32 { if x != nil { return x.Field2 } return 0 } func (x *GoogleMessage1) GetField3() int32 { if x != nil { return x.Field3 } return 0 } func (x *GoogleMessage1) GetField280() int32 { if x != nil { return x.Field280 } return 0 } func (x *GoogleMessage1) GetField6() int32 { if x != nil { return x.Field6 } return 0 } func (x *GoogleMessage1) GetField22() int64 { if x != nil { return x.Field22 } return 0 } func (x *GoogleMessage1) GetField4() string { if x != nil { return x.Field4 } return "" } func (x *GoogleMessage1) GetField5() []uint64 { if x != nil { return x.Field5 } return nil } func (x *GoogleMessage1) GetField59() bool { if x != nil { return x.Field59 } return false } func (x *GoogleMessage1) GetField7() string { if x != nil { return x.Field7 } return "" } func (x *GoogleMessage1) GetField16() int32 { if x != nil { return x.Field16 } return 0 } func (x *GoogleMessage1) GetField130() int32 { if x != nil { return x.Field130 } return 0 } func (x *GoogleMessage1) GetField12() bool { if x != nil { return x.Field12 } return false } func (x *GoogleMessage1) GetField17() bool { if x != nil { return x.Field17 } return false } func (x *GoogleMessage1) GetField13() bool { if x != nil { return x.Field13 } return false } func (x *GoogleMessage1) GetField14() bool { if x != nil { return x.Field14 } return false } func (x *GoogleMessage1) GetField104() int32 { if x != nil { return x.Field104 } return 0 } func (x *GoogleMessage1) GetField100() int32 { if x != nil { return x.Field100 } return 0 } func (x *GoogleMessage1) GetField101() int32 { if x != nil { return x.Field101 } return 0 } func (x *GoogleMessage1) GetField102() string { if x != nil { return x.Field102 } return "" } func (x *GoogleMessage1) GetField103() string { if x != nil { return x.Field103 } return "" } func (x *GoogleMessage1) GetField29() int32 { if x != nil { return x.Field29 } return 0 } func (x *GoogleMessage1) GetField30() bool { if x != nil { return x.Field30 } return false } func (x *GoogleMessage1) GetField60() int32 { if x != nil { return x.Field60 } return 0 } func (x *GoogleMessage1) GetField271() int32 { if x != nil { return x.Field271 } return 0 } func (x *GoogleMessage1) GetField272() int32 { if x != nil { return x.Field272 } return 0 } func (x *GoogleMessage1) GetField150() int32 { if x != nil { return x.Field150 } return 0 } func (x *GoogleMessage1) GetField23() int32 { if x != nil { return x.Field23 } return 0 } func (x *GoogleMessage1) GetField24() bool { if x != nil { return x.Field24 } return false } func (x *GoogleMessage1) GetField25() int32 { if x != nil { return x.Field25 } return 0 } func (x *GoogleMessage1) GetField15() *GoogleMessage1SubMessage { if x != nil { return x.Field15 } return nil } func (x *GoogleMessage1) GetField78() bool { if x != nil { return x.Field78 } return false } func (x *GoogleMessage1) GetField67() int32 { if x != nil { return x.Field67 } return 0 } func (x *GoogleMessage1) GetField68() int32 { if x != nil { return x.Field68 } return 0 } func (x *GoogleMessage1) GetField128() int32 { if x != nil { return x.Field128 } return 0 } func (x *GoogleMessage1) GetField129() string { if x != nil { return x.Field129 } return "" } func (x *GoogleMessage1) GetField131() int32 { if x != nil { return x.Field131 } return 0 } type GoogleMessage1SubMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field1 int32 `protobuf:"varint,1,opt,name=field1,proto3" json:"field1,omitempty"` Field2 int32 `protobuf:"varint,2,opt,name=field2,proto3" json:"field2,omitempty"` Field3 int32 `protobuf:"varint,3,opt,name=field3,proto3" json:"field3,omitempty"` Field15 string `protobuf:"bytes,15,opt,name=field15,proto3" json:"field15,omitempty"` Field12 bool `protobuf:"varint,12,opt,name=field12,proto3" json:"field12,omitempty"` Field13 int64 `protobuf:"varint,13,opt,name=field13,proto3" json:"field13,omitempty"` Field14 int64 `protobuf:"varint,14,opt,name=field14,proto3" json:"field14,omitempty"` Field16 int32 `protobuf:"varint,16,opt,name=field16,proto3" json:"field16,omitempty"` Field19 int32 `protobuf:"varint,19,opt,name=field19,proto3" json:"field19,omitempty"` Field20 bool `protobuf:"varint,20,opt,name=field20,proto3" json:"field20,omitempty"` Field28 bool `protobuf:"varint,28,opt,name=field28,proto3" json:"field28,omitempty"` Field21 uint64 `protobuf:"fixed64,21,opt,name=field21,proto3" json:"field21,omitempty"` Field22 int32 `protobuf:"varint,22,opt,name=field22,proto3" json:"field22,omitempty"` Field23 bool `protobuf:"varint,23,opt,name=field23,proto3" json:"field23,omitempty"` Field206 bool `protobuf:"varint,206,opt,name=field206,proto3" json:"field206,omitempty"` Field203 uint32 `protobuf:"fixed32,203,opt,name=field203,proto3" json:"field203,omitempty"` Field204 int32 `protobuf:"varint,204,opt,name=field204,proto3" json:"field204,omitempty"` Field205 string `protobuf:"bytes,205,opt,name=field205,proto3" json:"field205,omitempty"` Field207 uint64 `protobuf:"varint,207,opt,name=field207,proto3" json:"field207,omitempty"` Field300 uint64 `protobuf:"varint,300,opt,name=field300,proto3" json:"field300,omitempty"` } func (x *GoogleMessage1SubMessage) Reset() { *x = GoogleMessage1SubMessage{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GoogleMessage1SubMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*GoogleMessage1SubMessage) ProtoMessage() {} func (x *GoogleMessage1SubMessage) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GoogleMessage1SubMessage.ProtoReflect.Descriptor instead. func (*GoogleMessage1SubMessage) Descriptor() ([]byte, []int) { return file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_rawDescGZIP(), []int{1} } func (x *GoogleMessage1SubMessage) GetField1() int32 { if x != nil { return x.Field1 } return 0 } func (x *GoogleMessage1SubMessage) GetField2() int32 { if x != nil { return x.Field2 } return 0 } func (x *GoogleMessage1SubMessage) GetField3() int32 { if x != nil { return x.Field3 } return 0 } func (x *GoogleMessage1SubMessage) GetField15() string { if x != nil { return x.Field15 } return "" } func (x *GoogleMessage1SubMessage) GetField12() bool { if x != nil { return x.Field12 } return false } func (x *GoogleMessage1SubMessage) GetField13() int64 { if x != nil { return x.Field13 } return 0 } func (x *GoogleMessage1SubMessage) GetField14() int64 { if x != nil { return x.Field14 } return 0 } func (x *GoogleMessage1SubMessage) GetField16() int32 { if x != nil { return x.Field16 } return 0 } func (x *GoogleMessage1SubMessage) GetField19() int32 { if x != nil { return x.Field19 } return 0 } func (x *GoogleMessage1SubMessage) GetField20() bool { if x != nil { return x.Field20 } return false } func (x *GoogleMessage1SubMessage) GetField28() bool { if x != nil { return x.Field28 } return false } func (x *GoogleMessage1SubMessage) GetField21() uint64 { if x != nil { return x.Field21 } return 0 } func (x *GoogleMessage1SubMessage) GetField22() int32 { if x != nil { return x.Field22 } return 0 } func (x *GoogleMessage1SubMessage) GetField23() bool { if x != nil { return x.Field23 } return false } func (x *GoogleMessage1SubMessage) GetField206() bool { if x != nil { return x.Field206 } return false } func (x *GoogleMessage1SubMessage) GetField203() uint32 { if x != nil { return x.Field203 } return 0 } func (x *GoogleMessage1SubMessage) GetField204() int32 { if x != nil { return x.Field204 } return 0 } func (x *GoogleMessage1SubMessage) GetField205() string { if x != nil { return x.Field205 } return "" } func (x *GoogleMessage1SubMessage) GetField207() uint64 { if x != nil { return x.Field207 } return 0 } func (x *GoogleMessage1SubMessage) GetField300() uint64 { if x != nil { return x.Field300 } return 0 } var File_datasets_google_message1_proto3_benchmark_message1_proto3_proto protoreflect.FileDescriptor var file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_rawDesc = []byte{ 0x0a, 0x3f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x22, 0xf9, 0x08, 0x0a, 0x0e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x18, 0x50, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x18, 0x51, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x38, 0x30, 0x18, 0x98, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x38, 0x30, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x18, 0x05, 0x20, 0x03, 0x28, 0x06, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x18, 0x82, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x18, 0x68, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x30, 0x18, 0x64, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x31, 0x18, 0x65, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x18, 0x66, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x18, 0x67, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x39, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x39, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x30, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x30, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x31, 0x18, 0x8f, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x31, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x32, 0x18, 0x90, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x32, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x35, 0x30, 0x18, 0x96, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x35, 0x30, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x35, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x35, 0x12, 0x45, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x35, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x53, 0x75, 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x35, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x18, 0x43, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x38, 0x18, 0x44, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x38, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x18, 0x80, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x18, 0x81, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x18, 0x83, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x22, 0xae, 0x04, 0x0a, 0x18, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x53, 0x75, 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x35, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x35, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x34, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x39, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x39, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x38, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x38, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x31, 0x18, 0x15, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x36, 0x18, 0xce, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x36, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x33, 0x18, 0xcb, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x33, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x34, 0x18, 0xcc, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x34, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x35, 0x18, 0xcd, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x35, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x37, 0x18, 0xcf, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x37, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x30, 0x30, 0x18, 0xac, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x30, 0x30, 0x42, 0x25, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x48, 0x01, 0xf8, 0x01, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_rawDescOnce sync.Once file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_rawDescData = file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_rawDesc ) func file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_rawDescGZIP() []byte { file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_rawDescOnce.Do(func() { file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_rawDescData = protoimpl.X.CompressGZIP(file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_rawDescData) }) return file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_rawDescData } var file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_msgTypes = make([]protoimpl.MessageInfo, 2) var file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_goTypes = []interface{}{ (*GoogleMessage1)(nil), // 0: benchmarks.proto3.GoogleMessage1 (*GoogleMessage1SubMessage)(nil), // 1: benchmarks.proto3.GoogleMessage1SubMessage } var file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_depIdxs = []int32{ 1, // 0: benchmarks.proto3.GoogleMessage1.field15:type_name -> benchmarks.proto3.GoogleMessage1SubMessage 1, // [1:1] is the sub-list for method output_type 1, // [1:1] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name 1, // [1:1] is the sub-list for extension extendee 0, // [0:1] is the sub-list for field type_name } func init() { file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_init() } func file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_init() { if File_datasets_google_message1_proto3_benchmark_message1_proto3_proto != nil { return } if !protoimpl.UnsafeEnabled { file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GoogleMessage1); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GoogleMessage1SubMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_rawDesc, NumEnums: 0, NumMessages: 2, NumExtensions: 0, NumServices: 0, }, GoTypes: file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_goTypes, DependencyIndexes: file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_depIdxs, MessageInfos: file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_msgTypes, }.Build() File_datasets_google_message1_proto3_benchmark_message1_proto3_proto = out.File file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_rawDesc = nil file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_goTypes = nil file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/datasets/google_message2/000077500000000000000000000000001411250152500312065ustar00rootroot00000000000000benchmark_message2.pb.go000066400000000000000000001036101411250152500355770ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/datasets/google_message2// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // LINT: ALLOW_GROUPS // Benchmark messages for proto2. // Code generated by protoc-gen-go. DO NOT EDIT. // source: datasets/google_message2/benchmark_message2.proto package google_message2 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type GoogleMessage2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field1 *string `protobuf:"bytes,1,opt,name=field1" json:"field1,omitempty"` Field3 *int64 `protobuf:"varint,3,opt,name=field3" json:"field3,omitempty"` Field4 *int64 `protobuf:"varint,4,opt,name=field4" json:"field4,omitempty"` Field30 *int64 `protobuf:"varint,30,opt,name=field30" json:"field30,omitempty"` Field75 *bool `protobuf:"varint,75,opt,name=field75,def=0" json:"field75,omitempty"` Field6 *string `protobuf:"bytes,6,opt,name=field6" json:"field6,omitempty"` Field2 []byte `protobuf:"bytes,2,opt,name=field2" json:"field2,omitempty"` Field21 *int32 `protobuf:"varint,21,opt,name=field21,def=0" json:"field21,omitempty"` Field71 *int32 `protobuf:"varint,71,opt,name=field71" json:"field71,omitempty"` Field25 *float32 `protobuf:"fixed32,25,opt,name=field25" json:"field25,omitempty"` Field109 *int32 `protobuf:"varint,109,opt,name=field109,def=0" json:"field109,omitempty"` Field210 *int32 `protobuf:"varint,210,opt,name=field210,def=0" json:"field210,omitempty"` Field211 *int32 `protobuf:"varint,211,opt,name=field211,def=0" json:"field211,omitempty"` Field212 *int32 `protobuf:"varint,212,opt,name=field212,def=0" json:"field212,omitempty"` Field213 *int32 `protobuf:"varint,213,opt,name=field213,def=0" json:"field213,omitempty"` Field216 *int32 `protobuf:"varint,216,opt,name=field216,def=0" json:"field216,omitempty"` Field217 *int32 `protobuf:"varint,217,opt,name=field217,def=0" json:"field217,omitempty"` Field218 *int32 `protobuf:"varint,218,opt,name=field218,def=0" json:"field218,omitempty"` Field220 *int32 `protobuf:"varint,220,opt,name=field220,def=0" json:"field220,omitempty"` Field221 *int32 `protobuf:"varint,221,opt,name=field221,def=0" json:"field221,omitempty"` Field222 *float32 `protobuf:"fixed32,222,opt,name=field222,def=0" json:"field222,omitempty"` Field63 *int32 `protobuf:"varint,63,opt,name=field63" json:"field63,omitempty"` Group1 []*GoogleMessage2_Group1 `protobuf:"group,10,rep,name=Group1,json=group1" json:"group1,omitempty"` Field128 []string `protobuf:"bytes,128,rep,name=field128" json:"field128,omitempty"` Field131 *int64 `protobuf:"varint,131,opt,name=field131" json:"field131,omitempty"` Field127 []string `protobuf:"bytes,127,rep,name=field127" json:"field127,omitempty"` Field129 *int32 `protobuf:"varint,129,opt,name=field129" json:"field129,omitempty"` Field130 []int64 `protobuf:"varint,130,rep,name=field130" json:"field130,omitempty"` Field205 *bool `protobuf:"varint,205,opt,name=field205,def=0" json:"field205,omitempty"` Field206 *bool `protobuf:"varint,206,opt,name=field206,def=0" json:"field206,omitempty"` } // Default values for GoogleMessage2 fields. const ( Default_GoogleMessage2_Field75 = bool(false) Default_GoogleMessage2_Field21 = int32(0) Default_GoogleMessage2_Field109 = int32(0) Default_GoogleMessage2_Field210 = int32(0) Default_GoogleMessage2_Field211 = int32(0) Default_GoogleMessage2_Field212 = int32(0) Default_GoogleMessage2_Field213 = int32(0) Default_GoogleMessage2_Field216 = int32(0) Default_GoogleMessage2_Field217 = int32(0) Default_GoogleMessage2_Field218 = int32(0) Default_GoogleMessage2_Field220 = int32(0) Default_GoogleMessage2_Field221 = int32(0) Default_GoogleMessage2_Field222 = float32(0) Default_GoogleMessage2_Field205 = bool(false) Default_GoogleMessage2_Field206 = bool(false) ) func (x *GoogleMessage2) Reset() { *x = GoogleMessage2{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message2_benchmark_message2_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GoogleMessage2) String() string { return protoimpl.X.MessageStringOf(x) } func (*GoogleMessage2) ProtoMessage() {} func (x *GoogleMessage2) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message2_benchmark_message2_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GoogleMessage2.ProtoReflect.Descriptor instead. func (*GoogleMessage2) Descriptor() ([]byte, []int) { return file_datasets_google_message2_benchmark_message2_proto_rawDescGZIP(), []int{0} } func (x *GoogleMessage2) GetField1() string { if x != nil && x.Field1 != nil { return *x.Field1 } return "" } func (x *GoogleMessage2) GetField3() int64 { if x != nil && x.Field3 != nil { return *x.Field3 } return 0 } func (x *GoogleMessage2) GetField4() int64 { if x != nil && x.Field4 != nil { return *x.Field4 } return 0 } func (x *GoogleMessage2) GetField30() int64 { if x != nil && x.Field30 != nil { return *x.Field30 } return 0 } func (x *GoogleMessage2) GetField75() bool { if x != nil && x.Field75 != nil { return *x.Field75 } return Default_GoogleMessage2_Field75 } func (x *GoogleMessage2) GetField6() string { if x != nil && x.Field6 != nil { return *x.Field6 } return "" } func (x *GoogleMessage2) GetField2() []byte { if x != nil { return x.Field2 } return nil } func (x *GoogleMessage2) GetField21() int32 { if x != nil && x.Field21 != nil { return *x.Field21 } return Default_GoogleMessage2_Field21 } func (x *GoogleMessage2) GetField71() int32 { if x != nil && x.Field71 != nil { return *x.Field71 } return 0 } func (x *GoogleMessage2) GetField25() float32 { if x != nil && x.Field25 != nil { return *x.Field25 } return 0 } func (x *GoogleMessage2) GetField109() int32 { if x != nil && x.Field109 != nil { return *x.Field109 } return Default_GoogleMessage2_Field109 } func (x *GoogleMessage2) GetField210() int32 { if x != nil && x.Field210 != nil { return *x.Field210 } return Default_GoogleMessage2_Field210 } func (x *GoogleMessage2) GetField211() int32 { if x != nil && x.Field211 != nil { return *x.Field211 } return Default_GoogleMessage2_Field211 } func (x *GoogleMessage2) GetField212() int32 { if x != nil && x.Field212 != nil { return *x.Field212 } return Default_GoogleMessage2_Field212 } func (x *GoogleMessage2) GetField213() int32 { if x != nil && x.Field213 != nil { return *x.Field213 } return Default_GoogleMessage2_Field213 } func (x *GoogleMessage2) GetField216() int32 { if x != nil && x.Field216 != nil { return *x.Field216 } return Default_GoogleMessage2_Field216 } func (x *GoogleMessage2) GetField217() int32 { if x != nil && x.Field217 != nil { return *x.Field217 } return Default_GoogleMessage2_Field217 } func (x *GoogleMessage2) GetField218() int32 { if x != nil && x.Field218 != nil { return *x.Field218 } return Default_GoogleMessage2_Field218 } func (x *GoogleMessage2) GetField220() int32 { if x != nil && x.Field220 != nil { return *x.Field220 } return Default_GoogleMessage2_Field220 } func (x *GoogleMessage2) GetField221() int32 { if x != nil && x.Field221 != nil { return *x.Field221 } return Default_GoogleMessage2_Field221 } func (x *GoogleMessage2) GetField222() float32 { if x != nil && x.Field222 != nil { return *x.Field222 } return Default_GoogleMessage2_Field222 } func (x *GoogleMessage2) GetField63() int32 { if x != nil && x.Field63 != nil { return *x.Field63 } return 0 } func (x *GoogleMessage2) GetGroup1() []*GoogleMessage2_Group1 { if x != nil { return x.Group1 } return nil } func (x *GoogleMessage2) GetField128() []string { if x != nil { return x.Field128 } return nil } func (x *GoogleMessage2) GetField131() int64 { if x != nil && x.Field131 != nil { return *x.Field131 } return 0 } func (x *GoogleMessage2) GetField127() []string { if x != nil { return x.Field127 } return nil } func (x *GoogleMessage2) GetField129() int32 { if x != nil && x.Field129 != nil { return *x.Field129 } return 0 } func (x *GoogleMessage2) GetField130() []int64 { if x != nil { return x.Field130 } return nil } func (x *GoogleMessage2) GetField205() bool { if x != nil && x.Field205 != nil { return *x.Field205 } return Default_GoogleMessage2_Field205 } func (x *GoogleMessage2) GetField206() bool { if x != nil && x.Field206 != nil { return *x.Field206 } return Default_GoogleMessage2_Field206 } type GoogleMessage2GroupedMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field1 *float32 `protobuf:"fixed32,1,opt,name=field1" json:"field1,omitempty"` Field2 *float32 `protobuf:"fixed32,2,opt,name=field2" json:"field2,omitempty"` Field3 *float32 `protobuf:"fixed32,3,opt,name=field3,def=0" json:"field3,omitempty"` Field4 *bool `protobuf:"varint,4,opt,name=field4" json:"field4,omitempty"` Field5 *bool `protobuf:"varint,5,opt,name=field5" json:"field5,omitempty"` Field6 *bool `protobuf:"varint,6,opt,name=field6,def=1" json:"field6,omitempty"` Field7 *bool `protobuf:"varint,7,opt,name=field7,def=0" json:"field7,omitempty"` Field8 *float32 `protobuf:"fixed32,8,opt,name=field8" json:"field8,omitempty"` Field9 *bool `protobuf:"varint,9,opt,name=field9" json:"field9,omitempty"` Field10 *float32 `protobuf:"fixed32,10,opt,name=field10" json:"field10,omitempty"` Field11 *int64 `protobuf:"varint,11,opt,name=field11" json:"field11,omitempty"` } // Default values for GoogleMessage2GroupedMessage fields. const ( Default_GoogleMessage2GroupedMessage_Field3 = float32(0) Default_GoogleMessage2GroupedMessage_Field6 = bool(true) Default_GoogleMessage2GroupedMessage_Field7 = bool(false) ) func (x *GoogleMessage2GroupedMessage) Reset() { *x = GoogleMessage2GroupedMessage{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message2_benchmark_message2_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GoogleMessage2GroupedMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*GoogleMessage2GroupedMessage) ProtoMessage() {} func (x *GoogleMessage2GroupedMessage) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message2_benchmark_message2_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GoogleMessage2GroupedMessage.ProtoReflect.Descriptor instead. func (*GoogleMessage2GroupedMessage) Descriptor() ([]byte, []int) { return file_datasets_google_message2_benchmark_message2_proto_rawDescGZIP(), []int{1} } func (x *GoogleMessage2GroupedMessage) GetField1() float32 { if x != nil && x.Field1 != nil { return *x.Field1 } return 0 } func (x *GoogleMessage2GroupedMessage) GetField2() float32 { if x != nil && x.Field2 != nil { return *x.Field2 } return 0 } func (x *GoogleMessage2GroupedMessage) GetField3() float32 { if x != nil && x.Field3 != nil { return *x.Field3 } return Default_GoogleMessage2GroupedMessage_Field3 } func (x *GoogleMessage2GroupedMessage) GetField4() bool { if x != nil && x.Field4 != nil { return *x.Field4 } return false } func (x *GoogleMessage2GroupedMessage) GetField5() bool { if x != nil && x.Field5 != nil { return *x.Field5 } return false } func (x *GoogleMessage2GroupedMessage) GetField6() bool { if x != nil && x.Field6 != nil { return *x.Field6 } return Default_GoogleMessage2GroupedMessage_Field6 } func (x *GoogleMessage2GroupedMessage) GetField7() bool { if x != nil && x.Field7 != nil { return *x.Field7 } return Default_GoogleMessage2GroupedMessage_Field7 } func (x *GoogleMessage2GroupedMessage) GetField8() float32 { if x != nil && x.Field8 != nil { return *x.Field8 } return 0 } func (x *GoogleMessage2GroupedMessage) GetField9() bool { if x != nil && x.Field9 != nil { return *x.Field9 } return false } func (x *GoogleMessage2GroupedMessage) GetField10() float32 { if x != nil && x.Field10 != nil { return *x.Field10 } return 0 } func (x *GoogleMessage2GroupedMessage) GetField11() int64 { if x != nil && x.Field11 != nil { return *x.Field11 } return 0 } type GoogleMessage2_Group1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field11 *float32 `protobuf:"fixed32,11,req,name=field11" json:"field11,omitempty"` Field26 *float32 `protobuf:"fixed32,26,opt,name=field26" json:"field26,omitempty"` Field12 *string `protobuf:"bytes,12,opt,name=field12" json:"field12,omitempty"` Field13 *string `protobuf:"bytes,13,opt,name=field13" json:"field13,omitempty"` Field14 []string `protobuf:"bytes,14,rep,name=field14" json:"field14,omitempty"` Field15 *uint64 `protobuf:"varint,15,req,name=field15" json:"field15,omitempty"` Field5 *int32 `protobuf:"varint,5,opt,name=field5" json:"field5,omitempty"` Field27 *string `protobuf:"bytes,27,opt,name=field27" json:"field27,omitempty"` Field28 *int32 `protobuf:"varint,28,opt,name=field28" json:"field28,omitempty"` Field29 *string `protobuf:"bytes,29,opt,name=field29" json:"field29,omitempty"` Field16 *string `protobuf:"bytes,16,opt,name=field16" json:"field16,omitempty"` Field22 []string `protobuf:"bytes,22,rep,name=field22" json:"field22,omitempty"` Field73 []int32 `protobuf:"varint,73,rep,name=field73" json:"field73,omitempty"` Field20 *int32 `protobuf:"varint,20,opt,name=field20,def=0" json:"field20,omitempty"` Field24 *string `protobuf:"bytes,24,opt,name=field24" json:"field24,omitempty"` Field31 *GoogleMessage2GroupedMessage `protobuf:"bytes,31,opt,name=field31" json:"field31,omitempty"` } // Default values for GoogleMessage2_Group1 fields. const ( Default_GoogleMessage2_Group1_Field20 = int32(0) ) func (x *GoogleMessage2_Group1) Reset() { *x = GoogleMessage2_Group1{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message2_benchmark_message2_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GoogleMessage2_Group1) String() string { return protoimpl.X.MessageStringOf(x) } func (*GoogleMessage2_Group1) ProtoMessage() {} func (x *GoogleMessage2_Group1) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message2_benchmark_message2_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GoogleMessage2_Group1.ProtoReflect.Descriptor instead. func (*GoogleMessage2_Group1) Descriptor() ([]byte, []int) { return file_datasets_google_message2_benchmark_message2_proto_rawDescGZIP(), []int{0, 0} } func (x *GoogleMessage2_Group1) GetField11() float32 { if x != nil && x.Field11 != nil { return *x.Field11 } return 0 } func (x *GoogleMessage2_Group1) GetField26() float32 { if x != nil && x.Field26 != nil { return *x.Field26 } return 0 } func (x *GoogleMessage2_Group1) GetField12() string { if x != nil && x.Field12 != nil { return *x.Field12 } return "" } func (x *GoogleMessage2_Group1) GetField13() string { if x != nil && x.Field13 != nil { return *x.Field13 } return "" } func (x *GoogleMessage2_Group1) GetField14() []string { if x != nil { return x.Field14 } return nil } func (x *GoogleMessage2_Group1) GetField15() uint64 { if x != nil && x.Field15 != nil { return *x.Field15 } return 0 } func (x *GoogleMessage2_Group1) GetField5() int32 { if x != nil && x.Field5 != nil { return *x.Field5 } return 0 } func (x *GoogleMessage2_Group1) GetField27() string { if x != nil && x.Field27 != nil { return *x.Field27 } return "" } func (x *GoogleMessage2_Group1) GetField28() int32 { if x != nil && x.Field28 != nil { return *x.Field28 } return 0 } func (x *GoogleMessage2_Group1) GetField29() string { if x != nil && x.Field29 != nil { return *x.Field29 } return "" } func (x *GoogleMessage2_Group1) GetField16() string { if x != nil && x.Field16 != nil { return *x.Field16 } return "" } func (x *GoogleMessage2_Group1) GetField22() []string { if x != nil { return x.Field22 } return nil } func (x *GoogleMessage2_Group1) GetField73() []int32 { if x != nil { return x.Field73 } return nil } func (x *GoogleMessage2_Group1) GetField20() int32 { if x != nil && x.Field20 != nil { return *x.Field20 } return Default_GoogleMessage2_Group1_Field20 } func (x *GoogleMessage2_Group1) GetField24() string { if x != nil && x.Field24 != nil { return *x.Field24 } return "" } func (x *GoogleMessage2_Group1) GetField31() *GoogleMessage2GroupedMessage { if x != nil { return x.Field31 } return nil } var File_datasets_google_message2_benchmark_message2_proto protoreflect.FileDescriptor var file_datasets_google_message2_benchmark_message2_proto_rawDesc = []byte{ 0x0a, 0x31, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x22, 0x84, 0x0b, 0x0a, 0x0e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x30, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x30, 0x12, 0x1f, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x12, 0x1b, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x31, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x18, 0x47, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x35, 0x18, 0x19, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x35, 0x12, 0x1d, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x39, 0x18, 0x6d, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x39, 0x12, 0x1e, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x31, 0x30, 0x18, 0xd2, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x31, 0x30, 0x12, 0x1e, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x31, 0x31, 0x18, 0xd3, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x31, 0x31, 0x12, 0x1e, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x31, 0x32, 0x18, 0xd4, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x31, 0x32, 0x12, 0x1e, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x31, 0x33, 0x18, 0xd5, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x31, 0x33, 0x12, 0x1e, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x31, 0x36, 0x18, 0xd8, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x31, 0x36, 0x12, 0x1e, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x31, 0x37, 0x18, 0xd9, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x31, 0x37, 0x12, 0x1e, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x31, 0x38, 0x18, 0xda, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x31, 0x38, 0x12, 0x1e, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x30, 0x18, 0xdc, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x30, 0x12, 0x1e, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x31, 0x18, 0xdd, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x31, 0x12, 0x1e, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x32, 0x18, 0xde, 0x01, 0x20, 0x01, 0x28, 0x02, 0x3a, 0x01, 0x30, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x33, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x33, 0x12, 0x40, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x31, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x31, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x31, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x18, 0x80, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x18, 0x83, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x18, 0x7f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x18, 0x81, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x18, 0x82, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x12, 0x22, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x35, 0x18, 0xcd, 0x01, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x35, 0x12, 0x22, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x36, 0x18, 0xce, 0x01, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x36, 0x1a, 0xda, 0x03, 0x0a, 0x06, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x18, 0x0b, 0x20, 0x02, 0x28, 0x02, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x36, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x36, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x34, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x34, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x35, 0x18, 0x0f, 0x20, 0x02, 0x28, 0x04, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x35, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x38, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x38, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x39, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x39, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x18, 0x16, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x18, 0x49, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x12, 0x1b, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x12, 0x49, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x31, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x31, 0x22, 0xba, 0x02, 0x0a, 0x1c, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x12, 0x19, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x3a, 0x01, 0x30, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x12, 0x1c, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x12, 0x1d, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x42, 0x25, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x48, 0x01, 0xf8, 0x01, 0x01, } var ( file_datasets_google_message2_benchmark_message2_proto_rawDescOnce sync.Once file_datasets_google_message2_benchmark_message2_proto_rawDescData = file_datasets_google_message2_benchmark_message2_proto_rawDesc ) func file_datasets_google_message2_benchmark_message2_proto_rawDescGZIP() []byte { file_datasets_google_message2_benchmark_message2_proto_rawDescOnce.Do(func() { file_datasets_google_message2_benchmark_message2_proto_rawDescData = protoimpl.X.CompressGZIP(file_datasets_google_message2_benchmark_message2_proto_rawDescData) }) return file_datasets_google_message2_benchmark_message2_proto_rawDescData } var file_datasets_google_message2_benchmark_message2_proto_msgTypes = make([]protoimpl.MessageInfo, 3) var file_datasets_google_message2_benchmark_message2_proto_goTypes = []interface{}{ (*GoogleMessage2)(nil), // 0: benchmarks.proto2.GoogleMessage2 (*GoogleMessage2GroupedMessage)(nil), // 1: benchmarks.proto2.GoogleMessage2GroupedMessage (*GoogleMessage2_Group1)(nil), // 2: benchmarks.proto2.GoogleMessage2.Group1 } var file_datasets_google_message2_benchmark_message2_proto_depIdxs = []int32{ 2, // 0: benchmarks.proto2.GoogleMessage2.group1:type_name -> benchmarks.proto2.GoogleMessage2.Group1 1, // 1: benchmarks.proto2.GoogleMessage2.Group1.field31:type_name -> benchmarks.proto2.GoogleMessage2GroupedMessage 2, // [2:2] is the sub-list for method output_type 2, // [2:2] is the sub-list for method input_type 2, // [2:2] is the sub-list for extension type_name 2, // [2:2] is the sub-list for extension extendee 0, // [0:2] is the sub-list for field type_name } func init() { file_datasets_google_message2_benchmark_message2_proto_init() } func file_datasets_google_message2_benchmark_message2_proto_init() { if File_datasets_google_message2_benchmark_message2_proto != nil { return } if !protoimpl.UnsafeEnabled { file_datasets_google_message2_benchmark_message2_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GoogleMessage2); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message2_benchmark_message2_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GoogleMessage2GroupedMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message2_benchmark_message2_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GoogleMessage2_Group1); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_datasets_google_message2_benchmark_message2_proto_rawDesc, NumEnums: 0, NumMessages: 3, NumExtensions: 0, NumServices: 0, }, GoTypes: file_datasets_google_message2_benchmark_message2_proto_goTypes, DependencyIndexes: file_datasets_google_message2_benchmark_message2_proto_depIdxs, MessageInfos: file_datasets_google_message2_benchmark_message2_proto_msgTypes, }.Build() File_datasets_google_message2_benchmark_message2_proto = out.File file_datasets_google_message2_benchmark_message2_proto_rawDesc = nil file_datasets_google_message2_benchmark_message2_proto_goTypes = nil file_datasets_google_message2_benchmark_message2_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/datasets/google_message3/000077500000000000000000000000001411250152500312075ustar00rootroot00000000000000benchmark_message3.pb.go000066400000000000000000012054211411250152500356050ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/datasets/google_message3// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // LINT: ALLOW_GROUPS // Code generated by protoc-gen-go. DO NOT EDIT. // source: datasets/google_message3/benchmark_message3.proto package google_message3 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type GoogleMessage3 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field37519 *Message37487 `protobuf:"bytes,2,opt,name=field37519" json:"field37519,omitempty"` Field37520 *Message36876 `protobuf:"bytes,3,opt,name=field37520" json:"field37520,omitempty"` Field37521 *Message13062 `protobuf:"bytes,4,opt,name=field37521" json:"field37521,omitempty"` Field37522 *Message952 `protobuf:"bytes,5,opt,name=field37522" json:"field37522,omitempty"` Field37523 *UnusedEmptyMessage `protobuf:"bytes,6,opt,name=field37523" json:"field37523,omitempty"` Field37524 *UnusedEmptyMessage `protobuf:"bytes,7,opt,name=field37524" json:"field37524,omitempty"` Field37525 *UnusedEmptyMessage `protobuf:"bytes,8,opt,name=field37525" json:"field37525,omitempty"` Field37526 *UnusedEmptyMessage `protobuf:"bytes,9,opt,name=field37526" json:"field37526,omitempty"` Field37527 *UnusedEmptyMessage `protobuf:"bytes,10,opt,name=field37527" json:"field37527,omitempty"` Field37528 *UnusedEmptyMessage `protobuf:"bytes,11,opt,name=field37528" json:"field37528,omitempty"` Field37529 *UnusedEmptyMessage `protobuf:"bytes,12,opt,name=field37529" json:"field37529,omitempty"` Field37530 *UnusedEmptyMessage `protobuf:"bytes,13,opt,name=field37530" json:"field37530,omitempty"` Field37531 *UnusedEmptyMessage `protobuf:"bytes,14,opt,name=field37531" json:"field37531,omitempty"` Field37532 *UnusedEmptyMessage `protobuf:"bytes,15,opt,name=field37532" json:"field37532,omitempty"` Field37533 *UnusedEmptyMessage `protobuf:"bytes,16,opt,name=field37533" json:"field37533,omitempty"` } func (x *GoogleMessage3) Reset() { *x = GoogleMessage3{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GoogleMessage3) String() string { return protoimpl.X.MessageStringOf(x) } func (*GoogleMessage3) ProtoMessage() {} func (x *GoogleMessage3) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GoogleMessage3.ProtoReflect.Descriptor instead. func (*GoogleMessage3) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{0} } func (x *GoogleMessage3) GetField37519() *Message37487 { if x != nil { return x.Field37519 } return nil } func (x *GoogleMessage3) GetField37520() *Message36876 { if x != nil { return x.Field37520 } return nil } func (x *GoogleMessage3) GetField37521() *Message13062 { if x != nil { return x.Field37521 } return nil } func (x *GoogleMessage3) GetField37522() *Message952 { if x != nil { return x.Field37522 } return nil } func (x *GoogleMessage3) GetField37523() *UnusedEmptyMessage { if x != nil { return x.Field37523 } return nil } func (x *GoogleMessage3) GetField37524() *UnusedEmptyMessage { if x != nil { return x.Field37524 } return nil } func (x *GoogleMessage3) GetField37525() *UnusedEmptyMessage { if x != nil { return x.Field37525 } return nil } func (x *GoogleMessage3) GetField37526() *UnusedEmptyMessage { if x != nil { return x.Field37526 } return nil } func (x *GoogleMessage3) GetField37527() *UnusedEmptyMessage { if x != nil { return x.Field37527 } return nil } func (x *GoogleMessage3) GetField37528() *UnusedEmptyMessage { if x != nil { return x.Field37528 } return nil } func (x *GoogleMessage3) GetField37529() *UnusedEmptyMessage { if x != nil { return x.Field37529 } return nil } func (x *GoogleMessage3) GetField37530() *UnusedEmptyMessage { if x != nil { return x.Field37530 } return nil } func (x *GoogleMessage3) GetField37531() *UnusedEmptyMessage { if x != nil { return x.Field37531 } return nil } func (x *GoogleMessage3) GetField37532() *UnusedEmptyMessage { if x != nil { return x.Field37532 } return nil } func (x *GoogleMessage3) GetField37533() *UnusedEmptyMessage { if x != nil { return x.Field37533 } return nil } type Message1327 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field1369 []*UnusedEmptyMessage `protobuf:"bytes,1,rep,name=field1369" json:"field1369,omitempty"` Field1370 []*Message1328 `protobuf:"bytes,3,rep,name=field1370" json:"field1370,omitempty"` Field1371 []*UnusedEmptyMessage `protobuf:"bytes,5,rep,name=field1371" json:"field1371,omitempty"` Field1372 []*UnusedEmptyMessage `protobuf:"bytes,6,rep,name=field1372" json:"field1372,omitempty"` } func (x *Message1327) Reset() { *x = Message1327{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message1327) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message1327) ProtoMessage() {} func (x *Message1327) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message1327.ProtoReflect.Descriptor instead. func (*Message1327) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{1} } func (x *Message1327) GetField1369() []*UnusedEmptyMessage { if x != nil { return x.Field1369 } return nil } func (x *Message1327) GetField1370() []*Message1328 { if x != nil { return x.Field1370 } return nil } func (x *Message1327) GetField1371() []*UnusedEmptyMessage { if x != nil { return x.Field1371 } return nil } func (x *Message1327) GetField1372() []*UnusedEmptyMessage { if x != nil { return x.Field1372 } return nil } type Message3672 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field3727 *Enum3476 `protobuf:"varint,1,opt,name=field3727,enum=benchmarks.google_message3.Enum3476" json:"field3727,omitempty"` Field3728 *int32 `protobuf:"varint,11,opt,name=field3728" json:"field3728,omitempty"` Field3729 *int32 `protobuf:"varint,2,opt,name=field3729" json:"field3729,omitempty"` Message3673 []*Message3672_Message3673 `protobuf:"group,3,rep,name=Message3673,json=message3673" json:"message3673,omitempty"` Message3674 []*Message3672_Message3674 `protobuf:"group,6,rep,name=Message3674,json=message3674" json:"message3674,omitempty"` Field3732 *bool `protobuf:"varint,9,opt,name=field3732" json:"field3732,omitempty"` Field3733 *int32 `protobuf:"varint,10,opt,name=field3733" json:"field3733,omitempty"` Field3734 *Enum3476 `protobuf:"varint,20,opt,name=field3734,enum=benchmarks.google_message3.Enum3476" json:"field3734,omitempty"` Field3735 *int32 `protobuf:"varint,21,opt,name=field3735" json:"field3735,omitempty"` Field3736 *UnusedEmptyMessage `protobuf:"bytes,50,opt,name=field3736" json:"field3736,omitempty"` } func (x *Message3672) Reset() { *x = Message3672{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3672) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3672) ProtoMessage() {} func (x *Message3672) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3672.ProtoReflect.Descriptor instead. func (*Message3672) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{2} } func (x *Message3672) GetField3727() Enum3476 { if x != nil && x.Field3727 != nil { return *x.Field3727 } return Enum3476_ENUM_VALUE3477 } func (x *Message3672) GetField3728() int32 { if x != nil && x.Field3728 != nil { return *x.Field3728 } return 0 } func (x *Message3672) GetField3729() int32 { if x != nil && x.Field3729 != nil { return *x.Field3729 } return 0 } func (x *Message3672) GetMessage3673() []*Message3672_Message3673 { if x != nil { return x.Message3673 } return nil } func (x *Message3672) GetMessage3674() []*Message3672_Message3674 { if x != nil { return x.Message3674 } return nil } func (x *Message3672) GetField3732() bool { if x != nil && x.Field3732 != nil { return *x.Field3732 } return false } func (x *Message3672) GetField3733() int32 { if x != nil && x.Field3733 != nil { return *x.Field3733 } return 0 } func (x *Message3672) GetField3734() Enum3476 { if x != nil && x.Field3734 != nil { return *x.Field3734 } return Enum3476_ENUM_VALUE3477 } func (x *Message3672) GetField3735() int32 { if x != nil && x.Field3735 != nil { return *x.Field3735 } return 0 } func (x *Message3672) GetField3736() *UnusedEmptyMessage { if x != nil { return x.Field3736 } return nil } type Message3804 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field3818 *int64 `protobuf:"varint,1,req,name=field3818" json:"field3818,omitempty"` Field3819 *bool `protobuf:"varint,2,req,name=field3819" json:"field3819,omitempty"` Field3820 []Enum3805 `protobuf:"varint,4,rep,name=field3820,enum=benchmarks.google_message3.Enum3805" json:"field3820,omitempty"` Field3821 *int32 `protobuf:"varint,5,opt,name=field3821" json:"field3821,omitempty"` Field3822 *bool `protobuf:"varint,6,opt,name=field3822" json:"field3822,omitempty"` Field3823 *int64 `protobuf:"varint,7,opt,name=field3823" json:"field3823,omitempty"` Field3824 *Enum3783 `protobuf:"varint,8,opt,name=field3824,enum=benchmarks.google_message3.Enum3783" json:"field3824,omitempty"` } func (x *Message3804) Reset() { *x = Message3804{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3804) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3804) ProtoMessage() {} func (x *Message3804) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3804.ProtoReflect.Descriptor instead. func (*Message3804) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{3} } func (x *Message3804) GetField3818() int64 { if x != nil && x.Field3818 != nil { return *x.Field3818 } return 0 } func (x *Message3804) GetField3819() bool { if x != nil && x.Field3819 != nil { return *x.Field3819 } return false } func (x *Message3804) GetField3820() []Enum3805 { if x != nil { return x.Field3820 } return nil } func (x *Message3804) GetField3821() int32 { if x != nil && x.Field3821 != nil { return *x.Field3821 } return 0 } func (x *Message3804) GetField3822() bool { if x != nil && x.Field3822 != nil { return *x.Field3822 } return false } func (x *Message3804) GetField3823() int64 { if x != nil && x.Field3823 != nil { return *x.Field3823 } return 0 } func (x *Message3804) GetField3824() Enum3783 { if x != nil && x.Field3824 != nil { return *x.Field3824 } return Enum3783_ENUM_VALUE3784 } type Message6849 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6910 []*Message6850 `protobuf:"bytes,1,rep,name=field6910" json:"field6910,omitempty"` } func (x *Message6849) Reset() { *x = Message6849{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6849) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6849) ProtoMessage() {} func (x *Message6849) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6849.ProtoReflect.Descriptor instead. func (*Message6849) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{4} } func (x *Message6849) GetField6910() []*Message6850 { if x != nil { return x.Field6910 } return nil } type Message6866 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6973 []*Message6863 `protobuf:"bytes,1,rep,name=field6973" json:"field6973,omitempty"` } func (x *Message6866) Reset() { *x = Message6866{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6866) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6866) ProtoMessage() {} func (x *Message6866) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6866.ProtoReflect.Descriptor instead. func (*Message6866) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{5} } func (x *Message6866) GetField6973() []*Message6863 { if x != nil { return x.Field6973 } return nil } type Message6870 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6991 []*Message6871 `protobuf:"bytes,1,rep,name=field6991" json:"field6991,omitempty"` } func (x *Message6870) Reset() { *x = Message6870{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6870) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6870) ProtoMessage() {} func (x *Message6870) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6870.ProtoReflect.Descriptor instead. func (*Message6870) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{6} } func (x *Message6870) GetField6991() []*Message6871 { if x != nil { return x.Field6991 } return nil } type Message7651 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7685 *string `protobuf:"bytes,1,opt,name=field7685" json:"field7685,omitempty"` Field7686 *int64 `protobuf:"varint,2,opt,name=field7686" json:"field7686,omitempty"` Field7687 *int64 `protobuf:"varint,3,opt,name=field7687" json:"field7687,omitempty"` Field7688 *int64 `protobuf:"varint,4,opt,name=field7688" json:"field7688,omitempty"` Field7689 *int32 `protobuf:"varint,5,opt,name=field7689" json:"field7689,omitempty"` Field7690 *int32 `protobuf:"varint,6,opt,name=field7690" json:"field7690,omitempty"` Field7691 *int32 `protobuf:"varint,7,opt,name=field7691" json:"field7691,omitempty"` Field7692 *int32 `protobuf:"varint,8,opt,name=field7692" json:"field7692,omitempty"` Field7693 *int32 `protobuf:"varint,9,opt,name=field7693" json:"field7693,omitempty"` Field7694 *int32 `protobuf:"varint,10,opt,name=field7694" json:"field7694,omitempty"` Field7695 *int32 `protobuf:"varint,11,opt,name=field7695" json:"field7695,omitempty"` Field7696 *int32 `protobuf:"varint,12,opt,name=field7696" json:"field7696,omitempty"` Field7697 *int32 `protobuf:"varint,13,opt,name=field7697" json:"field7697,omitempty"` Field7698 *int32 `protobuf:"varint,14,opt,name=field7698" json:"field7698,omitempty"` Field7699 *int32 `protobuf:"varint,15,opt,name=field7699" json:"field7699,omitempty"` Field7700 *int32 `protobuf:"varint,16,opt,name=field7700" json:"field7700,omitempty"` Field7701 *int32 `protobuf:"varint,17,opt,name=field7701" json:"field7701,omitempty"` Field7702 *int32 `protobuf:"varint,18,opt,name=field7702" json:"field7702,omitempty"` Field7703 *bool `protobuf:"varint,19,opt,name=field7703" json:"field7703,omitempty"` Field7704 []int32 `protobuf:"varint,20,rep,name=field7704" json:"field7704,omitempty"` Field7705 []int32 `protobuf:"varint,21,rep,name=field7705" json:"field7705,omitempty"` Field7706 []string `protobuf:"bytes,22,rep,name=field7706" json:"field7706,omitempty"` Field7707 []string `protobuf:"bytes,23,rep,name=field7707" json:"field7707,omitempty"` Field7708 *UnusedEmptyMessage `protobuf:"bytes,24,opt,name=field7708" json:"field7708,omitempty"` Field7709 *int32 `protobuf:"varint,25,opt,name=field7709" json:"field7709,omitempty"` Field7710 *int32 `protobuf:"varint,26,opt,name=field7710" json:"field7710,omitempty"` Field7711 *int32 `protobuf:"varint,27,opt,name=field7711" json:"field7711,omitempty"` Field7712 *int32 `protobuf:"varint,43,opt,name=field7712" json:"field7712,omitempty"` Field7713 *int32 `protobuf:"varint,28,opt,name=field7713" json:"field7713,omitempty"` Field7714 *int32 `protobuf:"varint,29,opt,name=field7714" json:"field7714,omitempty"` Field7715 []*Message7547 `protobuf:"bytes,30,rep,name=field7715" json:"field7715,omitempty"` Field7716 []*Message7547 `protobuf:"bytes,31,rep,name=field7716" json:"field7716,omitempty"` Field7717 []*UnusedEmptyMessage `protobuf:"bytes,32,rep,name=field7717" json:"field7717,omitempty"` Field7718 []string `protobuf:"bytes,33,rep,name=field7718" json:"field7718,omitempty"` Field7719 []string `protobuf:"bytes,34,rep,name=field7719" json:"field7719,omitempty"` Field7720 []*Message7648 `protobuf:"bytes,35,rep,name=field7720" json:"field7720,omitempty"` Field7721 *bool `protobuf:"varint,36,opt,name=field7721" json:"field7721,omitempty"` Field7722 *bool `protobuf:"varint,37,opt,name=field7722" json:"field7722,omitempty"` Field7723 *bool `protobuf:"varint,38,opt,name=field7723" json:"field7723,omitempty"` Field7724 *bool `protobuf:"varint,39,opt,name=field7724" json:"field7724,omitempty"` Field7725 *UnusedEmptyMessage `protobuf:"bytes,40,opt,name=field7725" json:"field7725,omitempty"` Field7726 *UnusedEnum `protobuf:"varint,41,opt,name=field7726,enum=benchmarks.google_message3.UnusedEnum" json:"field7726,omitempty"` Field7727 *Enum7654 `protobuf:"varint,42,opt,name=field7727,enum=benchmarks.google_message3.Enum7654" json:"field7727,omitempty"` Field7728 *string `protobuf:"bytes,44,opt,name=field7728" json:"field7728,omitempty"` Field7729 *UnusedEmptyMessage `protobuf:"bytes,45,opt,name=field7729" json:"field7729,omitempty"` } func (x *Message7651) Reset() { *x = Message7651{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7651) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7651) ProtoMessage() {} func (x *Message7651) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7651.ProtoReflect.Descriptor instead. func (*Message7651) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{7} } func (x *Message7651) GetField7685() string { if x != nil && x.Field7685 != nil { return *x.Field7685 } return "" } func (x *Message7651) GetField7686() int64 { if x != nil && x.Field7686 != nil { return *x.Field7686 } return 0 } func (x *Message7651) GetField7687() int64 { if x != nil && x.Field7687 != nil { return *x.Field7687 } return 0 } func (x *Message7651) GetField7688() int64 { if x != nil && x.Field7688 != nil { return *x.Field7688 } return 0 } func (x *Message7651) GetField7689() int32 { if x != nil && x.Field7689 != nil { return *x.Field7689 } return 0 } func (x *Message7651) GetField7690() int32 { if x != nil && x.Field7690 != nil { return *x.Field7690 } return 0 } func (x *Message7651) GetField7691() int32 { if x != nil && x.Field7691 != nil { return *x.Field7691 } return 0 } func (x *Message7651) GetField7692() int32 { if x != nil && x.Field7692 != nil { return *x.Field7692 } return 0 } func (x *Message7651) GetField7693() int32 { if x != nil && x.Field7693 != nil { return *x.Field7693 } return 0 } func (x *Message7651) GetField7694() int32 { if x != nil && x.Field7694 != nil { return *x.Field7694 } return 0 } func (x *Message7651) GetField7695() int32 { if x != nil && x.Field7695 != nil { return *x.Field7695 } return 0 } func (x *Message7651) GetField7696() int32 { if x != nil && x.Field7696 != nil { return *x.Field7696 } return 0 } func (x *Message7651) GetField7697() int32 { if x != nil && x.Field7697 != nil { return *x.Field7697 } return 0 } func (x *Message7651) GetField7698() int32 { if x != nil && x.Field7698 != nil { return *x.Field7698 } return 0 } func (x *Message7651) GetField7699() int32 { if x != nil && x.Field7699 != nil { return *x.Field7699 } return 0 } func (x *Message7651) GetField7700() int32 { if x != nil && x.Field7700 != nil { return *x.Field7700 } return 0 } func (x *Message7651) GetField7701() int32 { if x != nil && x.Field7701 != nil { return *x.Field7701 } return 0 } func (x *Message7651) GetField7702() int32 { if x != nil && x.Field7702 != nil { return *x.Field7702 } return 0 } func (x *Message7651) GetField7703() bool { if x != nil && x.Field7703 != nil { return *x.Field7703 } return false } func (x *Message7651) GetField7704() []int32 { if x != nil { return x.Field7704 } return nil } func (x *Message7651) GetField7705() []int32 { if x != nil { return x.Field7705 } return nil } func (x *Message7651) GetField7706() []string { if x != nil { return x.Field7706 } return nil } func (x *Message7651) GetField7707() []string { if x != nil { return x.Field7707 } return nil } func (x *Message7651) GetField7708() *UnusedEmptyMessage { if x != nil { return x.Field7708 } return nil } func (x *Message7651) GetField7709() int32 { if x != nil && x.Field7709 != nil { return *x.Field7709 } return 0 } func (x *Message7651) GetField7710() int32 { if x != nil && x.Field7710 != nil { return *x.Field7710 } return 0 } func (x *Message7651) GetField7711() int32 { if x != nil && x.Field7711 != nil { return *x.Field7711 } return 0 } func (x *Message7651) GetField7712() int32 { if x != nil && x.Field7712 != nil { return *x.Field7712 } return 0 } func (x *Message7651) GetField7713() int32 { if x != nil && x.Field7713 != nil { return *x.Field7713 } return 0 } func (x *Message7651) GetField7714() int32 { if x != nil && x.Field7714 != nil { return *x.Field7714 } return 0 } func (x *Message7651) GetField7715() []*Message7547 { if x != nil { return x.Field7715 } return nil } func (x *Message7651) GetField7716() []*Message7547 { if x != nil { return x.Field7716 } return nil } func (x *Message7651) GetField7717() []*UnusedEmptyMessage { if x != nil { return x.Field7717 } return nil } func (x *Message7651) GetField7718() []string { if x != nil { return x.Field7718 } return nil } func (x *Message7651) GetField7719() []string { if x != nil { return x.Field7719 } return nil } func (x *Message7651) GetField7720() []*Message7648 { if x != nil { return x.Field7720 } return nil } func (x *Message7651) GetField7721() bool { if x != nil && x.Field7721 != nil { return *x.Field7721 } return false } func (x *Message7651) GetField7722() bool { if x != nil && x.Field7722 != nil { return *x.Field7722 } return false } func (x *Message7651) GetField7723() bool { if x != nil && x.Field7723 != nil { return *x.Field7723 } return false } func (x *Message7651) GetField7724() bool { if x != nil && x.Field7724 != nil { return *x.Field7724 } return false } func (x *Message7651) GetField7725() *UnusedEmptyMessage { if x != nil { return x.Field7725 } return nil } func (x *Message7651) GetField7726() UnusedEnum { if x != nil && x.Field7726 != nil { return *x.Field7726 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message7651) GetField7727() Enum7654 { if x != nil && x.Field7727 != nil { return *x.Field7727 } return Enum7654_ENUM_VALUE7655 } func (x *Message7651) GetField7728() string { if x != nil && x.Field7728 != nil { return *x.Field7728 } return "" } func (x *Message7651) GetField7729() *UnusedEmptyMessage { if x != nil { return x.Field7729 } return nil } type Message7864 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7866 *string `protobuf:"bytes,1,opt,name=field7866" json:"field7866,omitempty"` Field7867 *string `protobuf:"bytes,2,opt,name=field7867" json:"field7867,omitempty"` Field7868 []*Message7865 `protobuf:"bytes,5,rep,name=field7868" json:"field7868,omitempty"` Field7869 []*Message7865 `protobuf:"bytes,6,rep,name=field7869" json:"field7869,omitempty"` Field7870 []*Message7865 `protobuf:"bytes,7,rep,name=field7870" json:"field7870,omitempty"` Field7871 []*UnusedEmptyMessage `protobuf:"bytes,8,rep,name=field7871" json:"field7871,omitempty"` } func (x *Message7864) Reset() { *x = Message7864{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7864) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7864) ProtoMessage() {} func (x *Message7864) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7864.ProtoReflect.Descriptor instead. func (*Message7864) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{8} } func (x *Message7864) GetField7866() string { if x != nil && x.Field7866 != nil { return *x.Field7866 } return "" } func (x *Message7864) GetField7867() string { if x != nil && x.Field7867 != nil { return *x.Field7867 } return "" } func (x *Message7864) GetField7868() []*Message7865 { if x != nil { return x.Field7868 } return nil } func (x *Message7864) GetField7869() []*Message7865 { if x != nil { return x.Field7869 } return nil } func (x *Message7864) GetField7870() []*Message7865 { if x != nil { return x.Field7870 } return nil } func (x *Message7864) GetField7871() []*UnusedEmptyMessage { if x != nil { return x.Field7871 } return nil } type Message7929 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7942 *int64 `protobuf:"varint,1,opt,name=field7942" json:"field7942,omitempty"` Field7943 *int64 `protobuf:"varint,4,opt,name=field7943" json:"field7943,omitempty"` Field7944 *int64 `protobuf:"varint,5,opt,name=field7944" json:"field7944,omitempty"` Field7945 *int64 `protobuf:"varint,12,opt,name=field7945" json:"field7945,omitempty"` Field7946 *int64 `protobuf:"varint,13,opt,name=field7946" json:"field7946,omitempty"` Field7947 *int64 `protobuf:"varint,18,opt,name=field7947" json:"field7947,omitempty"` Field7948 *int64 `protobuf:"varint,6,opt,name=field7948" json:"field7948,omitempty"` Field7949 *int64 `protobuf:"varint,7,opt,name=field7949" json:"field7949,omitempty"` Field7950 []*Message7919 `protobuf:"bytes,8,rep,name=field7950" json:"field7950,omitempty"` Field7951 []*UnusedEmptyMessage `protobuf:"bytes,20,rep,name=field7951" json:"field7951,omitempty"` Field7952 []*Message7920 `protobuf:"bytes,14,rep,name=field7952" json:"field7952,omitempty"` Field7953 []*Message7921 `protobuf:"bytes,15,rep,name=field7953" json:"field7953,omitempty"` Field7954 []*Message7928 `protobuf:"bytes,17,rep,name=field7954" json:"field7954,omitempty"` Field7955 *int64 `protobuf:"varint,19,opt,name=field7955" json:"field7955,omitempty"` Field7956 *bool `protobuf:"varint,2,opt,name=field7956" json:"field7956,omitempty"` Field7957 *int64 `protobuf:"varint,3,opt,name=field7957" json:"field7957,omitempty"` Field7958 *int64 `protobuf:"varint,9,opt,name=field7958" json:"field7958,omitempty"` Field7959 []*UnusedEmptyMessage `protobuf:"bytes,10,rep,name=field7959" json:"field7959,omitempty"` Field7960 [][]byte `protobuf:"bytes,11,rep,name=field7960" json:"field7960,omitempty"` Field7961 *int64 `protobuf:"varint,16,opt,name=field7961" json:"field7961,omitempty"` } func (x *Message7929) Reset() { *x = Message7929{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7929) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7929) ProtoMessage() {} func (x *Message7929) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7929.ProtoReflect.Descriptor instead. func (*Message7929) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{9} } func (x *Message7929) GetField7942() int64 { if x != nil && x.Field7942 != nil { return *x.Field7942 } return 0 } func (x *Message7929) GetField7943() int64 { if x != nil && x.Field7943 != nil { return *x.Field7943 } return 0 } func (x *Message7929) GetField7944() int64 { if x != nil && x.Field7944 != nil { return *x.Field7944 } return 0 } func (x *Message7929) GetField7945() int64 { if x != nil && x.Field7945 != nil { return *x.Field7945 } return 0 } func (x *Message7929) GetField7946() int64 { if x != nil && x.Field7946 != nil { return *x.Field7946 } return 0 } func (x *Message7929) GetField7947() int64 { if x != nil && x.Field7947 != nil { return *x.Field7947 } return 0 } func (x *Message7929) GetField7948() int64 { if x != nil && x.Field7948 != nil { return *x.Field7948 } return 0 } func (x *Message7929) GetField7949() int64 { if x != nil && x.Field7949 != nil { return *x.Field7949 } return 0 } func (x *Message7929) GetField7950() []*Message7919 { if x != nil { return x.Field7950 } return nil } func (x *Message7929) GetField7951() []*UnusedEmptyMessage { if x != nil { return x.Field7951 } return nil } func (x *Message7929) GetField7952() []*Message7920 { if x != nil { return x.Field7952 } return nil } func (x *Message7929) GetField7953() []*Message7921 { if x != nil { return x.Field7953 } return nil } func (x *Message7929) GetField7954() []*Message7928 { if x != nil { return x.Field7954 } return nil } func (x *Message7929) GetField7955() int64 { if x != nil && x.Field7955 != nil { return *x.Field7955 } return 0 } func (x *Message7929) GetField7956() bool { if x != nil && x.Field7956 != nil { return *x.Field7956 } return false } func (x *Message7929) GetField7957() int64 { if x != nil && x.Field7957 != nil { return *x.Field7957 } return 0 } func (x *Message7929) GetField7958() int64 { if x != nil && x.Field7958 != nil { return *x.Field7958 } return 0 } func (x *Message7929) GetField7959() []*UnusedEmptyMessage { if x != nil { return x.Field7959 } return nil } func (x *Message7929) GetField7960() [][]byte { if x != nil { return x.Field7960 } return nil } func (x *Message7929) GetField7961() int64 { if x != nil && x.Field7961 != nil { return *x.Field7961 } return 0 } type Message8508 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8517 []*Message8511 `protobuf:"bytes,8,rep,name=field8517" json:"field8517,omitempty"` Field8518 []*Message8512 `protobuf:"bytes,9,rep,name=field8518" json:"field8518,omitempty"` Field8519 []*Message8513 `protobuf:"bytes,11,rep,name=field8519" json:"field8519,omitempty"` Field8520 *bool `protobuf:"varint,13,opt,name=field8520" json:"field8520,omitempty"` Field8521 *Message8514 `protobuf:"bytes,14,opt,name=field8521" json:"field8521,omitempty"` Field8522 []*UnusedEmptyMessage `protobuf:"bytes,15,rep,name=field8522" json:"field8522,omitempty"` Field8523 []*Message8515 `protobuf:"bytes,16,rep,name=field8523" json:"field8523,omitempty"` Field8524 []*UnusedEmptyMessage `protobuf:"bytes,17,rep,name=field8524" json:"field8524,omitempty"` Field8525 *int64 `protobuf:"varint,1,opt,name=field8525" json:"field8525,omitempty"` Field8526 *float32 `protobuf:"fixed32,2,opt,name=field8526" json:"field8526,omitempty"` Field8527 *int64 `protobuf:"varint,3,opt,name=field8527" json:"field8527,omitempty"` Field8528 *int64 `protobuf:"varint,4,opt,name=field8528" json:"field8528,omitempty"` Field8529 *int32 `protobuf:"varint,5,opt,name=field8529" json:"field8529,omitempty"` Field8530 []byte `protobuf:"bytes,6,opt,name=field8530" json:"field8530,omitempty"` Field8531 [][]byte `protobuf:"bytes,7,rep,name=field8531" json:"field8531,omitempty"` Field8532 *bool `protobuf:"varint,10,opt,name=field8532" json:"field8532,omitempty"` Field8533 []byte `protobuf:"bytes,12,opt,name=field8533" json:"field8533,omitempty"` } func (x *Message8508) Reset() { *x = Message8508{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8508) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8508) ProtoMessage() {} func (x *Message8508) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8508.ProtoReflect.Descriptor instead. func (*Message8508) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{10} } func (x *Message8508) GetField8517() []*Message8511 { if x != nil { return x.Field8517 } return nil } func (x *Message8508) GetField8518() []*Message8512 { if x != nil { return x.Field8518 } return nil } func (x *Message8508) GetField8519() []*Message8513 { if x != nil { return x.Field8519 } return nil } func (x *Message8508) GetField8520() bool { if x != nil && x.Field8520 != nil { return *x.Field8520 } return false } func (x *Message8508) GetField8521() *Message8514 { if x != nil { return x.Field8521 } return nil } func (x *Message8508) GetField8522() []*UnusedEmptyMessage { if x != nil { return x.Field8522 } return nil } func (x *Message8508) GetField8523() []*Message8515 { if x != nil { return x.Field8523 } return nil } func (x *Message8508) GetField8524() []*UnusedEmptyMessage { if x != nil { return x.Field8524 } return nil } func (x *Message8508) GetField8525() int64 { if x != nil && x.Field8525 != nil { return *x.Field8525 } return 0 } func (x *Message8508) GetField8526() float32 { if x != nil && x.Field8526 != nil { return *x.Field8526 } return 0 } func (x *Message8508) GetField8527() int64 { if x != nil && x.Field8527 != nil { return *x.Field8527 } return 0 } func (x *Message8508) GetField8528() int64 { if x != nil && x.Field8528 != nil { return *x.Field8528 } return 0 } func (x *Message8508) GetField8529() int32 { if x != nil && x.Field8529 != nil { return *x.Field8529 } return 0 } func (x *Message8508) GetField8530() []byte { if x != nil { return x.Field8530 } return nil } func (x *Message8508) GetField8531() [][]byte { if x != nil { return x.Field8531 } return nil } func (x *Message8508) GetField8532() bool { if x != nil && x.Field8532 != nil { return *x.Field8532 } return false } func (x *Message8508) GetField8533() []byte { if x != nil { return x.Field8533 } return nil } type Message9122 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field9132 *float32 `protobuf:"fixed32,1,opt,name=field9132" json:"field9132,omitempty"` Field9133 *float32 `protobuf:"fixed32,2,opt,name=field9133" json:"field9133,omitempty"` } func (x *Message9122) Reset() { *x = Message9122{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message9122) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message9122) ProtoMessage() {} func (x *Message9122) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message9122.ProtoReflect.Descriptor instead. func (*Message9122) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{11} } func (x *Message9122) GetField9132() float32 { if x != nil && x.Field9132 != nil { return *x.Field9132 } return 0 } func (x *Message9122) GetField9133() float32 { if x != nil && x.Field9133 != nil { return *x.Field9133 } return 0 } type Message10177 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field10270 []*Message10155 `protobuf:"bytes,1,rep,name=field10270" json:"field10270,omitempty"` } func (x *Message10177) Reset() { *x = Message10177{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10177) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10177) ProtoMessage() {} func (x *Message10177) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10177.ProtoReflect.Descriptor instead. func (*Message10177) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{12} } func (x *Message10177) GetField10270() []*Message10155 { if x != nil { return x.Field10270 } return nil } type Message10278 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field10286 []int32 `protobuf:"varint,1,rep,packed,name=field10286" json:"field10286,omitempty"` Field10287 []int32 `protobuf:"varint,2,rep,packed,name=field10287" json:"field10287,omitempty"` Field10288 *int32 `protobuf:"varint,3,opt,name=field10288" json:"field10288,omitempty"` } func (x *Message10278) Reset() { *x = Message10278{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10278) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10278) ProtoMessage() {} func (x *Message10278) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10278.ProtoReflect.Descriptor instead. func (*Message10278) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{13} } func (x *Message10278) GetField10286() []int32 { if x != nil { return x.Field10286 } return nil } func (x *Message10278) GetField10287() []int32 { if x != nil { return x.Field10287 } return nil } func (x *Message10278) GetField10288() int32 { if x != nil && x.Field10288 != nil { return *x.Field10288 } return 0 } type Message10323 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field10360 []*Message10320 `protobuf:"bytes,1,rep,name=field10360" json:"field10360,omitempty"` } func (x *Message10323) Reset() { *x = Message10323{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10323) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10323) ProtoMessage() {} func (x *Message10323) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10323.ProtoReflect.Descriptor instead. func (*Message10323) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{14} } func (x *Message10323) GetField10360() []*Message10320 { if x != nil { return x.Field10360 } return nil } type Message10324 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field10362 []*Message10322 `protobuf:"bytes,1,rep,name=field10362" json:"field10362,omitempty"` Field10363 *Message10321 `protobuf:"bytes,2,opt,name=field10363" json:"field10363,omitempty"` } func (x *Message10324) Reset() { *x = Message10324{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10324) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10324) ProtoMessage() {} func (x *Message10324) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10324.ProtoReflect.Descriptor instead. func (*Message10324) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{15} } func (x *Message10324) GetField10362() []*Message10322 { if x != nil { return x.Field10362 } return nil } func (x *Message10324) GetField10363() *Message10321 { if x != nil { return x.Field10363 } return nil } type Message11990 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12030 []*Message11988 `protobuf:"bytes,1,rep,name=field12030" json:"field12030,omitempty"` } func (x *Message11990) Reset() { *x = Message11990{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message11990) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message11990) ProtoMessage() {} func (x *Message11990) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message11990.ProtoReflect.Descriptor instead. func (*Message11990) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{16} } func (x *Message11990) GetField12030() []*Message11988 { if x != nil { return x.Field12030 } return nil } type Message12691 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12713 *string `protobuf:"bytes,1,opt,name=field12713" json:"field12713,omitempty"` Field12714 *int32 `protobuf:"varint,2,opt,name=field12714" json:"field12714,omitempty"` Field12715 *Message12668 `protobuf:"bytes,3,opt,name=field12715" json:"field12715,omitempty"` } func (x *Message12691) Reset() { *x = Message12691{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12691) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12691) ProtoMessage() {} func (x *Message12691) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12691.ProtoReflect.Descriptor instead. func (*Message12691) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{17} } func (x *Message12691) GetField12713() string { if x != nil && x.Field12713 != nil { return *x.Field12713 } return "" } func (x *Message12691) GetField12714() int32 { if x != nil && x.Field12714 != nil { return *x.Field12714 } return 0 } func (x *Message12691) GetField12715() *Message12668 { if x != nil { return x.Field12715 } return nil } type Message12870 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12879 *int32 `protobuf:"varint,1,req,name=field12879" json:"field12879,omitempty"` Field12880 *int32 `protobuf:"varint,7,opt,name=field12880" json:"field12880,omitempty"` Field12881 *int32 `protobuf:"varint,2,req,name=field12881" json:"field12881,omitempty"` Field12882 *uint64 `protobuf:"varint,3,opt,name=field12882" json:"field12882,omitempty"` Field12883 *string `protobuf:"bytes,2001,opt,name=field12883" json:"field12883,omitempty"` Field12884 *uint64 `protobuf:"fixed64,4,opt,name=field12884" json:"field12884,omitempty"` Field12885 []uint64 `protobuf:"fixed64,14,rep,name=field12885" json:"field12885,omitempty"` Field12886 *int32 `protobuf:"varint,9,opt,name=field12886" json:"field12886,omitempty"` Field12887 *int64 `protobuf:"varint,18,opt,name=field12887" json:"field12887,omitempty"` Field12888 []*Message12870 `protobuf:"bytes,8,rep,name=field12888" json:"field12888,omitempty"` Field12889 *int32 `protobuf:"varint,5,opt,name=field12889" json:"field12889,omitempty"` Field12890 *uint64 `protobuf:"varint,6,opt,name=field12890" json:"field12890,omitempty"` Field12891 *int32 `protobuf:"varint,10,opt,name=field12891" json:"field12891,omitempty"` Field12892 *int32 `protobuf:"varint,11,opt,name=field12892" json:"field12892,omitempty"` Field12893 *float64 `protobuf:"fixed64,12,opt,name=field12893" json:"field12893,omitempty"` Field12894 *Message12825 `protobuf:"bytes,13,opt,name=field12894" json:"field12894,omitempty"` Field12895 *float64 `protobuf:"fixed64,15,opt,name=field12895" json:"field12895,omitempty"` Field12896 *string `protobuf:"bytes,16,opt,name=field12896" json:"field12896,omitempty"` Field12897 *Enum12871 `protobuf:"varint,17,opt,name=field12897,enum=benchmarks.google_message3.Enum12871" json:"field12897,omitempty"` Field12898 *int32 `protobuf:"varint,19,opt,name=field12898" json:"field12898,omitempty"` } func (x *Message12870) Reset() { *x = Message12870{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12870) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12870) ProtoMessage() {} func (x *Message12870) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12870.ProtoReflect.Descriptor instead. func (*Message12870) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{18} } func (x *Message12870) GetField12879() int32 { if x != nil && x.Field12879 != nil { return *x.Field12879 } return 0 } func (x *Message12870) GetField12880() int32 { if x != nil && x.Field12880 != nil { return *x.Field12880 } return 0 } func (x *Message12870) GetField12881() int32 { if x != nil && x.Field12881 != nil { return *x.Field12881 } return 0 } func (x *Message12870) GetField12882() uint64 { if x != nil && x.Field12882 != nil { return *x.Field12882 } return 0 } func (x *Message12870) GetField12883() string { if x != nil && x.Field12883 != nil { return *x.Field12883 } return "" } func (x *Message12870) GetField12884() uint64 { if x != nil && x.Field12884 != nil { return *x.Field12884 } return 0 } func (x *Message12870) GetField12885() []uint64 { if x != nil { return x.Field12885 } return nil } func (x *Message12870) GetField12886() int32 { if x != nil && x.Field12886 != nil { return *x.Field12886 } return 0 } func (x *Message12870) GetField12887() int64 { if x != nil && x.Field12887 != nil { return *x.Field12887 } return 0 } func (x *Message12870) GetField12888() []*Message12870 { if x != nil { return x.Field12888 } return nil } func (x *Message12870) GetField12889() int32 { if x != nil && x.Field12889 != nil { return *x.Field12889 } return 0 } func (x *Message12870) GetField12890() uint64 { if x != nil && x.Field12890 != nil { return *x.Field12890 } return 0 } func (x *Message12870) GetField12891() int32 { if x != nil && x.Field12891 != nil { return *x.Field12891 } return 0 } func (x *Message12870) GetField12892() int32 { if x != nil && x.Field12892 != nil { return *x.Field12892 } return 0 } func (x *Message12870) GetField12893() float64 { if x != nil && x.Field12893 != nil { return *x.Field12893 } return 0 } func (x *Message12870) GetField12894() *Message12825 { if x != nil { return x.Field12894 } return nil } func (x *Message12870) GetField12895() float64 { if x != nil && x.Field12895 != nil { return *x.Field12895 } return 0 } func (x *Message12870) GetField12896() string { if x != nil && x.Field12896 != nil { return *x.Field12896 } return "" } func (x *Message12870) GetField12897() Enum12871 { if x != nil && x.Field12897 != nil { return *x.Field12897 } return Enum12871_ENUM_VALUE12872 } func (x *Message12870) GetField12898() int32 { if x != nil && x.Field12898 != nil { return *x.Field12898 } return 0 } type Message13154 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field13164 *float32 `protobuf:"fixed32,1,req,name=field13164" json:"field13164,omitempty"` Field13165 *float32 `protobuf:"fixed32,2,req,name=field13165" json:"field13165,omitempty"` } func (x *Message13154) Reset() { *x = Message13154{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message13154) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message13154) ProtoMessage() {} func (x *Message13154) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message13154.ProtoReflect.Descriptor instead. func (*Message13154) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{19} } func (x *Message13154) GetField13164() float32 { if x != nil && x.Field13164 != nil { return *x.Field13164 } return 0 } func (x *Message13154) GetField13165() float32 { if x != nil && x.Field13165 != nil { return *x.Field13165 } return 0 } type Message16507 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields Field16510 *bool `protobuf:"varint,3,opt,name=field16510" json:"field16510,omitempty"` Field16511 *bool `protobuf:"varint,4,opt,name=field16511" json:"field16511,omitempty"` Field16512 *bool `protobuf:"varint,14,opt,name=field16512" json:"field16512,omitempty"` Field16513 []string `protobuf:"bytes,5,rep,name=field16513" json:"field16513,omitempty"` Field16514 []string `protobuf:"bytes,6,rep,name=field16514" json:"field16514,omitempty"` Field16515 *string `protobuf:"bytes,8,opt,name=field16515" json:"field16515,omitempty"` Field16516 []int32 `protobuf:"varint,9,rep,name=field16516" json:"field16516,omitempty"` Field16517 []int32 `protobuf:"varint,10,rep,name=field16517" json:"field16517,omitempty"` Field16518 *int32 `protobuf:"varint,7,opt,name=field16518" json:"field16518,omitempty"` Field16519 *string `protobuf:"bytes,15,opt,name=field16519" json:"field16519,omitempty"` Field16520 []string `protobuf:"bytes,11,rep,name=field16520" json:"field16520,omitempty"` Field16521 []*UnusedEmptyMessage `protobuf:"bytes,27,rep,name=field16521" json:"field16521,omitempty"` Field16522 []*UnusedEmptyMessage `protobuf:"bytes,22,rep,name=field16522" json:"field16522,omitempty"` Field16523 []*UnusedEmptyMessage `protobuf:"bytes,28,rep,name=field16523" json:"field16523,omitempty"` Field16524 *string `protobuf:"bytes,18,opt,name=field16524" json:"field16524,omitempty"` Field16525 *int32 `protobuf:"varint,19,opt,name=field16525" json:"field16525,omitempty"` Field16526 *int32 `protobuf:"varint,20,opt,name=field16526" json:"field16526,omitempty"` Field16527 *UnusedEmptyMessage `protobuf:"bytes,23,opt,name=field16527" json:"field16527,omitempty"` Field16528 *bool `protobuf:"varint,24,opt,name=field16528" json:"field16528,omitempty"` Field16529 []string `protobuf:"bytes,25,rep,name=field16529" json:"field16529,omitempty"` Field16530 *float64 `protobuf:"fixed64,26,opt,name=field16530" json:"field16530,omitempty"` Field16531 *Message16478 `protobuf:"bytes,30,opt,name=field16531" json:"field16531,omitempty"` Field16532 *bool `protobuf:"varint,31,opt,name=field16532" json:"field16532,omitempty"` Field16533 *string `protobuf:"bytes,32,opt,name=field16533" json:"field16533,omitempty"` Field16534 *bool `protobuf:"varint,33,opt,name=field16534" json:"field16534,omitempty"` Field16535 *bool `protobuf:"varint,35,opt,name=field16535" json:"field16535,omitempty"` Field16536 *bool `protobuf:"varint,36,opt,name=field16536" json:"field16536,omitempty"` Field16537 *bool `protobuf:"varint,37,opt,name=field16537" json:"field16537,omitempty"` Field16538 *bool `protobuf:"varint,38,opt,name=field16538" json:"field16538,omitempty"` Field16539 *bool `protobuf:"varint,39,opt,name=field16539" json:"field16539,omitempty"` Field16540 *bool `protobuf:"varint,40,opt,name=field16540" json:"field16540,omitempty"` Field16541 []string `protobuf:"bytes,41,rep,name=field16541" json:"field16541,omitempty"` } func (x *Message16507) Reset() { *x = Message16507{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message16507) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message16507) ProtoMessage() {} func (x *Message16507) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message16507.ProtoReflect.Descriptor instead. func (*Message16507) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{20} } func (x *Message16507) GetField16510() bool { if x != nil && x.Field16510 != nil { return *x.Field16510 } return false } func (x *Message16507) GetField16511() bool { if x != nil && x.Field16511 != nil { return *x.Field16511 } return false } func (x *Message16507) GetField16512() bool { if x != nil && x.Field16512 != nil { return *x.Field16512 } return false } func (x *Message16507) GetField16513() []string { if x != nil { return x.Field16513 } return nil } func (x *Message16507) GetField16514() []string { if x != nil { return x.Field16514 } return nil } func (x *Message16507) GetField16515() string { if x != nil && x.Field16515 != nil { return *x.Field16515 } return "" } func (x *Message16507) GetField16516() []int32 { if x != nil { return x.Field16516 } return nil } func (x *Message16507) GetField16517() []int32 { if x != nil { return x.Field16517 } return nil } func (x *Message16507) GetField16518() int32 { if x != nil && x.Field16518 != nil { return *x.Field16518 } return 0 } func (x *Message16507) GetField16519() string { if x != nil && x.Field16519 != nil { return *x.Field16519 } return "" } func (x *Message16507) GetField16520() []string { if x != nil { return x.Field16520 } return nil } func (x *Message16507) GetField16521() []*UnusedEmptyMessage { if x != nil { return x.Field16521 } return nil } func (x *Message16507) GetField16522() []*UnusedEmptyMessage { if x != nil { return x.Field16522 } return nil } func (x *Message16507) GetField16523() []*UnusedEmptyMessage { if x != nil { return x.Field16523 } return nil } func (x *Message16507) GetField16524() string { if x != nil && x.Field16524 != nil { return *x.Field16524 } return "" } func (x *Message16507) GetField16525() int32 { if x != nil && x.Field16525 != nil { return *x.Field16525 } return 0 } func (x *Message16507) GetField16526() int32 { if x != nil && x.Field16526 != nil { return *x.Field16526 } return 0 } func (x *Message16507) GetField16527() *UnusedEmptyMessage { if x != nil { return x.Field16527 } return nil } func (x *Message16507) GetField16528() bool { if x != nil && x.Field16528 != nil { return *x.Field16528 } return false } func (x *Message16507) GetField16529() []string { if x != nil { return x.Field16529 } return nil } func (x *Message16507) GetField16530() float64 { if x != nil && x.Field16530 != nil { return *x.Field16530 } return 0 } func (x *Message16507) GetField16531() *Message16478 { if x != nil { return x.Field16531 } return nil } func (x *Message16507) GetField16532() bool { if x != nil && x.Field16532 != nil { return *x.Field16532 } return false } func (x *Message16507) GetField16533() string { if x != nil && x.Field16533 != nil { return *x.Field16533 } return "" } func (x *Message16507) GetField16534() bool { if x != nil && x.Field16534 != nil { return *x.Field16534 } return false } func (x *Message16507) GetField16535() bool { if x != nil && x.Field16535 != nil { return *x.Field16535 } return false } func (x *Message16507) GetField16536() bool { if x != nil && x.Field16536 != nil { return *x.Field16536 } return false } func (x *Message16507) GetField16537() bool { if x != nil && x.Field16537 != nil { return *x.Field16537 } return false } func (x *Message16507) GetField16538() bool { if x != nil && x.Field16538 != nil { return *x.Field16538 } return false } func (x *Message16507) GetField16539() bool { if x != nil && x.Field16539 != nil { return *x.Field16539 } return false } func (x *Message16507) GetField16540() bool { if x != nil && x.Field16540 != nil { return *x.Field16540 } return false } func (x *Message16507) GetField16541() []string { if x != nil { return x.Field16541 } return nil } type Message16564 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field16568 []*Message16552 `protobuf:"bytes,1,rep,name=field16568" json:"field16568,omitempty"` } func (x *Message16564) Reset() { *x = Message16564{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message16564) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message16564) ProtoMessage() {} func (x *Message16564) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message16564.ProtoReflect.Descriptor instead. func (*Message16564) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{21} } func (x *Message16564) GetField16568() []*Message16552 { if x != nil { return x.Field16568 } return nil } type Message16661 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field16671 []*Message16660 `protobuf:"bytes,1,rep,name=field16671" json:"field16671,omitempty"` Field16672 []uint64 `protobuf:"varint,2,rep,name=field16672" json:"field16672,omitempty"` } func (x *Message16661) Reset() { *x = Message16661{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message16661) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message16661) ProtoMessage() {} func (x *Message16661) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message16661.ProtoReflect.Descriptor instead. func (*Message16661) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{22} } func (x *Message16661) GetField16671() []*Message16660 { if x != nil { return x.Field16671 } return nil } func (x *Message16661) GetField16672() []uint64 { if x != nil { return x.Field16672 } return nil } type Message16746 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field16806 []*Message16727 `protobuf:"bytes,1,rep,name=field16806" json:"field16806,omitempty"` Field16807 *bool `protobuf:"varint,2,opt,name=field16807" json:"field16807,omitempty"` Field16808 *bool `protobuf:"varint,3,opt,name=field16808" json:"field16808,omitempty"` Field16809 []*Message16725 `protobuf:"bytes,4,rep,name=field16809" json:"field16809,omitempty"` } func (x *Message16746) Reset() { *x = Message16746{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message16746) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message16746) ProtoMessage() {} func (x *Message16746) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message16746.ProtoReflect.Descriptor instead. func (*Message16746) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{23} } func (x *Message16746) GetField16806() []*Message16727 { if x != nil { return x.Field16806 } return nil } func (x *Message16746) GetField16807() bool { if x != nil && x.Field16807 != nil { return *x.Field16807 } return false } func (x *Message16746) GetField16808() bool { if x != nil && x.Field16808 != nil { return *x.Field16808 } return false } func (x *Message16746) GetField16809() []*Message16725 { if x != nil { return x.Field16809 } return nil } type Message17786 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Message17787 []*Message17786_Message17787 `protobuf:"group,1,rep,name=Message17787,json=message17787" json:"message17787,omitempty"` Field18175 []*Message17782 `protobuf:"bytes,20,rep,name=field18175" json:"field18175,omitempty"` } func (x *Message17786) Reset() { *x = Message17786{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message17786) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message17786) ProtoMessage() {} func (x *Message17786) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message17786.ProtoReflect.Descriptor instead. func (*Message17786) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{24} } func (x *Message17786) GetMessage17787() []*Message17786_Message17787 { if x != nil { return x.Message17787 } return nil } func (x *Message17786) GetField18175() []*Message17782 { if x != nil { return x.Field18175 } return nil } type Message22857 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field22874 []*Message22853 `protobuf:"bytes,1,rep,name=field22874" json:"field22874,omitempty"` } func (x *Message22857) Reset() { *x = Message22857{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message22857) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message22857) ProtoMessage() {} func (x *Message22857) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message22857.ProtoReflect.Descriptor instead. func (*Message22857) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{25} } func (x *Message22857) GetField22874() []*Message22853 { if x != nil { return x.Field22874 } return nil } type Message24404 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Message24405 []*Message24404_Message24405 `protobuf:"group,1,rep,name=Message24405,json=message24405" json:"message24405,omitempty"` Field24684 *Message24403 `protobuf:"bytes,30,opt,name=field24684" json:"field24684,omitempty"` } func (x *Message24404) Reset() { *x = Message24404{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message24404) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message24404) ProtoMessage() {} func (x *Message24404) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message24404.ProtoReflect.Descriptor instead. func (*Message24404) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{26} } func (x *Message24404) GetMessage24405() []*Message24404_Message24405 { if x != nil { return x.Message24405 } return nil } func (x *Message24404) GetField24684() *Message24403 { if x != nil { return x.Field24684 } return nil } type Message27300 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field27302 []*UnusedEmptyMessage `protobuf:"bytes,1,rep,name=field27302" json:"field27302,omitempty"` Field27303 *string `protobuf:"bytes,2,opt,name=field27303" json:"field27303,omitempty"` } func (x *Message27300) Reset() { *x = Message27300{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message27300) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message27300) ProtoMessage() {} func (x *Message27300) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message27300.ProtoReflect.Descriptor instead. func (*Message27300) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{27} } func (x *Message27300) GetField27302() []*UnusedEmptyMessage { if x != nil { return x.Field27302 } return nil } func (x *Message27300) GetField27303() string { if x != nil && x.Field27303 != nil { return *x.Field27303 } return "" } type Message27453 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field27459 *string `protobuf:"bytes,15,opt,name=field27459" json:"field27459,omitempty"` Field27460 []string `protobuf:"bytes,1,rep,name=field27460" json:"field27460,omitempty"` Field27461 []float32 `protobuf:"fixed32,6,rep,name=field27461" json:"field27461,omitempty"` Field27462 []int32 `protobuf:"varint,27,rep,name=field27462" json:"field27462,omitempty"` Field27463 []int32 `protobuf:"varint,28,rep,name=field27463" json:"field27463,omitempty"` Field27464 []*Message27454 `protobuf:"bytes,24,rep,name=field27464" json:"field27464,omitempty"` Field27465 []string `protobuf:"bytes,2,rep,name=field27465" json:"field27465,omitempty"` Field27466 []float32 `protobuf:"fixed32,7,rep,name=field27466" json:"field27466,omitempty"` Field27467 []string `protobuf:"bytes,22,rep,name=field27467" json:"field27467,omitempty"` Field27468 []string `protobuf:"bytes,23,rep,name=field27468" json:"field27468,omitempty"` Field27469 *string `protobuf:"bytes,26,opt,name=field27469" json:"field27469,omitempty"` Field27470 []*Message27357 `protobuf:"bytes,8,rep,name=field27470" json:"field27470,omitempty"` Field27471 *Message27360 `protobuf:"bytes,16,opt,name=field27471" json:"field27471,omitempty"` Field27472 *string `protobuf:"bytes,25,opt,name=field27472" json:"field27472,omitempty"` Field27473 *string `protobuf:"bytes,11,opt,name=field27473" json:"field27473,omitempty"` Field27474 *bool `protobuf:"varint,13,opt,name=field27474" json:"field27474,omitempty"` Field27475 *bool `protobuf:"varint,14,opt,name=field27475" json:"field27475,omitempty"` Field27476 *bool `protobuf:"varint,17,opt,name=field27476" json:"field27476,omitempty"` Field27477 *UnusedEmptyMessage `protobuf:"bytes,12,opt,name=field27477" json:"field27477,omitempty"` Field27478 *bool `protobuf:"varint,34268945,opt,name=field27478" json:"field27478,omitempty"` Field27479 *bool `protobuf:"varint,20,opt,name=field27479" json:"field27479,omitempty"` Field27480 *string `protobuf:"bytes,21,opt,name=field27480" json:"field27480,omitempty"` Field27481 *UnusedEmptyMessage `protobuf:"bytes,10,opt,name=field27481" json:"field27481,omitempty"` } func (x *Message27453) Reset() { *x = Message27453{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message27453) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message27453) ProtoMessage() {} func (x *Message27453) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message27453.ProtoReflect.Descriptor instead. func (*Message27453) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{28} } func (x *Message27453) GetField27459() string { if x != nil && x.Field27459 != nil { return *x.Field27459 } return "" } func (x *Message27453) GetField27460() []string { if x != nil { return x.Field27460 } return nil } func (x *Message27453) GetField27461() []float32 { if x != nil { return x.Field27461 } return nil } func (x *Message27453) GetField27462() []int32 { if x != nil { return x.Field27462 } return nil } func (x *Message27453) GetField27463() []int32 { if x != nil { return x.Field27463 } return nil } func (x *Message27453) GetField27464() []*Message27454 { if x != nil { return x.Field27464 } return nil } func (x *Message27453) GetField27465() []string { if x != nil { return x.Field27465 } return nil } func (x *Message27453) GetField27466() []float32 { if x != nil { return x.Field27466 } return nil } func (x *Message27453) GetField27467() []string { if x != nil { return x.Field27467 } return nil } func (x *Message27453) GetField27468() []string { if x != nil { return x.Field27468 } return nil } func (x *Message27453) GetField27469() string { if x != nil && x.Field27469 != nil { return *x.Field27469 } return "" } func (x *Message27453) GetField27470() []*Message27357 { if x != nil { return x.Field27470 } return nil } func (x *Message27453) GetField27471() *Message27360 { if x != nil { return x.Field27471 } return nil } func (x *Message27453) GetField27472() string { if x != nil && x.Field27472 != nil { return *x.Field27472 } return "" } func (x *Message27453) GetField27473() string { if x != nil && x.Field27473 != nil { return *x.Field27473 } return "" } func (x *Message27453) GetField27474() bool { if x != nil && x.Field27474 != nil { return *x.Field27474 } return false } func (x *Message27453) GetField27475() bool { if x != nil && x.Field27475 != nil { return *x.Field27475 } return false } func (x *Message27453) GetField27476() bool { if x != nil && x.Field27476 != nil { return *x.Field27476 } return false } func (x *Message27453) GetField27477() *UnusedEmptyMessage { if x != nil { return x.Field27477 } return nil } func (x *Message27453) GetField27478() bool { if x != nil && x.Field27478 != nil { return *x.Field27478 } return false } func (x *Message27453) GetField27479() bool { if x != nil && x.Field27479 != nil { return *x.Field27479 } return false } func (x *Message27453) GetField27480() string { if x != nil && x.Field27480 != nil { return *x.Field27480 } return "" } func (x *Message27453) GetField27481() *UnusedEmptyMessage { if x != nil { return x.Field27481 } return nil } type Message3672_Message3673 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field3738 *Enum3476 `protobuf:"varint,4,req,name=field3738,enum=benchmarks.google_message3.Enum3476" json:"field3738,omitempty"` Field3739 *int32 `protobuf:"varint,5,req,name=field3739" json:"field3739,omitempty"` } func (x *Message3672_Message3673) Reset() { *x = Message3672_Message3673{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3672_Message3673) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3672_Message3673) ProtoMessage() {} func (x *Message3672_Message3673) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3672_Message3673.ProtoReflect.Descriptor instead. func (*Message3672_Message3673) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{2, 0} } func (x *Message3672_Message3673) GetField3738() Enum3476 { if x != nil && x.Field3738 != nil { return *x.Field3738 } return Enum3476_ENUM_VALUE3477 } func (x *Message3672_Message3673) GetField3739() int32 { if x != nil && x.Field3739 != nil { return *x.Field3739 } return 0 } type Message3672_Message3674 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field3740 *Enum3476 `protobuf:"varint,7,req,name=field3740,enum=benchmarks.google_message3.Enum3476" json:"field3740,omitempty"` Field3741 *int32 `protobuf:"varint,8,req,name=field3741" json:"field3741,omitempty"` } func (x *Message3672_Message3674) Reset() { *x = Message3672_Message3674{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3672_Message3674) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3672_Message3674) ProtoMessage() {} func (x *Message3672_Message3674) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3672_Message3674.ProtoReflect.Descriptor instead. func (*Message3672_Message3674) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{2, 1} } func (x *Message3672_Message3674) GetField3740() Enum3476 { if x != nil && x.Field3740 != nil { return *x.Field3740 } return Enum3476_ENUM_VALUE3477 } func (x *Message3672_Message3674) GetField3741() int32 { if x != nil && x.Field3741 != nil { return *x.Field3741 } return 0 } type Message17786_Message17787 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field18177 *int32 `protobuf:"varint,2,req,name=field18177" json:"field18177,omitempty"` Field18178 *int32 `protobuf:"varint,3,req,name=field18178" json:"field18178,omitempty"` Field18179 *Message17783 `protobuf:"bytes,4,opt,name=field18179" json:"field18179,omitempty"` Field18180 *UnusedEmptyMessage `protobuf:"bytes,5,opt,name=field18180" json:"field18180,omitempty"` Field18181 *UnusedEmptyMessage `protobuf:"bytes,6,opt,name=field18181" json:"field18181,omitempty"` Field18182 []*UnusedEmptyMessage `protobuf:"bytes,8,rep,name=field18182" json:"field18182,omitempty"` Field18183 *UnusedEmptyMessage `protobuf:"bytes,9,opt,name=field18183" json:"field18183,omitempty"` Field18184 *Message17726 `protobuf:"bytes,10,opt,name=field18184" json:"field18184,omitempty"` Field18185 *UnusedEmptyMessage `protobuf:"bytes,11,opt,name=field18185" json:"field18185,omitempty"` Field18186 *Message16945 `protobuf:"bytes,102,opt,name=field18186" json:"field18186,omitempty"` Field18187 *UnusedEmptyMessage `protobuf:"bytes,12,opt,name=field18187" json:"field18187,omitempty"` Field18188 *UnusedEmptyMessage `protobuf:"bytes,13,opt,name=field18188" json:"field18188,omitempty"` Field18189 *UnusedEmptyMessage `protobuf:"bytes,7,opt,name=field18189" json:"field18189,omitempty"` Field18190 *UnusedEmptyMessage `protobuf:"bytes,100,opt,name=field18190" json:"field18190,omitempty"` Field18191 *UnusedEmptyMessage `protobuf:"bytes,101,opt,name=field18191" json:"field18191,omitempty"` Field18192 *UnusedEmptyMessage `protobuf:"bytes,14,opt,name=field18192" json:"field18192,omitempty"` Field18193 *UnusedEmptyMessage `protobuf:"bytes,19,opt,name=field18193" json:"field18193,omitempty"` Field18194 *UnusedEmptyMessage `protobuf:"bytes,22,opt,name=field18194" json:"field18194,omitempty"` Field18195 *UnusedEmptyMessage `protobuf:"bytes,24,opt,name=field18195" json:"field18195,omitempty"` Field18196 *Enum16925 `protobuf:"varint,21,opt,name=field18196,enum=benchmarks.google_message3.Enum16925" json:"field18196,omitempty"` Field18197 *bool `protobuf:"varint,18,opt,name=field18197" json:"field18197,omitempty"` Field18198 []UnusedEnum `protobuf:"varint,23,rep,name=field18198,enum=benchmarks.google_message3.UnusedEnum" json:"field18198,omitempty"` Field18199 *UnusedEmptyMessage `protobuf:"bytes,15,opt,name=field18199" json:"field18199,omitempty"` Field18200 *string `protobuf:"bytes,16,opt,name=field18200" json:"field18200,omitempty"` Field18201 *string `protobuf:"bytes,17,opt,name=field18201" json:"field18201,omitempty"` Field18202 *bool `protobuf:"varint,99,opt,name=field18202" json:"field18202,omitempty"` } func (x *Message17786_Message17787) Reset() { *x = Message17786_Message17787{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message17786_Message17787) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message17786_Message17787) ProtoMessage() {} func (x *Message17786_Message17787) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message17786_Message17787.ProtoReflect.Descriptor instead. func (*Message17786_Message17787) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{24, 0} } func (x *Message17786_Message17787) GetField18177() int32 { if x != nil && x.Field18177 != nil { return *x.Field18177 } return 0 } func (x *Message17786_Message17787) GetField18178() int32 { if x != nil && x.Field18178 != nil { return *x.Field18178 } return 0 } func (x *Message17786_Message17787) GetField18179() *Message17783 { if x != nil { return x.Field18179 } return nil } func (x *Message17786_Message17787) GetField18180() *UnusedEmptyMessage { if x != nil { return x.Field18180 } return nil } func (x *Message17786_Message17787) GetField18181() *UnusedEmptyMessage { if x != nil { return x.Field18181 } return nil } func (x *Message17786_Message17787) GetField18182() []*UnusedEmptyMessage { if x != nil { return x.Field18182 } return nil } func (x *Message17786_Message17787) GetField18183() *UnusedEmptyMessage { if x != nil { return x.Field18183 } return nil } func (x *Message17786_Message17787) GetField18184() *Message17726 { if x != nil { return x.Field18184 } return nil } func (x *Message17786_Message17787) GetField18185() *UnusedEmptyMessage { if x != nil { return x.Field18185 } return nil } func (x *Message17786_Message17787) GetField18186() *Message16945 { if x != nil { return x.Field18186 } return nil } func (x *Message17786_Message17787) GetField18187() *UnusedEmptyMessage { if x != nil { return x.Field18187 } return nil } func (x *Message17786_Message17787) GetField18188() *UnusedEmptyMessage { if x != nil { return x.Field18188 } return nil } func (x *Message17786_Message17787) GetField18189() *UnusedEmptyMessage { if x != nil { return x.Field18189 } return nil } func (x *Message17786_Message17787) GetField18190() *UnusedEmptyMessage { if x != nil { return x.Field18190 } return nil } func (x *Message17786_Message17787) GetField18191() *UnusedEmptyMessage { if x != nil { return x.Field18191 } return nil } func (x *Message17786_Message17787) GetField18192() *UnusedEmptyMessage { if x != nil { return x.Field18192 } return nil } func (x *Message17786_Message17787) GetField18193() *UnusedEmptyMessage { if x != nil { return x.Field18193 } return nil } func (x *Message17786_Message17787) GetField18194() *UnusedEmptyMessage { if x != nil { return x.Field18194 } return nil } func (x *Message17786_Message17787) GetField18195() *UnusedEmptyMessage { if x != nil { return x.Field18195 } return nil } func (x *Message17786_Message17787) GetField18196() Enum16925 { if x != nil && x.Field18196 != nil { return *x.Field18196 } return Enum16925_ENUM_VALUE16926 } func (x *Message17786_Message17787) GetField18197() bool { if x != nil && x.Field18197 != nil { return *x.Field18197 } return false } func (x *Message17786_Message17787) GetField18198() []UnusedEnum { if x != nil { return x.Field18198 } return nil } func (x *Message17786_Message17787) GetField18199() *UnusedEmptyMessage { if x != nil { return x.Field18199 } return nil } func (x *Message17786_Message17787) GetField18200() string { if x != nil && x.Field18200 != nil { return *x.Field18200 } return "" } func (x *Message17786_Message17787) GetField18201() string { if x != nil && x.Field18201 != nil { return *x.Field18201 } return "" } func (x *Message17786_Message17787) GetField18202() bool { if x != nil && x.Field18202 != nil { return *x.Field18202 } return false } type Message24404_Message24405 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field24686 *int32 `protobuf:"varint,2,req,name=field24686" json:"field24686,omitempty"` Field24687 *int32 `protobuf:"varint,3,req,name=field24687" json:"field24687,omitempty"` Field24688 *Message24317 `protobuf:"bytes,4,opt,name=field24688" json:"field24688,omitempty"` Field24689 *UnusedEmptyMessage `protobuf:"bytes,5,opt,name=field24689" json:"field24689,omitempty"` Field24690 *Message24376 `protobuf:"bytes,6,opt,name=field24690" json:"field24690,omitempty"` Field24691 *Message24345 `protobuf:"bytes,7,opt,name=field24691" json:"field24691,omitempty"` Field24692 *UnusedEmptyMessage `protobuf:"bytes,8,opt,name=field24692" json:"field24692,omitempty"` Field24693 *Message24379 `protobuf:"bytes,9,opt,name=field24693" json:"field24693,omitempty"` Field24694 *UnusedEmptyMessage `protobuf:"bytes,10,opt,name=field24694" json:"field24694,omitempty"` Field24695 *UnusedEmptyMessage `protobuf:"bytes,11,opt,name=field24695" json:"field24695,omitempty"` Field24696 *Message24391 `protobuf:"bytes,12,opt,name=field24696" json:"field24696,omitempty"` Field24697 *UnusedEmptyMessage `protobuf:"bytes,13,opt,name=field24697" json:"field24697,omitempty"` Field24698 *UnusedEmptyMessage `protobuf:"bytes,14,opt,name=field24698" json:"field24698,omitempty"` Field24699 *UnusedEmptyMessage `protobuf:"bytes,22,opt,name=field24699" json:"field24699,omitempty"` Field24700 *UnusedEmptyMessage `protobuf:"bytes,23,opt,name=field24700" json:"field24700,omitempty"` Field24701 *UnusedEmptyMessage `protobuf:"bytes,25,opt,name=field24701" json:"field24701,omitempty"` Field24702 *Enum16925 `protobuf:"varint,18,opt,name=field24702,enum=benchmarks.google_message3.Enum16925" json:"field24702,omitempty"` Field24703 *float32 `protobuf:"fixed32,20,opt,name=field24703" json:"field24703,omitempty"` Field24704 *bool `protobuf:"varint,19,opt,name=field24704" json:"field24704,omitempty"` Field24705 []Enum16891 `protobuf:"varint,24,rep,name=field24705,enum=benchmarks.google_message3.Enum16891" json:"field24705,omitempty"` Field24706 *UnusedEmptyMessage `protobuf:"bytes,15,opt,name=field24706" json:"field24706,omitempty"` Field24707 *string `protobuf:"bytes,16,opt,name=field24707" json:"field24707,omitempty"` Field24708 *string `protobuf:"bytes,17,opt,name=field24708" json:"field24708,omitempty"` Field24709 *float32 `protobuf:"fixed32,21,opt,name=field24709" json:"field24709,omitempty"` Field24710 *bool `protobuf:"varint,26,opt,name=field24710" json:"field24710,omitempty"` Field24711 *UnusedEnum `protobuf:"varint,27,opt,name=field24711,enum=benchmarks.google_message3.UnusedEnum" json:"field24711,omitempty"` Field24712 *bool `protobuf:"varint,28,opt,name=field24712" json:"field24712,omitempty"` Field24713 *UnusedEnum `protobuf:"varint,29,opt,name=field24713,enum=benchmarks.google_message3.UnusedEnum" json:"field24713,omitempty"` Field24714 *bool `protobuf:"varint,31,opt,name=field24714" json:"field24714,omitempty"` Field24715 *bool `protobuf:"varint,99,opt,name=field24715" json:"field24715,omitempty"` Field24716 *int64 `protobuf:"varint,32,opt,name=field24716" json:"field24716,omitempty"` } func (x *Message24404_Message24405) Reset() { *x = Message24404_Message24405{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message24404_Message24405) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message24404_Message24405) ProtoMessage() {} func (x *Message24404_Message24405) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message24404_Message24405.ProtoReflect.Descriptor instead. func (*Message24404_Message24405) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP(), []int{26, 0} } func (x *Message24404_Message24405) GetField24686() int32 { if x != nil && x.Field24686 != nil { return *x.Field24686 } return 0 } func (x *Message24404_Message24405) GetField24687() int32 { if x != nil && x.Field24687 != nil { return *x.Field24687 } return 0 } func (x *Message24404_Message24405) GetField24688() *Message24317 { if x != nil { return x.Field24688 } return nil } func (x *Message24404_Message24405) GetField24689() *UnusedEmptyMessage { if x != nil { return x.Field24689 } return nil } func (x *Message24404_Message24405) GetField24690() *Message24376 { if x != nil { return x.Field24690 } return nil } func (x *Message24404_Message24405) GetField24691() *Message24345 { if x != nil { return x.Field24691 } return nil } func (x *Message24404_Message24405) GetField24692() *UnusedEmptyMessage { if x != nil { return x.Field24692 } return nil } func (x *Message24404_Message24405) GetField24693() *Message24379 { if x != nil { return x.Field24693 } return nil } func (x *Message24404_Message24405) GetField24694() *UnusedEmptyMessage { if x != nil { return x.Field24694 } return nil } func (x *Message24404_Message24405) GetField24695() *UnusedEmptyMessage { if x != nil { return x.Field24695 } return nil } func (x *Message24404_Message24405) GetField24696() *Message24391 { if x != nil { return x.Field24696 } return nil } func (x *Message24404_Message24405) GetField24697() *UnusedEmptyMessage { if x != nil { return x.Field24697 } return nil } func (x *Message24404_Message24405) GetField24698() *UnusedEmptyMessage { if x != nil { return x.Field24698 } return nil } func (x *Message24404_Message24405) GetField24699() *UnusedEmptyMessage { if x != nil { return x.Field24699 } return nil } func (x *Message24404_Message24405) GetField24700() *UnusedEmptyMessage { if x != nil { return x.Field24700 } return nil } func (x *Message24404_Message24405) GetField24701() *UnusedEmptyMessage { if x != nil { return x.Field24701 } return nil } func (x *Message24404_Message24405) GetField24702() Enum16925 { if x != nil && x.Field24702 != nil { return *x.Field24702 } return Enum16925_ENUM_VALUE16926 } func (x *Message24404_Message24405) GetField24703() float32 { if x != nil && x.Field24703 != nil { return *x.Field24703 } return 0 } func (x *Message24404_Message24405) GetField24704() bool { if x != nil && x.Field24704 != nil { return *x.Field24704 } return false } func (x *Message24404_Message24405) GetField24705() []Enum16891 { if x != nil { return x.Field24705 } return nil } func (x *Message24404_Message24405) GetField24706() *UnusedEmptyMessage { if x != nil { return x.Field24706 } return nil } func (x *Message24404_Message24405) GetField24707() string { if x != nil && x.Field24707 != nil { return *x.Field24707 } return "" } func (x *Message24404_Message24405) GetField24708() string { if x != nil && x.Field24708 != nil { return *x.Field24708 } return "" } func (x *Message24404_Message24405) GetField24709() float32 { if x != nil && x.Field24709 != nil { return *x.Field24709 } return 0 } func (x *Message24404_Message24405) GetField24710() bool { if x != nil && x.Field24710 != nil { return *x.Field24710 } return false } func (x *Message24404_Message24405) GetField24711() UnusedEnum { if x != nil && x.Field24711 != nil { return *x.Field24711 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message24404_Message24405) GetField24712() bool { if x != nil && x.Field24712 != nil { return *x.Field24712 } return false } func (x *Message24404_Message24405) GetField24713() UnusedEnum { if x != nil && x.Field24713 != nil { return *x.Field24713 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message24404_Message24405) GetField24714() bool { if x != nil && x.Field24714 != nil { return *x.Field24714 } return false } func (x *Message24404_Message24405) GetField24715() bool { if x != nil && x.Field24715 != nil { return *x.Field24715 } return false } func (x *Message24404_Message24405) GetField24716() int64 { if x != nil && x.Field24716 != nil { return *x.Field24716 } return 0 } var file_datasets_google_message3_benchmark_message3_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*Message16945)(nil), ExtensionType: (*string)(nil), Field: 472, Name: "benchmarks.google_message3.field17026", Tag: "bytes,472,opt,name=field17026", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]string)(nil), Field: 818, Name: "benchmarks.google_message3.field17027", Tag: "bytes,818,rep,name=field17027", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: (*Message0)(nil), Field: 215, Name: "benchmarks.google_message3.field17031", Tag: "bytes,215,opt,name=field17031", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]*Message0)(nil), Field: 292, Name: "benchmarks.google_message3.field17032", Tag: "bytes,292,rep,name=field17032", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]*Message0)(nil), Field: 234, Name: "benchmarks.google_message3.field17038", Tag: "bytes,234,rep,name=field17038", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]*Message0)(nil), Field: 235, Name: "benchmarks.google_message3.field17039", Tag: "bytes,235,rep,name=field17039", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: (*Message0)(nil), Field: 246, Name: "benchmarks.google_message3.field17042", Tag: "bytes,246,opt,name=field17042", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: (*string)(nil), Field: 224, Name: "benchmarks.google_message3.field17043", Tag: "bytes,224,opt,name=field17043", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: (*string)(nil), Field: 225, Name: "benchmarks.google_message3.field17044", Tag: "bytes,225,opt,name=field17044", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]string)(nil), Field: 63, Name: "benchmarks.google_message3.field17048", Tag: "bytes,63,rep,name=field17048", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]string)(nil), Field: 64, Name: "benchmarks.google_message3.field17049", Tag: "bytes,64,rep,name=field17049", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]*Message0)(nil), Field: 233, Name: "benchmarks.google_message3.field17052", Tag: "bytes,233,rep,name=field17052", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]*Message0)(nil), Field: 66, Name: "benchmarks.google_message3.field17053", Tag: "bytes,66,rep,name=field17053", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]string)(nil), Field: 275, Name: "benchmarks.google_message3.field17056", Tag: "bytes,275,rep,name=field17056", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: (*string)(nil), Field: 226, Name: "benchmarks.google_message3.field17057", Tag: "bytes,226,opt,name=field17057", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]*Message0)(nil), Field: 27, Name: "benchmarks.google_message3.field17060", Tag: "bytes,27,rep,name=field17060", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]string)(nil), Field: 75, Name: "benchmarks.google_message3.field17073", Tag: "bytes,75,rep,name=field17073", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]*Message0)(nil), Field: 77, Name: "benchmarks.google_message3.field17076", Tag: "bytes,77,rep,name=field17076", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]string)(nil), Field: 296, Name: "benchmarks.google_message3.field17078", Tag: "bytes,296,rep,name=field17078", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]*Message0)(nil), Field: 160, Name: "benchmarks.google_message3.field17082", Tag: "bytes,160,rep,name=field17082", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]*Message0)(nil), Field: 585, Name: "benchmarks.google_message3.field17091", Tag: "bytes,585,rep,name=field17091", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]*Message0)(nil), Field: 987, Name: "benchmarks.google_message3.field17098", Tag: "bytes,987,rep,name=field17098", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]*Message0)(nil), Field: 157, Name: "benchmarks.google_message3.field17101", Tag: "bytes,157,rep,name=field17101", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]string)(nil), Field: 158, Name: "benchmarks.google_message3.field17102", Tag: "bytes,158,rep,name=field17102", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]string)(nil), Field: 166, Name: "benchmarks.google_message3.field17107", Tag: "bytes,166,rep,name=field17107", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]string)(nil), Field: 567, Name: "benchmarks.google_message3.field17133", Tag: "bytes,567,rep,name=field17133", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]string)(nil), Field: 572, Name: "benchmarks.google_message3.field17134", Tag: "bytes,572,rep,name=field17134", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]string)(nil), Field: 49, Name: "benchmarks.google_message3.field17160", Tag: "bytes,49,rep,name=field17160", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]string)(nil), Field: 32, Name: "benchmarks.google_message3.field17168", Tag: "bytes,32,rep,name=field17168", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]string)(nil), Field: 34, Name: "benchmarks.google_message3.field17170", Tag: "bytes,34,rep,name=field17170", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]*Message0)(nil), Field: 509, Name: "benchmarks.google_message3.field17172", Tag: "bytes,509,rep,name=field17172", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]string)(nil), Field: 39, Name: "benchmarks.google_message3.field17174", Tag: "bytes,39,rep,name=field17174", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]*Message0)(nil), Field: 40, Name: "benchmarks.google_message3.field17175", Tag: "bytes,40,rep,name=field17175", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]*Message0)(nil), Field: 511, Name: "benchmarks.google_message3.field17178", Tag: "bytes,511,rep,name=field17178", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]*Message0)(nil), Field: 50, Name: "benchmarks.google_message3.field17185", Tag: "bytes,50,rep,name=field17185", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]int32)(nil), Field: 1081, Name: "benchmarks.google_message3.field17207", Tag: "varint,1081,rep,name=field17207", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]*Message0)(nil), Field: 184, Name: "benchmarks.google_message3.field17238", Tag: "bytes,184,rep,name=field17238", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]*Message0)(nil), Field: 177, Name: "benchmarks.google_message3.field17289", Tag: "bytes,177,rep,name=field17289", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]*Message0)(nil), Field: 178, Name: "benchmarks.google_message3.field17290", Tag: "bytes,178,rep,name=field17290", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]*Message0)(nil), Field: 474, Name: "benchmarks.google_message3.field17296", Tag: "bytes,474,rep,name=field17296", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]string)(nil), Field: 44, Name: "benchmarks.google_message3.field17298", Tag: "bytes,44,rep,name=field17298", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]*Message0)(nil), Field: 47, Name: "benchmarks.google_message3.field17301", Tag: "bytes,47,rep,name=field17301", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: (*Message0)(nil), Field: 21, Name: "benchmarks.google_message3.field17412", Tag: "bytes,21,opt,name=field17412", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]*Message0)(nil), Field: 132, Name: "benchmarks.google_message3.field17438", Tag: "bytes,132,rep,name=field17438", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]*Message0)(nil), Field: 512, Name: "benchmarks.google_message3.field17458", Tag: "bytes,512,rep,name=field17458", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]string)(nil), Field: 560, Name: "benchmarks.google_message3.field17460", Tag: "bytes,560,rep,name=field17460", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]string)(nil), Field: 552, Name: "benchmarks.google_message3.field17466", Tag: "bytes,552,rep,name=field17466", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]*Message0)(nil), Field: 1080, Name: "benchmarks.google_message3.field17617", Tag: "bytes,1080,rep,name=field17617", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message16945)(nil), ExtensionType: ([]int32)(nil), Field: 1084, Name: "benchmarks.google_message3.field17618", Tag: "varint,1084,rep,name=field17618", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message1327)(nil), Field: 23104162, Name: "benchmarks.google_message3.Message1327.field1373", Tag: "bytes,23104162,opt,name=field1373", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message3672)(nil), Field: 3144435, Name: "benchmarks.google_message3.Message3672.field3737", Tag: "bytes,3144435,opt,name=field3737", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message3804)(nil), Field: 59241828, Name: "benchmarks.google_message3.Message3804.field3825", Tag: "bytes,59241828,opt,name=field3825", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message6849)(nil), Field: 107558455, Name: "benchmarks.google_message3.Message6849.field6911", Tag: "bytes,107558455,opt,name=field6911", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message6866)(nil), Field: 22259060, Name: "benchmarks.google_message3.Message6866.field6974", Tag: "bytes,22259060,opt,name=field6974", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message6870)(nil), Field: 90034652, Name: "benchmarks.google_message3.Message6870.field6992", Tag: "bytes,90034652,opt,name=field6992", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message7651)(nil), Field: 55876009, Name: "benchmarks.google_message3.Message7651.field7730", Tag: "bytes,55876009,opt,name=field7730", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message7864)(nil), Field: 44542730, Name: "benchmarks.google_message3.Message7864.field7872", Tag: "bytes,44542730,opt,name=field7872", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message7929)(nil), Field: 53392238, Name: "benchmarks.google_message3.Message7929.field7962", Tag: "bytes,53392238,opt,name=field7962", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message8508)(nil), Field: 3811804, Name: "benchmarks.google_message3.Message8508.field8534", Tag: "bytes,3811804,opt,name=field8534", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message9122)(nil), Field: 120398939, Name: "benchmarks.google_message3.Message9122.field9134", Tag: "bytes,120398939,opt,name=field9134", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message10177)(nil), Field: 26801105, Name: "benchmarks.google_message3.Message10177.field10271", Tag: "bytes,26801105,opt,name=field10271", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message10155)(nil), ExtensionType: (*Message10278)(nil), Field: 29374161, Name: "benchmarks.google_message3.Message10278.field10289", Tag: "bytes,29374161,opt,name=field10289", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message10155)(nil), ExtensionType: (*Message10323)(nil), Field: 27922524, Name: "benchmarks.google_message3.Message10323.field10361", Tag: "bytes,27922524,opt,name=field10361", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message10155)(nil), ExtensionType: (*Message10324)(nil), Field: 27832297, Name: "benchmarks.google_message3.Message10324.field10364", Tag: "bytes,27832297,opt,name=field10364", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message11990)(nil), Field: 21265426, Name: "benchmarks.google_message3.Message11990.field12031", Tag: "bytes,21265426,opt,name=field12031", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message12691)(nil), Field: 28426536, Name: "benchmarks.google_message3.Message12691.field12716", Tag: "bytes,28426536,opt,name=field12716", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message12870)(nil), Field: 5447656, Name: "benchmarks.google_message3.Message12870.field12899", Tag: "bytes,5447656,opt,name=field12899", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message13145)(nil), ExtensionType: (*Message13154)(nil), Field: 47301086, Name: "benchmarks.google_message3.Message13154.field13166", Tag: "bytes,47301086,opt,name=field13166", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message16507)(nil), Field: 5569941, Name: "benchmarks.google_message3.Message16507.field16542", Tag: "bytes,5569941,opt,name=field16542", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message16564)(nil), Field: 25830030, Name: "benchmarks.google_message3.Message16564.field16569", Tag: "bytes,25830030,opt,name=field16569", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message16661)(nil), Field: 31274398, Name: "benchmarks.google_message3.Message16661.field16673", Tag: "bytes,31274398,opt,name=field16673", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message16746)(nil), Field: 28406765, Name: "benchmarks.google_message3.Message16746.field16810", Tag: "bytes,28406765,opt,name=field16810", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message17786)(nil), Field: 11823055, Name: "benchmarks.google_message3.Message17786.field18176", Tag: "bytes,11823055,opt,name=field18176", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message10155)(nil), ExtensionType: (*Message22857)(nil), Field: 67799715, Name: "benchmarks.google_message3.Message22857.field22875", Tag: "bytes,67799715,opt,name=field22875", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message24404)(nil), Field: 9129287, Name: "benchmarks.google_message3.Message24404.field24685", Tag: "bytes,9129287,opt,name=field24685", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message27300)(nil), Field: 24956467, Name: "benchmarks.google_message3.Message27300.field27304", Tag: "bytes,24956467,opt,name=field27304", Filename: "datasets/google_message3/benchmark_message3.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message27453)(nil), Field: 8086204, Name: "benchmarks.google_message3.Message27453.field27482", Tag: "bytes,8086204,opt,name=field27482", Filename: "datasets/google_message3/benchmark_message3.proto", }, } // Extension fields to Message16945. var ( // optional string field17026 = 472; E_Field17026 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[0] // repeated string field17027 = 818; E_Field17027 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[1] // optional benchmarks.google_message3.Message0 field17031 = 215; E_Field17031 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[2] // repeated benchmarks.google_message3.Message0 field17032 = 292; E_Field17032 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[3] // repeated benchmarks.google_message3.Message0 field17038 = 234; E_Field17038 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[4] // repeated benchmarks.google_message3.Message0 field17039 = 235; E_Field17039 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[5] // optional benchmarks.google_message3.Message0 field17042 = 246; E_Field17042 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[6] // optional string field17043 = 224; E_Field17043 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[7] // optional string field17044 = 225; E_Field17044 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[8] // repeated string field17048 = 63; E_Field17048 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[9] // repeated string field17049 = 64; E_Field17049 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[10] // repeated benchmarks.google_message3.Message0 field17052 = 233; E_Field17052 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[11] // repeated benchmarks.google_message3.Message0 field17053 = 66; E_Field17053 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[12] // repeated string field17056 = 275; E_Field17056 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[13] // optional string field17057 = 226; E_Field17057 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[14] // repeated benchmarks.google_message3.Message0 field17060 = 27; E_Field17060 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[15] // repeated string field17073 = 75; E_Field17073 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[16] // repeated benchmarks.google_message3.Message0 field17076 = 77; E_Field17076 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[17] // repeated string field17078 = 296; E_Field17078 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[18] // repeated benchmarks.google_message3.Message0 field17082 = 160; E_Field17082 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[19] // repeated benchmarks.google_message3.Message0 field17091 = 585; E_Field17091 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[20] // repeated benchmarks.google_message3.Message0 field17098 = 987; E_Field17098 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[21] // repeated benchmarks.google_message3.Message0 field17101 = 157; E_Field17101 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[22] // repeated string field17102 = 158; E_Field17102 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[23] // repeated string field17107 = 166; E_Field17107 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[24] // repeated string field17133 = 567; E_Field17133 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[25] // repeated string field17134 = 572; E_Field17134 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[26] // repeated string field17160 = 49; E_Field17160 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[27] // repeated string field17168 = 32; E_Field17168 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[28] // repeated string field17170 = 34; E_Field17170 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[29] // repeated benchmarks.google_message3.Message0 field17172 = 509; E_Field17172 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[30] // repeated string field17174 = 39; E_Field17174 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[31] // repeated benchmarks.google_message3.Message0 field17175 = 40; E_Field17175 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[32] // repeated benchmarks.google_message3.Message0 field17178 = 511; E_Field17178 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[33] // repeated benchmarks.google_message3.Message0 field17185 = 50; E_Field17185 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[34] // repeated int32 field17207 = 1081; E_Field17207 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[35] // repeated benchmarks.google_message3.Message0 field17238 = 184; E_Field17238 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[36] // repeated benchmarks.google_message3.Message0 field17289 = 177; E_Field17289 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[37] // repeated benchmarks.google_message3.Message0 field17290 = 178; E_Field17290 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[38] // repeated benchmarks.google_message3.Message0 field17296 = 474; E_Field17296 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[39] // repeated string field17298 = 44; E_Field17298 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[40] // repeated benchmarks.google_message3.Message0 field17301 = 47; E_Field17301 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[41] // optional benchmarks.google_message3.Message0 field17412 = 21; E_Field17412 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[42] // repeated benchmarks.google_message3.Message0 field17438 = 132; E_Field17438 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[43] // repeated benchmarks.google_message3.Message0 field17458 = 512; E_Field17458 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[44] // repeated string field17460 = 560; E_Field17460 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[45] // repeated string field17466 = 552; E_Field17466 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[46] // repeated benchmarks.google_message3.Message0 field17617 = 1080; E_Field17617 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[47] // repeated int32 field17618 = 1084; E_Field17618 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[48] ) // Extension fields to Message0. var ( // optional benchmarks.google_message3.Message1327 field1373 = 23104162; E_Message1327_Field1373 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[49] // optional benchmarks.google_message3.Message3672 field3737 = 3144435; E_Message3672_Field3737 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[50] // optional benchmarks.google_message3.Message3804 field3825 = 59241828; E_Message3804_Field3825 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[51] // optional benchmarks.google_message3.Message6849 field6911 = 107558455; E_Message6849_Field6911 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[52] // optional benchmarks.google_message3.Message6866 field6974 = 22259060; E_Message6866_Field6974 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[53] // optional benchmarks.google_message3.Message6870 field6992 = 90034652; E_Message6870_Field6992 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[54] // optional benchmarks.google_message3.Message7651 field7730 = 55876009; E_Message7651_Field7730 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[55] // optional benchmarks.google_message3.Message7864 field7872 = 44542730; E_Message7864_Field7872 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[56] // optional benchmarks.google_message3.Message7929 field7962 = 53392238; E_Message7929_Field7962 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[57] // optional benchmarks.google_message3.Message8508 field8534 = 3811804; E_Message8508_Field8534 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[58] // optional benchmarks.google_message3.Message9122 field9134 = 120398939; E_Message9122_Field9134 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[59] // optional benchmarks.google_message3.Message10177 field10271 = 26801105; E_Message10177_Field10271 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[60] // optional benchmarks.google_message3.Message11990 field12031 = 21265426; E_Message11990_Field12031 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[64] // optional benchmarks.google_message3.Message12691 field12716 = 28426536; E_Message12691_Field12716 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[65] // optional benchmarks.google_message3.Message12870 field12899 = 5447656; E_Message12870_Field12899 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[66] // optional benchmarks.google_message3.Message16507 field16542 = 5569941; E_Message16507_Field16542 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[68] // optional benchmarks.google_message3.Message16564 field16569 = 25830030; E_Message16564_Field16569 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[69] // optional benchmarks.google_message3.Message16661 field16673 = 31274398; E_Message16661_Field16673 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[70] // optional benchmarks.google_message3.Message16746 field16810 = 28406765; E_Message16746_Field16810 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[71] // optional benchmarks.google_message3.Message17786 field18176 = 11823055; E_Message17786_Field18176 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[72] // optional benchmarks.google_message3.Message24404 field24685 = 9129287; E_Message24404_Field24685 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[74] // optional benchmarks.google_message3.Message27300 field27304 = 24956467; E_Message27300_Field27304 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[75] // optional benchmarks.google_message3.Message27453 field27482 = 8086204; E_Message27453_Field27482 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[76] ) // Extension fields to Message10155. var ( // optional benchmarks.google_message3.Message10278 field10289 = 29374161; E_Message10278_Field10289 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[61] // optional benchmarks.google_message3.Message10323 field10361 = 27922524; E_Message10323_Field10361 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[62] // optional benchmarks.google_message3.Message10324 field10364 = 27832297; E_Message10324_Field10364 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[63] // optional benchmarks.google_message3.Message22857 field22875 = 67799715; E_Message22857_Field22875 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[73] ) // Extension fields to Message13145. var ( // optional benchmarks.google_message3.Message13154 field13166 = 47301086; E_Message13154_Field13166 = &file_datasets_google_message3_benchmark_message3_proto_extTypes[67] ) var File_datasets_google_message3_benchmark_message3_proto protoreflect.FileDescriptor var file_datasets_google_message3_benchmark_message3_proto_rawDesc = []byte{ 0x0a, 0x31, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x35, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x37, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x38, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa6, 0x09, 0x0a, 0x0e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x31, 0x39, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x37, 0x34, 0x38, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x31, 0x39, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x32, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x32, 0x30, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x32, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x36, 0x32, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x32, 0x31, 0x12, 0x46, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x32, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x35, 0x32, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x32, 0x32, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x32, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x32, 0x33, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x32, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x32, 0x34, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x32, 0x35, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x32, 0x35, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x32, 0x36, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x32, 0x36, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x32, 0x37, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x32, 0x37, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x32, 0x38, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x32, 0x38, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x32, 0x39, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x32, 0x39, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x33, 0x30, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x33, 0x30, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x33, 0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x33, 0x31, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x33, 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x33, 0x32, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x33, 0x33, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x33, 0x33, 0x22, 0xae, 0x03, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x32, 0x37, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x36, 0x39, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x36, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x37, 0x30, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x32, 0x38, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x37, 0x30, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x37, 0x31, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x37, 0x31, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x37, 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x37, 0x32, 0x32, 0x6e, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x37, 0x33, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xa2, 0x95, 0x82, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x32, 0x37, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x37, 0x33, 0x22, 0xf9, 0x06, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x37, 0x32, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x37, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x34, 0x37, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x38, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x39, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x39, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x37, 0x33, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x33, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x37, 0x32, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x37, 0x33, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x37, 0x33, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x37, 0x34, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x33, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x37, 0x32, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x37, 0x34, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x37, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x33, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x34, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x34, 0x37, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x35, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x35, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x36, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x36, 0x1a, 0x6f, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x37, 0x33, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x38, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x34, 0x37, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x39, 0x18, 0x05, 0x20, 0x02, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x39, 0x1a, 0x6f, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x37, 0x34, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x34, 0x30, 0x18, 0x07, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x34, 0x37, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x34, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x34, 0x31, 0x18, 0x08, 0x20, 0x02, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x34, 0x31, 0x32, 0x6e, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x37, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xf3, 0xf5, 0xbf, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x37, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x37, 0x22, 0x9b, 0x03, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x38, 0x30, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x31, 0x38, 0x18, 0x01, 0x20, 0x02, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x31, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x31, 0x39, 0x18, 0x02, 0x20, 0x02, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x31, 0x39, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x32, 0x30, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x38, 0x30, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x32, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x32, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x32, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x32, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x32, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x32, 0x33, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x32, 0x33, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x32, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x37, 0x38, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x32, 0x34, 0x32, 0x6e, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x32, 0x35, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xe4, 0xea, 0x9f, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x38, 0x30, 0x34, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x32, 0x35, 0x22, 0xc4, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x38, 0x34, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x31, 0x30, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x38, 0x35, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x31, 0x30, 0x32, 0x6e, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x31, 0x31, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xb7, 0xec, 0xa4, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x38, 0x34, 0x39, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x31, 0x31, 0x22, 0xc4, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x38, 0x36, 0x36, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x37, 0x33, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x38, 0x36, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x37, 0x33, 0x32, 0x6e, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x37, 0x34, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xf4, 0xca, 0xce, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x38, 0x36, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x37, 0x34, 0x22, 0xc4, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x38, 0x37, 0x30, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x39, 0x31, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x38, 0x37, 0x31, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x39, 0x31, 0x32, 0x6e, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x39, 0x32, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xdc, 0xa3, 0xf7, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x38, 0x37, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x39, 0x32, 0x22, 0xcc, 0x0e, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x36, 0x35, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x38, 0x35, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x38, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x38, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x38, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x38, 0x37, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x38, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x38, 0x38, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x38, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x38, 0x39, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x38, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x39, 0x30, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x39, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x39, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x39, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x39, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x39, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x39, 0x33, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x39, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x39, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x39, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x39, 0x35, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x39, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x39, 0x36, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x39, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x39, 0x37, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x39, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x39, 0x38, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x39, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x39, 0x39, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x39, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x30, 0x30, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x30, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x30, 0x31, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x30, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x30, 0x32, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x30, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x30, 0x33, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x30, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x30, 0x34, 0x18, 0x14, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x30, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x30, 0x35, 0x18, 0x15, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x30, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x30, 0x36, 0x18, 0x16, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x30, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x30, 0x37, 0x18, 0x17, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x30, 0x37, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x30, 0x38, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x30, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x30, 0x39, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x30, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x31, 0x30, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x31, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x31, 0x31, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x31, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x31, 0x32, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x31, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x31, 0x33, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x31, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x31, 0x34, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x31, 0x34, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x31, 0x35, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x35, 0x34, 0x37, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x31, 0x35, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x31, 0x36, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x35, 0x34, 0x37, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x31, 0x36, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x31, 0x37, 0x18, 0x20, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x31, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x31, 0x38, 0x18, 0x21, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x31, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x31, 0x39, 0x18, 0x22, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x31, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x32, 0x30, 0x18, 0x23, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x36, 0x34, 0x38, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x32, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x32, 0x31, 0x18, 0x24, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x32, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x32, 0x32, 0x18, 0x25, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x32, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x32, 0x33, 0x18, 0x26, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x32, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x32, 0x34, 0x18, 0x27, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x32, 0x34, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x32, 0x35, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x32, 0x35, 0x12, 0x44, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x32, 0x36, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x32, 0x36, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x32, 0x37, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x37, 0x36, 0x35, 0x34, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x32, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x32, 0x38, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x32, 0x38, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x32, 0x39, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x32, 0x39, 0x32, 0x6e, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x33, 0x30, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xa9, 0xb3, 0xd2, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x36, 0x35, 0x31, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x33, 0x30, 0x22, 0xdc, 0x03, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x38, 0x36, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x36, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x36, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x36, 0x37, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x36, 0x37, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x36, 0x38, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x38, 0x36, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x36, 0x38, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x36, 0x39, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x38, 0x36, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x36, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x37, 0x30, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x38, 0x36, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x37, 0x30, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x37, 0x31, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x37, 0x31, 0x32, 0x6e, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x37, 0x32, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0x8a, 0xd6, 0x9e, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x38, 0x36, 0x34, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x37, 0x32, 0x22, 0xd9, 0x07, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x32, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x35, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x36, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x37, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x38, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x39, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x30, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x31, 0x39, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x30, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x31, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x31, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x32, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x32, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x32, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x33, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x32, 0x31, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x33, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x34, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x32, 0x38, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x35, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x37, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x38, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x38, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x39, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x36, 0x30, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x36, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x36, 0x31, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x36, 0x31, 0x32, 0x6e, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x36, 0x32, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xee, 0xe6, 0xba, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x32, 0x39, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x36, 0x32, 0x22, 0xa8, 0x07, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x35, 0x30, 0x38, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x31, 0x37, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x35, 0x31, 0x31, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x31, 0x37, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x31, 0x38, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x35, 0x31, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x31, 0x38, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x31, 0x39, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x35, 0x31, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x31, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x32, 0x30, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x32, 0x30, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x32, 0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x35, 0x31, 0x34, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x32, 0x31, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x32, 0x32, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x32, 0x32, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x32, 0x33, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x35, 0x31, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x32, 0x33, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x32, 0x34, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x32, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x32, 0x35, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x32, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x32, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x32, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x32, 0x37, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x32, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x32, 0x38, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x32, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x32, 0x39, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x32, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x33, 0x30, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x33, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x33, 0x31, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x33, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x33, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x33, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x33, 0x33, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x33, 0x33, 0x32, 0x6e, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x33, 0x34, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xdc, 0xd3, 0xe8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x35, 0x30, 0x38, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x33, 0x34, 0x22, 0xb9, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x31, 0x32, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x33, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x33, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x33, 0x33, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x33, 0x33, 0x32, 0x6e, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x33, 0x34, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xdb, 0xc8, 0xb4, 0x39, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x31, 0x32, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x33, 0x34, 0x22, 0xcb, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x31, 0x37, 0x37, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x37, 0x30, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x31, 0x35, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x37, 0x30, 0x32, 0x71, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x37, 0x31, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xd1, 0xe7, 0xe3, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x31, 0x37, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x37, 0x31, 0x22, 0xed, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x32, 0x37, 0x38, 0x12, 0x22, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x38, 0x36, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x38, 0x36, 0x12, 0x22, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x38, 0x37, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x38, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x38, 0x38, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x38, 0x38, 0x32, 0x75, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x38, 0x39, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x31, 0x35, 0x35, 0x18, 0xd1, 0xed, 0x80, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x32, 0x37, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x38, 0x39, 0x22, 0xcf, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x33, 0x32, 0x33, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x36, 0x30, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x33, 0x32, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x36, 0x30, 0x32, 0x75, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x36, 0x31, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x31, 0x35, 0x35, 0x18, 0xdc, 0xa0, 0xa8, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x33, 0x32, 0x33, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x36, 0x31, 0x22, 0x99, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x33, 0x32, 0x34, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x36, 0x32, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x33, 0x32, 0x32, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x36, 0x32, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x36, 0x33, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x33, 0x32, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x36, 0x33, 0x32, 0x75, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x36, 0x34, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x31, 0x35, 0x35, 0x18, 0xe9, 0xdf, 0xa2, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x33, 0x32, 0x34, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x36, 0x34, 0x22, 0xcb, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x39, 0x39, 0x30, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x30, 0x33, 0x30, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x39, 0x38, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x30, 0x33, 0x30, 0x32, 0x71, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x30, 0x33, 0x31, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0x92, 0xf8, 0x91, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x39, 0x39, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x30, 0x33, 0x31, 0x22, 0x8b, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x36, 0x39, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x31, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x31, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x31, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x31, 0x34, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x31, 0x35, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x36, 0x36, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x31, 0x35, 0x32, 0x71, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x31, 0x36, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xa8, 0x82, 0xc7, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x36, 0x39, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x31, 0x36, 0x22, 0xfd, 0x06, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x37, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x37, 0x39, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x37, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x31, 0x18, 0x02, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x32, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x33, 0x18, 0xd1, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x35, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x36, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x37, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x37, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x38, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x37, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x39, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x30, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x31, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x33, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x33, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x34, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x32, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x35, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x36, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x36, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x37, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x32, 0x38, 0x37, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x38, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x38, 0x32, 0x71, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x39, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xe8, 0xbf, 0xcc, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x37, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x39, 0x22, 0xc5, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x31, 0x35, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x36, 0x34, 0x18, 0x01, 0x20, 0x02, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x36, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x36, 0x35, 0x18, 0x02, 0x20, 0x02, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x36, 0x35, 0x32, 0x75, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x36, 0x36, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x31, 0x34, 0x35, 0x18, 0xde, 0x83, 0xc7, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x31, 0x35, 0x34, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x36, 0x36, 0x22, 0xf1, 0x0a, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x35, 0x30, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x31, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x31, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x31, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x31, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x31, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x31, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x31, 0x33, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x31, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x31, 0x34, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x31, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x31, 0x35, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x31, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x31, 0x36, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x31, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x31, 0x37, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x31, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x31, 0x38, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x31, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x31, 0x39, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x31, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x32, 0x30, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x32, 0x30, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x32, 0x31, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x32, 0x31, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x32, 0x32, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x32, 0x32, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x32, 0x33, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x32, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x32, 0x34, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x32, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x32, 0x35, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x32, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x32, 0x36, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x32, 0x36, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x32, 0x37, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x32, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x32, 0x38, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x32, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x32, 0x39, 0x18, 0x19, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x32, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x33, 0x30, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x33, 0x30, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x33, 0x31, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x34, 0x37, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x33, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x33, 0x32, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x33, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x33, 0x33, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x33, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x33, 0x34, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x33, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x33, 0x35, 0x18, 0x23, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x33, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x33, 0x36, 0x18, 0x24, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x33, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x33, 0x37, 0x18, 0x25, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x33, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x33, 0x38, 0x18, 0x26, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x33, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x33, 0x39, 0x18, 0x27, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x33, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x34, 0x30, 0x18, 0x28, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x34, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x34, 0x31, 0x18, 0x29, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x34, 0x31, 0x2a, 0x04, 0x08, 0x15, 0x10, 0x16, 0x32, 0x71, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x34, 0x32, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0x95, 0xfb, 0xd3, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x35, 0x30, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x34, 0x32, 0x22, 0xcb, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x35, 0x36, 0x34, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x36, 0x38, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x35, 0x35, 0x32, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x36, 0x38, 0x32, 0x71, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x36, 0x39, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0x8e, 0xc5, 0xa8, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x35, 0x36, 0x34, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x36, 0x39, 0x22, 0xeb, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x36, 0x36, 0x31, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x36, 0x37, 0x31, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x36, 0x36, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x36, 0x37, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x36, 0x37, 0x32, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x36, 0x37, 0x32, 0x32, 0x71, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x36, 0x37, 0x33, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0x9e, 0xeb, 0xf4, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x36, 0x36, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x36, 0x37, 0x33, 0x22, 0xd5, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x37, 0x34, 0x36, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x30, 0x36, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x37, 0x32, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x30, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x30, 0x37, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x30, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x30, 0x38, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x30, 0x38, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x30, 0x39, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x37, 0x32, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x30, 0x39, 0x32, 0x71, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x31, 0x30, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xed, 0xe7, 0xc5, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x37, 0x34, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x31, 0x30, 0x22, 0x94, 0x10, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x38, 0x36, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x38, 0x37, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x38, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x38, 0x37, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x38, 0x37, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x37, 0x35, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x38, 0x32, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x37, 0x35, 0x1a, 0xeb, 0x0d, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x38, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x37, 0x37, 0x18, 0x02, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x37, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x37, 0x38, 0x18, 0x03, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x37, 0x38, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x37, 0x39, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x38, 0x33, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x37, 0x39, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x38, 0x30, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x38, 0x30, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x38, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x38, 0x31, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x38, 0x32, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x38, 0x32, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x38, 0x33, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x38, 0x33, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x38, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x32, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x38, 0x34, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x38, 0x35, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x38, 0x35, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x38, 0x36, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x38, 0x36, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x38, 0x37, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x38, 0x37, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x38, 0x38, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x38, 0x38, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x38, 0x39, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x38, 0x39, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x39, 0x30, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x39, 0x30, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x39, 0x31, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x39, 0x31, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x39, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x39, 0x32, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x39, 0x33, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x39, 0x33, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x39, 0x34, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x39, 0x34, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x39, 0x35, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x39, 0x35, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x39, 0x36, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x36, 0x39, 0x32, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x39, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x39, 0x37, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x39, 0x37, 0x12, 0x46, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x39, 0x38, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x39, 0x38, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x39, 0x39, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x39, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x32, 0x30, 0x30, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x32, 0x30, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x32, 0x30, 0x31, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x32, 0x30, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x32, 0x30, 0x32, 0x18, 0x63, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x32, 0x30, 0x32, 0x32, 0x71, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x37, 0x36, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xcf, 0xcf, 0xd1, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x38, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x37, 0x36, 0x22, 0xcf, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x32, 0x38, 0x35, 0x37, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x38, 0x37, 0x34, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x32, 0x38, 0x35, 0x33, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x38, 0x37, 0x34, 0x32, 0x75, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x38, 0x37, 0x35, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x31, 0x35, 0x35, 0x18, 0xa3, 0x95, 0xaa, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x32, 0x38, 0x35, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x38, 0x37, 0x35, 0x22, 0xe7, 0x10, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x34, 0x30, 0x34, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x34, 0x30, 0x35, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x34, 0x30, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x34, 0x30, 0x35, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x34, 0x30, 0x35, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x38, 0x34, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x34, 0x30, 0x33, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x38, 0x34, 0x1a, 0xbe, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x34, 0x30, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x38, 0x36, 0x18, 0x02, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x38, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x38, 0x37, 0x18, 0x03, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x38, 0x37, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x38, 0x38, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x31, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x38, 0x38, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x38, 0x39, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x38, 0x39, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x39, 0x30, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x37, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x39, 0x30, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x39, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x34, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x39, 0x31, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x39, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x39, 0x32, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x39, 0x33, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x37, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x39, 0x33, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x39, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x39, 0x34, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x39, 0x35, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x39, 0x35, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x39, 0x36, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x39, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x39, 0x36, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x39, 0x37, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x39, 0x37, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x39, 0x38, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x39, 0x38, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x39, 0x39, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x39, 0x39, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x30, 0x30, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x30, 0x30, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x30, 0x31, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x30, 0x31, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x30, 0x32, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x36, 0x39, 0x32, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x30, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x30, 0x33, 0x18, 0x14, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x30, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x30, 0x34, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x30, 0x34, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x30, 0x35, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x36, 0x38, 0x39, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x30, 0x35, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x30, 0x36, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x30, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x30, 0x37, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x30, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x30, 0x38, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x30, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x30, 0x39, 0x18, 0x15, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x30, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x31, 0x30, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x31, 0x30, 0x12, 0x46, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x31, 0x31, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x31, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x31, 0x32, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x31, 0x32, 0x12, 0x46, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x31, 0x33, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x31, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x31, 0x34, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x31, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x31, 0x35, 0x18, 0x63, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x31, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x31, 0x36, 0x18, 0x20, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x37, 0x31, 0x36, 0x32, 0x71, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x38, 0x35, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xc7, 0x9a, 0xad, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x34, 0x30, 0x34, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x38, 0x35, 0x22, 0xf1, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x37, 0x33, 0x30, 0x30, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x33, 0x30, 0x32, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x33, 0x30, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x33, 0x30, 0x33, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x33, 0x30, 0x33, 0x32, 0x71, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x33, 0x30, 0x34, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xb3, 0x9c, 0xf3, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x37, 0x33, 0x30, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x33, 0x30, 0x34, 0x22, 0xc2, 0x08, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x37, 0x34, 0x35, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x35, 0x39, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x35, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x36, 0x30, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x36, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x36, 0x31, 0x18, 0x06, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x36, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x36, 0x32, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x36, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x36, 0x33, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x36, 0x33, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x36, 0x34, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x37, 0x34, 0x35, 0x34, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x36, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x36, 0x35, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x36, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x36, 0x36, 0x18, 0x07, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x36, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x36, 0x37, 0x18, 0x16, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x36, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x36, 0x38, 0x18, 0x17, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x36, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x36, 0x39, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x36, 0x39, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x37, 0x30, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x37, 0x33, 0x35, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x37, 0x30, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x37, 0x31, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x37, 0x33, 0x36, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x37, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x37, 0x32, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x37, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x37, 0x33, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x37, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x37, 0x34, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x37, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x37, 0x35, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x37, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x37, 0x36, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x37, 0x36, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x37, 0x37, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x37, 0x37, 0x12, 0x21, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x37, 0x38, 0x18, 0x91, 0xce, 0xab, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x37, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x37, 0x39, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x37, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x38, 0x30, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x38, 0x30, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x38, 0x31, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x38, 0x31, 0x32, 0x71, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x38, 0x32, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xbc, 0xc5, 0xed, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x37, 0x34, 0x35, 0x33, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x38, 0x32, 0x3a, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x32, 0x36, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xd8, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x32, 0x36, 0x3a, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x32, 0x37, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xb2, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x32, 0x37, 0x3a, 0x6f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x33, 0x31, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xd7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x33, 0x31, 0x3a, 0x6f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x33, 0x32, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xa4, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x33, 0x32, 0x3a, 0x6f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x33, 0x38, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xea, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x33, 0x38, 0x3a, 0x6f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x33, 0x39, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xeb, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x33, 0x39, 0x3a, 0x6f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x34, 0x32, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xf6, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x34, 0x32, 0x3a, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x34, 0x33, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xe0, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x34, 0x33, 0x3a, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x34, 0x34, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xe1, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x34, 0x34, 0x3a, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x34, 0x38, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0x3f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x34, 0x38, 0x3a, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x34, 0x39, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0x40, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x34, 0x39, 0x3a, 0x6f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x35, 0x32, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xe9, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x35, 0x32, 0x3a, 0x6e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x35, 0x33, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0x42, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x35, 0x33, 0x3a, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x35, 0x36, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0x93, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x35, 0x36, 0x3a, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x35, 0x37, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xe2, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x35, 0x37, 0x3a, 0x6e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x36, 0x30, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x36, 0x30, 0x3a, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x37, 0x33, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0x4b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x37, 0x33, 0x3a, 0x6e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x37, 0x36, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0x4d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x37, 0x36, 0x3a, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x37, 0x38, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xa8, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x37, 0x38, 0x3a, 0x6f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x38, 0x32, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xa0, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x38, 0x32, 0x3a, 0x6f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x39, 0x31, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xc9, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x39, 0x31, 0x3a, 0x6f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x39, 0x38, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xdb, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x39, 0x38, 0x3a, 0x6f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x30, 0x31, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0x9d, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x30, 0x31, 0x3a, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x30, 0x32, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0x9e, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x30, 0x32, 0x3a, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x30, 0x37, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xa6, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x30, 0x37, 0x3a, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x33, 0x33, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xb7, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x33, 0x33, 0x3a, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x33, 0x34, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xbc, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x33, 0x34, 0x3a, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x36, 0x30, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0x31, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x36, 0x30, 0x3a, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x36, 0x38, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0x20, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x36, 0x38, 0x3a, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x37, 0x30, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0x22, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x37, 0x30, 0x3a, 0x6f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x37, 0x32, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xfd, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x37, 0x32, 0x3a, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x37, 0x34, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0x27, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x37, 0x34, 0x3a, 0x6e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x37, 0x35, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0x28, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x37, 0x35, 0x3a, 0x6f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x37, 0x38, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xff, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x37, 0x38, 0x3a, 0x6e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x38, 0x35, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0x32, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x31, 0x38, 0x35, 0x3a, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x32, 0x30, 0x37, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xb9, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x32, 0x30, 0x37, 0x3a, 0x6f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x32, 0x33, 0x38, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xb8, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x32, 0x33, 0x38, 0x3a, 0x6f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x32, 0x38, 0x39, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xb1, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x32, 0x38, 0x39, 0x3a, 0x6f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x32, 0x39, 0x30, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xb2, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x32, 0x39, 0x30, 0x3a, 0x6f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x32, 0x39, 0x36, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xda, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x32, 0x39, 0x36, 0x3a, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x32, 0x39, 0x38, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0x2c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x32, 0x39, 0x38, 0x3a, 0x6e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x33, 0x30, 0x31, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0x2f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x33, 0x30, 0x31, 0x3a, 0x6e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x34, 0x31, 0x32, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x34, 0x31, 0x32, 0x3a, 0x6f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x34, 0x33, 0x38, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0x84, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x34, 0x33, 0x38, 0x3a, 0x6f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x34, 0x35, 0x38, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0x80, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x34, 0x35, 0x38, 0x3a, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x34, 0x36, 0x30, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xb0, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x34, 0x36, 0x30, 0x3a, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x34, 0x36, 0x36, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xa8, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x34, 0x36, 0x36, 0x3a, 0x6f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x36, 0x31, 0x37, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xb8, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x36, 0x31, 0x37, 0x3a, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x36, 0x31, 0x38, 0x12, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x18, 0xbc, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x36, 0x31, 0x38, 0x42, 0x23, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0xf8, 0x01, 0x01, } var ( file_datasets_google_message3_benchmark_message3_proto_rawDescOnce sync.Once file_datasets_google_message3_benchmark_message3_proto_rawDescData = file_datasets_google_message3_benchmark_message3_proto_rawDesc ) func file_datasets_google_message3_benchmark_message3_proto_rawDescGZIP() []byte { file_datasets_google_message3_benchmark_message3_proto_rawDescOnce.Do(func() { file_datasets_google_message3_benchmark_message3_proto_rawDescData = protoimpl.X.CompressGZIP(file_datasets_google_message3_benchmark_message3_proto_rawDescData) }) return file_datasets_google_message3_benchmark_message3_proto_rawDescData } var file_datasets_google_message3_benchmark_message3_proto_msgTypes = make([]protoimpl.MessageInfo, 33) var file_datasets_google_message3_benchmark_message3_proto_goTypes = []interface{}{ (*GoogleMessage3)(nil), // 0: benchmarks.google_message3.GoogleMessage3 (*Message1327)(nil), // 1: benchmarks.google_message3.Message1327 (*Message3672)(nil), // 2: benchmarks.google_message3.Message3672 (*Message3804)(nil), // 3: benchmarks.google_message3.Message3804 (*Message6849)(nil), // 4: benchmarks.google_message3.Message6849 (*Message6866)(nil), // 5: benchmarks.google_message3.Message6866 (*Message6870)(nil), // 6: benchmarks.google_message3.Message6870 (*Message7651)(nil), // 7: benchmarks.google_message3.Message7651 (*Message7864)(nil), // 8: benchmarks.google_message3.Message7864 (*Message7929)(nil), // 9: benchmarks.google_message3.Message7929 (*Message8508)(nil), // 10: benchmarks.google_message3.Message8508 (*Message9122)(nil), // 11: benchmarks.google_message3.Message9122 (*Message10177)(nil), // 12: benchmarks.google_message3.Message10177 (*Message10278)(nil), // 13: benchmarks.google_message3.Message10278 (*Message10323)(nil), // 14: benchmarks.google_message3.Message10323 (*Message10324)(nil), // 15: benchmarks.google_message3.Message10324 (*Message11990)(nil), // 16: benchmarks.google_message3.Message11990 (*Message12691)(nil), // 17: benchmarks.google_message3.Message12691 (*Message12870)(nil), // 18: benchmarks.google_message3.Message12870 (*Message13154)(nil), // 19: benchmarks.google_message3.Message13154 (*Message16507)(nil), // 20: benchmarks.google_message3.Message16507 (*Message16564)(nil), // 21: benchmarks.google_message3.Message16564 (*Message16661)(nil), // 22: benchmarks.google_message3.Message16661 (*Message16746)(nil), // 23: benchmarks.google_message3.Message16746 (*Message17786)(nil), // 24: benchmarks.google_message3.Message17786 (*Message22857)(nil), // 25: benchmarks.google_message3.Message22857 (*Message24404)(nil), // 26: benchmarks.google_message3.Message24404 (*Message27300)(nil), // 27: benchmarks.google_message3.Message27300 (*Message27453)(nil), // 28: benchmarks.google_message3.Message27453 (*Message3672_Message3673)(nil), // 29: benchmarks.google_message3.Message3672.Message3673 (*Message3672_Message3674)(nil), // 30: benchmarks.google_message3.Message3672.Message3674 (*Message17786_Message17787)(nil), // 31: benchmarks.google_message3.Message17786.Message17787 (*Message24404_Message24405)(nil), // 32: benchmarks.google_message3.Message24404.Message24405 (*Message37487)(nil), // 33: benchmarks.google_message3.Message37487 (*Message36876)(nil), // 34: benchmarks.google_message3.Message36876 (*Message13062)(nil), // 35: benchmarks.google_message3.Message13062 (*Message952)(nil), // 36: benchmarks.google_message3.Message952 (*UnusedEmptyMessage)(nil), // 37: benchmarks.google_message3.UnusedEmptyMessage (*Message1328)(nil), // 38: benchmarks.google_message3.Message1328 (Enum3476)(0), // 39: benchmarks.google_message3.Enum3476 (Enum3805)(0), // 40: benchmarks.google_message3.Enum3805 (Enum3783)(0), // 41: benchmarks.google_message3.Enum3783 (*Message6850)(nil), // 42: benchmarks.google_message3.Message6850 (*Message6863)(nil), // 43: benchmarks.google_message3.Message6863 (*Message6871)(nil), // 44: benchmarks.google_message3.Message6871 (*Message7547)(nil), // 45: benchmarks.google_message3.Message7547 (*Message7648)(nil), // 46: benchmarks.google_message3.Message7648 (UnusedEnum)(0), // 47: benchmarks.google_message3.UnusedEnum (Enum7654)(0), // 48: benchmarks.google_message3.Enum7654 (*Message7865)(nil), // 49: benchmarks.google_message3.Message7865 (*Message7919)(nil), // 50: benchmarks.google_message3.Message7919 (*Message7920)(nil), // 51: benchmarks.google_message3.Message7920 (*Message7921)(nil), // 52: benchmarks.google_message3.Message7921 (*Message7928)(nil), // 53: benchmarks.google_message3.Message7928 (*Message8511)(nil), // 54: benchmarks.google_message3.Message8511 (*Message8512)(nil), // 55: benchmarks.google_message3.Message8512 (*Message8513)(nil), // 56: benchmarks.google_message3.Message8513 (*Message8514)(nil), // 57: benchmarks.google_message3.Message8514 (*Message8515)(nil), // 58: benchmarks.google_message3.Message8515 (*Message10155)(nil), // 59: benchmarks.google_message3.Message10155 (*Message10320)(nil), // 60: benchmarks.google_message3.Message10320 (*Message10322)(nil), // 61: benchmarks.google_message3.Message10322 (*Message10321)(nil), // 62: benchmarks.google_message3.Message10321 (*Message11988)(nil), // 63: benchmarks.google_message3.Message11988 (*Message12668)(nil), // 64: benchmarks.google_message3.Message12668 (*Message12825)(nil), // 65: benchmarks.google_message3.Message12825 (Enum12871)(0), // 66: benchmarks.google_message3.Enum12871 (*Message16478)(nil), // 67: benchmarks.google_message3.Message16478 (*Message16552)(nil), // 68: benchmarks.google_message3.Message16552 (*Message16660)(nil), // 69: benchmarks.google_message3.Message16660 (*Message16727)(nil), // 70: benchmarks.google_message3.Message16727 (*Message16725)(nil), // 71: benchmarks.google_message3.Message16725 (*Message17782)(nil), // 72: benchmarks.google_message3.Message17782 (*Message22853)(nil), // 73: benchmarks.google_message3.Message22853 (*Message24403)(nil), // 74: benchmarks.google_message3.Message24403 (*Message27454)(nil), // 75: benchmarks.google_message3.Message27454 (*Message27357)(nil), // 76: benchmarks.google_message3.Message27357 (*Message27360)(nil), // 77: benchmarks.google_message3.Message27360 (*Message17783)(nil), // 78: benchmarks.google_message3.Message17783 (*Message17726)(nil), // 79: benchmarks.google_message3.Message17726 (*Message16945)(nil), // 80: benchmarks.google_message3.Message16945 (Enum16925)(0), // 81: benchmarks.google_message3.Enum16925 (*Message24317)(nil), // 82: benchmarks.google_message3.Message24317 (*Message24376)(nil), // 83: benchmarks.google_message3.Message24376 (*Message24345)(nil), // 84: benchmarks.google_message3.Message24345 (*Message24379)(nil), // 85: benchmarks.google_message3.Message24379 (*Message24391)(nil), // 86: benchmarks.google_message3.Message24391 (Enum16891)(0), // 87: benchmarks.google_message3.Enum16891 (*Message0)(nil), // 88: benchmarks.google_message3.Message0 (*Message13145)(nil), // 89: benchmarks.google_message3.Message13145 } var file_datasets_google_message3_benchmark_message3_proto_depIdxs = []int32{ 33, // 0: benchmarks.google_message3.GoogleMessage3.field37519:type_name -> benchmarks.google_message3.Message37487 34, // 1: benchmarks.google_message3.GoogleMessage3.field37520:type_name -> benchmarks.google_message3.Message36876 35, // 2: benchmarks.google_message3.GoogleMessage3.field37521:type_name -> benchmarks.google_message3.Message13062 36, // 3: benchmarks.google_message3.GoogleMessage3.field37522:type_name -> benchmarks.google_message3.Message952 37, // 4: benchmarks.google_message3.GoogleMessage3.field37523:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 5: benchmarks.google_message3.GoogleMessage3.field37524:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 6: benchmarks.google_message3.GoogleMessage3.field37525:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 7: benchmarks.google_message3.GoogleMessage3.field37526:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 8: benchmarks.google_message3.GoogleMessage3.field37527:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 9: benchmarks.google_message3.GoogleMessage3.field37528:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 10: benchmarks.google_message3.GoogleMessage3.field37529:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 11: benchmarks.google_message3.GoogleMessage3.field37530:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 12: benchmarks.google_message3.GoogleMessage3.field37531:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 13: benchmarks.google_message3.GoogleMessage3.field37532:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 14: benchmarks.google_message3.GoogleMessage3.field37533:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 15: benchmarks.google_message3.Message1327.field1369:type_name -> benchmarks.google_message3.UnusedEmptyMessage 38, // 16: benchmarks.google_message3.Message1327.field1370:type_name -> benchmarks.google_message3.Message1328 37, // 17: benchmarks.google_message3.Message1327.field1371:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 18: benchmarks.google_message3.Message1327.field1372:type_name -> benchmarks.google_message3.UnusedEmptyMessage 39, // 19: benchmarks.google_message3.Message3672.field3727:type_name -> benchmarks.google_message3.Enum3476 29, // 20: benchmarks.google_message3.Message3672.message3673:type_name -> benchmarks.google_message3.Message3672.Message3673 30, // 21: benchmarks.google_message3.Message3672.message3674:type_name -> benchmarks.google_message3.Message3672.Message3674 39, // 22: benchmarks.google_message3.Message3672.field3734:type_name -> benchmarks.google_message3.Enum3476 37, // 23: benchmarks.google_message3.Message3672.field3736:type_name -> benchmarks.google_message3.UnusedEmptyMessage 40, // 24: benchmarks.google_message3.Message3804.field3820:type_name -> benchmarks.google_message3.Enum3805 41, // 25: benchmarks.google_message3.Message3804.field3824:type_name -> benchmarks.google_message3.Enum3783 42, // 26: benchmarks.google_message3.Message6849.field6910:type_name -> benchmarks.google_message3.Message6850 43, // 27: benchmarks.google_message3.Message6866.field6973:type_name -> benchmarks.google_message3.Message6863 44, // 28: benchmarks.google_message3.Message6870.field6991:type_name -> benchmarks.google_message3.Message6871 37, // 29: benchmarks.google_message3.Message7651.field7708:type_name -> benchmarks.google_message3.UnusedEmptyMessage 45, // 30: benchmarks.google_message3.Message7651.field7715:type_name -> benchmarks.google_message3.Message7547 45, // 31: benchmarks.google_message3.Message7651.field7716:type_name -> benchmarks.google_message3.Message7547 37, // 32: benchmarks.google_message3.Message7651.field7717:type_name -> benchmarks.google_message3.UnusedEmptyMessage 46, // 33: benchmarks.google_message3.Message7651.field7720:type_name -> benchmarks.google_message3.Message7648 37, // 34: benchmarks.google_message3.Message7651.field7725:type_name -> benchmarks.google_message3.UnusedEmptyMessage 47, // 35: benchmarks.google_message3.Message7651.field7726:type_name -> benchmarks.google_message3.UnusedEnum 48, // 36: benchmarks.google_message3.Message7651.field7727:type_name -> benchmarks.google_message3.Enum7654 37, // 37: benchmarks.google_message3.Message7651.field7729:type_name -> benchmarks.google_message3.UnusedEmptyMessage 49, // 38: benchmarks.google_message3.Message7864.field7868:type_name -> benchmarks.google_message3.Message7865 49, // 39: benchmarks.google_message3.Message7864.field7869:type_name -> benchmarks.google_message3.Message7865 49, // 40: benchmarks.google_message3.Message7864.field7870:type_name -> benchmarks.google_message3.Message7865 37, // 41: benchmarks.google_message3.Message7864.field7871:type_name -> benchmarks.google_message3.UnusedEmptyMessage 50, // 42: benchmarks.google_message3.Message7929.field7950:type_name -> benchmarks.google_message3.Message7919 37, // 43: benchmarks.google_message3.Message7929.field7951:type_name -> benchmarks.google_message3.UnusedEmptyMessage 51, // 44: benchmarks.google_message3.Message7929.field7952:type_name -> benchmarks.google_message3.Message7920 52, // 45: benchmarks.google_message3.Message7929.field7953:type_name -> benchmarks.google_message3.Message7921 53, // 46: benchmarks.google_message3.Message7929.field7954:type_name -> benchmarks.google_message3.Message7928 37, // 47: benchmarks.google_message3.Message7929.field7959:type_name -> benchmarks.google_message3.UnusedEmptyMessage 54, // 48: benchmarks.google_message3.Message8508.field8517:type_name -> benchmarks.google_message3.Message8511 55, // 49: benchmarks.google_message3.Message8508.field8518:type_name -> benchmarks.google_message3.Message8512 56, // 50: benchmarks.google_message3.Message8508.field8519:type_name -> benchmarks.google_message3.Message8513 57, // 51: benchmarks.google_message3.Message8508.field8521:type_name -> benchmarks.google_message3.Message8514 37, // 52: benchmarks.google_message3.Message8508.field8522:type_name -> benchmarks.google_message3.UnusedEmptyMessage 58, // 53: benchmarks.google_message3.Message8508.field8523:type_name -> benchmarks.google_message3.Message8515 37, // 54: benchmarks.google_message3.Message8508.field8524:type_name -> benchmarks.google_message3.UnusedEmptyMessage 59, // 55: benchmarks.google_message3.Message10177.field10270:type_name -> benchmarks.google_message3.Message10155 60, // 56: benchmarks.google_message3.Message10323.field10360:type_name -> benchmarks.google_message3.Message10320 61, // 57: benchmarks.google_message3.Message10324.field10362:type_name -> benchmarks.google_message3.Message10322 62, // 58: benchmarks.google_message3.Message10324.field10363:type_name -> benchmarks.google_message3.Message10321 63, // 59: benchmarks.google_message3.Message11990.field12030:type_name -> benchmarks.google_message3.Message11988 64, // 60: benchmarks.google_message3.Message12691.field12715:type_name -> benchmarks.google_message3.Message12668 18, // 61: benchmarks.google_message3.Message12870.field12888:type_name -> benchmarks.google_message3.Message12870 65, // 62: benchmarks.google_message3.Message12870.field12894:type_name -> benchmarks.google_message3.Message12825 66, // 63: benchmarks.google_message3.Message12870.field12897:type_name -> benchmarks.google_message3.Enum12871 37, // 64: benchmarks.google_message3.Message16507.field16521:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 65: benchmarks.google_message3.Message16507.field16522:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 66: benchmarks.google_message3.Message16507.field16523:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 67: benchmarks.google_message3.Message16507.field16527:type_name -> benchmarks.google_message3.UnusedEmptyMessage 67, // 68: benchmarks.google_message3.Message16507.field16531:type_name -> benchmarks.google_message3.Message16478 68, // 69: benchmarks.google_message3.Message16564.field16568:type_name -> benchmarks.google_message3.Message16552 69, // 70: benchmarks.google_message3.Message16661.field16671:type_name -> benchmarks.google_message3.Message16660 70, // 71: benchmarks.google_message3.Message16746.field16806:type_name -> benchmarks.google_message3.Message16727 71, // 72: benchmarks.google_message3.Message16746.field16809:type_name -> benchmarks.google_message3.Message16725 31, // 73: benchmarks.google_message3.Message17786.message17787:type_name -> benchmarks.google_message3.Message17786.Message17787 72, // 74: benchmarks.google_message3.Message17786.field18175:type_name -> benchmarks.google_message3.Message17782 73, // 75: benchmarks.google_message3.Message22857.field22874:type_name -> benchmarks.google_message3.Message22853 32, // 76: benchmarks.google_message3.Message24404.message24405:type_name -> benchmarks.google_message3.Message24404.Message24405 74, // 77: benchmarks.google_message3.Message24404.field24684:type_name -> benchmarks.google_message3.Message24403 37, // 78: benchmarks.google_message3.Message27300.field27302:type_name -> benchmarks.google_message3.UnusedEmptyMessage 75, // 79: benchmarks.google_message3.Message27453.field27464:type_name -> benchmarks.google_message3.Message27454 76, // 80: benchmarks.google_message3.Message27453.field27470:type_name -> benchmarks.google_message3.Message27357 77, // 81: benchmarks.google_message3.Message27453.field27471:type_name -> benchmarks.google_message3.Message27360 37, // 82: benchmarks.google_message3.Message27453.field27477:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 83: benchmarks.google_message3.Message27453.field27481:type_name -> benchmarks.google_message3.UnusedEmptyMessage 39, // 84: benchmarks.google_message3.Message3672.Message3673.field3738:type_name -> benchmarks.google_message3.Enum3476 39, // 85: benchmarks.google_message3.Message3672.Message3674.field3740:type_name -> benchmarks.google_message3.Enum3476 78, // 86: benchmarks.google_message3.Message17786.Message17787.field18179:type_name -> benchmarks.google_message3.Message17783 37, // 87: benchmarks.google_message3.Message17786.Message17787.field18180:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 88: benchmarks.google_message3.Message17786.Message17787.field18181:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 89: benchmarks.google_message3.Message17786.Message17787.field18182:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 90: benchmarks.google_message3.Message17786.Message17787.field18183:type_name -> benchmarks.google_message3.UnusedEmptyMessage 79, // 91: benchmarks.google_message3.Message17786.Message17787.field18184:type_name -> benchmarks.google_message3.Message17726 37, // 92: benchmarks.google_message3.Message17786.Message17787.field18185:type_name -> benchmarks.google_message3.UnusedEmptyMessage 80, // 93: benchmarks.google_message3.Message17786.Message17787.field18186:type_name -> benchmarks.google_message3.Message16945 37, // 94: benchmarks.google_message3.Message17786.Message17787.field18187:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 95: benchmarks.google_message3.Message17786.Message17787.field18188:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 96: benchmarks.google_message3.Message17786.Message17787.field18189:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 97: benchmarks.google_message3.Message17786.Message17787.field18190:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 98: benchmarks.google_message3.Message17786.Message17787.field18191:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 99: benchmarks.google_message3.Message17786.Message17787.field18192:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 100: benchmarks.google_message3.Message17786.Message17787.field18193:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 101: benchmarks.google_message3.Message17786.Message17787.field18194:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 102: benchmarks.google_message3.Message17786.Message17787.field18195:type_name -> benchmarks.google_message3.UnusedEmptyMessage 81, // 103: benchmarks.google_message3.Message17786.Message17787.field18196:type_name -> benchmarks.google_message3.Enum16925 47, // 104: benchmarks.google_message3.Message17786.Message17787.field18198:type_name -> benchmarks.google_message3.UnusedEnum 37, // 105: benchmarks.google_message3.Message17786.Message17787.field18199:type_name -> benchmarks.google_message3.UnusedEmptyMessage 82, // 106: benchmarks.google_message3.Message24404.Message24405.field24688:type_name -> benchmarks.google_message3.Message24317 37, // 107: benchmarks.google_message3.Message24404.Message24405.field24689:type_name -> benchmarks.google_message3.UnusedEmptyMessage 83, // 108: benchmarks.google_message3.Message24404.Message24405.field24690:type_name -> benchmarks.google_message3.Message24376 84, // 109: benchmarks.google_message3.Message24404.Message24405.field24691:type_name -> benchmarks.google_message3.Message24345 37, // 110: benchmarks.google_message3.Message24404.Message24405.field24692:type_name -> benchmarks.google_message3.UnusedEmptyMessage 85, // 111: benchmarks.google_message3.Message24404.Message24405.field24693:type_name -> benchmarks.google_message3.Message24379 37, // 112: benchmarks.google_message3.Message24404.Message24405.field24694:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 113: benchmarks.google_message3.Message24404.Message24405.field24695:type_name -> benchmarks.google_message3.UnusedEmptyMessage 86, // 114: benchmarks.google_message3.Message24404.Message24405.field24696:type_name -> benchmarks.google_message3.Message24391 37, // 115: benchmarks.google_message3.Message24404.Message24405.field24697:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 116: benchmarks.google_message3.Message24404.Message24405.field24698:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 117: benchmarks.google_message3.Message24404.Message24405.field24699:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 118: benchmarks.google_message3.Message24404.Message24405.field24700:type_name -> benchmarks.google_message3.UnusedEmptyMessage 37, // 119: benchmarks.google_message3.Message24404.Message24405.field24701:type_name -> benchmarks.google_message3.UnusedEmptyMessage 81, // 120: benchmarks.google_message3.Message24404.Message24405.field24702:type_name -> benchmarks.google_message3.Enum16925 87, // 121: benchmarks.google_message3.Message24404.Message24405.field24705:type_name -> benchmarks.google_message3.Enum16891 37, // 122: benchmarks.google_message3.Message24404.Message24405.field24706:type_name -> benchmarks.google_message3.UnusedEmptyMessage 47, // 123: benchmarks.google_message3.Message24404.Message24405.field24711:type_name -> benchmarks.google_message3.UnusedEnum 47, // 124: benchmarks.google_message3.Message24404.Message24405.field24713:type_name -> benchmarks.google_message3.UnusedEnum 80, // 125: benchmarks.google_message3.field17026:extendee -> benchmarks.google_message3.Message16945 80, // 126: benchmarks.google_message3.field17027:extendee -> benchmarks.google_message3.Message16945 80, // 127: benchmarks.google_message3.field17031:extendee -> benchmarks.google_message3.Message16945 80, // 128: benchmarks.google_message3.field17032:extendee -> benchmarks.google_message3.Message16945 80, // 129: benchmarks.google_message3.field17038:extendee -> benchmarks.google_message3.Message16945 80, // 130: benchmarks.google_message3.field17039:extendee -> benchmarks.google_message3.Message16945 80, // 131: benchmarks.google_message3.field17042:extendee -> benchmarks.google_message3.Message16945 80, // 132: benchmarks.google_message3.field17043:extendee -> benchmarks.google_message3.Message16945 80, // 133: benchmarks.google_message3.field17044:extendee -> benchmarks.google_message3.Message16945 80, // 134: benchmarks.google_message3.field17048:extendee -> benchmarks.google_message3.Message16945 80, // 135: benchmarks.google_message3.field17049:extendee -> benchmarks.google_message3.Message16945 80, // 136: benchmarks.google_message3.field17052:extendee -> benchmarks.google_message3.Message16945 80, // 137: benchmarks.google_message3.field17053:extendee -> benchmarks.google_message3.Message16945 80, // 138: benchmarks.google_message3.field17056:extendee -> benchmarks.google_message3.Message16945 80, // 139: benchmarks.google_message3.field17057:extendee -> benchmarks.google_message3.Message16945 80, // 140: benchmarks.google_message3.field17060:extendee -> benchmarks.google_message3.Message16945 80, // 141: benchmarks.google_message3.field17073:extendee -> benchmarks.google_message3.Message16945 80, // 142: benchmarks.google_message3.field17076:extendee -> benchmarks.google_message3.Message16945 80, // 143: benchmarks.google_message3.field17078:extendee -> benchmarks.google_message3.Message16945 80, // 144: benchmarks.google_message3.field17082:extendee -> benchmarks.google_message3.Message16945 80, // 145: benchmarks.google_message3.field17091:extendee -> benchmarks.google_message3.Message16945 80, // 146: benchmarks.google_message3.field17098:extendee -> benchmarks.google_message3.Message16945 80, // 147: benchmarks.google_message3.field17101:extendee -> benchmarks.google_message3.Message16945 80, // 148: benchmarks.google_message3.field17102:extendee -> benchmarks.google_message3.Message16945 80, // 149: benchmarks.google_message3.field17107:extendee -> benchmarks.google_message3.Message16945 80, // 150: benchmarks.google_message3.field17133:extendee -> benchmarks.google_message3.Message16945 80, // 151: benchmarks.google_message3.field17134:extendee -> benchmarks.google_message3.Message16945 80, // 152: benchmarks.google_message3.field17160:extendee -> benchmarks.google_message3.Message16945 80, // 153: benchmarks.google_message3.field17168:extendee -> benchmarks.google_message3.Message16945 80, // 154: benchmarks.google_message3.field17170:extendee -> benchmarks.google_message3.Message16945 80, // 155: benchmarks.google_message3.field17172:extendee -> benchmarks.google_message3.Message16945 80, // 156: benchmarks.google_message3.field17174:extendee -> benchmarks.google_message3.Message16945 80, // 157: benchmarks.google_message3.field17175:extendee -> benchmarks.google_message3.Message16945 80, // 158: benchmarks.google_message3.field17178:extendee -> benchmarks.google_message3.Message16945 80, // 159: benchmarks.google_message3.field17185:extendee -> benchmarks.google_message3.Message16945 80, // 160: benchmarks.google_message3.field17207:extendee -> benchmarks.google_message3.Message16945 80, // 161: benchmarks.google_message3.field17238:extendee -> benchmarks.google_message3.Message16945 80, // 162: benchmarks.google_message3.field17289:extendee -> benchmarks.google_message3.Message16945 80, // 163: benchmarks.google_message3.field17290:extendee -> benchmarks.google_message3.Message16945 80, // 164: benchmarks.google_message3.field17296:extendee -> benchmarks.google_message3.Message16945 80, // 165: benchmarks.google_message3.field17298:extendee -> benchmarks.google_message3.Message16945 80, // 166: benchmarks.google_message3.field17301:extendee -> benchmarks.google_message3.Message16945 80, // 167: benchmarks.google_message3.field17412:extendee -> benchmarks.google_message3.Message16945 80, // 168: benchmarks.google_message3.field17438:extendee -> benchmarks.google_message3.Message16945 80, // 169: benchmarks.google_message3.field17458:extendee -> benchmarks.google_message3.Message16945 80, // 170: benchmarks.google_message3.field17460:extendee -> benchmarks.google_message3.Message16945 80, // 171: benchmarks.google_message3.field17466:extendee -> benchmarks.google_message3.Message16945 80, // 172: benchmarks.google_message3.field17617:extendee -> benchmarks.google_message3.Message16945 80, // 173: benchmarks.google_message3.field17618:extendee -> benchmarks.google_message3.Message16945 88, // 174: benchmarks.google_message3.Message1327.field1373:extendee -> benchmarks.google_message3.Message0 88, // 175: benchmarks.google_message3.Message3672.field3737:extendee -> benchmarks.google_message3.Message0 88, // 176: benchmarks.google_message3.Message3804.field3825:extendee -> benchmarks.google_message3.Message0 88, // 177: benchmarks.google_message3.Message6849.field6911:extendee -> benchmarks.google_message3.Message0 88, // 178: benchmarks.google_message3.Message6866.field6974:extendee -> benchmarks.google_message3.Message0 88, // 179: benchmarks.google_message3.Message6870.field6992:extendee -> benchmarks.google_message3.Message0 88, // 180: benchmarks.google_message3.Message7651.field7730:extendee -> benchmarks.google_message3.Message0 88, // 181: benchmarks.google_message3.Message7864.field7872:extendee -> benchmarks.google_message3.Message0 88, // 182: benchmarks.google_message3.Message7929.field7962:extendee -> benchmarks.google_message3.Message0 88, // 183: benchmarks.google_message3.Message8508.field8534:extendee -> benchmarks.google_message3.Message0 88, // 184: benchmarks.google_message3.Message9122.field9134:extendee -> benchmarks.google_message3.Message0 88, // 185: benchmarks.google_message3.Message10177.field10271:extendee -> benchmarks.google_message3.Message0 59, // 186: benchmarks.google_message3.Message10278.field10289:extendee -> benchmarks.google_message3.Message10155 59, // 187: benchmarks.google_message3.Message10323.field10361:extendee -> benchmarks.google_message3.Message10155 59, // 188: benchmarks.google_message3.Message10324.field10364:extendee -> benchmarks.google_message3.Message10155 88, // 189: benchmarks.google_message3.Message11990.field12031:extendee -> benchmarks.google_message3.Message0 88, // 190: benchmarks.google_message3.Message12691.field12716:extendee -> benchmarks.google_message3.Message0 88, // 191: benchmarks.google_message3.Message12870.field12899:extendee -> benchmarks.google_message3.Message0 89, // 192: benchmarks.google_message3.Message13154.field13166:extendee -> benchmarks.google_message3.Message13145 88, // 193: benchmarks.google_message3.Message16507.field16542:extendee -> benchmarks.google_message3.Message0 88, // 194: benchmarks.google_message3.Message16564.field16569:extendee -> benchmarks.google_message3.Message0 88, // 195: benchmarks.google_message3.Message16661.field16673:extendee -> benchmarks.google_message3.Message0 88, // 196: benchmarks.google_message3.Message16746.field16810:extendee -> benchmarks.google_message3.Message0 88, // 197: benchmarks.google_message3.Message17786.field18176:extendee -> benchmarks.google_message3.Message0 59, // 198: benchmarks.google_message3.Message22857.field22875:extendee -> benchmarks.google_message3.Message10155 88, // 199: benchmarks.google_message3.Message24404.field24685:extendee -> benchmarks.google_message3.Message0 88, // 200: benchmarks.google_message3.Message27300.field27304:extendee -> benchmarks.google_message3.Message0 88, // 201: benchmarks.google_message3.Message27453.field27482:extendee -> benchmarks.google_message3.Message0 88, // 202: benchmarks.google_message3.field17031:type_name -> benchmarks.google_message3.Message0 88, // 203: benchmarks.google_message3.field17032:type_name -> benchmarks.google_message3.Message0 88, // 204: benchmarks.google_message3.field17038:type_name -> benchmarks.google_message3.Message0 88, // 205: benchmarks.google_message3.field17039:type_name -> benchmarks.google_message3.Message0 88, // 206: benchmarks.google_message3.field17042:type_name -> benchmarks.google_message3.Message0 88, // 207: benchmarks.google_message3.field17052:type_name -> benchmarks.google_message3.Message0 88, // 208: benchmarks.google_message3.field17053:type_name -> benchmarks.google_message3.Message0 88, // 209: benchmarks.google_message3.field17060:type_name -> benchmarks.google_message3.Message0 88, // 210: benchmarks.google_message3.field17076:type_name -> benchmarks.google_message3.Message0 88, // 211: benchmarks.google_message3.field17082:type_name -> benchmarks.google_message3.Message0 88, // 212: benchmarks.google_message3.field17091:type_name -> benchmarks.google_message3.Message0 88, // 213: benchmarks.google_message3.field17098:type_name -> benchmarks.google_message3.Message0 88, // 214: benchmarks.google_message3.field17101:type_name -> benchmarks.google_message3.Message0 88, // 215: benchmarks.google_message3.field17172:type_name -> benchmarks.google_message3.Message0 88, // 216: benchmarks.google_message3.field17175:type_name -> benchmarks.google_message3.Message0 88, // 217: benchmarks.google_message3.field17178:type_name -> benchmarks.google_message3.Message0 88, // 218: benchmarks.google_message3.field17185:type_name -> benchmarks.google_message3.Message0 88, // 219: benchmarks.google_message3.field17238:type_name -> benchmarks.google_message3.Message0 88, // 220: benchmarks.google_message3.field17289:type_name -> benchmarks.google_message3.Message0 88, // 221: benchmarks.google_message3.field17290:type_name -> benchmarks.google_message3.Message0 88, // 222: benchmarks.google_message3.field17296:type_name -> benchmarks.google_message3.Message0 88, // 223: benchmarks.google_message3.field17301:type_name -> benchmarks.google_message3.Message0 88, // 224: benchmarks.google_message3.field17412:type_name -> benchmarks.google_message3.Message0 88, // 225: benchmarks.google_message3.field17438:type_name -> benchmarks.google_message3.Message0 88, // 226: benchmarks.google_message3.field17458:type_name -> benchmarks.google_message3.Message0 88, // 227: benchmarks.google_message3.field17617:type_name -> benchmarks.google_message3.Message0 1, // 228: benchmarks.google_message3.Message1327.field1373:type_name -> benchmarks.google_message3.Message1327 2, // 229: benchmarks.google_message3.Message3672.field3737:type_name -> benchmarks.google_message3.Message3672 3, // 230: benchmarks.google_message3.Message3804.field3825:type_name -> benchmarks.google_message3.Message3804 4, // 231: benchmarks.google_message3.Message6849.field6911:type_name -> benchmarks.google_message3.Message6849 5, // 232: benchmarks.google_message3.Message6866.field6974:type_name -> benchmarks.google_message3.Message6866 6, // 233: benchmarks.google_message3.Message6870.field6992:type_name -> benchmarks.google_message3.Message6870 7, // 234: benchmarks.google_message3.Message7651.field7730:type_name -> benchmarks.google_message3.Message7651 8, // 235: benchmarks.google_message3.Message7864.field7872:type_name -> benchmarks.google_message3.Message7864 9, // 236: benchmarks.google_message3.Message7929.field7962:type_name -> benchmarks.google_message3.Message7929 10, // 237: benchmarks.google_message3.Message8508.field8534:type_name -> benchmarks.google_message3.Message8508 11, // 238: benchmarks.google_message3.Message9122.field9134:type_name -> benchmarks.google_message3.Message9122 12, // 239: benchmarks.google_message3.Message10177.field10271:type_name -> benchmarks.google_message3.Message10177 13, // 240: benchmarks.google_message3.Message10278.field10289:type_name -> benchmarks.google_message3.Message10278 14, // 241: benchmarks.google_message3.Message10323.field10361:type_name -> benchmarks.google_message3.Message10323 15, // 242: benchmarks.google_message3.Message10324.field10364:type_name -> benchmarks.google_message3.Message10324 16, // 243: benchmarks.google_message3.Message11990.field12031:type_name -> benchmarks.google_message3.Message11990 17, // 244: benchmarks.google_message3.Message12691.field12716:type_name -> benchmarks.google_message3.Message12691 18, // 245: benchmarks.google_message3.Message12870.field12899:type_name -> benchmarks.google_message3.Message12870 19, // 246: benchmarks.google_message3.Message13154.field13166:type_name -> benchmarks.google_message3.Message13154 20, // 247: benchmarks.google_message3.Message16507.field16542:type_name -> benchmarks.google_message3.Message16507 21, // 248: benchmarks.google_message3.Message16564.field16569:type_name -> benchmarks.google_message3.Message16564 22, // 249: benchmarks.google_message3.Message16661.field16673:type_name -> benchmarks.google_message3.Message16661 23, // 250: benchmarks.google_message3.Message16746.field16810:type_name -> benchmarks.google_message3.Message16746 24, // 251: benchmarks.google_message3.Message17786.field18176:type_name -> benchmarks.google_message3.Message17786 25, // 252: benchmarks.google_message3.Message22857.field22875:type_name -> benchmarks.google_message3.Message22857 26, // 253: benchmarks.google_message3.Message24404.field24685:type_name -> benchmarks.google_message3.Message24404 27, // 254: benchmarks.google_message3.Message27300.field27304:type_name -> benchmarks.google_message3.Message27300 28, // 255: benchmarks.google_message3.Message27453.field27482:type_name -> benchmarks.google_message3.Message27453 256, // [256:256] is the sub-list for method output_type 256, // [256:256] is the sub-list for method input_type 202, // [202:256] is the sub-list for extension type_name 125, // [125:202] is the sub-list for extension extendee 0, // [0:125] is the sub-list for field type_name } func init() { file_datasets_google_message3_benchmark_message3_proto_init() } func file_datasets_google_message3_benchmark_message3_proto_init() { if File_datasets_google_message3_benchmark_message3_proto != nil { return } file_datasets_google_message3_benchmark_message3_1_proto_init() file_datasets_google_message3_benchmark_message3_2_proto_init() file_datasets_google_message3_benchmark_message3_3_proto_init() file_datasets_google_message3_benchmark_message3_4_proto_init() file_datasets_google_message3_benchmark_message3_5_proto_init() file_datasets_google_message3_benchmark_message3_7_proto_init() file_datasets_google_message3_benchmark_message3_8_proto_init() if !protoimpl.UnsafeEnabled { file_datasets_google_message3_benchmark_message3_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GoogleMessage3); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message1327); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3672); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3804); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6849); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6866); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6870); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7651); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7864); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7929); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8508); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message9122); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10177); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10278); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10323); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10324); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message11990); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12691); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12870); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message13154); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message16507); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message16564); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message16661); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message16746); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message17786); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message22857); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message24404); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message27300); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message27453); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3672_Message3673); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3672_Message3674); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message17786_Message17787); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message24404_Message24405); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_datasets_google_message3_benchmark_message3_proto_rawDesc, NumEnums: 0, NumMessages: 33, NumExtensions: 77, NumServices: 0, }, GoTypes: file_datasets_google_message3_benchmark_message3_proto_goTypes, DependencyIndexes: file_datasets_google_message3_benchmark_message3_proto_depIdxs, MessageInfos: file_datasets_google_message3_benchmark_message3_proto_msgTypes, ExtensionInfos: file_datasets_google_message3_benchmark_message3_proto_extTypes, }.Build() File_datasets_google_message3_benchmark_message3_proto = out.File file_datasets_google_message3_benchmark_message3_proto_rawDesc = nil file_datasets_google_message3_benchmark_message3_proto_goTypes = nil file_datasets_google_message3_benchmark_message3_proto_depIdxs = nil } benchmark_message3_1.pb.go000066400000000000000000013523141411250152500360310ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/datasets/google_message3// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // LINT: ALLOW_GROUPS // Code generated by protoc-gen-go. DO NOT EDIT. // source: datasets/google_message3/benchmark_message3_1.proto package google_message3 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Message34390 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field34452 []*Message34387 `protobuf:"bytes,1,rep,name=field34452" json:"field34452,omitempty"` } func (x *Message34390) Reset() { *x = Message34390{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message34390) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message34390) ProtoMessage() {} func (x *Message34390) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message34390.ProtoReflect.Descriptor instead. func (*Message34390) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{0} } func (x *Message34390) GetField34452() []*Message34387 { if x != nil { return x.Field34452 } return nil } type Message34624 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field34683 *Message34621 `protobuf:"bytes,1,opt,name=field34683" json:"field34683,omitempty"` Field34684 *Message34621 `protobuf:"bytes,2,opt,name=field34684" json:"field34684,omitempty"` } func (x *Message34624) Reset() { *x = Message34624{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message34624) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message34624) ProtoMessage() {} func (x *Message34624) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message34624.ProtoReflect.Descriptor instead. func (*Message34624) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{1} } func (x *Message34624) GetField34683() *Message34621 { if x != nil { return x.Field34683 } return nil } func (x *Message34624) GetField34684() *Message34621 { if x != nil { return x.Field34684 } return nil } type Message34791 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field34793 *uint64 `protobuf:"fixed64,1,opt,name=field34793" json:"field34793,omitempty"` Message34792 []*Message34791_Message34792 `protobuf:"group,2,rep,name=Message34792,json=message34792" json:"message34792,omitempty"` Field34795 *int32 `protobuf:"varint,5,opt,name=field34795" json:"field34795,omitempty"` Field34796 *int32 `protobuf:"varint,6,opt,name=field34796" json:"field34796,omitempty"` Field34797 *int32 `protobuf:"varint,7,opt,name=field34797" json:"field34797,omitempty"` Field34798 *int32 `protobuf:"varint,8,opt,name=field34798" json:"field34798,omitempty"` Field34799 *int32 `protobuf:"varint,9,opt,name=field34799" json:"field34799,omitempty"` Field34800 *int32 `protobuf:"varint,10,opt,name=field34800" json:"field34800,omitempty"` Field34801 *bool `protobuf:"varint,11,opt,name=field34801" json:"field34801,omitempty"` Field34802 *float32 `protobuf:"fixed32,12,opt,name=field34802" json:"field34802,omitempty"` Field34803 *int32 `protobuf:"varint,13,opt,name=field34803" json:"field34803,omitempty"` Field34804 *string `protobuf:"bytes,14,opt,name=field34804" json:"field34804,omitempty"` Field34805 *int64 `protobuf:"varint,15,opt,name=field34805" json:"field34805,omitempty"` Field34806 []uint64 `protobuf:"fixed64,17,rep,packed,name=field34806" json:"field34806,omitempty"` } func (x *Message34791) Reset() { *x = Message34791{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message34791) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message34791) ProtoMessage() {} func (x *Message34791) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message34791.ProtoReflect.Descriptor instead. func (*Message34791) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{2} } func (x *Message34791) GetField34793() uint64 { if x != nil && x.Field34793 != nil { return *x.Field34793 } return 0 } func (x *Message34791) GetMessage34792() []*Message34791_Message34792 { if x != nil { return x.Message34792 } return nil } func (x *Message34791) GetField34795() int32 { if x != nil && x.Field34795 != nil { return *x.Field34795 } return 0 } func (x *Message34791) GetField34796() int32 { if x != nil && x.Field34796 != nil { return *x.Field34796 } return 0 } func (x *Message34791) GetField34797() int32 { if x != nil && x.Field34797 != nil { return *x.Field34797 } return 0 } func (x *Message34791) GetField34798() int32 { if x != nil && x.Field34798 != nil { return *x.Field34798 } return 0 } func (x *Message34791) GetField34799() int32 { if x != nil && x.Field34799 != nil { return *x.Field34799 } return 0 } func (x *Message34791) GetField34800() int32 { if x != nil && x.Field34800 != nil { return *x.Field34800 } return 0 } func (x *Message34791) GetField34801() bool { if x != nil && x.Field34801 != nil { return *x.Field34801 } return false } func (x *Message34791) GetField34802() float32 { if x != nil && x.Field34802 != nil { return *x.Field34802 } return 0 } func (x *Message34791) GetField34803() int32 { if x != nil && x.Field34803 != nil { return *x.Field34803 } return 0 } func (x *Message34791) GetField34804() string { if x != nil && x.Field34804 != nil { return *x.Field34804 } return "" } func (x *Message34791) GetField34805() int64 { if x != nil && x.Field34805 != nil { return *x.Field34805 } return 0 } func (x *Message34791) GetField34806() []uint64 { if x != nil { return x.Field34806 } return nil } type Message35483 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field35499 *int32 `protobuf:"varint,1,opt,name=field35499" json:"field35499,omitempty"` Field35500 *string `protobuf:"bytes,2,opt,name=field35500" json:"field35500,omitempty"` Field35501 *string `protobuf:"bytes,3,opt,name=field35501" json:"field35501,omitempty"` Field35502 *string `protobuf:"bytes,4,opt,name=field35502" json:"field35502,omitempty"` Field35503 []*Message35476 `protobuf:"bytes,5,rep,name=field35503" json:"field35503,omitempty"` Field35504 *UnusedEmptyMessage `protobuf:"bytes,6,opt,name=field35504" json:"field35504,omitempty"` } func (x *Message35483) Reset() { *x = Message35483{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message35483) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message35483) ProtoMessage() {} func (x *Message35483) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message35483.ProtoReflect.Descriptor instead. func (*Message35483) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{3} } func (x *Message35483) GetField35499() int32 { if x != nil && x.Field35499 != nil { return *x.Field35499 } return 0 } func (x *Message35483) GetField35500() string { if x != nil && x.Field35500 != nil { return *x.Field35500 } return "" } func (x *Message35483) GetField35501() string { if x != nil && x.Field35501 != nil { return *x.Field35501 } return "" } func (x *Message35483) GetField35502() string { if x != nil && x.Field35502 != nil { return *x.Field35502 } return "" } func (x *Message35483) GetField35503() []*Message35476 { if x != nil { return x.Field35503 } return nil } func (x *Message35483) GetField35504() *UnusedEmptyMessage { if x != nil { return x.Field35504 } return nil } type Message35807 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field35810 *int32 `protobuf:"varint,1,opt,name=field35810" json:"field35810,omitempty"` Field35811 *int32 `protobuf:"varint,2,opt,name=field35811" json:"field35811,omitempty"` Field35812 *int32 `protobuf:"varint,3,opt,name=field35812" json:"field35812,omitempty"` Field35813 *int32 `protobuf:"varint,4,opt,name=field35813" json:"field35813,omitempty"` Field35814 *int32 `protobuf:"varint,5,opt,name=field35814" json:"field35814,omitempty"` Field35815 *int32 `protobuf:"varint,6,opt,name=field35815" json:"field35815,omitempty"` Field35816 *int32 `protobuf:"varint,7,opt,name=field35816" json:"field35816,omitempty"` Field35817 *int32 `protobuf:"varint,8,opt,name=field35817" json:"field35817,omitempty"` } func (x *Message35807) Reset() { *x = Message35807{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message35807) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message35807) ProtoMessage() {} func (x *Message35807) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message35807.ProtoReflect.Descriptor instead. func (*Message35807) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{4} } func (x *Message35807) GetField35810() int32 { if x != nil && x.Field35810 != nil { return *x.Field35810 } return 0 } func (x *Message35807) GetField35811() int32 { if x != nil && x.Field35811 != nil { return *x.Field35811 } return 0 } func (x *Message35807) GetField35812() int32 { if x != nil && x.Field35812 != nil { return *x.Field35812 } return 0 } func (x *Message35807) GetField35813() int32 { if x != nil && x.Field35813 != nil { return *x.Field35813 } return 0 } func (x *Message35807) GetField35814() int32 { if x != nil && x.Field35814 != nil { return *x.Field35814 } return 0 } func (x *Message35807) GetField35815() int32 { if x != nil && x.Field35815 != nil { return *x.Field35815 } return 0 } func (x *Message35807) GetField35816() int32 { if x != nil && x.Field35816 != nil { return *x.Field35816 } return 0 } func (x *Message35807) GetField35817() int32 { if x != nil && x.Field35817 != nil { return *x.Field35817 } return 0 } type Message37487 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field37501 []byte `protobuf:"bytes,2,opt,name=field37501" json:"field37501,omitempty"` Field37502 *bool `protobuf:"varint,3,opt,name=field37502" json:"field37502,omitempty"` } func (x *Message37487) Reset() { *x = Message37487{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message37487) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message37487) ProtoMessage() {} func (x *Message37487) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message37487.ProtoReflect.Descriptor instead. func (*Message37487) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{5} } func (x *Message37487) GetField37501() []byte { if x != nil { return x.Field37501 } return nil } func (x *Message37487) GetField37502() bool { if x != nil && x.Field37502 != nil { return *x.Field37502 } return false } type Message13062 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field13075 *int64 `protobuf:"varint,1,opt,name=field13075" json:"field13075,omitempty"` Field13076 *string `protobuf:"bytes,2,opt,name=field13076" json:"field13076,omitempty"` Field13077 *int32 `protobuf:"varint,3,opt,name=field13077" json:"field13077,omitempty"` Field13078 *string `protobuf:"bytes,4,opt,name=field13078" json:"field13078,omitempty"` Field13079 *int32 `protobuf:"varint,5,opt,name=field13079" json:"field13079,omitempty"` } func (x *Message13062) Reset() { *x = Message13062{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message13062) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message13062) ProtoMessage() {} func (x *Message13062) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message13062.ProtoReflect.Descriptor instead. func (*Message13062) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{6} } func (x *Message13062) GetField13075() int64 { if x != nil && x.Field13075 != nil { return *x.Field13075 } return 0 } func (x *Message13062) GetField13076() string { if x != nil && x.Field13076 != nil { return *x.Field13076 } return "" } func (x *Message13062) GetField13077() int32 { if x != nil && x.Field13077 != nil { return *x.Field13077 } return 0 } func (x *Message13062) GetField13078() string { if x != nil && x.Field13078 != nil { return *x.Field13078 } return "" } func (x *Message13062) GetField13079() int32 { if x != nil && x.Field13079 != nil { return *x.Field13079 } return 0 } type Message952 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field963 []*Message949 `protobuf:"bytes,1,rep,name=field963" json:"field963,omitempty"` } func (x *Message952) Reset() { *x = Message952{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message952) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message952) ProtoMessage() {} func (x *Message952) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message952.ProtoReflect.Descriptor instead. func (*Message952) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{7} } func (x *Message952) GetField963() []*Message949 { if x != nil { return x.Field963 } return nil } type Message36876 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field36980 *Message2356 `protobuf:"bytes,1,opt,name=field36980" json:"field36980,omitempty"` Message36877 []*Message36876_Message36877 `protobuf:"group,111,rep,name=Message36877,json=message36877" json:"message36877,omitempty"` Message36878 []*Message36876_Message36878 `protobuf:"group,168,rep,name=Message36878,json=message36878" json:"message36878,omitempty"` Message36879 []*Message36876_Message36879 `protobuf:"group,55,rep,name=Message36879,json=message36879" json:"message36879,omitempty"` Field36984 []*UnusedEmptyMessage `protobuf:"bytes,78,rep,name=field36984" json:"field36984,omitempty"` Message36880 *Message36876_Message36880 `protobuf:"group,137,opt,name=Message36880,json=message36880" json:"message36880,omitempty"` Field36986 *uint64 `protobuf:"varint,59,opt,name=field36986" json:"field36986,omitempty"` Field36987 []byte `protobuf:"bytes,121,opt,name=field36987" json:"field36987,omitempty"` Field36988 *UnusedEmptyMessage `protobuf:"bytes,2,opt,name=field36988" json:"field36988,omitempty"` Field36989 *Message7029 `protobuf:"bytes,118,opt,name=field36989" json:"field36989,omitempty"` Field36990 *Message35573 `protobuf:"bytes,11,opt,name=field36990" json:"field36990,omitempty"` Field36991 *UnusedEmptyMessage `protobuf:"bytes,21,opt,name=field36991" json:"field36991,omitempty"` Field36992 *UnusedEmptyMessage `protobuf:"bytes,22,opt,name=field36992" json:"field36992,omitempty"` Field36993 *float32 `protobuf:"fixed32,13,opt,name=field36993" json:"field36993,omitempty"` Field36994 *int32 `protobuf:"varint,20,opt,name=field36994" json:"field36994,omitempty"` Field36995 *bool `protobuf:"varint,51,opt,name=field36995" json:"field36995,omitempty"` Field36996 *bool `protobuf:"varint,57,opt,name=field36996" json:"field36996,omitempty"` Field36997 []*UnusedEmptyMessage `protobuf:"bytes,100,rep,name=field36997" json:"field36997,omitempty"` Field36998 *int32 `protobuf:"varint,47,opt,name=field36998" json:"field36998,omitempty"` Field36999 *int32 `protobuf:"varint,48,opt,name=field36999" json:"field36999,omitempty"` Field37000 *UnusedEmptyMessage `protobuf:"bytes,68,opt,name=field37000" json:"field37000,omitempty"` Message36881 []*Message36876_Message36881 `protobuf:"group,23,rep,name=Message36881,json=message36881" json:"message36881,omitempty"` Field37002 *Message4144 `protobuf:"bytes,125,opt,name=field37002" json:"field37002,omitempty"` Message36882 []*Message36876_Message36882 `protobuf:"group,35,rep,name=Message36882,json=message36882" json:"message36882,omitempty"` Field37004 *UnusedEmptyMessage `protobuf:"bytes,49,opt,name=field37004" json:"field37004,omitempty"` Field37005 *Message18921 `protobuf:"bytes,52,opt,name=field37005" json:"field37005,omitempty"` Field37006 *Message36858 `protobuf:"bytes,46,opt,name=field37006" json:"field37006,omitempty"` Field37007 *Message18831 `protobuf:"bytes,54,opt,name=field37007" json:"field37007,omitempty"` Field37008 *UnusedEmptyMessage `protobuf:"bytes,58,opt,name=field37008" json:"field37008,omitempty"` Field37009 *Message18283 `protobuf:"bytes,10,opt,name=field37009" json:"field37009,omitempty"` Field37010 *string `protobuf:"bytes,44,opt,name=field37010" json:"field37010,omitempty"` Field37011 *string `protobuf:"bytes,103,opt,name=field37011" json:"field37011,omitempty"` Field37012 *Message0 `protobuf:"bytes,43,opt,name=field37012" json:"field37012,omitempty"` Field37013 *Message0 `protobuf:"bytes,143,opt,name=field37013" json:"field37013,omitempty"` Field37014 *UnusedEmptyMessage `protobuf:"bytes,53,opt,name=field37014" json:"field37014,omitempty"` Field37015 *Message36869 `protobuf:"bytes,15,opt,name=field37015" json:"field37015,omitempty"` Message36883 *Message36876_Message36883 `protobuf:"group,3,opt,name=Message36883,json=message36883" json:"message36883,omitempty"` Message36884 []*Message36876_Message36884 `protobuf:"group,16,rep,name=Message36884,json=message36884" json:"message36884,omitempty"` Message36885 []*Message36876_Message36885 `protobuf:"group,27,rep,name=Message36885,json=message36885" json:"message36885,omitempty"` Message36886 *Message36876_Message36886 `protobuf:"group,32,opt,name=Message36886,json=message36886" json:"message36886,omitempty"` Field37020 []UnusedEnum `protobuf:"varint,71,rep,name=field37020,enum=benchmarks.google_message3.UnusedEnum" json:"field37020,omitempty"` Field37021 []int32 `protobuf:"varint,70,rep,name=field37021" json:"field37021,omitempty"` Field37022 *UnusedEmptyMessage `protobuf:"bytes,66,opt,name=field37022" json:"field37022,omitempty"` Field37023 *Message13090 `protobuf:"bytes,67,opt,name=field37023" json:"field37023,omitempty"` Message36887 *Message36876_Message36887 `protobuf:"group,62,opt,name=Message36887,json=message36887" json:"message36887,omitempty"` Field37025 []*Message10155 `protobuf:"bytes,50,rep,name=field37025" json:"field37025,omitempty"` Field37026 []*Message11874 `protobuf:"bytes,151,rep,name=field37026" json:"field37026,omitempty"` Field37027 *string `protobuf:"bytes,12,opt,name=field37027" json:"field37027,omitempty"` Field37028 *int64 `protobuf:"varint,72,opt,name=field37028" json:"field37028,omitempty"` Field37029 *UnusedEmptyMessage `protobuf:"bytes,73,opt,name=field37029" json:"field37029,omitempty"` Field37030 *Message35546 `protobuf:"bytes,108,opt,name=field37030" json:"field37030,omitempty"` Message36888 *Message36876_Message36888 `protobuf:"group,74,opt,name=Message36888,json=message36888" json:"message36888,omitempty"` Field37032 []*Message19255 `protobuf:"bytes,104,rep,name=field37032" json:"field37032,omitempty"` Field37033 *Message33968 `protobuf:"bytes,105,opt,name=field37033" json:"field37033,omitempty"` Field37034 *bool `protobuf:"varint,106,opt,name=field37034" json:"field37034,omitempty"` Field37035 []*UnusedEmptyMessage `protobuf:"bytes,107,rep,name=field37035" json:"field37035,omitempty"` Field37036 *Message6644 `protobuf:"bytes,110,opt,name=field37036" json:"field37036,omitempty"` Field37037 []byte `protobuf:"bytes,133,opt,name=field37037" json:"field37037,omitempty"` Message36889 *Message36876_Message36889 `protobuf:"group,116,opt,name=Message36889,json=message36889" json:"message36889,omitempty"` Message36910 []*Message36876_Message36910 `protobuf:"group,119,rep,name=Message36910,json=message36910" json:"message36910,omitempty"` Message36911 *Message36876_Message36911 `protobuf:"group,126,opt,name=Message36911,json=message36911" json:"message36911,omitempty"` Message36912 *Message36876_Message36912 `protobuf:"group,152,opt,name=Message36912,json=message36912" json:"message36912,omitempty"` Field37042 *UnusedEmptyMessage `protobuf:"bytes,155,opt,name=field37042" json:"field37042,omitempty"` } func (x *Message36876) Reset() { *x = Message36876{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message36876) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message36876) ProtoMessage() {} func (x *Message36876) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message36876.ProtoReflect.Descriptor instead. func (*Message36876) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{8} } func (x *Message36876) GetField36980() *Message2356 { if x != nil { return x.Field36980 } return nil } func (x *Message36876) GetMessage36877() []*Message36876_Message36877 { if x != nil { return x.Message36877 } return nil } func (x *Message36876) GetMessage36878() []*Message36876_Message36878 { if x != nil { return x.Message36878 } return nil } func (x *Message36876) GetMessage36879() []*Message36876_Message36879 { if x != nil { return x.Message36879 } return nil } func (x *Message36876) GetField36984() []*UnusedEmptyMessage { if x != nil { return x.Field36984 } return nil } func (x *Message36876) GetMessage36880() *Message36876_Message36880 { if x != nil { return x.Message36880 } return nil } func (x *Message36876) GetField36986() uint64 { if x != nil && x.Field36986 != nil { return *x.Field36986 } return 0 } func (x *Message36876) GetField36987() []byte { if x != nil { return x.Field36987 } return nil } func (x *Message36876) GetField36988() *UnusedEmptyMessage { if x != nil { return x.Field36988 } return nil } func (x *Message36876) GetField36989() *Message7029 { if x != nil { return x.Field36989 } return nil } func (x *Message36876) GetField36990() *Message35573 { if x != nil { return x.Field36990 } return nil } func (x *Message36876) GetField36991() *UnusedEmptyMessage { if x != nil { return x.Field36991 } return nil } func (x *Message36876) GetField36992() *UnusedEmptyMessage { if x != nil { return x.Field36992 } return nil } func (x *Message36876) GetField36993() float32 { if x != nil && x.Field36993 != nil { return *x.Field36993 } return 0 } func (x *Message36876) GetField36994() int32 { if x != nil && x.Field36994 != nil { return *x.Field36994 } return 0 } func (x *Message36876) GetField36995() bool { if x != nil && x.Field36995 != nil { return *x.Field36995 } return false } func (x *Message36876) GetField36996() bool { if x != nil && x.Field36996 != nil { return *x.Field36996 } return false } func (x *Message36876) GetField36997() []*UnusedEmptyMessage { if x != nil { return x.Field36997 } return nil } func (x *Message36876) GetField36998() int32 { if x != nil && x.Field36998 != nil { return *x.Field36998 } return 0 } func (x *Message36876) GetField36999() int32 { if x != nil && x.Field36999 != nil { return *x.Field36999 } return 0 } func (x *Message36876) GetField37000() *UnusedEmptyMessage { if x != nil { return x.Field37000 } return nil } func (x *Message36876) GetMessage36881() []*Message36876_Message36881 { if x != nil { return x.Message36881 } return nil } func (x *Message36876) GetField37002() *Message4144 { if x != nil { return x.Field37002 } return nil } func (x *Message36876) GetMessage36882() []*Message36876_Message36882 { if x != nil { return x.Message36882 } return nil } func (x *Message36876) GetField37004() *UnusedEmptyMessage { if x != nil { return x.Field37004 } return nil } func (x *Message36876) GetField37005() *Message18921 { if x != nil { return x.Field37005 } return nil } func (x *Message36876) GetField37006() *Message36858 { if x != nil { return x.Field37006 } return nil } func (x *Message36876) GetField37007() *Message18831 { if x != nil { return x.Field37007 } return nil } func (x *Message36876) GetField37008() *UnusedEmptyMessage { if x != nil { return x.Field37008 } return nil } func (x *Message36876) GetField37009() *Message18283 { if x != nil { return x.Field37009 } return nil } func (x *Message36876) GetField37010() string { if x != nil && x.Field37010 != nil { return *x.Field37010 } return "" } func (x *Message36876) GetField37011() string { if x != nil && x.Field37011 != nil { return *x.Field37011 } return "" } func (x *Message36876) GetField37012() *Message0 { if x != nil { return x.Field37012 } return nil } func (x *Message36876) GetField37013() *Message0 { if x != nil { return x.Field37013 } return nil } func (x *Message36876) GetField37014() *UnusedEmptyMessage { if x != nil { return x.Field37014 } return nil } func (x *Message36876) GetField37015() *Message36869 { if x != nil { return x.Field37015 } return nil } func (x *Message36876) GetMessage36883() *Message36876_Message36883 { if x != nil { return x.Message36883 } return nil } func (x *Message36876) GetMessage36884() []*Message36876_Message36884 { if x != nil { return x.Message36884 } return nil } func (x *Message36876) GetMessage36885() []*Message36876_Message36885 { if x != nil { return x.Message36885 } return nil } func (x *Message36876) GetMessage36886() *Message36876_Message36886 { if x != nil { return x.Message36886 } return nil } func (x *Message36876) GetField37020() []UnusedEnum { if x != nil { return x.Field37020 } return nil } func (x *Message36876) GetField37021() []int32 { if x != nil { return x.Field37021 } return nil } func (x *Message36876) GetField37022() *UnusedEmptyMessage { if x != nil { return x.Field37022 } return nil } func (x *Message36876) GetField37023() *Message13090 { if x != nil { return x.Field37023 } return nil } func (x *Message36876) GetMessage36887() *Message36876_Message36887 { if x != nil { return x.Message36887 } return nil } func (x *Message36876) GetField37025() []*Message10155 { if x != nil { return x.Field37025 } return nil } func (x *Message36876) GetField37026() []*Message11874 { if x != nil { return x.Field37026 } return nil } func (x *Message36876) GetField37027() string { if x != nil && x.Field37027 != nil { return *x.Field37027 } return "" } func (x *Message36876) GetField37028() int64 { if x != nil && x.Field37028 != nil { return *x.Field37028 } return 0 } func (x *Message36876) GetField37029() *UnusedEmptyMessage { if x != nil { return x.Field37029 } return nil } func (x *Message36876) GetField37030() *Message35546 { if x != nil { return x.Field37030 } return nil } func (x *Message36876) GetMessage36888() *Message36876_Message36888 { if x != nil { return x.Message36888 } return nil } func (x *Message36876) GetField37032() []*Message19255 { if x != nil { return x.Field37032 } return nil } func (x *Message36876) GetField37033() *Message33968 { if x != nil { return x.Field37033 } return nil } func (x *Message36876) GetField37034() bool { if x != nil && x.Field37034 != nil { return *x.Field37034 } return false } func (x *Message36876) GetField37035() []*UnusedEmptyMessage { if x != nil { return x.Field37035 } return nil } func (x *Message36876) GetField37036() *Message6644 { if x != nil { return x.Field37036 } return nil } func (x *Message36876) GetField37037() []byte { if x != nil { return x.Field37037 } return nil } func (x *Message36876) GetMessage36889() *Message36876_Message36889 { if x != nil { return x.Message36889 } return nil } func (x *Message36876) GetMessage36910() []*Message36876_Message36910 { if x != nil { return x.Message36910 } return nil } func (x *Message36876) GetMessage36911() *Message36876_Message36911 { if x != nil { return x.Message36911 } return nil } func (x *Message36876) GetMessage36912() *Message36876_Message36912 { if x != nil { return x.Message36912 } return nil } func (x *Message36876) GetField37042() *UnusedEmptyMessage { if x != nil { return x.Field37042 } return nil } type Message1328 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message1328) Reset() { *x = Message1328{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message1328) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message1328) ProtoMessage() {} func (x *Message1328) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message1328.ProtoReflect.Descriptor instead. func (*Message1328) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{9} } type Message6850 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message6850) Reset() { *x = Message6850{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6850) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6850) ProtoMessage() {} func (x *Message6850) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6850.ProtoReflect.Descriptor instead. func (*Message6850) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{10} } type Message6863 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6931 *Enum6858 `protobuf:"varint,1,opt,name=field6931,enum=benchmarks.google_message3.Enum6858" json:"field6931,omitempty"` Field6932 *Enum6858 `protobuf:"varint,2,opt,name=field6932,enum=benchmarks.google_message3.Enum6858" json:"field6932,omitempty"` Field6933 *UnusedEnum `protobuf:"varint,36,opt,name=field6933,enum=benchmarks.google_message3.UnusedEnum" json:"field6933,omitempty"` Field6934 *bool `protobuf:"varint,27,opt,name=field6934" json:"field6934,omitempty"` Field6935 *Message6773 `protobuf:"bytes,26,opt,name=field6935" json:"field6935,omitempty"` Field6936 *int32 `protobuf:"varint,30,opt,name=field6936" json:"field6936,omitempty"` Field6937 *int32 `protobuf:"varint,37,opt,name=field6937" json:"field6937,omitempty"` Field6938 *Enum6815 `protobuf:"varint,31,opt,name=field6938,enum=benchmarks.google_message3.Enum6815" json:"field6938,omitempty"` Field6939 *string `protobuf:"bytes,3,opt,name=field6939" json:"field6939,omitempty"` Field6940 *int32 `protobuf:"varint,4,opt,name=field6940" json:"field6940,omitempty"` Field6941 *Enum6822 `protobuf:"varint,15,opt,name=field6941,enum=benchmarks.google_message3.Enum6822" json:"field6941,omitempty"` Field6942 *bool `protobuf:"varint,10,opt,name=field6942" json:"field6942,omitempty"` Field6943 *bool `protobuf:"varint,17,opt,name=field6943" json:"field6943,omitempty"` Field6944 *float32 `protobuf:"fixed32,18,opt,name=field6944" json:"field6944,omitempty"` Field6945 *float32 `protobuf:"fixed32,19,opt,name=field6945" json:"field6945,omitempty"` Field6946 *int32 `protobuf:"varint,5,opt,name=field6946" json:"field6946,omitempty"` Field6947 *int32 `protobuf:"varint,6,opt,name=field6947" json:"field6947,omitempty"` Field6948 *bool `protobuf:"varint,7,opt,name=field6948" json:"field6948,omitempty"` Field6949 *int32 `protobuf:"varint,12,opt,name=field6949" json:"field6949,omitempty"` Field6950 *UnusedEmptyMessage `protobuf:"bytes,8,opt,name=field6950" json:"field6950,omitempty"` Field6951 *uint64 `protobuf:"varint,9,opt,name=field6951" json:"field6951,omitempty"` Field6952 *string `protobuf:"bytes,11,opt,name=field6952" json:"field6952,omitempty"` Field6953 []byte `protobuf:"bytes,13,opt,name=field6953" json:"field6953,omitempty"` Field6954 *int32 `protobuf:"varint,14,opt,name=field6954" json:"field6954,omitempty"` Field6955 *UnusedEmptyMessage `protobuf:"bytes,16,opt,name=field6955" json:"field6955,omitempty"` Field6956 *UnusedEmptyMessage `protobuf:"bytes,22,opt,name=field6956" json:"field6956,omitempty"` Field6957 *Message3886 `protobuf:"bytes,38,opt,name=field6957" json:"field6957,omitempty"` Field6958 *string `protobuf:"bytes,20,opt,name=field6958" json:"field6958,omitempty"` Field6959 *uint32 `protobuf:"varint,21,opt,name=field6959" json:"field6959,omitempty"` Field6960 *Message6743 `protobuf:"bytes,23,opt,name=field6960" json:"field6960,omitempty"` Field6961 *UnusedEmptyMessage `protobuf:"bytes,29,opt,name=field6961" json:"field6961,omitempty"` Field6962 *UnusedEmptyMessage `protobuf:"bytes,33,opt,name=field6962" json:"field6962,omitempty"` Field6963 *bool `protobuf:"varint,34,opt,name=field6963" json:"field6963,omitempty"` } func (x *Message6863) Reset() { *x = Message6863{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6863) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6863) ProtoMessage() {} func (x *Message6863) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6863.ProtoReflect.Descriptor instead. func (*Message6863) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{11} } func (x *Message6863) GetField6931() Enum6858 { if x != nil && x.Field6931 != nil { return *x.Field6931 } return Enum6858_ENUM_VALUE6859 } func (x *Message6863) GetField6932() Enum6858 { if x != nil && x.Field6932 != nil { return *x.Field6932 } return Enum6858_ENUM_VALUE6859 } func (x *Message6863) GetField6933() UnusedEnum { if x != nil && x.Field6933 != nil { return *x.Field6933 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message6863) GetField6934() bool { if x != nil && x.Field6934 != nil { return *x.Field6934 } return false } func (x *Message6863) GetField6935() *Message6773 { if x != nil { return x.Field6935 } return nil } func (x *Message6863) GetField6936() int32 { if x != nil && x.Field6936 != nil { return *x.Field6936 } return 0 } func (x *Message6863) GetField6937() int32 { if x != nil && x.Field6937 != nil { return *x.Field6937 } return 0 } func (x *Message6863) GetField6938() Enum6815 { if x != nil && x.Field6938 != nil { return *x.Field6938 } return Enum6815_ENUM_VALUE6816 } func (x *Message6863) GetField6939() string { if x != nil && x.Field6939 != nil { return *x.Field6939 } return "" } func (x *Message6863) GetField6940() int32 { if x != nil && x.Field6940 != nil { return *x.Field6940 } return 0 } func (x *Message6863) GetField6941() Enum6822 { if x != nil && x.Field6941 != nil { return *x.Field6941 } return Enum6822_ENUM_VALUE6823 } func (x *Message6863) GetField6942() bool { if x != nil && x.Field6942 != nil { return *x.Field6942 } return false } func (x *Message6863) GetField6943() bool { if x != nil && x.Field6943 != nil { return *x.Field6943 } return false } func (x *Message6863) GetField6944() float32 { if x != nil && x.Field6944 != nil { return *x.Field6944 } return 0 } func (x *Message6863) GetField6945() float32 { if x != nil && x.Field6945 != nil { return *x.Field6945 } return 0 } func (x *Message6863) GetField6946() int32 { if x != nil && x.Field6946 != nil { return *x.Field6946 } return 0 } func (x *Message6863) GetField6947() int32 { if x != nil && x.Field6947 != nil { return *x.Field6947 } return 0 } func (x *Message6863) GetField6948() bool { if x != nil && x.Field6948 != nil { return *x.Field6948 } return false } func (x *Message6863) GetField6949() int32 { if x != nil && x.Field6949 != nil { return *x.Field6949 } return 0 } func (x *Message6863) GetField6950() *UnusedEmptyMessage { if x != nil { return x.Field6950 } return nil } func (x *Message6863) GetField6951() uint64 { if x != nil && x.Field6951 != nil { return *x.Field6951 } return 0 } func (x *Message6863) GetField6952() string { if x != nil && x.Field6952 != nil { return *x.Field6952 } return "" } func (x *Message6863) GetField6953() []byte { if x != nil { return x.Field6953 } return nil } func (x *Message6863) GetField6954() int32 { if x != nil && x.Field6954 != nil { return *x.Field6954 } return 0 } func (x *Message6863) GetField6955() *UnusedEmptyMessage { if x != nil { return x.Field6955 } return nil } func (x *Message6863) GetField6956() *UnusedEmptyMessage { if x != nil { return x.Field6956 } return nil } func (x *Message6863) GetField6957() *Message3886 { if x != nil { return x.Field6957 } return nil } func (x *Message6863) GetField6958() string { if x != nil && x.Field6958 != nil { return *x.Field6958 } return "" } func (x *Message6863) GetField6959() uint32 { if x != nil && x.Field6959 != nil { return *x.Field6959 } return 0 } func (x *Message6863) GetField6960() *Message6743 { if x != nil { return x.Field6960 } return nil } func (x *Message6863) GetField6961() *UnusedEmptyMessage { if x != nil { return x.Field6961 } return nil } func (x *Message6863) GetField6962() *UnusedEmptyMessage { if x != nil { return x.Field6962 } return nil } func (x *Message6863) GetField6963() bool { if x != nil && x.Field6963 != nil { return *x.Field6963 } return false } type Message6871 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message6871) Reset() { *x = Message6871{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6871) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6871) ProtoMessage() {} func (x *Message6871) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6871.ProtoReflect.Descriptor instead. func (*Message6871) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{12} } type Message7547 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7549 []byte `protobuf:"bytes,1,req,name=field7549" json:"field7549,omitempty"` Field7550 *int32 `protobuf:"varint,2,req,name=field7550" json:"field7550,omitempty"` } func (x *Message7547) Reset() { *x = Message7547{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7547) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7547) ProtoMessage() {} func (x *Message7547) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7547.ProtoReflect.Descriptor instead. func (*Message7547) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{13} } func (x *Message7547) GetField7549() []byte { if x != nil { return x.Field7549 } return nil } func (x *Message7547) GetField7550() int32 { if x != nil && x.Field7550 != nil { return *x.Field7550 } return 0 } type Message7648 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7669 *string `protobuf:"bytes,1,opt,name=field7669" json:"field7669,omitempty"` Field7670 *int32 `protobuf:"varint,2,opt,name=field7670" json:"field7670,omitempty"` Field7671 *int32 `protobuf:"varint,3,opt,name=field7671" json:"field7671,omitempty"` Field7672 *int32 `protobuf:"varint,4,opt,name=field7672" json:"field7672,omitempty"` Field7673 *int32 `protobuf:"varint,5,opt,name=field7673" json:"field7673,omitempty"` Field7674 *int32 `protobuf:"varint,6,opt,name=field7674" json:"field7674,omitempty"` Field7675 *float32 `protobuf:"fixed32,7,opt,name=field7675" json:"field7675,omitempty"` Field7676 *bool `protobuf:"varint,8,opt,name=field7676" json:"field7676,omitempty"` Field7677 *bool `protobuf:"varint,9,opt,name=field7677" json:"field7677,omitempty"` Field7678 *bool `protobuf:"varint,10,opt,name=field7678" json:"field7678,omitempty"` Field7679 *bool `protobuf:"varint,11,opt,name=field7679" json:"field7679,omitempty"` Field7680 *bool `protobuf:"varint,12,opt,name=field7680" json:"field7680,omitempty"` } func (x *Message7648) Reset() { *x = Message7648{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7648) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7648) ProtoMessage() {} func (x *Message7648) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7648.ProtoReflect.Descriptor instead. func (*Message7648) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{14} } func (x *Message7648) GetField7669() string { if x != nil && x.Field7669 != nil { return *x.Field7669 } return "" } func (x *Message7648) GetField7670() int32 { if x != nil && x.Field7670 != nil { return *x.Field7670 } return 0 } func (x *Message7648) GetField7671() int32 { if x != nil && x.Field7671 != nil { return *x.Field7671 } return 0 } func (x *Message7648) GetField7672() int32 { if x != nil && x.Field7672 != nil { return *x.Field7672 } return 0 } func (x *Message7648) GetField7673() int32 { if x != nil && x.Field7673 != nil { return *x.Field7673 } return 0 } func (x *Message7648) GetField7674() int32 { if x != nil && x.Field7674 != nil { return *x.Field7674 } return 0 } func (x *Message7648) GetField7675() float32 { if x != nil && x.Field7675 != nil { return *x.Field7675 } return 0 } func (x *Message7648) GetField7676() bool { if x != nil && x.Field7676 != nil { return *x.Field7676 } return false } func (x *Message7648) GetField7677() bool { if x != nil && x.Field7677 != nil { return *x.Field7677 } return false } func (x *Message7648) GetField7678() bool { if x != nil && x.Field7678 != nil { return *x.Field7678 } return false } func (x *Message7648) GetField7679() bool { if x != nil && x.Field7679 != nil { return *x.Field7679 } return false } func (x *Message7648) GetField7680() bool { if x != nil && x.Field7680 != nil { return *x.Field7680 } return false } type Message7865 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message7865) Reset() { *x = Message7865{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7865) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7865) ProtoMessage() {} func (x *Message7865) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7865.ProtoReflect.Descriptor instead. func (*Message7865) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{15} } type Message7928 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7940 *string `protobuf:"bytes,1,opt,name=field7940" json:"field7940,omitempty"` Field7941 *int64 `protobuf:"varint,2,opt,name=field7941" json:"field7941,omitempty"` } func (x *Message7928) Reset() { *x = Message7928{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7928) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7928) ProtoMessage() {} func (x *Message7928) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7928.ProtoReflect.Descriptor instead. func (*Message7928) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{16} } func (x *Message7928) GetField7940() string { if x != nil && x.Field7940 != nil { return *x.Field7940 } return "" } func (x *Message7928) GetField7941() int64 { if x != nil && x.Field7941 != nil { return *x.Field7941 } return 0 } type Message7919 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7931 *uint64 `protobuf:"fixed64,1,opt,name=field7931" json:"field7931,omitempty"` Field7932 *int64 `protobuf:"varint,2,opt,name=field7932" json:"field7932,omitempty"` Field7933 []byte `protobuf:"bytes,3,opt,name=field7933" json:"field7933,omitempty"` } func (x *Message7919) Reset() { *x = Message7919{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7919) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7919) ProtoMessage() {} func (x *Message7919) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7919.ProtoReflect.Descriptor instead. func (*Message7919) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{17} } func (x *Message7919) GetField7931() uint64 { if x != nil && x.Field7931 != nil { return *x.Field7931 } return 0 } func (x *Message7919) GetField7932() int64 { if x != nil && x.Field7932 != nil { return *x.Field7932 } return 0 } func (x *Message7919) GetField7933() []byte { if x != nil { return x.Field7933 } return nil } type Message7920 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7934 *int64 `protobuf:"varint,1,opt,name=field7934" json:"field7934,omitempty"` Field7935 *int64 `protobuf:"varint,2,opt,name=field7935" json:"field7935,omitempty"` } func (x *Message7920) Reset() { *x = Message7920{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7920) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7920) ProtoMessage() {} func (x *Message7920) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7920.ProtoReflect.Descriptor instead. func (*Message7920) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{18} } func (x *Message7920) GetField7934() int64 { if x != nil && x.Field7934 != nil { return *x.Field7934 } return 0 } func (x *Message7920) GetField7935() int64 { if x != nil && x.Field7935 != nil { return *x.Field7935 } return 0 } type Message7921 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7936 *int32 `protobuf:"varint,1,opt,name=field7936" json:"field7936,omitempty"` Field7937 *int64 `protobuf:"varint,2,opt,name=field7937" json:"field7937,omitempty"` Field7938 *float32 `protobuf:"fixed32,3,opt,name=field7938" json:"field7938,omitempty"` Field7939 *UnusedEnum `protobuf:"varint,4,opt,name=field7939,enum=benchmarks.google_message3.UnusedEnum" json:"field7939,omitempty"` } func (x *Message7921) Reset() { *x = Message7921{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7921) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7921) ProtoMessage() {} func (x *Message7921) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7921.ProtoReflect.Descriptor instead. func (*Message7921) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{19} } func (x *Message7921) GetField7936() int32 { if x != nil && x.Field7936 != nil { return *x.Field7936 } return 0 } func (x *Message7921) GetField7937() int64 { if x != nil && x.Field7937 != nil { return *x.Field7937 } return 0 } func (x *Message7921) GetField7938() float32 { if x != nil && x.Field7938 != nil { return *x.Field7938 } return 0 } func (x *Message7921) GetField7939() UnusedEnum { if x != nil && x.Field7939 != nil { return *x.Field7939 } return UnusedEnum_UNUSED_ENUM_VALUE1 } type Message8511 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8539 *Message8224 `protobuf:"bytes,1,opt,name=field8539" json:"field8539,omitempty"` Field8540 *string `protobuf:"bytes,2,opt,name=field8540" json:"field8540,omitempty"` Field8541 *bool `protobuf:"varint,3,opt,name=field8541" json:"field8541,omitempty"` Field8542 *int64 `protobuf:"varint,4,opt,name=field8542" json:"field8542,omitempty"` Field8543 *string `protobuf:"bytes,5,opt,name=field8543" json:"field8543,omitempty"` } func (x *Message8511) Reset() { *x = Message8511{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8511) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8511) ProtoMessage() {} func (x *Message8511) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8511.ProtoReflect.Descriptor instead. func (*Message8511) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{20} } func (x *Message8511) GetField8539() *Message8224 { if x != nil { return x.Field8539 } return nil } func (x *Message8511) GetField8540() string { if x != nil && x.Field8540 != nil { return *x.Field8540 } return "" } func (x *Message8511) GetField8541() bool { if x != nil && x.Field8541 != nil { return *x.Field8541 } return false } func (x *Message8511) GetField8542() int64 { if x != nil && x.Field8542 != nil { return *x.Field8542 } return 0 } func (x *Message8511) GetField8543() string { if x != nil && x.Field8543 != nil { return *x.Field8543 } return "" } type Message8512 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8544 *Message8301 `protobuf:"bytes,1,opt,name=field8544" json:"field8544,omitempty"` Field8545 *Message8302 `protobuf:"bytes,2,opt,name=field8545" json:"field8545,omitempty"` Field8546 *string `protobuf:"bytes,3,opt,name=field8546" json:"field8546,omitempty"` Field8547 *bool `protobuf:"varint,4,opt,name=field8547" json:"field8547,omitempty"` Field8548 *int64 `protobuf:"varint,5,opt,name=field8548" json:"field8548,omitempty"` Field8549 *string `protobuf:"bytes,6,opt,name=field8549" json:"field8549,omitempty"` } func (x *Message8512) Reset() { *x = Message8512{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8512) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8512) ProtoMessage() {} func (x *Message8512) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8512.ProtoReflect.Descriptor instead. func (*Message8512) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{21} } func (x *Message8512) GetField8544() *Message8301 { if x != nil { return x.Field8544 } return nil } func (x *Message8512) GetField8545() *Message8302 { if x != nil { return x.Field8545 } return nil } func (x *Message8512) GetField8546() string { if x != nil && x.Field8546 != nil { return *x.Field8546 } return "" } func (x *Message8512) GetField8547() bool { if x != nil && x.Field8547 != nil { return *x.Field8547 } return false } func (x *Message8512) GetField8548() int64 { if x != nil && x.Field8548 != nil { return *x.Field8548 } return 0 } func (x *Message8512) GetField8549() string { if x != nil && x.Field8549 != nil { return *x.Field8549 } return "" } type Message8513 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8550 []*Message8392 `protobuf:"bytes,1,rep,name=field8550" json:"field8550,omitempty"` Field8551 *string `protobuf:"bytes,2,opt,name=field8551" json:"field8551,omitempty"` Field8552 *bool `protobuf:"varint,3,opt,name=field8552" json:"field8552,omitempty"` Field8553 *string `protobuf:"bytes,4,opt,name=field8553" json:"field8553,omitempty"` } func (x *Message8513) Reset() { *x = Message8513{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8513) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8513) ProtoMessage() {} func (x *Message8513) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8513.ProtoReflect.Descriptor instead. func (*Message8513) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{22} } func (x *Message8513) GetField8550() []*Message8392 { if x != nil { return x.Field8550 } return nil } func (x *Message8513) GetField8551() string { if x != nil && x.Field8551 != nil { return *x.Field8551 } return "" } func (x *Message8513) GetField8552() bool { if x != nil && x.Field8552 != nil { return *x.Field8552 } return false } func (x *Message8513) GetField8553() string { if x != nil && x.Field8553 != nil { return *x.Field8553 } return "" } type Message8514 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8554 *string `protobuf:"bytes,1,opt,name=field8554" json:"field8554,omitempty"` Field8555 *int64 `protobuf:"varint,2,opt,name=field8555" json:"field8555,omitempty"` Field8556 *bool `protobuf:"varint,3,opt,name=field8556" json:"field8556,omitempty"` Field8557 []*Message8130 `protobuf:"bytes,4,rep,name=field8557" json:"field8557,omitempty"` Field8558 *string `protobuf:"bytes,5,opt,name=field8558" json:"field8558,omitempty"` } func (x *Message8514) Reset() { *x = Message8514{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8514) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8514) ProtoMessage() {} func (x *Message8514) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8514.ProtoReflect.Descriptor instead. func (*Message8514) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{23} } func (x *Message8514) GetField8554() string { if x != nil && x.Field8554 != nil { return *x.Field8554 } return "" } func (x *Message8514) GetField8555() int64 { if x != nil && x.Field8555 != nil { return *x.Field8555 } return 0 } func (x *Message8514) GetField8556() bool { if x != nil && x.Field8556 != nil { return *x.Field8556 } return false } func (x *Message8514) GetField8557() []*Message8130 { if x != nil { return x.Field8557 } return nil } func (x *Message8514) GetField8558() string { if x != nil && x.Field8558 != nil { return *x.Field8558 } return "" } type Message8515 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8559 *Message8479 `protobuf:"bytes,1,opt,name=field8559" json:"field8559,omitempty"` Field8560 *Message8478 `protobuf:"bytes,2,opt,name=field8560" json:"field8560,omitempty"` Field8561 *string `protobuf:"bytes,3,opt,name=field8561" json:"field8561,omitempty"` } func (x *Message8515) Reset() { *x = Message8515{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8515) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8515) ProtoMessage() {} func (x *Message8515) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8515.ProtoReflect.Descriptor instead. func (*Message8515) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{24} } func (x *Message8515) GetField8559() *Message8479 { if x != nil { return x.Field8559 } return nil } func (x *Message8515) GetField8560() *Message8478 { if x != nil { return x.Field8560 } return nil } func (x *Message8515) GetField8561() string { if x != nil && x.Field8561 != nil { return *x.Field8561 } return "" } type Message10320 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field10347 *Enum10335 `protobuf:"varint,1,opt,name=field10347,enum=benchmarks.google_message3.Enum10335" json:"field10347,omitempty"` Field10348 []*Message10319 `protobuf:"bytes,2,rep,name=field10348" json:"field10348,omitempty"` Field10349 *int32 `protobuf:"varint,3,opt,name=field10349" json:"field10349,omitempty"` Field10350 *int32 `protobuf:"varint,4,opt,name=field10350" json:"field10350,omitempty"` Field10351 *int32 `protobuf:"varint,5,opt,name=field10351" json:"field10351,omitempty"` Field10352 *int32 `protobuf:"varint,6,opt,name=field10352" json:"field10352,omitempty"` Field10353 *Enum10337 `protobuf:"varint,7,opt,name=field10353,enum=benchmarks.google_message3.Enum10337" json:"field10353,omitempty"` } func (x *Message10320) Reset() { *x = Message10320{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10320) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10320) ProtoMessage() {} func (x *Message10320) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10320.ProtoReflect.Descriptor instead. func (*Message10320) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{25} } func (x *Message10320) GetField10347() Enum10335 { if x != nil && x.Field10347 != nil { return *x.Field10347 } return Enum10335_ENUM_VALUE10336 } func (x *Message10320) GetField10348() []*Message10319 { if x != nil { return x.Field10348 } return nil } func (x *Message10320) GetField10349() int32 { if x != nil && x.Field10349 != nil { return *x.Field10349 } return 0 } func (x *Message10320) GetField10350() int32 { if x != nil && x.Field10350 != nil { return *x.Field10350 } return 0 } func (x *Message10320) GetField10351() int32 { if x != nil && x.Field10351 != nil { return *x.Field10351 } return 0 } func (x *Message10320) GetField10352() int32 { if x != nil && x.Field10352 != nil { return *x.Field10352 } return 0 } func (x *Message10320) GetField10353() Enum10337 { if x != nil && x.Field10353 != nil { return *x.Field10353 } return Enum10337_ENUM_VALUE10338 } type Message10321 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field10354 *int32 `protobuf:"varint,1,opt,name=field10354" json:"field10354,omitempty"` Field10355 *int32 `protobuf:"varint,2,opt,name=field10355" json:"field10355,omitempty"` Field10356 *uint64 `protobuf:"varint,3,opt,name=field10356" json:"field10356,omitempty"` } func (x *Message10321) Reset() { *x = Message10321{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10321) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10321) ProtoMessage() {} func (x *Message10321) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10321.ProtoReflect.Descriptor instead. func (*Message10321) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{26} } func (x *Message10321) GetField10354() int32 { if x != nil && x.Field10354 != nil { return *x.Field10354 } return 0 } func (x *Message10321) GetField10355() int32 { if x != nil && x.Field10355 != nil { return *x.Field10355 } return 0 } func (x *Message10321) GetField10356() uint64 { if x != nil && x.Field10356 != nil { return *x.Field10356 } return 0 } type Message10322 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field10357 *Message4016 `protobuf:"bytes,1,opt,name=field10357" json:"field10357,omitempty"` Field10358 *bool `protobuf:"varint,2,opt,name=field10358" json:"field10358,omitempty"` Field10359 *bool `protobuf:"varint,3,opt,name=field10359" json:"field10359,omitempty"` } func (x *Message10322) Reset() { *x = Message10322{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10322) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10322) ProtoMessage() {} func (x *Message10322) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10322.ProtoReflect.Descriptor instead. func (*Message10322) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{27} } func (x *Message10322) GetField10357() *Message4016 { if x != nil { return x.Field10357 } return nil } func (x *Message10322) GetField10358() bool { if x != nil && x.Field10358 != nil { return *x.Field10358 } return false } func (x *Message10322) GetField10359() bool { if x != nil && x.Field10359 != nil { return *x.Field10359 } return false } type Message11988 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12021 *string `protobuf:"bytes,1,opt,name=field12021" json:"field12021,omitempty"` Field12022 *string `protobuf:"bytes,2,opt,name=field12022" json:"field12022,omitempty"` Field12023 *UnusedEmptyMessage `protobuf:"bytes,3,opt,name=field12023" json:"field12023,omitempty"` Field12024 *Message10155 `protobuf:"bytes,4,opt,name=field12024" json:"field12024,omitempty"` } func (x *Message11988) Reset() { *x = Message11988{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message11988) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message11988) ProtoMessage() {} func (x *Message11988) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message11988.ProtoReflect.Descriptor instead. func (*Message11988) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{28} } func (x *Message11988) GetField12021() string { if x != nil && x.Field12021 != nil { return *x.Field12021 } return "" } func (x *Message11988) GetField12022() string { if x != nil && x.Field12022 != nil { return *x.Field12022 } return "" } func (x *Message11988) GetField12023() *UnusedEmptyMessage { if x != nil { return x.Field12023 } return nil } func (x *Message11988) GetField12024() *Message10155 { if x != nil { return x.Field12024 } return nil } type Message12668 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12677 []*Message12669 `protobuf:"bytes,1,rep,name=field12677" json:"field12677,omitempty"` Field12678 *int32 `protobuf:"varint,2,opt,name=field12678" json:"field12678,omitempty"` Field12679 *int32 `protobuf:"varint,3,opt,name=field12679" json:"field12679,omitempty"` Field12680 *int32 `protobuf:"varint,4,opt,name=field12680" json:"field12680,omitempty"` } func (x *Message12668) Reset() { *x = Message12668{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12668) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12668) ProtoMessage() {} func (x *Message12668) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12668.ProtoReflect.Descriptor instead. func (*Message12668) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{29} } func (x *Message12668) GetField12677() []*Message12669 { if x != nil { return x.Field12677 } return nil } func (x *Message12668) GetField12678() int32 { if x != nil && x.Field12678 != nil { return *x.Field12678 } return 0 } func (x *Message12668) GetField12679() int32 { if x != nil && x.Field12679 != nil { return *x.Field12679 } return 0 } func (x *Message12668) GetField12680() int32 { if x != nil && x.Field12680 != nil { return *x.Field12680 } return 0 } type Message12825 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12862 []*Message12818 `protobuf:"bytes,1,rep,name=field12862" json:"field12862,omitempty"` Field12863 *int32 `protobuf:"varint,2,opt,name=field12863" json:"field12863,omitempty"` Field12864 *Message12819 `protobuf:"bytes,3,opt,name=field12864" json:"field12864,omitempty"` Field12865 *Message12820 `protobuf:"bytes,4,opt,name=field12865" json:"field12865,omitempty"` Field12866 *int32 `protobuf:"varint,5,opt,name=field12866" json:"field12866,omitempty"` Field12867 []*Message12821 `protobuf:"bytes,6,rep,name=field12867" json:"field12867,omitempty"` Field12868 []*UnusedEmptyMessage `protobuf:"bytes,7,rep,name=field12868" json:"field12868,omitempty"` } func (x *Message12825) Reset() { *x = Message12825{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12825) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12825) ProtoMessage() {} func (x *Message12825) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12825.ProtoReflect.Descriptor instead. func (*Message12825) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{30} } func (x *Message12825) GetField12862() []*Message12818 { if x != nil { return x.Field12862 } return nil } func (x *Message12825) GetField12863() int32 { if x != nil && x.Field12863 != nil { return *x.Field12863 } return 0 } func (x *Message12825) GetField12864() *Message12819 { if x != nil { return x.Field12864 } return nil } func (x *Message12825) GetField12865() *Message12820 { if x != nil { return x.Field12865 } return nil } func (x *Message12825) GetField12866() int32 { if x != nil && x.Field12866 != nil { return *x.Field12866 } return 0 } func (x *Message12825) GetField12867() []*Message12821 { if x != nil { return x.Field12867 } return nil } func (x *Message12825) GetField12868() []*UnusedEmptyMessage { if x != nil { return x.Field12868 } return nil } type Message16478 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field16481 []*Message16479 `protobuf:"bytes,1,rep,name=field16481" json:"field16481,omitempty"` Field16482 *bool `protobuf:"varint,3,opt,name=field16482" json:"field16482,omitempty"` Field16483 *int32 `protobuf:"varint,2,opt,name=field16483" json:"field16483,omitempty"` } func (x *Message16478) Reset() { *x = Message16478{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message16478) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message16478) ProtoMessage() {} func (x *Message16478) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message16478.ProtoReflect.Descriptor instead. func (*Message16478) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{31} } func (x *Message16478) GetField16481() []*Message16479 { if x != nil { return x.Field16481 } return nil } func (x *Message16478) GetField16482() bool { if x != nil && x.Field16482 != nil { return *x.Field16482 } return false } func (x *Message16478) GetField16483() int32 { if x != nil && x.Field16483 != nil { return *x.Field16483 } return 0 } type Message16552 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field16565 *uint64 `protobuf:"fixed64,1,opt,name=field16565" json:"field16565,omitempty"` Field16566 *int32 `protobuf:"varint,2,opt,name=field16566" json:"field16566,omitempty"` Field16567 *Enum16553 `protobuf:"varint,3,opt,name=field16567,enum=benchmarks.google_message3.Enum16553" json:"field16567,omitempty"` } func (x *Message16552) Reset() { *x = Message16552{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message16552) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message16552) ProtoMessage() {} func (x *Message16552) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message16552.ProtoReflect.Descriptor instead. func (*Message16552) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{32} } func (x *Message16552) GetField16565() uint64 { if x != nil && x.Field16565 != nil { return *x.Field16565 } return 0 } func (x *Message16552) GetField16566() int32 { if x != nil && x.Field16566 != nil { return *x.Field16566 } return 0 } func (x *Message16552) GetField16567() Enum16553 { if x != nil && x.Field16567 != nil { return *x.Field16567 } return Enum16553_ENUM_VALUE16554 } type Message16660 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field16668 *string `protobuf:"bytes,1,opt,name=field16668" json:"field16668,omitempty"` Field16669 *string `protobuf:"bytes,2,opt,name=field16669" json:"field16669,omitempty"` Field16670 *int32 `protobuf:"varint,3,opt,name=field16670" json:"field16670,omitempty"` } func (x *Message16660) Reset() { *x = Message16660{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message16660) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message16660) ProtoMessage() {} func (x *Message16660) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message16660.ProtoReflect.Descriptor instead. func (*Message16660) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{33} } func (x *Message16660) GetField16668() string { if x != nil && x.Field16668 != nil { return *x.Field16668 } return "" } func (x *Message16660) GetField16669() string { if x != nil && x.Field16669 != nil { return *x.Field16669 } return "" } func (x *Message16660) GetField16670() int32 { if x != nil && x.Field16670 != nil { return *x.Field16670 } return 0 } type Message16727 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields Field16782 *Enum16728 `protobuf:"varint,1,req,name=field16782,enum=benchmarks.google_message3.Enum16728" json:"field16782,omitempty"` Field16783 *string `protobuf:"bytes,2,req,name=field16783" json:"field16783,omitempty"` Field16784 *string `protobuf:"bytes,3,opt,name=field16784" json:"field16784,omitempty"` Field16785 *int32 `protobuf:"varint,23,opt,name=field16785" json:"field16785,omitempty"` Field16786 *string `protobuf:"bytes,4,req,name=field16786" json:"field16786,omitempty"` Field16787 *string `protobuf:"bytes,5,opt,name=field16787" json:"field16787,omitempty"` Field16788 *string `protobuf:"bytes,6,opt,name=field16788" json:"field16788,omitempty"` Field16789 *Enum16732 `protobuf:"varint,7,req,name=field16789,enum=benchmarks.google_message3.Enum16732" json:"field16789,omitempty"` Field16790 *string `protobuf:"bytes,8,opt,name=field16790" json:"field16790,omitempty"` Field16791 *string `protobuf:"bytes,9,opt,name=field16791" json:"field16791,omitempty"` Field16792 *string `protobuf:"bytes,10,opt,name=field16792" json:"field16792,omitempty"` Field16793 *Enum16738 `protobuf:"varint,11,opt,name=field16793,enum=benchmarks.google_message3.Enum16738" json:"field16793,omitempty"` Field16794 *int32 `protobuf:"varint,12,opt,name=field16794" json:"field16794,omitempty"` Field16795 []*Message16722 `protobuf:"bytes,13,rep,name=field16795" json:"field16795,omitempty"` Field16796 *bool `protobuf:"varint,19,opt,name=field16796" json:"field16796,omitempty"` Field16797 *bool `protobuf:"varint,24,opt,name=field16797" json:"field16797,omitempty"` Field16798 *string `protobuf:"bytes,14,opt,name=field16798" json:"field16798,omitempty"` Field16799 *int64 `protobuf:"varint,15,opt,name=field16799" json:"field16799,omitempty"` Field16800 *bool `protobuf:"varint,16,opt,name=field16800" json:"field16800,omitempty"` Field16801 *string `protobuf:"bytes,17,opt,name=field16801" json:"field16801,omitempty"` Field16802 *Enum16698 `protobuf:"varint,18,opt,name=field16802,enum=benchmarks.google_message3.Enum16698" json:"field16802,omitempty"` Field16803 *Message16724 `protobuf:"bytes,20,opt,name=field16803" json:"field16803,omitempty"` Field16804 *bool `protobuf:"varint,22,opt,name=field16804" json:"field16804,omitempty"` Field16805 *UnusedEmptyMessage `protobuf:"bytes,25,opt,name=field16805" json:"field16805,omitempty"` } func (x *Message16727) Reset() { *x = Message16727{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message16727) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message16727) ProtoMessage() {} func (x *Message16727) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message16727.ProtoReflect.Descriptor instead. func (*Message16727) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{34} } func (x *Message16727) GetField16782() Enum16728 { if x != nil && x.Field16782 != nil { return *x.Field16782 } return Enum16728_ENUM_VALUE16729 } func (x *Message16727) GetField16783() string { if x != nil && x.Field16783 != nil { return *x.Field16783 } return "" } func (x *Message16727) GetField16784() string { if x != nil && x.Field16784 != nil { return *x.Field16784 } return "" } func (x *Message16727) GetField16785() int32 { if x != nil && x.Field16785 != nil { return *x.Field16785 } return 0 } func (x *Message16727) GetField16786() string { if x != nil && x.Field16786 != nil { return *x.Field16786 } return "" } func (x *Message16727) GetField16787() string { if x != nil && x.Field16787 != nil { return *x.Field16787 } return "" } func (x *Message16727) GetField16788() string { if x != nil && x.Field16788 != nil { return *x.Field16788 } return "" } func (x *Message16727) GetField16789() Enum16732 { if x != nil && x.Field16789 != nil { return *x.Field16789 } return Enum16732_ENUM_VALUE16733 } func (x *Message16727) GetField16790() string { if x != nil && x.Field16790 != nil { return *x.Field16790 } return "" } func (x *Message16727) GetField16791() string { if x != nil && x.Field16791 != nil { return *x.Field16791 } return "" } func (x *Message16727) GetField16792() string { if x != nil && x.Field16792 != nil { return *x.Field16792 } return "" } func (x *Message16727) GetField16793() Enum16738 { if x != nil && x.Field16793 != nil { return *x.Field16793 } return Enum16738_ENUM_VALUE16739 } func (x *Message16727) GetField16794() int32 { if x != nil && x.Field16794 != nil { return *x.Field16794 } return 0 } func (x *Message16727) GetField16795() []*Message16722 { if x != nil { return x.Field16795 } return nil } func (x *Message16727) GetField16796() bool { if x != nil && x.Field16796 != nil { return *x.Field16796 } return false } func (x *Message16727) GetField16797() bool { if x != nil && x.Field16797 != nil { return *x.Field16797 } return false } func (x *Message16727) GetField16798() string { if x != nil && x.Field16798 != nil { return *x.Field16798 } return "" } func (x *Message16727) GetField16799() int64 { if x != nil && x.Field16799 != nil { return *x.Field16799 } return 0 } func (x *Message16727) GetField16800() bool { if x != nil && x.Field16800 != nil { return *x.Field16800 } return false } func (x *Message16727) GetField16801() string { if x != nil && x.Field16801 != nil { return *x.Field16801 } return "" } func (x *Message16727) GetField16802() Enum16698 { if x != nil && x.Field16802 != nil { return *x.Field16802 } return Enum16698_ENUM_VALUE16699 } func (x *Message16727) GetField16803() *Message16724 { if x != nil { return x.Field16803 } return nil } func (x *Message16727) GetField16804() bool { if x != nil && x.Field16804 != nil { return *x.Field16804 } return false } func (x *Message16727) GetField16805() *UnusedEmptyMessage { if x != nil { return x.Field16805 } return nil } type Message16725 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field16774 *Enum16728 `protobuf:"varint,1,opt,name=field16774,enum=benchmarks.google_message3.Enum16728" json:"field16774,omitempty"` Field16775 []string `protobuf:"bytes,2,rep,name=field16775" json:"field16775,omitempty"` } func (x *Message16725) Reset() { *x = Message16725{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message16725) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message16725) ProtoMessage() {} func (x *Message16725) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message16725.ProtoReflect.Descriptor instead. func (*Message16725) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{35} } func (x *Message16725) GetField16774() Enum16728 { if x != nil && x.Field16774 != nil { return *x.Field16774 } return Enum16728_ENUM_VALUE16729 } func (x *Message16725) GetField16775() []string { if x != nil { return x.Field16775 } return nil } type Message17726 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field17801 *string `protobuf:"bytes,1,opt,name=field17801" json:"field17801,omitempty"` Field17802 []string `protobuf:"bytes,2,rep,name=field17802" json:"field17802,omitempty"` Field17803 *string `protobuf:"bytes,3,opt,name=field17803" json:"field17803,omitempty"` Field17804 []string `protobuf:"bytes,4,rep,name=field17804" json:"field17804,omitempty"` Field17805 *string `protobuf:"bytes,5,opt,name=field17805" json:"field17805,omitempty"` Field17806 []string `protobuf:"bytes,6,rep,name=field17806" json:"field17806,omitempty"` Field17807 *string `protobuf:"bytes,7,opt,name=field17807" json:"field17807,omitempty"` Field17808 *string `protobuf:"bytes,8,opt,name=field17808" json:"field17808,omitempty"` Field17809 []string `protobuf:"bytes,15,rep,name=field17809" json:"field17809,omitempty"` Field17810 []string `protobuf:"bytes,16,rep,name=field17810" json:"field17810,omitempty"` Field17811 []string `protobuf:"bytes,17,rep,name=field17811" json:"field17811,omitempty"` Field17812 []*UnusedEmptyMessage `protobuf:"bytes,18,rep,name=field17812" json:"field17812,omitempty"` Field17813 *string `protobuf:"bytes,9,opt,name=field17813" json:"field17813,omitempty"` Field17814 *string `protobuf:"bytes,10,opt,name=field17814" json:"field17814,omitempty"` Field17815 *string `protobuf:"bytes,11,opt,name=field17815" json:"field17815,omitempty"` Field17816 *string `protobuf:"bytes,12,opt,name=field17816" json:"field17816,omitempty"` Field17817 *string `protobuf:"bytes,13,opt,name=field17817" json:"field17817,omitempty"` Field17818 *string `protobuf:"bytes,14,opt,name=field17818" json:"field17818,omitempty"` Field17819 *string `protobuf:"bytes,19,opt,name=field17819" json:"field17819,omitempty"` Field17820 []*Message17728 `protobuf:"bytes,20,rep,name=field17820" json:"field17820,omitempty"` Field17821 []*Message17728 `protobuf:"bytes,21,rep,name=field17821" json:"field17821,omitempty"` Field17822 []*UnusedEmptyMessage `protobuf:"bytes,30,rep,name=field17822" json:"field17822,omitempty"` } func (x *Message17726) Reset() { *x = Message17726{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message17726) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message17726) ProtoMessage() {} func (x *Message17726) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message17726.ProtoReflect.Descriptor instead. func (*Message17726) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{36} } func (x *Message17726) GetField17801() string { if x != nil && x.Field17801 != nil { return *x.Field17801 } return "" } func (x *Message17726) GetField17802() []string { if x != nil { return x.Field17802 } return nil } func (x *Message17726) GetField17803() string { if x != nil && x.Field17803 != nil { return *x.Field17803 } return "" } func (x *Message17726) GetField17804() []string { if x != nil { return x.Field17804 } return nil } func (x *Message17726) GetField17805() string { if x != nil && x.Field17805 != nil { return *x.Field17805 } return "" } func (x *Message17726) GetField17806() []string { if x != nil { return x.Field17806 } return nil } func (x *Message17726) GetField17807() string { if x != nil && x.Field17807 != nil { return *x.Field17807 } return "" } func (x *Message17726) GetField17808() string { if x != nil && x.Field17808 != nil { return *x.Field17808 } return "" } func (x *Message17726) GetField17809() []string { if x != nil { return x.Field17809 } return nil } func (x *Message17726) GetField17810() []string { if x != nil { return x.Field17810 } return nil } func (x *Message17726) GetField17811() []string { if x != nil { return x.Field17811 } return nil } func (x *Message17726) GetField17812() []*UnusedEmptyMessage { if x != nil { return x.Field17812 } return nil } func (x *Message17726) GetField17813() string { if x != nil && x.Field17813 != nil { return *x.Field17813 } return "" } func (x *Message17726) GetField17814() string { if x != nil && x.Field17814 != nil { return *x.Field17814 } return "" } func (x *Message17726) GetField17815() string { if x != nil && x.Field17815 != nil { return *x.Field17815 } return "" } func (x *Message17726) GetField17816() string { if x != nil && x.Field17816 != nil { return *x.Field17816 } return "" } func (x *Message17726) GetField17817() string { if x != nil && x.Field17817 != nil { return *x.Field17817 } return "" } func (x *Message17726) GetField17818() string { if x != nil && x.Field17818 != nil { return *x.Field17818 } return "" } func (x *Message17726) GetField17819() string { if x != nil && x.Field17819 != nil { return *x.Field17819 } return "" } func (x *Message17726) GetField17820() []*Message17728 { if x != nil { return x.Field17820 } return nil } func (x *Message17726) GetField17821() []*Message17728 { if x != nil { return x.Field17821 } return nil } func (x *Message17726) GetField17822() []*UnusedEmptyMessage { if x != nil { return x.Field17822 } return nil } type Message17782 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field18153 *string `protobuf:"bytes,1,opt,name=field18153" json:"field18153,omitempty"` Field18154 *string `protobuf:"bytes,2,opt,name=field18154" json:"field18154,omitempty"` } func (x *Message17782) Reset() { *x = Message17782{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message17782) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message17782) ProtoMessage() {} func (x *Message17782) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message17782.ProtoReflect.Descriptor instead. func (*Message17782) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{37} } func (x *Message17782) GetField18153() string { if x != nil && x.Field18153 != nil { return *x.Field18153 } return "" } func (x *Message17782) GetField18154() string { if x != nil && x.Field18154 != nil { return *x.Field18154 } return "" } type Message17783 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field18155 *string `protobuf:"bytes,1,opt,name=field18155" json:"field18155,omitempty"` Field18156 *string `protobuf:"bytes,2,opt,name=field18156" json:"field18156,omitempty"` Field18157 *string `protobuf:"bytes,3,opt,name=field18157" json:"field18157,omitempty"` Message17784 []*Message17783_Message17784 `protobuf:"group,4,rep,name=Message17784,json=message17784" json:"message17784,omitempty"` Message17785 []*Message17783_Message17785 `protobuf:"group,9,rep,name=Message17785,json=message17785" json:"message17785,omitempty"` Field18160 []string `protobuf:"bytes,16,rep,name=field18160" json:"field18160,omitempty"` } func (x *Message17783) Reset() { *x = Message17783{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message17783) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message17783) ProtoMessage() {} func (x *Message17783) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message17783.ProtoReflect.Descriptor instead. func (*Message17783) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{38} } func (x *Message17783) GetField18155() string { if x != nil && x.Field18155 != nil { return *x.Field18155 } return "" } func (x *Message17783) GetField18156() string { if x != nil && x.Field18156 != nil { return *x.Field18156 } return "" } func (x *Message17783) GetField18157() string { if x != nil && x.Field18157 != nil { return *x.Field18157 } return "" } func (x *Message17783) GetMessage17784() []*Message17783_Message17784 { if x != nil { return x.Message17784 } return nil } func (x *Message17783) GetMessage17785() []*Message17783_Message17785 { if x != nil { return x.Message17785 } return nil } func (x *Message17783) GetField18160() []string { if x != nil { return x.Field18160 } return nil } type Message16945 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields Field16946 *string `protobuf:"bytes,1,opt,name=field16946" json:"field16946,omitempty"` Field16947 *string `protobuf:"bytes,2,opt,name=field16947" json:"field16947,omitempty"` Field16948 *string `protobuf:"bytes,3,opt,name=field16948" json:"field16948,omitempty"` Field16949 *string `protobuf:"bytes,4,opt,name=field16949" json:"field16949,omitempty"` Field16950 *string `protobuf:"bytes,5,opt,name=field16950" json:"field16950,omitempty"` Field16951 *UnusedEmptyMessage `protobuf:"bytes,872,opt,name=field16951" json:"field16951,omitempty"` Field16952 []*Message0 `protobuf:"bytes,16,rep,name=field16952" json:"field16952,omitempty"` Field16953 []*UnusedEmptyMessage `protobuf:"bytes,54,rep,name=field16953" json:"field16953,omitempty"` Field16954 []*Message0 `protobuf:"bytes,55,rep,name=field16954" json:"field16954,omitempty"` Field16955 []string `protobuf:"bytes,58,rep,name=field16955" json:"field16955,omitempty"` Field16956 []string `protobuf:"bytes,59,rep,name=field16956" json:"field16956,omitempty"` Field16957 []string `protobuf:"bytes,62,rep,name=field16957" json:"field16957,omitempty"` Field16958 []string `protobuf:"bytes,37,rep,name=field16958" json:"field16958,omitempty"` Field16959 []string `protobuf:"bytes,18,rep,name=field16959" json:"field16959,omitempty"` Field16960 []*UnusedEmptyMessage `protobuf:"bytes,38,rep,name=field16960" json:"field16960,omitempty"` Field16961 []*Message0 `protobuf:"bytes,67,rep,name=field16961" json:"field16961,omitempty"` Field16962 []*Message0 `protobuf:"bytes,130,rep,name=field16962" json:"field16962,omitempty"` Field16963 []*UnusedEmptyMessage `protobuf:"bytes,136,rep,name=field16963" json:"field16963,omitempty"` Field16964 []string `protobuf:"bytes,138,rep,name=field16964" json:"field16964,omitempty"` Field16965 []*UnusedEmptyMessage `protobuf:"bytes,156,rep,name=field16965" json:"field16965,omitempty"` Field16966 []string `protobuf:"bytes,139,rep,name=field16966" json:"field16966,omitempty"` Field16967 []*UnusedEmptyMessage `protobuf:"bytes,126,rep,name=field16967" json:"field16967,omitempty"` Field16968 []string `protobuf:"bytes,152,rep,name=field16968" json:"field16968,omitempty"` Field16969 []*Message0 `protobuf:"bytes,183,rep,name=field16969" json:"field16969,omitempty"` Field16970 []string `protobuf:"bytes,168,rep,name=field16970" json:"field16970,omitempty"` Field16971 []string `protobuf:"bytes,212,rep,name=field16971" json:"field16971,omitempty"` Field16972 []string `protobuf:"bytes,213,rep,name=field16972" json:"field16972,omitempty"` Field16973 []*UnusedEmptyMessage `protobuf:"bytes,189,rep,name=field16973" json:"field16973,omitempty"` Field16974 []*UnusedEmptyMessage `protobuf:"bytes,190,rep,name=field16974" json:"field16974,omitempty"` Field16975 []string `protobuf:"bytes,191,rep,name=field16975" json:"field16975,omitempty"` Field16976 []string `protobuf:"bytes,192,rep,name=field16976" json:"field16976,omitempty"` Field16977 []*Message0 `protobuf:"bytes,193,rep,name=field16977" json:"field16977,omitempty"` Field16978 []*UnusedEmptyMessage `protobuf:"bytes,194,rep,name=field16978" json:"field16978,omitempty"` Field16979 []*UnusedEmptyMessage `protobuf:"bytes,195,rep,name=field16979" json:"field16979,omitempty"` Field16980 []int32 `protobuf:"varint,196,rep,name=field16980" json:"field16980,omitempty"` Field16981 []*UnusedEmptyMessage `protobuf:"bytes,95,rep,name=field16981" json:"field16981,omitempty"` Field16982 []string `protobuf:"bytes,96,rep,name=field16982" json:"field16982,omitempty"` Field16983 []*UnusedEmptyMessage `protobuf:"bytes,97,rep,name=field16983" json:"field16983,omitempty"` Field16984 []string `protobuf:"bytes,1086,rep,name=field16984" json:"field16984,omitempty"` Field16985 []*UnusedEmptyMessage `protobuf:"bytes,98,rep,name=field16985" json:"field16985,omitempty"` Field16986 []string `protobuf:"bytes,99,rep,name=field16986" json:"field16986,omitempty"` Field16987 []string `protobuf:"bytes,100,rep,name=field16987" json:"field16987,omitempty"` Field16988 []string `protobuf:"bytes,48,rep,name=field16988" json:"field16988,omitempty"` Field16989 *string `protobuf:"bytes,22,opt,name=field16989" json:"field16989,omitempty"` Field16990 []*UnusedEmptyMessage `protobuf:"bytes,51,rep,name=field16990" json:"field16990,omitempty"` Field16991 []string `protobuf:"bytes,81,rep,name=field16991" json:"field16991,omitempty"` Field16992 []string `protobuf:"bytes,85,rep,name=field16992" json:"field16992,omitempty"` Field16993 []string `protobuf:"bytes,169,rep,name=field16993" json:"field16993,omitempty"` Field16994 *UnusedEmptyMessage `protobuf:"bytes,260,opt,name=field16994" json:"field16994,omitempty"` Field16995 *int32 `protobuf:"varint,198,opt,name=field16995" json:"field16995,omitempty"` Field16996 *int32 `protobuf:"varint,204,opt,name=field16996" json:"field16996,omitempty"` Field16997 *string `protobuf:"bytes,1087,opt,name=field16997" json:"field16997,omitempty"` Field16998 []string `protobuf:"bytes,197,rep,name=field16998" json:"field16998,omitempty"` Field16999 []string `protobuf:"bytes,206,rep,name=field16999" json:"field16999,omitempty"` Field17000 *string `protobuf:"bytes,211,opt,name=field17000" json:"field17000,omitempty"` Field17001 []string `protobuf:"bytes,205,rep,name=field17001" json:"field17001,omitempty"` Field17002 []*UnusedEmptyMessage `protobuf:"bytes,68,rep,name=field17002" json:"field17002,omitempty"` Field17003 []*UnusedEmptyMessage `protobuf:"bytes,69,rep,name=field17003" json:"field17003,omitempty"` Field17004 []*UnusedEmptyMessage `protobuf:"bytes,70,rep,name=field17004" json:"field17004,omitempty"` Field17005 []*UnusedEmptyMessage `protobuf:"bytes,71,rep,name=field17005" json:"field17005,omitempty"` Field17006 []*UnusedEmptyMessage `protobuf:"bytes,72,rep,name=field17006" json:"field17006,omitempty"` Field17007 []*UnusedEmptyMessage `protobuf:"bytes,19,rep,name=field17007" json:"field17007,omitempty"` Field17008 []*UnusedEmptyMessage `protobuf:"bytes,24,rep,name=field17008" json:"field17008,omitempty"` Field17009 *UnusedEmptyMessage `protobuf:"bytes,23,opt,name=field17009" json:"field17009,omitempty"` Field17010 []*Message0 `protobuf:"bytes,131,rep,name=field17010" json:"field17010,omitempty"` Field17011 []string `protobuf:"bytes,133,rep,name=field17011" json:"field17011,omitempty"` Field17012 []*UnusedEmptyMessage `protobuf:"bytes,142,rep,name=field17012" json:"field17012,omitempty"` Field17013 []string `protobuf:"bytes,143,rep,name=field17013" json:"field17013,omitempty"` Field17014 []*UnusedEmptyMessage `protobuf:"bytes,153,rep,name=field17014" json:"field17014,omitempty"` Field17015 []*Message0 `protobuf:"bytes,170,rep,name=field17015" json:"field17015,omitempty"` Field17016 []string `protobuf:"bytes,171,rep,name=field17016" json:"field17016,omitempty"` Field17017 []string `protobuf:"bytes,172,rep,name=field17017" json:"field17017,omitempty"` Field17018 []string `protobuf:"bytes,173,rep,name=field17018" json:"field17018,omitempty"` Field17019 []string `protobuf:"bytes,174,rep,name=field17019" json:"field17019,omitempty"` Field17020 []string `protobuf:"bytes,175,rep,name=field17020" json:"field17020,omitempty"` Field17021 []string `protobuf:"bytes,186,rep,name=field17021" json:"field17021,omitempty"` Field17022 []string `protobuf:"bytes,101,rep,name=field17022" json:"field17022,omitempty"` Field17023 []*Message0 `protobuf:"bytes,102,rep,name=field17023" json:"field17023,omitempty"` Field17024 []string `protobuf:"bytes,274,rep,name=field17024" json:"field17024,omitempty"` } func (x *Message16945) Reset() { *x = Message16945{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message16945) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message16945) ProtoMessage() {} func (x *Message16945) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message16945.ProtoReflect.Descriptor instead. func (*Message16945) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{39} } func (x *Message16945) GetField16946() string { if x != nil && x.Field16946 != nil { return *x.Field16946 } return "" } func (x *Message16945) GetField16947() string { if x != nil && x.Field16947 != nil { return *x.Field16947 } return "" } func (x *Message16945) GetField16948() string { if x != nil && x.Field16948 != nil { return *x.Field16948 } return "" } func (x *Message16945) GetField16949() string { if x != nil && x.Field16949 != nil { return *x.Field16949 } return "" } func (x *Message16945) GetField16950() string { if x != nil && x.Field16950 != nil { return *x.Field16950 } return "" } func (x *Message16945) GetField16951() *UnusedEmptyMessage { if x != nil { return x.Field16951 } return nil } func (x *Message16945) GetField16952() []*Message0 { if x != nil { return x.Field16952 } return nil } func (x *Message16945) GetField16953() []*UnusedEmptyMessage { if x != nil { return x.Field16953 } return nil } func (x *Message16945) GetField16954() []*Message0 { if x != nil { return x.Field16954 } return nil } func (x *Message16945) GetField16955() []string { if x != nil { return x.Field16955 } return nil } func (x *Message16945) GetField16956() []string { if x != nil { return x.Field16956 } return nil } func (x *Message16945) GetField16957() []string { if x != nil { return x.Field16957 } return nil } func (x *Message16945) GetField16958() []string { if x != nil { return x.Field16958 } return nil } func (x *Message16945) GetField16959() []string { if x != nil { return x.Field16959 } return nil } func (x *Message16945) GetField16960() []*UnusedEmptyMessage { if x != nil { return x.Field16960 } return nil } func (x *Message16945) GetField16961() []*Message0 { if x != nil { return x.Field16961 } return nil } func (x *Message16945) GetField16962() []*Message0 { if x != nil { return x.Field16962 } return nil } func (x *Message16945) GetField16963() []*UnusedEmptyMessage { if x != nil { return x.Field16963 } return nil } func (x *Message16945) GetField16964() []string { if x != nil { return x.Field16964 } return nil } func (x *Message16945) GetField16965() []*UnusedEmptyMessage { if x != nil { return x.Field16965 } return nil } func (x *Message16945) GetField16966() []string { if x != nil { return x.Field16966 } return nil } func (x *Message16945) GetField16967() []*UnusedEmptyMessage { if x != nil { return x.Field16967 } return nil } func (x *Message16945) GetField16968() []string { if x != nil { return x.Field16968 } return nil } func (x *Message16945) GetField16969() []*Message0 { if x != nil { return x.Field16969 } return nil } func (x *Message16945) GetField16970() []string { if x != nil { return x.Field16970 } return nil } func (x *Message16945) GetField16971() []string { if x != nil { return x.Field16971 } return nil } func (x *Message16945) GetField16972() []string { if x != nil { return x.Field16972 } return nil } func (x *Message16945) GetField16973() []*UnusedEmptyMessage { if x != nil { return x.Field16973 } return nil } func (x *Message16945) GetField16974() []*UnusedEmptyMessage { if x != nil { return x.Field16974 } return nil } func (x *Message16945) GetField16975() []string { if x != nil { return x.Field16975 } return nil } func (x *Message16945) GetField16976() []string { if x != nil { return x.Field16976 } return nil } func (x *Message16945) GetField16977() []*Message0 { if x != nil { return x.Field16977 } return nil } func (x *Message16945) GetField16978() []*UnusedEmptyMessage { if x != nil { return x.Field16978 } return nil } func (x *Message16945) GetField16979() []*UnusedEmptyMessage { if x != nil { return x.Field16979 } return nil } func (x *Message16945) GetField16980() []int32 { if x != nil { return x.Field16980 } return nil } func (x *Message16945) GetField16981() []*UnusedEmptyMessage { if x != nil { return x.Field16981 } return nil } func (x *Message16945) GetField16982() []string { if x != nil { return x.Field16982 } return nil } func (x *Message16945) GetField16983() []*UnusedEmptyMessage { if x != nil { return x.Field16983 } return nil } func (x *Message16945) GetField16984() []string { if x != nil { return x.Field16984 } return nil } func (x *Message16945) GetField16985() []*UnusedEmptyMessage { if x != nil { return x.Field16985 } return nil } func (x *Message16945) GetField16986() []string { if x != nil { return x.Field16986 } return nil } func (x *Message16945) GetField16987() []string { if x != nil { return x.Field16987 } return nil } func (x *Message16945) GetField16988() []string { if x != nil { return x.Field16988 } return nil } func (x *Message16945) GetField16989() string { if x != nil && x.Field16989 != nil { return *x.Field16989 } return "" } func (x *Message16945) GetField16990() []*UnusedEmptyMessage { if x != nil { return x.Field16990 } return nil } func (x *Message16945) GetField16991() []string { if x != nil { return x.Field16991 } return nil } func (x *Message16945) GetField16992() []string { if x != nil { return x.Field16992 } return nil } func (x *Message16945) GetField16993() []string { if x != nil { return x.Field16993 } return nil } func (x *Message16945) GetField16994() *UnusedEmptyMessage { if x != nil { return x.Field16994 } return nil } func (x *Message16945) GetField16995() int32 { if x != nil && x.Field16995 != nil { return *x.Field16995 } return 0 } func (x *Message16945) GetField16996() int32 { if x != nil && x.Field16996 != nil { return *x.Field16996 } return 0 } func (x *Message16945) GetField16997() string { if x != nil && x.Field16997 != nil { return *x.Field16997 } return "" } func (x *Message16945) GetField16998() []string { if x != nil { return x.Field16998 } return nil } func (x *Message16945) GetField16999() []string { if x != nil { return x.Field16999 } return nil } func (x *Message16945) GetField17000() string { if x != nil && x.Field17000 != nil { return *x.Field17000 } return "" } func (x *Message16945) GetField17001() []string { if x != nil { return x.Field17001 } return nil } func (x *Message16945) GetField17002() []*UnusedEmptyMessage { if x != nil { return x.Field17002 } return nil } func (x *Message16945) GetField17003() []*UnusedEmptyMessage { if x != nil { return x.Field17003 } return nil } func (x *Message16945) GetField17004() []*UnusedEmptyMessage { if x != nil { return x.Field17004 } return nil } func (x *Message16945) GetField17005() []*UnusedEmptyMessage { if x != nil { return x.Field17005 } return nil } func (x *Message16945) GetField17006() []*UnusedEmptyMessage { if x != nil { return x.Field17006 } return nil } func (x *Message16945) GetField17007() []*UnusedEmptyMessage { if x != nil { return x.Field17007 } return nil } func (x *Message16945) GetField17008() []*UnusedEmptyMessage { if x != nil { return x.Field17008 } return nil } func (x *Message16945) GetField17009() *UnusedEmptyMessage { if x != nil { return x.Field17009 } return nil } func (x *Message16945) GetField17010() []*Message0 { if x != nil { return x.Field17010 } return nil } func (x *Message16945) GetField17011() []string { if x != nil { return x.Field17011 } return nil } func (x *Message16945) GetField17012() []*UnusedEmptyMessage { if x != nil { return x.Field17012 } return nil } func (x *Message16945) GetField17013() []string { if x != nil { return x.Field17013 } return nil } func (x *Message16945) GetField17014() []*UnusedEmptyMessage { if x != nil { return x.Field17014 } return nil } func (x *Message16945) GetField17015() []*Message0 { if x != nil { return x.Field17015 } return nil } func (x *Message16945) GetField17016() []string { if x != nil { return x.Field17016 } return nil } func (x *Message16945) GetField17017() []string { if x != nil { return x.Field17017 } return nil } func (x *Message16945) GetField17018() []string { if x != nil { return x.Field17018 } return nil } func (x *Message16945) GetField17019() []string { if x != nil { return x.Field17019 } return nil } func (x *Message16945) GetField17020() []string { if x != nil { return x.Field17020 } return nil } func (x *Message16945) GetField17021() []string { if x != nil { return x.Field17021 } return nil } func (x *Message16945) GetField17022() []string { if x != nil { return x.Field17022 } return nil } func (x *Message16945) GetField17023() []*Message0 { if x != nil { return x.Field17023 } return nil } func (x *Message16945) GetField17024() []string { if x != nil { return x.Field17024 } return nil } type Message34791_Message34792 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field34808 *string `protobuf:"bytes,3,req,name=field34808" json:"field34808,omitempty"` Field34809 *string `protobuf:"bytes,4,opt,name=field34809" json:"field34809,omitempty"` } func (x *Message34791_Message34792) Reset() { *x = Message34791_Message34792{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message34791_Message34792) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message34791_Message34792) ProtoMessage() {} func (x *Message34791_Message34792) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message34791_Message34792.ProtoReflect.Descriptor instead. func (*Message34791_Message34792) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{2, 0} } func (x *Message34791_Message34792) GetField34808() string { if x != nil && x.Field34808 != nil { return *x.Field34808 } return "" } func (x *Message34791_Message34792) GetField34809() string { if x != nil && x.Field34809 != nil { return *x.Field34809 } return "" } type Message36876_Message36877 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field37044 *string `protobuf:"bytes,112,req,name=field37044" json:"field37044,omitempty"` Field37045 *int32 `protobuf:"varint,113,opt,name=field37045" json:"field37045,omitempty"` Field37046 []byte `protobuf:"bytes,114,opt,name=field37046" json:"field37046,omitempty"` Field37047 *int32 `protobuf:"varint,115,opt,name=field37047" json:"field37047,omitempty"` Field37048 *int32 `protobuf:"varint,157,opt,name=field37048" json:"field37048,omitempty"` } func (x *Message36876_Message36877) Reset() { *x = Message36876_Message36877{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message36876_Message36877) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message36876_Message36877) ProtoMessage() {} func (x *Message36876_Message36877) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message36876_Message36877.ProtoReflect.Descriptor instead. func (*Message36876_Message36877) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{8, 0} } func (x *Message36876_Message36877) GetField37044() string { if x != nil && x.Field37044 != nil { return *x.Field37044 } return "" } func (x *Message36876_Message36877) GetField37045() int32 { if x != nil && x.Field37045 != nil { return *x.Field37045 } return 0 } func (x *Message36876_Message36877) GetField37046() []byte { if x != nil { return x.Field37046 } return nil } func (x *Message36876_Message36877) GetField37047() int32 { if x != nil && x.Field37047 != nil { return *x.Field37047 } return 0 } func (x *Message36876_Message36877) GetField37048() int32 { if x != nil && x.Field37048 != nil { return *x.Field37048 } return 0 } type Message36876_Message36878 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message36876_Message36878) Reset() { *x = Message36876_Message36878{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message36876_Message36878) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message36876_Message36878) ProtoMessage() {} func (x *Message36876_Message36878) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message36876_Message36878.ProtoReflect.Descriptor instead. func (*Message36876_Message36878) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{8, 1} } type Message36876_Message36879 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field37050 *string `protobuf:"bytes,56,req,name=field37050" json:"field37050,omitempty"` Field37051 *int32 `protobuf:"varint,69,opt,name=field37051" json:"field37051,omitempty"` } func (x *Message36876_Message36879) Reset() { *x = Message36876_Message36879{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message36876_Message36879) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message36876_Message36879) ProtoMessage() {} func (x *Message36876_Message36879) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message36876_Message36879.ProtoReflect.Descriptor instead. func (*Message36876_Message36879) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{8, 2} } func (x *Message36876_Message36879) GetField37050() string { if x != nil && x.Field37050 != nil { return *x.Field37050 } return "" } func (x *Message36876_Message36879) GetField37051() int32 { if x != nil && x.Field37051 != nil { return *x.Field37051 } return 0 } type Message36876_Message36880 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message36876_Message36880) Reset() { *x = Message36876_Message36880{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message36876_Message36880) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message36876_Message36880) ProtoMessage() {} func (x *Message36876_Message36880) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message36876_Message36880.ProtoReflect.Descriptor instead. func (*Message36876_Message36880) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{8, 3} } type Message36876_Message36881 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message36876_Message36881) Reset() { *x = Message36876_Message36881{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message36876_Message36881) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message36876_Message36881) ProtoMessage() {} func (x *Message36876_Message36881) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message36876_Message36881.ProtoReflect.Descriptor instead. func (*Message36876_Message36881) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{8, 4} } type Message36876_Message36882 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message36876_Message36882) Reset() { *x = Message36876_Message36882{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message36876_Message36882) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message36876_Message36882) ProtoMessage() {} func (x *Message36876_Message36882) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message36876_Message36882.ProtoReflect.Descriptor instead. func (*Message36876_Message36882) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{8, 5} } type Message36876_Message36883 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message36876_Message36883) Reset() { *x = Message36876_Message36883{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message36876_Message36883) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message36876_Message36883) ProtoMessage() {} func (x *Message36876_Message36883) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message36876_Message36883.ProtoReflect.Descriptor instead. func (*Message36876_Message36883) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{8, 6} } type Message36876_Message36884 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message36876_Message36884) Reset() { *x = Message36876_Message36884{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message36876_Message36884) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message36876_Message36884) ProtoMessage() {} func (x *Message36876_Message36884) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message36876_Message36884.ProtoReflect.Descriptor instead. func (*Message36876_Message36884) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{8, 7} } type Message36876_Message36885 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message36876_Message36885) Reset() { *x = Message36876_Message36885{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message36876_Message36885) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message36876_Message36885) ProtoMessage() {} func (x *Message36876_Message36885) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message36876_Message36885.ProtoReflect.Descriptor instead. func (*Message36876_Message36885) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{8, 8} } type Message36876_Message36886 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message36876_Message36886) Reset() { *x = Message36876_Message36886{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message36876_Message36886) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message36876_Message36886) ProtoMessage() {} func (x *Message36876_Message36886) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message36876_Message36886.ProtoReflect.Descriptor instead. func (*Message36876_Message36886) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{8, 9} } type Message36876_Message36887 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message36876_Message36887) Reset() { *x = Message36876_Message36887{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message36876_Message36887) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message36876_Message36887) ProtoMessage() {} func (x *Message36876_Message36887) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message36876_Message36887.ProtoReflect.Descriptor instead. func (*Message36876_Message36887) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{8, 10} } type Message36876_Message36888 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field37089 *uint64 `protobuf:"varint,75,opt,name=field37089" json:"field37089,omitempty"` Field37090 *bool `protobuf:"varint,76,opt,name=field37090" json:"field37090,omitempty"` Field37091 *uint64 `protobuf:"varint,165,opt,name=field37091" json:"field37091,omitempty"` Field37092 *float64 `protobuf:"fixed64,166,opt,name=field37092" json:"field37092,omitempty"` Field37093 *uint64 `protobuf:"varint,109,opt,name=field37093" json:"field37093,omitempty"` Field37094 []byte `protobuf:"bytes,122,opt,name=field37094" json:"field37094,omitempty"` } func (x *Message36876_Message36888) Reset() { *x = Message36876_Message36888{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message36876_Message36888) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message36876_Message36888) ProtoMessage() {} func (x *Message36876_Message36888) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message36876_Message36888.ProtoReflect.Descriptor instead. func (*Message36876_Message36888) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{8, 11} } func (x *Message36876_Message36888) GetField37089() uint64 { if x != nil && x.Field37089 != nil { return *x.Field37089 } return 0 } func (x *Message36876_Message36888) GetField37090() bool { if x != nil && x.Field37090 != nil { return *x.Field37090 } return false } func (x *Message36876_Message36888) GetField37091() uint64 { if x != nil && x.Field37091 != nil { return *x.Field37091 } return 0 } func (x *Message36876_Message36888) GetField37092() float64 { if x != nil && x.Field37092 != nil { return *x.Field37092 } return 0 } func (x *Message36876_Message36888) GetField37093() uint64 { if x != nil && x.Field37093 != nil { return *x.Field37093 } return 0 } func (x *Message36876_Message36888) GetField37094() []byte { if x != nil { return x.Field37094 } return nil } type Message36876_Message36889 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field37095 *int64 `protobuf:"varint,117,opt,name=field37095" json:"field37095,omitempty"` Field37096 *string `protobuf:"bytes,145,opt,name=field37096" json:"field37096,omitempty"` Field37097 *int32 `protobuf:"varint,123,opt,name=field37097" json:"field37097,omitempty"` Field37098 *bool `protobuf:"varint,163,opt,name=field37098" json:"field37098,omitempty"` Field37099 *int32 `protobuf:"varint,164,opt,name=field37099" json:"field37099,omitempty"` Field37100 *int32 `protobuf:"varint,149,opt,name=field37100" json:"field37100,omitempty"` Field37101 *UnusedEmptyMessage `protobuf:"bytes,129,opt,name=field37101" json:"field37101,omitempty"` Field37102 *Message13174 `protobuf:"bytes,124,opt,name=field37102" json:"field37102,omitempty"` Field37103 *Message13169 `protobuf:"bytes,128,opt,name=field37103" json:"field37103,omitempty"` Field37104 *uint64 `protobuf:"varint,132,opt,name=field37104" json:"field37104,omitempty"` Field37105 []Enum36890 `protobuf:"varint,131,rep,name=field37105,enum=benchmarks.google_message3.Enum36890" json:"field37105,omitempty"` Field37106 *bool `protobuf:"varint,134,opt,name=field37106" json:"field37106,omitempty"` Field37107 *bool `protobuf:"varint,140,opt,name=field37107" json:"field37107,omitempty"` Field37108 *UnusedEmptyMessage `protobuf:"bytes,135,opt,name=field37108" json:"field37108,omitempty"` Field37109 *float32 `protobuf:"fixed32,136,opt,name=field37109" json:"field37109,omitempty"` Field37110 *float32 `protobuf:"fixed32,156,opt,name=field37110" json:"field37110,omitempty"` Field37111 *bool `protobuf:"varint,142,opt,name=field37111" json:"field37111,omitempty"` Field37112 *int64 `protobuf:"varint,167,opt,name=field37112" json:"field37112,omitempty"` Field37113 *UnusedEmptyMessage `protobuf:"bytes,146,opt,name=field37113" json:"field37113,omitempty"` Field37114 *bool `protobuf:"varint,148,opt,name=field37114" json:"field37114,omitempty"` Field37115 *UnusedEmptyMessage `protobuf:"bytes,154,opt,name=field37115" json:"field37115,omitempty"` Field37116 *UnusedEnum `protobuf:"varint,158,opt,name=field37116,enum=benchmarks.google_message3.UnusedEnum" json:"field37116,omitempty"` Field37117 []UnusedEnum `protobuf:"varint,159,rep,name=field37117,enum=benchmarks.google_message3.UnusedEnum" json:"field37117,omitempty"` Field37118 *int32 `protobuf:"varint,160,opt,name=field37118" json:"field37118,omitempty"` Field37119 []string `protobuf:"bytes,161,rep,name=field37119" json:"field37119,omitempty"` } func (x *Message36876_Message36889) Reset() { *x = Message36876_Message36889{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message36876_Message36889) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message36876_Message36889) ProtoMessage() {} func (x *Message36876_Message36889) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message36876_Message36889.ProtoReflect.Descriptor instead. func (*Message36876_Message36889) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{8, 12} } func (x *Message36876_Message36889) GetField37095() int64 { if x != nil && x.Field37095 != nil { return *x.Field37095 } return 0 } func (x *Message36876_Message36889) GetField37096() string { if x != nil && x.Field37096 != nil { return *x.Field37096 } return "" } func (x *Message36876_Message36889) GetField37097() int32 { if x != nil && x.Field37097 != nil { return *x.Field37097 } return 0 } func (x *Message36876_Message36889) GetField37098() bool { if x != nil && x.Field37098 != nil { return *x.Field37098 } return false } func (x *Message36876_Message36889) GetField37099() int32 { if x != nil && x.Field37099 != nil { return *x.Field37099 } return 0 } func (x *Message36876_Message36889) GetField37100() int32 { if x != nil && x.Field37100 != nil { return *x.Field37100 } return 0 } func (x *Message36876_Message36889) GetField37101() *UnusedEmptyMessage { if x != nil { return x.Field37101 } return nil } func (x *Message36876_Message36889) GetField37102() *Message13174 { if x != nil { return x.Field37102 } return nil } func (x *Message36876_Message36889) GetField37103() *Message13169 { if x != nil { return x.Field37103 } return nil } func (x *Message36876_Message36889) GetField37104() uint64 { if x != nil && x.Field37104 != nil { return *x.Field37104 } return 0 } func (x *Message36876_Message36889) GetField37105() []Enum36890 { if x != nil { return x.Field37105 } return nil } func (x *Message36876_Message36889) GetField37106() bool { if x != nil && x.Field37106 != nil { return *x.Field37106 } return false } func (x *Message36876_Message36889) GetField37107() bool { if x != nil && x.Field37107 != nil { return *x.Field37107 } return false } func (x *Message36876_Message36889) GetField37108() *UnusedEmptyMessage { if x != nil { return x.Field37108 } return nil } func (x *Message36876_Message36889) GetField37109() float32 { if x != nil && x.Field37109 != nil { return *x.Field37109 } return 0 } func (x *Message36876_Message36889) GetField37110() float32 { if x != nil && x.Field37110 != nil { return *x.Field37110 } return 0 } func (x *Message36876_Message36889) GetField37111() bool { if x != nil && x.Field37111 != nil { return *x.Field37111 } return false } func (x *Message36876_Message36889) GetField37112() int64 { if x != nil && x.Field37112 != nil { return *x.Field37112 } return 0 } func (x *Message36876_Message36889) GetField37113() *UnusedEmptyMessage { if x != nil { return x.Field37113 } return nil } func (x *Message36876_Message36889) GetField37114() bool { if x != nil && x.Field37114 != nil { return *x.Field37114 } return false } func (x *Message36876_Message36889) GetField37115() *UnusedEmptyMessage { if x != nil { return x.Field37115 } return nil } func (x *Message36876_Message36889) GetField37116() UnusedEnum { if x != nil && x.Field37116 != nil { return *x.Field37116 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message36876_Message36889) GetField37117() []UnusedEnum { if x != nil { return x.Field37117 } return nil } func (x *Message36876_Message36889) GetField37118() int32 { if x != nil && x.Field37118 != nil { return *x.Field37118 } return 0 } func (x *Message36876_Message36889) GetField37119() []string { if x != nil { return x.Field37119 } return nil } type Message36876_Message36910 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message36876_Message36910) Reset() { *x = Message36876_Message36910{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message36876_Message36910) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message36876_Message36910) ProtoMessage() {} func (x *Message36876_Message36910) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message36876_Message36910.ProtoReflect.Descriptor instead. func (*Message36876_Message36910) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{8, 13} } type Message36876_Message36911 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field37121 *UnusedEmptyMessage `protobuf:"bytes,127,opt,name=field37121" json:"field37121,omitempty"` Field37122 *Message35538 `protobuf:"bytes,130,opt,name=field37122" json:"field37122,omitempty"` Field37123 *Message35540 `protobuf:"bytes,144,opt,name=field37123" json:"field37123,omitempty"` Field37124 *Message35542 `protobuf:"bytes,150,opt,name=field37124" json:"field37124,omitempty"` } func (x *Message36876_Message36911) Reset() { *x = Message36876_Message36911{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message36876_Message36911) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message36876_Message36911) ProtoMessage() {} func (x *Message36876_Message36911) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message36876_Message36911.ProtoReflect.Descriptor instead. func (*Message36876_Message36911) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{8, 14} } func (x *Message36876_Message36911) GetField37121() *UnusedEmptyMessage { if x != nil { return x.Field37121 } return nil } func (x *Message36876_Message36911) GetField37122() *Message35538 { if x != nil { return x.Field37122 } return nil } func (x *Message36876_Message36911) GetField37123() *Message35540 { if x != nil { return x.Field37123 } return nil } func (x *Message36876_Message36911) GetField37124() *Message35542 { if x != nil { return x.Field37124 } return nil } type Message36876_Message36912 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field37125 *Message3901 `protobuf:"bytes,153,opt,name=field37125" json:"field37125,omitempty"` Field37126 *Message3901 `protobuf:"bytes,162,opt,name=field37126" json:"field37126,omitempty"` } func (x *Message36876_Message36912) Reset() { *x = Message36876_Message36912{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message36876_Message36912) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message36876_Message36912) ProtoMessage() {} func (x *Message36876_Message36912) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message36876_Message36912.ProtoReflect.Descriptor instead. func (*Message36876_Message36912) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{8, 15} } func (x *Message36876_Message36912) GetField37125() *Message3901 { if x != nil { return x.Field37125 } return nil } func (x *Message36876_Message36912) GetField37126() *Message3901 { if x != nil { return x.Field37126 } return nil } type Message17783_Message17784 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field18162 *string `protobuf:"bytes,5,opt,name=field18162" json:"field18162,omitempty"` Field18163 *string `protobuf:"bytes,6,opt,name=field18163" json:"field18163,omitempty"` Field18164 *string `protobuf:"bytes,7,opt,name=field18164" json:"field18164,omitempty"` Field18165 []string `protobuf:"bytes,8,rep,name=field18165" json:"field18165,omitempty"` Field18166 *string `protobuf:"bytes,17,opt,name=field18166" json:"field18166,omitempty"` Field18167 *string `protobuf:"bytes,18,opt,name=field18167" json:"field18167,omitempty"` } func (x *Message17783_Message17784) Reset() { *x = Message17783_Message17784{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message17783_Message17784) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message17783_Message17784) ProtoMessage() {} func (x *Message17783_Message17784) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message17783_Message17784.ProtoReflect.Descriptor instead. func (*Message17783_Message17784) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{38, 0} } func (x *Message17783_Message17784) GetField18162() string { if x != nil && x.Field18162 != nil { return *x.Field18162 } return "" } func (x *Message17783_Message17784) GetField18163() string { if x != nil && x.Field18163 != nil { return *x.Field18163 } return "" } func (x *Message17783_Message17784) GetField18164() string { if x != nil && x.Field18164 != nil { return *x.Field18164 } return "" } func (x *Message17783_Message17784) GetField18165() []string { if x != nil { return x.Field18165 } return nil } func (x *Message17783_Message17784) GetField18166() string { if x != nil && x.Field18166 != nil { return *x.Field18166 } return "" } func (x *Message17783_Message17784) GetField18167() string { if x != nil && x.Field18167 != nil { return *x.Field18167 } return "" } type Message17783_Message17785 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field18168 *string `protobuf:"bytes,10,opt,name=field18168" json:"field18168,omitempty"` Field18169 *string `protobuf:"bytes,11,opt,name=field18169" json:"field18169,omitempty"` Field18170 *Message17783 `protobuf:"bytes,12,opt,name=field18170" json:"field18170,omitempty"` Field18171 *string `protobuf:"bytes,13,opt,name=field18171" json:"field18171,omitempty"` Field18172 *string `protobuf:"bytes,14,opt,name=field18172" json:"field18172,omitempty"` Field18173 []string `protobuf:"bytes,15,rep,name=field18173" json:"field18173,omitempty"` } func (x *Message17783_Message17785) Reset() { *x = Message17783_Message17785{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message17783_Message17785) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message17783_Message17785) ProtoMessage() {} func (x *Message17783_Message17785) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message17783_Message17785.ProtoReflect.Descriptor instead. func (*Message17783_Message17785) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP(), []int{38, 1} } func (x *Message17783_Message17785) GetField18168() string { if x != nil && x.Field18168 != nil { return *x.Field18168 } return "" } func (x *Message17783_Message17785) GetField18169() string { if x != nil && x.Field18169 != nil { return *x.Field18169 } return "" } func (x *Message17783_Message17785) GetField18170() *Message17783 { if x != nil { return x.Field18170 } return nil } func (x *Message17783_Message17785) GetField18171() string { if x != nil && x.Field18171 != nil { return *x.Field18171 } return "" } func (x *Message17783_Message17785) GetField18172() string { if x != nil && x.Field18172 != nil { return *x.Field18172 } return "" } func (x *Message17783_Message17785) GetField18173() []string { if x != nil { return x.Field18173 } return nil } var file_datasets_google_message3_benchmark_message3_1_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*Message0)(nil), ExtensionType: (*Message34390)(nil), Field: 92144610, Name: "benchmarks.google_message3.Message34390.field34453", Tag: "bytes,92144610,opt,name=field34453", Filename: "datasets/google_message3/benchmark_message3_1.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message34624)(nil), Field: 18178548, Name: "benchmarks.google_message3.Message34624.field34685", Tag: "bytes,18178548,opt,name=field34685", Filename: "datasets/google_message3/benchmark_message3_1.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message34791)(nil), Field: 6330340, Name: "benchmarks.google_message3.Message34791.field34807", Tag: "bytes,6330340,opt,name=field34807", Filename: "datasets/google_message3/benchmark_message3_1.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message35483)(nil), Field: 7913554, Name: "benchmarks.google_message3.Message35483.field35505", Tag: "bytes,7913554,opt,name=field35505", Filename: "datasets/google_message3/benchmark_message3_1.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message35807)(nil), Field: 3803299, Name: "benchmarks.google_message3.Message35807.field35818", Tag: "bytes,3803299,opt,name=field35818", Filename: "datasets/google_message3/benchmark_message3_1.proto", }, { ExtendedType: (*Message0)(nil), ExtensionType: (*Message16945)(nil), Field: 22068132, Name: "benchmarks.google_message3.Message16945.field17025", Tag: "bytes,22068132,opt,name=field17025", Filename: "datasets/google_message3/benchmark_message3_1.proto", }, } // Extension fields to Message0. var ( // optional benchmarks.google_message3.Message34390 field34453 = 92144610; E_Message34390_Field34453 = &file_datasets_google_message3_benchmark_message3_1_proto_extTypes[0] // optional benchmarks.google_message3.Message34624 field34685 = 18178548; E_Message34624_Field34685 = &file_datasets_google_message3_benchmark_message3_1_proto_extTypes[1] // optional benchmarks.google_message3.Message34791 field34807 = 6330340; E_Message34791_Field34807 = &file_datasets_google_message3_benchmark_message3_1_proto_extTypes[2] // optional benchmarks.google_message3.Message35483 field35505 = 7913554; E_Message35483_Field35505 = &file_datasets_google_message3_benchmark_message3_1_proto_extTypes[3] // optional benchmarks.google_message3.Message35807 field35818 = 3803299; E_Message35807_Field35818 = &file_datasets_google_message3_benchmark_message3_1_proto_extTypes[4] // optional benchmarks.google_message3.Message16945 field17025 = 22068132; E_Message16945_Field17025 = &file_datasets_google_message3_benchmark_message3_1_proto_extTypes[5] ) var File_datasets_google_message3_benchmark_message3_1_proto protoreflect.FileDescriptor var file_datasets_google_message3_benchmark_message3_1_proto_rawDesc = []byte{ 0x0a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x35, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x37, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x38, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcb, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x34, 0x33, 0x39, 0x30, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x35, 0x32, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x34, 0x33, 0x38, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x35, 0x32, 0x32, 0x71, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x35, 0x33, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xe2, 0x87, 0xf8, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x34, 0x33, 0x39, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x35, 0x33, 0x22, 0x95, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x34, 0x36, 0x32, 0x34, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x38, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x34, 0x36, 0x32, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x38, 0x33, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x38, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x34, 0x36, 0x32, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x38, 0x34, 0x32, 0x71, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x38, 0x35, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xf4, 0xc3, 0xd5, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x34, 0x36, 0x32, 0x34, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x38, 0x35, 0x22, 0xd0, 0x05, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x34, 0x37, 0x39, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x37, 0x39, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x37, 0x39, 0x33, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x34, 0x37, 0x39, 0x32, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x34, 0x37, 0x39, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x34, 0x37, 0x39, 0x32, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x34, 0x37, 0x39, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x37, 0x39, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x37, 0x39, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x37, 0x39, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x37, 0x39, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x37, 0x39, 0x37, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x37, 0x39, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x37, 0x39, 0x38, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x37, 0x39, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x37, 0x39, 0x39, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x37, 0x39, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x38, 0x30, 0x30, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x38, 0x30, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x38, 0x30, 0x31, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x38, 0x30, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x38, 0x30, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x38, 0x30, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x38, 0x30, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x38, 0x30, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x38, 0x30, 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x38, 0x30, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x38, 0x30, 0x35, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x38, 0x30, 0x35, 0x12, 0x22, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x38, 0x30, 0x36, 0x18, 0x11, 0x20, 0x03, 0x28, 0x06, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x38, 0x30, 0x36, 0x1a, 0x4e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x34, 0x37, 0x39, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x38, 0x30, 0x38, 0x18, 0x03, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x38, 0x30, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x38, 0x30, 0x39, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x38, 0x30, 0x39, 0x32, 0x71, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x38, 0x30, 0x37, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xe4, 0xaf, 0x82, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x34, 0x37, 0x39, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x38, 0x30, 0x37, 0x22, 0x9b, 0x03, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x34, 0x38, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x39, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x39, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x30, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x30, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x30, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x30, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x30, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x30, 0x32, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x30, 0x33, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x34, 0x37, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x30, 0x33, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x30, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x30, 0x34, 0x32, 0x71, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x30, 0x35, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xd2, 0x80, 0xe3, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x34, 0x38, 0x33, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x30, 0x35, 0x22, 0x81, 0x03, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x38, 0x30, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x38, 0x31, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x38, 0x31, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x38, 0x31, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x38, 0x31, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x38, 0x31, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x38, 0x31, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x38, 0x31, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x38, 0x31, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x38, 0x31, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x38, 0x31, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x38, 0x31, 0x35, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x38, 0x31, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x38, 0x31, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x38, 0x31, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x38, 0x31, 0x37, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x38, 0x31, 0x37, 0x32, 0x71, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x38, 0x31, 0x38, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xa3, 0x91, 0xe8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x38, 0x30, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x38, 0x31, 0x38, 0x22, 0x4e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x37, 0x34, 0x38, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x30, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x30, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x30, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x30, 0x32, 0x22, 0xae, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x36, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x37, 0x35, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x37, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x37, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x37, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x37, 0x37, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x37, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x37, 0x38, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x37, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x37, 0x39, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x37, 0x39, 0x22, 0x50, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x35, 0x32, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x33, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x34, 0x39, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x33, 0x22, 0xd3, 0x34, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x36, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x38, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x38, 0x30, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x37, 0x18, 0x6f, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x37, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x37, 0x12, 0x5a, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x38, 0x18, 0xa8, 0x01, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x38, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x38, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x39, 0x18, 0x37, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x39, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x39, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x38, 0x34, 0x18, 0x4e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x38, 0x34, 0x12, 0x5a, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x30, 0x18, 0x89, 0x01, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x30, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x38, 0x36, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x38, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x38, 0x37, 0x18, 0x79, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x38, 0x37, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x38, 0x38, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x38, 0x38, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x38, 0x39, 0x18, 0x76, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x32, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x38, 0x39, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x39, 0x30, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x37, 0x33, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x39, 0x30, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x39, 0x31, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x39, 0x31, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x39, 0x32, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x39, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x39, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x39, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x39, 0x34, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x39, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x39, 0x35, 0x18, 0x33, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x39, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x39, 0x36, 0x18, 0x39, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x39, 0x36, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x39, 0x37, 0x18, 0x64, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x39, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x39, 0x38, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x39, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x39, 0x39, 0x18, 0x30, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x39, 0x39, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x30, 0x30, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x30, 0x30, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x31, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x31, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x31, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x30, 0x32, 0x18, 0x7d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x31, 0x34, 0x34, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x30, 0x32, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x32, 0x18, 0x23, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x32, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x32, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x30, 0x34, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x30, 0x34, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x30, 0x35, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x39, 0x32, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x30, 0x35, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x30, 0x36, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x35, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x30, 0x36, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x30, 0x37, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x38, 0x33, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x30, 0x37, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x30, 0x38, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x30, 0x38, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x30, 0x39, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x32, 0x38, 0x33, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x30, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x31, 0x30, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x31, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x31, 0x31, 0x18, 0x67, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x31, 0x31, 0x12, 0x44, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x31, 0x32, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x31, 0x32, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x31, 0x33, 0x18, 0x8f, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x31, 0x33, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x31, 0x34, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x31, 0x34, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x31, 0x35, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x36, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x31, 0x35, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x33, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x33, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x34, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x34, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x34, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x35, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x35, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x35, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x36, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x36, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x36, 0x12, 0x46, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x32, 0x30, 0x18, 0x47, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x32, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x32, 0x31, 0x18, 0x46, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x32, 0x31, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x32, 0x32, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x32, 0x32, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x32, 0x33, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x39, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x32, 0x33, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x37, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x37, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x37, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x32, 0x35, 0x18, 0x32, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x31, 0x35, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x32, 0x35, 0x12, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x32, 0x36, 0x18, 0x97, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x38, 0x37, 0x34, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x32, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x32, 0x37, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x32, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x32, 0x38, 0x18, 0x48, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x32, 0x38, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x32, 0x39, 0x18, 0x49, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x32, 0x39, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x33, 0x30, 0x18, 0x6c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x34, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x33, 0x30, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x38, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x38, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x38, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x33, 0x32, 0x18, 0x68, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x39, 0x32, 0x35, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x33, 0x32, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x33, 0x33, 0x18, 0x69, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x33, 0x39, 0x36, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x33, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x33, 0x34, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x33, 0x34, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x33, 0x35, 0x18, 0x6b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x33, 0x35, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x33, 0x36, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x36, 0x34, 0x34, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x33, 0x36, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x33, 0x37, 0x18, 0x85, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x33, 0x37, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x39, 0x18, 0x74, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x39, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x39, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x39, 0x31, 0x30, 0x18, 0x77, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x39, 0x31, 0x30, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x39, 0x31, 0x30, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x39, 0x31, 0x31, 0x18, 0x7e, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x39, 0x31, 0x31, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x39, 0x31, 0x31, 0x12, 0x5a, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x39, 0x31, 0x32, 0x18, 0x98, 0x01, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x39, 0x31, 0x32, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x39, 0x31, 0x32, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x34, 0x32, 0x18, 0x9b, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x34, 0x32, 0x1a, 0xaf, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x34, 0x34, 0x18, 0x70, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x34, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x34, 0x35, 0x18, 0x71, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x34, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x34, 0x36, 0x18, 0x72, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x34, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x34, 0x37, 0x18, 0x73, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x34, 0x37, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x34, 0x38, 0x18, 0x9d, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x34, 0x38, 0x1a, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x38, 0x1a, 0x4e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x37, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x35, 0x30, 0x18, 0x38, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x35, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x35, 0x31, 0x18, 0x45, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x35, 0x31, 0x1a, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x30, 0x1a, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x31, 0x1a, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x32, 0x1a, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x33, 0x1a, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x34, 0x1a, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x35, 0x1a, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x36, 0x1a, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x37, 0x1a, 0xd0, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x38, 0x39, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x38, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x39, 0x30, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x39, 0x30, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x39, 0x31, 0x18, 0xa5, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x39, 0x31, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x39, 0x32, 0x18, 0xa6, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x39, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x39, 0x33, 0x18, 0x6d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x39, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x39, 0x34, 0x18, 0x7a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x39, 0x34, 0x1a, 0xcf, 0x09, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x38, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x39, 0x35, 0x18, 0x75, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x39, 0x35, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x39, 0x36, 0x18, 0x91, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x39, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x39, 0x37, 0x18, 0x7b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x39, 0x37, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x39, 0x38, 0x18, 0xa3, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x39, 0x38, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x39, 0x39, 0x18, 0xa4, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x30, 0x39, 0x39, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x30, 0x30, 0x18, 0x95, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x30, 0x30, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x30, 0x31, 0x18, 0x81, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x30, 0x31, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x30, 0x32, 0x18, 0x7c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x31, 0x37, 0x34, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x30, 0x32, 0x12, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x30, 0x33, 0x18, 0x80, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x31, 0x36, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x30, 0x33, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x30, 0x34, 0x18, 0x84, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x30, 0x34, 0x12, 0x46, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x30, 0x35, 0x18, 0x83, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x36, 0x38, 0x39, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x30, 0x35, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x30, 0x36, 0x18, 0x86, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x30, 0x36, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x30, 0x37, 0x18, 0x8c, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x30, 0x37, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x30, 0x38, 0x18, 0x87, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x30, 0x38, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x30, 0x39, 0x18, 0x88, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x30, 0x39, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x31, 0x30, 0x18, 0x9c, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x31, 0x30, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x31, 0x31, 0x18, 0x8e, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x31, 0x31, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x31, 0x32, 0x18, 0xa7, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x31, 0x32, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x31, 0x33, 0x18, 0x92, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x31, 0x33, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x31, 0x34, 0x18, 0x94, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x31, 0x34, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x31, 0x35, 0x18, 0x9a, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x31, 0x35, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x31, 0x36, 0x18, 0x9e, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x31, 0x36, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x31, 0x37, 0x18, 0x9f, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x31, 0x37, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x31, 0x38, 0x18, 0xa0, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x31, 0x38, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x31, 0x39, 0x18, 0xa1, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x31, 0x39, 0x1a, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x39, 0x31, 0x30, 0x1a, 0xbf, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x39, 0x31, 0x31, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x32, 0x31, 0x18, 0x7f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x32, 0x31, 0x12, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x32, 0x32, 0x18, 0x82, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x33, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x32, 0x32, 0x12, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x32, 0x33, 0x18, 0x90, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x34, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x32, 0x33, 0x12, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x32, 0x34, 0x18, 0x96, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x34, 0x32, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x32, 0x34, 0x1a, 0xa2, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x39, 0x31, 0x32, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x32, 0x35, 0x18, 0x99, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x39, 0x30, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x32, 0x35, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x32, 0x36, 0x18, 0xa2, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x39, 0x30, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x31, 0x32, 0x36, 0x22, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x32, 0x38, 0x22, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x38, 0x35, 0x30, 0x22, 0x96, 0x0c, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x38, 0x36, 0x33, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x33, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x38, 0x35, 0x38, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x33, 0x31, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x33, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x38, 0x35, 0x38, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x33, 0x32, 0x12, 0x44, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x33, 0x33, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x33, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x33, 0x34, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x33, 0x34, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x33, 0x35, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x37, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x33, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x33, 0x36, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x33, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x33, 0x37, 0x18, 0x25, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x33, 0x37, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x33, 0x38, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x38, 0x31, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x33, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x33, 0x39, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x33, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x34, 0x30, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x34, 0x30, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x34, 0x31, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x38, 0x32, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x34, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x34, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x34, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x34, 0x33, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x34, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x34, 0x34, 0x18, 0x12, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x34, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x34, 0x35, 0x18, 0x13, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x34, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x34, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x34, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x34, 0x37, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x34, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x34, 0x38, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x34, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x34, 0x39, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x34, 0x39, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x35, 0x30, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x35, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x35, 0x31, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x35, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x35, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x35, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x35, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x35, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x35, 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x35, 0x34, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x35, 0x35, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x35, 0x35, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x35, 0x36, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x35, 0x36, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x35, 0x37, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x38, 0x38, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x35, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x35, 0x38, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x35, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x35, 0x39, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x35, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x36, 0x30, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x34, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x36, 0x30, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x36, 0x31, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x36, 0x31, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x36, 0x32, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x36, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x36, 0x33, 0x18, 0x22, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x39, 0x36, 0x33, 0x22, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x38, 0x37, 0x31, 0x22, 0x49, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x35, 0x34, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x34, 0x39, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x34, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x35, 0x30, 0x18, 0x02, 0x20, 0x02, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x35, 0x30, 0x22, 0xf5, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x36, 0x34, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x36, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x36, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x37, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x37, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x37, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x37, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x37, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x37, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x37, 0x33, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x37, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x37, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x37, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x37, 0x35, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x37, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x37, 0x36, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x37, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x37, 0x37, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x37, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x37, 0x38, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x37, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x37, 0x39, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x37, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x38, 0x30, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x38, 0x30, 0x22, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x38, 0x36, 0x35, 0x22, 0x49, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x32, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x31, 0x22, 0x67, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x31, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x33, 0x22, 0x49, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x32, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x35, 0x22, 0xad, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x32, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x37, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x38, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x38, 0x12, 0x44, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x39, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x39, 0x22, 0xcc, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x35, 0x31, 0x31, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x33, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x32, 0x32, 0x34, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x33, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x34, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x34, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x34, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x34, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x34, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x34, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x34, 0x33, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x34, 0x33, 0x22, 0x93, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x35, 0x31, 0x32, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x34, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x33, 0x30, 0x31, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x34, 0x34, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x34, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x33, 0x30, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x34, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x34, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x34, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x34, 0x37, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x34, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x34, 0x38, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x34, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x34, 0x39, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x34, 0x39, 0x22, 0xae, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x35, 0x31, 0x33, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x35, 0x30, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x33, 0x39, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x35, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x35, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x35, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x35, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x35, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x35, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x35, 0x33, 0x22, 0xcc, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x35, 0x31, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x35, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x35, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x35, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x35, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x35, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x35, 0x36, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x35, 0x37, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x31, 0x33, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x35, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x35, 0x38, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x35, 0x38, 0x22, 0xb9, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x35, 0x31, 0x35, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x35, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x37, 0x39, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x35, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x36, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x37, 0x38, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x36, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x36, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x36, 0x31, 0x22, 0xe6, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x33, 0x32, 0x30, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x37, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x30, 0x33, 0x33, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x37, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x38, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x33, 0x31, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x39, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x30, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x32, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x33, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x30, 0x33, 0x33, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x33, 0x22, 0x6e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x33, 0x32, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x36, 0x22, 0x97, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x33, 0x32, 0x32, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x37, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x30, 0x31, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x38, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x39, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x39, 0x22, 0xe8, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x39, 0x38, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x30, 0x32, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x30, 0x32, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x30, 0x32, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x30, 0x32, 0x32, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x30, 0x32, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x30, 0x32, 0x33, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x30, 0x32, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x31, 0x35, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x30, 0x32, 0x34, 0x22, 0xb8, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x36, 0x36, 0x38, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x37, 0x37, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x36, 0x36, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x37, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x37, 0x38, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x37, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x37, 0x39, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x37, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x38, 0x30, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x38, 0x30, 0x22, 0xc6, 0x03, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x32, 0x35, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x32, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x31, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x33, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x33, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x31, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x34, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x32, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x36, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x37, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x32, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x37, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x38, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x38, 0x22, 0x98, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x34, 0x37, 0x38, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x38, 0x31, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x34, 0x37, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x38, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x38, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x38, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x38, 0x33, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x38, 0x33, 0x22, 0x95, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x35, 0x35, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x36, 0x35, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x36, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x36, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x36, 0x36, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x36, 0x37, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x36, 0x35, 0x35, 0x33, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x35, 0x36, 0x37, 0x22, 0x6e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x36, 0x36, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x36, 0x36, 0x38, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x36, 0x36, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x36, 0x36, 0x39, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x36, 0x36, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x36, 0x37, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x36, 0x37, 0x30, 0x22, 0xb9, 0x08, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x37, 0x32, 0x37, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x38, 0x32, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x36, 0x37, 0x32, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x38, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x38, 0x33, 0x18, 0x02, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x38, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x38, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x38, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x38, 0x35, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x38, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x38, 0x36, 0x18, 0x04, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x38, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x38, 0x37, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x38, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x38, 0x38, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x38, 0x38, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x38, 0x39, 0x18, 0x07, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x36, 0x37, 0x33, 0x32, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x38, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x39, 0x30, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x39, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x39, 0x31, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x39, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x39, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x39, 0x32, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x39, 0x33, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x36, 0x37, 0x33, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x39, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x39, 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x39, 0x34, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x39, 0x35, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x37, 0x32, 0x32, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x39, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x39, 0x36, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x39, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x39, 0x37, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x39, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x39, 0x38, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x39, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x39, 0x39, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x39, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x30, 0x30, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x30, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x30, 0x31, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x30, 0x31, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x30, 0x32, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x36, 0x36, 0x39, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x30, 0x32, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x30, 0x33, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x37, 0x32, 0x34, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x30, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x30, 0x34, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x30, 0x34, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x30, 0x35, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x30, 0x35, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x75, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x37, 0x32, 0x35, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x37, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x36, 0x37, 0x32, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x37, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x37, 0x35, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x37, 0x35, 0x22, 0x82, 0x07, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x32, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x30, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x30, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x30, 0x32, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x30, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x30, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x30, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x30, 0x34, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x30, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x30, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x30, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x30, 0x36, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x30, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x30, 0x37, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x30, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x30, 0x38, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x30, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x30, 0x39, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x30, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x31, 0x30, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x31, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x31, 0x31, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x31, 0x31, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x31, 0x32, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x31, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x31, 0x33, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x31, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x31, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x31, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x31, 0x35, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x31, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x31, 0x36, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x31, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x31, 0x37, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x31, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x31, 0x38, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x31, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x31, 0x39, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x31, 0x39, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x32, 0x30, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x32, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x32, 0x30, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x32, 0x31, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x32, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x32, 0x31, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x32, 0x32, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x38, 0x32, 0x32, 0x22, 0x4e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x38, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x35, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x35, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x35, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x35, 0x34, 0x22, 0x90, 0x06, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x38, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x35, 0x35, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x35, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x35, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x35, 0x37, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x35, 0x37, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x38, 0x34, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x38, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x38, 0x34, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x38, 0x34, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x38, 0x35, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x38, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x38, 0x35, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x38, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x36, 0x30, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x36, 0x30, 0x1a, 0xce, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x38, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x36, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x36, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x36, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x36, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x36, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x36, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x36, 0x35, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x36, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x36, 0x36, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x36, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x36, 0x37, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x36, 0x37, 0x1a, 0xf8, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x38, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x36, 0x38, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x36, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x36, 0x39, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x36, 0x39, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x37, 0x30, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x38, 0x33, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x37, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x37, 0x31, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x37, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x37, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x37, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x37, 0x33, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x31, 0x37, 0x33, 0x22, 0xc0, 0x4b, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x34, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x34, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x34, 0x37, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x34, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x34, 0x38, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x34, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x34, 0x39, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x34, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x35, 0x30, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x35, 0x30, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x35, 0x31, 0x18, 0xe8, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x35, 0x31, 0x12, 0x44, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x35, 0x32, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x35, 0x32, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x35, 0x33, 0x18, 0x36, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x35, 0x33, 0x12, 0x44, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x35, 0x34, 0x18, 0x37, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x35, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x35, 0x35, 0x18, 0x3a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x35, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x35, 0x36, 0x18, 0x3b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x35, 0x37, 0x18, 0x3e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x35, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x35, 0x38, 0x18, 0x25, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x35, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x35, 0x39, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x35, 0x39, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x36, 0x30, 0x18, 0x26, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x36, 0x30, 0x12, 0x44, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x36, 0x31, 0x18, 0x43, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x36, 0x31, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x36, 0x32, 0x18, 0x82, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x36, 0x32, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x36, 0x33, 0x18, 0x88, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x36, 0x33, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x36, 0x34, 0x18, 0x8a, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x36, 0x34, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x36, 0x35, 0x18, 0x9c, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x36, 0x35, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x36, 0x36, 0x18, 0x8b, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x36, 0x36, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x36, 0x37, 0x18, 0x7e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x36, 0x37, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x36, 0x38, 0x18, 0x98, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x36, 0x38, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x36, 0x39, 0x18, 0xb7, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x36, 0x39, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x37, 0x30, 0x18, 0xa8, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x37, 0x30, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x37, 0x31, 0x18, 0xd4, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x37, 0x31, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x37, 0x32, 0x18, 0xd5, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x37, 0x32, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x37, 0x33, 0x18, 0xbd, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x37, 0x33, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x37, 0x34, 0x18, 0xbe, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x37, 0x34, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x37, 0x35, 0x18, 0xbf, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x37, 0x35, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x37, 0x36, 0x18, 0xc0, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x37, 0x36, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x37, 0x37, 0x18, 0xc1, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x37, 0x37, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x37, 0x38, 0x18, 0xc2, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x37, 0x38, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x37, 0x39, 0x18, 0xc3, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x37, 0x39, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x38, 0x30, 0x18, 0xc4, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x38, 0x30, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x38, 0x31, 0x18, 0x5f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x38, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x38, 0x32, 0x18, 0x60, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x38, 0x32, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x38, 0x33, 0x18, 0x61, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x38, 0x33, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x38, 0x34, 0x18, 0xbe, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x38, 0x34, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x38, 0x35, 0x18, 0x62, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x38, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x38, 0x36, 0x18, 0x63, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x38, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x38, 0x37, 0x18, 0x64, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x38, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x38, 0x38, 0x18, 0x30, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x38, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x38, 0x39, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x38, 0x39, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x39, 0x30, 0x18, 0x33, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x39, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x39, 0x31, 0x18, 0x51, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x39, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x39, 0x32, 0x18, 0x55, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x39, 0x32, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x39, 0x33, 0x18, 0xa9, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x39, 0x33, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x39, 0x34, 0x18, 0x84, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x39, 0x34, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x39, 0x35, 0x18, 0xc6, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x39, 0x35, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x39, 0x36, 0x18, 0xcc, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x39, 0x36, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x39, 0x37, 0x18, 0xbf, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x39, 0x37, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x39, 0x38, 0x18, 0xc5, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x39, 0x38, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x39, 0x39, 0x18, 0xce, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x39, 0x39, 0x39, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x30, 0x30, 0x18, 0xd3, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x30, 0x30, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x30, 0x31, 0x18, 0xcd, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x30, 0x31, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x30, 0x32, 0x18, 0x44, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x30, 0x32, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x30, 0x33, 0x18, 0x45, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x30, 0x33, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x30, 0x34, 0x18, 0x46, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x30, 0x34, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x30, 0x35, 0x18, 0x47, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x30, 0x35, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x30, 0x36, 0x18, 0x48, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x30, 0x36, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x30, 0x37, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x30, 0x37, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x30, 0x38, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x30, 0x38, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x30, 0x39, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x30, 0x39, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x31, 0x30, 0x18, 0x83, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x31, 0x30, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x31, 0x31, 0x18, 0x85, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x31, 0x31, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x31, 0x32, 0x18, 0x8e, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x31, 0x32, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x31, 0x33, 0x18, 0x8f, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x31, 0x33, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x31, 0x34, 0x18, 0x99, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x31, 0x34, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x31, 0x35, 0x18, 0xaa, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x31, 0x35, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x31, 0x36, 0x18, 0xab, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x31, 0x36, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x31, 0x37, 0x18, 0xac, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x31, 0x37, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x31, 0x38, 0x18, 0xad, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x31, 0x38, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x31, 0x39, 0x18, 0xae, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x31, 0x39, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x32, 0x30, 0x18, 0xaf, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x32, 0x30, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x32, 0x31, 0x18, 0xba, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x32, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x32, 0x32, 0x18, 0x65, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x32, 0x32, 0x12, 0x44, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x32, 0x33, 0x18, 0x66, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x32, 0x33, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x32, 0x34, 0x18, 0x92, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x32, 0x34, 0x2a, 0x04, 0x08, 0x11, 0x10, 0x12, 0x2a, 0x04, 0x08, 0x15, 0x10, 0x16, 0x2a, 0x04, 0x08, 0x19, 0x10, 0x1a, 0x2a, 0x04, 0x08, 0x1b, 0x10, 0x1c, 0x2a, 0x04, 0x08, 0x1d, 0x10, 0x1e, 0x2a, 0x04, 0x08, 0x1e, 0x10, 0x1f, 0x2a, 0x04, 0x08, 0x1f, 0x10, 0x20, 0x2a, 0x04, 0x08, 0x20, 0x10, 0x21, 0x2a, 0x04, 0x08, 0x21, 0x10, 0x22, 0x2a, 0x04, 0x08, 0x22, 0x10, 0x23, 0x2a, 0x04, 0x08, 0x23, 0x10, 0x24, 0x2a, 0x04, 0x08, 0x24, 0x10, 0x25, 0x2a, 0x04, 0x08, 0x27, 0x10, 0x28, 0x2a, 0x04, 0x08, 0x28, 0x10, 0x29, 0x2a, 0x04, 0x08, 0x29, 0x10, 0x2a, 0x2a, 0x04, 0x08, 0x2a, 0x10, 0x2b, 0x2a, 0x04, 0x08, 0x2b, 0x10, 0x2c, 0x2a, 0x04, 0x08, 0x2c, 0x10, 0x2d, 0x2a, 0x04, 0x08, 0x2d, 0x10, 0x2e, 0x2a, 0x04, 0x08, 0x2e, 0x10, 0x2f, 0x2a, 0x04, 0x08, 0x2f, 0x10, 0x30, 0x2a, 0x04, 0x08, 0x31, 0x10, 0x32, 0x2a, 0x04, 0x08, 0x32, 0x10, 0x33, 0x2a, 0x04, 0x08, 0x34, 0x10, 0x35, 0x2a, 0x04, 0x08, 0x35, 0x10, 0x36, 0x2a, 0x04, 0x08, 0x38, 0x10, 0x39, 0x2a, 0x04, 0x08, 0x39, 0x10, 0x3a, 0x2a, 0x04, 0x08, 0x3c, 0x10, 0x3d, 0x2a, 0x04, 0x08, 0x3d, 0x10, 0x3e, 0x2a, 0x04, 0x08, 0x3f, 0x10, 0x40, 0x2a, 0x04, 0x08, 0x40, 0x10, 0x41, 0x2a, 0x04, 0x08, 0x41, 0x10, 0x42, 0x2a, 0x04, 0x08, 0x42, 0x10, 0x43, 0x2a, 0x04, 0x08, 0x49, 0x10, 0x4a, 0x2a, 0x04, 0x08, 0x4a, 0x10, 0x4b, 0x2a, 0x04, 0x08, 0x4b, 0x10, 0x4c, 0x2a, 0x04, 0x08, 0x4c, 0x10, 0x4d, 0x2a, 0x04, 0x08, 0x4d, 0x10, 0x4e, 0x2a, 0x04, 0x08, 0x4e, 0x10, 0x4f, 0x2a, 0x04, 0x08, 0x4f, 0x10, 0x50, 0x2a, 0x04, 0x08, 0x50, 0x10, 0x51, 0x2a, 0x04, 0x08, 0x52, 0x10, 0x53, 0x2a, 0x04, 0x08, 0x53, 0x10, 0x54, 0x2a, 0x04, 0x08, 0x54, 0x10, 0x55, 0x2a, 0x04, 0x08, 0x56, 0x10, 0x57, 0x2a, 0x04, 0x08, 0x57, 0x10, 0x58, 0x2a, 0x04, 0x08, 0x58, 0x10, 0x59, 0x2a, 0x04, 0x08, 0x59, 0x10, 0x5a, 0x2a, 0x04, 0x08, 0x5a, 0x10, 0x5b, 0x2a, 0x04, 0x08, 0x5b, 0x10, 0x5c, 0x2a, 0x04, 0x08, 0x5c, 0x10, 0x5d, 0x2a, 0x04, 0x08, 0x5d, 0x10, 0x5e, 0x2a, 0x04, 0x08, 0x5e, 0x10, 0x5f, 0x2a, 0x04, 0x08, 0x67, 0x10, 0x68, 0x2a, 0x04, 0x08, 0x68, 0x10, 0x69, 0x2a, 0x04, 0x08, 0x69, 0x10, 0x6a, 0x2a, 0x04, 0x08, 0x6a, 0x10, 0x6b, 0x2a, 0x04, 0x08, 0x6b, 0x10, 0x6c, 0x2a, 0x04, 0x08, 0x6c, 0x10, 0x6d, 0x2a, 0x04, 0x08, 0x6d, 0x10, 0x6e, 0x2a, 0x04, 0x08, 0x6e, 0x10, 0x6f, 0x2a, 0x04, 0x08, 0x6f, 0x10, 0x70, 0x2a, 0x04, 0x08, 0x70, 0x10, 0x71, 0x2a, 0x04, 0x08, 0x71, 0x10, 0x72, 0x2a, 0x04, 0x08, 0x72, 0x10, 0x73, 0x2a, 0x04, 0x08, 0x73, 0x10, 0x74, 0x2a, 0x04, 0x08, 0x74, 0x10, 0x75, 0x2a, 0x04, 0x08, 0x75, 0x10, 0x76, 0x2a, 0x04, 0x08, 0x76, 0x10, 0x77, 0x2a, 0x04, 0x08, 0x77, 0x10, 0x78, 0x2a, 0x04, 0x08, 0x78, 0x10, 0x79, 0x2a, 0x04, 0x08, 0x79, 0x10, 0x7a, 0x2a, 0x04, 0x08, 0x7a, 0x10, 0x7b, 0x2a, 0x04, 0x08, 0x7b, 0x10, 0x7c, 0x2a, 0x04, 0x08, 0x7c, 0x10, 0x7d, 0x2a, 0x04, 0x08, 0x7d, 0x10, 0x7e, 0x2a, 0x05, 0x08, 0x7f, 0x10, 0x80, 0x01, 0x2a, 0x06, 0x08, 0x80, 0x01, 0x10, 0x81, 0x01, 0x2a, 0x06, 0x08, 0x81, 0x01, 0x10, 0x82, 0x01, 0x2a, 0x06, 0x08, 0x84, 0x01, 0x10, 0x85, 0x01, 0x2a, 0x06, 0x08, 0x86, 0x01, 0x10, 0x87, 0x01, 0x2a, 0x06, 0x08, 0x87, 0x01, 0x10, 0x88, 0x01, 0x2a, 0x06, 0x08, 0x89, 0x01, 0x10, 0x8a, 0x01, 0x2a, 0x06, 0x08, 0x8c, 0x01, 0x10, 0x8d, 0x01, 0x2a, 0x06, 0x08, 0x8d, 0x01, 0x10, 0x8e, 0x01, 0x2a, 0x06, 0x08, 0x90, 0x01, 0x10, 0x91, 0x01, 0x2a, 0x06, 0x08, 0x91, 0x01, 0x10, 0x92, 0x01, 0x2a, 0x06, 0x08, 0x92, 0x01, 0x10, 0x93, 0x01, 0x2a, 0x06, 0x08, 0x93, 0x01, 0x10, 0x94, 0x01, 0x2a, 0x06, 0x08, 0x94, 0x01, 0x10, 0x95, 0x01, 0x2a, 0x06, 0x08, 0x95, 0x01, 0x10, 0x96, 0x01, 0x2a, 0x06, 0x08, 0x96, 0x01, 0x10, 0x97, 0x01, 0x2a, 0x06, 0x08, 0x97, 0x01, 0x10, 0x98, 0x01, 0x2a, 0x06, 0x08, 0x9a, 0x01, 0x10, 0x9b, 0x01, 0x2a, 0x06, 0x08, 0x9b, 0x01, 0x10, 0x9c, 0x01, 0x2a, 0x06, 0x08, 0x9d, 0x01, 0x10, 0x9e, 0x01, 0x2a, 0x06, 0x08, 0x9e, 0x01, 0x10, 0x9f, 0x01, 0x2a, 0x06, 0x08, 0x9f, 0x01, 0x10, 0xa0, 0x01, 0x2a, 0x06, 0x08, 0xa0, 0x01, 0x10, 0xa1, 0x01, 0x2a, 0x06, 0x08, 0xa1, 0x01, 0x10, 0xa2, 0x01, 0x2a, 0x06, 0x08, 0xa2, 0x01, 0x10, 0xa3, 0x01, 0x2a, 0x06, 0x08, 0xa3, 0x01, 0x10, 0xa4, 0x01, 0x2a, 0x06, 0x08, 0xa4, 0x01, 0x10, 0xa5, 0x01, 0x2a, 0x06, 0x08, 0xa5, 0x01, 0x10, 0xa6, 0x01, 0x2a, 0x06, 0x08, 0xa6, 0x01, 0x10, 0xa7, 0x01, 0x2a, 0x06, 0x08, 0xa7, 0x01, 0x10, 0xa8, 0x01, 0x2a, 0x06, 0x08, 0xb0, 0x01, 0x10, 0xb1, 0x01, 0x2a, 0x06, 0x08, 0xb1, 0x01, 0x10, 0xb2, 0x01, 0x2a, 0x06, 0x08, 0xb2, 0x01, 0x10, 0xb3, 0x01, 0x2a, 0x06, 0x08, 0xb3, 0x01, 0x10, 0xb4, 0x01, 0x2a, 0x06, 0x08, 0xb4, 0x01, 0x10, 0xb5, 0x01, 0x2a, 0x06, 0x08, 0xb5, 0x01, 0x10, 0xb6, 0x01, 0x2a, 0x06, 0x08, 0xb6, 0x01, 0x10, 0xb7, 0x01, 0x2a, 0x06, 0x08, 0xb8, 0x01, 0x10, 0xb9, 0x01, 0x2a, 0x06, 0x08, 0xb9, 0x01, 0x10, 0xba, 0x01, 0x2a, 0x06, 0x08, 0xbb, 0x01, 0x10, 0xbc, 0x01, 0x2a, 0x06, 0x08, 0xbc, 0x01, 0x10, 0xbd, 0x01, 0x2a, 0x06, 0x08, 0xc7, 0x01, 0x10, 0xc8, 0x01, 0x2a, 0x06, 0x08, 0xc8, 0x01, 0x10, 0xc9, 0x01, 0x2a, 0x06, 0x08, 0xc9, 0x01, 0x10, 0xca, 0x01, 0x2a, 0x06, 0x08, 0xca, 0x01, 0x10, 0xcb, 0x01, 0x2a, 0x06, 0x08, 0xcb, 0x01, 0x10, 0xcc, 0x01, 0x2a, 0x06, 0x08, 0xcf, 0x01, 0x10, 0xd0, 0x01, 0x2a, 0x06, 0x08, 0xd0, 0x01, 0x10, 0xd1, 0x01, 0x2a, 0x06, 0x08, 0xd1, 0x01, 0x10, 0xd2, 0x01, 0x2a, 0x06, 0x08, 0xd2, 0x01, 0x10, 0xd3, 0x01, 0x2a, 0x06, 0x08, 0xd6, 0x01, 0x10, 0xd7, 0x01, 0x2a, 0x06, 0x08, 0xd7, 0x01, 0x10, 0xd8, 0x01, 0x2a, 0x06, 0x08, 0xd8, 0x01, 0x10, 0xd9, 0x01, 0x2a, 0x06, 0x08, 0xd9, 0x01, 0x10, 0xda, 0x01, 0x2a, 0x06, 0x08, 0xda, 0x01, 0x10, 0xdb, 0x01, 0x2a, 0x06, 0x08, 0xdb, 0x01, 0x10, 0xdc, 0x01, 0x2a, 0x06, 0x08, 0xdc, 0x01, 0x10, 0xdd, 0x01, 0x2a, 0x06, 0x08, 0xdd, 0x01, 0x10, 0xde, 0x01, 0x2a, 0x06, 0x08, 0xde, 0x01, 0x10, 0xdf, 0x01, 0x2a, 0x06, 0x08, 0xdf, 0x01, 0x10, 0xe0, 0x01, 0x2a, 0x06, 0x08, 0xe0, 0x01, 0x10, 0xe1, 0x01, 0x2a, 0x06, 0x08, 0xe1, 0x01, 0x10, 0xe2, 0x01, 0x2a, 0x06, 0x08, 0xe2, 0x01, 0x10, 0xe3, 0x01, 0x2a, 0x06, 0x08, 0xe3, 0x01, 0x10, 0xe4, 0x01, 0x2a, 0x06, 0x08, 0xe4, 0x01, 0x10, 0xe5, 0x01, 0x2a, 0x06, 0x08, 0xe5, 0x01, 0x10, 0xe6, 0x01, 0x2a, 0x06, 0x08, 0xe6, 0x01, 0x10, 0xe7, 0x01, 0x2a, 0x06, 0x08, 0xe7, 0x01, 0x10, 0xe8, 0x01, 0x2a, 0x06, 0x08, 0xe8, 0x01, 0x10, 0xe9, 0x01, 0x2a, 0x06, 0x08, 0xe9, 0x01, 0x10, 0xea, 0x01, 0x2a, 0x06, 0x08, 0xea, 0x01, 0x10, 0xeb, 0x01, 0x2a, 0x06, 0x08, 0xeb, 0x01, 0x10, 0xec, 0x01, 0x2a, 0x06, 0x08, 0xec, 0x01, 0x10, 0xed, 0x01, 0x2a, 0x06, 0x08, 0xed, 0x01, 0x10, 0xee, 0x01, 0x2a, 0x06, 0x08, 0xee, 0x01, 0x10, 0xef, 0x01, 0x2a, 0x06, 0x08, 0xef, 0x01, 0x10, 0xf0, 0x01, 0x2a, 0x06, 0x08, 0xf0, 0x01, 0x10, 0xf1, 0x01, 0x2a, 0x06, 0x08, 0xf1, 0x01, 0x10, 0xf2, 0x01, 0x2a, 0x06, 0x08, 0xf2, 0x01, 0x10, 0xf3, 0x01, 0x2a, 0x06, 0x08, 0xf3, 0x01, 0x10, 0xf4, 0x01, 0x2a, 0x06, 0x08, 0xf4, 0x01, 0x10, 0xf5, 0x01, 0x2a, 0x06, 0x08, 0xf5, 0x01, 0x10, 0xf6, 0x01, 0x2a, 0x06, 0x08, 0xf6, 0x01, 0x10, 0xf7, 0x01, 0x2a, 0x06, 0x08, 0xf7, 0x01, 0x10, 0xf8, 0x01, 0x2a, 0x06, 0x08, 0xf8, 0x01, 0x10, 0xf9, 0x01, 0x2a, 0x06, 0x08, 0xf9, 0x01, 0x10, 0xfa, 0x01, 0x2a, 0x06, 0x08, 0xfa, 0x01, 0x10, 0xfb, 0x01, 0x2a, 0x06, 0x08, 0xfb, 0x01, 0x10, 0xfc, 0x01, 0x2a, 0x06, 0x08, 0xfc, 0x01, 0x10, 0xfd, 0x01, 0x2a, 0x06, 0x08, 0xfd, 0x01, 0x10, 0xfe, 0x01, 0x2a, 0x06, 0x08, 0xfe, 0x01, 0x10, 0xff, 0x01, 0x2a, 0x06, 0x08, 0xff, 0x01, 0x10, 0x80, 0x02, 0x2a, 0x06, 0x08, 0x80, 0x02, 0x10, 0x81, 0x02, 0x2a, 0x06, 0x08, 0x81, 0x02, 0x10, 0x82, 0x02, 0x2a, 0x06, 0x08, 0x82, 0x02, 0x10, 0x83, 0x02, 0x2a, 0x06, 0x08, 0x83, 0x02, 0x10, 0x84, 0x02, 0x2a, 0x06, 0x08, 0x85, 0x02, 0x10, 0x86, 0x02, 0x2a, 0x06, 0x08, 0x86, 0x02, 0x10, 0x87, 0x02, 0x2a, 0x06, 0x08, 0x87, 0x02, 0x10, 0x88, 0x02, 0x2a, 0x06, 0x08, 0x88, 0x02, 0x10, 0x89, 0x02, 0x2a, 0x06, 0x08, 0x89, 0x02, 0x10, 0x8a, 0x02, 0x2a, 0x06, 0x08, 0x8a, 0x02, 0x10, 0x8b, 0x02, 0x2a, 0x06, 0x08, 0x8b, 0x02, 0x10, 0x8c, 0x02, 0x2a, 0x06, 0x08, 0x8c, 0x02, 0x10, 0x8d, 0x02, 0x2a, 0x06, 0x08, 0x8d, 0x02, 0x10, 0x8e, 0x02, 0x2a, 0x06, 0x08, 0x8e, 0x02, 0x10, 0x8f, 0x02, 0x2a, 0x06, 0x08, 0x8f, 0x02, 0x10, 0x90, 0x02, 0x2a, 0x06, 0x08, 0x90, 0x02, 0x10, 0x91, 0x02, 0x2a, 0x06, 0x08, 0x91, 0x02, 0x10, 0x92, 0x02, 0x2a, 0x06, 0x08, 0x93, 0x02, 0x10, 0x94, 0x02, 0x2a, 0x06, 0x08, 0x94, 0x02, 0x10, 0x95, 0x02, 0x2a, 0x06, 0x08, 0x95, 0x02, 0x10, 0x96, 0x02, 0x2a, 0x06, 0x08, 0x96, 0x02, 0x10, 0x97, 0x02, 0x2a, 0x06, 0x08, 0x97, 0x02, 0x10, 0x98, 0x02, 0x2a, 0x06, 0x08, 0x98, 0x02, 0x10, 0x99, 0x02, 0x2a, 0x06, 0x08, 0x99, 0x02, 0x10, 0x9a, 0x02, 0x2a, 0x06, 0x08, 0x9a, 0x02, 0x10, 0x9b, 0x02, 0x2a, 0x06, 0x08, 0x9b, 0x02, 0x10, 0x9c, 0x02, 0x2a, 0x06, 0x08, 0x9c, 0x02, 0x10, 0x9d, 0x02, 0x2a, 0x06, 0x08, 0x9d, 0x02, 0x10, 0x9e, 0x02, 0x2a, 0x06, 0x08, 0x9e, 0x02, 0x10, 0x9f, 0x02, 0x2a, 0x06, 0x08, 0xa2, 0x02, 0x10, 0xa3, 0x02, 0x2a, 0x06, 0x08, 0xa3, 0x02, 0x10, 0xa4, 0x02, 0x2a, 0x06, 0x08, 0xa4, 0x02, 0x10, 0xa5, 0x02, 0x2a, 0x06, 0x08, 0xa5, 0x02, 0x10, 0xa6, 0x02, 0x2a, 0x06, 0x08, 0xa6, 0x02, 0x10, 0xa7, 0x02, 0x2a, 0x06, 0x08, 0xa7, 0x02, 0x10, 0xa8, 0x02, 0x2a, 0x06, 0x08, 0xa8, 0x02, 0x10, 0xa9, 0x02, 0x2a, 0x06, 0x08, 0xa9, 0x02, 0x10, 0xaa, 0x02, 0x2a, 0x06, 0x08, 0xaa, 0x02, 0x10, 0xab, 0x02, 0x2a, 0x06, 0x08, 0xab, 0x02, 0x10, 0xac, 0x02, 0x2a, 0x06, 0x08, 0xac, 0x02, 0x10, 0xad, 0x02, 0x2a, 0x06, 0x08, 0xad, 0x02, 0x10, 0xae, 0x02, 0x2a, 0x06, 0x08, 0xae, 0x02, 0x10, 0xaf, 0x02, 0x2a, 0x06, 0x08, 0xaf, 0x02, 0x10, 0xb0, 0x02, 0x2a, 0x06, 0x08, 0xb0, 0x02, 0x10, 0xb1, 0x02, 0x2a, 0x06, 0x08, 0xb1, 0x02, 0x10, 0xb2, 0x02, 0x2a, 0x06, 0x08, 0xb2, 0x02, 0x10, 0xb3, 0x02, 0x2a, 0x06, 0x08, 0xb3, 0x02, 0x10, 0xb4, 0x02, 0x2a, 0x06, 0x08, 0xb4, 0x02, 0x10, 0xb5, 0x02, 0x2a, 0x06, 0x08, 0xb5, 0x02, 0x10, 0xb6, 0x02, 0x2a, 0x06, 0x08, 0xb6, 0x02, 0x10, 0xb7, 0x02, 0x2a, 0x06, 0x08, 0xb7, 0x02, 0x10, 0xb8, 0x02, 0x2a, 0x06, 0x08, 0xb8, 0x02, 0x10, 0xb9, 0x02, 0x2a, 0x06, 0x08, 0xb9, 0x02, 0x10, 0xba, 0x02, 0x2a, 0x06, 0x08, 0xba, 0x02, 0x10, 0xbb, 0x02, 0x2a, 0x06, 0x08, 0xbb, 0x02, 0x10, 0xbc, 0x02, 0x2a, 0x06, 0x08, 0xbc, 0x02, 0x10, 0xbd, 0x02, 0x2a, 0x06, 0x08, 0xbd, 0x02, 0x10, 0xbe, 0x02, 0x2a, 0x06, 0x08, 0xbe, 0x02, 0x10, 0xbf, 0x02, 0x2a, 0x06, 0x08, 0xbf, 0x02, 0x10, 0xc0, 0x02, 0x2a, 0x06, 0x08, 0xc0, 0x02, 0x10, 0xc1, 0x02, 0x2a, 0x06, 0x08, 0xc1, 0x02, 0x10, 0xc2, 0x02, 0x2a, 0x06, 0x08, 0xc2, 0x02, 0x10, 0xc3, 0x02, 0x2a, 0x06, 0x08, 0xc3, 0x02, 0x10, 0xc4, 0x02, 0x2a, 0x06, 0x08, 0xc4, 0x02, 0x10, 0xc5, 0x02, 0x2a, 0x06, 0x08, 0xc5, 0x02, 0x10, 0xc6, 0x02, 0x2a, 0x06, 0x08, 0xc6, 0x02, 0x10, 0xc7, 0x02, 0x2a, 0x06, 0x08, 0xc7, 0x02, 0x10, 0xc8, 0x02, 0x2a, 0x06, 0x08, 0xc8, 0x02, 0x10, 0xc9, 0x02, 0x2a, 0x06, 0x08, 0xc9, 0x02, 0x10, 0xca, 0x02, 0x2a, 0x06, 0x08, 0xca, 0x02, 0x10, 0xcb, 0x02, 0x2a, 0x06, 0x08, 0xcb, 0x02, 0x10, 0xcc, 0x02, 0x2a, 0x06, 0x08, 0xcc, 0x02, 0x10, 0xcd, 0x02, 0x2a, 0x06, 0x08, 0xcd, 0x02, 0x10, 0xce, 0x02, 0x2a, 0x06, 0x08, 0xce, 0x02, 0x10, 0xcf, 0x02, 0x2a, 0x06, 0x08, 0xcf, 0x02, 0x10, 0xd0, 0x02, 0x2a, 0x06, 0x08, 0xd0, 0x02, 0x10, 0xd1, 0x02, 0x2a, 0x06, 0x08, 0xd1, 0x02, 0x10, 0xd2, 0x02, 0x2a, 0x06, 0x08, 0xd2, 0x02, 0x10, 0xd3, 0x02, 0x2a, 0x06, 0x08, 0xd3, 0x02, 0x10, 0xd4, 0x02, 0x2a, 0x06, 0x08, 0xd4, 0x02, 0x10, 0xd5, 0x02, 0x2a, 0x06, 0x08, 0xd5, 0x02, 0x10, 0xd6, 0x02, 0x2a, 0x06, 0x08, 0xd6, 0x02, 0x10, 0xd7, 0x02, 0x2a, 0x06, 0x08, 0xd7, 0x02, 0x10, 0xd8, 0x02, 0x2a, 0x06, 0x08, 0xd8, 0x02, 0x10, 0xd9, 0x02, 0x2a, 0x06, 0x08, 0xd9, 0x02, 0x10, 0xda, 0x02, 0x2a, 0x06, 0x08, 0xda, 0x02, 0x10, 0xdb, 0x02, 0x2a, 0x06, 0x08, 0xdb, 0x02, 0x10, 0xdc, 0x02, 0x2a, 0x06, 0x08, 0xdc, 0x02, 0x10, 0xdd, 0x02, 0x2a, 0x06, 0x08, 0xdd, 0x02, 0x10, 0xde, 0x02, 0x2a, 0x06, 0x08, 0xde, 0x02, 0x10, 0xdf, 0x02, 0x2a, 0x06, 0x08, 0xdf, 0x02, 0x10, 0xe0, 0x02, 0x2a, 0x06, 0x08, 0xe0, 0x02, 0x10, 0xe1, 0x02, 0x2a, 0x06, 0x08, 0xe1, 0x02, 0x10, 0xe2, 0x02, 0x2a, 0x06, 0x08, 0xe2, 0x02, 0x10, 0xe3, 0x02, 0x2a, 0x06, 0x08, 0xe3, 0x02, 0x10, 0xe4, 0x02, 0x2a, 0x06, 0x08, 0xe4, 0x02, 0x10, 0xe5, 0x02, 0x2a, 0x06, 0x08, 0xe5, 0x02, 0x10, 0xe6, 0x02, 0x2a, 0x06, 0x08, 0xe6, 0x02, 0x10, 0xe7, 0x02, 0x2a, 0x06, 0x08, 0xe7, 0x02, 0x10, 0xe8, 0x02, 0x2a, 0x06, 0x08, 0xe8, 0x02, 0x10, 0xe9, 0x02, 0x2a, 0x06, 0x08, 0xe9, 0x02, 0x10, 0xea, 0x02, 0x2a, 0x06, 0x08, 0xea, 0x02, 0x10, 0xeb, 0x02, 0x2a, 0x06, 0x08, 0xeb, 0x02, 0x10, 0xec, 0x02, 0x2a, 0x06, 0x08, 0xec, 0x02, 0x10, 0xed, 0x02, 0x2a, 0x06, 0x08, 0xed, 0x02, 0x10, 0xee, 0x02, 0x2a, 0x06, 0x08, 0xee, 0x02, 0x10, 0xef, 0x02, 0x2a, 0x06, 0x08, 0xef, 0x02, 0x10, 0xf0, 0x02, 0x2a, 0x06, 0x08, 0xf0, 0x02, 0x10, 0xf1, 0x02, 0x2a, 0x06, 0x08, 0xf1, 0x02, 0x10, 0xf2, 0x02, 0x2a, 0x06, 0x08, 0xf2, 0x02, 0x10, 0xf3, 0x02, 0x2a, 0x06, 0x08, 0xf3, 0x02, 0x10, 0xf4, 0x02, 0x2a, 0x06, 0x08, 0xf4, 0x02, 0x10, 0xf5, 0x02, 0x2a, 0x06, 0x08, 0xf5, 0x02, 0x10, 0xf6, 0x02, 0x2a, 0x06, 0x08, 0xf6, 0x02, 0x10, 0xf7, 0x02, 0x2a, 0x06, 0x08, 0xf7, 0x02, 0x10, 0xf8, 0x02, 0x2a, 0x06, 0x08, 0xf8, 0x02, 0x10, 0xf9, 0x02, 0x2a, 0x06, 0x08, 0xf9, 0x02, 0x10, 0xfa, 0x02, 0x2a, 0x06, 0x08, 0xfa, 0x02, 0x10, 0xfb, 0x02, 0x2a, 0x06, 0x08, 0xfb, 0x02, 0x10, 0xfc, 0x02, 0x2a, 0x06, 0x08, 0xfc, 0x02, 0x10, 0xfd, 0x02, 0x2a, 0x06, 0x08, 0xfd, 0x02, 0x10, 0xfe, 0x02, 0x2a, 0x06, 0x08, 0xfe, 0x02, 0x10, 0xff, 0x02, 0x2a, 0x06, 0x08, 0xff, 0x02, 0x10, 0x80, 0x03, 0x2a, 0x06, 0x08, 0x80, 0x03, 0x10, 0x81, 0x03, 0x2a, 0x06, 0x08, 0x81, 0x03, 0x10, 0x82, 0x03, 0x2a, 0x06, 0x08, 0x82, 0x03, 0x10, 0x83, 0x03, 0x2a, 0x06, 0x08, 0x83, 0x03, 0x10, 0x84, 0x03, 0x2a, 0x06, 0x08, 0x84, 0x03, 0x10, 0x85, 0x03, 0x2a, 0x06, 0x08, 0x85, 0x03, 0x10, 0x86, 0x03, 0x2a, 0x06, 0x08, 0x86, 0x03, 0x10, 0x87, 0x03, 0x2a, 0x06, 0x08, 0x87, 0x03, 0x10, 0x88, 0x03, 0x2a, 0x06, 0x08, 0x88, 0x03, 0x10, 0x89, 0x03, 0x2a, 0x06, 0x08, 0x89, 0x03, 0x10, 0x8a, 0x03, 0x2a, 0x06, 0x08, 0x8a, 0x03, 0x10, 0x8b, 0x03, 0x2a, 0x06, 0x08, 0x8b, 0x03, 0x10, 0x8c, 0x03, 0x2a, 0x06, 0x08, 0x8c, 0x03, 0x10, 0x8d, 0x03, 0x2a, 0x06, 0x08, 0x8d, 0x03, 0x10, 0x8e, 0x03, 0x2a, 0x06, 0x08, 0x8e, 0x03, 0x10, 0x8f, 0x03, 0x2a, 0x06, 0x08, 0x8f, 0x03, 0x10, 0x90, 0x03, 0x2a, 0x06, 0x08, 0x90, 0x03, 0x10, 0x91, 0x03, 0x2a, 0x06, 0x08, 0x91, 0x03, 0x10, 0x92, 0x03, 0x2a, 0x06, 0x08, 0x92, 0x03, 0x10, 0x93, 0x03, 0x2a, 0x06, 0x08, 0x93, 0x03, 0x10, 0x94, 0x03, 0x2a, 0x06, 0x08, 0x94, 0x03, 0x10, 0x95, 0x03, 0x2a, 0x06, 0x08, 0x95, 0x03, 0x10, 0x96, 0x03, 0x2a, 0x06, 0x08, 0x96, 0x03, 0x10, 0x97, 0x03, 0x2a, 0x06, 0x08, 0x97, 0x03, 0x10, 0x98, 0x03, 0x2a, 0x06, 0x08, 0x98, 0x03, 0x10, 0x99, 0x03, 0x2a, 0x06, 0x08, 0x99, 0x03, 0x10, 0x9a, 0x03, 0x2a, 0x06, 0x08, 0x9a, 0x03, 0x10, 0x9b, 0x03, 0x2a, 0x06, 0x08, 0x9b, 0x03, 0x10, 0x9c, 0x03, 0x2a, 0x06, 0x08, 0x9c, 0x03, 0x10, 0x9d, 0x03, 0x2a, 0x06, 0x08, 0x9d, 0x03, 0x10, 0x9e, 0x03, 0x2a, 0x06, 0x08, 0x9e, 0x03, 0x10, 0x9f, 0x03, 0x2a, 0x06, 0x08, 0x9f, 0x03, 0x10, 0xa0, 0x03, 0x2a, 0x06, 0x08, 0xa0, 0x03, 0x10, 0xa1, 0x03, 0x2a, 0x06, 0x08, 0xa1, 0x03, 0x10, 0xa2, 0x03, 0x2a, 0x06, 0x08, 0xa2, 0x03, 0x10, 0xa3, 0x03, 0x2a, 0x06, 0x08, 0xa3, 0x03, 0x10, 0xa4, 0x03, 0x2a, 0x06, 0x08, 0xa4, 0x03, 0x10, 0xa5, 0x03, 0x2a, 0x06, 0x08, 0xa5, 0x03, 0x10, 0xa6, 0x03, 0x2a, 0x06, 0x08, 0xa6, 0x03, 0x10, 0xa7, 0x03, 0x2a, 0x06, 0x08, 0xa7, 0x03, 0x10, 0xa8, 0x03, 0x2a, 0x06, 0x08, 0xa8, 0x03, 0x10, 0xa9, 0x03, 0x2a, 0x06, 0x08, 0xa9, 0x03, 0x10, 0xaa, 0x03, 0x2a, 0x06, 0x08, 0xaa, 0x03, 0x10, 0xab, 0x03, 0x2a, 0x06, 0x08, 0xab, 0x03, 0x10, 0xac, 0x03, 0x2a, 0x06, 0x08, 0xac, 0x03, 0x10, 0xad, 0x03, 0x2a, 0x06, 0x08, 0xad, 0x03, 0x10, 0xae, 0x03, 0x2a, 0x06, 0x08, 0xae, 0x03, 0x10, 0xaf, 0x03, 0x2a, 0x06, 0x08, 0xaf, 0x03, 0x10, 0xb0, 0x03, 0x2a, 0x06, 0x08, 0xb0, 0x03, 0x10, 0xb1, 0x03, 0x2a, 0x06, 0x08, 0xb1, 0x03, 0x10, 0xb2, 0x03, 0x2a, 0x06, 0x08, 0xb2, 0x03, 0x10, 0xb3, 0x03, 0x2a, 0x06, 0x08, 0xb3, 0x03, 0x10, 0xb4, 0x03, 0x2a, 0x06, 0x08, 0xb4, 0x03, 0x10, 0xb5, 0x03, 0x2a, 0x06, 0x08, 0xb5, 0x03, 0x10, 0xb6, 0x03, 0x2a, 0x06, 0x08, 0xb6, 0x03, 0x10, 0xb7, 0x03, 0x2a, 0x06, 0x08, 0xb7, 0x03, 0x10, 0xb8, 0x03, 0x2a, 0x06, 0x08, 0xb8, 0x03, 0x10, 0xb9, 0x03, 0x2a, 0x06, 0x08, 0xb9, 0x03, 0x10, 0xba, 0x03, 0x2a, 0x06, 0x08, 0xba, 0x03, 0x10, 0xbb, 0x03, 0x2a, 0x06, 0x08, 0xbb, 0x03, 0x10, 0xbc, 0x03, 0x2a, 0x06, 0x08, 0xbc, 0x03, 0x10, 0xbd, 0x03, 0x2a, 0x06, 0x08, 0xbd, 0x03, 0x10, 0xbe, 0x03, 0x2a, 0x06, 0x08, 0xbe, 0x03, 0x10, 0xbf, 0x03, 0x2a, 0x06, 0x08, 0xbf, 0x03, 0x10, 0xc0, 0x03, 0x2a, 0x06, 0x08, 0xc0, 0x03, 0x10, 0xc1, 0x03, 0x2a, 0x06, 0x08, 0xc1, 0x03, 0x10, 0xc2, 0x03, 0x2a, 0x06, 0x08, 0xc2, 0x03, 0x10, 0xc3, 0x03, 0x2a, 0x06, 0x08, 0xc3, 0x03, 0x10, 0xc4, 0x03, 0x2a, 0x06, 0x08, 0xc4, 0x03, 0x10, 0xc5, 0x03, 0x2a, 0x06, 0x08, 0xc5, 0x03, 0x10, 0xc6, 0x03, 0x2a, 0x06, 0x08, 0xc6, 0x03, 0x10, 0xc7, 0x03, 0x2a, 0x06, 0x08, 0xc7, 0x03, 0x10, 0xc8, 0x03, 0x2a, 0x06, 0x08, 0xc8, 0x03, 0x10, 0xc9, 0x03, 0x2a, 0x06, 0x08, 0xc9, 0x03, 0x10, 0xca, 0x03, 0x2a, 0x06, 0x08, 0xca, 0x03, 0x10, 0xcb, 0x03, 0x2a, 0x06, 0x08, 0xcb, 0x03, 0x10, 0xcc, 0x03, 0x2a, 0x06, 0x08, 0xcc, 0x03, 0x10, 0xcd, 0x03, 0x2a, 0x06, 0x08, 0xcd, 0x03, 0x10, 0xce, 0x03, 0x2a, 0x06, 0x08, 0xce, 0x03, 0x10, 0xcf, 0x03, 0x2a, 0x06, 0x08, 0xcf, 0x03, 0x10, 0xd0, 0x03, 0x2a, 0x06, 0x08, 0xd0, 0x03, 0x10, 0xd1, 0x03, 0x2a, 0x06, 0x08, 0xd1, 0x03, 0x10, 0xd2, 0x03, 0x2a, 0x06, 0x08, 0xd2, 0x03, 0x10, 0xd3, 0x03, 0x2a, 0x06, 0x08, 0xd3, 0x03, 0x10, 0xd4, 0x03, 0x2a, 0x06, 0x08, 0xd4, 0x03, 0x10, 0xd5, 0x03, 0x2a, 0x06, 0x08, 0xd5, 0x03, 0x10, 0xd6, 0x03, 0x2a, 0x06, 0x08, 0xd6, 0x03, 0x10, 0xd7, 0x03, 0x2a, 0x06, 0x08, 0xd7, 0x03, 0x10, 0xd8, 0x03, 0x2a, 0x06, 0x08, 0xd8, 0x03, 0x10, 0xd9, 0x03, 0x2a, 0x06, 0x08, 0xd9, 0x03, 0x10, 0xda, 0x03, 0x2a, 0x06, 0x08, 0xda, 0x03, 0x10, 0xdb, 0x03, 0x2a, 0x06, 0x08, 0xfd, 0x03, 0x10, 0xfe, 0x03, 0x2a, 0x06, 0x08, 0xff, 0x03, 0x10, 0x80, 0x04, 0x2a, 0x06, 0x08, 0x80, 0x04, 0x10, 0x81, 0x04, 0x2a, 0x06, 0x08, 0x81, 0x04, 0x10, 0x82, 0x04, 0x2a, 0x06, 0x08, 0x82, 0x04, 0x10, 0x83, 0x04, 0x2a, 0x06, 0x08, 0x83, 0x04, 0x10, 0x84, 0x04, 0x2a, 0x06, 0x08, 0x84, 0x04, 0x10, 0x85, 0x04, 0x2a, 0x06, 0x08, 0x85, 0x04, 0x10, 0x86, 0x04, 0x2a, 0x06, 0x08, 0x86, 0x04, 0x10, 0x87, 0x04, 0x2a, 0x06, 0x08, 0x87, 0x04, 0x10, 0x88, 0x04, 0x2a, 0x06, 0x08, 0x88, 0x04, 0x10, 0x89, 0x04, 0x2a, 0x06, 0x08, 0x89, 0x04, 0x10, 0x8a, 0x04, 0x2a, 0x06, 0x08, 0x8a, 0x04, 0x10, 0x8b, 0x04, 0x2a, 0x06, 0x08, 0x8b, 0x04, 0x10, 0x8c, 0x04, 0x2a, 0x06, 0x08, 0x8c, 0x04, 0x10, 0x8d, 0x04, 0x2a, 0x06, 0x08, 0x8d, 0x04, 0x10, 0x8e, 0x04, 0x2a, 0x06, 0x08, 0x8e, 0x04, 0x10, 0x8f, 0x04, 0x2a, 0x06, 0x08, 0x8f, 0x04, 0x10, 0x90, 0x04, 0x2a, 0x06, 0x08, 0x90, 0x04, 0x10, 0x91, 0x04, 0x2a, 0x06, 0x08, 0x91, 0x04, 0x10, 0x92, 0x04, 0x2a, 0x06, 0x08, 0x92, 0x04, 0x10, 0x93, 0x04, 0x2a, 0x06, 0x08, 0x93, 0x04, 0x10, 0x94, 0x04, 0x2a, 0x06, 0x08, 0x94, 0x04, 0x10, 0x95, 0x04, 0x2a, 0x06, 0x08, 0x95, 0x04, 0x10, 0x96, 0x04, 0x2a, 0x06, 0x08, 0x96, 0x04, 0x10, 0x97, 0x04, 0x2a, 0x06, 0x08, 0x97, 0x04, 0x10, 0x98, 0x04, 0x2a, 0x06, 0x08, 0x98, 0x04, 0x10, 0x99, 0x04, 0x2a, 0x06, 0x08, 0x99, 0x04, 0x10, 0x9a, 0x04, 0x2a, 0x06, 0x08, 0x9a, 0x04, 0x10, 0x9b, 0x04, 0x2a, 0x06, 0x08, 0x9b, 0x04, 0x10, 0x9c, 0x04, 0x2a, 0x06, 0x08, 0x9c, 0x04, 0x10, 0x9d, 0x04, 0x2a, 0x06, 0x08, 0x9d, 0x04, 0x10, 0x9e, 0x04, 0x2a, 0x06, 0x08, 0x9e, 0x04, 0x10, 0x9f, 0x04, 0x2a, 0x06, 0x08, 0x9f, 0x04, 0x10, 0xa0, 0x04, 0x2a, 0x06, 0x08, 0xa0, 0x04, 0x10, 0xa1, 0x04, 0x2a, 0x06, 0x08, 0xa1, 0x04, 0x10, 0xa2, 0x04, 0x2a, 0x06, 0x08, 0xa2, 0x04, 0x10, 0xa3, 0x04, 0x2a, 0x06, 0x08, 0xa3, 0x04, 0x10, 0xa4, 0x04, 0x2a, 0x06, 0x08, 0xa4, 0x04, 0x10, 0xa5, 0x04, 0x2a, 0x06, 0x08, 0xa5, 0x04, 0x10, 0xa6, 0x04, 0x2a, 0x06, 0x08, 0xa6, 0x04, 0x10, 0xa7, 0x04, 0x2a, 0x06, 0x08, 0xa7, 0x04, 0x10, 0xa8, 0x04, 0x2a, 0x06, 0x08, 0xa8, 0x04, 0x10, 0xa9, 0x04, 0x2a, 0x06, 0x08, 0xa9, 0x04, 0x10, 0xaa, 0x04, 0x2a, 0x06, 0x08, 0xaa, 0x04, 0x10, 0xab, 0x04, 0x2a, 0x06, 0x08, 0xab, 0x04, 0x10, 0xac, 0x04, 0x2a, 0x06, 0x08, 0xac, 0x04, 0x10, 0xad, 0x04, 0x2a, 0x06, 0x08, 0xad, 0x04, 0x10, 0xae, 0x04, 0x2a, 0x06, 0x08, 0xae, 0x04, 0x10, 0xaf, 0x04, 0x2a, 0x06, 0x08, 0xaf, 0x04, 0x10, 0xb0, 0x04, 0x2a, 0x06, 0x08, 0xb0, 0x04, 0x10, 0xb1, 0x04, 0x2a, 0x06, 0x08, 0xb1, 0x04, 0x10, 0xb2, 0x04, 0x2a, 0x06, 0x08, 0xb2, 0x04, 0x10, 0xb3, 0x04, 0x2a, 0x06, 0x08, 0xb3, 0x04, 0x10, 0xb4, 0x04, 0x2a, 0x06, 0x08, 0xb4, 0x04, 0x10, 0xb5, 0x04, 0x2a, 0x06, 0x08, 0xb5, 0x04, 0x10, 0xb6, 0x04, 0x2a, 0x06, 0x08, 0xb6, 0x04, 0x10, 0xb7, 0x04, 0x2a, 0x06, 0x08, 0xb7, 0x04, 0x10, 0xb8, 0x04, 0x2a, 0x06, 0x08, 0xb8, 0x04, 0x10, 0xb9, 0x04, 0x2a, 0x06, 0x08, 0xb9, 0x04, 0x10, 0xba, 0x04, 0x2a, 0x06, 0x08, 0xba, 0x04, 0x10, 0xbb, 0x04, 0x2a, 0x06, 0x08, 0xbb, 0x04, 0x10, 0xbc, 0x04, 0x2a, 0x06, 0x08, 0xbc, 0x04, 0x10, 0xbd, 0x04, 0x2a, 0x06, 0x08, 0xbd, 0x04, 0x10, 0xbe, 0x04, 0x2a, 0x06, 0x08, 0xbe, 0x04, 0x10, 0xbf, 0x04, 0x2a, 0x06, 0x08, 0xbf, 0x04, 0x10, 0xc0, 0x04, 0x2a, 0x06, 0x08, 0xc0, 0x04, 0x10, 0xc1, 0x04, 0x2a, 0x06, 0x08, 0xc1, 0x04, 0x10, 0xc2, 0x04, 0x2a, 0x06, 0x08, 0xc2, 0x04, 0x10, 0xc3, 0x04, 0x2a, 0x06, 0x08, 0xc3, 0x04, 0x10, 0xc4, 0x04, 0x2a, 0x06, 0x08, 0xc4, 0x04, 0x10, 0xc5, 0x04, 0x2a, 0x06, 0x08, 0xc5, 0x04, 0x10, 0xc6, 0x04, 0x2a, 0x06, 0x08, 0xc6, 0x04, 0x10, 0xc7, 0x04, 0x2a, 0x06, 0x08, 0xc7, 0x04, 0x10, 0xc8, 0x04, 0x2a, 0x06, 0x08, 0xc8, 0x04, 0x10, 0xc9, 0x04, 0x2a, 0x06, 0x08, 0xc9, 0x04, 0x10, 0xca, 0x04, 0x2a, 0x06, 0x08, 0xca, 0x04, 0x10, 0xcb, 0x04, 0x2a, 0x06, 0x08, 0xcb, 0x04, 0x10, 0xcc, 0x04, 0x2a, 0x06, 0x08, 0xcc, 0x04, 0x10, 0xcd, 0x04, 0x2a, 0x06, 0x08, 0xcd, 0x04, 0x10, 0xce, 0x04, 0x2a, 0x06, 0x08, 0xce, 0x04, 0x10, 0xcf, 0x04, 0x2a, 0x06, 0x08, 0xdc, 0x04, 0x10, 0xdd, 0x04, 0x2a, 0x06, 0x08, 0xdd, 0x04, 0x10, 0xde, 0x04, 0x2a, 0x06, 0x08, 0xde, 0x04, 0x10, 0xdf, 0x04, 0x2a, 0x06, 0x08, 0xdf, 0x04, 0x10, 0xe0, 0x04, 0x2a, 0x06, 0x08, 0xe0, 0x04, 0x10, 0xe1, 0x04, 0x2a, 0x06, 0x08, 0xe1, 0x04, 0x10, 0xe2, 0x04, 0x2a, 0x06, 0x08, 0xe2, 0x04, 0x10, 0xe3, 0x04, 0x2a, 0x06, 0x08, 0xe3, 0x04, 0x10, 0xe4, 0x04, 0x2a, 0x06, 0x08, 0xe4, 0x04, 0x10, 0xe5, 0x04, 0x2a, 0x06, 0x08, 0xe5, 0x04, 0x10, 0xe6, 0x04, 0x2a, 0x06, 0x08, 0xe6, 0x04, 0x10, 0xe7, 0x04, 0x2a, 0x06, 0x08, 0xe7, 0x04, 0x10, 0xe8, 0x04, 0x2a, 0x06, 0x08, 0xe8, 0x04, 0x10, 0xe9, 0x04, 0x2a, 0x06, 0x08, 0xe9, 0x04, 0x10, 0xea, 0x04, 0x2a, 0x06, 0x08, 0xea, 0x04, 0x10, 0xeb, 0x04, 0x2a, 0x06, 0x08, 0xeb, 0x04, 0x10, 0xec, 0x04, 0x2a, 0x06, 0x08, 0xec, 0x04, 0x10, 0xed, 0x04, 0x2a, 0x06, 0x08, 0xed, 0x04, 0x10, 0xee, 0x04, 0x2a, 0x06, 0x08, 0xee, 0x04, 0x10, 0xef, 0x04, 0x2a, 0x06, 0x08, 0xef, 0x04, 0x10, 0xf0, 0x04, 0x2a, 0x06, 0x08, 0xf0, 0x04, 0x10, 0xf1, 0x04, 0x2a, 0x06, 0x08, 0xf1, 0x04, 0x10, 0xf2, 0x04, 0x2a, 0x06, 0x08, 0xf2, 0x04, 0x10, 0xf3, 0x04, 0x2a, 0x06, 0x08, 0xf3, 0x04, 0x10, 0xf4, 0x04, 0x2a, 0x06, 0x08, 0xf4, 0x04, 0x10, 0xf5, 0x04, 0x2a, 0x06, 0x08, 0xf5, 0x04, 0x10, 0xf6, 0x04, 0x2a, 0x06, 0x08, 0xad, 0x06, 0x10, 0xae, 0x06, 0x2a, 0x06, 0x08, 0xae, 0x06, 0x10, 0xaf, 0x06, 0x2a, 0x06, 0x08, 0xaf, 0x06, 0x10, 0xb0, 0x06, 0x2a, 0x06, 0x08, 0xb0, 0x06, 0x10, 0xb1, 0x06, 0x2a, 0x06, 0x08, 0xb1, 0x06, 0x10, 0xb2, 0x06, 0x2a, 0x06, 0x08, 0xb2, 0x06, 0x10, 0xb3, 0x06, 0x2a, 0x06, 0x08, 0xb3, 0x06, 0x10, 0xb4, 0x06, 0x2a, 0x06, 0x08, 0xb4, 0x06, 0x10, 0xb5, 0x06, 0x2a, 0x06, 0x08, 0xb5, 0x06, 0x10, 0xb6, 0x06, 0x2a, 0x06, 0x08, 0xb6, 0x06, 0x10, 0xb7, 0x06, 0x2a, 0x06, 0x08, 0xb7, 0x06, 0x10, 0xb8, 0x06, 0x2a, 0x06, 0x08, 0xb8, 0x06, 0x10, 0xb9, 0x06, 0x2a, 0x06, 0x08, 0xbb, 0x06, 0x10, 0xbc, 0x06, 0x2a, 0x06, 0x08, 0xbc, 0x06, 0x10, 0xbd, 0x06, 0x2a, 0x06, 0x08, 0xbd, 0x06, 0x10, 0xbe, 0x06, 0x2a, 0x06, 0x08, 0xbe, 0x06, 0x10, 0xbf, 0x06, 0x2a, 0x06, 0x08, 0xbf, 0x06, 0x10, 0xc0, 0x06, 0x2a, 0x06, 0x08, 0xc0, 0x06, 0x10, 0xc1, 0x06, 0x2a, 0x06, 0x08, 0xc1, 0x06, 0x10, 0xc2, 0x06, 0x2a, 0x06, 0x08, 0xc2, 0x06, 0x10, 0xc3, 0x06, 0x2a, 0x06, 0x08, 0xc3, 0x06, 0x10, 0xc4, 0x06, 0x2a, 0x06, 0x08, 0xc4, 0x06, 0x10, 0xc5, 0x06, 0x2a, 0x06, 0x08, 0xc5, 0x06, 0x10, 0xc6, 0x06, 0x2a, 0x06, 0x08, 0xc6, 0x06, 0x10, 0xc7, 0x06, 0x2a, 0x06, 0x08, 0xc7, 0x06, 0x10, 0xc8, 0x06, 0x2a, 0x06, 0x08, 0xc8, 0x06, 0x10, 0xc9, 0x06, 0x2a, 0x06, 0x08, 0xc9, 0x06, 0x10, 0xca, 0x06, 0x2a, 0x06, 0x08, 0xca, 0x06, 0x10, 0xcb, 0x06, 0x2a, 0x06, 0x08, 0xcb, 0x06, 0x10, 0xcc, 0x06, 0x2a, 0x06, 0x08, 0xcc, 0x06, 0x10, 0xcd, 0x06, 0x2a, 0x06, 0x08, 0xcd, 0x06, 0x10, 0xce, 0x06, 0x2a, 0x06, 0x08, 0xce, 0x06, 0x10, 0xcf, 0x06, 0x2a, 0x06, 0x08, 0xcf, 0x06, 0x10, 0xd0, 0x06, 0x2a, 0x06, 0x08, 0xd0, 0x06, 0x10, 0xd1, 0x06, 0x2a, 0x06, 0x08, 0xd1, 0x06, 0x10, 0xd2, 0x06, 0x2a, 0x06, 0x08, 0xd2, 0x06, 0x10, 0xd3, 0x06, 0x2a, 0x06, 0x08, 0xd3, 0x06, 0x10, 0xd4, 0x06, 0x2a, 0x06, 0x08, 0xd4, 0x06, 0x10, 0xd5, 0x06, 0x2a, 0x06, 0x08, 0xd5, 0x06, 0x10, 0xd6, 0x06, 0x2a, 0x06, 0x08, 0xd6, 0x06, 0x10, 0xd7, 0x06, 0x2a, 0x06, 0x08, 0xd7, 0x06, 0x10, 0xd8, 0x06, 0x2a, 0x06, 0x08, 0xd8, 0x06, 0x10, 0xd9, 0x06, 0x2a, 0x06, 0x08, 0xd9, 0x06, 0x10, 0xda, 0x06, 0x2a, 0x06, 0x08, 0xda, 0x06, 0x10, 0xdb, 0x06, 0x2a, 0x06, 0x08, 0xdb, 0x06, 0x10, 0xdc, 0x06, 0x2a, 0x06, 0x08, 0xdc, 0x06, 0x10, 0xdd, 0x06, 0x2a, 0x06, 0x08, 0xdd, 0x06, 0x10, 0xde, 0x06, 0x2a, 0x06, 0x08, 0xde, 0x06, 0x10, 0xdf, 0x06, 0x2a, 0x06, 0x08, 0xdf, 0x06, 0x10, 0xe0, 0x06, 0x2a, 0x06, 0x08, 0xe0, 0x06, 0x10, 0xe1, 0x06, 0x2a, 0x06, 0x08, 0xe1, 0x06, 0x10, 0xe2, 0x06, 0x2a, 0x06, 0x08, 0xe2, 0x06, 0x10, 0xe3, 0x06, 0x2a, 0x06, 0x08, 0xe3, 0x06, 0x10, 0xe4, 0x06, 0x2a, 0x06, 0x08, 0xe4, 0x06, 0x10, 0xe5, 0x06, 0x2a, 0x06, 0x08, 0xe5, 0x06, 0x10, 0xe6, 0x06, 0x2a, 0x06, 0x08, 0xe6, 0x06, 0x10, 0xe7, 0x06, 0x2a, 0x06, 0x08, 0xe7, 0x06, 0x10, 0xe8, 0x06, 0x2a, 0x06, 0x08, 0xf0, 0x06, 0x10, 0xf1, 0x06, 0x2a, 0x06, 0x08, 0xf1, 0x06, 0x10, 0xf2, 0x06, 0x2a, 0x06, 0x08, 0xf2, 0x06, 0x10, 0xf3, 0x06, 0x2a, 0x06, 0x08, 0xf3, 0x06, 0x10, 0xf4, 0x06, 0x2a, 0x06, 0x08, 0xf4, 0x06, 0x10, 0xf5, 0x06, 0x2a, 0x06, 0x08, 0xf5, 0x06, 0x10, 0xf6, 0x06, 0x2a, 0x06, 0x08, 0xf6, 0x06, 0x10, 0xf7, 0x06, 0x2a, 0x06, 0x08, 0xf7, 0x06, 0x10, 0xf8, 0x06, 0x2a, 0x06, 0x08, 0xf8, 0x06, 0x10, 0xf9, 0x06, 0x2a, 0x06, 0x08, 0xfa, 0x06, 0x10, 0xfb, 0x06, 0x2a, 0x06, 0x08, 0xfb, 0x06, 0x10, 0xfc, 0x06, 0x2a, 0x06, 0x08, 0xfc, 0x06, 0x10, 0xfd, 0x06, 0x2a, 0x06, 0x08, 0x90, 0x07, 0x10, 0x91, 0x07, 0x2a, 0x06, 0x08, 0x92, 0x07, 0x10, 0x93, 0x07, 0x2a, 0x06, 0x08, 0x93, 0x07, 0x10, 0x94, 0x07, 0x2a, 0x06, 0x08, 0x94, 0x07, 0x10, 0x95, 0x07, 0x2a, 0x06, 0x08, 0x95, 0x07, 0x10, 0x96, 0x07, 0x2a, 0x06, 0x08, 0x96, 0x07, 0x10, 0x97, 0x07, 0x2a, 0x06, 0x08, 0x97, 0x07, 0x10, 0x98, 0x07, 0x2a, 0x06, 0x08, 0x98, 0x07, 0x10, 0x99, 0x07, 0x2a, 0x06, 0x08, 0x99, 0x07, 0x10, 0x9a, 0x07, 0x2a, 0x06, 0x08, 0x9a, 0x07, 0x10, 0x9b, 0x07, 0x2a, 0x06, 0x08, 0x9b, 0x07, 0x10, 0x9c, 0x07, 0x2a, 0x06, 0x08, 0x9c, 0x07, 0x10, 0x9d, 0x07, 0x2a, 0x06, 0x08, 0x9d, 0x07, 0x10, 0x9e, 0x07, 0x2a, 0x06, 0x08, 0x9e, 0x07, 0x10, 0x9f, 0x07, 0x2a, 0x06, 0x08, 0x9f, 0x07, 0x10, 0xa0, 0x07, 0x2a, 0x06, 0x08, 0xa0, 0x07, 0x10, 0xa1, 0x07, 0x2a, 0x06, 0x08, 0xa1, 0x07, 0x10, 0xa2, 0x07, 0x2a, 0x06, 0x08, 0xa2, 0x07, 0x10, 0xa3, 0x07, 0x2a, 0x06, 0x08, 0xa3, 0x07, 0x10, 0xa4, 0x07, 0x2a, 0x06, 0x08, 0xa4, 0x07, 0x10, 0xa5, 0x07, 0x2a, 0x06, 0x08, 0xa5, 0x07, 0x10, 0xa6, 0x07, 0x2a, 0x06, 0x08, 0xa6, 0x07, 0x10, 0xa7, 0x07, 0x2a, 0x06, 0x08, 0xa7, 0x07, 0x10, 0xa8, 0x07, 0x2a, 0x06, 0x08, 0xa8, 0x07, 0x10, 0xa9, 0x07, 0x2a, 0x06, 0x08, 0xa9, 0x07, 0x10, 0xaa, 0x07, 0x2a, 0x06, 0x08, 0xaa, 0x07, 0x10, 0xab, 0x07, 0x2a, 0x06, 0x08, 0xab, 0x07, 0x10, 0xac, 0x07, 0x2a, 0x06, 0x08, 0xac, 0x07, 0x10, 0xad, 0x07, 0x2a, 0x06, 0x08, 0xad, 0x07, 0x10, 0xae, 0x07, 0x2a, 0x06, 0x08, 0xae, 0x07, 0x10, 0xaf, 0x07, 0x2a, 0x06, 0x08, 0xaf, 0x07, 0x10, 0xb0, 0x07, 0x2a, 0x06, 0x08, 0xb0, 0x07, 0x10, 0xb1, 0x07, 0x2a, 0x06, 0x08, 0xb1, 0x07, 0x10, 0xb2, 0x07, 0x2a, 0x06, 0x08, 0xb2, 0x07, 0x10, 0xb3, 0x07, 0x2a, 0x06, 0x08, 0xb3, 0x07, 0x10, 0xb4, 0x07, 0x2a, 0x06, 0x08, 0xb5, 0x07, 0x10, 0xb6, 0x07, 0x2a, 0x06, 0x08, 0xb6, 0x07, 0x10, 0xb7, 0x07, 0x2a, 0x06, 0x08, 0xb7, 0x07, 0x10, 0xb8, 0x07, 0x2a, 0x06, 0x08, 0xb8, 0x07, 0x10, 0xb9, 0x07, 0x2a, 0x06, 0x08, 0xba, 0x07, 0x10, 0xbb, 0x07, 0x2a, 0x06, 0x08, 0xbb, 0x07, 0x10, 0xbc, 0x07, 0x2a, 0x06, 0x08, 0xbc, 0x07, 0x10, 0xbd, 0x07, 0x2a, 0x06, 0x08, 0xbd, 0x07, 0x10, 0xbe, 0x07, 0x2a, 0x06, 0x08, 0xbe, 0x07, 0x10, 0xbf, 0x07, 0x2a, 0x06, 0x08, 0xbf, 0x07, 0x10, 0xc0, 0x07, 0x2a, 0x06, 0x08, 0xc0, 0x07, 0x10, 0xc1, 0x07, 0x2a, 0x06, 0x08, 0xc1, 0x07, 0x10, 0xc2, 0x07, 0x2a, 0x06, 0x08, 0xc2, 0x07, 0x10, 0xc3, 0x07, 0x2a, 0x06, 0x08, 0xc3, 0x07, 0x10, 0xc4, 0x07, 0x2a, 0x06, 0x08, 0xc4, 0x07, 0x10, 0xc5, 0x07, 0x2a, 0x06, 0x08, 0xc5, 0x07, 0x10, 0xc6, 0x07, 0x2a, 0x06, 0x08, 0xc6, 0x07, 0x10, 0xc7, 0x07, 0x2a, 0x06, 0x08, 0xc7, 0x07, 0x10, 0xc8, 0x07, 0x2a, 0x06, 0x08, 0xc8, 0x07, 0x10, 0xc9, 0x07, 0x2a, 0x06, 0x08, 0xc9, 0x07, 0x10, 0xca, 0x07, 0x2a, 0x06, 0x08, 0xca, 0x07, 0x10, 0xcb, 0x07, 0x2a, 0x06, 0x08, 0xcb, 0x07, 0x10, 0xcc, 0x07, 0x2a, 0x06, 0x08, 0xcc, 0x07, 0x10, 0xcd, 0x07, 0x2a, 0x06, 0x08, 0xcd, 0x07, 0x10, 0xce, 0x07, 0x2a, 0x06, 0x08, 0xce, 0x07, 0x10, 0xcf, 0x07, 0x2a, 0x06, 0x08, 0xcf, 0x07, 0x10, 0xd0, 0x07, 0x2a, 0x06, 0x08, 0xd0, 0x07, 0x10, 0xd1, 0x07, 0x2a, 0x06, 0x08, 0xd1, 0x07, 0x10, 0xd2, 0x07, 0x2a, 0x06, 0x08, 0xd2, 0x07, 0x10, 0xd3, 0x07, 0x2a, 0x06, 0x08, 0xd3, 0x07, 0x10, 0xd4, 0x07, 0x2a, 0x06, 0x08, 0xd4, 0x07, 0x10, 0xd5, 0x07, 0x2a, 0x06, 0x08, 0xd5, 0x07, 0x10, 0xd6, 0x07, 0x2a, 0x06, 0x08, 0xd6, 0x07, 0x10, 0xd7, 0x07, 0x2a, 0x06, 0x08, 0xd7, 0x07, 0x10, 0xd8, 0x07, 0x2a, 0x06, 0x08, 0xd8, 0x07, 0x10, 0xd9, 0x07, 0x2a, 0x06, 0x08, 0xd9, 0x07, 0x10, 0xda, 0x07, 0x2a, 0x06, 0x08, 0xdb, 0x07, 0x10, 0xdc, 0x07, 0x2a, 0x06, 0x08, 0xdc, 0x07, 0x10, 0xdd, 0x07, 0x2a, 0x06, 0x08, 0xe8, 0x07, 0x10, 0xe9, 0x07, 0x2a, 0x06, 0x08, 0xe9, 0x07, 0x10, 0xea, 0x07, 0x2a, 0x06, 0x08, 0xea, 0x07, 0x10, 0xeb, 0x07, 0x2a, 0x06, 0x08, 0xeb, 0x07, 0x10, 0xec, 0x07, 0x2a, 0x06, 0x08, 0xec, 0x07, 0x10, 0xed, 0x07, 0x2a, 0x06, 0x08, 0xed, 0x07, 0x10, 0xee, 0x07, 0x2a, 0x06, 0x08, 0xee, 0x07, 0x10, 0xef, 0x07, 0x2a, 0x06, 0x08, 0xef, 0x07, 0x10, 0xf0, 0x07, 0x2a, 0x06, 0x08, 0xf0, 0x07, 0x10, 0xf1, 0x07, 0x2a, 0x06, 0x08, 0xf1, 0x07, 0x10, 0xf2, 0x07, 0x2a, 0x06, 0x08, 0xf2, 0x07, 0x10, 0xf3, 0x07, 0x2a, 0x06, 0x08, 0xf3, 0x07, 0x10, 0xf4, 0x07, 0x2a, 0x06, 0x08, 0xf4, 0x07, 0x10, 0xf5, 0x07, 0x2a, 0x06, 0x08, 0xf5, 0x07, 0x10, 0xf6, 0x07, 0x2a, 0x06, 0x08, 0xf6, 0x07, 0x10, 0xf7, 0x07, 0x2a, 0x06, 0x08, 0xf7, 0x07, 0x10, 0xf8, 0x07, 0x2a, 0x06, 0x08, 0xf8, 0x07, 0x10, 0xf9, 0x07, 0x2a, 0x06, 0x08, 0xf9, 0x07, 0x10, 0xfa, 0x07, 0x2a, 0x06, 0x08, 0xfa, 0x07, 0x10, 0xfb, 0x07, 0x2a, 0x06, 0x08, 0xfb, 0x07, 0x10, 0xfc, 0x07, 0x2a, 0x06, 0x08, 0xfc, 0x07, 0x10, 0xfd, 0x07, 0x2a, 0x06, 0x08, 0xfd, 0x07, 0x10, 0xfe, 0x07, 0x2a, 0x06, 0x08, 0xfe, 0x07, 0x10, 0xff, 0x07, 0x2a, 0x06, 0x08, 0xff, 0x07, 0x10, 0x80, 0x08, 0x2a, 0x06, 0x08, 0x80, 0x08, 0x10, 0x81, 0x08, 0x2a, 0x06, 0x08, 0x81, 0x08, 0x10, 0x82, 0x08, 0x2a, 0x06, 0x08, 0x82, 0x08, 0x10, 0x83, 0x08, 0x2a, 0x06, 0x08, 0x83, 0x08, 0x10, 0x84, 0x08, 0x2a, 0x06, 0x08, 0x84, 0x08, 0x10, 0x85, 0x08, 0x2a, 0x06, 0x08, 0x85, 0x08, 0x10, 0x86, 0x08, 0x2a, 0x06, 0x08, 0x86, 0x08, 0x10, 0x87, 0x08, 0x2a, 0x06, 0x08, 0x87, 0x08, 0x10, 0x88, 0x08, 0x2a, 0x06, 0x08, 0x88, 0x08, 0x10, 0x89, 0x08, 0x2a, 0x06, 0x08, 0x89, 0x08, 0x10, 0x8a, 0x08, 0x2a, 0x06, 0x08, 0x8a, 0x08, 0x10, 0x8b, 0x08, 0x2a, 0x06, 0x08, 0x8b, 0x08, 0x10, 0x8c, 0x08, 0x2a, 0x06, 0x08, 0x8c, 0x08, 0x10, 0x8d, 0x08, 0x2a, 0x06, 0x08, 0x8d, 0x08, 0x10, 0x8e, 0x08, 0x2a, 0x06, 0x08, 0x8e, 0x08, 0x10, 0x8f, 0x08, 0x2a, 0x06, 0x08, 0x8f, 0x08, 0x10, 0x90, 0x08, 0x2a, 0x06, 0x08, 0x90, 0x08, 0x10, 0x91, 0x08, 0x2a, 0x06, 0x08, 0x91, 0x08, 0x10, 0x92, 0x08, 0x2a, 0x06, 0x08, 0x92, 0x08, 0x10, 0x93, 0x08, 0x2a, 0x06, 0x08, 0x93, 0x08, 0x10, 0x94, 0x08, 0x2a, 0x06, 0x08, 0x94, 0x08, 0x10, 0x95, 0x08, 0x2a, 0x06, 0x08, 0x95, 0x08, 0x10, 0x96, 0x08, 0x2a, 0x06, 0x08, 0x96, 0x08, 0x10, 0x97, 0x08, 0x2a, 0x06, 0x08, 0x97, 0x08, 0x10, 0x98, 0x08, 0x2a, 0x06, 0x08, 0x98, 0x08, 0x10, 0x99, 0x08, 0x2a, 0x06, 0x08, 0x99, 0x08, 0x10, 0x9a, 0x08, 0x2a, 0x06, 0x08, 0x9a, 0x08, 0x10, 0x9b, 0x08, 0x2a, 0x06, 0x08, 0x9b, 0x08, 0x10, 0x9c, 0x08, 0x2a, 0x06, 0x08, 0x9c, 0x08, 0x10, 0x9d, 0x08, 0x2a, 0x06, 0x08, 0x9d, 0x08, 0x10, 0x9e, 0x08, 0x2a, 0x06, 0x08, 0x9e, 0x08, 0x10, 0x9f, 0x08, 0x2a, 0x06, 0x08, 0x9f, 0x08, 0x10, 0xa0, 0x08, 0x2a, 0x06, 0x08, 0xa0, 0x08, 0x10, 0xa1, 0x08, 0x2a, 0x06, 0x08, 0xa1, 0x08, 0x10, 0xa2, 0x08, 0x2a, 0x06, 0x08, 0xa2, 0x08, 0x10, 0xa3, 0x08, 0x2a, 0x06, 0x08, 0xb7, 0x08, 0x10, 0xb8, 0x08, 0x2a, 0x06, 0x08, 0xb8, 0x08, 0x10, 0xb9, 0x08, 0x2a, 0x06, 0x08, 0xb9, 0x08, 0x10, 0xba, 0x08, 0x2a, 0x06, 0x08, 0xba, 0x08, 0x10, 0xbb, 0x08, 0x2a, 0x06, 0x08, 0xbb, 0x08, 0x10, 0xbc, 0x08, 0x2a, 0x06, 0x08, 0xbc, 0x08, 0x10, 0xbd, 0x08, 0x2a, 0x06, 0x08, 0xbd, 0x08, 0x10, 0xbe, 0x08, 0x32, 0x71, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x32, 0x35, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xa4, 0xf7, 0xc2, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x39, 0x34, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x37, 0x30, 0x32, 0x35, 0x42, 0x23, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0xf8, 0x01, 0x01, } var ( file_datasets_google_message3_benchmark_message3_1_proto_rawDescOnce sync.Once file_datasets_google_message3_benchmark_message3_1_proto_rawDescData = file_datasets_google_message3_benchmark_message3_1_proto_rawDesc ) func file_datasets_google_message3_benchmark_message3_1_proto_rawDescGZIP() []byte { file_datasets_google_message3_benchmark_message3_1_proto_rawDescOnce.Do(func() { file_datasets_google_message3_benchmark_message3_1_proto_rawDescData = protoimpl.X.CompressGZIP(file_datasets_google_message3_benchmark_message3_1_proto_rawDescData) }) return file_datasets_google_message3_benchmark_message3_1_proto_rawDescData } var file_datasets_google_message3_benchmark_message3_1_proto_msgTypes = make([]protoimpl.MessageInfo, 59) var file_datasets_google_message3_benchmark_message3_1_proto_goTypes = []interface{}{ (*Message34390)(nil), // 0: benchmarks.google_message3.Message34390 (*Message34624)(nil), // 1: benchmarks.google_message3.Message34624 (*Message34791)(nil), // 2: benchmarks.google_message3.Message34791 (*Message35483)(nil), // 3: benchmarks.google_message3.Message35483 (*Message35807)(nil), // 4: benchmarks.google_message3.Message35807 (*Message37487)(nil), // 5: benchmarks.google_message3.Message37487 (*Message13062)(nil), // 6: benchmarks.google_message3.Message13062 (*Message952)(nil), // 7: benchmarks.google_message3.Message952 (*Message36876)(nil), // 8: benchmarks.google_message3.Message36876 (*Message1328)(nil), // 9: benchmarks.google_message3.Message1328 (*Message6850)(nil), // 10: benchmarks.google_message3.Message6850 (*Message6863)(nil), // 11: benchmarks.google_message3.Message6863 (*Message6871)(nil), // 12: benchmarks.google_message3.Message6871 (*Message7547)(nil), // 13: benchmarks.google_message3.Message7547 (*Message7648)(nil), // 14: benchmarks.google_message3.Message7648 (*Message7865)(nil), // 15: benchmarks.google_message3.Message7865 (*Message7928)(nil), // 16: benchmarks.google_message3.Message7928 (*Message7919)(nil), // 17: benchmarks.google_message3.Message7919 (*Message7920)(nil), // 18: benchmarks.google_message3.Message7920 (*Message7921)(nil), // 19: benchmarks.google_message3.Message7921 (*Message8511)(nil), // 20: benchmarks.google_message3.Message8511 (*Message8512)(nil), // 21: benchmarks.google_message3.Message8512 (*Message8513)(nil), // 22: benchmarks.google_message3.Message8513 (*Message8514)(nil), // 23: benchmarks.google_message3.Message8514 (*Message8515)(nil), // 24: benchmarks.google_message3.Message8515 (*Message10320)(nil), // 25: benchmarks.google_message3.Message10320 (*Message10321)(nil), // 26: benchmarks.google_message3.Message10321 (*Message10322)(nil), // 27: benchmarks.google_message3.Message10322 (*Message11988)(nil), // 28: benchmarks.google_message3.Message11988 (*Message12668)(nil), // 29: benchmarks.google_message3.Message12668 (*Message12825)(nil), // 30: benchmarks.google_message3.Message12825 (*Message16478)(nil), // 31: benchmarks.google_message3.Message16478 (*Message16552)(nil), // 32: benchmarks.google_message3.Message16552 (*Message16660)(nil), // 33: benchmarks.google_message3.Message16660 (*Message16727)(nil), // 34: benchmarks.google_message3.Message16727 (*Message16725)(nil), // 35: benchmarks.google_message3.Message16725 (*Message17726)(nil), // 36: benchmarks.google_message3.Message17726 (*Message17782)(nil), // 37: benchmarks.google_message3.Message17782 (*Message17783)(nil), // 38: benchmarks.google_message3.Message17783 (*Message16945)(nil), // 39: benchmarks.google_message3.Message16945 (*Message34791_Message34792)(nil), // 40: benchmarks.google_message3.Message34791.Message34792 (*Message36876_Message36877)(nil), // 41: benchmarks.google_message3.Message36876.Message36877 (*Message36876_Message36878)(nil), // 42: benchmarks.google_message3.Message36876.Message36878 (*Message36876_Message36879)(nil), // 43: benchmarks.google_message3.Message36876.Message36879 (*Message36876_Message36880)(nil), // 44: benchmarks.google_message3.Message36876.Message36880 (*Message36876_Message36881)(nil), // 45: benchmarks.google_message3.Message36876.Message36881 (*Message36876_Message36882)(nil), // 46: benchmarks.google_message3.Message36876.Message36882 (*Message36876_Message36883)(nil), // 47: benchmarks.google_message3.Message36876.Message36883 (*Message36876_Message36884)(nil), // 48: benchmarks.google_message3.Message36876.Message36884 (*Message36876_Message36885)(nil), // 49: benchmarks.google_message3.Message36876.Message36885 (*Message36876_Message36886)(nil), // 50: benchmarks.google_message3.Message36876.Message36886 (*Message36876_Message36887)(nil), // 51: benchmarks.google_message3.Message36876.Message36887 (*Message36876_Message36888)(nil), // 52: benchmarks.google_message3.Message36876.Message36888 (*Message36876_Message36889)(nil), // 53: benchmarks.google_message3.Message36876.Message36889 (*Message36876_Message36910)(nil), // 54: benchmarks.google_message3.Message36876.Message36910 (*Message36876_Message36911)(nil), // 55: benchmarks.google_message3.Message36876.Message36911 (*Message36876_Message36912)(nil), // 56: benchmarks.google_message3.Message36876.Message36912 (*Message17783_Message17784)(nil), // 57: benchmarks.google_message3.Message17783.Message17784 (*Message17783_Message17785)(nil), // 58: benchmarks.google_message3.Message17783.Message17785 (*Message34387)(nil), // 59: benchmarks.google_message3.Message34387 (*Message34621)(nil), // 60: benchmarks.google_message3.Message34621 (*Message35476)(nil), // 61: benchmarks.google_message3.Message35476 (*UnusedEmptyMessage)(nil), // 62: benchmarks.google_message3.UnusedEmptyMessage (*Message949)(nil), // 63: benchmarks.google_message3.Message949 (*Message2356)(nil), // 64: benchmarks.google_message3.Message2356 (*Message7029)(nil), // 65: benchmarks.google_message3.Message7029 (*Message35573)(nil), // 66: benchmarks.google_message3.Message35573 (*Message4144)(nil), // 67: benchmarks.google_message3.Message4144 (*Message18921)(nil), // 68: benchmarks.google_message3.Message18921 (*Message36858)(nil), // 69: benchmarks.google_message3.Message36858 (*Message18831)(nil), // 70: benchmarks.google_message3.Message18831 (*Message18283)(nil), // 71: benchmarks.google_message3.Message18283 (*Message0)(nil), // 72: benchmarks.google_message3.Message0 (*Message36869)(nil), // 73: benchmarks.google_message3.Message36869 (UnusedEnum)(0), // 74: benchmarks.google_message3.UnusedEnum (*Message13090)(nil), // 75: benchmarks.google_message3.Message13090 (*Message10155)(nil), // 76: benchmarks.google_message3.Message10155 (*Message11874)(nil), // 77: benchmarks.google_message3.Message11874 (*Message35546)(nil), // 78: benchmarks.google_message3.Message35546 (*Message19255)(nil), // 79: benchmarks.google_message3.Message19255 (*Message33968)(nil), // 80: benchmarks.google_message3.Message33968 (*Message6644)(nil), // 81: benchmarks.google_message3.Message6644 (Enum6858)(0), // 82: benchmarks.google_message3.Enum6858 (*Message6773)(nil), // 83: benchmarks.google_message3.Message6773 (Enum6815)(0), // 84: benchmarks.google_message3.Enum6815 (Enum6822)(0), // 85: benchmarks.google_message3.Enum6822 (*Message3886)(nil), // 86: benchmarks.google_message3.Message3886 (*Message6743)(nil), // 87: benchmarks.google_message3.Message6743 (*Message8224)(nil), // 88: benchmarks.google_message3.Message8224 (*Message8301)(nil), // 89: benchmarks.google_message3.Message8301 (*Message8302)(nil), // 90: benchmarks.google_message3.Message8302 (*Message8392)(nil), // 91: benchmarks.google_message3.Message8392 (*Message8130)(nil), // 92: benchmarks.google_message3.Message8130 (*Message8479)(nil), // 93: benchmarks.google_message3.Message8479 (*Message8478)(nil), // 94: benchmarks.google_message3.Message8478 (Enum10335)(0), // 95: benchmarks.google_message3.Enum10335 (*Message10319)(nil), // 96: benchmarks.google_message3.Message10319 (Enum10337)(0), // 97: benchmarks.google_message3.Enum10337 (*Message4016)(nil), // 98: benchmarks.google_message3.Message4016 (*Message12669)(nil), // 99: benchmarks.google_message3.Message12669 (*Message12818)(nil), // 100: benchmarks.google_message3.Message12818 (*Message12819)(nil), // 101: benchmarks.google_message3.Message12819 (*Message12820)(nil), // 102: benchmarks.google_message3.Message12820 (*Message12821)(nil), // 103: benchmarks.google_message3.Message12821 (*Message16479)(nil), // 104: benchmarks.google_message3.Message16479 (Enum16553)(0), // 105: benchmarks.google_message3.Enum16553 (Enum16728)(0), // 106: benchmarks.google_message3.Enum16728 (Enum16732)(0), // 107: benchmarks.google_message3.Enum16732 (Enum16738)(0), // 108: benchmarks.google_message3.Enum16738 (*Message16722)(nil), // 109: benchmarks.google_message3.Message16722 (Enum16698)(0), // 110: benchmarks.google_message3.Enum16698 (*Message16724)(nil), // 111: benchmarks.google_message3.Message16724 (*Message17728)(nil), // 112: benchmarks.google_message3.Message17728 (*Message13174)(nil), // 113: benchmarks.google_message3.Message13174 (*Message13169)(nil), // 114: benchmarks.google_message3.Message13169 (Enum36890)(0), // 115: benchmarks.google_message3.Enum36890 (*Message35538)(nil), // 116: benchmarks.google_message3.Message35538 (*Message35540)(nil), // 117: benchmarks.google_message3.Message35540 (*Message35542)(nil), // 118: benchmarks.google_message3.Message35542 (*Message3901)(nil), // 119: benchmarks.google_message3.Message3901 } var file_datasets_google_message3_benchmark_message3_1_proto_depIdxs = []int32{ 59, // 0: benchmarks.google_message3.Message34390.field34452:type_name -> benchmarks.google_message3.Message34387 60, // 1: benchmarks.google_message3.Message34624.field34683:type_name -> benchmarks.google_message3.Message34621 60, // 2: benchmarks.google_message3.Message34624.field34684:type_name -> benchmarks.google_message3.Message34621 40, // 3: benchmarks.google_message3.Message34791.message34792:type_name -> benchmarks.google_message3.Message34791.Message34792 61, // 4: benchmarks.google_message3.Message35483.field35503:type_name -> benchmarks.google_message3.Message35476 62, // 5: benchmarks.google_message3.Message35483.field35504:type_name -> benchmarks.google_message3.UnusedEmptyMessage 63, // 6: benchmarks.google_message3.Message952.field963:type_name -> benchmarks.google_message3.Message949 64, // 7: benchmarks.google_message3.Message36876.field36980:type_name -> benchmarks.google_message3.Message2356 41, // 8: benchmarks.google_message3.Message36876.message36877:type_name -> benchmarks.google_message3.Message36876.Message36877 42, // 9: benchmarks.google_message3.Message36876.message36878:type_name -> benchmarks.google_message3.Message36876.Message36878 43, // 10: benchmarks.google_message3.Message36876.message36879:type_name -> benchmarks.google_message3.Message36876.Message36879 62, // 11: benchmarks.google_message3.Message36876.field36984:type_name -> benchmarks.google_message3.UnusedEmptyMessage 44, // 12: benchmarks.google_message3.Message36876.message36880:type_name -> benchmarks.google_message3.Message36876.Message36880 62, // 13: benchmarks.google_message3.Message36876.field36988:type_name -> benchmarks.google_message3.UnusedEmptyMessage 65, // 14: benchmarks.google_message3.Message36876.field36989:type_name -> benchmarks.google_message3.Message7029 66, // 15: benchmarks.google_message3.Message36876.field36990:type_name -> benchmarks.google_message3.Message35573 62, // 16: benchmarks.google_message3.Message36876.field36991:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 17: benchmarks.google_message3.Message36876.field36992:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 18: benchmarks.google_message3.Message36876.field36997:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 19: benchmarks.google_message3.Message36876.field37000:type_name -> benchmarks.google_message3.UnusedEmptyMessage 45, // 20: benchmarks.google_message3.Message36876.message36881:type_name -> benchmarks.google_message3.Message36876.Message36881 67, // 21: benchmarks.google_message3.Message36876.field37002:type_name -> benchmarks.google_message3.Message4144 46, // 22: benchmarks.google_message3.Message36876.message36882:type_name -> benchmarks.google_message3.Message36876.Message36882 62, // 23: benchmarks.google_message3.Message36876.field37004:type_name -> benchmarks.google_message3.UnusedEmptyMessage 68, // 24: benchmarks.google_message3.Message36876.field37005:type_name -> benchmarks.google_message3.Message18921 69, // 25: benchmarks.google_message3.Message36876.field37006:type_name -> benchmarks.google_message3.Message36858 70, // 26: benchmarks.google_message3.Message36876.field37007:type_name -> benchmarks.google_message3.Message18831 62, // 27: benchmarks.google_message3.Message36876.field37008:type_name -> benchmarks.google_message3.UnusedEmptyMessage 71, // 28: benchmarks.google_message3.Message36876.field37009:type_name -> benchmarks.google_message3.Message18283 72, // 29: benchmarks.google_message3.Message36876.field37012:type_name -> benchmarks.google_message3.Message0 72, // 30: benchmarks.google_message3.Message36876.field37013:type_name -> benchmarks.google_message3.Message0 62, // 31: benchmarks.google_message3.Message36876.field37014:type_name -> benchmarks.google_message3.UnusedEmptyMessage 73, // 32: benchmarks.google_message3.Message36876.field37015:type_name -> benchmarks.google_message3.Message36869 47, // 33: benchmarks.google_message3.Message36876.message36883:type_name -> benchmarks.google_message3.Message36876.Message36883 48, // 34: benchmarks.google_message3.Message36876.message36884:type_name -> benchmarks.google_message3.Message36876.Message36884 49, // 35: benchmarks.google_message3.Message36876.message36885:type_name -> benchmarks.google_message3.Message36876.Message36885 50, // 36: benchmarks.google_message3.Message36876.message36886:type_name -> benchmarks.google_message3.Message36876.Message36886 74, // 37: benchmarks.google_message3.Message36876.field37020:type_name -> benchmarks.google_message3.UnusedEnum 62, // 38: benchmarks.google_message3.Message36876.field37022:type_name -> benchmarks.google_message3.UnusedEmptyMessage 75, // 39: benchmarks.google_message3.Message36876.field37023:type_name -> benchmarks.google_message3.Message13090 51, // 40: benchmarks.google_message3.Message36876.message36887:type_name -> benchmarks.google_message3.Message36876.Message36887 76, // 41: benchmarks.google_message3.Message36876.field37025:type_name -> benchmarks.google_message3.Message10155 77, // 42: benchmarks.google_message3.Message36876.field37026:type_name -> benchmarks.google_message3.Message11874 62, // 43: benchmarks.google_message3.Message36876.field37029:type_name -> benchmarks.google_message3.UnusedEmptyMessage 78, // 44: benchmarks.google_message3.Message36876.field37030:type_name -> benchmarks.google_message3.Message35546 52, // 45: benchmarks.google_message3.Message36876.message36888:type_name -> benchmarks.google_message3.Message36876.Message36888 79, // 46: benchmarks.google_message3.Message36876.field37032:type_name -> benchmarks.google_message3.Message19255 80, // 47: benchmarks.google_message3.Message36876.field37033:type_name -> benchmarks.google_message3.Message33968 62, // 48: benchmarks.google_message3.Message36876.field37035:type_name -> benchmarks.google_message3.UnusedEmptyMessage 81, // 49: benchmarks.google_message3.Message36876.field37036:type_name -> benchmarks.google_message3.Message6644 53, // 50: benchmarks.google_message3.Message36876.message36889:type_name -> benchmarks.google_message3.Message36876.Message36889 54, // 51: benchmarks.google_message3.Message36876.message36910:type_name -> benchmarks.google_message3.Message36876.Message36910 55, // 52: benchmarks.google_message3.Message36876.message36911:type_name -> benchmarks.google_message3.Message36876.Message36911 56, // 53: benchmarks.google_message3.Message36876.message36912:type_name -> benchmarks.google_message3.Message36876.Message36912 62, // 54: benchmarks.google_message3.Message36876.field37042:type_name -> benchmarks.google_message3.UnusedEmptyMessage 82, // 55: benchmarks.google_message3.Message6863.field6931:type_name -> benchmarks.google_message3.Enum6858 82, // 56: benchmarks.google_message3.Message6863.field6932:type_name -> benchmarks.google_message3.Enum6858 74, // 57: benchmarks.google_message3.Message6863.field6933:type_name -> benchmarks.google_message3.UnusedEnum 83, // 58: benchmarks.google_message3.Message6863.field6935:type_name -> benchmarks.google_message3.Message6773 84, // 59: benchmarks.google_message3.Message6863.field6938:type_name -> benchmarks.google_message3.Enum6815 85, // 60: benchmarks.google_message3.Message6863.field6941:type_name -> benchmarks.google_message3.Enum6822 62, // 61: benchmarks.google_message3.Message6863.field6950:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 62: benchmarks.google_message3.Message6863.field6955:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 63: benchmarks.google_message3.Message6863.field6956:type_name -> benchmarks.google_message3.UnusedEmptyMessage 86, // 64: benchmarks.google_message3.Message6863.field6957:type_name -> benchmarks.google_message3.Message3886 87, // 65: benchmarks.google_message3.Message6863.field6960:type_name -> benchmarks.google_message3.Message6743 62, // 66: benchmarks.google_message3.Message6863.field6961:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 67: benchmarks.google_message3.Message6863.field6962:type_name -> benchmarks.google_message3.UnusedEmptyMessage 74, // 68: benchmarks.google_message3.Message7921.field7939:type_name -> benchmarks.google_message3.UnusedEnum 88, // 69: benchmarks.google_message3.Message8511.field8539:type_name -> benchmarks.google_message3.Message8224 89, // 70: benchmarks.google_message3.Message8512.field8544:type_name -> benchmarks.google_message3.Message8301 90, // 71: benchmarks.google_message3.Message8512.field8545:type_name -> benchmarks.google_message3.Message8302 91, // 72: benchmarks.google_message3.Message8513.field8550:type_name -> benchmarks.google_message3.Message8392 92, // 73: benchmarks.google_message3.Message8514.field8557:type_name -> benchmarks.google_message3.Message8130 93, // 74: benchmarks.google_message3.Message8515.field8559:type_name -> benchmarks.google_message3.Message8479 94, // 75: benchmarks.google_message3.Message8515.field8560:type_name -> benchmarks.google_message3.Message8478 95, // 76: benchmarks.google_message3.Message10320.field10347:type_name -> benchmarks.google_message3.Enum10335 96, // 77: benchmarks.google_message3.Message10320.field10348:type_name -> benchmarks.google_message3.Message10319 97, // 78: benchmarks.google_message3.Message10320.field10353:type_name -> benchmarks.google_message3.Enum10337 98, // 79: benchmarks.google_message3.Message10322.field10357:type_name -> benchmarks.google_message3.Message4016 62, // 80: benchmarks.google_message3.Message11988.field12023:type_name -> benchmarks.google_message3.UnusedEmptyMessage 76, // 81: benchmarks.google_message3.Message11988.field12024:type_name -> benchmarks.google_message3.Message10155 99, // 82: benchmarks.google_message3.Message12668.field12677:type_name -> benchmarks.google_message3.Message12669 100, // 83: benchmarks.google_message3.Message12825.field12862:type_name -> benchmarks.google_message3.Message12818 101, // 84: benchmarks.google_message3.Message12825.field12864:type_name -> benchmarks.google_message3.Message12819 102, // 85: benchmarks.google_message3.Message12825.field12865:type_name -> benchmarks.google_message3.Message12820 103, // 86: benchmarks.google_message3.Message12825.field12867:type_name -> benchmarks.google_message3.Message12821 62, // 87: benchmarks.google_message3.Message12825.field12868:type_name -> benchmarks.google_message3.UnusedEmptyMessage 104, // 88: benchmarks.google_message3.Message16478.field16481:type_name -> benchmarks.google_message3.Message16479 105, // 89: benchmarks.google_message3.Message16552.field16567:type_name -> benchmarks.google_message3.Enum16553 106, // 90: benchmarks.google_message3.Message16727.field16782:type_name -> benchmarks.google_message3.Enum16728 107, // 91: benchmarks.google_message3.Message16727.field16789:type_name -> benchmarks.google_message3.Enum16732 108, // 92: benchmarks.google_message3.Message16727.field16793:type_name -> benchmarks.google_message3.Enum16738 109, // 93: benchmarks.google_message3.Message16727.field16795:type_name -> benchmarks.google_message3.Message16722 110, // 94: benchmarks.google_message3.Message16727.field16802:type_name -> benchmarks.google_message3.Enum16698 111, // 95: benchmarks.google_message3.Message16727.field16803:type_name -> benchmarks.google_message3.Message16724 62, // 96: benchmarks.google_message3.Message16727.field16805:type_name -> benchmarks.google_message3.UnusedEmptyMessage 106, // 97: benchmarks.google_message3.Message16725.field16774:type_name -> benchmarks.google_message3.Enum16728 62, // 98: benchmarks.google_message3.Message17726.field17812:type_name -> benchmarks.google_message3.UnusedEmptyMessage 112, // 99: benchmarks.google_message3.Message17726.field17820:type_name -> benchmarks.google_message3.Message17728 112, // 100: benchmarks.google_message3.Message17726.field17821:type_name -> benchmarks.google_message3.Message17728 62, // 101: benchmarks.google_message3.Message17726.field17822:type_name -> benchmarks.google_message3.UnusedEmptyMessage 57, // 102: benchmarks.google_message3.Message17783.message17784:type_name -> benchmarks.google_message3.Message17783.Message17784 58, // 103: benchmarks.google_message3.Message17783.message17785:type_name -> benchmarks.google_message3.Message17783.Message17785 62, // 104: benchmarks.google_message3.Message16945.field16951:type_name -> benchmarks.google_message3.UnusedEmptyMessage 72, // 105: benchmarks.google_message3.Message16945.field16952:type_name -> benchmarks.google_message3.Message0 62, // 106: benchmarks.google_message3.Message16945.field16953:type_name -> benchmarks.google_message3.UnusedEmptyMessage 72, // 107: benchmarks.google_message3.Message16945.field16954:type_name -> benchmarks.google_message3.Message0 62, // 108: benchmarks.google_message3.Message16945.field16960:type_name -> benchmarks.google_message3.UnusedEmptyMessage 72, // 109: benchmarks.google_message3.Message16945.field16961:type_name -> benchmarks.google_message3.Message0 72, // 110: benchmarks.google_message3.Message16945.field16962:type_name -> benchmarks.google_message3.Message0 62, // 111: benchmarks.google_message3.Message16945.field16963:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 112: benchmarks.google_message3.Message16945.field16965:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 113: benchmarks.google_message3.Message16945.field16967:type_name -> benchmarks.google_message3.UnusedEmptyMessage 72, // 114: benchmarks.google_message3.Message16945.field16969:type_name -> benchmarks.google_message3.Message0 62, // 115: benchmarks.google_message3.Message16945.field16973:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 116: benchmarks.google_message3.Message16945.field16974:type_name -> benchmarks.google_message3.UnusedEmptyMessage 72, // 117: benchmarks.google_message3.Message16945.field16977:type_name -> benchmarks.google_message3.Message0 62, // 118: benchmarks.google_message3.Message16945.field16978:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 119: benchmarks.google_message3.Message16945.field16979:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 120: benchmarks.google_message3.Message16945.field16981:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 121: benchmarks.google_message3.Message16945.field16983:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 122: benchmarks.google_message3.Message16945.field16985:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 123: benchmarks.google_message3.Message16945.field16990:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 124: benchmarks.google_message3.Message16945.field16994:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 125: benchmarks.google_message3.Message16945.field17002:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 126: benchmarks.google_message3.Message16945.field17003:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 127: benchmarks.google_message3.Message16945.field17004:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 128: benchmarks.google_message3.Message16945.field17005:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 129: benchmarks.google_message3.Message16945.field17006:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 130: benchmarks.google_message3.Message16945.field17007:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 131: benchmarks.google_message3.Message16945.field17008:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 132: benchmarks.google_message3.Message16945.field17009:type_name -> benchmarks.google_message3.UnusedEmptyMessage 72, // 133: benchmarks.google_message3.Message16945.field17010:type_name -> benchmarks.google_message3.Message0 62, // 134: benchmarks.google_message3.Message16945.field17012:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 135: benchmarks.google_message3.Message16945.field17014:type_name -> benchmarks.google_message3.UnusedEmptyMessage 72, // 136: benchmarks.google_message3.Message16945.field17015:type_name -> benchmarks.google_message3.Message0 72, // 137: benchmarks.google_message3.Message16945.field17023:type_name -> benchmarks.google_message3.Message0 62, // 138: benchmarks.google_message3.Message36876.Message36889.field37101:type_name -> benchmarks.google_message3.UnusedEmptyMessage 113, // 139: benchmarks.google_message3.Message36876.Message36889.field37102:type_name -> benchmarks.google_message3.Message13174 114, // 140: benchmarks.google_message3.Message36876.Message36889.field37103:type_name -> benchmarks.google_message3.Message13169 115, // 141: benchmarks.google_message3.Message36876.Message36889.field37105:type_name -> benchmarks.google_message3.Enum36890 62, // 142: benchmarks.google_message3.Message36876.Message36889.field37108:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 143: benchmarks.google_message3.Message36876.Message36889.field37113:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 144: benchmarks.google_message3.Message36876.Message36889.field37115:type_name -> benchmarks.google_message3.UnusedEmptyMessage 74, // 145: benchmarks.google_message3.Message36876.Message36889.field37116:type_name -> benchmarks.google_message3.UnusedEnum 74, // 146: benchmarks.google_message3.Message36876.Message36889.field37117:type_name -> benchmarks.google_message3.UnusedEnum 62, // 147: benchmarks.google_message3.Message36876.Message36911.field37121:type_name -> benchmarks.google_message3.UnusedEmptyMessage 116, // 148: benchmarks.google_message3.Message36876.Message36911.field37122:type_name -> benchmarks.google_message3.Message35538 117, // 149: benchmarks.google_message3.Message36876.Message36911.field37123:type_name -> benchmarks.google_message3.Message35540 118, // 150: benchmarks.google_message3.Message36876.Message36911.field37124:type_name -> benchmarks.google_message3.Message35542 119, // 151: benchmarks.google_message3.Message36876.Message36912.field37125:type_name -> benchmarks.google_message3.Message3901 119, // 152: benchmarks.google_message3.Message36876.Message36912.field37126:type_name -> benchmarks.google_message3.Message3901 38, // 153: benchmarks.google_message3.Message17783.Message17785.field18170:type_name -> benchmarks.google_message3.Message17783 72, // 154: benchmarks.google_message3.Message34390.field34453:extendee -> benchmarks.google_message3.Message0 72, // 155: benchmarks.google_message3.Message34624.field34685:extendee -> benchmarks.google_message3.Message0 72, // 156: benchmarks.google_message3.Message34791.field34807:extendee -> benchmarks.google_message3.Message0 72, // 157: benchmarks.google_message3.Message35483.field35505:extendee -> benchmarks.google_message3.Message0 72, // 158: benchmarks.google_message3.Message35807.field35818:extendee -> benchmarks.google_message3.Message0 72, // 159: benchmarks.google_message3.Message16945.field17025:extendee -> benchmarks.google_message3.Message0 0, // 160: benchmarks.google_message3.Message34390.field34453:type_name -> benchmarks.google_message3.Message34390 1, // 161: benchmarks.google_message3.Message34624.field34685:type_name -> benchmarks.google_message3.Message34624 2, // 162: benchmarks.google_message3.Message34791.field34807:type_name -> benchmarks.google_message3.Message34791 3, // 163: benchmarks.google_message3.Message35483.field35505:type_name -> benchmarks.google_message3.Message35483 4, // 164: benchmarks.google_message3.Message35807.field35818:type_name -> benchmarks.google_message3.Message35807 39, // 165: benchmarks.google_message3.Message16945.field17025:type_name -> benchmarks.google_message3.Message16945 166, // [166:166] is the sub-list for method output_type 166, // [166:166] is the sub-list for method input_type 160, // [160:166] is the sub-list for extension type_name 154, // [154:160] is the sub-list for extension extendee 0, // [0:154] is the sub-list for field type_name } func init() { file_datasets_google_message3_benchmark_message3_1_proto_init() } func file_datasets_google_message3_benchmark_message3_1_proto_init() { if File_datasets_google_message3_benchmark_message3_1_proto != nil { return } file_datasets_google_message3_benchmark_message3_2_proto_init() file_datasets_google_message3_benchmark_message3_3_proto_init() file_datasets_google_message3_benchmark_message3_5_proto_init() file_datasets_google_message3_benchmark_message3_7_proto_init() file_datasets_google_message3_benchmark_message3_8_proto_init() if !protoimpl.UnsafeEnabled { file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message34390); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message34624); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message34791); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message35483); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message35807); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message37487); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message13062); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message952); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message36876); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message1328); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6850); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6863); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6871); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7547); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7648); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7865); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7928); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7919); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7920); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7921); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8511); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8512); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8513); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8514); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8515); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10320); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10321); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10322); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message11988); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12668); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12825); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message16478); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message16552); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message16660); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message16727); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message16725); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message17726); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message17782); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message17783); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message16945); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message34791_Message34792); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message36876_Message36877); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message36876_Message36878); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message36876_Message36879); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message36876_Message36880); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message36876_Message36881); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message36876_Message36882); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message36876_Message36883); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message36876_Message36884); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message36876_Message36885); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message36876_Message36886); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message36876_Message36887); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message36876_Message36888); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message36876_Message36889); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message36876_Message36910); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message36876_Message36911); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message36876_Message36912); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message17783_Message17784); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_1_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message17783_Message17785); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_datasets_google_message3_benchmark_message3_1_proto_rawDesc, NumEnums: 0, NumMessages: 59, NumExtensions: 6, NumServices: 0, }, GoTypes: file_datasets_google_message3_benchmark_message3_1_proto_goTypes, DependencyIndexes: file_datasets_google_message3_benchmark_message3_1_proto_depIdxs, MessageInfos: file_datasets_google_message3_benchmark_message3_1_proto_msgTypes, ExtensionInfos: file_datasets_google_message3_benchmark_message3_1_proto_extTypes, }.Build() File_datasets_google_message3_benchmark_message3_1_proto = out.File file_datasets_google_message3_benchmark_message3_1_proto_rawDesc = nil file_datasets_google_message3_benchmark_message3_1_proto_goTypes = nil file_datasets_google_message3_benchmark_message3_1_proto_depIdxs = nil } benchmark_message3_2.pb.go000066400000000000000000010347651411250152500360410ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/datasets/google_message3// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // LINT: ALLOW_GROUPS // Code generated by protoc-gen-go. DO NOT EDIT. // source: datasets/google_message3/benchmark_message3_2.proto package google_message3 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Message22853 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field22869 *Enum22854 `protobuf:"varint,1,opt,name=field22869,enum=benchmarks.google_message3.Enum22854" json:"field22869,omitempty"` Field22870 []uint32 `protobuf:"varint,2,rep,packed,name=field22870" json:"field22870,omitempty"` Field22871 []float32 `protobuf:"fixed32,3,rep,packed,name=field22871" json:"field22871,omitempty"` Field22872 []float32 `protobuf:"fixed32,5,rep,packed,name=field22872" json:"field22872,omitempty"` Field22873 *UnusedEmptyMessage `protobuf:"bytes,4,opt,name=field22873" json:"field22873,omitempty"` } func (x *Message22853) Reset() { *x = Message22853{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message22853) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message22853) ProtoMessage() {} func (x *Message22853) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message22853.ProtoReflect.Descriptor instead. func (*Message22853) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{0} } func (x *Message22853) GetField22869() Enum22854 { if x != nil && x.Field22869 != nil { return *x.Field22869 } return Enum22854_ENUM_VALUE22855 } func (x *Message22853) GetField22870() []uint32 { if x != nil { return x.Field22870 } return nil } func (x *Message22853) GetField22871() []float32 { if x != nil { return x.Field22871 } return nil } func (x *Message22853) GetField22872() []float32 { if x != nil { return x.Field22872 } return nil } func (x *Message22853) GetField22873() *UnusedEmptyMessage { if x != nil { return x.Field22873 } return nil } type Message24345 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field24533 *string `protobuf:"bytes,1,opt,name=field24533" json:"field24533,omitempty"` Field24534 *UnusedEnum `protobuf:"varint,22,opt,name=field24534,enum=benchmarks.google_message3.UnusedEnum" json:"field24534,omitempty"` Field24535 *Message24346 `protobuf:"bytes,2,opt,name=field24535" json:"field24535,omitempty"` Field24536 *string `protobuf:"bytes,3,opt,name=field24536" json:"field24536,omitempty"` Field24537 *string `protobuf:"bytes,4,opt,name=field24537" json:"field24537,omitempty"` Field24538 *UnusedEnum `protobuf:"varint,23,opt,name=field24538,enum=benchmarks.google_message3.UnusedEnum" json:"field24538,omitempty"` Field24539 *string `protobuf:"bytes,5,opt,name=field24539" json:"field24539,omitempty"` Field24540 *string `protobuf:"bytes,6,req,name=field24540" json:"field24540,omitempty"` Field24541 *string `protobuf:"bytes,7,opt,name=field24541" json:"field24541,omitempty"` Field24542 *string `protobuf:"bytes,8,opt,name=field24542" json:"field24542,omitempty"` Field24543 *Message24316 `protobuf:"bytes,9,opt,name=field24543" json:"field24543,omitempty"` Field24544 *Message24376 `protobuf:"bytes,10,opt,name=field24544" json:"field24544,omitempty"` Field24545 *string `protobuf:"bytes,11,opt,name=field24545" json:"field24545,omitempty"` Field24546 *string `protobuf:"bytes,19,opt,name=field24546" json:"field24546,omitempty"` Field24547 *string `protobuf:"bytes,20,opt,name=field24547" json:"field24547,omitempty"` Field24548 *string `protobuf:"bytes,21,opt,name=field24548" json:"field24548,omitempty"` Field24549 *UnusedEmptyMessage `protobuf:"bytes,12,opt,name=field24549" json:"field24549,omitempty"` Field24550 *UnusedEmptyMessage `protobuf:"bytes,13,opt,name=field24550" json:"field24550,omitempty"` Field24551 []string `protobuf:"bytes,14,rep,name=field24551" json:"field24551,omitempty"` Field24552 *string `protobuf:"bytes,15,opt,name=field24552" json:"field24552,omitempty"` Field24553 *int32 `protobuf:"varint,18,opt,name=field24553" json:"field24553,omitempty"` Field24554 *Message24379 `protobuf:"bytes,16,opt,name=field24554" json:"field24554,omitempty"` Field24555 *string `protobuf:"bytes,17,opt,name=field24555" json:"field24555,omitempty"` Field24556 []*Message24356 `protobuf:"bytes,24,rep,name=field24556" json:"field24556,omitempty"` Field24557 []*Message24366 `protobuf:"bytes,25,rep,name=field24557" json:"field24557,omitempty"` } func (x *Message24345) Reset() { *x = Message24345{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message24345) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message24345) ProtoMessage() {} func (x *Message24345) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message24345.ProtoReflect.Descriptor instead. func (*Message24345) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{1} } func (x *Message24345) GetField24533() string { if x != nil && x.Field24533 != nil { return *x.Field24533 } return "" } func (x *Message24345) GetField24534() UnusedEnum { if x != nil && x.Field24534 != nil { return *x.Field24534 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message24345) GetField24535() *Message24346 { if x != nil { return x.Field24535 } return nil } func (x *Message24345) GetField24536() string { if x != nil && x.Field24536 != nil { return *x.Field24536 } return "" } func (x *Message24345) GetField24537() string { if x != nil && x.Field24537 != nil { return *x.Field24537 } return "" } func (x *Message24345) GetField24538() UnusedEnum { if x != nil && x.Field24538 != nil { return *x.Field24538 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message24345) GetField24539() string { if x != nil && x.Field24539 != nil { return *x.Field24539 } return "" } func (x *Message24345) GetField24540() string { if x != nil && x.Field24540 != nil { return *x.Field24540 } return "" } func (x *Message24345) GetField24541() string { if x != nil && x.Field24541 != nil { return *x.Field24541 } return "" } func (x *Message24345) GetField24542() string { if x != nil && x.Field24542 != nil { return *x.Field24542 } return "" } func (x *Message24345) GetField24543() *Message24316 { if x != nil { return x.Field24543 } return nil } func (x *Message24345) GetField24544() *Message24376 { if x != nil { return x.Field24544 } return nil } func (x *Message24345) GetField24545() string { if x != nil && x.Field24545 != nil { return *x.Field24545 } return "" } func (x *Message24345) GetField24546() string { if x != nil && x.Field24546 != nil { return *x.Field24546 } return "" } func (x *Message24345) GetField24547() string { if x != nil && x.Field24547 != nil { return *x.Field24547 } return "" } func (x *Message24345) GetField24548() string { if x != nil && x.Field24548 != nil { return *x.Field24548 } return "" } func (x *Message24345) GetField24549() *UnusedEmptyMessage { if x != nil { return x.Field24549 } return nil } func (x *Message24345) GetField24550() *UnusedEmptyMessage { if x != nil { return x.Field24550 } return nil } func (x *Message24345) GetField24551() []string { if x != nil { return x.Field24551 } return nil } func (x *Message24345) GetField24552() string { if x != nil && x.Field24552 != nil { return *x.Field24552 } return "" } func (x *Message24345) GetField24553() int32 { if x != nil && x.Field24553 != nil { return *x.Field24553 } return 0 } func (x *Message24345) GetField24554() *Message24379 { if x != nil { return x.Field24554 } return nil } func (x *Message24345) GetField24555() string { if x != nil && x.Field24555 != nil { return *x.Field24555 } return "" } func (x *Message24345) GetField24556() []*Message24356 { if x != nil { return x.Field24556 } return nil } func (x *Message24345) GetField24557() []*Message24366 { if x != nil { return x.Field24557 } return nil } type Message24403 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field24681 *Message24401 `protobuf:"bytes,1,opt,name=field24681" json:"field24681,omitempty"` Field24682 *Message24402 `protobuf:"bytes,2,opt,name=field24682" json:"field24682,omitempty"` } func (x *Message24403) Reset() { *x = Message24403{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message24403) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message24403) ProtoMessage() {} func (x *Message24403) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message24403.ProtoReflect.Descriptor instead. func (*Message24403) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{2} } func (x *Message24403) GetField24681() *Message24401 { if x != nil { return x.Field24681 } return nil } func (x *Message24403) GetField24682() *Message24402 { if x != nil { return x.Field24682 } return nil } type Message24391 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field24631 *string `protobuf:"bytes,1,opt,name=field24631" json:"field24631,omitempty"` Field24632 *string `protobuf:"bytes,2,opt,name=field24632" json:"field24632,omitempty"` Field24633 []string `protobuf:"bytes,3,rep,name=field24633" json:"field24633,omitempty"` Field24634 *string `protobuf:"bytes,4,opt,name=field24634" json:"field24634,omitempty"` Field24635 []string `protobuf:"bytes,5,rep,name=field24635" json:"field24635,omitempty"` Field24636 []string `protobuf:"bytes,16,rep,name=field24636" json:"field24636,omitempty"` Field24637 *string `protobuf:"bytes,17,opt,name=field24637" json:"field24637,omitempty"` Field24638 *UnusedEmptyMessage `protobuf:"bytes,25,opt,name=field24638" json:"field24638,omitempty"` Field24639 *string `protobuf:"bytes,7,opt,name=field24639" json:"field24639,omitempty"` Field24640 *string `protobuf:"bytes,18,opt,name=field24640" json:"field24640,omitempty"` Field24641 *string `protobuf:"bytes,19,opt,name=field24641" json:"field24641,omitempty"` Field24642 *string `protobuf:"bytes,20,opt,name=field24642" json:"field24642,omitempty"` Field24643 *int32 `protobuf:"varint,24,opt,name=field24643" json:"field24643,omitempty"` Field24644 *Message24379 `protobuf:"bytes,8,opt,name=field24644" json:"field24644,omitempty"` Field24645 []*UnusedEmptyMessage `protobuf:"bytes,9,rep,name=field24645" json:"field24645,omitempty"` Field24646 *UnusedEmptyMessage `protobuf:"bytes,10,opt,name=field24646" json:"field24646,omitempty"` Field24647 *UnusedEmptyMessage `protobuf:"bytes,11,opt,name=field24647" json:"field24647,omitempty"` Field24648 *UnusedEmptyMessage `protobuf:"bytes,12,opt,name=field24648" json:"field24648,omitempty"` Field24649 []*UnusedEmptyMessage `protobuf:"bytes,13,rep,name=field24649" json:"field24649,omitempty"` Field24650 *UnusedEmptyMessage `protobuf:"bytes,14,opt,name=field24650" json:"field24650,omitempty"` Field24651 *string `protobuf:"bytes,21,opt,name=field24651" json:"field24651,omitempty"` Field24652 *int32 `protobuf:"varint,22,opt,name=field24652" json:"field24652,omitempty"` Field24653 *int32 `protobuf:"varint,23,opt,name=field24653" json:"field24653,omitempty"` Field24654 []string `protobuf:"bytes,15,rep,name=field24654" json:"field24654,omitempty"` Field24655 []string `protobuf:"bytes,6,rep,name=field24655" json:"field24655,omitempty"` } func (x *Message24391) Reset() { *x = Message24391{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message24391) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message24391) ProtoMessage() {} func (x *Message24391) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message24391.ProtoReflect.Descriptor instead. func (*Message24391) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{3} } func (x *Message24391) GetField24631() string { if x != nil && x.Field24631 != nil { return *x.Field24631 } return "" } func (x *Message24391) GetField24632() string { if x != nil && x.Field24632 != nil { return *x.Field24632 } return "" } func (x *Message24391) GetField24633() []string { if x != nil { return x.Field24633 } return nil } func (x *Message24391) GetField24634() string { if x != nil && x.Field24634 != nil { return *x.Field24634 } return "" } func (x *Message24391) GetField24635() []string { if x != nil { return x.Field24635 } return nil } func (x *Message24391) GetField24636() []string { if x != nil { return x.Field24636 } return nil } func (x *Message24391) GetField24637() string { if x != nil && x.Field24637 != nil { return *x.Field24637 } return "" } func (x *Message24391) GetField24638() *UnusedEmptyMessage { if x != nil { return x.Field24638 } return nil } func (x *Message24391) GetField24639() string { if x != nil && x.Field24639 != nil { return *x.Field24639 } return "" } func (x *Message24391) GetField24640() string { if x != nil && x.Field24640 != nil { return *x.Field24640 } return "" } func (x *Message24391) GetField24641() string { if x != nil && x.Field24641 != nil { return *x.Field24641 } return "" } func (x *Message24391) GetField24642() string { if x != nil && x.Field24642 != nil { return *x.Field24642 } return "" } func (x *Message24391) GetField24643() int32 { if x != nil && x.Field24643 != nil { return *x.Field24643 } return 0 } func (x *Message24391) GetField24644() *Message24379 { if x != nil { return x.Field24644 } return nil } func (x *Message24391) GetField24645() []*UnusedEmptyMessage { if x != nil { return x.Field24645 } return nil } func (x *Message24391) GetField24646() *UnusedEmptyMessage { if x != nil { return x.Field24646 } return nil } func (x *Message24391) GetField24647() *UnusedEmptyMessage { if x != nil { return x.Field24647 } return nil } func (x *Message24391) GetField24648() *UnusedEmptyMessage { if x != nil { return x.Field24648 } return nil } func (x *Message24391) GetField24649() []*UnusedEmptyMessage { if x != nil { return x.Field24649 } return nil } func (x *Message24391) GetField24650() *UnusedEmptyMessage { if x != nil { return x.Field24650 } return nil } func (x *Message24391) GetField24651() string { if x != nil && x.Field24651 != nil { return *x.Field24651 } return "" } func (x *Message24391) GetField24652() int32 { if x != nil && x.Field24652 != nil { return *x.Field24652 } return 0 } func (x *Message24391) GetField24653() int32 { if x != nil && x.Field24653 != nil { return *x.Field24653 } return 0 } func (x *Message24391) GetField24654() []string { if x != nil { return x.Field24654 } return nil } func (x *Message24391) GetField24655() []string { if x != nil { return x.Field24655 } return nil } type Message27454 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message27454) Reset() { *x = Message27454{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message27454) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message27454) ProtoMessage() {} func (x *Message27454) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message27454.ProtoReflect.Descriptor instead. func (*Message27454) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{4} } type Message27357 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field27410 *string `protobuf:"bytes,1,opt,name=field27410" json:"field27410,omitempty"` Field27411 *float32 `protobuf:"fixed32,2,opt,name=field27411" json:"field27411,omitempty"` Field27412 *string `protobuf:"bytes,3,opt,name=field27412" json:"field27412,omitempty"` Field27413 *bool `protobuf:"varint,4,opt,name=field27413" json:"field27413,omitempty"` Field27414 *bool `protobuf:"varint,5,opt,name=field27414" json:"field27414,omitempty"` } func (x *Message27357) Reset() { *x = Message27357{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message27357) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message27357) ProtoMessage() {} func (x *Message27357) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message27357.ProtoReflect.Descriptor instead. func (*Message27357) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{5} } func (x *Message27357) GetField27410() string { if x != nil && x.Field27410 != nil { return *x.Field27410 } return "" } func (x *Message27357) GetField27411() float32 { if x != nil && x.Field27411 != nil { return *x.Field27411 } return 0 } func (x *Message27357) GetField27412() string { if x != nil && x.Field27412 != nil { return *x.Field27412 } return "" } func (x *Message27357) GetField27413() bool { if x != nil && x.Field27413 != nil { return *x.Field27413 } return false } func (x *Message27357) GetField27414() bool { if x != nil && x.Field27414 != nil { return *x.Field27414 } return false } type Message27360 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field27426 *Message27358 `protobuf:"bytes,1,opt,name=field27426" json:"field27426,omitempty"` Field27427 *Enum27361 `protobuf:"varint,2,opt,name=field27427,enum=benchmarks.google_message3.Enum27361" json:"field27427,omitempty"` Field27428 *Message27358 `protobuf:"bytes,3,opt,name=field27428" json:"field27428,omitempty"` Field27429 []*UnusedEmptyMessage `protobuf:"bytes,4,rep,name=field27429" json:"field27429,omitempty"` } func (x *Message27360) Reset() { *x = Message27360{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message27360) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message27360) ProtoMessage() {} func (x *Message27360) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message27360.ProtoReflect.Descriptor instead. func (*Message27360) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{6} } func (x *Message27360) GetField27426() *Message27358 { if x != nil { return x.Field27426 } return nil } func (x *Message27360) GetField27427() Enum27361 { if x != nil && x.Field27427 != nil { return *x.Field27427 } return Enum27361_ENUM_VALUE27362 } func (x *Message27360) GetField27428() *Message27358 { if x != nil { return x.Field27428 } return nil } func (x *Message27360) GetField27429() []*UnusedEmptyMessage { if x != nil { return x.Field27429 } return nil } type Message34387 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field34446 *string `protobuf:"bytes,1,opt,name=field34446" json:"field34446,omitempty"` Field34447 []*Message34381 `protobuf:"bytes,2,rep,name=field34447" json:"field34447,omitempty"` Field34448 *UnusedEnum `protobuf:"varint,3,opt,name=field34448,enum=benchmarks.google_message3.UnusedEnum" json:"field34448,omitempty"` Field34449 *Enum34388 `protobuf:"varint,4,opt,name=field34449,enum=benchmarks.google_message3.Enum34388" json:"field34449,omitempty"` Field34450 *int64 `protobuf:"varint,5,opt,name=field34450" json:"field34450,omitempty"` } func (x *Message34387) Reset() { *x = Message34387{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message34387) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message34387) ProtoMessage() {} func (x *Message34387) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message34387.ProtoReflect.Descriptor instead. func (*Message34387) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{7} } func (x *Message34387) GetField34446() string { if x != nil && x.Field34446 != nil { return *x.Field34446 } return "" } func (x *Message34387) GetField34447() []*Message34381 { if x != nil { return x.Field34447 } return nil } func (x *Message34387) GetField34448() UnusedEnum { if x != nil && x.Field34448 != nil { return *x.Field34448 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message34387) GetField34449() Enum34388 { if x != nil && x.Field34449 != nil { return *x.Field34449 } return Enum34388_ENUM_VALUE34389 } func (x *Message34387) GetField34450() int64 { if x != nil && x.Field34450 != nil { return *x.Field34450 } return 0 } type Message34621 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field34651 *float64 `protobuf:"fixed64,1,opt,name=field34651" json:"field34651,omitempty"` Field34652 *float64 `protobuf:"fixed64,2,opt,name=field34652" json:"field34652,omitempty"` Field34653 *float64 `protobuf:"fixed64,3,opt,name=field34653" json:"field34653,omitempty"` Field34654 *float64 `protobuf:"fixed64,4,opt,name=field34654" json:"field34654,omitempty"` Field34655 *float64 `protobuf:"fixed64,11,opt,name=field34655" json:"field34655,omitempty"` Field34656 *UnusedEmptyMessage `protobuf:"bytes,13,opt,name=field34656" json:"field34656,omitempty"` Field34657 *Message34619 `protobuf:"bytes,14,opt,name=field34657" json:"field34657,omitempty"` Field34658 *string `protobuf:"bytes,5,opt,name=field34658" json:"field34658,omitempty"` Field34659 *string `protobuf:"bytes,9,opt,name=field34659" json:"field34659,omitempty"` Field34660 *float64 `protobuf:"fixed64,12,opt,name=field34660" json:"field34660,omitempty"` Field34661 []byte `protobuf:"bytes,19,opt,name=field34661" json:"field34661,omitempty"` Field34662 *string `protobuf:"bytes,15,opt,name=field34662" json:"field34662,omitempty"` Field34663 *string `protobuf:"bytes,16,opt,name=field34663" json:"field34663,omitempty"` Field34664 *string `protobuf:"bytes,17,opt,name=field34664" json:"field34664,omitempty"` Field34665 *UnusedEmptyMessage `protobuf:"bytes,18,opt,name=field34665" json:"field34665,omitempty"` Field34666 *Message34621 `protobuf:"bytes,20,opt,name=field34666" json:"field34666,omitempty"` Field34667 []*UnusedEmptyMessage `protobuf:"bytes,100,rep,name=field34667" json:"field34667,omitempty"` Field34668 *UnusedEmptyMessage `protobuf:"bytes,101,opt,name=field34668" json:"field34668,omitempty"` } func (x *Message34621) Reset() { *x = Message34621{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message34621) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message34621) ProtoMessage() {} func (x *Message34621) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message34621.ProtoReflect.Descriptor instead. func (*Message34621) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{8} } func (x *Message34621) GetField34651() float64 { if x != nil && x.Field34651 != nil { return *x.Field34651 } return 0 } func (x *Message34621) GetField34652() float64 { if x != nil && x.Field34652 != nil { return *x.Field34652 } return 0 } func (x *Message34621) GetField34653() float64 { if x != nil && x.Field34653 != nil { return *x.Field34653 } return 0 } func (x *Message34621) GetField34654() float64 { if x != nil && x.Field34654 != nil { return *x.Field34654 } return 0 } func (x *Message34621) GetField34655() float64 { if x != nil && x.Field34655 != nil { return *x.Field34655 } return 0 } func (x *Message34621) GetField34656() *UnusedEmptyMessage { if x != nil { return x.Field34656 } return nil } func (x *Message34621) GetField34657() *Message34619 { if x != nil { return x.Field34657 } return nil } func (x *Message34621) GetField34658() string { if x != nil && x.Field34658 != nil { return *x.Field34658 } return "" } func (x *Message34621) GetField34659() string { if x != nil && x.Field34659 != nil { return *x.Field34659 } return "" } func (x *Message34621) GetField34660() float64 { if x != nil && x.Field34660 != nil { return *x.Field34660 } return 0 } func (x *Message34621) GetField34661() []byte { if x != nil { return x.Field34661 } return nil } func (x *Message34621) GetField34662() string { if x != nil && x.Field34662 != nil { return *x.Field34662 } return "" } func (x *Message34621) GetField34663() string { if x != nil && x.Field34663 != nil { return *x.Field34663 } return "" } func (x *Message34621) GetField34664() string { if x != nil && x.Field34664 != nil { return *x.Field34664 } return "" } func (x *Message34621) GetField34665() *UnusedEmptyMessage { if x != nil { return x.Field34665 } return nil } func (x *Message34621) GetField34666() *Message34621 { if x != nil { return x.Field34666 } return nil } func (x *Message34621) GetField34667() []*UnusedEmptyMessage { if x != nil { return x.Field34667 } return nil } func (x *Message34621) GetField34668() *UnusedEmptyMessage { if x != nil { return x.Field34668 } return nil } type Message35476 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field35484 *string `protobuf:"bytes,1,opt,name=field35484" json:"field35484,omitempty"` Field35485 *string `protobuf:"bytes,2,opt,name=field35485" json:"field35485,omitempty"` Field35486 *string `protobuf:"bytes,3,opt,name=field35486" json:"field35486,omitempty"` Field35487 *Enum35477 `protobuf:"varint,4,opt,name=field35487,enum=benchmarks.google_message3.Enum35477" json:"field35487,omitempty"` Field35488 *float32 `protobuf:"fixed32,5,opt,name=field35488" json:"field35488,omitempty"` Field35489 *float32 `protobuf:"fixed32,6,opt,name=field35489" json:"field35489,omitempty"` Field35490 *float32 `protobuf:"fixed32,7,opt,name=field35490" json:"field35490,omitempty"` Field35491 *float32 `protobuf:"fixed32,8,opt,name=field35491" json:"field35491,omitempty"` Field35492 *UnusedEmptyMessage `protobuf:"bytes,9,opt,name=field35492" json:"field35492,omitempty"` Field35493 *int32 `protobuf:"varint,10,opt,name=field35493" json:"field35493,omitempty"` Field35494 *int32 `protobuf:"varint,11,opt,name=field35494" json:"field35494,omitempty"` Field35495 *int32 `protobuf:"varint,12,opt,name=field35495" json:"field35495,omitempty"` Field35496 *string `protobuf:"bytes,13,opt,name=field35496" json:"field35496,omitempty"` Field35497 *string `protobuf:"bytes,14,opt,name=field35497" json:"field35497,omitempty"` } func (x *Message35476) Reset() { *x = Message35476{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message35476) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message35476) ProtoMessage() {} func (x *Message35476) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message35476.ProtoReflect.Descriptor instead. func (*Message35476) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{9} } func (x *Message35476) GetField35484() string { if x != nil && x.Field35484 != nil { return *x.Field35484 } return "" } func (x *Message35476) GetField35485() string { if x != nil && x.Field35485 != nil { return *x.Field35485 } return "" } func (x *Message35476) GetField35486() string { if x != nil && x.Field35486 != nil { return *x.Field35486 } return "" } func (x *Message35476) GetField35487() Enum35477 { if x != nil && x.Field35487 != nil { return *x.Field35487 } return Enum35477_ENUM_VALUE35478 } func (x *Message35476) GetField35488() float32 { if x != nil && x.Field35488 != nil { return *x.Field35488 } return 0 } func (x *Message35476) GetField35489() float32 { if x != nil && x.Field35489 != nil { return *x.Field35489 } return 0 } func (x *Message35476) GetField35490() float32 { if x != nil && x.Field35490 != nil { return *x.Field35490 } return 0 } func (x *Message35476) GetField35491() float32 { if x != nil && x.Field35491 != nil { return *x.Field35491 } return 0 } func (x *Message35476) GetField35492() *UnusedEmptyMessage { if x != nil { return x.Field35492 } return nil } func (x *Message35476) GetField35493() int32 { if x != nil && x.Field35493 != nil { return *x.Field35493 } return 0 } func (x *Message35476) GetField35494() int32 { if x != nil && x.Field35494 != nil { return *x.Field35494 } return 0 } func (x *Message35476) GetField35495() int32 { if x != nil && x.Field35495 != nil { return *x.Field35495 } return 0 } func (x *Message35476) GetField35496() string { if x != nil && x.Field35496 != nil { return *x.Field35496 } return "" } func (x *Message35476) GetField35497() string { if x != nil && x.Field35497 != nil { return *x.Field35497 } return "" } type Message949 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field955 *string `protobuf:"bytes,1,opt,name=field955" json:"field955,omitempty"` Field956 *int64 `protobuf:"varint,2,opt,name=field956" json:"field956,omitempty"` Field957 *int64 `protobuf:"varint,3,opt,name=field957" json:"field957,omitempty"` Field958 *Message730 `protobuf:"bytes,4,opt,name=field958" json:"field958,omitempty"` Field959 []string `protobuf:"bytes,5,rep,name=field959" json:"field959,omitempty"` Field960 *string `protobuf:"bytes,6,opt,name=field960" json:"field960,omitempty"` Field961 *bool `protobuf:"varint,7,opt,name=field961" json:"field961,omitempty"` } func (x *Message949) Reset() { *x = Message949{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message949) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message949) ProtoMessage() {} func (x *Message949) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message949.ProtoReflect.Descriptor instead. func (*Message949) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{10} } func (x *Message949) GetField955() string { if x != nil && x.Field955 != nil { return *x.Field955 } return "" } func (x *Message949) GetField956() int64 { if x != nil && x.Field956 != nil { return *x.Field956 } return 0 } func (x *Message949) GetField957() int64 { if x != nil && x.Field957 != nil { return *x.Field957 } return 0 } func (x *Message949) GetField958() *Message730 { if x != nil { return x.Field958 } return nil } func (x *Message949) GetField959() []string { if x != nil { return x.Field959 } return nil } func (x *Message949) GetField960() string { if x != nil && x.Field960 != nil { return *x.Field960 } return "" } func (x *Message949) GetField961() bool { if x != nil && x.Field961 != nil { return *x.Field961 } return false } type Message36869 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field36970 *int32 `protobuf:"varint,1,opt,name=field36970" json:"field36970,omitempty"` Field36971 *int32 `protobuf:"varint,2,opt,name=field36971" json:"field36971,omitempty"` } func (x *Message36869) Reset() { *x = Message36869{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message36869) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message36869) ProtoMessage() {} func (x *Message36869) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message36869.ProtoReflect.Descriptor instead. func (*Message36869) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{11} } func (x *Message36869) GetField36970() int32 { if x != nil && x.Field36970 != nil { return *x.Field36970 } return 0 } func (x *Message36869) GetField36971() int32 { if x != nil && x.Field36971 != nil { return *x.Field36971 } return 0 } type Message33968 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Message33969 []*Message33968_Message33969 `protobuf:"group,1,rep,name=Message33969,json=message33969" json:"message33969,omitempty"` Field33989 []*Message33958 `protobuf:"bytes,3,rep,name=field33989" json:"field33989,omitempty"` Field33990 *UnusedEmptyMessage `protobuf:"bytes,106,opt,name=field33990" json:"field33990,omitempty"` Field33991 *bool `protobuf:"varint,108,opt,name=field33991" json:"field33991,omitempty"` Field33992 *UnusedEnum `protobuf:"varint,107,opt,name=field33992,enum=benchmarks.google_message3.UnusedEnum" json:"field33992,omitempty"` } func (x *Message33968) Reset() { *x = Message33968{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message33968) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message33968) ProtoMessage() {} func (x *Message33968) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message33968.ProtoReflect.Descriptor instead. func (*Message33968) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{12} } func (x *Message33968) GetMessage33969() []*Message33968_Message33969 { if x != nil { return x.Message33969 } return nil } func (x *Message33968) GetField33989() []*Message33958 { if x != nil { return x.Field33989 } return nil } func (x *Message33968) GetField33990() *UnusedEmptyMessage { if x != nil { return x.Field33990 } return nil } func (x *Message33968) GetField33991() bool { if x != nil && x.Field33991 != nil { return *x.Field33991 } return false } func (x *Message33968) GetField33992() UnusedEnum { if x != nil && x.Field33992 != nil { return *x.Field33992 } return UnusedEnum_UNUSED_ENUM_VALUE1 } type Message6644 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6701 *UnusedEmptyMessage `protobuf:"bytes,8,opt,name=field6701" json:"field6701,omitempty"` Field6702 *string `protobuf:"bytes,1,opt,name=field6702" json:"field6702,omitempty"` Field6703 *float64 `protobuf:"fixed64,2,opt,name=field6703" json:"field6703,omitempty"` Field6704 *UnusedEmptyMessage `protobuf:"bytes,9,opt,name=field6704" json:"field6704,omitempty"` Field6705 []byte `protobuf:"bytes,3,opt,name=field6705" json:"field6705,omitempty"` Field6706 []byte `protobuf:"bytes,19,opt,name=field6706" json:"field6706,omitempty"` Field6707 *Message6637 `protobuf:"bytes,4,opt,name=field6707" json:"field6707,omitempty"` Field6708 []*Message6126 `protobuf:"bytes,18,rep,name=field6708" json:"field6708,omitempty"` Field6709 *bool `protobuf:"varint,6,opt,name=field6709" json:"field6709,omitempty"` Field6710 *Message6643 `protobuf:"bytes,10,opt,name=field6710" json:"field6710,omitempty"` Field6711 *string `protobuf:"bytes,12,opt,name=field6711" json:"field6711,omitempty"` Field6712 *UnusedEmptyMessage `protobuf:"bytes,14,opt,name=field6712" json:"field6712,omitempty"` Field6713 *UnusedEmptyMessage `protobuf:"bytes,15,opt,name=field6713" json:"field6713,omitempty"` Field6714 *UnusedEmptyMessage `protobuf:"bytes,16,opt,name=field6714" json:"field6714,omitempty"` Field6715 *int32 `protobuf:"varint,17,opt,name=field6715" json:"field6715,omitempty"` Field6716 *UnusedEmptyMessage `protobuf:"bytes,20,opt,name=field6716" json:"field6716,omitempty"` } func (x *Message6644) Reset() { *x = Message6644{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6644) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6644) ProtoMessage() {} func (x *Message6644) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6644.ProtoReflect.Descriptor instead. func (*Message6644) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{13} } func (x *Message6644) GetField6701() *UnusedEmptyMessage { if x != nil { return x.Field6701 } return nil } func (x *Message6644) GetField6702() string { if x != nil && x.Field6702 != nil { return *x.Field6702 } return "" } func (x *Message6644) GetField6703() float64 { if x != nil && x.Field6703 != nil { return *x.Field6703 } return 0 } func (x *Message6644) GetField6704() *UnusedEmptyMessage { if x != nil { return x.Field6704 } return nil } func (x *Message6644) GetField6705() []byte { if x != nil { return x.Field6705 } return nil } func (x *Message6644) GetField6706() []byte { if x != nil { return x.Field6706 } return nil } func (x *Message6644) GetField6707() *Message6637 { if x != nil { return x.Field6707 } return nil } func (x *Message6644) GetField6708() []*Message6126 { if x != nil { return x.Field6708 } return nil } func (x *Message6644) GetField6709() bool { if x != nil && x.Field6709 != nil { return *x.Field6709 } return false } func (x *Message6644) GetField6710() *Message6643 { if x != nil { return x.Field6710 } return nil } func (x *Message6644) GetField6711() string { if x != nil && x.Field6711 != nil { return *x.Field6711 } return "" } func (x *Message6644) GetField6712() *UnusedEmptyMessage { if x != nil { return x.Field6712 } return nil } func (x *Message6644) GetField6713() *UnusedEmptyMessage { if x != nil { return x.Field6713 } return nil } func (x *Message6644) GetField6714() *UnusedEmptyMessage { if x != nil { return x.Field6714 } return nil } func (x *Message6644) GetField6715() int32 { if x != nil && x.Field6715 != nil { return *x.Field6715 } return 0 } func (x *Message6644) GetField6716() *UnusedEmptyMessage { if x != nil { return x.Field6716 } return nil } type Message18831 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Message18832 []*Message18831_Message18832 `protobuf:"group,1,rep,name=Message18832,json=message18832" json:"message18832,omitempty"` } func (x *Message18831) Reset() { *x = Message18831{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message18831) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message18831) ProtoMessage() {} func (x *Message18831) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message18831.ProtoReflect.Descriptor instead. func (*Message18831) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{14} } func (x *Message18831) GetMessage18832() []*Message18831_Message18832 { if x != nil { return x.Message18832 } return nil } type Message13090 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field13141 *Message13083 `protobuf:"bytes,1,opt,name=field13141" json:"field13141,omitempty"` Field13142 *Message13088 `protobuf:"bytes,2,opt,name=field13142" json:"field13142,omitempty"` } func (x *Message13090) Reset() { *x = Message13090{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message13090) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message13090) ProtoMessage() {} func (x *Message13090) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message13090.ProtoReflect.Descriptor instead. func (*Message13090) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{15} } func (x *Message13090) GetField13141() *Message13083 { if x != nil { return x.Field13141 } return nil } func (x *Message13090) GetField13142() *Message13088 { if x != nil { return x.Field13142 } return nil } type Message11874 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields Field11888 *Message10391 `protobuf:"bytes,3,opt,name=field11888" json:"field11888,omitempty"` Field11889 *string `protobuf:"bytes,4,opt,name=field11889" json:"field11889,omitempty"` Field11890 *Message11873 `protobuf:"bytes,6,opt,name=field11890" json:"field11890,omitempty"` Field11891 *bool `protobuf:"varint,7,opt,name=field11891" json:"field11891,omitempty"` } func (x *Message11874) Reset() { *x = Message11874{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message11874) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message11874) ProtoMessage() {} func (x *Message11874) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message11874.ProtoReflect.Descriptor instead. func (*Message11874) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{16} } func (x *Message11874) GetField11888() *Message10391 { if x != nil { return x.Field11888 } return nil } func (x *Message11874) GetField11889() string { if x != nil && x.Field11889 != nil { return *x.Field11889 } return "" } func (x *Message11874) GetField11890() *Message11873 { if x != nil { return x.Field11890 } return nil } func (x *Message11874) GetField11891() bool { if x != nil && x.Field11891 != nil { return *x.Field11891 } return false } type Message4144 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Message4145 []*Message4144_Message4145 `protobuf:"group,1,rep,name=Message4145,json=message4145" json:"message4145,omitempty"` } func (x *Message4144) Reset() { *x = Message4144{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message4144) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message4144) ProtoMessage() {} func (x *Message4144) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message4144.ProtoReflect.Descriptor instead. func (*Message4144) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{17} } func (x *Message4144) GetMessage4145() []*Message4144_Message4145 { if x != nil { return x.Message4145 } return nil } type Message35573 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field35695 *uint64 `protobuf:"fixed64,16,opt,name=field35695" json:"field35695,omitempty"` Field35696 *string `protobuf:"bytes,1000,opt,name=field35696" json:"field35696,omitempty"` Field35697 *string `protobuf:"bytes,1004,opt,name=field35697" json:"field35697,omitempty"` Field35698 *int32 `protobuf:"varint,1003,opt,name=field35698" json:"field35698,omitempty"` Message35574 []*Message35573_Message35574 `protobuf:"group,1012,rep,name=Message35574,json=message35574" json:"message35574,omitempty"` Field35700 *int64 `protobuf:"varint,1011,opt,name=field35700" json:"field35700,omitempty"` Field35701 *int64 `protobuf:"varint,1005,opt,name=field35701" json:"field35701,omitempty"` Field35702 *int64 `protobuf:"varint,1006,opt,name=field35702" json:"field35702,omitempty"` Field35703 *int64 `protobuf:"varint,1007,opt,name=field35703" json:"field35703,omitempty"` Field35704 *int64 `protobuf:"varint,1008,opt,name=field35704" json:"field35704,omitempty"` Message35575 []*Message35573_Message35575 `protobuf:"group,1,rep,name=Message35575,json=message35575" json:"message35575,omitempty"` } func (x *Message35573) Reset() { *x = Message35573{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message35573) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message35573) ProtoMessage() {} func (x *Message35573) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message35573.ProtoReflect.Descriptor instead. func (*Message35573) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{18} } func (x *Message35573) GetField35695() uint64 { if x != nil && x.Field35695 != nil { return *x.Field35695 } return 0 } func (x *Message35573) GetField35696() string { if x != nil && x.Field35696 != nil { return *x.Field35696 } return "" } func (x *Message35573) GetField35697() string { if x != nil && x.Field35697 != nil { return *x.Field35697 } return "" } func (x *Message35573) GetField35698() int32 { if x != nil && x.Field35698 != nil { return *x.Field35698 } return 0 } func (x *Message35573) GetMessage35574() []*Message35573_Message35574 { if x != nil { return x.Message35574 } return nil } func (x *Message35573) GetField35700() int64 { if x != nil && x.Field35700 != nil { return *x.Field35700 } return 0 } func (x *Message35573) GetField35701() int64 { if x != nil && x.Field35701 != nil { return *x.Field35701 } return 0 } func (x *Message35573) GetField35702() int64 { if x != nil && x.Field35702 != nil { return *x.Field35702 } return 0 } func (x *Message35573) GetField35703() int64 { if x != nil && x.Field35703 != nil { return *x.Field35703 } return 0 } func (x *Message35573) GetField35704() int64 { if x != nil && x.Field35704 != nil { return *x.Field35704 } return 0 } func (x *Message35573) GetMessage35575() []*Message35573_Message35575 { if x != nil { return x.Message35575 } return nil } type Message36858 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field36956 []int32 `protobuf:"varint,1,rep,name=field36956" json:"field36956,omitempty"` Field36957 []string `protobuf:"bytes,2,rep,name=field36957" json:"field36957,omitempty"` Field36958 []string `protobuf:"bytes,12,rep,name=field36958" json:"field36958,omitempty"` Field36959 *int32 `protobuf:"varint,3,opt,name=field36959" json:"field36959,omitempty"` Field36960 *int32 `protobuf:"varint,4,opt,name=field36960" json:"field36960,omitempty"` Field36961 *int32 `protobuf:"varint,14,opt,name=field36961" json:"field36961,omitempty"` Field36962 *string `protobuf:"bytes,11,opt,name=field36962" json:"field36962,omitempty"` Field36963 *bool `protobuf:"varint,5,opt,name=field36963" json:"field36963,omitempty"` Field36964 *bool `protobuf:"varint,13,opt,name=field36964" json:"field36964,omitempty"` Field36965 *int64 `protobuf:"varint,6,opt,name=field36965" json:"field36965,omitempty"` Field36966 *Message35506 `protobuf:"bytes,7,opt,name=field36966" json:"field36966,omitempty"` Message36859 []*Message36858_Message36859 `protobuf:"group,8,rep,name=Message36859,json=message36859" json:"message36859,omitempty"` } func (x *Message36858) Reset() { *x = Message36858{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message36858) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message36858) ProtoMessage() {} func (x *Message36858) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message36858.ProtoReflect.Descriptor instead. func (*Message36858) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{19} } func (x *Message36858) GetField36956() []int32 { if x != nil { return x.Field36956 } return nil } func (x *Message36858) GetField36957() []string { if x != nil { return x.Field36957 } return nil } func (x *Message36858) GetField36958() []string { if x != nil { return x.Field36958 } return nil } func (x *Message36858) GetField36959() int32 { if x != nil && x.Field36959 != nil { return *x.Field36959 } return 0 } func (x *Message36858) GetField36960() int32 { if x != nil && x.Field36960 != nil { return *x.Field36960 } return 0 } func (x *Message36858) GetField36961() int32 { if x != nil && x.Field36961 != nil { return *x.Field36961 } return 0 } func (x *Message36858) GetField36962() string { if x != nil && x.Field36962 != nil { return *x.Field36962 } return "" } func (x *Message36858) GetField36963() bool { if x != nil && x.Field36963 != nil { return *x.Field36963 } return false } func (x *Message36858) GetField36964() bool { if x != nil && x.Field36964 != nil { return *x.Field36964 } return false } func (x *Message36858) GetField36965() int64 { if x != nil && x.Field36965 != nil { return *x.Field36965 } return 0 } func (x *Message36858) GetField36966() *Message35506 { if x != nil { return x.Field36966 } return nil } func (x *Message36858) GetMessage36859() []*Message36858_Message36859 { if x != nil { return x.Message36859 } return nil } type Message13174 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field13237 *int32 `protobuf:"varint,6,req,name=field13237" json:"field13237,omitempty"` Field13238 *int32 `protobuf:"varint,3,opt,name=field13238" json:"field13238,omitempty"` Field13239 *int32 `protobuf:"varint,4,req,name=field13239" json:"field13239,omitempty"` Field13240 *int32 `protobuf:"varint,8,opt,name=field13240" json:"field13240,omitempty"` Field13241 *float64 `protobuf:"fixed64,5,opt,name=field13241" json:"field13241,omitempty"` Field13242 *float64 `protobuf:"fixed64,7,opt,name=field13242" json:"field13242,omitempty"` Field13243 *int32 `protobuf:"varint,17,opt,name=field13243" json:"field13243,omitempty"` Field13244 *int32 `protobuf:"varint,19,opt,name=field13244" json:"field13244,omitempty"` Field13245 *float64 `protobuf:"fixed64,20,opt,name=field13245" json:"field13245,omitempty"` Field13246 *int32 `protobuf:"varint,9,opt,name=field13246" json:"field13246,omitempty"` Field13247 *float64 `protobuf:"fixed64,10,opt,name=field13247" json:"field13247,omitempty"` Field13248 *int32 `protobuf:"varint,11,opt,name=field13248" json:"field13248,omitempty"` Field13249 *Message13151 `protobuf:"bytes,21,opt,name=field13249" json:"field13249,omitempty"` Field13250 *int32 `protobuf:"varint,1,opt,name=field13250" json:"field13250,omitempty"` Field13251 *float64 `protobuf:"fixed64,2,opt,name=field13251" json:"field13251,omitempty"` Field13252 *float64 `protobuf:"fixed64,15,opt,name=field13252" json:"field13252,omitempty"` Field13253 *float64 `protobuf:"fixed64,16,opt,name=field13253" json:"field13253,omitempty"` Field13254 *float64 `protobuf:"fixed64,12,opt,name=field13254" json:"field13254,omitempty"` Field13255 *float64 `protobuf:"fixed64,13,opt,name=field13255" json:"field13255,omitempty"` Field13256 *float64 `protobuf:"fixed64,14,opt,name=field13256" json:"field13256,omitempty"` Field13257 *int32 `protobuf:"varint,18,opt,name=field13257" json:"field13257,omitempty"` } func (x *Message13174) Reset() { *x = Message13174{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message13174) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message13174) ProtoMessage() {} func (x *Message13174) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message13174.ProtoReflect.Descriptor instead. func (*Message13174) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{20} } func (x *Message13174) GetField13237() int32 { if x != nil && x.Field13237 != nil { return *x.Field13237 } return 0 } func (x *Message13174) GetField13238() int32 { if x != nil && x.Field13238 != nil { return *x.Field13238 } return 0 } func (x *Message13174) GetField13239() int32 { if x != nil && x.Field13239 != nil { return *x.Field13239 } return 0 } func (x *Message13174) GetField13240() int32 { if x != nil && x.Field13240 != nil { return *x.Field13240 } return 0 } func (x *Message13174) GetField13241() float64 { if x != nil && x.Field13241 != nil { return *x.Field13241 } return 0 } func (x *Message13174) GetField13242() float64 { if x != nil && x.Field13242 != nil { return *x.Field13242 } return 0 } func (x *Message13174) GetField13243() int32 { if x != nil && x.Field13243 != nil { return *x.Field13243 } return 0 } func (x *Message13174) GetField13244() int32 { if x != nil && x.Field13244 != nil { return *x.Field13244 } return 0 } func (x *Message13174) GetField13245() float64 { if x != nil && x.Field13245 != nil { return *x.Field13245 } return 0 } func (x *Message13174) GetField13246() int32 { if x != nil && x.Field13246 != nil { return *x.Field13246 } return 0 } func (x *Message13174) GetField13247() float64 { if x != nil && x.Field13247 != nil { return *x.Field13247 } return 0 } func (x *Message13174) GetField13248() int32 { if x != nil && x.Field13248 != nil { return *x.Field13248 } return 0 } func (x *Message13174) GetField13249() *Message13151 { if x != nil { return x.Field13249 } return nil } func (x *Message13174) GetField13250() int32 { if x != nil && x.Field13250 != nil { return *x.Field13250 } return 0 } func (x *Message13174) GetField13251() float64 { if x != nil && x.Field13251 != nil { return *x.Field13251 } return 0 } func (x *Message13174) GetField13252() float64 { if x != nil && x.Field13252 != nil { return *x.Field13252 } return 0 } func (x *Message13174) GetField13253() float64 { if x != nil && x.Field13253 != nil { return *x.Field13253 } return 0 } func (x *Message13174) GetField13254() float64 { if x != nil && x.Field13254 != nil { return *x.Field13254 } return 0 } func (x *Message13174) GetField13255() float64 { if x != nil && x.Field13255 != nil { return *x.Field13255 } return 0 } func (x *Message13174) GetField13256() float64 { if x != nil && x.Field13256 != nil { return *x.Field13256 } return 0 } func (x *Message13174) GetField13257() int32 { if x != nil && x.Field13257 != nil { return *x.Field13257 } return 0 } type Message18283 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields Field18478 *UnusedEmptyMessage `protobuf:"bytes,1,opt,name=field18478" json:"field18478,omitempty"` Field18479 *int32 `protobuf:"varint,4,opt,name=field18479" json:"field18479,omitempty"` Field18480 *int32 `protobuf:"varint,106,opt,name=field18480" json:"field18480,omitempty"` Field18481 *int32 `protobuf:"varint,107,opt,name=field18481" json:"field18481,omitempty"` Field18482 *int32 `protobuf:"varint,108,opt,name=field18482" json:"field18482,omitempty"` Field18483 *int32 `protobuf:"varint,109,opt,name=field18483" json:"field18483,omitempty"` Field18484 *int32 `protobuf:"varint,105,opt,name=field18484" json:"field18484,omitempty"` Field18485 *int32 `protobuf:"varint,113,opt,name=field18485" json:"field18485,omitempty"` Field18486 *int32 `protobuf:"varint,114,opt,name=field18486" json:"field18486,omitempty"` Field18487 *int32 `protobuf:"varint,124,opt,name=field18487" json:"field18487,omitempty"` Field18488 *int32 `protobuf:"varint,125,opt,name=field18488" json:"field18488,omitempty"` Field18489 *int32 `protobuf:"varint,128,opt,name=field18489" json:"field18489,omitempty"` Field18490 *int32 `protobuf:"varint,135,opt,name=field18490" json:"field18490,omitempty"` Field18491 *bool `protobuf:"varint,166,opt,name=field18491" json:"field18491,omitempty"` Field18492 *bool `protobuf:"varint,136,opt,name=field18492" json:"field18492,omitempty"` Field18493 *int32 `protobuf:"varint,140,opt,name=field18493" json:"field18493,omitempty"` Field18494 *int32 `protobuf:"varint,171,opt,name=field18494" json:"field18494,omitempty"` Field18495 *int32 `protobuf:"varint,148,opt,name=field18495" json:"field18495,omitempty"` Field18496 *int32 `protobuf:"varint,145,opt,name=field18496" json:"field18496,omitempty"` Field18497 *float32 `protobuf:"fixed32,117,opt,name=field18497" json:"field18497,omitempty"` Field18498 *int32 `protobuf:"varint,146,opt,name=field18498" json:"field18498,omitempty"` Field18499 *string `protobuf:"bytes,3,opt,name=field18499" json:"field18499,omitempty"` Field18500 *UnusedEmptyMessage `protobuf:"bytes,5,opt,name=field18500" json:"field18500,omitempty"` Field18501 *UnusedEmptyMessage `protobuf:"bytes,6,opt,name=field18501" json:"field18501,omitempty"` Field18502 *UnusedEmptyMessage `protobuf:"bytes,9,opt,name=field18502" json:"field18502,omitempty"` Field18503 *Message18253 `protobuf:"bytes,155,opt,name=field18503" json:"field18503,omitempty"` Field18504 *UnusedEmptyMessage `protobuf:"bytes,184,opt,name=field18504" json:"field18504,omitempty"` Field18505 *UnusedEmptyMessage `protobuf:"bytes,163,opt,name=field18505" json:"field18505,omitempty"` Field18506 *UnusedEmptyMessage `protobuf:"bytes,16,opt,name=field18506" json:"field18506,omitempty"` Field18507 []int32 `protobuf:"varint,20,rep,name=field18507" json:"field18507,omitempty"` Field18508 []int32 `protobuf:"varint,7,rep,name=field18508" json:"field18508,omitempty"` Field18509 []string `protobuf:"bytes,194,rep,name=field18509" json:"field18509,omitempty"` Field18510 []byte `protobuf:"bytes,30,opt,name=field18510" json:"field18510,omitempty"` Field18511 *int32 `protobuf:"varint,31,opt,name=field18511" json:"field18511,omitempty"` Field18512 *UnusedEmptyMessage `protobuf:"bytes,178,opt,name=field18512" json:"field18512,omitempty"` Field18513 *string `protobuf:"bytes,8,opt,name=field18513" json:"field18513,omitempty"` Field18514 *float32 `protobuf:"fixed32,2,opt,name=field18514" json:"field18514,omitempty"` Field18515 *float32 `protobuf:"fixed32,100,opt,name=field18515" json:"field18515,omitempty"` Field18516 *float32 `protobuf:"fixed32,101,opt,name=field18516" json:"field18516,omitempty"` Field18517 *float32 `protobuf:"fixed32,102,opt,name=field18517" json:"field18517,omitempty"` Field18518 *int32 `protobuf:"varint,103,opt,name=field18518" json:"field18518,omitempty"` Field18519 []*UnusedEmptyMessage `protobuf:"bytes,104,rep,name=field18519" json:"field18519,omitempty"` Field18520 *int32 `protobuf:"varint,110,opt,name=field18520" json:"field18520,omitempty"` Field18521 *int32 `protobuf:"varint,112,opt,name=field18521" json:"field18521,omitempty"` Field18522 *UnusedEmptyMessage `protobuf:"bytes,111,opt,name=field18522" json:"field18522,omitempty"` Field18523 *UnusedEmptyMessage `protobuf:"bytes,115,opt,name=field18523" json:"field18523,omitempty"` Field18524 *UnusedEmptyMessage `protobuf:"bytes,119,opt,name=field18524" json:"field18524,omitempty"` Field18525 *UnusedEmptyMessage `protobuf:"bytes,127,opt,name=field18525" json:"field18525,omitempty"` Field18526 *UnusedEmptyMessage `protobuf:"bytes,185,opt,name=field18526" json:"field18526,omitempty"` Field18527 *int32 `protobuf:"varint,120,opt,name=field18527" json:"field18527,omitempty"` Field18528 *int32 `protobuf:"varint,132,opt,name=field18528" json:"field18528,omitempty"` Field18529 *UnusedEmptyMessage `protobuf:"bytes,126,opt,name=field18529" json:"field18529,omitempty"` Field18530 *UnusedEmptyMessage `protobuf:"bytes,129,opt,name=field18530" json:"field18530,omitempty"` Field18531 *UnusedEmptyMessage `protobuf:"bytes,131,opt,name=field18531" json:"field18531,omitempty"` Field18532 *uint64 `protobuf:"fixed64,150,opt,name=field18532" json:"field18532,omitempty"` Field18533 *int32 `protobuf:"varint,133,opt,name=field18533" json:"field18533,omitempty"` Field18534 *int32 `protobuf:"varint,134,opt,name=field18534" json:"field18534,omitempty"` Field18535 *int32 `protobuf:"varint,139,opt,name=field18535" json:"field18535,omitempty"` Field18536 *uint64 `protobuf:"fixed64,137,opt,name=field18536" json:"field18536,omitempty"` Field18537 *uint64 `protobuf:"fixed64,138,opt,name=field18537" json:"field18537,omitempty"` Field18538 *UnusedEmptyMessage `protobuf:"bytes,141,opt,name=field18538" json:"field18538,omitempty"` Field18539 *int32 `protobuf:"varint,142,opt,name=field18539" json:"field18539,omitempty"` Field18540 *int32 `protobuf:"varint,181,opt,name=field18540" json:"field18540,omitempty"` Field18541 *Message16816 `protobuf:"bytes,143,opt,name=field18541" json:"field18541,omitempty"` Field18542 *Message16685 `protobuf:"bytes,154,opt,name=field18542" json:"field18542,omitempty"` Field18543 *int32 `protobuf:"varint,144,opt,name=field18543" json:"field18543,omitempty"` Field18544 *int64 `protobuf:"varint,147,opt,name=field18544" json:"field18544,omitempty"` Field18545 *int64 `protobuf:"varint,149,opt,name=field18545" json:"field18545,omitempty"` Field18546 *int32 `protobuf:"varint,151,opt,name=field18546" json:"field18546,omitempty"` Field18547 *int32 `protobuf:"varint,152,opt,name=field18547" json:"field18547,omitempty"` Field18548 *int32 `protobuf:"varint,153,opt,name=field18548" json:"field18548,omitempty"` Field18549 *float32 `protobuf:"fixed32,161,opt,name=field18549" json:"field18549,omitempty"` Field18550 *Message0 `protobuf:"bytes,123,opt,name=field18550" json:"field18550,omitempty"` Field18551 []int64 `protobuf:"varint,156,rep,name=field18551" json:"field18551,omitempty"` Field18552 *int32 `protobuf:"varint,157,opt,name=field18552" json:"field18552,omitempty"` Field18553 []uint64 `protobuf:"fixed64,188,rep,name=field18553" json:"field18553,omitempty"` Field18554 *int32 `protobuf:"varint,158,opt,name=field18554" json:"field18554,omitempty"` Field18555 *UnusedEmptyMessage `protobuf:"bytes,159,opt,name=field18555" json:"field18555,omitempty"` Field18556 *bool `protobuf:"varint,160,opt,name=field18556" json:"field18556,omitempty"` Field18557 *uint64 `protobuf:"varint,162,opt,name=field18557" json:"field18557,omitempty"` Field18558 *int32 `protobuf:"varint,164,opt,name=field18558" json:"field18558,omitempty"` Field18559 *UnusedEmptyMessage `protobuf:"bytes,10,opt,name=field18559" json:"field18559,omitempty"` Field18560 *UnusedEmptyMessage `protobuf:"bytes,167,opt,name=field18560" json:"field18560,omitempty"` Field18561 *int32 `protobuf:"varint,168,opt,name=field18561" json:"field18561,omitempty"` Field18562 []uint64 `protobuf:"fixed64,169,rep,name=field18562" json:"field18562,omitempty"` Field18563 []string `protobuf:"bytes,170,rep,name=field18563" json:"field18563,omitempty"` Field18564 *UnusedEmptyMessage `protobuf:"bytes,172,opt,name=field18564" json:"field18564,omitempty"` Field18565 *int64 `protobuf:"varint,173,opt,name=field18565" json:"field18565,omitempty"` Field18566 *UnusedEmptyMessage `protobuf:"bytes,174,opt,name=field18566" json:"field18566,omitempty"` Field18567 *int64 `protobuf:"varint,175,opt,name=field18567" json:"field18567,omitempty"` Field18568 *uint32 `protobuf:"varint,189,opt,name=field18568" json:"field18568,omitempty"` Field18569 *UnusedEmptyMessage `protobuf:"bytes,176,opt,name=field18569" json:"field18569,omitempty"` Field18570 *UnusedEmptyMessage `protobuf:"bytes,177,opt,name=field18570" json:"field18570,omitempty"` Field18571 *uint32 `protobuf:"varint,179,opt,name=field18571" json:"field18571,omitempty"` Field18572 *uint32 `protobuf:"varint,180,opt,name=field18572" json:"field18572,omitempty"` Field18573 *UnusedEmptyMessage `protobuf:"bytes,182,opt,name=field18573" json:"field18573,omitempty"` Field18574 *UnusedEmptyMessage `protobuf:"bytes,183,opt,name=field18574" json:"field18574,omitempty"` Field18575 *UnusedEmptyMessage `protobuf:"bytes,121,opt,name=field18575" json:"field18575,omitempty"` Field18576 *UnusedEmptyMessage `protobuf:"bytes,186,opt,name=field18576" json:"field18576,omitempty"` Field18577 *UnusedEmptyMessage `protobuf:"bytes,187,opt,name=field18577" json:"field18577,omitempty"` Field18578 *UnusedEmptyMessage `protobuf:"bytes,190,opt,name=field18578" json:"field18578,omitempty"` Field18579 *int32 `protobuf:"varint,191,opt,name=field18579" json:"field18579,omitempty"` Field18580 *float32 `protobuf:"fixed32,192,opt,name=field18580" json:"field18580,omitempty"` Field18581 *bool `protobuf:"varint,193,opt,name=field18581" json:"field18581,omitempty"` } func (x *Message18283) Reset() { *x = Message18283{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message18283) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message18283) ProtoMessage() {} func (x *Message18283) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message18283.ProtoReflect.Descriptor instead. func (*Message18283) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{21} } func (x *Message18283) GetField18478() *UnusedEmptyMessage { if x != nil { return x.Field18478 } return nil } func (x *Message18283) GetField18479() int32 { if x != nil && x.Field18479 != nil { return *x.Field18479 } return 0 } func (x *Message18283) GetField18480() int32 { if x != nil && x.Field18480 != nil { return *x.Field18480 } return 0 } func (x *Message18283) GetField18481() int32 { if x != nil && x.Field18481 != nil { return *x.Field18481 } return 0 } func (x *Message18283) GetField18482() int32 { if x != nil && x.Field18482 != nil { return *x.Field18482 } return 0 } func (x *Message18283) GetField18483() int32 { if x != nil && x.Field18483 != nil { return *x.Field18483 } return 0 } func (x *Message18283) GetField18484() int32 { if x != nil && x.Field18484 != nil { return *x.Field18484 } return 0 } func (x *Message18283) GetField18485() int32 { if x != nil && x.Field18485 != nil { return *x.Field18485 } return 0 } func (x *Message18283) GetField18486() int32 { if x != nil && x.Field18486 != nil { return *x.Field18486 } return 0 } func (x *Message18283) GetField18487() int32 { if x != nil && x.Field18487 != nil { return *x.Field18487 } return 0 } func (x *Message18283) GetField18488() int32 { if x != nil && x.Field18488 != nil { return *x.Field18488 } return 0 } func (x *Message18283) GetField18489() int32 { if x != nil && x.Field18489 != nil { return *x.Field18489 } return 0 } func (x *Message18283) GetField18490() int32 { if x != nil && x.Field18490 != nil { return *x.Field18490 } return 0 } func (x *Message18283) GetField18491() bool { if x != nil && x.Field18491 != nil { return *x.Field18491 } return false } func (x *Message18283) GetField18492() bool { if x != nil && x.Field18492 != nil { return *x.Field18492 } return false } func (x *Message18283) GetField18493() int32 { if x != nil && x.Field18493 != nil { return *x.Field18493 } return 0 } func (x *Message18283) GetField18494() int32 { if x != nil && x.Field18494 != nil { return *x.Field18494 } return 0 } func (x *Message18283) GetField18495() int32 { if x != nil && x.Field18495 != nil { return *x.Field18495 } return 0 } func (x *Message18283) GetField18496() int32 { if x != nil && x.Field18496 != nil { return *x.Field18496 } return 0 } func (x *Message18283) GetField18497() float32 { if x != nil && x.Field18497 != nil { return *x.Field18497 } return 0 } func (x *Message18283) GetField18498() int32 { if x != nil && x.Field18498 != nil { return *x.Field18498 } return 0 } func (x *Message18283) GetField18499() string { if x != nil && x.Field18499 != nil { return *x.Field18499 } return "" } func (x *Message18283) GetField18500() *UnusedEmptyMessage { if x != nil { return x.Field18500 } return nil } func (x *Message18283) GetField18501() *UnusedEmptyMessage { if x != nil { return x.Field18501 } return nil } func (x *Message18283) GetField18502() *UnusedEmptyMessage { if x != nil { return x.Field18502 } return nil } func (x *Message18283) GetField18503() *Message18253 { if x != nil { return x.Field18503 } return nil } func (x *Message18283) GetField18504() *UnusedEmptyMessage { if x != nil { return x.Field18504 } return nil } func (x *Message18283) GetField18505() *UnusedEmptyMessage { if x != nil { return x.Field18505 } return nil } func (x *Message18283) GetField18506() *UnusedEmptyMessage { if x != nil { return x.Field18506 } return nil } func (x *Message18283) GetField18507() []int32 { if x != nil { return x.Field18507 } return nil } func (x *Message18283) GetField18508() []int32 { if x != nil { return x.Field18508 } return nil } func (x *Message18283) GetField18509() []string { if x != nil { return x.Field18509 } return nil } func (x *Message18283) GetField18510() []byte { if x != nil { return x.Field18510 } return nil } func (x *Message18283) GetField18511() int32 { if x != nil && x.Field18511 != nil { return *x.Field18511 } return 0 } func (x *Message18283) GetField18512() *UnusedEmptyMessage { if x != nil { return x.Field18512 } return nil } func (x *Message18283) GetField18513() string { if x != nil && x.Field18513 != nil { return *x.Field18513 } return "" } func (x *Message18283) GetField18514() float32 { if x != nil && x.Field18514 != nil { return *x.Field18514 } return 0 } func (x *Message18283) GetField18515() float32 { if x != nil && x.Field18515 != nil { return *x.Field18515 } return 0 } func (x *Message18283) GetField18516() float32 { if x != nil && x.Field18516 != nil { return *x.Field18516 } return 0 } func (x *Message18283) GetField18517() float32 { if x != nil && x.Field18517 != nil { return *x.Field18517 } return 0 } func (x *Message18283) GetField18518() int32 { if x != nil && x.Field18518 != nil { return *x.Field18518 } return 0 } func (x *Message18283) GetField18519() []*UnusedEmptyMessage { if x != nil { return x.Field18519 } return nil } func (x *Message18283) GetField18520() int32 { if x != nil && x.Field18520 != nil { return *x.Field18520 } return 0 } func (x *Message18283) GetField18521() int32 { if x != nil && x.Field18521 != nil { return *x.Field18521 } return 0 } func (x *Message18283) GetField18522() *UnusedEmptyMessage { if x != nil { return x.Field18522 } return nil } func (x *Message18283) GetField18523() *UnusedEmptyMessage { if x != nil { return x.Field18523 } return nil } func (x *Message18283) GetField18524() *UnusedEmptyMessage { if x != nil { return x.Field18524 } return nil } func (x *Message18283) GetField18525() *UnusedEmptyMessage { if x != nil { return x.Field18525 } return nil } func (x *Message18283) GetField18526() *UnusedEmptyMessage { if x != nil { return x.Field18526 } return nil } func (x *Message18283) GetField18527() int32 { if x != nil && x.Field18527 != nil { return *x.Field18527 } return 0 } func (x *Message18283) GetField18528() int32 { if x != nil && x.Field18528 != nil { return *x.Field18528 } return 0 } func (x *Message18283) GetField18529() *UnusedEmptyMessage { if x != nil { return x.Field18529 } return nil } func (x *Message18283) GetField18530() *UnusedEmptyMessage { if x != nil { return x.Field18530 } return nil } func (x *Message18283) GetField18531() *UnusedEmptyMessage { if x != nil { return x.Field18531 } return nil } func (x *Message18283) GetField18532() uint64 { if x != nil && x.Field18532 != nil { return *x.Field18532 } return 0 } func (x *Message18283) GetField18533() int32 { if x != nil && x.Field18533 != nil { return *x.Field18533 } return 0 } func (x *Message18283) GetField18534() int32 { if x != nil && x.Field18534 != nil { return *x.Field18534 } return 0 } func (x *Message18283) GetField18535() int32 { if x != nil && x.Field18535 != nil { return *x.Field18535 } return 0 } func (x *Message18283) GetField18536() uint64 { if x != nil && x.Field18536 != nil { return *x.Field18536 } return 0 } func (x *Message18283) GetField18537() uint64 { if x != nil && x.Field18537 != nil { return *x.Field18537 } return 0 } func (x *Message18283) GetField18538() *UnusedEmptyMessage { if x != nil { return x.Field18538 } return nil } func (x *Message18283) GetField18539() int32 { if x != nil && x.Field18539 != nil { return *x.Field18539 } return 0 } func (x *Message18283) GetField18540() int32 { if x != nil && x.Field18540 != nil { return *x.Field18540 } return 0 } func (x *Message18283) GetField18541() *Message16816 { if x != nil { return x.Field18541 } return nil } func (x *Message18283) GetField18542() *Message16685 { if x != nil { return x.Field18542 } return nil } func (x *Message18283) GetField18543() int32 { if x != nil && x.Field18543 != nil { return *x.Field18543 } return 0 } func (x *Message18283) GetField18544() int64 { if x != nil && x.Field18544 != nil { return *x.Field18544 } return 0 } func (x *Message18283) GetField18545() int64 { if x != nil && x.Field18545 != nil { return *x.Field18545 } return 0 } func (x *Message18283) GetField18546() int32 { if x != nil && x.Field18546 != nil { return *x.Field18546 } return 0 } func (x *Message18283) GetField18547() int32 { if x != nil && x.Field18547 != nil { return *x.Field18547 } return 0 } func (x *Message18283) GetField18548() int32 { if x != nil && x.Field18548 != nil { return *x.Field18548 } return 0 } func (x *Message18283) GetField18549() float32 { if x != nil && x.Field18549 != nil { return *x.Field18549 } return 0 } func (x *Message18283) GetField18550() *Message0 { if x != nil { return x.Field18550 } return nil } func (x *Message18283) GetField18551() []int64 { if x != nil { return x.Field18551 } return nil } func (x *Message18283) GetField18552() int32 { if x != nil && x.Field18552 != nil { return *x.Field18552 } return 0 } func (x *Message18283) GetField18553() []uint64 { if x != nil { return x.Field18553 } return nil } func (x *Message18283) GetField18554() int32 { if x != nil && x.Field18554 != nil { return *x.Field18554 } return 0 } func (x *Message18283) GetField18555() *UnusedEmptyMessage { if x != nil { return x.Field18555 } return nil } func (x *Message18283) GetField18556() bool { if x != nil && x.Field18556 != nil { return *x.Field18556 } return false } func (x *Message18283) GetField18557() uint64 { if x != nil && x.Field18557 != nil { return *x.Field18557 } return 0 } func (x *Message18283) GetField18558() int32 { if x != nil && x.Field18558 != nil { return *x.Field18558 } return 0 } func (x *Message18283) GetField18559() *UnusedEmptyMessage { if x != nil { return x.Field18559 } return nil } func (x *Message18283) GetField18560() *UnusedEmptyMessage { if x != nil { return x.Field18560 } return nil } func (x *Message18283) GetField18561() int32 { if x != nil && x.Field18561 != nil { return *x.Field18561 } return 0 } func (x *Message18283) GetField18562() []uint64 { if x != nil { return x.Field18562 } return nil } func (x *Message18283) GetField18563() []string { if x != nil { return x.Field18563 } return nil } func (x *Message18283) GetField18564() *UnusedEmptyMessage { if x != nil { return x.Field18564 } return nil } func (x *Message18283) GetField18565() int64 { if x != nil && x.Field18565 != nil { return *x.Field18565 } return 0 } func (x *Message18283) GetField18566() *UnusedEmptyMessage { if x != nil { return x.Field18566 } return nil } func (x *Message18283) GetField18567() int64 { if x != nil && x.Field18567 != nil { return *x.Field18567 } return 0 } func (x *Message18283) GetField18568() uint32 { if x != nil && x.Field18568 != nil { return *x.Field18568 } return 0 } func (x *Message18283) GetField18569() *UnusedEmptyMessage { if x != nil { return x.Field18569 } return nil } func (x *Message18283) GetField18570() *UnusedEmptyMessage { if x != nil { return x.Field18570 } return nil } func (x *Message18283) GetField18571() uint32 { if x != nil && x.Field18571 != nil { return *x.Field18571 } return 0 } func (x *Message18283) GetField18572() uint32 { if x != nil && x.Field18572 != nil { return *x.Field18572 } return 0 } func (x *Message18283) GetField18573() *UnusedEmptyMessage { if x != nil { return x.Field18573 } return nil } func (x *Message18283) GetField18574() *UnusedEmptyMessage { if x != nil { return x.Field18574 } return nil } func (x *Message18283) GetField18575() *UnusedEmptyMessage { if x != nil { return x.Field18575 } return nil } func (x *Message18283) GetField18576() *UnusedEmptyMessage { if x != nil { return x.Field18576 } return nil } func (x *Message18283) GetField18577() *UnusedEmptyMessage { if x != nil { return x.Field18577 } return nil } func (x *Message18283) GetField18578() *UnusedEmptyMessage { if x != nil { return x.Field18578 } return nil } func (x *Message18283) GetField18579() int32 { if x != nil && x.Field18579 != nil { return *x.Field18579 } return 0 } func (x *Message18283) GetField18580() float32 { if x != nil && x.Field18580 != nil { return *x.Field18580 } return 0 } func (x *Message18283) GetField18581() bool { if x != nil && x.Field18581 != nil { return *x.Field18581 } return false } type Message13169 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field13223 []*Message13168 `protobuf:"bytes,1,rep,name=field13223" json:"field13223,omitempty"` Field13224 *Message13167 `protobuf:"bytes,2,req,name=field13224" json:"field13224,omitempty"` Field13225 *string `protobuf:"bytes,3,opt,name=field13225" json:"field13225,omitempty"` } func (x *Message13169) Reset() { *x = Message13169{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message13169) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message13169) ProtoMessage() {} func (x *Message13169) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message13169.ProtoReflect.Descriptor instead. func (*Message13169) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{22} } func (x *Message13169) GetField13223() []*Message13168 { if x != nil { return x.Field13223 } return nil } func (x *Message13169) GetField13224() *Message13167 { if x != nil { return x.Field13224 } return nil } func (x *Message13169) GetField13225() string { if x != nil && x.Field13225 != nil { return *x.Field13225 } return "" } type Message19255 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field19257 *string `protobuf:"bytes,1,opt,name=field19257" json:"field19257,omitempty"` } func (x *Message19255) Reset() { *x = Message19255{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message19255) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message19255) ProtoMessage() {} func (x *Message19255) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message19255.ProtoReflect.Descriptor instead. func (*Message19255) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{23} } func (x *Message19255) GetField19257() string { if x != nil && x.Field19257 != nil { return *x.Field19257 } return "" } type Message35542 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field35543 *bool `protobuf:"varint,1,opt,name=field35543" json:"field35543,omitempty"` Field35544 *bool `protobuf:"varint,2,opt,name=field35544" json:"field35544,omitempty"` Field35545 *bool `protobuf:"varint,3,opt,name=field35545" json:"field35545,omitempty"` } func (x *Message35542) Reset() { *x = Message35542{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message35542) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message35542) ProtoMessage() {} func (x *Message35542) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message35542.ProtoReflect.Descriptor instead. func (*Message35542) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{24} } func (x *Message35542) GetField35543() bool { if x != nil && x.Field35543 != nil { return *x.Field35543 } return false } func (x *Message35542) GetField35544() bool { if x != nil && x.Field35544 != nil { return *x.Field35544 } return false } func (x *Message35542) GetField35545() bool { if x != nil && x.Field35545 != nil { return *x.Field35545 } return false } type Message3901 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field3990 *int32 `protobuf:"varint,1,opt,name=field3990" json:"field3990,omitempty"` Field3991 *int32 `protobuf:"varint,2,opt,name=field3991" json:"field3991,omitempty"` Field3992 *int32 `protobuf:"varint,3,opt,name=field3992" json:"field3992,omitempty"` Field3993 *int32 `protobuf:"varint,4,opt,name=field3993" json:"field3993,omitempty"` Field3994 *int32 `protobuf:"varint,7,opt,name=field3994" json:"field3994,omitempty"` Field3995 *int32 `protobuf:"varint,8,opt,name=field3995" json:"field3995,omitempty"` Field3996 *int32 `protobuf:"varint,9,opt,name=field3996" json:"field3996,omitempty"` Field3997 *int32 `protobuf:"varint,10,opt,name=field3997" json:"field3997,omitempty"` Field3998 *int32 `protobuf:"varint,11,opt,name=field3998" json:"field3998,omitempty"` Field3999 *int32 `protobuf:"varint,12,opt,name=field3999" json:"field3999,omitempty"` Field4000 *UnusedEnum `protobuf:"varint,6,opt,name=field4000,enum=benchmarks.google_message3.UnusedEnum" json:"field4000,omitempty"` Field4001 *int32 `protobuf:"varint,5,opt,name=field4001" json:"field4001,omitempty"` } func (x *Message3901) Reset() { *x = Message3901{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3901) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3901) ProtoMessage() {} func (x *Message3901) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3901.ProtoReflect.Descriptor instead. func (*Message3901) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{25} } func (x *Message3901) GetField3990() int32 { if x != nil && x.Field3990 != nil { return *x.Field3990 } return 0 } func (x *Message3901) GetField3991() int32 { if x != nil && x.Field3991 != nil { return *x.Field3991 } return 0 } func (x *Message3901) GetField3992() int32 { if x != nil && x.Field3992 != nil { return *x.Field3992 } return 0 } func (x *Message3901) GetField3993() int32 { if x != nil && x.Field3993 != nil { return *x.Field3993 } return 0 } func (x *Message3901) GetField3994() int32 { if x != nil && x.Field3994 != nil { return *x.Field3994 } return 0 } func (x *Message3901) GetField3995() int32 { if x != nil && x.Field3995 != nil { return *x.Field3995 } return 0 } func (x *Message3901) GetField3996() int32 { if x != nil && x.Field3996 != nil { return *x.Field3996 } return 0 } func (x *Message3901) GetField3997() int32 { if x != nil && x.Field3997 != nil { return *x.Field3997 } return 0 } func (x *Message3901) GetField3998() int32 { if x != nil && x.Field3998 != nil { return *x.Field3998 } return 0 } func (x *Message3901) GetField3999() int32 { if x != nil && x.Field3999 != nil { return *x.Field3999 } return 0 } func (x *Message3901) GetField4000() UnusedEnum { if x != nil && x.Field4000 != nil { return *x.Field4000 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message3901) GetField4001() int32 { if x != nil && x.Field4001 != nil { return *x.Field4001 } return 0 } type Message33968_Message33969 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message33968_Message33969) Reset() { *x = Message33968_Message33969{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message33968_Message33969) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message33968_Message33969) ProtoMessage() {} func (x *Message33968_Message33969) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message33968_Message33969.ProtoReflect.Descriptor instead. func (*Message33968_Message33969) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{12, 0} } type Message18831_Message18832 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field18836 *int32 `protobuf:"varint,2,opt,name=field18836" json:"field18836,omitempty"` Field18837 *string `protobuf:"bytes,5,opt,name=field18837" json:"field18837,omitempty"` Field18838 *float32 `protobuf:"fixed32,3,opt,name=field18838" json:"field18838,omitempty"` Field18839 *float32 `protobuf:"fixed32,9,opt,name=field18839" json:"field18839,omitempty"` Field18840 *int32 `protobuf:"varint,11,opt,name=field18840" json:"field18840,omitempty"` Field18841 []uint64 `protobuf:"varint,4,rep,name=field18841" json:"field18841,omitempty"` Message18833 []*Message18831_Message18832_Message18833 `protobuf:"group,6,rep,name=Message18833,json=message18833" json:"message18833,omitempty"` } func (x *Message18831_Message18832) Reset() { *x = Message18831_Message18832{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message18831_Message18832) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message18831_Message18832) ProtoMessage() {} func (x *Message18831_Message18832) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message18831_Message18832.ProtoReflect.Descriptor instead. func (*Message18831_Message18832) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{14, 0} } func (x *Message18831_Message18832) GetField18836() int32 { if x != nil && x.Field18836 != nil { return *x.Field18836 } return 0 } func (x *Message18831_Message18832) GetField18837() string { if x != nil && x.Field18837 != nil { return *x.Field18837 } return "" } func (x *Message18831_Message18832) GetField18838() float32 { if x != nil && x.Field18838 != nil { return *x.Field18838 } return 0 } func (x *Message18831_Message18832) GetField18839() float32 { if x != nil && x.Field18839 != nil { return *x.Field18839 } return 0 } func (x *Message18831_Message18832) GetField18840() int32 { if x != nil && x.Field18840 != nil { return *x.Field18840 } return 0 } func (x *Message18831_Message18832) GetField18841() []uint64 { if x != nil { return x.Field18841 } return nil } func (x *Message18831_Message18832) GetMessage18833() []*Message18831_Message18832_Message18833 { if x != nil { return x.Message18833 } return nil } type Message18831_Message18832_Message18833 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field18843 *uint64 `protobuf:"varint,7,req,name=field18843" json:"field18843,omitempty"` Field18844 *string `protobuf:"bytes,8,opt,name=field18844" json:"field18844,omitempty"` Field18845 *float32 `protobuf:"fixed32,10,opt,name=field18845" json:"field18845,omitempty"` Field18846 *int32 `protobuf:"varint,12,opt,name=field18846" json:"field18846,omitempty"` Field18847 *bool `protobuf:"varint,13,opt,name=field18847" json:"field18847,omitempty"` } func (x *Message18831_Message18832_Message18833) Reset() { *x = Message18831_Message18832_Message18833{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message18831_Message18832_Message18833) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message18831_Message18832_Message18833) ProtoMessage() {} func (x *Message18831_Message18832_Message18833) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message18831_Message18832_Message18833.ProtoReflect.Descriptor instead. func (*Message18831_Message18832_Message18833) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{14, 0, 0} } func (x *Message18831_Message18832_Message18833) GetField18843() uint64 { if x != nil && x.Field18843 != nil { return *x.Field18843 } return 0 } func (x *Message18831_Message18832_Message18833) GetField18844() string { if x != nil && x.Field18844 != nil { return *x.Field18844 } return "" } func (x *Message18831_Message18832_Message18833) GetField18845() float32 { if x != nil && x.Field18845 != nil { return *x.Field18845 } return 0 } func (x *Message18831_Message18832_Message18833) GetField18846() int32 { if x != nil && x.Field18846 != nil { return *x.Field18846 } return 0 } func (x *Message18831_Message18832_Message18833) GetField18847() bool { if x != nil && x.Field18847 != nil { return *x.Field18847 } return false } type Message4144_Message4145 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field4165 *Enum4146 `protobuf:"varint,2,req,name=field4165,enum=benchmarks.google_message3.Enum4146" json:"field4165,omitempty"` Field4166 *int32 `protobuf:"varint,3,req,name=field4166" json:"field4166,omitempty"` Field4167 *Enum4160 `protobuf:"varint,9,opt,name=field4167,enum=benchmarks.google_message3.Enum4160" json:"field4167,omitempty"` Field4168 []byte `protobuf:"bytes,4,opt,name=field4168" json:"field4168,omitempty"` Field4169 *Enum4152 `protobuf:"varint,5,opt,name=field4169,enum=benchmarks.google_message3.Enum4152" json:"field4169,omitempty"` Field4170 *string `protobuf:"bytes,6,opt,name=field4170" json:"field4170,omitempty"` } func (x *Message4144_Message4145) Reset() { *x = Message4144_Message4145{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message4144_Message4145) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message4144_Message4145) ProtoMessage() {} func (x *Message4144_Message4145) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message4144_Message4145.ProtoReflect.Descriptor instead. func (*Message4144_Message4145) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{17, 0} } func (x *Message4144_Message4145) GetField4165() Enum4146 { if x != nil && x.Field4165 != nil { return *x.Field4165 } return Enum4146_ENUM_VALUE4147 } func (x *Message4144_Message4145) GetField4166() int32 { if x != nil && x.Field4166 != nil { return *x.Field4166 } return 0 } func (x *Message4144_Message4145) GetField4167() Enum4160 { if x != nil && x.Field4167 != nil { return *x.Field4167 } return Enum4160_ENUM_VALUE4161 } func (x *Message4144_Message4145) GetField4168() []byte { if x != nil { return x.Field4168 } return nil } func (x *Message4144_Message4145) GetField4169() Enum4152 { if x != nil && x.Field4169 != nil { return *x.Field4169 } return Enum4152_ENUM_VALUE4153 } func (x *Message4144_Message4145) GetField4170() string { if x != nil && x.Field4170 != nil { return *x.Field4170 } return "" } type Message35573_Message35574 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message35573_Message35574) Reset() { *x = Message35573_Message35574{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message35573_Message35574) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message35573_Message35574) ProtoMessage() {} func (x *Message35573_Message35574) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message35573_Message35574.ProtoReflect.Descriptor instead. func (*Message35573_Message35574) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{18, 0} } type Message35573_Message35575 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field35709 *int64 `protobuf:"varint,2,opt,name=field35709" json:"field35709,omitempty"` Field35710 *string `protobuf:"bytes,3,opt,name=field35710" json:"field35710,omitempty"` Field35711 *string `protobuf:"bytes,19,opt,name=field35711" json:"field35711,omitempty"` Field35712 *int32 `protobuf:"varint,20,opt,name=field35712" json:"field35712,omitempty"` Field35713 *int32 `protobuf:"varint,21,opt,name=field35713" json:"field35713,omitempty"` Field35714 *int32 `protobuf:"varint,22,opt,name=field35714" json:"field35714,omitempty"` Field35715 *bool `protobuf:"varint,23,opt,name=field35715" json:"field35715,omitempty"` Field35716 *int32 `protobuf:"varint,47,opt,name=field35716" json:"field35716,omitempty"` Field35717 *int32 `protobuf:"varint,48,opt,name=field35717" json:"field35717,omitempty"` Field35718 *bool `protobuf:"varint,24,opt,name=field35718" json:"field35718,omitempty"` Field35719 *uint64 `protobuf:"fixed64,25,opt,name=field35719" json:"field35719,omitempty"` Field35720 []byte `protobuf:"bytes,52,opt,name=field35720" json:"field35720,omitempty"` Field35721 *int32 `protobuf:"varint,18,opt,name=field35721" json:"field35721,omitempty"` Field35722 *uint32 `protobuf:"fixed32,43,opt,name=field35722" json:"field35722,omitempty"` Field35723 *bool `protobuf:"varint,26,opt,name=field35723" json:"field35723,omitempty"` Field35724 *int32 `protobuf:"varint,27,opt,name=field35724" json:"field35724,omitempty"` Field35725 *int32 `protobuf:"varint,17,opt,name=field35725" json:"field35725,omitempty"` Field35726 *bool `protobuf:"varint,45,opt,name=field35726" json:"field35726,omitempty"` Field35727 []int32 `protobuf:"varint,33,rep,name=field35727" json:"field35727,omitempty"` Field35728 []int32 `protobuf:"varint,58,rep,name=field35728" json:"field35728,omitempty"` Field35729 *float32 `protobuf:"fixed32,34,opt,name=field35729" json:"field35729,omitempty"` Field35730 *float32 `protobuf:"fixed32,1009,opt,name=field35730" json:"field35730,omitempty"` Field35731 *int32 `protobuf:"varint,28,opt,name=field35731" json:"field35731,omitempty"` Field35732 []uint64 `protobuf:"fixed64,1001,rep,name=field35732" json:"field35732,omitempty"` Field35733 []uint64 `protobuf:"fixed64,1002,rep,name=field35733" json:"field35733,omitempty"` Field35734 *int32 `protobuf:"varint,44,opt,name=field35734" json:"field35734,omitempty"` Field35735 *int32 `protobuf:"varint,50,opt,name=field35735" json:"field35735,omitempty"` Field35736 *int32 `protobuf:"varint,36,opt,name=field35736" json:"field35736,omitempty"` Field35737 *int32 `protobuf:"varint,40,opt,name=field35737" json:"field35737,omitempty"` Field35738 *bool `protobuf:"varint,1016,opt,name=field35738" json:"field35738,omitempty"` Field35739 *bool `protobuf:"varint,1010,opt,name=field35739" json:"field35739,omitempty"` Field35740 *int32 `protobuf:"varint,37,opt,name=field35740" json:"field35740,omitempty"` Field35741 *int32 `protobuf:"varint,38,opt,name=field35741" json:"field35741,omitempty"` Field35742 *string `protobuf:"bytes,46,opt,name=field35742" json:"field35742,omitempty"` Field35743 *uint32 `protobuf:"varint,60,opt,name=field35743" json:"field35743,omitempty"` Field35744 [][]byte `protobuf:"bytes,56,rep,name=field35744" json:"field35744,omitempty"` Field35745 *Message0 `protobuf:"bytes,57,opt,name=field35745" json:"field35745,omitempty"` Message35576 *Message35573_Message35575_Message35576 `protobuf:"group,4,req,name=Message35576,json=message35576" json:"message35576,omitempty"` } func (x *Message35573_Message35575) Reset() { *x = Message35573_Message35575{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message35573_Message35575) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message35573_Message35575) ProtoMessage() {} func (x *Message35573_Message35575) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message35573_Message35575.ProtoReflect.Descriptor instead. func (*Message35573_Message35575) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{18, 1} } func (x *Message35573_Message35575) GetField35709() int64 { if x != nil && x.Field35709 != nil { return *x.Field35709 } return 0 } func (x *Message35573_Message35575) GetField35710() string { if x != nil && x.Field35710 != nil { return *x.Field35710 } return "" } func (x *Message35573_Message35575) GetField35711() string { if x != nil && x.Field35711 != nil { return *x.Field35711 } return "" } func (x *Message35573_Message35575) GetField35712() int32 { if x != nil && x.Field35712 != nil { return *x.Field35712 } return 0 } func (x *Message35573_Message35575) GetField35713() int32 { if x != nil && x.Field35713 != nil { return *x.Field35713 } return 0 } func (x *Message35573_Message35575) GetField35714() int32 { if x != nil && x.Field35714 != nil { return *x.Field35714 } return 0 } func (x *Message35573_Message35575) GetField35715() bool { if x != nil && x.Field35715 != nil { return *x.Field35715 } return false } func (x *Message35573_Message35575) GetField35716() int32 { if x != nil && x.Field35716 != nil { return *x.Field35716 } return 0 } func (x *Message35573_Message35575) GetField35717() int32 { if x != nil && x.Field35717 != nil { return *x.Field35717 } return 0 } func (x *Message35573_Message35575) GetField35718() bool { if x != nil && x.Field35718 != nil { return *x.Field35718 } return false } func (x *Message35573_Message35575) GetField35719() uint64 { if x != nil && x.Field35719 != nil { return *x.Field35719 } return 0 } func (x *Message35573_Message35575) GetField35720() []byte { if x != nil { return x.Field35720 } return nil } func (x *Message35573_Message35575) GetField35721() int32 { if x != nil && x.Field35721 != nil { return *x.Field35721 } return 0 } func (x *Message35573_Message35575) GetField35722() uint32 { if x != nil && x.Field35722 != nil { return *x.Field35722 } return 0 } func (x *Message35573_Message35575) GetField35723() bool { if x != nil && x.Field35723 != nil { return *x.Field35723 } return false } func (x *Message35573_Message35575) GetField35724() int32 { if x != nil && x.Field35724 != nil { return *x.Field35724 } return 0 } func (x *Message35573_Message35575) GetField35725() int32 { if x != nil && x.Field35725 != nil { return *x.Field35725 } return 0 } func (x *Message35573_Message35575) GetField35726() bool { if x != nil && x.Field35726 != nil { return *x.Field35726 } return false } func (x *Message35573_Message35575) GetField35727() []int32 { if x != nil { return x.Field35727 } return nil } func (x *Message35573_Message35575) GetField35728() []int32 { if x != nil { return x.Field35728 } return nil } func (x *Message35573_Message35575) GetField35729() float32 { if x != nil && x.Field35729 != nil { return *x.Field35729 } return 0 } func (x *Message35573_Message35575) GetField35730() float32 { if x != nil && x.Field35730 != nil { return *x.Field35730 } return 0 } func (x *Message35573_Message35575) GetField35731() int32 { if x != nil && x.Field35731 != nil { return *x.Field35731 } return 0 } func (x *Message35573_Message35575) GetField35732() []uint64 { if x != nil { return x.Field35732 } return nil } func (x *Message35573_Message35575) GetField35733() []uint64 { if x != nil { return x.Field35733 } return nil } func (x *Message35573_Message35575) GetField35734() int32 { if x != nil && x.Field35734 != nil { return *x.Field35734 } return 0 } func (x *Message35573_Message35575) GetField35735() int32 { if x != nil && x.Field35735 != nil { return *x.Field35735 } return 0 } func (x *Message35573_Message35575) GetField35736() int32 { if x != nil && x.Field35736 != nil { return *x.Field35736 } return 0 } func (x *Message35573_Message35575) GetField35737() int32 { if x != nil && x.Field35737 != nil { return *x.Field35737 } return 0 } func (x *Message35573_Message35575) GetField35738() bool { if x != nil && x.Field35738 != nil { return *x.Field35738 } return false } func (x *Message35573_Message35575) GetField35739() bool { if x != nil && x.Field35739 != nil { return *x.Field35739 } return false } func (x *Message35573_Message35575) GetField35740() int32 { if x != nil && x.Field35740 != nil { return *x.Field35740 } return 0 } func (x *Message35573_Message35575) GetField35741() int32 { if x != nil && x.Field35741 != nil { return *x.Field35741 } return 0 } func (x *Message35573_Message35575) GetField35742() string { if x != nil && x.Field35742 != nil { return *x.Field35742 } return "" } func (x *Message35573_Message35575) GetField35743() uint32 { if x != nil && x.Field35743 != nil { return *x.Field35743 } return 0 } func (x *Message35573_Message35575) GetField35744() [][]byte { if x != nil { return x.Field35744 } return nil } func (x *Message35573_Message35575) GetField35745() *Message0 { if x != nil { return x.Field35745 } return nil } func (x *Message35573_Message35575) GetMessage35576() *Message35573_Message35575_Message35576 { if x != nil { return x.Message35576 } return nil } type Message35573_Message35575_Message35576 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field35747 *uint64 `protobuf:"fixed64,5,opt,name=field35747" json:"field35747,omitempty"` Field35748 *int32 `protobuf:"varint,6,opt,name=field35748" json:"field35748,omitempty"` Field35749 *int32 `protobuf:"varint,49,opt,name=field35749" json:"field35749,omitempty"` Field35750 *int32 `protobuf:"varint,7,opt,name=field35750" json:"field35750,omitempty"` Field35751 *uint32 `protobuf:"varint,59,opt,name=field35751" json:"field35751,omitempty"` Field35752 *int32 `protobuf:"varint,14,opt,name=field35752" json:"field35752,omitempty"` Field35753 *int32 `protobuf:"varint,15,opt,name=field35753" json:"field35753,omitempty"` Field35754 *int32 `protobuf:"varint,35,opt,name=field35754" json:"field35754,omitempty"` Field35755 []byte `protobuf:"bytes,53,opt,name=field35755" json:"field35755,omitempty"` Field35756 *int32 `protobuf:"varint,8,opt,name=field35756" json:"field35756,omitempty"` Field35757 *string `protobuf:"bytes,9,opt,name=field35757" json:"field35757,omitempty"` Field35758 *uint64 `protobuf:"fixed64,10,opt,name=field35758" json:"field35758,omitempty"` Field35759 *int32 `protobuf:"varint,11,opt,name=field35759" json:"field35759,omitempty"` Field35760 *int32 `protobuf:"varint,12,opt,name=field35760" json:"field35760,omitempty"` Field35761 *int32 `protobuf:"varint,41,opt,name=field35761" json:"field35761,omitempty"` Field35762 *int32 `protobuf:"varint,30,opt,name=field35762" json:"field35762,omitempty"` Field35763 *int32 `protobuf:"varint,31,opt,name=field35763" json:"field35763,omitempty"` Field35764 *int32 `protobuf:"varint,13,opt,name=field35764" json:"field35764,omitempty"` Field35765 []byte `protobuf:"bytes,39,opt,name=field35765" json:"field35765,omitempty"` Field35766 *string `protobuf:"bytes,29,opt,name=field35766" json:"field35766,omitempty"` Field35767 *int32 `protobuf:"varint,42,opt,name=field35767" json:"field35767,omitempty"` Field35768 []int32 `protobuf:"varint,32,rep,name=field35768" json:"field35768,omitempty"` Field35769 []int32 `protobuf:"varint,51,rep,name=field35769" json:"field35769,omitempty"` Field35770 *int64 `protobuf:"varint,54,opt,name=field35770" json:"field35770,omitempty"` Field35771 *Message0 `protobuf:"bytes,55,opt,name=field35771" json:"field35771,omitempty"` } func (x *Message35573_Message35575_Message35576) Reset() { *x = Message35573_Message35575_Message35576{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message35573_Message35575_Message35576) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message35573_Message35575_Message35576) ProtoMessage() {} func (x *Message35573_Message35575_Message35576) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message35573_Message35575_Message35576.ProtoReflect.Descriptor instead. func (*Message35573_Message35575_Message35576) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{18, 1, 0} } func (x *Message35573_Message35575_Message35576) GetField35747() uint64 { if x != nil && x.Field35747 != nil { return *x.Field35747 } return 0 } func (x *Message35573_Message35575_Message35576) GetField35748() int32 { if x != nil && x.Field35748 != nil { return *x.Field35748 } return 0 } func (x *Message35573_Message35575_Message35576) GetField35749() int32 { if x != nil && x.Field35749 != nil { return *x.Field35749 } return 0 } func (x *Message35573_Message35575_Message35576) GetField35750() int32 { if x != nil && x.Field35750 != nil { return *x.Field35750 } return 0 } func (x *Message35573_Message35575_Message35576) GetField35751() uint32 { if x != nil && x.Field35751 != nil { return *x.Field35751 } return 0 } func (x *Message35573_Message35575_Message35576) GetField35752() int32 { if x != nil && x.Field35752 != nil { return *x.Field35752 } return 0 } func (x *Message35573_Message35575_Message35576) GetField35753() int32 { if x != nil && x.Field35753 != nil { return *x.Field35753 } return 0 } func (x *Message35573_Message35575_Message35576) GetField35754() int32 { if x != nil && x.Field35754 != nil { return *x.Field35754 } return 0 } func (x *Message35573_Message35575_Message35576) GetField35755() []byte { if x != nil { return x.Field35755 } return nil } func (x *Message35573_Message35575_Message35576) GetField35756() int32 { if x != nil && x.Field35756 != nil { return *x.Field35756 } return 0 } func (x *Message35573_Message35575_Message35576) GetField35757() string { if x != nil && x.Field35757 != nil { return *x.Field35757 } return "" } func (x *Message35573_Message35575_Message35576) GetField35758() uint64 { if x != nil && x.Field35758 != nil { return *x.Field35758 } return 0 } func (x *Message35573_Message35575_Message35576) GetField35759() int32 { if x != nil && x.Field35759 != nil { return *x.Field35759 } return 0 } func (x *Message35573_Message35575_Message35576) GetField35760() int32 { if x != nil && x.Field35760 != nil { return *x.Field35760 } return 0 } func (x *Message35573_Message35575_Message35576) GetField35761() int32 { if x != nil && x.Field35761 != nil { return *x.Field35761 } return 0 } func (x *Message35573_Message35575_Message35576) GetField35762() int32 { if x != nil && x.Field35762 != nil { return *x.Field35762 } return 0 } func (x *Message35573_Message35575_Message35576) GetField35763() int32 { if x != nil && x.Field35763 != nil { return *x.Field35763 } return 0 } func (x *Message35573_Message35575_Message35576) GetField35764() int32 { if x != nil && x.Field35764 != nil { return *x.Field35764 } return 0 } func (x *Message35573_Message35575_Message35576) GetField35765() []byte { if x != nil { return x.Field35765 } return nil } func (x *Message35573_Message35575_Message35576) GetField35766() string { if x != nil && x.Field35766 != nil { return *x.Field35766 } return "" } func (x *Message35573_Message35575_Message35576) GetField35767() int32 { if x != nil && x.Field35767 != nil { return *x.Field35767 } return 0 } func (x *Message35573_Message35575_Message35576) GetField35768() []int32 { if x != nil { return x.Field35768 } return nil } func (x *Message35573_Message35575_Message35576) GetField35769() []int32 { if x != nil { return x.Field35769 } return nil } func (x *Message35573_Message35575_Message35576) GetField35770() int64 { if x != nil && x.Field35770 != nil { return *x.Field35770 } return 0 } func (x *Message35573_Message35575_Message35576) GetField35771() *Message0 { if x != nil { return x.Field35771 } return nil } type Message36858_Message36859 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field36968 *Enum36860 `protobuf:"varint,9,req,name=field36968,enum=benchmarks.google_message3.Enum36860" json:"field36968,omitempty"` Field36969 *float32 `protobuf:"fixed32,10,opt,name=field36969" json:"field36969,omitempty"` } func (x *Message36858_Message36859) Reset() { *x = Message36858_Message36859{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message36858_Message36859) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message36858_Message36859) ProtoMessage() {} func (x *Message36858_Message36859) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message36858_Message36859.ProtoReflect.Descriptor instead. func (*Message36858_Message36859) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP(), []int{19, 0} } func (x *Message36858_Message36859) GetField36968() Enum36860 { if x != nil && x.Field36968 != nil { return *x.Field36968 } return Enum36860_ENUM_VALUE36861 } func (x *Message36858_Message36859) GetField36969() float32 { if x != nil && x.Field36969 != nil { return *x.Field36969 } return 0 } var file_datasets_google_message3_benchmark_message3_2_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*Message0)(nil), ExtensionType: (*Message34621)(nil), Field: 17562023, Name: "benchmarks.google_message3.Message34621.field34669", Tag: "bytes,17562023,opt,name=field34669", Filename: "datasets/google_message3/benchmark_message3_2.proto", }, } // Extension fields to Message0. var ( // optional benchmarks.google_message3.Message34621 field34669 = 17562023; E_Message34621_Field34669 = &file_datasets_google_message3_benchmark_message3_2_proto_extTypes[0] ) var File_datasets_google_message3_benchmark_message3_2_proto protoreflect.FileDescriptor var file_datasets_google_message3_benchmark_message3_2_proto_rawDesc = []byte{ 0x0a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x35, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x37, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x38, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x91, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x32, 0x38, 0x35, 0x33, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x38, 0x36, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x32, 0x32, 0x38, 0x35, 0x34, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x38, 0x36, 0x39, 0x12, 0x22, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x38, 0x37, 0x30, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x38, 0x37, 0x30, 0x12, 0x22, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x38, 0x37, 0x31, 0x18, 0x03, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x38, 0x37, 0x31, 0x12, 0x22, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x38, 0x37, 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x38, 0x37, 0x32, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x38, 0x37, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x38, 0x37, 0x33, 0x22, 0xda, 0x09, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x34, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x33, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x33, 0x33, 0x12, 0x46, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x33, 0x34, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x33, 0x34, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x33, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x34, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x33, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x33, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x33, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x33, 0x37, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x33, 0x37, 0x12, 0x46, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x33, 0x38, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x33, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x33, 0x39, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x33, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x34, 0x30, 0x18, 0x06, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x34, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x34, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x34, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x34, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x34, 0x32, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x34, 0x33, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x31, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x34, 0x33, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x34, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x37, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x34, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x34, 0x35, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x34, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x34, 0x36, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x34, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x34, 0x37, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x34, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x34, 0x38, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x34, 0x38, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x34, 0x39, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x34, 0x39, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x35, 0x30, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x35, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x35, 0x31, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x35, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x35, 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x35, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x35, 0x33, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x35, 0x33, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x35, 0x34, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x37, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x35, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x35, 0x35, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x35, 0x35, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x35, 0x36, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x35, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x35, 0x36, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x35, 0x37, 0x18, 0x19, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x36, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x35, 0x37, 0x22, 0xa2, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x34, 0x30, 0x33, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x38, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x34, 0x30, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x38, 0x31, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x38, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x34, 0x30, 0x32, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x38, 0x32, 0x22, 0xa8, 0x09, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x39, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x33, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x33, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x33, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x33, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x33, 0x33, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x33, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x33, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x33, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x33, 0x35, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x33, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x33, 0x36, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x33, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x33, 0x37, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x33, 0x37, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x33, 0x38, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x33, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x33, 0x39, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x33, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x34, 0x30, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x34, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x34, 0x31, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x34, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x34, 0x32, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x34, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x34, 0x33, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x34, 0x33, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x34, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x37, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x34, 0x34, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x34, 0x35, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x34, 0x35, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x34, 0x36, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x34, 0x36, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x34, 0x37, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x34, 0x37, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x34, 0x38, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x34, 0x38, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x34, 0x39, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x34, 0x39, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x35, 0x30, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x35, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x35, 0x31, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x35, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x35, 0x32, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x35, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x35, 0x33, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x35, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x35, 0x34, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x35, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x35, 0x35, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x35, 0x35, 0x22, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x37, 0x34, 0x35, 0x34, 0x22, 0xae, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x37, 0x33, 0x35, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x31, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x31, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x31, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x31, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x31, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x31, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x31, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x31, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x31, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x31, 0x34, 0x22, 0xb9, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x37, 0x33, 0x36, 0x30, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x32, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x37, 0x33, 0x35, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x32, 0x36, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x32, 0x37, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x32, 0x37, 0x33, 0x36, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x32, 0x37, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x32, 0x38, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x37, 0x33, 0x35, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x32, 0x38, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x32, 0x39, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x32, 0x39, 0x22, 0xa7, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x34, 0x33, 0x38, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x34, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x34, 0x36, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x34, 0x37, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x34, 0x33, 0x38, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x34, 0x37, 0x12, 0x46, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x34, 0x38, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x34, 0x38, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x34, 0x39, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x34, 0x33, 0x38, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x34, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x35, 0x30, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x35, 0x30, 0x22, 0xd5, 0x07, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x34, 0x36, 0x32, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x35, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x35, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x35, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x35, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x35, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x35, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x35, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x35, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x35, 0x35, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x35, 0x35, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x35, 0x36, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x35, 0x36, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x35, 0x37, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x34, 0x36, 0x31, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x35, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x35, 0x38, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x35, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x35, 0x39, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x35, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x36, 0x30, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x36, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x36, 0x31, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x36, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x36, 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x36, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x36, 0x33, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x36, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x36, 0x34, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x36, 0x34, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x36, 0x35, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x36, 0x35, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x36, 0x36, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x34, 0x36, 0x32, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x36, 0x36, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x36, 0x37, 0x18, 0x64, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x36, 0x37, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x36, 0x38, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x36, 0x38, 0x32, 0x71, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x36, 0x39, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xa7, 0xf3, 0xaf, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x34, 0x36, 0x32, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x36, 0x39, 0x22, 0xa5, 0x04, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x34, 0x37, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x38, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x38, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x38, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x38, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x38, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x38, 0x36, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x38, 0x37, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x35, 0x34, 0x37, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x38, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x38, 0x38, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x38, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x38, 0x39, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x38, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x39, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x39, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x39, 0x31, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x39, 0x31, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x39, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x39, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x39, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x39, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x39, 0x34, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x39, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x39, 0x35, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x39, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x39, 0x36, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x39, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x39, 0x37, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x34, 0x39, 0x37, 0x22, 0xf8, 0x01, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x34, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x35, 0x35, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x35, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x35, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x35, 0x36, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x35, 0x37, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x35, 0x37, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x35, 0x38, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x33, 0x30, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x35, 0x38, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x35, 0x39, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x35, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x30, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x31, 0x22, 0x4e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x36, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x37, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x37, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x37, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x37, 0x31, 0x22, 0xfb, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x33, 0x39, 0x36, 0x38, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x33, 0x39, 0x36, 0x39, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x33, 0x39, 0x36, 0x38, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x33, 0x39, 0x36, 0x39, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x33, 0x39, 0x36, 0x39, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x38, 0x39, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x33, 0x39, 0x35, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x38, 0x39, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x39, 0x30, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x39, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x39, 0x31, 0x18, 0x6c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x39, 0x31, 0x12, 0x46, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x39, 0x32, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x39, 0x32, 0x1a, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x33, 0x39, 0x36, 0x39, 0x22, 0x88, 0x07, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x36, 0x34, 0x34, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x30, 0x31, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x30, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x30, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x30, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x30, 0x33, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x30, 0x33, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x30, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x30, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x30, 0x35, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x30, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x30, 0x36, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x30, 0x36, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x30, 0x37, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x36, 0x33, 0x37, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x30, 0x37, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x30, 0x38, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x31, 0x32, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x30, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x30, 0x39, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x30, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x31, 0x30, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x36, 0x34, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x31, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x31, 0x31, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x31, 0x31, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x31, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x31, 0x32, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x31, 0x33, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x31, 0x33, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x31, 0x34, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x31, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x31, 0x35, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x31, 0x35, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x31, 0x36, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x31, 0x36, 0x22, 0xd3, 0x04, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x38, 0x33, 0x31, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x38, 0x33, 0x32, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x38, 0x33, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x38, 0x33, 0x32, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x38, 0x33, 0x32, 0x1a, 0xe7, 0x03, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x38, 0x33, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x33, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x33, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x33, 0x37, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x33, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x33, 0x38, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x33, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x33, 0x39, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x33, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x34, 0x30, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x34, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x34, 0x31, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x34, 0x31, 0x12, 0x66, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x38, 0x33, 0x33, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x42, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x38, 0x33, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x38, 0x33, 0x32, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x38, 0x33, 0x33, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x38, 0x33, 0x33, 0x1a, 0xae, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x38, 0x33, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x34, 0x33, 0x18, 0x07, 0x20, 0x02, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x34, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x34, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x34, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x34, 0x35, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x34, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x34, 0x36, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x34, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x34, 0x37, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x34, 0x37, 0x22, 0xa2, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x39, 0x30, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x34, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x33, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x34, 0x31, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x34, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x34, 0x32, 0x22, 0xf4, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x38, 0x37, 0x34, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x38, 0x38, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x33, 0x39, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x38, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x38, 0x39, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x38, 0x39, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x39, 0x30, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x38, 0x37, 0x33, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x39, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x39, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x39, 0x31, 0x2a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x2a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x2a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x22, 0x9a, 0x03, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x31, 0x34, 0x34, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x31, 0x34, 0x35, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x33, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x31, 0x34, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x31, 0x34, 0x35, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x31, 0x34, 0x35, 0x1a, 0xb3, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x31, 0x34, 0x35, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x36, 0x35, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x34, 0x31, 0x34, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x36, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x36, 0x36, 0x18, 0x03, 0x20, 0x02, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x36, 0x36, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x36, 0x37, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x34, 0x31, 0x36, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x36, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x36, 0x38, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x36, 0x38, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x36, 0x39, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x34, 0x31, 0x35, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x36, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x37, 0x30, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x37, 0x30, 0x22, 0x98, 0x15, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x37, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x36, 0x39, 0x35, 0x18, 0x10, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x36, 0x39, 0x35, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x36, 0x39, 0x36, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x36, 0x39, 0x36, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x36, 0x39, 0x37, 0x18, 0xec, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x36, 0x39, 0x37, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x36, 0x39, 0x38, 0x18, 0xeb, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x36, 0x39, 0x38, 0x12, 0x5a, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x37, 0x34, 0x18, 0xf4, 0x07, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x37, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x37, 0x34, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x37, 0x34, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x30, 0x30, 0x18, 0xf3, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x30, 0x30, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x30, 0x31, 0x18, 0xed, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x30, 0x31, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x30, 0x32, 0x18, 0xee, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x30, 0x32, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x30, 0x33, 0x18, 0xef, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x30, 0x33, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x30, 0x34, 0x18, 0xf0, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x30, 0x34, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x37, 0x35, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x37, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x37, 0x35, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x37, 0x35, 0x1a, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x37, 0x34, 0x1a, 0x98, 0x11, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x37, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x30, 0x39, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x30, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x31, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x31, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x31, 0x31, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x31, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x31, 0x32, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x31, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x31, 0x33, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x31, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x31, 0x34, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x31, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x31, 0x35, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x31, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x31, 0x36, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x31, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x31, 0x37, 0x18, 0x30, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x31, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x31, 0x38, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x31, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x31, 0x39, 0x18, 0x19, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x31, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x32, 0x30, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x32, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x32, 0x31, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x32, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x32, 0x32, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x32, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x32, 0x33, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x32, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x32, 0x34, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x32, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x32, 0x35, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x32, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x32, 0x36, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x32, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x32, 0x37, 0x18, 0x21, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x32, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x32, 0x38, 0x18, 0x3a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x32, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x32, 0x39, 0x18, 0x22, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x32, 0x39, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x33, 0x30, 0x18, 0xf1, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x33, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x33, 0x31, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x33, 0x31, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x33, 0x32, 0x18, 0xe9, 0x07, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x33, 0x32, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x33, 0x33, 0x18, 0xea, 0x07, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x33, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x33, 0x34, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x33, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x33, 0x35, 0x18, 0x32, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x33, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x33, 0x36, 0x18, 0x24, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x33, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x33, 0x37, 0x18, 0x28, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x33, 0x37, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x33, 0x38, 0x18, 0xf8, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x33, 0x38, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x33, 0x39, 0x18, 0xf2, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x33, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x34, 0x30, 0x18, 0x25, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x34, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x34, 0x31, 0x18, 0x26, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x34, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x34, 0x32, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x34, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x34, 0x33, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x34, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x34, 0x34, 0x18, 0x38, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x34, 0x34, 0x12, 0x44, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x34, 0x35, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x34, 0x35, 0x12, 0x66, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x37, 0x36, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0a, 0x32, 0x42, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x37, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x37, 0x35, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x37, 0x36, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x37, 0x36, 0x1a, 0xd4, 0x06, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x37, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x34, 0x37, 0x18, 0x05, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x34, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x34, 0x38, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x34, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x34, 0x39, 0x18, 0x31, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x34, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x35, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x35, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x35, 0x31, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x35, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x35, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x35, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x35, 0x33, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x35, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x35, 0x34, 0x18, 0x23, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x35, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x35, 0x35, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x35, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x35, 0x36, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x35, 0x37, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x35, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x35, 0x38, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x35, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x35, 0x39, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x35, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x36, 0x30, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x36, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x36, 0x31, 0x18, 0x29, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x36, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x36, 0x32, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x36, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x36, 0x33, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x36, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x36, 0x34, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x36, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x36, 0x35, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x36, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x36, 0x36, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x36, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x36, 0x37, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x36, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x36, 0x38, 0x18, 0x20, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x36, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x36, 0x39, 0x18, 0x33, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x36, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x37, 0x30, 0x18, 0x36, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x37, 0x30, 0x12, 0x44, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x37, 0x31, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x37, 0x37, 0x31, 0x22, 0xea, 0x04, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x35, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x35, 0x36, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x35, 0x37, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x35, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x35, 0x38, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x35, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x35, 0x39, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x35, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x36, 0x30, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x36, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x36, 0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x36, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x36, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x36, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x36, 0x33, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x36, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x36, 0x34, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x36, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x36, 0x35, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x36, 0x35, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x36, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x30, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x36, 0x36, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x35, 0x39, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x35, 0x38, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x35, 0x39, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x35, 0x39, 0x1a, 0x75, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x36, 0x38, 0x35, 0x39, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x36, 0x38, 0x18, 0x09, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x36, 0x38, 0x36, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x36, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x36, 0x39, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x36, 0x39, 0x36, 0x39, 0x22, 0xd8, 0x05, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x31, 0x37, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x33, 0x37, 0x18, 0x06, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x33, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x33, 0x38, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x33, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x33, 0x39, 0x18, 0x04, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x33, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x34, 0x30, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x34, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x34, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x34, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x34, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x34, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x34, 0x33, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x34, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x34, 0x34, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x34, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x34, 0x35, 0x18, 0x14, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x34, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x34, 0x36, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x34, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x34, 0x37, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x34, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x34, 0x38, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x34, 0x38, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x34, 0x39, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x31, 0x35, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x34, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x35, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x35, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x35, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x35, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x35, 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x35, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x35, 0x33, 0x18, 0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x35, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x35, 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x35, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x35, 0x35, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x35, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x35, 0x36, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x35, 0x37, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x35, 0x37, 0x22, 0xdf, 0x27, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x32, 0x38, 0x33, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x37, 0x38, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x37, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x37, 0x39, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x37, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x38, 0x30, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x38, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x38, 0x31, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x38, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x38, 0x32, 0x18, 0x6c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x38, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x38, 0x33, 0x18, 0x6d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x38, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x38, 0x34, 0x18, 0x69, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x38, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x38, 0x35, 0x18, 0x71, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x38, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x38, 0x36, 0x18, 0x72, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x38, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x38, 0x37, 0x18, 0x7c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x38, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x38, 0x38, 0x18, 0x7d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x38, 0x38, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x38, 0x39, 0x18, 0x80, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x38, 0x39, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x39, 0x30, 0x18, 0x87, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x39, 0x30, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x39, 0x31, 0x18, 0xa6, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x39, 0x31, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x39, 0x32, 0x18, 0x88, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x39, 0x32, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x39, 0x33, 0x18, 0x8c, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x39, 0x33, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x39, 0x34, 0x18, 0xab, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x39, 0x34, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x39, 0x35, 0x18, 0x94, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x39, 0x35, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x39, 0x36, 0x18, 0x91, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x39, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x39, 0x37, 0x18, 0x75, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x39, 0x37, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x39, 0x38, 0x18, 0x92, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x39, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x39, 0x39, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x34, 0x39, 0x39, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x30, 0x30, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x30, 0x30, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x30, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x30, 0x31, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x30, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x30, 0x32, 0x12, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x30, 0x33, 0x18, 0x9b, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x32, 0x35, 0x33, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x30, 0x33, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x30, 0x34, 0x18, 0xb8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x30, 0x34, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x30, 0x35, 0x18, 0xa3, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x30, 0x35, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x30, 0x36, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x30, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x30, 0x37, 0x18, 0x14, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x30, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x30, 0x38, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x30, 0x38, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x30, 0x39, 0x18, 0xc2, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x30, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x31, 0x30, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x31, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x31, 0x31, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x31, 0x31, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x31, 0x32, 0x18, 0xb2, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x31, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x31, 0x33, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x31, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x31, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x31, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x31, 0x35, 0x18, 0x64, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x31, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x31, 0x36, 0x18, 0x65, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x31, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x31, 0x37, 0x18, 0x66, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x31, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x31, 0x38, 0x18, 0x67, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x31, 0x38, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x31, 0x39, 0x18, 0x68, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x31, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x32, 0x30, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x32, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x32, 0x31, 0x18, 0x70, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x32, 0x31, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x32, 0x32, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x32, 0x32, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x32, 0x33, 0x18, 0x73, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x32, 0x33, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x32, 0x34, 0x18, 0x77, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x32, 0x34, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x32, 0x35, 0x18, 0x7f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x32, 0x35, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x32, 0x36, 0x18, 0xb9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x32, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x32, 0x37, 0x18, 0x78, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x32, 0x37, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x32, 0x38, 0x18, 0x84, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x32, 0x38, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x32, 0x39, 0x18, 0x7e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x32, 0x39, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x33, 0x30, 0x18, 0x81, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x33, 0x30, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x33, 0x31, 0x18, 0x83, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x33, 0x31, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x33, 0x32, 0x18, 0x96, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x33, 0x32, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x33, 0x33, 0x18, 0x85, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x33, 0x33, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x33, 0x34, 0x18, 0x86, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x33, 0x34, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x33, 0x35, 0x18, 0x8b, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x33, 0x35, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x33, 0x36, 0x18, 0x89, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x33, 0x36, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x33, 0x37, 0x18, 0x8a, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x33, 0x37, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x33, 0x38, 0x18, 0x8d, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x33, 0x38, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x33, 0x39, 0x18, 0x8e, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x33, 0x39, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x34, 0x30, 0x18, 0xb5, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x34, 0x30, 0x12, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x34, 0x31, 0x18, 0x8f, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x38, 0x31, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x34, 0x31, 0x12, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x34, 0x32, 0x18, 0x9a, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x36, 0x38, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x34, 0x32, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x34, 0x33, 0x18, 0x90, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x34, 0x33, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x34, 0x34, 0x18, 0x93, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x34, 0x34, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x34, 0x35, 0x18, 0x95, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x34, 0x35, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x34, 0x36, 0x18, 0x97, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x34, 0x36, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x34, 0x37, 0x18, 0x98, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x34, 0x37, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x34, 0x38, 0x18, 0x99, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x34, 0x38, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x34, 0x39, 0x18, 0xa1, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x34, 0x39, 0x12, 0x44, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x35, 0x30, 0x18, 0x7b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x35, 0x30, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x35, 0x31, 0x18, 0x9c, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x35, 0x31, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x35, 0x32, 0x18, 0x9d, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x35, 0x32, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x35, 0x33, 0x18, 0xbc, 0x01, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x35, 0x33, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x35, 0x34, 0x18, 0x9e, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x35, 0x34, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x35, 0x35, 0x18, 0x9f, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x35, 0x35, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x35, 0x36, 0x18, 0xa0, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x35, 0x36, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x35, 0x37, 0x18, 0xa2, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x35, 0x37, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x35, 0x38, 0x18, 0xa4, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x35, 0x38, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x35, 0x39, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x35, 0x39, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x36, 0x30, 0x18, 0xa7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x36, 0x30, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x36, 0x31, 0x18, 0xa8, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x36, 0x31, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x36, 0x32, 0x18, 0xa9, 0x01, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x36, 0x32, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x36, 0x33, 0x18, 0xaa, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x36, 0x33, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x36, 0x34, 0x18, 0xac, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x36, 0x34, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x36, 0x35, 0x18, 0xad, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x36, 0x35, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x36, 0x36, 0x18, 0xae, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x36, 0x36, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x36, 0x37, 0x18, 0xaf, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x36, 0x37, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x36, 0x38, 0x18, 0xbd, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x36, 0x38, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x36, 0x39, 0x18, 0xb0, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x36, 0x39, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x37, 0x30, 0x18, 0xb1, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x37, 0x30, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x37, 0x31, 0x18, 0xb3, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x37, 0x31, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x37, 0x32, 0x18, 0xb4, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x37, 0x32, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x37, 0x33, 0x18, 0xb6, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x37, 0x33, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x37, 0x34, 0x18, 0xb7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x37, 0x34, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x37, 0x35, 0x18, 0x79, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x37, 0x35, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x37, 0x36, 0x18, 0xba, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x37, 0x36, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x37, 0x37, 0x18, 0xbb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x37, 0x37, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x37, 0x38, 0x18, 0xbe, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x37, 0x38, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x37, 0x39, 0x18, 0xbf, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x37, 0x39, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x38, 0x30, 0x18, 0xc0, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x38, 0x30, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x38, 0x31, 0x18, 0xc1, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x35, 0x38, 0x31, 0x2a, 0x04, 0x08, 0x74, 0x10, 0x75, 0x2a, 0x04, 0x08, 0x76, 0x10, 0x77, 0x2a, 0x06, 0x08, 0x82, 0x01, 0x10, 0x83, 0x01, 0x2a, 0x06, 0x08, 0xa5, 0x01, 0x10, 0xa6, 0x01, 0x22, 0xc2, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x31, 0x36, 0x39, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x32, 0x33, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x31, 0x36, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x32, 0x33, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x32, 0x34, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x31, 0x36, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x32, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x32, 0x35, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x32, 0x35, 0x22, 0x2e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x39, 0x32, 0x35, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x39, 0x32, 0x35, 0x37, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x39, 0x32, 0x35, 0x37, 0x22, 0x6e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x34, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x34, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x34, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x34, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x34, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x34, 0x35, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x34, 0x35, 0x22, 0x9d, 0x03, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x39, 0x30, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x39, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x39, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x39, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x39, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x39, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x39, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x39, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x39, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x39, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x39, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x39, 0x35, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x39, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x39, 0x36, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x39, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x39, 0x37, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x39, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x39, 0x38, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x39, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x39, 0x39, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x39, 0x39, 0x12, 0x44, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x30, 0x30, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x30, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x30, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x30, 0x31, 0x42, 0x23, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0xf8, 0x01, 0x01, } var ( file_datasets_google_message3_benchmark_message3_2_proto_rawDescOnce sync.Once file_datasets_google_message3_benchmark_message3_2_proto_rawDescData = file_datasets_google_message3_benchmark_message3_2_proto_rawDesc ) func file_datasets_google_message3_benchmark_message3_2_proto_rawDescGZIP() []byte { file_datasets_google_message3_benchmark_message3_2_proto_rawDescOnce.Do(func() { file_datasets_google_message3_benchmark_message3_2_proto_rawDescData = protoimpl.X.CompressGZIP(file_datasets_google_message3_benchmark_message3_2_proto_rawDescData) }) return file_datasets_google_message3_benchmark_message3_2_proto_rawDescData } var file_datasets_google_message3_benchmark_message3_2_proto_msgTypes = make([]protoimpl.MessageInfo, 34) var file_datasets_google_message3_benchmark_message3_2_proto_goTypes = []interface{}{ (*Message22853)(nil), // 0: benchmarks.google_message3.Message22853 (*Message24345)(nil), // 1: benchmarks.google_message3.Message24345 (*Message24403)(nil), // 2: benchmarks.google_message3.Message24403 (*Message24391)(nil), // 3: benchmarks.google_message3.Message24391 (*Message27454)(nil), // 4: benchmarks.google_message3.Message27454 (*Message27357)(nil), // 5: benchmarks.google_message3.Message27357 (*Message27360)(nil), // 6: benchmarks.google_message3.Message27360 (*Message34387)(nil), // 7: benchmarks.google_message3.Message34387 (*Message34621)(nil), // 8: benchmarks.google_message3.Message34621 (*Message35476)(nil), // 9: benchmarks.google_message3.Message35476 (*Message949)(nil), // 10: benchmarks.google_message3.Message949 (*Message36869)(nil), // 11: benchmarks.google_message3.Message36869 (*Message33968)(nil), // 12: benchmarks.google_message3.Message33968 (*Message6644)(nil), // 13: benchmarks.google_message3.Message6644 (*Message18831)(nil), // 14: benchmarks.google_message3.Message18831 (*Message13090)(nil), // 15: benchmarks.google_message3.Message13090 (*Message11874)(nil), // 16: benchmarks.google_message3.Message11874 (*Message4144)(nil), // 17: benchmarks.google_message3.Message4144 (*Message35573)(nil), // 18: benchmarks.google_message3.Message35573 (*Message36858)(nil), // 19: benchmarks.google_message3.Message36858 (*Message13174)(nil), // 20: benchmarks.google_message3.Message13174 (*Message18283)(nil), // 21: benchmarks.google_message3.Message18283 (*Message13169)(nil), // 22: benchmarks.google_message3.Message13169 (*Message19255)(nil), // 23: benchmarks.google_message3.Message19255 (*Message35542)(nil), // 24: benchmarks.google_message3.Message35542 (*Message3901)(nil), // 25: benchmarks.google_message3.Message3901 (*Message33968_Message33969)(nil), // 26: benchmarks.google_message3.Message33968.Message33969 (*Message18831_Message18832)(nil), // 27: benchmarks.google_message3.Message18831.Message18832 (*Message18831_Message18832_Message18833)(nil), // 28: benchmarks.google_message3.Message18831.Message18832.Message18833 (*Message4144_Message4145)(nil), // 29: benchmarks.google_message3.Message4144.Message4145 (*Message35573_Message35574)(nil), // 30: benchmarks.google_message3.Message35573.Message35574 (*Message35573_Message35575)(nil), // 31: benchmarks.google_message3.Message35573.Message35575 (*Message35573_Message35575_Message35576)(nil), // 32: benchmarks.google_message3.Message35573.Message35575.Message35576 (*Message36858_Message36859)(nil), // 33: benchmarks.google_message3.Message36858.Message36859 (Enum22854)(0), // 34: benchmarks.google_message3.Enum22854 (*UnusedEmptyMessage)(nil), // 35: benchmarks.google_message3.UnusedEmptyMessage (UnusedEnum)(0), // 36: benchmarks.google_message3.UnusedEnum (*Message24346)(nil), // 37: benchmarks.google_message3.Message24346 (*Message24316)(nil), // 38: benchmarks.google_message3.Message24316 (*Message24376)(nil), // 39: benchmarks.google_message3.Message24376 (*Message24379)(nil), // 40: benchmarks.google_message3.Message24379 (*Message24356)(nil), // 41: benchmarks.google_message3.Message24356 (*Message24366)(nil), // 42: benchmarks.google_message3.Message24366 (*Message24401)(nil), // 43: benchmarks.google_message3.Message24401 (*Message24402)(nil), // 44: benchmarks.google_message3.Message24402 (*Message27358)(nil), // 45: benchmarks.google_message3.Message27358 (Enum27361)(0), // 46: benchmarks.google_message3.Enum27361 (*Message34381)(nil), // 47: benchmarks.google_message3.Message34381 (Enum34388)(0), // 48: benchmarks.google_message3.Enum34388 (*Message34619)(nil), // 49: benchmarks.google_message3.Message34619 (Enum35477)(0), // 50: benchmarks.google_message3.Enum35477 (*Message730)(nil), // 51: benchmarks.google_message3.Message730 (*Message33958)(nil), // 52: benchmarks.google_message3.Message33958 (*Message6637)(nil), // 53: benchmarks.google_message3.Message6637 (*Message6126)(nil), // 54: benchmarks.google_message3.Message6126 (*Message6643)(nil), // 55: benchmarks.google_message3.Message6643 (*Message13083)(nil), // 56: benchmarks.google_message3.Message13083 (*Message13088)(nil), // 57: benchmarks.google_message3.Message13088 (*Message10391)(nil), // 58: benchmarks.google_message3.Message10391 (*Message11873)(nil), // 59: benchmarks.google_message3.Message11873 (*Message35506)(nil), // 60: benchmarks.google_message3.Message35506 (*Message13151)(nil), // 61: benchmarks.google_message3.Message13151 (*Message18253)(nil), // 62: benchmarks.google_message3.Message18253 (*Message16816)(nil), // 63: benchmarks.google_message3.Message16816 (*Message16685)(nil), // 64: benchmarks.google_message3.Message16685 (*Message0)(nil), // 65: benchmarks.google_message3.Message0 (*Message13168)(nil), // 66: benchmarks.google_message3.Message13168 (*Message13167)(nil), // 67: benchmarks.google_message3.Message13167 (Enum4146)(0), // 68: benchmarks.google_message3.Enum4146 (Enum4160)(0), // 69: benchmarks.google_message3.Enum4160 (Enum4152)(0), // 70: benchmarks.google_message3.Enum4152 (Enum36860)(0), // 71: benchmarks.google_message3.Enum36860 } var file_datasets_google_message3_benchmark_message3_2_proto_depIdxs = []int32{ 34, // 0: benchmarks.google_message3.Message22853.field22869:type_name -> benchmarks.google_message3.Enum22854 35, // 1: benchmarks.google_message3.Message22853.field22873:type_name -> benchmarks.google_message3.UnusedEmptyMessage 36, // 2: benchmarks.google_message3.Message24345.field24534:type_name -> benchmarks.google_message3.UnusedEnum 37, // 3: benchmarks.google_message3.Message24345.field24535:type_name -> benchmarks.google_message3.Message24346 36, // 4: benchmarks.google_message3.Message24345.field24538:type_name -> benchmarks.google_message3.UnusedEnum 38, // 5: benchmarks.google_message3.Message24345.field24543:type_name -> benchmarks.google_message3.Message24316 39, // 6: benchmarks.google_message3.Message24345.field24544:type_name -> benchmarks.google_message3.Message24376 35, // 7: benchmarks.google_message3.Message24345.field24549:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 8: benchmarks.google_message3.Message24345.field24550:type_name -> benchmarks.google_message3.UnusedEmptyMessage 40, // 9: benchmarks.google_message3.Message24345.field24554:type_name -> benchmarks.google_message3.Message24379 41, // 10: benchmarks.google_message3.Message24345.field24556:type_name -> benchmarks.google_message3.Message24356 42, // 11: benchmarks.google_message3.Message24345.field24557:type_name -> benchmarks.google_message3.Message24366 43, // 12: benchmarks.google_message3.Message24403.field24681:type_name -> benchmarks.google_message3.Message24401 44, // 13: benchmarks.google_message3.Message24403.field24682:type_name -> benchmarks.google_message3.Message24402 35, // 14: benchmarks.google_message3.Message24391.field24638:type_name -> benchmarks.google_message3.UnusedEmptyMessage 40, // 15: benchmarks.google_message3.Message24391.field24644:type_name -> benchmarks.google_message3.Message24379 35, // 16: benchmarks.google_message3.Message24391.field24645:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 17: benchmarks.google_message3.Message24391.field24646:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 18: benchmarks.google_message3.Message24391.field24647:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 19: benchmarks.google_message3.Message24391.field24648:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 20: benchmarks.google_message3.Message24391.field24649:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 21: benchmarks.google_message3.Message24391.field24650:type_name -> benchmarks.google_message3.UnusedEmptyMessage 45, // 22: benchmarks.google_message3.Message27360.field27426:type_name -> benchmarks.google_message3.Message27358 46, // 23: benchmarks.google_message3.Message27360.field27427:type_name -> benchmarks.google_message3.Enum27361 45, // 24: benchmarks.google_message3.Message27360.field27428:type_name -> benchmarks.google_message3.Message27358 35, // 25: benchmarks.google_message3.Message27360.field27429:type_name -> benchmarks.google_message3.UnusedEmptyMessage 47, // 26: benchmarks.google_message3.Message34387.field34447:type_name -> benchmarks.google_message3.Message34381 36, // 27: benchmarks.google_message3.Message34387.field34448:type_name -> benchmarks.google_message3.UnusedEnum 48, // 28: benchmarks.google_message3.Message34387.field34449:type_name -> benchmarks.google_message3.Enum34388 35, // 29: benchmarks.google_message3.Message34621.field34656:type_name -> benchmarks.google_message3.UnusedEmptyMessage 49, // 30: benchmarks.google_message3.Message34621.field34657:type_name -> benchmarks.google_message3.Message34619 35, // 31: benchmarks.google_message3.Message34621.field34665:type_name -> benchmarks.google_message3.UnusedEmptyMessage 8, // 32: benchmarks.google_message3.Message34621.field34666:type_name -> benchmarks.google_message3.Message34621 35, // 33: benchmarks.google_message3.Message34621.field34667:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 34: benchmarks.google_message3.Message34621.field34668:type_name -> benchmarks.google_message3.UnusedEmptyMessage 50, // 35: benchmarks.google_message3.Message35476.field35487:type_name -> benchmarks.google_message3.Enum35477 35, // 36: benchmarks.google_message3.Message35476.field35492:type_name -> benchmarks.google_message3.UnusedEmptyMessage 51, // 37: benchmarks.google_message3.Message949.field958:type_name -> benchmarks.google_message3.Message730 26, // 38: benchmarks.google_message3.Message33968.message33969:type_name -> benchmarks.google_message3.Message33968.Message33969 52, // 39: benchmarks.google_message3.Message33968.field33989:type_name -> benchmarks.google_message3.Message33958 35, // 40: benchmarks.google_message3.Message33968.field33990:type_name -> benchmarks.google_message3.UnusedEmptyMessage 36, // 41: benchmarks.google_message3.Message33968.field33992:type_name -> benchmarks.google_message3.UnusedEnum 35, // 42: benchmarks.google_message3.Message6644.field6701:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 43: benchmarks.google_message3.Message6644.field6704:type_name -> benchmarks.google_message3.UnusedEmptyMessage 53, // 44: benchmarks.google_message3.Message6644.field6707:type_name -> benchmarks.google_message3.Message6637 54, // 45: benchmarks.google_message3.Message6644.field6708:type_name -> benchmarks.google_message3.Message6126 55, // 46: benchmarks.google_message3.Message6644.field6710:type_name -> benchmarks.google_message3.Message6643 35, // 47: benchmarks.google_message3.Message6644.field6712:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 48: benchmarks.google_message3.Message6644.field6713:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 49: benchmarks.google_message3.Message6644.field6714:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 50: benchmarks.google_message3.Message6644.field6716:type_name -> benchmarks.google_message3.UnusedEmptyMessage 27, // 51: benchmarks.google_message3.Message18831.message18832:type_name -> benchmarks.google_message3.Message18831.Message18832 56, // 52: benchmarks.google_message3.Message13090.field13141:type_name -> benchmarks.google_message3.Message13083 57, // 53: benchmarks.google_message3.Message13090.field13142:type_name -> benchmarks.google_message3.Message13088 58, // 54: benchmarks.google_message3.Message11874.field11888:type_name -> benchmarks.google_message3.Message10391 59, // 55: benchmarks.google_message3.Message11874.field11890:type_name -> benchmarks.google_message3.Message11873 29, // 56: benchmarks.google_message3.Message4144.message4145:type_name -> benchmarks.google_message3.Message4144.Message4145 30, // 57: benchmarks.google_message3.Message35573.message35574:type_name -> benchmarks.google_message3.Message35573.Message35574 31, // 58: benchmarks.google_message3.Message35573.message35575:type_name -> benchmarks.google_message3.Message35573.Message35575 60, // 59: benchmarks.google_message3.Message36858.field36966:type_name -> benchmarks.google_message3.Message35506 33, // 60: benchmarks.google_message3.Message36858.message36859:type_name -> benchmarks.google_message3.Message36858.Message36859 61, // 61: benchmarks.google_message3.Message13174.field13249:type_name -> benchmarks.google_message3.Message13151 35, // 62: benchmarks.google_message3.Message18283.field18478:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 63: benchmarks.google_message3.Message18283.field18500:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 64: benchmarks.google_message3.Message18283.field18501:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 65: benchmarks.google_message3.Message18283.field18502:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 66: benchmarks.google_message3.Message18283.field18503:type_name -> benchmarks.google_message3.Message18253 35, // 67: benchmarks.google_message3.Message18283.field18504:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 68: benchmarks.google_message3.Message18283.field18505:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 69: benchmarks.google_message3.Message18283.field18506:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 70: benchmarks.google_message3.Message18283.field18512:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 71: benchmarks.google_message3.Message18283.field18519:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 72: benchmarks.google_message3.Message18283.field18522:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 73: benchmarks.google_message3.Message18283.field18523:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 74: benchmarks.google_message3.Message18283.field18524:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 75: benchmarks.google_message3.Message18283.field18525:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 76: benchmarks.google_message3.Message18283.field18526:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 77: benchmarks.google_message3.Message18283.field18529:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 78: benchmarks.google_message3.Message18283.field18530:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 79: benchmarks.google_message3.Message18283.field18531:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 80: benchmarks.google_message3.Message18283.field18538:type_name -> benchmarks.google_message3.UnusedEmptyMessage 63, // 81: benchmarks.google_message3.Message18283.field18541:type_name -> benchmarks.google_message3.Message16816 64, // 82: benchmarks.google_message3.Message18283.field18542:type_name -> benchmarks.google_message3.Message16685 65, // 83: benchmarks.google_message3.Message18283.field18550:type_name -> benchmarks.google_message3.Message0 35, // 84: benchmarks.google_message3.Message18283.field18555:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 85: benchmarks.google_message3.Message18283.field18559:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 86: benchmarks.google_message3.Message18283.field18560:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 87: benchmarks.google_message3.Message18283.field18564:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 88: benchmarks.google_message3.Message18283.field18566:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 89: benchmarks.google_message3.Message18283.field18569:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 90: benchmarks.google_message3.Message18283.field18570:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 91: benchmarks.google_message3.Message18283.field18573:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 92: benchmarks.google_message3.Message18283.field18574:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 93: benchmarks.google_message3.Message18283.field18575:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 94: benchmarks.google_message3.Message18283.field18576:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 95: benchmarks.google_message3.Message18283.field18577:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 96: benchmarks.google_message3.Message18283.field18578:type_name -> benchmarks.google_message3.UnusedEmptyMessage 66, // 97: benchmarks.google_message3.Message13169.field13223:type_name -> benchmarks.google_message3.Message13168 67, // 98: benchmarks.google_message3.Message13169.field13224:type_name -> benchmarks.google_message3.Message13167 36, // 99: benchmarks.google_message3.Message3901.field4000:type_name -> benchmarks.google_message3.UnusedEnum 28, // 100: benchmarks.google_message3.Message18831.Message18832.message18833:type_name -> benchmarks.google_message3.Message18831.Message18832.Message18833 68, // 101: benchmarks.google_message3.Message4144.Message4145.field4165:type_name -> benchmarks.google_message3.Enum4146 69, // 102: benchmarks.google_message3.Message4144.Message4145.field4167:type_name -> benchmarks.google_message3.Enum4160 70, // 103: benchmarks.google_message3.Message4144.Message4145.field4169:type_name -> benchmarks.google_message3.Enum4152 65, // 104: benchmarks.google_message3.Message35573.Message35575.field35745:type_name -> benchmarks.google_message3.Message0 32, // 105: benchmarks.google_message3.Message35573.Message35575.message35576:type_name -> benchmarks.google_message3.Message35573.Message35575.Message35576 65, // 106: benchmarks.google_message3.Message35573.Message35575.Message35576.field35771:type_name -> benchmarks.google_message3.Message0 71, // 107: benchmarks.google_message3.Message36858.Message36859.field36968:type_name -> benchmarks.google_message3.Enum36860 65, // 108: benchmarks.google_message3.Message34621.field34669:extendee -> benchmarks.google_message3.Message0 8, // 109: benchmarks.google_message3.Message34621.field34669:type_name -> benchmarks.google_message3.Message34621 110, // [110:110] is the sub-list for method output_type 110, // [110:110] is the sub-list for method input_type 109, // [109:110] is the sub-list for extension type_name 108, // [108:109] is the sub-list for extension extendee 0, // [0:108] is the sub-list for field type_name } func init() { file_datasets_google_message3_benchmark_message3_2_proto_init() } func file_datasets_google_message3_benchmark_message3_2_proto_init() { if File_datasets_google_message3_benchmark_message3_2_proto != nil { return } file_datasets_google_message3_benchmark_message3_3_proto_init() file_datasets_google_message3_benchmark_message3_4_proto_init() file_datasets_google_message3_benchmark_message3_5_proto_init() file_datasets_google_message3_benchmark_message3_7_proto_init() file_datasets_google_message3_benchmark_message3_8_proto_init() if !protoimpl.UnsafeEnabled { file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message22853); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message24345); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message24403); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message24391); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message27454); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message27357); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message27360); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message34387); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message34621); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message35476); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message949); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message36869); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message33968); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6644); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message18831); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message13090); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message11874); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message4144); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message35573); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message36858); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message13174); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message18283); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message13169); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message19255); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message35542); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3901); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message33968_Message33969); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message18831_Message18832); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message18831_Message18832_Message18833); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message4144_Message4145); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message35573_Message35574); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message35573_Message35575); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message35573_Message35575_Message35576); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_2_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message36858_Message36859); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_datasets_google_message3_benchmark_message3_2_proto_rawDesc, NumEnums: 0, NumMessages: 34, NumExtensions: 1, NumServices: 0, }, GoTypes: file_datasets_google_message3_benchmark_message3_2_proto_goTypes, DependencyIndexes: file_datasets_google_message3_benchmark_message3_2_proto_depIdxs, MessageInfos: file_datasets_google_message3_benchmark_message3_2_proto_msgTypes, ExtensionInfos: file_datasets_google_message3_benchmark_message3_2_proto_extTypes, }.Build() File_datasets_google_message3_benchmark_message3_2_proto = out.File file_datasets_google_message3_benchmark_message3_2_proto_rawDesc = nil file_datasets_google_message3_benchmark_message3_2_proto_goTypes = nil file_datasets_google_message3_benchmark_message3_2_proto_depIdxs = nil } benchmark_message3_3.pb.go000066400000000000000000007545261411250152500360450ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/datasets/google_message3// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // LINT: ALLOW_GROUPS // Code generated by protoc-gen-go. DO NOT EDIT. // source: datasets/google_message3/benchmark_message3_3.proto package google_message3 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Message35546 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field35556 *int64 `protobuf:"varint,1,opt,name=field35556" json:"field35556,omitempty"` Field35557 *int32 `protobuf:"varint,2,opt,name=field35557" json:"field35557,omitempty"` Field35558 *bool `protobuf:"varint,3,opt,name=field35558" json:"field35558,omitempty"` Field35559 *int64 `protobuf:"varint,13,opt,name=field35559" json:"field35559,omitempty"` Message35547 *Message35546_Message35547 `protobuf:"group,4,opt,name=Message35547,json=message35547" json:"message35547,omitempty"` Message35548 *Message35546_Message35548 `protobuf:"group,10,opt,name=Message35548,json=message35548" json:"message35548,omitempty"` Field35562 *bool `protobuf:"varint,14,opt,name=field35562" json:"field35562,omitempty"` Field35563 *bool `protobuf:"varint,15,opt,name=field35563" json:"field35563,omitempty"` Field35564 *int32 `protobuf:"varint,16,opt,name=field35564" json:"field35564,omitempty"` Field35565 *bool `protobuf:"varint,17,opt,name=field35565" json:"field35565,omitempty"` Field35566 *bool `protobuf:"varint,18,opt,name=field35566" json:"field35566,omitempty"` Field35567 *string `protobuf:"bytes,100,opt,name=field35567" json:"field35567,omitempty"` } func (x *Message35546) Reset() { *x = Message35546{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message35546) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message35546) ProtoMessage() {} func (x *Message35546) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message35546.ProtoReflect.Descriptor instead. func (*Message35546) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{0} } func (x *Message35546) GetField35556() int64 { if x != nil && x.Field35556 != nil { return *x.Field35556 } return 0 } func (x *Message35546) GetField35557() int32 { if x != nil && x.Field35557 != nil { return *x.Field35557 } return 0 } func (x *Message35546) GetField35558() bool { if x != nil && x.Field35558 != nil { return *x.Field35558 } return false } func (x *Message35546) GetField35559() int64 { if x != nil && x.Field35559 != nil { return *x.Field35559 } return 0 } func (x *Message35546) GetMessage35547() *Message35546_Message35547 { if x != nil { return x.Message35547 } return nil } func (x *Message35546) GetMessage35548() *Message35546_Message35548 { if x != nil { return x.Message35548 } return nil } func (x *Message35546) GetField35562() bool { if x != nil && x.Field35562 != nil { return *x.Field35562 } return false } func (x *Message35546) GetField35563() bool { if x != nil && x.Field35563 != nil { return *x.Field35563 } return false } func (x *Message35546) GetField35564() int32 { if x != nil && x.Field35564 != nil { return *x.Field35564 } return 0 } func (x *Message35546) GetField35565() bool { if x != nil && x.Field35565 != nil { return *x.Field35565 } return false } func (x *Message35546) GetField35566() bool { if x != nil && x.Field35566 != nil { return *x.Field35566 } return false } func (x *Message35546) GetField35567() string { if x != nil && x.Field35567 != nil { return *x.Field35567 } return "" } type Message2356 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field2368 *Message1374 `protobuf:"bytes,121,opt,name=field2368" json:"field2368,omitempty"` Field2369 *uint64 `protobuf:"varint,1,opt,name=field2369" json:"field2369,omitempty"` Field2370 *int32 `protobuf:"varint,2,opt,name=field2370" json:"field2370,omitempty"` Field2371 *int32 `protobuf:"varint,17,opt,name=field2371" json:"field2371,omitempty"` Field2372 *string `protobuf:"bytes,3,req,name=field2372" json:"field2372,omitempty"` Field2373 *int32 `protobuf:"varint,7,opt,name=field2373" json:"field2373,omitempty"` Field2374 []byte `protobuf:"bytes,8,opt,name=field2374" json:"field2374,omitempty"` Field2375 *string `protobuf:"bytes,4,opt,name=field2375" json:"field2375,omitempty"` Field2376 *string `protobuf:"bytes,101,opt,name=field2376" json:"field2376,omitempty"` Field2377 *int32 `protobuf:"varint,102,opt,name=field2377" json:"field2377,omitempty"` Field2378 *int32 `protobuf:"varint,103,opt,name=field2378" json:"field2378,omitempty"` Field2379 *int32 `protobuf:"varint,104,opt,name=field2379" json:"field2379,omitempty"` Field2380 *int32 `protobuf:"varint,113,opt,name=field2380" json:"field2380,omitempty"` Field2381 *int32 `protobuf:"varint,114,opt,name=field2381" json:"field2381,omitempty"` Field2382 *int32 `protobuf:"varint,115,opt,name=field2382" json:"field2382,omitempty"` Field2383 *int32 `protobuf:"varint,117,opt,name=field2383" json:"field2383,omitempty"` Field2384 *int32 `protobuf:"varint,118,opt,name=field2384" json:"field2384,omitempty"` Field2385 *int32 `protobuf:"varint,119,opt,name=field2385" json:"field2385,omitempty"` Field2386 *int32 `protobuf:"varint,105,opt,name=field2386" json:"field2386,omitempty"` Field2387 []byte `protobuf:"bytes,5,opt,name=field2387" json:"field2387,omitempty"` Message2357 *Message2356_Message2357 `protobuf:"group,6,opt,name=Message2357,json=message2357" json:"message2357,omitempty"` Field2389 *string `protobuf:"bytes,120,opt,name=field2389" json:"field2389,omitempty"` Message2358 *Message2356_Message2358 `protobuf:"group,107,opt,name=Message2358,json=message2358" json:"message2358,omitempty"` Message2359 []*Message2356_Message2359 `protobuf:"group,40,rep,name=Message2359,json=message2359" json:"message2359,omitempty"` Field2392 *int32 `protobuf:"varint,50,opt,name=field2392" json:"field2392,omitempty"` Field2393 *UnusedEmptyMessage `protobuf:"bytes,60,opt,name=field2393" json:"field2393,omitempty"` Field2394 *UnusedEmptyMessage `protobuf:"bytes,70,opt,name=field2394" json:"field2394,omitempty"` Field2395 *UnusedEmptyMessage `protobuf:"bytes,80,opt,name=field2395" json:"field2395,omitempty"` Field2396 *UnusedEmptyMessage `protobuf:"bytes,90,opt,name=field2396" json:"field2396,omitempty"` Field2397 *string `protobuf:"bytes,100,opt,name=field2397" json:"field2397,omitempty"` Field2398 *string `protobuf:"bytes,123,opt,name=field2398" json:"field2398,omitempty"` } func (x *Message2356) Reset() { *x = Message2356{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message2356) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message2356) ProtoMessage() {} func (x *Message2356) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message2356.ProtoReflect.Descriptor instead. func (*Message2356) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{1} } func (x *Message2356) GetField2368() *Message1374 { if x != nil { return x.Field2368 } return nil } func (x *Message2356) GetField2369() uint64 { if x != nil && x.Field2369 != nil { return *x.Field2369 } return 0 } func (x *Message2356) GetField2370() int32 { if x != nil && x.Field2370 != nil { return *x.Field2370 } return 0 } func (x *Message2356) GetField2371() int32 { if x != nil && x.Field2371 != nil { return *x.Field2371 } return 0 } func (x *Message2356) GetField2372() string { if x != nil && x.Field2372 != nil { return *x.Field2372 } return "" } func (x *Message2356) GetField2373() int32 { if x != nil && x.Field2373 != nil { return *x.Field2373 } return 0 } func (x *Message2356) GetField2374() []byte { if x != nil { return x.Field2374 } return nil } func (x *Message2356) GetField2375() string { if x != nil && x.Field2375 != nil { return *x.Field2375 } return "" } func (x *Message2356) GetField2376() string { if x != nil && x.Field2376 != nil { return *x.Field2376 } return "" } func (x *Message2356) GetField2377() int32 { if x != nil && x.Field2377 != nil { return *x.Field2377 } return 0 } func (x *Message2356) GetField2378() int32 { if x != nil && x.Field2378 != nil { return *x.Field2378 } return 0 } func (x *Message2356) GetField2379() int32 { if x != nil && x.Field2379 != nil { return *x.Field2379 } return 0 } func (x *Message2356) GetField2380() int32 { if x != nil && x.Field2380 != nil { return *x.Field2380 } return 0 } func (x *Message2356) GetField2381() int32 { if x != nil && x.Field2381 != nil { return *x.Field2381 } return 0 } func (x *Message2356) GetField2382() int32 { if x != nil && x.Field2382 != nil { return *x.Field2382 } return 0 } func (x *Message2356) GetField2383() int32 { if x != nil && x.Field2383 != nil { return *x.Field2383 } return 0 } func (x *Message2356) GetField2384() int32 { if x != nil && x.Field2384 != nil { return *x.Field2384 } return 0 } func (x *Message2356) GetField2385() int32 { if x != nil && x.Field2385 != nil { return *x.Field2385 } return 0 } func (x *Message2356) GetField2386() int32 { if x != nil && x.Field2386 != nil { return *x.Field2386 } return 0 } func (x *Message2356) GetField2387() []byte { if x != nil { return x.Field2387 } return nil } func (x *Message2356) GetMessage2357() *Message2356_Message2357 { if x != nil { return x.Message2357 } return nil } func (x *Message2356) GetField2389() string { if x != nil && x.Field2389 != nil { return *x.Field2389 } return "" } func (x *Message2356) GetMessage2358() *Message2356_Message2358 { if x != nil { return x.Message2358 } return nil } func (x *Message2356) GetMessage2359() []*Message2356_Message2359 { if x != nil { return x.Message2359 } return nil } func (x *Message2356) GetField2392() int32 { if x != nil && x.Field2392 != nil { return *x.Field2392 } return 0 } func (x *Message2356) GetField2393() *UnusedEmptyMessage { if x != nil { return x.Field2393 } return nil } func (x *Message2356) GetField2394() *UnusedEmptyMessage { if x != nil { return x.Field2394 } return nil } func (x *Message2356) GetField2395() *UnusedEmptyMessage { if x != nil { return x.Field2395 } return nil } func (x *Message2356) GetField2396() *UnusedEmptyMessage { if x != nil { return x.Field2396 } return nil } func (x *Message2356) GetField2397() string { if x != nil && x.Field2397 != nil { return *x.Field2397 } return "" } func (x *Message2356) GetField2398() string { if x != nil && x.Field2398 != nil { return *x.Field2398 } return "" } type Message7029 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7183 *int32 `protobuf:"varint,1,req,name=field7183" json:"field7183,omitempty"` Field7184 *int32 `protobuf:"varint,2,opt,name=field7184" json:"field7184,omitempty"` Field7185 *int32 `protobuf:"varint,3,opt,name=field7185" json:"field7185,omitempty"` Field7186 *int32 `protobuf:"varint,4,opt,name=field7186" json:"field7186,omitempty"` Field7187 *int32 `protobuf:"varint,5,opt,name=field7187" json:"field7187,omitempty"` Field7188 *int32 `protobuf:"varint,6,opt,name=field7188" json:"field7188,omitempty"` Field7189 *int32 `protobuf:"varint,17,opt,name=field7189" json:"field7189,omitempty"` Field7190 *int32 `protobuf:"varint,18,opt,name=field7190" json:"field7190,omitempty"` Field7191 *int32 `protobuf:"varint,49,opt,name=field7191" json:"field7191,omitempty"` Field7192 *int32 `protobuf:"varint,28,opt,name=field7192" json:"field7192,omitempty"` Field7193 *int32 `protobuf:"varint,33,opt,name=field7193" json:"field7193,omitempty"` Field7194 *int32 `protobuf:"varint,25,opt,name=field7194" json:"field7194,omitempty"` Field7195 *int32 `protobuf:"varint,26,opt,name=field7195" json:"field7195,omitempty"` Field7196 *int32 `protobuf:"varint,40,opt,name=field7196" json:"field7196,omitempty"` Field7197 *int32 `protobuf:"varint,41,opt,name=field7197" json:"field7197,omitempty"` Field7198 *int32 `protobuf:"varint,42,opt,name=field7198" json:"field7198,omitempty"` Field7199 *int32 `protobuf:"varint,43,opt,name=field7199" json:"field7199,omitempty"` Field7200 *int32 `protobuf:"varint,19,opt,name=field7200" json:"field7200,omitempty"` Field7201 *int32 `protobuf:"varint,7,opt,name=field7201" json:"field7201,omitempty"` Field7202 *int32 `protobuf:"varint,8,opt,name=field7202" json:"field7202,omitempty"` Field7203 *int32 `protobuf:"varint,9,opt,name=field7203" json:"field7203,omitempty"` Field7204 *int32 `protobuf:"varint,10,opt,name=field7204" json:"field7204,omitempty"` Field7205 *int32 `protobuf:"varint,11,opt,name=field7205" json:"field7205,omitempty"` Field7206 *int32 `protobuf:"varint,12,opt,name=field7206" json:"field7206,omitempty"` Message7030 []*Message7029_Message7030 `protobuf:"group,13,rep,name=Message7030,json=message7030" json:"message7030,omitempty"` Message7031 []*Message7029_Message7031 `protobuf:"group,21,rep,name=Message7031,json=message7031" json:"message7031,omitempty"` Field7209 *int32 `protobuf:"varint,20,opt,name=field7209" json:"field7209,omitempty"` Field7210 *float32 `protobuf:"fixed32,27,opt,name=field7210" json:"field7210,omitempty"` Field7211 *int32 `protobuf:"varint,29,opt,name=field7211" json:"field7211,omitempty"` Field7212 *int32 `protobuf:"varint,32,opt,name=field7212" json:"field7212,omitempty"` Field7213 *string `protobuf:"bytes,48,opt,name=field7213" json:"field7213,omitempty"` Field7214 *bool `protobuf:"varint,34,opt,name=field7214" json:"field7214,omitempty"` Field7215 *int32 `protobuf:"varint,36,opt,name=field7215" json:"field7215,omitempty"` Field7216 *float32 `protobuf:"fixed32,37,opt,name=field7216" json:"field7216,omitempty"` Field7217 *bool `protobuf:"varint,38,opt,name=field7217" json:"field7217,omitempty"` Field7218 *bool `protobuf:"varint,39,opt,name=field7218" json:"field7218,omitempty"` Field7219 *UnusedEmptyMessage `protobuf:"bytes,44,opt,name=field7219" json:"field7219,omitempty"` Field7220 *int32 `protobuf:"varint,45,opt,name=field7220" json:"field7220,omitempty"` Field7221 *int32 `protobuf:"varint,46,opt,name=field7221" json:"field7221,omitempty"` Field7222 *int32 `protobuf:"varint,47,opt,name=field7222" json:"field7222,omitempty"` Field7223 *UnusedEmptyMessage `protobuf:"bytes,50,opt,name=field7223" json:"field7223,omitempty"` Field7224 *int32 `protobuf:"varint,51,opt,name=field7224" json:"field7224,omitempty"` } func (x *Message7029) Reset() { *x = Message7029{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7029) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7029) ProtoMessage() {} func (x *Message7029) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7029.ProtoReflect.Descriptor instead. func (*Message7029) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{2} } func (x *Message7029) GetField7183() int32 { if x != nil && x.Field7183 != nil { return *x.Field7183 } return 0 } func (x *Message7029) GetField7184() int32 { if x != nil && x.Field7184 != nil { return *x.Field7184 } return 0 } func (x *Message7029) GetField7185() int32 { if x != nil && x.Field7185 != nil { return *x.Field7185 } return 0 } func (x *Message7029) GetField7186() int32 { if x != nil && x.Field7186 != nil { return *x.Field7186 } return 0 } func (x *Message7029) GetField7187() int32 { if x != nil && x.Field7187 != nil { return *x.Field7187 } return 0 } func (x *Message7029) GetField7188() int32 { if x != nil && x.Field7188 != nil { return *x.Field7188 } return 0 } func (x *Message7029) GetField7189() int32 { if x != nil && x.Field7189 != nil { return *x.Field7189 } return 0 } func (x *Message7029) GetField7190() int32 { if x != nil && x.Field7190 != nil { return *x.Field7190 } return 0 } func (x *Message7029) GetField7191() int32 { if x != nil && x.Field7191 != nil { return *x.Field7191 } return 0 } func (x *Message7029) GetField7192() int32 { if x != nil && x.Field7192 != nil { return *x.Field7192 } return 0 } func (x *Message7029) GetField7193() int32 { if x != nil && x.Field7193 != nil { return *x.Field7193 } return 0 } func (x *Message7029) GetField7194() int32 { if x != nil && x.Field7194 != nil { return *x.Field7194 } return 0 } func (x *Message7029) GetField7195() int32 { if x != nil && x.Field7195 != nil { return *x.Field7195 } return 0 } func (x *Message7029) GetField7196() int32 { if x != nil && x.Field7196 != nil { return *x.Field7196 } return 0 } func (x *Message7029) GetField7197() int32 { if x != nil && x.Field7197 != nil { return *x.Field7197 } return 0 } func (x *Message7029) GetField7198() int32 { if x != nil && x.Field7198 != nil { return *x.Field7198 } return 0 } func (x *Message7029) GetField7199() int32 { if x != nil && x.Field7199 != nil { return *x.Field7199 } return 0 } func (x *Message7029) GetField7200() int32 { if x != nil && x.Field7200 != nil { return *x.Field7200 } return 0 } func (x *Message7029) GetField7201() int32 { if x != nil && x.Field7201 != nil { return *x.Field7201 } return 0 } func (x *Message7029) GetField7202() int32 { if x != nil && x.Field7202 != nil { return *x.Field7202 } return 0 } func (x *Message7029) GetField7203() int32 { if x != nil && x.Field7203 != nil { return *x.Field7203 } return 0 } func (x *Message7029) GetField7204() int32 { if x != nil && x.Field7204 != nil { return *x.Field7204 } return 0 } func (x *Message7029) GetField7205() int32 { if x != nil && x.Field7205 != nil { return *x.Field7205 } return 0 } func (x *Message7029) GetField7206() int32 { if x != nil && x.Field7206 != nil { return *x.Field7206 } return 0 } func (x *Message7029) GetMessage7030() []*Message7029_Message7030 { if x != nil { return x.Message7030 } return nil } func (x *Message7029) GetMessage7031() []*Message7029_Message7031 { if x != nil { return x.Message7031 } return nil } func (x *Message7029) GetField7209() int32 { if x != nil && x.Field7209 != nil { return *x.Field7209 } return 0 } func (x *Message7029) GetField7210() float32 { if x != nil && x.Field7210 != nil { return *x.Field7210 } return 0 } func (x *Message7029) GetField7211() int32 { if x != nil && x.Field7211 != nil { return *x.Field7211 } return 0 } func (x *Message7029) GetField7212() int32 { if x != nil && x.Field7212 != nil { return *x.Field7212 } return 0 } func (x *Message7029) GetField7213() string { if x != nil && x.Field7213 != nil { return *x.Field7213 } return "" } func (x *Message7029) GetField7214() bool { if x != nil && x.Field7214 != nil { return *x.Field7214 } return false } func (x *Message7029) GetField7215() int32 { if x != nil && x.Field7215 != nil { return *x.Field7215 } return 0 } func (x *Message7029) GetField7216() float32 { if x != nil && x.Field7216 != nil { return *x.Field7216 } return 0 } func (x *Message7029) GetField7217() bool { if x != nil && x.Field7217 != nil { return *x.Field7217 } return false } func (x *Message7029) GetField7218() bool { if x != nil && x.Field7218 != nil { return *x.Field7218 } return false } func (x *Message7029) GetField7219() *UnusedEmptyMessage { if x != nil { return x.Field7219 } return nil } func (x *Message7029) GetField7220() int32 { if x != nil && x.Field7220 != nil { return *x.Field7220 } return 0 } func (x *Message7029) GetField7221() int32 { if x != nil && x.Field7221 != nil { return *x.Field7221 } return 0 } func (x *Message7029) GetField7222() int32 { if x != nil && x.Field7222 != nil { return *x.Field7222 } return 0 } func (x *Message7029) GetField7223() *UnusedEmptyMessage { if x != nil { return x.Field7223 } return nil } func (x *Message7029) GetField7224() int32 { if x != nil && x.Field7224 != nil { return *x.Field7224 } return 0 } type Message35538 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field35539 *int64 `protobuf:"varint,1,req,name=field35539" json:"field35539,omitempty"` } func (x *Message35538) Reset() { *x = Message35538{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message35538) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message35538) ProtoMessage() {} func (x *Message35538) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message35538.ProtoReflect.Descriptor instead. func (*Message35538) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{3} } func (x *Message35538) GetField35539() int64 { if x != nil && x.Field35539 != nil { return *x.Field35539 } return 0 } type Message18921 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field18946 *string `protobuf:"bytes,1,opt,name=field18946" json:"field18946,omitempty"` Field18947 *uint64 `protobuf:"fixed64,2,opt,name=field18947" json:"field18947,omitempty"` Field18948 *int32 `protobuf:"varint,3,opt,name=field18948" json:"field18948,omitempty"` Field18949 *float64 `protobuf:"fixed64,4,opt,name=field18949" json:"field18949,omitempty"` Field18950 *bool `protobuf:"varint,17,opt,name=field18950" json:"field18950,omitempty"` Field18951 *bool `protobuf:"varint,23,opt,name=field18951" json:"field18951,omitempty"` Field18952 *UnusedEmptyMessage `protobuf:"bytes,24,opt,name=field18952" json:"field18952,omitempty"` Message18922 []*Message18921_Message18922 `protobuf:"group,5,rep,name=Message18922,json=message18922" json:"message18922,omitempty"` Field18954 []*UnusedEmptyMessage `protobuf:"bytes,29,rep,name=field18954" json:"field18954,omitempty"` Field18955 []*Message18943 `protobuf:"bytes,30,rep,name=field18955" json:"field18955,omitempty"` Field18956 []*Message18944 `protobuf:"bytes,31,rep,name=field18956" json:"field18956,omitempty"` Field18957 []*UnusedEmptyMessage `protobuf:"bytes,32,rep,name=field18957" json:"field18957,omitempty"` } func (x *Message18921) Reset() { *x = Message18921{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message18921) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message18921) ProtoMessage() {} func (x *Message18921) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message18921.ProtoReflect.Descriptor instead. func (*Message18921) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{4} } func (x *Message18921) GetField18946() string { if x != nil && x.Field18946 != nil { return *x.Field18946 } return "" } func (x *Message18921) GetField18947() uint64 { if x != nil && x.Field18947 != nil { return *x.Field18947 } return 0 } func (x *Message18921) GetField18948() int32 { if x != nil && x.Field18948 != nil { return *x.Field18948 } return 0 } func (x *Message18921) GetField18949() float64 { if x != nil && x.Field18949 != nil { return *x.Field18949 } return 0 } func (x *Message18921) GetField18950() bool { if x != nil && x.Field18950 != nil { return *x.Field18950 } return false } func (x *Message18921) GetField18951() bool { if x != nil && x.Field18951 != nil { return *x.Field18951 } return false } func (x *Message18921) GetField18952() *UnusedEmptyMessage { if x != nil { return x.Field18952 } return nil } func (x *Message18921) GetMessage18922() []*Message18921_Message18922 { if x != nil { return x.Message18922 } return nil } func (x *Message18921) GetField18954() []*UnusedEmptyMessage { if x != nil { return x.Field18954 } return nil } func (x *Message18921) GetField18955() []*Message18943 { if x != nil { return x.Field18955 } return nil } func (x *Message18921) GetField18956() []*Message18944 { if x != nil { return x.Field18956 } return nil } func (x *Message18921) GetField18957() []*UnusedEmptyMessage { if x != nil { return x.Field18957 } return nil } type Message35540 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field35541 *bool `protobuf:"varint,1,opt,name=field35541" json:"field35541,omitempty"` } func (x *Message35540) Reset() { *x = Message35540{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message35540) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message35540) ProtoMessage() {} func (x *Message35540) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message35540.ProtoReflect.Descriptor instead. func (*Message35540) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{5} } func (x *Message35540) GetField35541() bool { if x != nil && x.Field35541 != nil { return *x.Field35541 } return false } type Message3886 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Message3887 []*Message3886_Message3887 `protobuf:"group,1,rep,name=Message3887,json=message3887" json:"message3887,omitempty"` } func (x *Message3886) Reset() { *x = Message3886{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3886) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3886) ProtoMessage() {} func (x *Message3886) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3886.ProtoReflect.Descriptor instead. func (*Message3886) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{6} } func (x *Message3886) GetMessage3887() []*Message3886_Message3887 { if x != nil { return x.Message3887 } return nil } type Message6743 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6759 *Message6721 `protobuf:"bytes,1,opt,name=field6759" json:"field6759,omitempty"` Field6760 *Message6723 `protobuf:"bytes,2,opt,name=field6760" json:"field6760,omitempty"` Field6761 *Message6723 `protobuf:"bytes,8,opt,name=field6761" json:"field6761,omitempty"` Field6762 *Message6725 `protobuf:"bytes,3,opt,name=field6762" json:"field6762,omitempty"` Field6763 *Message6726 `protobuf:"bytes,4,opt,name=field6763" json:"field6763,omitempty"` Field6764 *Message6733 `protobuf:"bytes,5,opt,name=field6764" json:"field6764,omitempty"` Field6765 *Message6734 `protobuf:"bytes,6,opt,name=field6765" json:"field6765,omitempty"` Field6766 *Message6742 `protobuf:"bytes,7,opt,name=field6766" json:"field6766,omitempty"` } func (x *Message6743) Reset() { *x = Message6743{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6743) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6743) ProtoMessage() {} func (x *Message6743) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6743.ProtoReflect.Descriptor instead. func (*Message6743) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{7} } func (x *Message6743) GetField6759() *Message6721 { if x != nil { return x.Field6759 } return nil } func (x *Message6743) GetField6760() *Message6723 { if x != nil { return x.Field6760 } return nil } func (x *Message6743) GetField6761() *Message6723 { if x != nil { return x.Field6761 } return nil } func (x *Message6743) GetField6762() *Message6725 { if x != nil { return x.Field6762 } return nil } func (x *Message6743) GetField6763() *Message6726 { if x != nil { return x.Field6763 } return nil } func (x *Message6743) GetField6764() *Message6733 { if x != nil { return x.Field6764 } return nil } func (x *Message6743) GetField6765() *Message6734 { if x != nil { return x.Field6765 } return nil } func (x *Message6743) GetField6766() *Message6742 { if x != nil { return x.Field6766 } return nil } type Message6773 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6794 *Enum6769 `protobuf:"varint,1,opt,name=field6794,enum=benchmarks.google_message3.Enum6769" json:"field6794,omitempty"` Field6795 *int32 `protobuf:"varint,9,opt,name=field6795" json:"field6795,omitempty"` Field6796 *UnusedEnum `protobuf:"varint,10,opt,name=field6796,enum=benchmarks.google_message3.UnusedEnum" json:"field6796,omitempty"` Field6797 *int32 `protobuf:"varint,11,opt,name=field6797" json:"field6797,omitempty"` Field6798 *int32 `protobuf:"varint,2,opt,name=field6798" json:"field6798,omitempty"` Field6799 *Enum6774 `protobuf:"varint,3,opt,name=field6799,enum=benchmarks.google_message3.Enum6774" json:"field6799,omitempty"` Field6800 *float64 `protobuf:"fixed64,5,opt,name=field6800" json:"field6800,omitempty"` Field6801 *float64 `protobuf:"fixed64,7,opt,name=field6801" json:"field6801,omitempty"` Field6802 *float64 `protobuf:"fixed64,8,opt,name=field6802" json:"field6802,omitempty"` Field6803 *Enum6782 `protobuf:"varint,6,opt,name=field6803,enum=benchmarks.google_message3.Enum6782" json:"field6803,omitempty"` } func (x *Message6773) Reset() { *x = Message6773{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6773) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6773) ProtoMessage() {} func (x *Message6773) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6773.ProtoReflect.Descriptor instead. func (*Message6773) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{8} } func (x *Message6773) GetField6794() Enum6769 { if x != nil && x.Field6794 != nil { return *x.Field6794 } return Enum6769_ENUM_VALUE6770 } func (x *Message6773) GetField6795() int32 { if x != nil && x.Field6795 != nil { return *x.Field6795 } return 0 } func (x *Message6773) GetField6796() UnusedEnum { if x != nil && x.Field6796 != nil { return *x.Field6796 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message6773) GetField6797() int32 { if x != nil && x.Field6797 != nil { return *x.Field6797 } return 0 } func (x *Message6773) GetField6798() int32 { if x != nil && x.Field6798 != nil { return *x.Field6798 } return 0 } func (x *Message6773) GetField6799() Enum6774 { if x != nil && x.Field6799 != nil { return *x.Field6799 } return Enum6774_ENUM_VALUE6775 } func (x *Message6773) GetField6800() float64 { if x != nil && x.Field6800 != nil { return *x.Field6800 } return 0 } func (x *Message6773) GetField6801() float64 { if x != nil && x.Field6801 != nil { return *x.Field6801 } return 0 } func (x *Message6773) GetField6802() float64 { if x != nil && x.Field6802 != nil { return *x.Field6802 } return 0 } func (x *Message6773) GetField6803() Enum6782 { if x != nil && x.Field6803 != nil { return *x.Field6803 } return Enum6782_ENUM_VALUE6783 } type Message8224 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8255 *UnusedEmptyMessage `protobuf:"bytes,1,opt,name=field8255" json:"field8255,omitempty"` Field8256 *Message8184 `protobuf:"bytes,2,opt,name=field8256" json:"field8256,omitempty"` Field8257 *Message7966 `protobuf:"bytes,3,opt,name=field8257" json:"field8257,omitempty"` Field8258 *string `protobuf:"bytes,4,opt,name=field8258" json:"field8258,omitempty"` Field8259 *string `protobuf:"bytes,5,opt,name=field8259" json:"field8259,omitempty"` Field8260 *bool `protobuf:"varint,6,opt,name=field8260" json:"field8260,omitempty"` Field8261 *int64 `protobuf:"varint,7,opt,name=field8261" json:"field8261,omitempty"` Field8262 *string `protobuf:"bytes,8,opt,name=field8262" json:"field8262,omitempty"` Field8263 *int64 `protobuf:"varint,9,opt,name=field8263" json:"field8263,omitempty"` Field8264 *float64 `protobuf:"fixed64,10,opt,name=field8264" json:"field8264,omitempty"` Field8265 *int64 `protobuf:"varint,11,opt,name=field8265" json:"field8265,omitempty"` Field8266 []string `protobuf:"bytes,12,rep,name=field8266" json:"field8266,omitempty"` Field8267 *int64 `protobuf:"varint,13,opt,name=field8267" json:"field8267,omitempty"` Field8268 *int32 `protobuf:"varint,14,opt,name=field8268" json:"field8268,omitempty"` Field8269 *int32 `protobuf:"varint,15,opt,name=field8269" json:"field8269,omitempty"` Field8270 *int64 `protobuf:"varint,16,opt,name=field8270" json:"field8270,omitempty"` Field8271 *float64 `protobuf:"fixed64,17,opt,name=field8271" json:"field8271,omitempty"` Field8272 *UnusedEmptyMessage `protobuf:"bytes,18,opt,name=field8272" json:"field8272,omitempty"` Field8273 *UnusedEmptyMessage `protobuf:"bytes,19,opt,name=field8273" json:"field8273,omitempty"` Field8274 []*UnusedEmptyMessage `protobuf:"bytes,20,rep,name=field8274" json:"field8274,omitempty"` Field8275 *bool `protobuf:"varint,21,opt,name=field8275" json:"field8275,omitempty"` Field8276 *UnusedEmptyMessage `protobuf:"bytes,22,opt,name=field8276" json:"field8276,omitempty"` Field8277 *UnusedEmptyMessage `protobuf:"bytes,23,opt,name=field8277" json:"field8277,omitempty"` Field8278 []*UnusedEmptyMessage `protobuf:"bytes,24,rep,name=field8278" json:"field8278,omitempty"` Field8279 *UnusedEmptyMessage `protobuf:"bytes,25,opt,name=field8279" json:"field8279,omitempty"` Field8280 *bool `protobuf:"varint,26,opt,name=field8280" json:"field8280,omitempty"` Field8281 []*UnusedEmptyMessage `protobuf:"bytes,27,rep,name=field8281" json:"field8281,omitempty"` } func (x *Message8224) Reset() { *x = Message8224{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8224) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8224) ProtoMessage() {} func (x *Message8224) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8224.ProtoReflect.Descriptor instead. func (*Message8224) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{9} } func (x *Message8224) GetField8255() *UnusedEmptyMessage { if x != nil { return x.Field8255 } return nil } func (x *Message8224) GetField8256() *Message8184 { if x != nil { return x.Field8256 } return nil } func (x *Message8224) GetField8257() *Message7966 { if x != nil { return x.Field8257 } return nil } func (x *Message8224) GetField8258() string { if x != nil && x.Field8258 != nil { return *x.Field8258 } return "" } func (x *Message8224) GetField8259() string { if x != nil && x.Field8259 != nil { return *x.Field8259 } return "" } func (x *Message8224) GetField8260() bool { if x != nil && x.Field8260 != nil { return *x.Field8260 } return false } func (x *Message8224) GetField8261() int64 { if x != nil && x.Field8261 != nil { return *x.Field8261 } return 0 } func (x *Message8224) GetField8262() string { if x != nil && x.Field8262 != nil { return *x.Field8262 } return "" } func (x *Message8224) GetField8263() int64 { if x != nil && x.Field8263 != nil { return *x.Field8263 } return 0 } func (x *Message8224) GetField8264() float64 { if x != nil && x.Field8264 != nil { return *x.Field8264 } return 0 } func (x *Message8224) GetField8265() int64 { if x != nil && x.Field8265 != nil { return *x.Field8265 } return 0 } func (x *Message8224) GetField8266() []string { if x != nil { return x.Field8266 } return nil } func (x *Message8224) GetField8267() int64 { if x != nil && x.Field8267 != nil { return *x.Field8267 } return 0 } func (x *Message8224) GetField8268() int32 { if x != nil && x.Field8268 != nil { return *x.Field8268 } return 0 } func (x *Message8224) GetField8269() int32 { if x != nil && x.Field8269 != nil { return *x.Field8269 } return 0 } func (x *Message8224) GetField8270() int64 { if x != nil && x.Field8270 != nil { return *x.Field8270 } return 0 } func (x *Message8224) GetField8271() float64 { if x != nil && x.Field8271 != nil { return *x.Field8271 } return 0 } func (x *Message8224) GetField8272() *UnusedEmptyMessage { if x != nil { return x.Field8272 } return nil } func (x *Message8224) GetField8273() *UnusedEmptyMessage { if x != nil { return x.Field8273 } return nil } func (x *Message8224) GetField8274() []*UnusedEmptyMessage { if x != nil { return x.Field8274 } return nil } func (x *Message8224) GetField8275() bool { if x != nil && x.Field8275 != nil { return *x.Field8275 } return false } func (x *Message8224) GetField8276() *UnusedEmptyMessage { if x != nil { return x.Field8276 } return nil } func (x *Message8224) GetField8277() *UnusedEmptyMessage { if x != nil { return x.Field8277 } return nil } func (x *Message8224) GetField8278() []*UnusedEmptyMessage { if x != nil { return x.Field8278 } return nil } func (x *Message8224) GetField8279() *UnusedEmptyMessage { if x != nil { return x.Field8279 } return nil } func (x *Message8224) GetField8280() bool { if x != nil && x.Field8280 != nil { return *x.Field8280 } return false } func (x *Message8224) GetField8281() []*UnusedEmptyMessage { if x != nil { return x.Field8281 } return nil } type Message8392 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8395 *string `protobuf:"bytes,1,opt,name=field8395" json:"field8395,omitempty"` Field8396 *string `protobuf:"bytes,2,opt,name=field8396" json:"field8396,omitempty"` Field8397 *Message7966 `protobuf:"bytes,3,opt,name=field8397" json:"field8397,omitempty"` Field8398 *string `protobuf:"bytes,4,opt,name=field8398" json:"field8398,omitempty"` Field8399 *string `protobuf:"bytes,5,opt,name=field8399" json:"field8399,omitempty"` Field8400 *string `protobuf:"bytes,6,opt,name=field8400" json:"field8400,omitempty"` Field8401 *string `protobuf:"bytes,7,opt,name=field8401" json:"field8401,omitempty"` Field8402 *string `protobuf:"bytes,8,opt,name=field8402" json:"field8402,omitempty"` Field8403 *string `protobuf:"bytes,9,opt,name=field8403" json:"field8403,omitempty"` } func (x *Message8392) Reset() { *x = Message8392{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8392) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8392) ProtoMessage() {} func (x *Message8392) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8392.ProtoReflect.Descriptor instead. func (*Message8392) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{10} } func (x *Message8392) GetField8395() string { if x != nil && x.Field8395 != nil { return *x.Field8395 } return "" } func (x *Message8392) GetField8396() string { if x != nil && x.Field8396 != nil { return *x.Field8396 } return "" } func (x *Message8392) GetField8397() *Message7966 { if x != nil { return x.Field8397 } return nil } func (x *Message8392) GetField8398() string { if x != nil && x.Field8398 != nil { return *x.Field8398 } return "" } func (x *Message8392) GetField8399() string { if x != nil && x.Field8399 != nil { return *x.Field8399 } return "" } func (x *Message8392) GetField8400() string { if x != nil && x.Field8400 != nil { return *x.Field8400 } return "" } func (x *Message8392) GetField8401() string { if x != nil && x.Field8401 != nil { return *x.Field8401 } return "" } func (x *Message8392) GetField8402() string { if x != nil && x.Field8402 != nil { return *x.Field8402 } return "" } func (x *Message8392) GetField8403() string { if x != nil && x.Field8403 != nil { return *x.Field8403 } return "" } type Message8130 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8156 *string `protobuf:"bytes,1,opt,name=field8156" json:"field8156,omitempty"` Field8157 *string `protobuf:"bytes,2,opt,name=field8157" json:"field8157,omitempty"` Field8158 *string `protobuf:"bytes,4,opt,name=field8158" json:"field8158,omitempty"` Field8159 *UnusedEmptyMessage `protobuf:"bytes,6,opt,name=field8159" json:"field8159,omitempty"` Field8160 []string `protobuf:"bytes,7,rep,name=field8160" json:"field8160,omitempty"` Field8161 *int64 `protobuf:"varint,8,opt,name=field8161" json:"field8161,omitempty"` Field8162 *UnusedEmptyMessage `protobuf:"bytes,9,opt,name=field8162" json:"field8162,omitempty"` Field8163 *string `protobuf:"bytes,10,opt,name=field8163" json:"field8163,omitempty"` Field8164 *string `protobuf:"bytes,11,opt,name=field8164" json:"field8164,omitempty"` Field8165 *string `protobuf:"bytes,12,opt,name=field8165" json:"field8165,omitempty"` Field8166 *string `protobuf:"bytes,13,opt,name=field8166" json:"field8166,omitempty"` Field8167 *UnusedEmptyMessage `protobuf:"bytes,14,opt,name=field8167" json:"field8167,omitempty"` Field8168 *UnusedEmptyMessage `protobuf:"bytes,15,opt,name=field8168" json:"field8168,omitempty"` Field8169 *string `protobuf:"bytes,16,opt,name=field8169" json:"field8169,omitempty"` Field8170 *UnusedEnum `protobuf:"varint,17,opt,name=field8170,enum=benchmarks.google_message3.UnusedEnum" json:"field8170,omitempty"` Field8171 *UnusedEnum `protobuf:"varint,18,opt,name=field8171,enum=benchmarks.google_message3.UnusedEnum" json:"field8171,omitempty"` Field8172 *bool `protobuf:"varint,19,opt,name=field8172" json:"field8172,omitempty"` Field8173 *bool `protobuf:"varint,20,opt,name=field8173" json:"field8173,omitempty"` Field8174 *float64 `protobuf:"fixed64,21,opt,name=field8174" json:"field8174,omitempty"` Field8175 *int32 `protobuf:"varint,22,opt,name=field8175" json:"field8175,omitempty"` Field8176 *int32 `protobuf:"varint,23,opt,name=field8176" json:"field8176,omitempty"` Field8177 *UnusedEmptyMessage `protobuf:"bytes,24,opt,name=field8177" json:"field8177,omitempty"` Field8178 []*UnusedEmptyMessage `protobuf:"bytes,25,rep,name=field8178" json:"field8178,omitempty"` Field8179 []*UnusedEmptyMessage `protobuf:"bytes,26,rep,name=field8179" json:"field8179,omitempty"` } func (x *Message8130) Reset() { *x = Message8130{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8130) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8130) ProtoMessage() {} func (x *Message8130) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8130.ProtoReflect.Descriptor instead. func (*Message8130) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{11} } func (x *Message8130) GetField8156() string { if x != nil && x.Field8156 != nil { return *x.Field8156 } return "" } func (x *Message8130) GetField8157() string { if x != nil && x.Field8157 != nil { return *x.Field8157 } return "" } func (x *Message8130) GetField8158() string { if x != nil && x.Field8158 != nil { return *x.Field8158 } return "" } func (x *Message8130) GetField8159() *UnusedEmptyMessage { if x != nil { return x.Field8159 } return nil } func (x *Message8130) GetField8160() []string { if x != nil { return x.Field8160 } return nil } func (x *Message8130) GetField8161() int64 { if x != nil && x.Field8161 != nil { return *x.Field8161 } return 0 } func (x *Message8130) GetField8162() *UnusedEmptyMessage { if x != nil { return x.Field8162 } return nil } func (x *Message8130) GetField8163() string { if x != nil && x.Field8163 != nil { return *x.Field8163 } return "" } func (x *Message8130) GetField8164() string { if x != nil && x.Field8164 != nil { return *x.Field8164 } return "" } func (x *Message8130) GetField8165() string { if x != nil && x.Field8165 != nil { return *x.Field8165 } return "" } func (x *Message8130) GetField8166() string { if x != nil && x.Field8166 != nil { return *x.Field8166 } return "" } func (x *Message8130) GetField8167() *UnusedEmptyMessage { if x != nil { return x.Field8167 } return nil } func (x *Message8130) GetField8168() *UnusedEmptyMessage { if x != nil { return x.Field8168 } return nil } func (x *Message8130) GetField8169() string { if x != nil && x.Field8169 != nil { return *x.Field8169 } return "" } func (x *Message8130) GetField8170() UnusedEnum { if x != nil && x.Field8170 != nil { return *x.Field8170 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message8130) GetField8171() UnusedEnum { if x != nil && x.Field8171 != nil { return *x.Field8171 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message8130) GetField8172() bool { if x != nil && x.Field8172 != nil { return *x.Field8172 } return false } func (x *Message8130) GetField8173() bool { if x != nil && x.Field8173 != nil { return *x.Field8173 } return false } func (x *Message8130) GetField8174() float64 { if x != nil && x.Field8174 != nil { return *x.Field8174 } return 0 } func (x *Message8130) GetField8175() int32 { if x != nil && x.Field8175 != nil { return *x.Field8175 } return 0 } func (x *Message8130) GetField8176() int32 { if x != nil && x.Field8176 != nil { return *x.Field8176 } return 0 } func (x *Message8130) GetField8177() *UnusedEmptyMessage { if x != nil { return x.Field8177 } return nil } func (x *Message8130) GetField8178() []*UnusedEmptyMessage { if x != nil { return x.Field8178 } return nil } func (x *Message8130) GetField8179() []*UnusedEmptyMessage { if x != nil { return x.Field8179 } return nil } type Message8478 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8489 *string `protobuf:"bytes,7,opt,name=field8489" json:"field8489,omitempty"` Field8490 *Message7966 `protobuf:"bytes,1,opt,name=field8490" json:"field8490,omitempty"` Field8491 *Message8476 `protobuf:"bytes,2,opt,name=field8491" json:"field8491,omitempty"` Field8492 *int64 `protobuf:"varint,3,opt,name=field8492" json:"field8492,omitempty"` Field8493 *Message8476 `protobuf:"bytes,4,opt,name=field8493" json:"field8493,omitempty"` Field8494 []*Message8477 `protobuf:"bytes,5,rep,name=field8494" json:"field8494,omitempty"` Field8495 *Message8454 `protobuf:"bytes,6,opt,name=field8495" json:"field8495,omitempty"` Field8496 *UnusedEmptyMessage `protobuf:"bytes,8,opt,name=field8496" json:"field8496,omitempty"` } func (x *Message8478) Reset() { *x = Message8478{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8478) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8478) ProtoMessage() {} func (x *Message8478) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8478.ProtoReflect.Descriptor instead. func (*Message8478) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{12} } func (x *Message8478) GetField8489() string { if x != nil && x.Field8489 != nil { return *x.Field8489 } return "" } func (x *Message8478) GetField8490() *Message7966 { if x != nil { return x.Field8490 } return nil } func (x *Message8478) GetField8491() *Message8476 { if x != nil { return x.Field8491 } return nil } func (x *Message8478) GetField8492() int64 { if x != nil && x.Field8492 != nil { return *x.Field8492 } return 0 } func (x *Message8478) GetField8493() *Message8476 { if x != nil { return x.Field8493 } return nil } func (x *Message8478) GetField8494() []*Message8477 { if x != nil { return x.Field8494 } return nil } func (x *Message8478) GetField8495() *Message8454 { if x != nil { return x.Field8495 } return nil } func (x *Message8478) GetField8496() *UnusedEmptyMessage { if x != nil { return x.Field8496 } return nil } type Message8479 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8497 *Message8475 `protobuf:"bytes,1,opt,name=field8497" json:"field8497,omitempty"` Field8498 *Message7966 `protobuf:"bytes,2,opt,name=field8498" json:"field8498,omitempty"` Field8499 *Message8476 `protobuf:"bytes,3,opt,name=field8499" json:"field8499,omitempty"` Field8500 *Message8476 `protobuf:"bytes,4,opt,name=field8500" json:"field8500,omitempty"` Field8501 *string `protobuf:"bytes,6,opt,name=field8501" json:"field8501,omitempty"` Field8502 *string `protobuf:"bytes,7,opt,name=field8502" json:"field8502,omitempty"` Field8503 *Message7966 `protobuf:"bytes,8,opt,name=field8503" json:"field8503,omitempty"` Field8504 *Message8455 `protobuf:"bytes,5,opt,name=field8504" json:"field8504,omitempty"` Field8505 *UnusedEmptyMessage `protobuf:"bytes,9,opt,name=field8505" json:"field8505,omitempty"` } func (x *Message8479) Reset() { *x = Message8479{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8479) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8479) ProtoMessage() {} func (x *Message8479) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8479.ProtoReflect.Descriptor instead. func (*Message8479) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{13} } func (x *Message8479) GetField8497() *Message8475 { if x != nil { return x.Field8497 } return nil } func (x *Message8479) GetField8498() *Message7966 { if x != nil { return x.Field8498 } return nil } func (x *Message8479) GetField8499() *Message8476 { if x != nil { return x.Field8499 } return nil } func (x *Message8479) GetField8500() *Message8476 { if x != nil { return x.Field8500 } return nil } func (x *Message8479) GetField8501() string { if x != nil && x.Field8501 != nil { return *x.Field8501 } return "" } func (x *Message8479) GetField8502() string { if x != nil && x.Field8502 != nil { return *x.Field8502 } return "" } func (x *Message8479) GetField8503() *Message7966 { if x != nil { return x.Field8503 } return nil } func (x *Message8479) GetField8504() *Message8455 { if x != nil { return x.Field8504 } return nil } func (x *Message8479) GetField8505() *UnusedEmptyMessage { if x != nil { return x.Field8505 } return nil } type Message10319 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field10340 *Enum10325 `protobuf:"varint,1,opt,name=field10340,enum=benchmarks.google_message3.Enum10325" json:"field10340,omitempty"` Field10341 *int32 `protobuf:"varint,4,opt,name=field10341" json:"field10341,omitempty"` Field10342 *int32 `protobuf:"varint,5,opt,name=field10342" json:"field10342,omitempty"` Field10343 []byte `protobuf:"bytes,3,opt,name=field10343" json:"field10343,omitempty"` Field10344 *string `protobuf:"bytes,2,opt,name=field10344" json:"field10344,omitempty"` Field10345 *string `protobuf:"bytes,6,opt,name=field10345" json:"field10345,omitempty"` Field10346 *string `protobuf:"bytes,7,opt,name=field10346" json:"field10346,omitempty"` } func (x *Message10319) Reset() { *x = Message10319{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10319) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10319) ProtoMessage() {} func (x *Message10319) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10319.ProtoReflect.Descriptor instead. func (*Message10319) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{14} } func (x *Message10319) GetField10340() Enum10325 { if x != nil && x.Field10340 != nil { return *x.Field10340 } return Enum10325_ENUM_VALUE10326 } func (x *Message10319) GetField10341() int32 { if x != nil && x.Field10341 != nil { return *x.Field10341 } return 0 } func (x *Message10319) GetField10342() int32 { if x != nil && x.Field10342 != nil { return *x.Field10342 } return 0 } func (x *Message10319) GetField10343() []byte { if x != nil { return x.Field10343 } return nil } func (x *Message10319) GetField10344() string { if x != nil && x.Field10344 != nil { return *x.Field10344 } return "" } func (x *Message10319) GetField10345() string { if x != nil && x.Field10345 != nil { return *x.Field10345 } return "" } func (x *Message10319) GetField10346() string { if x != nil && x.Field10346 != nil { return *x.Field10346 } return "" } type Message4016 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field4017 *int32 `protobuf:"varint,1,req,name=field4017" json:"field4017,omitempty"` Field4018 *int32 `protobuf:"varint,2,req,name=field4018" json:"field4018,omitempty"` Field4019 *int32 `protobuf:"varint,3,req,name=field4019" json:"field4019,omitempty"` Field4020 *int32 `protobuf:"varint,4,req,name=field4020" json:"field4020,omitempty"` } func (x *Message4016) Reset() { *x = Message4016{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message4016) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message4016) ProtoMessage() {} func (x *Message4016) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message4016.ProtoReflect.Descriptor instead. func (*Message4016) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{15} } func (x *Message4016) GetField4017() int32 { if x != nil && x.Field4017 != nil { return *x.Field4017 } return 0 } func (x *Message4016) GetField4018() int32 { if x != nil && x.Field4018 != nil { return *x.Field4018 } return 0 } func (x *Message4016) GetField4019() int32 { if x != nil && x.Field4019 != nil { return *x.Field4019 } return 0 } func (x *Message4016) GetField4020() int32 { if x != nil && x.Field4020 != nil { return *x.Field4020 } return 0 } type Message12669 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12681 *Message12559 `protobuf:"bytes,1,opt,name=field12681" json:"field12681,omitempty"` Field12682 *float32 `protobuf:"fixed32,2,opt,name=field12682" json:"field12682,omitempty"` Field12683 *bool `protobuf:"varint,3,opt,name=field12683" json:"field12683,omitempty"` Field12684 *Enum12670 `protobuf:"varint,4,opt,name=field12684,enum=benchmarks.google_message3.Enum12670" json:"field12684,omitempty"` } func (x *Message12669) Reset() { *x = Message12669{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12669) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12669) ProtoMessage() {} func (x *Message12669) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12669.ProtoReflect.Descriptor instead. func (*Message12669) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{16} } func (x *Message12669) GetField12681() *Message12559 { if x != nil { return x.Field12681 } return nil } func (x *Message12669) GetField12682() float32 { if x != nil && x.Field12682 != nil { return *x.Field12682 } return 0 } func (x *Message12669) GetField12683() bool { if x != nil && x.Field12683 != nil { return *x.Field12683 } return false } func (x *Message12669) GetField12684() Enum12670 { if x != nil && x.Field12684 != nil { return *x.Field12684 } return Enum12670_ENUM_VALUE12671 } type Message12819 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12834 *float64 `protobuf:"fixed64,1,opt,name=field12834" json:"field12834,omitempty"` Field12835 *float64 `protobuf:"fixed64,2,opt,name=field12835" json:"field12835,omitempty"` Field12836 *float64 `protobuf:"fixed64,3,opt,name=field12836" json:"field12836,omitempty"` Field12837 *float64 `protobuf:"fixed64,4,opt,name=field12837" json:"field12837,omitempty"` Field12838 *float64 `protobuf:"fixed64,5,opt,name=field12838" json:"field12838,omitempty"` Field12839 *float64 `protobuf:"fixed64,6,opt,name=field12839" json:"field12839,omitempty"` } func (x *Message12819) Reset() { *x = Message12819{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12819) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12819) ProtoMessage() {} func (x *Message12819) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12819.ProtoReflect.Descriptor instead. func (*Message12819) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{17} } func (x *Message12819) GetField12834() float64 { if x != nil && x.Field12834 != nil { return *x.Field12834 } return 0 } func (x *Message12819) GetField12835() float64 { if x != nil && x.Field12835 != nil { return *x.Field12835 } return 0 } func (x *Message12819) GetField12836() float64 { if x != nil && x.Field12836 != nil { return *x.Field12836 } return 0 } func (x *Message12819) GetField12837() float64 { if x != nil && x.Field12837 != nil { return *x.Field12837 } return 0 } func (x *Message12819) GetField12838() float64 { if x != nil && x.Field12838 != nil { return *x.Field12838 } return 0 } func (x *Message12819) GetField12839() float64 { if x != nil && x.Field12839 != nil { return *x.Field12839 } return 0 } type Message12820 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12840 *int32 `protobuf:"varint,1,opt,name=field12840" json:"field12840,omitempty"` Field12841 *int32 `protobuf:"varint,2,opt,name=field12841" json:"field12841,omitempty"` Field12842 *int32 `protobuf:"varint,3,opt,name=field12842" json:"field12842,omitempty"` Field12843 *int32 `protobuf:"varint,8,opt,name=field12843" json:"field12843,omitempty"` Field12844 *int32 `protobuf:"varint,4,opt,name=field12844" json:"field12844,omitempty"` Field12845 *int32 `protobuf:"varint,5,opt,name=field12845" json:"field12845,omitempty"` Field12846 *int32 `protobuf:"varint,6,opt,name=field12846" json:"field12846,omitempty"` Field12847 *int32 `protobuf:"varint,7,opt,name=field12847" json:"field12847,omitempty"` } func (x *Message12820) Reset() { *x = Message12820{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12820) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12820) ProtoMessage() {} func (x *Message12820) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12820.ProtoReflect.Descriptor instead. func (*Message12820) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{18} } func (x *Message12820) GetField12840() int32 { if x != nil && x.Field12840 != nil { return *x.Field12840 } return 0 } func (x *Message12820) GetField12841() int32 { if x != nil && x.Field12841 != nil { return *x.Field12841 } return 0 } func (x *Message12820) GetField12842() int32 { if x != nil && x.Field12842 != nil { return *x.Field12842 } return 0 } func (x *Message12820) GetField12843() int32 { if x != nil && x.Field12843 != nil { return *x.Field12843 } return 0 } func (x *Message12820) GetField12844() int32 { if x != nil && x.Field12844 != nil { return *x.Field12844 } return 0 } func (x *Message12820) GetField12845() int32 { if x != nil && x.Field12845 != nil { return *x.Field12845 } return 0 } func (x *Message12820) GetField12846() int32 { if x != nil && x.Field12846 != nil { return *x.Field12846 } return 0 } func (x *Message12820) GetField12847() int32 { if x != nil && x.Field12847 != nil { return *x.Field12847 } return 0 } type Message12821 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12848 *int32 `protobuf:"varint,1,opt,name=field12848" json:"field12848,omitempty"` Field12849 *int32 `protobuf:"varint,2,opt,name=field12849" json:"field12849,omitempty"` Field12850 *int32 `protobuf:"varint,3,opt,name=field12850" json:"field12850,omitempty"` Field12851 *int32 `protobuf:"varint,4,opt,name=field12851" json:"field12851,omitempty"` Field12852 *int32 `protobuf:"varint,5,opt,name=field12852" json:"field12852,omitempty"` } func (x *Message12821) Reset() { *x = Message12821{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12821) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12821) ProtoMessage() {} func (x *Message12821) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12821.ProtoReflect.Descriptor instead. func (*Message12821) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{19} } func (x *Message12821) GetField12848() int32 { if x != nil && x.Field12848 != nil { return *x.Field12848 } return 0 } func (x *Message12821) GetField12849() int32 { if x != nil && x.Field12849 != nil { return *x.Field12849 } return 0 } func (x *Message12821) GetField12850() int32 { if x != nil && x.Field12850 != nil { return *x.Field12850 } return 0 } func (x *Message12821) GetField12851() int32 { if x != nil && x.Field12851 != nil { return *x.Field12851 } return 0 } func (x *Message12821) GetField12852() int32 { if x != nil && x.Field12852 != nil { return *x.Field12852 } return 0 } type Message12818 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12829 *uint64 `protobuf:"varint,1,opt,name=field12829" json:"field12829,omitempty"` Field12830 *int32 `protobuf:"varint,2,opt,name=field12830" json:"field12830,omitempty"` Field12831 *int32 `protobuf:"varint,3,opt,name=field12831" json:"field12831,omitempty"` Field12832 *int32 `protobuf:"varint,5,opt,name=field12832" json:"field12832,omitempty"` Field12833 []*Message12817 `protobuf:"bytes,4,rep,name=field12833" json:"field12833,omitempty"` } func (x *Message12818) Reset() { *x = Message12818{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12818) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12818) ProtoMessage() {} func (x *Message12818) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12818.ProtoReflect.Descriptor instead. func (*Message12818) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{20} } func (x *Message12818) GetField12829() uint64 { if x != nil && x.Field12829 != nil { return *x.Field12829 } return 0 } func (x *Message12818) GetField12830() int32 { if x != nil && x.Field12830 != nil { return *x.Field12830 } return 0 } func (x *Message12818) GetField12831() int32 { if x != nil && x.Field12831 != nil { return *x.Field12831 } return 0 } func (x *Message12818) GetField12832() int32 { if x != nil && x.Field12832 != nil { return *x.Field12832 } return 0 } func (x *Message12818) GetField12833() []*Message12817 { if x != nil { return x.Field12833 } return nil } type Message16479 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field16484 *Message16480 `protobuf:"bytes,1,opt,name=field16484" json:"field16484,omitempty"` Field16485 *int32 `protobuf:"varint,5,opt,name=field16485" json:"field16485,omitempty"` Field16486 *float32 `protobuf:"fixed32,2,opt,name=field16486" json:"field16486,omitempty"` Field16487 *uint32 `protobuf:"varint,4,opt,name=field16487" json:"field16487,omitempty"` Field16488 *bool `protobuf:"varint,3,opt,name=field16488" json:"field16488,omitempty"` Field16489 *uint32 `protobuf:"varint,6,opt,name=field16489" json:"field16489,omitempty"` } func (x *Message16479) Reset() { *x = Message16479{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message16479) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message16479) ProtoMessage() {} func (x *Message16479) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message16479.ProtoReflect.Descriptor instead. func (*Message16479) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{21} } func (x *Message16479) GetField16484() *Message16480 { if x != nil { return x.Field16484 } return nil } func (x *Message16479) GetField16485() int32 { if x != nil && x.Field16485 != nil { return *x.Field16485 } return 0 } func (x *Message16479) GetField16486() float32 { if x != nil && x.Field16486 != nil { return *x.Field16486 } return 0 } func (x *Message16479) GetField16487() uint32 { if x != nil && x.Field16487 != nil { return *x.Field16487 } return 0 } func (x *Message16479) GetField16488() bool { if x != nil && x.Field16488 != nil { return *x.Field16488 } return false } func (x *Message16479) GetField16489() uint32 { if x != nil && x.Field16489 != nil { return *x.Field16489 } return 0 } type Message16722 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field16752 *string `protobuf:"bytes,1,opt,name=field16752" json:"field16752,omitempty"` Field16753 *string `protobuf:"bytes,2,opt,name=field16753" json:"field16753,omitempty"` Field16754 *string `protobuf:"bytes,3,opt,name=field16754" json:"field16754,omitempty"` Field16755 *int32 `protobuf:"varint,5,opt,name=field16755" json:"field16755,omitempty"` Field16756 *string `protobuf:"bytes,4,opt,name=field16756" json:"field16756,omitempty"` } func (x *Message16722) Reset() { *x = Message16722{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message16722) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message16722) ProtoMessage() {} func (x *Message16722) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message16722.ProtoReflect.Descriptor instead. func (*Message16722) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{22} } func (x *Message16722) GetField16752() string { if x != nil && x.Field16752 != nil { return *x.Field16752 } return "" } func (x *Message16722) GetField16753() string { if x != nil && x.Field16753 != nil { return *x.Field16753 } return "" } func (x *Message16722) GetField16754() string { if x != nil && x.Field16754 != nil { return *x.Field16754 } return "" } func (x *Message16722) GetField16755() int32 { if x != nil && x.Field16755 != nil { return *x.Field16755 } return 0 } func (x *Message16722) GetField16756() string { if x != nil && x.Field16756 != nil { return *x.Field16756 } return "" } type Message16724 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field16761 *int64 `protobuf:"varint,1,opt,name=field16761" json:"field16761,omitempty"` Field16762 *float32 `protobuf:"fixed32,2,opt,name=field16762" json:"field16762,omitempty"` Field16763 *int64 `protobuf:"varint,3,opt,name=field16763" json:"field16763,omitempty"` Field16764 *int64 `protobuf:"varint,4,opt,name=field16764" json:"field16764,omitempty"` Field16765 *bool `protobuf:"varint,5,opt,name=field16765" json:"field16765,omitempty"` Field16766 []string `protobuf:"bytes,6,rep,name=field16766" json:"field16766,omitempty"` Field16767 []string `protobuf:"bytes,7,rep,name=field16767" json:"field16767,omitempty"` Field16768 *UnusedEmptyMessage `protobuf:"bytes,8,opt,name=field16768" json:"field16768,omitempty"` Field16769 *bool `protobuf:"varint,9,opt,name=field16769" json:"field16769,omitempty"` Field16770 *uint32 `protobuf:"varint,10,opt,name=field16770" json:"field16770,omitempty"` Field16771 *Enum16728 `protobuf:"varint,11,opt,name=field16771,enum=benchmarks.google_message3.Enum16728" json:"field16771,omitempty"` Field16772 []int32 `protobuf:"varint,12,rep,name=field16772" json:"field16772,omitempty"` Field16773 *bool `protobuf:"varint,13,opt,name=field16773" json:"field16773,omitempty"` } func (x *Message16724) Reset() { *x = Message16724{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message16724) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message16724) ProtoMessage() {} func (x *Message16724) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message16724.ProtoReflect.Descriptor instead. func (*Message16724) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{23} } func (x *Message16724) GetField16761() int64 { if x != nil && x.Field16761 != nil { return *x.Field16761 } return 0 } func (x *Message16724) GetField16762() float32 { if x != nil && x.Field16762 != nil { return *x.Field16762 } return 0 } func (x *Message16724) GetField16763() int64 { if x != nil && x.Field16763 != nil { return *x.Field16763 } return 0 } func (x *Message16724) GetField16764() int64 { if x != nil && x.Field16764 != nil { return *x.Field16764 } return 0 } func (x *Message16724) GetField16765() bool { if x != nil && x.Field16765 != nil { return *x.Field16765 } return false } func (x *Message16724) GetField16766() []string { if x != nil { return x.Field16766 } return nil } func (x *Message16724) GetField16767() []string { if x != nil { return x.Field16767 } return nil } func (x *Message16724) GetField16768() *UnusedEmptyMessage { if x != nil { return x.Field16768 } return nil } func (x *Message16724) GetField16769() bool { if x != nil && x.Field16769 != nil { return *x.Field16769 } return false } func (x *Message16724) GetField16770() uint32 { if x != nil && x.Field16770 != nil { return *x.Field16770 } return 0 } func (x *Message16724) GetField16771() Enum16728 { if x != nil && x.Field16771 != nil { return *x.Field16771 } return Enum16728_ENUM_VALUE16729 } func (x *Message16724) GetField16772() []int32 { if x != nil { return x.Field16772 } return nil } func (x *Message16724) GetField16773() bool { if x != nil && x.Field16773 != nil { return *x.Field16773 } return false } type Message17728 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message17728) Reset() { *x = Message17728{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message17728) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message17728) ProtoMessage() {} func (x *Message17728) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message17728.ProtoReflect.Descriptor instead. func (*Message17728) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{24} } type Message24356 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field24559 *string `protobuf:"bytes,1,opt,name=field24559" json:"field24559,omitempty"` Field24560 *string `protobuf:"bytes,2,opt,name=field24560" json:"field24560,omitempty"` Field24561 *int32 `protobuf:"varint,14,opt,name=field24561" json:"field24561,omitempty"` Field24562 *string `protobuf:"bytes,3,opt,name=field24562" json:"field24562,omitempty"` Field24563 *string `protobuf:"bytes,4,opt,name=field24563" json:"field24563,omitempty"` Field24564 *string `protobuf:"bytes,5,opt,name=field24564" json:"field24564,omitempty"` Field24565 *UnusedEnum `protobuf:"varint,13,opt,name=field24565,enum=benchmarks.google_message3.UnusedEnum" json:"field24565,omitempty"` Field24566 *string `protobuf:"bytes,6,opt,name=field24566" json:"field24566,omitempty"` Field24567 *Enum24361 `protobuf:"varint,12,opt,name=field24567,enum=benchmarks.google_message3.Enum24361" json:"field24567,omitempty"` Field24568 *string `protobuf:"bytes,7,opt,name=field24568" json:"field24568,omitempty"` Field24569 *string `protobuf:"bytes,8,opt,name=field24569" json:"field24569,omitempty"` Field24570 *string `protobuf:"bytes,9,opt,name=field24570" json:"field24570,omitempty"` Field24571 []*UnusedEmptyMessage `protobuf:"bytes,10,rep,name=field24571" json:"field24571,omitempty"` Field24572 []string `protobuf:"bytes,11,rep,name=field24572" json:"field24572,omitempty"` Field24573 []string `protobuf:"bytes,15,rep,name=field24573" json:"field24573,omitempty"` } func (x *Message24356) Reset() { *x = Message24356{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message24356) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message24356) ProtoMessage() {} func (x *Message24356) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message24356.ProtoReflect.Descriptor instead. func (*Message24356) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{25} } func (x *Message24356) GetField24559() string { if x != nil && x.Field24559 != nil { return *x.Field24559 } return "" } func (x *Message24356) GetField24560() string { if x != nil && x.Field24560 != nil { return *x.Field24560 } return "" } func (x *Message24356) GetField24561() int32 { if x != nil && x.Field24561 != nil { return *x.Field24561 } return 0 } func (x *Message24356) GetField24562() string { if x != nil && x.Field24562 != nil { return *x.Field24562 } return "" } func (x *Message24356) GetField24563() string { if x != nil && x.Field24563 != nil { return *x.Field24563 } return "" } func (x *Message24356) GetField24564() string { if x != nil && x.Field24564 != nil { return *x.Field24564 } return "" } func (x *Message24356) GetField24565() UnusedEnum { if x != nil && x.Field24565 != nil { return *x.Field24565 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message24356) GetField24566() string { if x != nil && x.Field24566 != nil { return *x.Field24566 } return "" } func (x *Message24356) GetField24567() Enum24361 { if x != nil && x.Field24567 != nil { return *x.Field24567 } return Enum24361_ENUM_VALUE24362 } func (x *Message24356) GetField24568() string { if x != nil && x.Field24568 != nil { return *x.Field24568 } return "" } func (x *Message24356) GetField24569() string { if x != nil && x.Field24569 != nil { return *x.Field24569 } return "" } func (x *Message24356) GetField24570() string { if x != nil && x.Field24570 != nil { return *x.Field24570 } return "" } func (x *Message24356) GetField24571() []*UnusedEmptyMessage { if x != nil { return x.Field24571 } return nil } func (x *Message24356) GetField24572() []string { if x != nil { return x.Field24572 } return nil } func (x *Message24356) GetField24573() []string { if x != nil { return x.Field24573 } return nil } type Message24376 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field24589 *string `protobuf:"bytes,1,opt,name=field24589" json:"field24589,omitempty"` Field24590 *string `protobuf:"bytes,2,opt,name=field24590" json:"field24590,omitempty"` Field24591 *string `protobuf:"bytes,3,opt,name=field24591" json:"field24591,omitempty"` Field24592 *Message24377 `protobuf:"bytes,4,req,name=field24592" json:"field24592,omitempty"` Field24593 *Message24317 `protobuf:"bytes,5,opt,name=field24593" json:"field24593,omitempty"` Field24594 *string `protobuf:"bytes,6,opt,name=field24594" json:"field24594,omitempty"` Field24595 *Message24378 `protobuf:"bytes,7,opt,name=field24595" json:"field24595,omitempty"` Field24596 []string `protobuf:"bytes,8,rep,name=field24596" json:"field24596,omitempty"` Field24597 []*UnusedEmptyMessage `protobuf:"bytes,14,rep,name=field24597" json:"field24597,omitempty"` Field24598 []string `protobuf:"bytes,9,rep,name=field24598" json:"field24598,omitempty"` Field24599 []string `protobuf:"bytes,10,rep,name=field24599" json:"field24599,omitempty"` Field24600 []string `protobuf:"bytes,11,rep,name=field24600" json:"field24600,omitempty"` Field24601 *string `protobuf:"bytes,12,opt,name=field24601" json:"field24601,omitempty"` Field24602 []string `protobuf:"bytes,13,rep,name=field24602" json:"field24602,omitempty"` } func (x *Message24376) Reset() { *x = Message24376{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message24376) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message24376) ProtoMessage() {} func (x *Message24376) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message24376.ProtoReflect.Descriptor instead. func (*Message24376) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{26} } func (x *Message24376) GetField24589() string { if x != nil && x.Field24589 != nil { return *x.Field24589 } return "" } func (x *Message24376) GetField24590() string { if x != nil && x.Field24590 != nil { return *x.Field24590 } return "" } func (x *Message24376) GetField24591() string { if x != nil && x.Field24591 != nil { return *x.Field24591 } return "" } func (x *Message24376) GetField24592() *Message24377 { if x != nil { return x.Field24592 } return nil } func (x *Message24376) GetField24593() *Message24317 { if x != nil { return x.Field24593 } return nil } func (x *Message24376) GetField24594() string { if x != nil && x.Field24594 != nil { return *x.Field24594 } return "" } func (x *Message24376) GetField24595() *Message24378 { if x != nil { return x.Field24595 } return nil } func (x *Message24376) GetField24596() []string { if x != nil { return x.Field24596 } return nil } func (x *Message24376) GetField24597() []*UnusedEmptyMessage { if x != nil { return x.Field24597 } return nil } func (x *Message24376) GetField24598() []string { if x != nil { return x.Field24598 } return nil } func (x *Message24376) GetField24599() []string { if x != nil { return x.Field24599 } return nil } func (x *Message24376) GetField24600() []string { if x != nil { return x.Field24600 } return nil } func (x *Message24376) GetField24601() string { if x != nil && x.Field24601 != nil { return *x.Field24601 } return "" } func (x *Message24376) GetField24602() []string { if x != nil { return x.Field24602 } return nil } type Message24366 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field24574 *string `protobuf:"bytes,1,opt,name=field24574" json:"field24574,omitempty"` Field24575 *string `protobuf:"bytes,2,opt,name=field24575" json:"field24575,omitempty"` Field24576 *string `protobuf:"bytes,3,opt,name=field24576" json:"field24576,omitempty"` Field24577 *int32 `protobuf:"varint,10,opt,name=field24577" json:"field24577,omitempty"` Field24578 *string `protobuf:"bytes,13,opt,name=field24578" json:"field24578,omitempty"` Field24579 *string `protobuf:"bytes,4,opt,name=field24579" json:"field24579,omitempty"` Field24580 *string `protobuf:"bytes,5,opt,name=field24580" json:"field24580,omitempty"` Field24581 *UnusedEnum `protobuf:"varint,9,opt,name=field24581,enum=benchmarks.google_message3.UnusedEnum" json:"field24581,omitempty"` Field24582 *string `protobuf:"bytes,14,opt,name=field24582" json:"field24582,omitempty"` Field24583 *UnusedEnum `protobuf:"varint,15,opt,name=field24583,enum=benchmarks.google_message3.UnusedEnum" json:"field24583,omitempty"` Field24584 *string `protobuf:"bytes,6,opt,name=field24584" json:"field24584,omitempty"` Field24585 *string `protobuf:"bytes,12,opt,name=field24585" json:"field24585,omitempty"` Field24586 []*UnusedEmptyMessage `protobuf:"bytes,7,rep,name=field24586" json:"field24586,omitempty"` Field24587 []string `protobuf:"bytes,8,rep,name=field24587" json:"field24587,omitempty"` Field24588 []string `protobuf:"bytes,11,rep,name=field24588" json:"field24588,omitempty"` } func (x *Message24366) Reset() { *x = Message24366{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message24366) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message24366) ProtoMessage() {} func (x *Message24366) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message24366.ProtoReflect.Descriptor instead. func (*Message24366) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{27} } func (x *Message24366) GetField24574() string { if x != nil && x.Field24574 != nil { return *x.Field24574 } return "" } func (x *Message24366) GetField24575() string { if x != nil && x.Field24575 != nil { return *x.Field24575 } return "" } func (x *Message24366) GetField24576() string { if x != nil && x.Field24576 != nil { return *x.Field24576 } return "" } func (x *Message24366) GetField24577() int32 { if x != nil && x.Field24577 != nil { return *x.Field24577 } return 0 } func (x *Message24366) GetField24578() string { if x != nil && x.Field24578 != nil { return *x.Field24578 } return "" } func (x *Message24366) GetField24579() string { if x != nil && x.Field24579 != nil { return *x.Field24579 } return "" } func (x *Message24366) GetField24580() string { if x != nil && x.Field24580 != nil { return *x.Field24580 } return "" } func (x *Message24366) GetField24581() UnusedEnum { if x != nil && x.Field24581 != nil { return *x.Field24581 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message24366) GetField24582() string { if x != nil && x.Field24582 != nil { return *x.Field24582 } return "" } func (x *Message24366) GetField24583() UnusedEnum { if x != nil && x.Field24583 != nil { return *x.Field24583 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message24366) GetField24584() string { if x != nil && x.Field24584 != nil { return *x.Field24584 } return "" } func (x *Message24366) GetField24585() string { if x != nil && x.Field24585 != nil { return *x.Field24585 } return "" } func (x *Message24366) GetField24586() []*UnusedEmptyMessage { if x != nil { return x.Field24586 } return nil } func (x *Message24366) GetField24587() []string { if x != nil { return x.Field24587 } return nil } func (x *Message24366) GetField24588() []string { if x != nil { return x.Field24588 } return nil } type Message35546_Message35547 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field35569 *int32 `protobuf:"varint,5,req,name=field35569" json:"field35569,omitempty"` Field35570 *int32 `protobuf:"varint,6,req,name=field35570" json:"field35570,omitempty"` } func (x *Message35546_Message35547) Reset() { *x = Message35546_Message35547{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message35546_Message35547) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message35546_Message35547) ProtoMessage() {} func (x *Message35546_Message35547) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message35546_Message35547.ProtoReflect.Descriptor instead. func (*Message35546_Message35547) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{0, 0} } func (x *Message35546_Message35547) GetField35569() int32 { if x != nil && x.Field35569 != nil { return *x.Field35569 } return 0 } func (x *Message35546_Message35547) GetField35570() int32 { if x != nil && x.Field35570 != nil { return *x.Field35570 } return 0 } type Message35546_Message35548 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field35571 *int64 `protobuf:"varint,11,req,name=field35571" json:"field35571,omitempty"` Field35572 *int64 `protobuf:"varint,12,req,name=field35572" json:"field35572,omitempty"` } func (x *Message35546_Message35548) Reset() { *x = Message35546_Message35548{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message35546_Message35548) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message35546_Message35548) ProtoMessage() {} func (x *Message35546_Message35548) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message35546_Message35548.ProtoReflect.Descriptor instead. func (*Message35546_Message35548) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{0, 1} } func (x *Message35546_Message35548) GetField35571() int64 { if x != nil && x.Field35571 != nil { return *x.Field35571 } return 0 } func (x *Message35546_Message35548) GetField35572() int64 { if x != nil && x.Field35572 != nil { return *x.Field35572 } return 0 } type Message2356_Message2357 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field2399 *int64 `protobuf:"varint,9,opt,name=field2399" json:"field2399,omitempty"` Field2400 *int32 `protobuf:"varint,10,opt,name=field2400" json:"field2400,omitempty"` Field2401 *int32 `protobuf:"varint,11,opt,name=field2401" json:"field2401,omitempty"` Field2402 *int32 `protobuf:"varint,12,opt,name=field2402" json:"field2402,omitempty"` Field2403 *int32 `protobuf:"varint,13,opt,name=field2403" json:"field2403,omitempty"` Field2404 *int32 `protobuf:"varint,116,opt,name=field2404" json:"field2404,omitempty"` Field2405 *int32 `protobuf:"varint,106,opt,name=field2405" json:"field2405,omitempty"` Field2406 []byte `protobuf:"bytes,14,req,name=field2406" json:"field2406,omitempty"` Field2407 *int32 `protobuf:"varint,45,opt,name=field2407" json:"field2407,omitempty"` Field2408 *int32 `protobuf:"varint,112,opt,name=field2408" json:"field2408,omitempty"` Field2409 *bool `protobuf:"varint,122,opt,name=field2409" json:"field2409,omitempty"` Field2410 []byte `protobuf:"bytes,124,opt,name=field2410" json:"field2410,omitempty"` } func (x *Message2356_Message2357) Reset() { *x = Message2356_Message2357{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message2356_Message2357) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message2356_Message2357) ProtoMessage() {} func (x *Message2356_Message2357) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message2356_Message2357.ProtoReflect.Descriptor instead. func (*Message2356_Message2357) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{1, 0} } func (x *Message2356_Message2357) GetField2399() int64 { if x != nil && x.Field2399 != nil { return *x.Field2399 } return 0 } func (x *Message2356_Message2357) GetField2400() int32 { if x != nil && x.Field2400 != nil { return *x.Field2400 } return 0 } func (x *Message2356_Message2357) GetField2401() int32 { if x != nil && x.Field2401 != nil { return *x.Field2401 } return 0 } func (x *Message2356_Message2357) GetField2402() int32 { if x != nil && x.Field2402 != nil { return *x.Field2402 } return 0 } func (x *Message2356_Message2357) GetField2403() int32 { if x != nil && x.Field2403 != nil { return *x.Field2403 } return 0 } func (x *Message2356_Message2357) GetField2404() int32 { if x != nil && x.Field2404 != nil { return *x.Field2404 } return 0 } func (x *Message2356_Message2357) GetField2405() int32 { if x != nil && x.Field2405 != nil { return *x.Field2405 } return 0 } func (x *Message2356_Message2357) GetField2406() []byte { if x != nil { return x.Field2406 } return nil } func (x *Message2356_Message2357) GetField2407() int32 { if x != nil && x.Field2407 != nil { return *x.Field2407 } return 0 } func (x *Message2356_Message2357) GetField2408() int32 { if x != nil && x.Field2408 != nil { return *x.Field2408 } return 0 } func (x *Message2356_Message2357) GetField2409() bool { if x != nil && x.Field2409 != nil { return *x.Field2409 } return false } func (x *Message2356_Message2357) GetField2410() []byte { if x != nil { return x.Field2410 } return nil } type Message2356_Message2358 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message2356_Message2358) Reset() { *x = Message2356_Message2358{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message2356_Message2358) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message2356_Message2358) ProtoMessage() {} func (x *Message2356_Message2358) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message2356_Message2358.ProtoReflect.Descriptor instead. func (*Message2356_Message2358) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{1, 1} } type Message2356_Message2359 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field2413 *string `protobuf:"bytes,41,opt,name=field2413" json:"field2413,omitempty"` Field2414 *string `protobuf:"bytes,42,opt,name=field2414" json:"field2414,omitempty"` Field2415 *string `protobuf:"bytes,43,opt,name=field2415" json:"field2415,omitempty"` Field2416 *string `protobuf:"bytes,44,opt,name=field2416" json:"field2416,omitempty"` Field2417 *int32 `protobuf:"varint,46,opt,name=field2417" json:"field2417,omitempty"` Field2418 *string `protobuf:"bytes,47,opt,name=field2418" json:"field2418,omitempty"` Field2419 *float32 `protobuf:"fixed32,110,opt,name=field2419" json:"field2419,omitempty"` Field2420 *float32 `protobuf:"fixed32,111,opt,name=field2420" json:"field2420,omitempty"` } func (x *Message2356_Message2359) Reset() { *x = Message2356_Message2359{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message2356_Message2359) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message2356_Message2359) ProtoMessage() {} func (x *Message2356_Message2359) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message2356_Message2359.ProtoReflect.Descriptor instead. func (*Message2356_Message2359) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{1, 2} } func (x *Message2356_Message2359) GetField2413() string { if x != nil && x.Field2413 != nil { return *x.Field2413 } return "" } func (x *Message2356_Message2359) GetField2414() string { if x != nil && x.Field2414 != nil { return *x.Field2414 } return "" } func (x *Message2356_Message2359) GetField2415() string { if x != nil && x.Field2415 != nil { return *x.Field2415 } return "" } func (x *Message2356_Message2359) GetField2416() string { if x != nil && x.Field2416 != nil { return *x.Field2416 } return "" } func (x *Message2356_Message2359) GetField2417() int32 { if x != nil && x.Field2417 != nil { return *x.Field2417 } return 0 } func (x *Message2356_Message2359) GetField2418() string { if x != nil && x.Field2418 != nil { return *x.Field2418 } return "" } func (x *Message2356_Message2359) GetField2419() float32 { if x != nil && x.Field2419 != nil { return *x.Field2419 } return 0 } func (x *Message2356_Message2359) GetField2420() float32 { if x != nil && x.Field2420 != nil { return *x.Field2420 } return 0 } type Message7029_Message7030 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7226 *string `protobuf:"bytes,14,opt,name=field7226" json:"field7226,omitempty"` Field7227 *string `protobuf:"bytes,15,opt,name=field7227" json:"field7227,omitempty"` Field7228 *int64 `protobuf:"varint,16,opt,name=field7228" json:"field7228,omitempty"` } func (x *Message7029_Message7030) Reset() { *x = Message7029_Message7030{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7029_Message7030) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7029_Message7030) ProtoMessage() {} func (x *Message7029_Message7030) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7029_Message7030.ProtoReflect.Descriptor instead. func (*Message7029_Message7030) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{2, 0} } func (x *Message7029_Message7030) GetField7226() string { if x != nil && x.Field7226 != nil { return *x.Field7226 } return "" } func (x *Message7029_Message7030) GetField7227() string { if x != nil && x.Field7227 != nil { return *x.Field7227 } return "" } func (x *Message7029_Message7030) GetField7228() int64 { if x != nil && x.Field7228 != nil { return *x.Field7228 } return 0 } type Message7029_Message7031 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7229 *string `protobuf:"bytes,22,opt,name=field7229" json:"field7229,omitempty"` Field7230 *int32 `protobuf:"varint,23,opt,name=field7230" json:"field7230,omitempty"` Field7231 *int32 `protobuf:"varint,24,opt,name=field7231" json:"field7231,omitempty"` Field7232 *int32 `protobuf:"varint,30,opt,name=field7232" json:"field7232,omitempty"` Field7233 *int32 `protobuf:"varint,31,opt,name=field7233" json:"field7233,omitempty"` Field7234 *int32 `protobuf:"varint,35,opt,name=field7234" json:"field7234,omitempty"` } func (x *Message7029_Message7031) Reset() { *x = Message7029_Message7031{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7029_Message7031) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7029_Message7031) ProtoMessage() {} func (x *Message7029_Message7031) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7029_Message7031.ProtoReflect.Descriptor instead. func (*Message7029_Message7031) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{2, 1} } func (x *Message7029_Message7031) GetField7229() string { if x != nil && x.Field7229 != nil { return *x.Field7229 } return "" } func (x *Message7029_Message7031) GetField7230() int32 { if x != nil && x.Field7230 != nil { return *x.Field7230 } return 0 } func (x *Message7029_Message7031) GetField7231() int32 { if x != nil && x.Field7231 != nil { return *x.Field7231 } return 0 } func (x *Message7029_Message7031) GetField7232() int32 { if x != nil && x.Field7232 != nil { return *x.Field7232 } return 0 } func (x *Message7029_Message7031) GetField7233() int32 { if x != nil && x.Field7233 != nil { return *x.Field7233 } return 0 } func (x *Message7029_Message7031) GetField7234() int32 { if x != nil && x.Field7234 != nil { return *x.Field7234 } return 0 } type Message18921_Message18922 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field18959 *uint64 `protobuf:"varint,6,opt,name=field18959" json:"field18959,omitempty"` Field18960 *string `protobuf:"bytes,13,opt,name=field18960" json:"field18960,omitempty"` Field18961 *bool `protobuf:"varint,21,opt,name=field18961" json:"field18961,omitempty"` Field18962 *bool `protobuf:"varint,33,opt,name=field18962" json:"field18962,omitempty"` Field18963 *int32 `protobuf:"varint,7,opt,name=field18963" json:"field18963,omitempty"` Field18964 *int32 `protobuf:"varint,8,opt,name=field18964" json:"field18964,omitempty"` Field18965 *string `protobuf:"bytes,9,opt,name=field18965" json:"field18965,omitempty"` Field18966 *Message18856 `protobuf:"bytes,10,opt,name=field18966" json:"field18966,omitempty"` Field18967 *uint64 `protobuf:"varint,34,opt,name=field18967" json:"field18967,omitempty"` Field18968 *UnusedEmptyMessage `protobuf:"bytes,11,opt,name=field18968" json:"field18968,omitempty"` Field18969 *uint64 `protobuf:"varint,35,opt,name=field18969" json:"field18969,omitempty"` Field18970 *float32 `protobuf:"fixed32,12,opt,name=field18970" json:"field18970,omitempty"` Field18971 []string `protobuf:"bytes,14,rep,name=field18971" json:"field18971,omitempty"` Field18972 *bool `protobuf:"varint,15,opt,name=field18972" json:"field18972,omitempty"` Field18973 *bool `protobuf:"varint,16,opt,name=field18973" json:"field18973,omitempty"` Field18974 *float32 `protobuf:"fixed32,22,opt,name=field18974" json:"field18974,omitempty"` Field18975 *int32 `protobuf:"varint,18,opt,name=field18975" json:"field18975,omitempty"` Field18976 *int32 `protobuf:"varint,19,opt,name=field18976" json:"field18976,omitempty"` Field18977 *int32 `protobuf:"varint,20,opt,name=field18977" json:"field18977,omitempty"` Field18978 *UnusedEmptyMessage `protobuf:"bytes,25,opt,name=field18978" json:"field18978,omitempty"` Field18979 *UnusedEnum `protobuf:"varint,26,opt,name=field18979,enum=benchmarks.google_message3.UnusedEnum" json:"field18979,omitempty"` Field18980 []string `protobuf:"bytes,27,rep,name=field18980" json:"field18980,omitempty"` Field18981 *float32 `protobuf:"fixed32,28,opt,name=field18981" json:"field18981,omitempty"` } func (x *Message18921_Message18922) Reset() { *x = Message18921_Message18922{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message18921_Message18922) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message18921_Message18922) ProtoMessage() {} func (x *Message18921_Message18922) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message18921_Message18922.ProtoReflect.Descriptor instead. func (*Message18921_Message18922) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{4, 0} } func (x *Message18921_Message18922) GetField18959() uint64 { if x != nil && x.Field18959 != nil { return *x.Field18959 } return 0 } func (x *Message18921_Message18922) GetField18960() string { if x != nil && x.Field18960 != nil { return *x.Field18960 } return "" } func (x *Message18921_Message18922) GetField18961() bool { if x != nil && x.Field18961 != nil { return *x.Field18961 } return false } func (x *Message18921_Message18922) GetField18962() bool { if x != nil && x.Field18962 != nil { return *x.Field18962 } return false } func (x *Message18921_Message18922) GetField18963() int32 { if x != nil && x.Field18963 != nil { return *x.Field18963 } return 0 } func (x *Message18921_Message18922) GetField18964() int32 { if x != nil && x.Field18964 != nil { return *x.Field18964 } return 0 } func (x *Message18921_Message18922) GetField18965() string { if x != nil && x.Field18965 != nil { return *x.Field18965 } return "" } func (x *Message18921_Message18922) GetField18966() *Message18856 { if x != nil { return x.Field18966 } return nil } func (x *Message18921_Message18922) GetField18967() uint64 { if x != nil && x.Field18967 != nil { return *x.Field18967 } return 0 } func (x *Message18921_Message18922) GetField18968() *UnusedEmptyMessage { if x != nil { return x.Field18968 } return nil } func (x *Message18921_Message18922) GetField18969() uint64 { if x != nil && x.Field18969 != nil { return *x.Field18969 } return 0 } func (x *Message18921_Message18922) GetField18970() float32 { if x != nil && x.Field18970 != nil { return *x.Field18970 } return 0 } func (x *Message18921_Message18922) GetField18971() []string { if x != nil { return x.Field18971 } return nil } func (x *Message18921_Message18922) GetField18972() bool { if x != nil && x.Field18972 != nil { return *x.Field18972 } return false } func (x *Message18921_Message18922) GetField18973() bool { if x != nil && x.Field18973 != nil { return *x.Field18973 } return false } func (x *Message18921_Message18922) GetField18974() float32 { if x != nil && x.Field18974 != nil { return *x.Field18974 } return 0 } func (x *Message18921_Message18922) GetField18975() int32 { if x != nil && x.Field18975 != nil { return *x.Field18975 } return 0 } func (x *Message18921_Message18922) GetField18976() int32 { if x != nil && x.Field18976 != nil { return *x.Field18976 } return 0 } func (x *Message18921_Message18922) GetField18977() int32 { if x != nil && x.Field18977 != nil { return *x.Field18977 } return 0 } func (x *Message18921_Message18922) GetField18978() *UnusedEmptyMessage { if x != nil { return x.Field18978 } return nil } func (x *Message18921_Message18922) GetField18979() UnusedEnum { if x != nil && x.Field18979 != nil { return *x.Field18979 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message18921_Message18922) GetField18980() []string { if x != nil { return x.Field18980 } return nil } func (x *Message18921_Message18922) GetField18981() float32 { if x != nil && x.Field18981 != nil { return *x.Field18981 } return 0 } type Message3886_Message3887 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field3932 *string `protobuf:"bytes,2,req,name=field3932" json:"field3932,omitempty"` Field3933 *string `protobuf:"bytes,9,opt,name=field3933" json:"field3933,omitempty"` Field3934 *Message3850 `protobuf:"bytes,3,opt,name=field3934" json:"field3934,omitempty"` Field3935 []byte `protobuf:"bytes,8,opt,name=field3935" json:"field3935,omitempty"` } func (x *Message3886_Message3887) Reset() { *x = Message3886_Message3887{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3886_Message3887) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3886_Message3887) ProtoMessage() {} func (x *Message3886_Message3887) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3886_Message3887.ProtoReflect.Descriptor instead. func (*Message3886_Message3887) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP(), []int{6, 0} } func (x *Message3886_Message3887) GetField3932() string { if x != nil && x.Field3932 != nil { return *x.Field3932 } return "" } func (x *Message3886_Message3887) GetField3933() string { if x != nil && x.Field3933 != nil { return *x.Field3933 } return "" } func (x *Message3886_Message3887) GetField3934() *Message3850 { if x != nil { return x.Field3934 } return nil } func (x *Message3886_Message3887) GetField3935() []byte { if x != nil { return x.Field3935 } return nil } var File_datasets_google_message3_benchmark_message3_3_proto protoreflect.FileDescriptor var file_datasets_google_message3_benchmark_message3_3_proto_rawDesc = []byte{ 0x0a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x35, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x37, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x38, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa4, 0x05, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x34, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x35, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x35, 0x37, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x35, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x35, 0x38, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x35, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x35, 0x39, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x35, 0x39, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x34, 0x37, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x34, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x34, 0x37, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x34, 0x37, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x34, 0x38, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x34, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x34, 0x38, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x34, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x36, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x36, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x36, 0x33, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x36, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x36, 0x34, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x36, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x36, 0x35, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x36, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x36, 0x36, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x36, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x36, 0x37, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x36, 0x37, 0x1a, 0x4e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x34, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x36, 0x39, 0x18, 0x05, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x36, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x37, 0x30, 0x18, 0x06, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x37, 0x30, 0x1a, 0x4e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x34, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x37, 0x31, 0x18, 0x0b, 0x20, 0x02, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x37, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x37, 0x32, 0x18, 0x0c, 0x20, 0x02, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x37, 0x32, 0x22, 0xca, 0x0f, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x36, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x36, 0x38, 0x18, 0x79, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x37, 0x34, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x36, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x36, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x36, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x31, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x32, 0x18, 0x03, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x33, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x36, 0x18, 0x65, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x37, 0x18, 0x66, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x38, 0x18, 0x67, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x39, 0x18, 0x68, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x30, 0x18, 0x71, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x31, 0x18, 0x72, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x32, 0x18, 0x73, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x33, 0x18, 0x75, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x34, 0x18, 0x76, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x35, 0x18, 0x77, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x36, 0x18, 0x69, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x37, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x37, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x37, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x33, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x37, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x39, 0x18, 0x78, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x39, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x38, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x33, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x38, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x38, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x39, 0x18, 0x28, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x33, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x39, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x32, 0x18, 0x32, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x32, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x33, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x33, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x34, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x34, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x35, 0x18, 0x50, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x35, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x36, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x37, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x38, 0x18, 0x7b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x38, 0x1a, 0xf5, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x39, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x30, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x31, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x34, 0x18, 0x74, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x35, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x36, 0x18, 0x0e, 0x20, 0x02, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x37, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x38, 0x18, 0x70, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x39, 0x18, 0x7a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x31, 0x30, 0x18, 0x7c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x31, 0x30, 0x1a, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x38, 0x1a, 0xfd, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x31, 0x33, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x31, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x31, 0x34, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x31, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x31, 0x35, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x31, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x31, 0x36, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x31, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x31, 0x37, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x31, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x31, 0x38, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x31, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x31, 0x39, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x31, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x32, 0x30, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x32, 0x30, 0x22, 0xf8, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x32, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x38, 0x33, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x38, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x38, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x38, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x38, 0x35, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x38, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x38, 0x36, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x38, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x38, 0x37, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x38, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x38, 0x38, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x38, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x38, 0x39, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x38, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x39, 0x30, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x39, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x39, 0x31, 0x18, 0x31, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x39, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x39, 0x32, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x39, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x39, 0x33, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x39, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x39, 0x34, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x39, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x39, 0x35, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x39, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x39, 0x36, 0x18, 0x28, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x39, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x39, 0x37, 0x18, 0x29, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x39, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x39, 0x38, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x39, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x39, 0x39, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x31, 0x39, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x30, 0x30, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x30, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x30, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x30, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x30, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x30, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x30, 0x33, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x30, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x30, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x30, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x30, 0x35, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x30, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x30, 0x36, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x30, 0x36, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x33, 0x30, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x33, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x32, 0x39, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x33, 0x30, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x33, 0x30, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x33, 0x31, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x33, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x32, 0x39, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x33, 0x31, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x33, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x30, 0x39, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x30, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x31, 0x30, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x31, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x31, 0x31, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x31, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x31, 0x32, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x31, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x31, 0x33, 0x18, 0x30, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x31, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x31, 0x34, 0x18, 0x22, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x31, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x31, 0x35, 0x18, 0x24, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x31, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x31, 0x36, 0x18, 0x25, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x31, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x31, 0x37, 0x18, 0x26, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x31, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x31, 0x38, 0x18, 0x27, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x31, 0x38, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x31, 0x39, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x31, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x32, 0x30, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x32, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x32, 0x31, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x32, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x32, 0x32, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x32, 0x32, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x32, 0x33, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x32, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x32, 0x34, 0x18, 0x33, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x32, 0x34, 0x1a, 0x67, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x33, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x32, 0x36, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x32, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x32, 0x37, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x32, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x32, 0x38, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x32, 0x38, 0x1a, 0xc1, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x33, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x32, 0x39, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x32, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x33, 0x30, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x33, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x33, 0x31, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x33, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x33, 0x32, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x33, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x33, 0x33, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x33, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x33, 0x34, 0x18, 0x23, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x32, 0x33, 0x34, 0x22, 0x2e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x33, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x33, 0x39, 0x18, 0x01, 0x20, 0x02, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x33, 0x39, 0x22, 0xd0, 0x0c, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x39, 0x32, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x34, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x34, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x34, 0x37, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x34, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x34, 0x38, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x34, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x34, 0x39, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x34, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x35, 0x30, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x35, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x35, 0x31, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x35, 0x31, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x35, 0x32, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x35, 0x32, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x39, 0x32, 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x39, 0x32, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x39, 0x32, 0x32, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x39, 0x32, 0x32, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x35, 0x34, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x35, 0x34, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x35, 0x35, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x39, 0x34, 0x33, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x35, 0x35, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x35, 0x36, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x39, 0x34, 0x34, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x35, 0x36, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x35, 0x37, 0x18, 0x20, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x35, 0x37, 0x1a, 0xa0, 0x07, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x39, 0x32, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x35, 0x39, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x35, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x36, 0x30, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x36, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x36, 0x31, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x36, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x36, 0x32, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x36, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x36, 0x33, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x36, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x36, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x36, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x36, 0x35, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x36, 0x35, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x36, 0x36, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x38, 0x35, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x36, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x36, 0x37, 0x18, 0x22, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x36, 0x37, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x36, 0x38, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x36, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x36, 0x39, 0x18, 0x23, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x36, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x37, 0x30, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x37, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x37, 0x31, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x37, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x37, 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x37, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x37, 0x33, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x37, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x37, 0x34, 0x18, 0x16, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x37, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x37, 0x35, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x37, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x37, 0x36, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x37, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x37, 0x37, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x37, 0x37, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x37, 0x38, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x37, 0x38, 0x12, 0x46, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x37, 0x39, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x37, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x38, 0x30, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x38, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x38, 0x31, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x39, 0x38, 0x31, 0x22, 0x2e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x34, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x34, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x34, 0x31, 0x22, 0x95, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x38, 0x38, 0x36, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x38, 0x38, 0x37, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x33, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x38, 0x38, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x38, 0x38, 0x37, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x38, 0x38, 0x37, 0x1a, 0xae, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x38, 0x38, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x33, 0x32, 0x18, 0x02, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x33, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x33, 0x33, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x33, 0x33, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x33, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x38, 0x35, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x33, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x33, 0x35, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x33, 0x35, 0x22, 0xc5, 0x04, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x34, 0x33, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x35, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x32, 0x31, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x35, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x36, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x32, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x36, 0x30, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x36, 0x31, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x32, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x36, 0x31, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x36, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x32, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x36, 0x32, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x36, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x32, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x36, 0x33, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x36, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x33, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x36, 0x34, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x36, 0x35, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x33, 0x34, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x36, 0x35, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x36, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x34, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x36, 0x36, 0x22, 0xd3, 0x03, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x37, 0x33, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x39, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x37, 0x36, 0x39, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x39, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x39, 0x35, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x39, 0x35, 0x12, 0x44, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x39, 0x36, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x39, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x39, 0x37, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x39, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x39, 0x38, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x39, 0x38, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x39, 0x39, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x37, 0x37, 0x34, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x39, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x38, 0x30, 0x30, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x38, 0x30, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x38, 0x30, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x38, 0x30, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x38, 0x30, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x38, 0x30, 0x32, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x38, 0x30, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x37, 0x38, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x38, 0x30, 0x33, 0x22, 0xb9, 0x0a, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x32, 0x32, 0x34, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x35, 0x35, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x35, 0x35, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x35, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x31, 0x38, 0x34, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x35, 0x36, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x35, 0x37, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x36, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x35, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x35, 0x38, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x35, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x35, 0x39, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x35, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x36, 0x30, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x36, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x36, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x36, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x36, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x36, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x36, 0x33, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x36, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x36, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x36, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x36, 0x35, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x36, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x36, 0x36, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x36, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x36, 0x37, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x36, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x36, 0x38, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x36, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x36, 0x39, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x36, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x37, 0x30, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x37, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x37, 0x31, 0x18, 0x11, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x37, 0x31, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x37, 0x32, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x37, 0x32, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x37, 0x33, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x37, 0x33, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x37, 0x34, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x37, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x37, 0x35, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x37, 0x35, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x37, 0x36, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x37, 0x36, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x37, 0x37, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x37, 0x37, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x37, 0x38, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x37, 0x38, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x37, 0x39, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x37, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x38, 0x30, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x38, 0x30, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x38, 0x31, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x38, 0x31, 0x22, 0xc4, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x33, 0x39, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x39, 0x35, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x39, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x39, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x39, 0x36, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x39, 0x37, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x36, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x39, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x39, 0x38, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x39, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x39, 0x39, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x39, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x30, 0x30, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x30, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x30, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x30, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x30, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x30, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x30, 0x33, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x30, 0x33, 0x22, 0xfd, 0x08, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x31, 0x33, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x35, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x35, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x35, 0x37, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x35, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x35, 0x38, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x35, 0x38, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x35, 0x39, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x35, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x36, 0x30, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x36, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x36, 0x31, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x36, 0x31, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x36, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x36, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x36, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x36, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x36, 0x34, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x36, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x36, 0x35, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x36, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x36, 0x36, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x36, 0x36, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x36, 0x37, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x36, 0x37, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x36, 0x38, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x36, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x36, 0x39, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x36, 0x39, 0x12, 0x44, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x37, 0x30, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x37, 0x30, 0x12, 0x44, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x37, 0x31, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x37, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x37, 0x32, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x37, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x37, 0x33, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x37, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x37, 0x34, 0x18, 0x15, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x37, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x37, 0x35, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x37, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x37, 0x36, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x37, 0x36, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x37, 0x37, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x37, 0x37, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x37, 0x38, 0x18, 0x19, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x37, 0x38, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x37, 0x39, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x37, 0x39, 0x22, 0xfa, 0x03, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x37, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x38, 0x39, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x38, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x39, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x36, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x39, 0x30, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x39, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x37, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x39, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x39, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x39, 0x32, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x39, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x37, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x39, 0x33, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x39, 0x34, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x37, 0x37, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x39, 0x34, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x39, 0x35, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x35, 0x34, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x39, 0x35, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x39, 0x36, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x39, 0x36, 0x22, 0xc1, 0x04, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x37, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x39, 0x37, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x37, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x39, 0x37, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x39, 0x38, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x36, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x39, 0x38, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x39, 0x39, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x37, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x39, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x30, 0x30, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x37, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x30, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x30, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x30, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x30, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x30, 0x32, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x30, 0x33, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x36, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x30, 0x33, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x30, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x35, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x30, 0x34, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x30, 0x35, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x30, 0x35, 0x22, 0x95, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x33, 0x31, 0x39, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x30, 0x33, 0x32, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x35, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x36, 0x22, 0x85, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x30, 0x31, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x31, 0x37, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x31, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x31, 0x38, 0x18, 0x02, 0x20, 0x02, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x31, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x31, 0x39, 0x18, 0x03, 0x20, 0x02, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x31, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x32, 0x30, 0x18, 0x04, 0x20, 0x02, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x32, 0x30, 0x22, 0xdf, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x36, 0x36, 0x39, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x38, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x35, 0x35, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x38, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x38, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x38, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x38, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x38, 0x33, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x38, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x32, 0x36, 0x37, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x38, 0x34, 0x22, 0xce, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x31, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x37, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x38, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x39, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x39, 0x22, 0x8e, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x32, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x33, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x37, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x37, 0x22, 0xae, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x32, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x38, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x39, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x35, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x35, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x35, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x35, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x35, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x35, 0x32, 0x22, 0xd8, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x31, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x32, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x32, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x32, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x33, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x31, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x33, 0x22, 0xf8, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x34, 0x37, 0x39, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x38, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x34, 0x38, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x38, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x38, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x38, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x38, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x38, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x38, 0x37, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x38, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x38, 0x38, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x38, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x38, 0x39, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x38, 0x39, 0x22, 0xae, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x37, 0x32, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x35, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x35, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x35, 0x33, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x35, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x35, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x35, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x35, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x35, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x35, 0x36, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x35, 0x36, 0x22, 0x85, 0x04, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x37, 0x32, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x36, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x36, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x36, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x36, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x36, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x36, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x36, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x36, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x36, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x36, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x36, 0x36, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x36, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x36, 0x37, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x36, 0x37, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x36, 0x38, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x36, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x36, 0x39, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x36, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x37, 0x30, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x37, 0x30, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x37, 0x31, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x36, 0x37, 0x32, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x37, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x37, 0x32, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x37, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x37, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x37, 0x37, 0x33, 0x22, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x37, 0x32, 0x38, 0x22, 0xed, 0x04, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x35, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x35, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x36, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x36, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x36, 0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x36, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x36, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x36, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x36, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x36, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x36, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x36, 0x34, 0x12, 0x46, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x36, 0x35, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x36, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x36, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x36, 0x36, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x36, 0x37, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x32, 0x34, 0x33, 0x36, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x36, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x36, 0x38, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x36, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x36, 0x39, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x36, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x37, 0x30, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x37, 0x30, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x37, 0x31, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x37, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x37, 0x32, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x37, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x37, 0x33, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x37, 0x33, 0x22, 0xfc, 0x04, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x37, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x38, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x38, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x39, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x39, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x39, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x39, 0x31, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x39, 0x32, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x37, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x39, 0x32, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x39, 0x33, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x31, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x39, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x39, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x39, 0x34, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x39, 0x35, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x37, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x39, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x39, 0x36, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x39, 0x36, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x39, 0x37, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x39, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x39, 0x38, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x39, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x39, 0x39, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x39, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x30, 0x30, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x30, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x30, 0x31, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x30, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x30, 0x32, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x30, 0x32, 0x22, 0xee, 0x04, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x36, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x37, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x37, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x37, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x37, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x37, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x37, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x37, 0x37, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x37, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x37, 0x38, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x37, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x37, 0x39, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x37, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x38, 0x30, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x38, 0x30, 0x12, 0x46, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x38, 0x31, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x38, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x38, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x38, 0x32, 0x12, 0x46, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x38, 0x33, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x38, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x38, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x38, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x38, 0x35, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x38, 0x35, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x38, 0x36, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x38, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x38, 0x37, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x38, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x38, 0x38, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x35, 0x38, 0x38, 0x42, 0x23, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0xf8, 0x01, 0x01, } var ( file_datasets_google_message3_benchmark_message3_3_proto_rawDescOnce sync.Once file_datasets_google_message3_benchmark_message3_3_proto_rawDescData = file_datasets_google_message3_benchmark_message3_3_proto_rawDesc ) func file_datasets_google_message3_benchmark_message3_3_proto_rawDescGZIP() []byte { file_datasets_google_message3_benchmark_message3_3_proto_rawDescOnce.Do(func() { file_datasets_google_message3_benchmark_message3_3_proto_rawDescData = protoimpl.X.CompressGZIP(file_datasets_google_message3_benchmark_message3_3_proto_rawDescData) }) return file_datasets_google_message3_benchmark_message3_3_proto_rawDescData } var file_datasets_google_message3_benchmark_message3_3_proto_msgTypes = make([]protoimpl.MessageInfo, 37) var file_datasets_google_message3_benchmark_message3_3_proto_goTypes = []interface{}{ (*Message35546)(nil), // 0: benchmarks.google_message3.Message35546 (*Message2356)(nil), // 1: benchmarks.google_message3.Message2356 (*Message7029)(nil), // 2: benchmarks.google_message3.Message7029 (*Message35538)(nil), // 3: benchmarks.google_message3.Message35538 (*Message18921)(nil), // 4: benchmarks.google_message3.Message18921 (*Message35540)(nil), // 5: benchmarks.google_message3.Message35540 (*Message3886)(nil), // 6: benchmarks.google_message3.Message3886 (*Message6743)(nil), // 7: benchmarks.google_message3.Message6743 (*Message6773)(nil), // 8: benchmarks.google_message3.Message6773 (*Message8224)(nil), // 9: benchmarks.google_message3.Message8224 (*Message8392)(nil), // 10: benchmarks.google_message3.Message8392 (*Message8130)(nil), // 11: benchmarks.google_message3.Message8130 (*Message8478)(nil), // 12: benchmarks.google_message3.Message8478 (*Message8479)(nil), // 13: benchmarks.google_message3.Message8479 (*Message10319)(nil), // 14: benchmarks.google_message3.Message10319 (*Message4016)(nil), // 15: benchmarks.google_message3.Message4016 (*Message12669)(nil), // 16: benchmarks.google_message3.Message12669 (*Message12819)(nil), // 17: benchmarks.google_message3.Message12819 (*Message12820)(nil), // 18: benchmarks.google_message3.Message12820 (*Message12821)(nil), // 19: benchmarks.google_message3.Message12821 (*Message12818)(nil), // 20: benchmarks.google_message3.Message12818 (*Message16479)(nil), // 21: benchmarks.google_message3.Message16479 (*Message16722)(nil), // 22: benchmarks.google_message3.Message16722 (*Message16724)(nil), // 23: benchmarks.google_message3.Message16724 (*Message17728)(nil), // 24: benchmarks.google_message3.Message17728 (*Message24356)(nil), // 25: benchmarks.google_message3.Message24356 (*Message24376)(nil), // 26: benchmarks.google_message3.Message24376 (*Message24366)(nil), // 27: benchmarks.google_message3.Message24366 (*Message35546_Message35547)(nil), // 28: benchmarks.google_message3.Message35546.Message35547 (*Message35546_Message35548)(nil), // 29: benchmarks.google_message3.Message35546.Message35548 (*Message2356_Message2357)(nil), // 30: benchmarks.google_message3.Message2356.Message2357 (*Message2356_Message2358)(nil), // 31: benchmarks.google_message3.Message2356.Message2358 (*Message2356_Message2359)(nil), // 32: benchmarks.google_message3.Message2356.Message2359 (*Message7029_Message7030)(nil), // 33: benchmarks.google_message3.Message7029.Message7030 (*Message7029_Message7031)(nil), // 34: benchmarks.google_message3.Message7029.Message7031 (*Message18921_Message18922)(nil), // 35: benchmarks.google_message3.Message18921.Message18922 (*Message3886_Message3887)(nil), // 36: benchmarks.google_message3.Message3886.Message3887 (*Message1374)(nil), // 37: benchmarks.google_message3.Message1374 (*UnusedEmptyMessage)(nil), // 38: benchmarks.google_message3.UnusedEmptyMessage (*Message18943)(nil), // 39: benchmarks.google_message3.Message18943 (*Message18944)(nil), // 40: benchmarks.google_message3.Message18944 (*Message6721)(nil), // 41: benchmarks.google_message3.Message6721 (*Message6723)(nil), // 42: benchmarks.google_message3.Message6723 (*Message6725)(nil), // 43: benchmarks.google_message3.Message6725 (*Message6726)(nil), // 44: benchmarks.google_message3.Message6726 (*Message6733)(nil), // 45: benchmarks.google_message3.Message6733 (*Message6734)(nil), // 46: benchmarks.google_message3.Message6734 (*Message6742)(nil), // 47: benchmarks.google_message3.Message6742 (Enum6769)(0), // 48: benchmarks.google_message3.Enum6769 (UnusedEnum)(0), // 49: benchmarks.google_message3.UnusedEnum (Enum6774)(0), // 50: benchmarks.google_message3.Enum6774 (Enum6782)(0), // 51: benchmarks.google_message3.Enum6782 (*Message8184)(nil), // 52: benchmarks.google_message3.Message8184 (*Message7966)(nil), // 53: benchmarks.google_message3.Message7966 (*Message8476)(nil), // 54: benchmarks.google_message3.Message8476 (*Message8477)(nil), // 55: benchmarks.google_message3.Message8477 (*Message8454)(nil), // 56: benchmarks.google_message3.Message8454 (*Message8475)(nil), // 57: benchmarks.google_message3.Message8475 (*Message8455)(nil), // 58: benchmarks.google_message3.Message8455 (Enum10325)(0), // 59: benchmarks.google_message3.Enum10325 (*Message12559)(nil), // 60: benchmarks.google_message3.Message12559 (Enum12670)(0), // 61: benchmarks.google_message3.Enum12670 (*Message12817)(nil), // 62: benchmarks.google_message3.Message12817 (*Message16480)(nil), // 63: benchmarks.google_message3.Message16480 (Enum16728)(0), // 64: benchmarks.google_message3.Enum16728 (Enum24361)(0), // 65: benchmarks.google_message3.Enum24361 (*Message24377)(nil), // 66: benchmarks.google_message3.Message24377 (*Message24317)(nil), // 67: benchmarks.google_message3.Message24317 (*Message24378)(nil), // 68: benchmarks.google_message3.Message24378 (*Message18856)(nil), // 69: benchmarks.google_message3.Message18856 (*Message3850)(nil), // 70: benchmarks.google_message3.Message3850 } var file_datasets_google_message3_benchmark_message3_3_proto_depIdxs = []int32{ 28, // 0: benchmarks.google_message3.Message35546.message35547:type_name -> benchmarks.google_message3.Message35546.Message35547 29, // 1: benchmarks.google_message3.Message35546.message35548:type_name -> benchmarks.google_message3.Message35546.Message35548 37, // 2: benchmarks.google_message3.Message2356.field2368:type_name -> benchmarks.google_message3.Message1374 30, // 3: benchmarks.google_message3.Message2356.message2357:type_name -> benchmarks.google_message3.Message2356.Message2357 31, // 4: benchmarks.google_message3.Message2356.message2358:type_name -> benchmarks.google_message3.Message2356.Message2358 32, // 5: benchmarks.google_message3.Message2356.message2359:type_name -> benchmarks.google_message3.Message2356.Message2359 38, // 6: benchmarks.google_message3.Message2356.field2393:type_name -> benchmarks.google_message3.UnusedEmptyMessage 38, // 7: benchmarks.google_message3.Message2356.field2394:type_name -> benchmarks.google_message3.UnusedEmptyMessage 38, // 8: benchmarks.google_message3.Message2356.field2395:type_name -> benchmarks.google_message3.UnusedEmptyMessage 38, // 9: benchmarks.google_message3.Message2356.field2396:type_name -> benchmarks.google_message3.UnusedEmptyMessage 33, // 10: benchmarks.google_message3.Message7029.message7030:type_name -> benchmarks.google_message3.Message7029.Message7030 34, // 11: benchmarks.google_message3.Message7029.message7031:type_name -> benchmarks.google_message3.Message7029.Message7031 38, // 12: benchmarks.google_message3.Message7029.field7219:type_name -> benchmarks.google_message3.UnusedEmptyMessage 38, // 13: benchmarks.google_message3.Message7029.field7223:type_name -> benchmarks.google_message3.UnusedEmptyMessage 38, // 14: benchmarks.google_message3.Message18921.field18952:type_name -> benchmarks.google_message3.UnusedEmptyMessage 35, // 15: benchmarks.google_message3.Message18921.message18922:type_name -> benchmarks.google_message3.Message18921.Message18922 38, // 16: benchmarks.google_message3.Message18921.field18954:type_name -> benchmarks.google_message3.UnusedEmptyMessage 39, // 17: benchmarks.google_message3.Message18921.field18955:type_name -> benchmarks.google_message3.Message18943 40, // 18: benchmarks.google_message3.Message18921.field18956:type_name -> benchmarks.google_message3.Message18944 38, // 19: benchmarks.google_message3.Message18921.field18957:type_name -> benchmarks.google_message3.UnusedEmptyMessage 36, // 20: benchmarks.google_message3.Message3886.message3887:type_name -> benchmarks.google_message3.Message3886.Message3887 41, // 21: benchmarks.google_message3.Message6743.field6759:type_name -> benchmarks.google_message3.Message6721 42, // 22: benchmarks.google_message3.Message6743.field6760:type_name -> benchmarks.google_message3.Message6723 42, // 23: benchmarks.google_message3.Message6743.field6761:type_name -> benchmarks.google_message3.Message6723 43, // 24: benchmarks.google_message3.Message6743.field6762:type_name -> benchmarks.google_message3.Message6725 44, // 25: benchmarks.google_message3.Message6743.field6763:type_name -> benchmarks.google_message3.Message6726 45, // 26: benchmarks.google_message3.Message6743.field6764:type_name -> benchmarks.google_message3.Message6733 46, // 27: benchmarks.google_message3.Message6743.field6765:type_name -> benchmarks.google_message3.Message6734 47, // 28: benchmarks.google_message3.Message6743.field6766:type_name -> benchmarks.google_message3.Message6742 48, // 29: benchmarks.google_message3.Message6773.field6794:type_name -> benchmarks.google_message3.Enum6769 49, // 30: benchmarks.google_message3.Message6773.field6796:type_name -> benchmarks.google_message3.UnusedEnum 50, // 31: benchmarks.google_message3.Message6773.field6799:type_name -> benchmarks.google_message3.Enum6774 51, // 32: benchmarks.google_message3.Message6773.field6803:type_name -> benchmarks.google_message3.Enum6782 38, // 33: benchmarks.google_message3.Message8224.field8255:type_name -> benchmarks.google_message3.UnusedEmptyMessage 52, // 34: benchmarks.google_message3.Message8224.field8256:type_name -> benchmarks.google_message3.Message8184 53, // 35: benchmarks.google_message3.Message8224.field8257:type_name -> benchmarks.google_message3.Message7966 38, // 36: benchmarks.google_message3.Message8224.field8272:type_name -> benchmarks.google_message3.UnusedEmptyMessage 38, // 37: benchmarks.google_message3.Message8224.field8273:type_name -> benchmarks.google_message3.UnusedEmptyMessage 38, // 38: benchmarks.google_message3.Message8224.field8274:type_name -> benchmarks.google_message3.UnusedEmptyMessage 38, // 39: benchmarks.google_message3.Message8224.field8276:type_name -> benchmarks.google_message3.UnusedEmptyMessage 38, // 40: benchmarks.google_message3.Message8224.field8277:type_name -> benchmarks.google_message3.UnusedEmptyMessage 38, // 41: benchmarks.google_message3.Message8224.field8278:type_name -> benchmarks.google_message3.UnusedEmptyMessage 38, // 42: benchmarks.google_message3.Message8224.field8279:type_name -> benchmarks.google_message3.UnusedEmptyMessage 38, // 43: benchmarks.google_message3.Message8224.field8281:type_name -> benchmarks.google_message3.UnusedEmptyMessage 53, // 44: benchmarks.google_message3.Message8392.field8397:type_name -> benchmarks.google_message3.Message7966 38, // 45: benchmarks.google_message3.Message8130.field8159:type_name -> benchmarks.google_message3.UnusedEmptyMessage 38, // 46: benchmarks.google_message3.Message8130.field8162:type_name -> benchmarks.google_message3.UnusedEmptyMessage 38, // 47: benchmarks.google_message3.Message8130.field8167:type_name -> benchmarks.google_message3.UnusedEmptyMessage 38, // 48: benchmarks.google_message3.Message8130.field8168:type_name -> benchmarks.google_message3.UnusedEmptyMessage 49, // 49: benchmarks.google_message3.Message8130.field8170:type_name -> benchmarks.google_message3.UnusedEnum 49, // 50: benchmarks.google_message3.Message8130.field8171:type_name -> benchmarks.google_message3.UnusedEnum 38, // 51: benchmarks.google_message3.Message8130.field8177:type_name -> benchmarks.google_message3.UnusedEmptyMessage 38, // 52: benchmarks.google_message3.Message8130.field8178:type_name -> benchmarks.google_message3.UnusedEmptyMessage 38, // 53: benchmarks.google_message3.Message8130.field8179:type_name -> benchmarks.google_message3.UnusedEmptyMessage 53, // 54: benchmarks.google_message3.Message8478.field8490:type_name -> benchmarks.google_message3.Message7966 54, // 55: benchmarks.google_message3.Message8478.field8491:type_name -> benchmarks.google_message3.Message8476 54, // 56: benchmarks.google_message3.Message8478.field8493:type_name -> benchmarks.google_message3.Message8476 55, // 57: benchmarks.google_message3.Message8478.field8494:type_name -> benchmarks.google_message3.Message8477 56, // 58: benchmarks.google_message3.Message8478.field8495:type_name -> benchmarks.google_message3.Message8454 38, // 59: benchmarks.google_message3.Message8478.field8496:type_name -> benchmarks.google_message3.UnusedEmptyMessage 57, // 60: benchmarks.google_message3.Message8479.field8497:type_name -> benchmarks.google_message3.Message8475 53, // 61: benchmarks.google_message3.Message8479.field8498:type_name -> benchmarks.google_message3.Message7966 54, // 62: benchmarks.google_message3.Message8479.field8499:type_name -> benchmarks.google_message3.Message8476 54, // 63: benchmarks.google_message3.Message8479.field8500:type_name -> benchmarks.google_message3.Message8476 53, // 64: benchmarks.google_message3.Message8479.field8503:type_name -> benchmarks.google_message3.Message7966 58, // 65: benchmarks.google_message3.Message8479.field8504:type_name -> benchmarks.google_message3.Message8455 38, // 66: benchmarks.google_message3.Message8479.field8505:type_name -> benchmarks.google_message3.UnusedEmptyMessage 59, // 67: benchmarks.google_message3.Message10319.field10340:type_name -> benchmarks.google_message3.Enum10325 60, // 68: benchmarks.google_message3.Message12669.field12681:type_name -> benchmarks.google_message3.Message12559 61, // 69: benchmarks.google_message3.Message12669.field12684:type_name -> benchmarks.google_message3.Enum12670 62, // 70: benchmarks.google_message3.Message12818.field12833:type_name -> benchmarks.google_message3.Message12817 63, // 71: benchmarks.google_message3.Message16479.field16484:type_name -> benchmarks.google_message3.Message16480 38, // 72: benchmarks.google_message3.Message16724.field16768:type_name -> benchmarks.google_message3.UnusedEmptyMessage 64, // 73: benchmarks.google_message3.Message16724.field16771:type_name -> benchmarks.google_message3.Enum16728 49, // 74: benchmarks.google_message3.Message24356.field24565:type_name -> benchmarks.google_message3.UnusedEnum 65, // 75: benchmarks.google_message3.Message24356.field24567:type_name -> benchmarks.google_message3.Enum24361 38, // 76: benchmarks.google_message3.Message24356.field24571:type_name -> benchmarks.google_message3.UnusedEmptyMessage 66, // 77: benchmarks.google_message3.Message24376.field24592:type_name -> benchmarks.google_message3.Message24377 67, // 78: benchmarks.google_message3.Message24376.field24593:type_name -> benchmarks.google_message3.Message24317 68, // 79: benchmarks.google_message3.Message24376.field24595:type_name -> benchmarks.google_message3.Message24378 38, // 80: benchmarks.google_message3.Message24376.field24597:type_name -> benchmarks.google_message3.UnusedEmptyMessage 49, // 81: benchmarks.google_message3.Message24366.field24581:type_name -> benchmarks.google_message3.UnusedEnum 49, // 82: benchmarks.google_message3.Message24366.field24583:type_name -> benchmarks.google_message3.UnusedEnum 38, // 83: benchmarks.google_message3.Message24366.field24586:type_name -> benchmarks.google_message3.UnusedEmptyMessage 69, // 84: benchmarks.google_message3.Message18921.Message18922.field18966:type_name -> benchmarks.google_message3.Message18856 38, // 85: benchmarks.google_message3.Message18921.Message18922.field18968:type_name -> benchmarks.google_message3.UnusedEmptyMessage 38, // 86: benchmarks.google_message3.Message18921.Message18922.field18978:type_name -> benchmarks.google_message3.UnusedEmptyMessage 49, // 87: benchmarks.google_message3.Message18921.Message18922.field18979:type_name -> benchmarks.google_message3.UnusedEnum 70, // 88: benchmarks.google_message3.Message3886.Message3887.field3934:type_name -> benchmarks.google_message3.Message3850 89, // [89:89] is the sub-list for method output_type 89, // [89:89] is the sub-list for method input_type 89, // [89:89] is the sub-list for extension type_name 89, // [89:89] is the sub-list for extension extendee 0, // [0:89] is the sub-list for field type_name } func init() { file_datasets_google_message3_benchmark_message3_3_proto_init() } func file_datasets_google_message3_benchmark_message3_3_proto_init() { if File_datasets_google_message3_benchmark_message3_3_proto != nil { return } file_datasets_google_message3_benchmark_message3_4_proto_init() file_datasets_google_message3_benchmark_message3_5_proto_init() file_datasets_google_message3_benchmark_message3_7_proto_init() file_datasets_google_message3_benchmark_message3_8_proto_init() if !protoimpl.UnsafeEnabled { file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message35546); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message2356); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7029); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message35538); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message18921); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message35540); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3886); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6743); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6773); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8224); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8392); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8130); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8478); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8479); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10319); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message4016); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12669); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12819); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12820); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12821); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12818); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message16479); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message16722); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message16724); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message17728); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message24356); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message24376); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message24366); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message35546_Message35547); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message35546_Message35548); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message2356_Message2357); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message2356_Message2358); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message2356_Message2359); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7029_Message7030); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7029_Message7031); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message18921_Message18922); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_3_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3886_Message3887); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_datasets_google_message3_benchmark_message3_3_proto_rawDesc, NumEnums: 0, NumMessages: 37, NumExtensions: 0, NumServices: 0, }, GoTypes: file_datasets_google_message3_benchmark_message3_3_proto_goTypes, DependencyIndexes: file_datasets_google_message3_benchmark_message3_3_proto_depIdxs, MessageInfos: file_datasets_google_message3_benchmark_message3_3_proto_msgTypes, }.Build() File_datasets_google_message3_benchmark_message3_3_proto = out.File file_datasets_google_message3_benchmark_message3_3_proto_rawDesc = nil file_datasets_google_message3_benchmark_message3_3_proto_goTypes = nil file_datasets_google_message3_benchmark_message3_3_proto_depIdxs = nil } benchmark_message3_4.pb.go000066400000000000000000010235051411250152500360310ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/datasets/google_message3// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // LINT: ALLOW_GROUPS // Code generated by protoc-gen-go. DO NOT EDIT. // source: datasets/google_message3/benchmark_message3_4.proto package google_message3 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Message24346 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message24346) Reset() { *x = Message24346{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message24346) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message24346) ProtoMessage() {} func (x *Message24346) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message24346.ProtoReflect.Descriptor instead. func (*Message24346) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{0} } type Message24401 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field24679 *Message24400 `protobuf:"bytes,1,opt,name=field24679" json:"field24679,omitempty"` } func (x *Message24401) Reset() { *x = Message24401{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message24401) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message24401) ProtoMessage() {} func (x *Message24401) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message24401.ProtoReflect.Descriptor instead. func (*Message24401) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{1} } func (x *Message24401) GetField24679() *Message24400 { if x != nil { return x.Field24679 } return nil } type Message24402 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field24680 *Message24400 `protobuf:"bytes,1,opt,name=field24680" json:"field24680,omitempty"` } func (x *Message24402) Reset() { *x = Message24402{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message24402) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message24402) ProtoMessage() {} func (x *Message24402) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message24402.ProtoReflect.Descriptor instead. func (*Message24402) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{2} } func (x *Message24402) GetField24680() *Message24400 { if x != nil { return x.Field24680 } return nil } type Message24379 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field24603 *string `protobuf:"bytes,1,opt,name=field24603" json:"field24603,omitempty"` Field24604 *string `protobuf:"bytes,2,opt,name=field24604" json:"field24604,omitempty"` Field24605 *string `protobuf:"bytes,3,opt,name=field24605" json:"field24605,omitempty"` Field24606 *Message24380 `protobuf:"bytes,4,req,name=field24606" json:"field24606,omitempty"` Field24607 *UnusedEmptyMessage `protobuf:"bytes,5,opt,name=field24607" json:"field24607,omitempty"` Field24608 *string `protobuf:"bytes,6,opt,name=field24608" json:"field24608,omitempty"` Field24609 *Message24381 `protobuf:"bytes,7,opt,name=field24609" json:"field24609,omitempty"` Field24610 []string `protobuf:"bytes,8,rep,name=field24610" json:"field24610,omitempty"` Field24611 []*UnusedEmptyMessage `protobuf:"bytes,17,rep,name=field24611" json:"field24611,omitempty"` Field24612 []string `protobuf:"bytes,9,rep,name=field24612" json:"field24612,omitempty"` Field24613 []string `protobuf:"bytes,10,rep,name=field24613" json:"field24613,omitempty"` Field24614 []string `protobuf:"bytes,11,rep,name=field24614" json:"field24614,omitempty"` Field24615 *string `protobuf:"bytes,14,opt,name=field24615" json:"field24615,omitempty"` Field24616 *string `protobuf:"bytes,12,opt,name=field24616" json:"field24616,omitempty"` Field24617 *string `protobuf:"bytes,16,opt,name=field24617" json:"field24617,omitempty"` Field24618 []*UnusedEmptyMessage `protobuf:"bytes,13,rep,name=field24618" json:"field24618,omitempty"` Field24619 []string `protobuf:"bytes,15,rep,name=field24619" json:"field24619,omitempty"` Field24620 []string `protobuf:"bytes,18,rep,name=field24620" json:"field24620,omitempty"` } func (x *Message24379) Reset() { *x = Message24379{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message24379) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message24379) ProtoMessage() {} func (x *Message24379) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message24379.ProtoReflect.Descriptor instead. func (*Message24379) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{3} } func (x *Message24379) GetField24603() string { if x != nil && x.Field24603 != nil { return *x.Field24603 } return "" } func (x *Message24379) GetField24604() string { if x != nil && x.Field24604 != nil { return *x.Field24604 } return "" } func (x *Message24379) GetField24605() string { if x != nil && x.Field24605 != nil { return *x.Field24605 } return "" } func (x *Message24379) GetField24606() *Message24380 { if x != nil { return x.Field24606 } return nil } func (x *Message24379) GetField24607() *UnusedEmptyMessage { if x != nil { return x.Field24607 } return nil } func (x *Message24379) GetField24608() string { if x != nil && x.Field24608 != nil { return *x.Field24608 } return "" } func (x *Message24379) GetField24609() *Message24381 { if x != nil { return x.Field24609 } return nil } func (x *Message24379) GetField24610() []string { if x != nil { return x.Field24610 } return nil } func (x *Message24379) GetField24611() []*UnusedEmptyMessage { if x != nil { return x.Field24611 } return nil } func (x *Message24379) GetField24612() []string { if x != nil { return x.Field24612 } return nil } func (x *Message24379) GetField24613() []string { if x != nil { return x.Field24613 } return nil } func (x *Message24379) GetField24614() []string { if x != nil { return x.Field24614 } return nil } func (x *Message24379) GetField24615() string { if x != nil && x.Field24615 != nil { return *x.Field24615 } return "" } func (x *Message24379) GetField24616() string { if x != nil && x.Field24616 != nil { return *x.Field24616 } return "" } func (x *Message24379) GetField24617() string { if x != nil && x.Field24617 != nil { return *x.Field24617 } return "" } func (x *Message24379) GetField24618() []*UnusedEmptyMessage { if x != nil { return x.Field24618 } return nil } func (x *Message24379) GetField24619() []string { if x != nil { return x.Field24619 } return nil } func (x *Message24379) GetField24620() []string { if x != nil { return x.Field24620 } return nil } type Message27358 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field27415 *int32 `protobuf:"varint,1,opt,name=field27415" json:"field27415,omitempty"` Field27416 *int32 `protobuf:"varint,2,opt,name=field27416" json:"field27416,omitempty"` } func (x *Message27358) Reset() { *x = Message27358{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message27358) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message27358) ProtoMessage() {} func (x *Message27358) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message27358.ProtoReflect.Descriptor instead. func (*Message27358) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{4} } func (x *Message27358) GetField27415() int32 { if x != nil && x.Field27415 != nil { return *x.Field27415 } return 0 } func (x *Message27358) GetField27416() int32 { if x != nil && x.Field27416 != nil { return *x.Field27416 } return 0 } type Message34381 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field34398 *string `protobuf:"bytes,1,opt,name=field34398" json:"field34398,omitempty"` Field34399 *UnusedEmptyMessage `protobuf:"bytes,2,opt,name=field34399" json:"field34399,omitempty"` Field34400 *UnusedEmptyMessage `protobuf:"bytes,3,opt,name=field34400" json:"field34400,omitempty"` Field34401 *UnusedEmptyMessage `protobuf:"bytes,4,opt,name=field34401" json:"field34401,omitempty"` Field34402 *UnusedEmptyMessage `protobuf:"bytes,5,opt,name=field34402" json:"field34402,omitempty"` Field34403 *bool `protobuf:"varint,6,opt,name=field34403" json:"field34403,omitempty"` Field34404 *bool `protobuf:"varint,7,opt,name=field34404" json:"field34404,omitempty"` Field34405 *UnusedEmptyMessage `protobuf:"bytes,8,opt,name=field34405" json:"field34405,omitempty"` Field34406 *bool `protobuf:"varint,9,opt,name=field34406" json:"field34406,omitempty"` Field34407 *UnusedEmptyMessage `protobuf:"bytes,10,opt,name=field34407" json:"field34407,omitempty"` } func (x *Message34381) Reset() { *x = Message34381{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message34381) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message34381) ProtoMessage() {} func (x *Message34381) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message34381.ProtoReflect.Descriptor instead. func (*Message34381) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{5} } func (x *Message34381) GetField34398() string { if x != nil && x.Field34398 != nil { return *x.Field34398 } return "" } func (x *Message34381) GetField34399() *UnusedEmptyMessage { if x != nil { return x.Field34399 } return nil } func (x *Message34381) GetField34400() *UnusedEmptyMessage { if x != nil { return x.Field34400 } return nil } func (x *Message34381) GetField34401() *UnusedEmptyMessage { if x != nil { return x.Field34401 } return nil } func (x *Message34381) GetField34402() *UnusedEmptyMessage { if x != nil { return x.Field34402 } return nil } func (x *Message34381) GetField34403() bool { if x != nil && x.Field34403 != nil { return *x.Field34403 } return false } func (x *Message34381) GetField34404() bool { if x != nil && x.Field34404 != nil { return *x.Field34404 } return false } func (x *Message34381) GetField34405() *UnusedEmptyMessage { if x != nil { return x.Field34405 } return nil } func (x *Message34381) GetField34406() bool { if x != nil && x.Field34406 != nil { return *x.Field34406 } return false } func (x *Message34381) GetField34407() *UnusedEmptyMessage { if x != nil { return x.Field34407 } return nil } type Message34619 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field34641 *float64 `protobuf:"fixed64,1,opt,name=field34641" json:"field34641,omitempty"` Field34642 *float64 `protobuf:"fixed64,2,opt,name=field34642" json:"field34642,omitempty"` Field34643 *float64 `protobuf:"fixed64,3,opt,name=field34643" json:"field34643,omitempty"` Field34644 *float64 `protobuf:"fixed64,4,opt,name=field34644" json:"field34644,omitempty"` Field34645 *float64 `protobuf:"fixed64,11,opt,name=field34645" json:"field34645,omitempty"` Field34646 *float64 `protobuf:"fixed64,5,opt,name=field34646" json:"field34646,omitempty"` Field34647 *UnusedEmptyMessage `protobuf:"bytes,100,opt,name=field34647" json:"field34647,omitempty"` } func (x *Message34619) Reset() { *x = Message34619{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message34619) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message34619) ProtoMessage() {} func (x *Message34619) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message34619.ProtoReflect.Descriptor instead. func (*Message34619) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{6} } func (x *Message34619) GetField34641() float64 { if x != nil && x.Field34641 != nil { return *x.Field34641 } return 0 } func (x *Message34619) GetField34642() float64 { if x != nil && x.Field34642 != nil { return *x.Field34642 } return 0 } func (x *Message34619) GetField34643() float64 { if x != nil && x.Field34643 != nil { return *x.Field34643 } return 0 } func (x *Message34619) GetField34644() float64 { if x != nil && x.Field34644 != nil { return *x.Field34644 } return 0 } func (x *Message34619) GetField34645() float64 { if x != nil && x.Field34645 != nil { return *x.Field34645 } return 0 } func (x *Message34619) GetField34646() float64 { if x != nil && x.Field34646 != nil { return *x.Field34646 } return 0 } func (x *Message34619) GetField34647() *UnusedEmptyMessage { if x != nil { return x.Field34647 } return nil } type Message730 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields Field897 *string `protobuf:"bytes,19,opt,name=field897" json:"field897,omitempty"` Field898 []string `protobuf:"bytes,27,rep,name=field898" json:"field898,omitempty"` Field899 []string `protobuf:"bytes,28,rep,name=field899" json:"field899,omitempty"` Field900 []string `protobuf:"bytes,21,rep,name=field900" json:"field900,omitempty"` Field901 *string `protobuf:"bytes,30,opt,name=field901" json:"field901,omitempty"` Field902 []uint32 `protobuf:"varint,20,rep,name=field902" json:"field902,omitempty"` Field903 []uint32 `protobuf:"varint,32,rep,name=field903" json:"field903,omitempty"` Field904 []string `protobuf:"bytes,16,rep,name=field904" json:"field904,omitempty"` Field905 []*Message697 `protobuf:"bytes,6,rep,name=field905" json:"field905,omitempty"` Field906 []*Message704 `protobuf:"bytes,7,rep,name=field906" json:"field906,omitempty"` Field907 []string `protobuf:"bytes,18,rep,name=field907" json:"field907,omitempty"` Field908 []*Message703 `protobuf:"bytes,8,rep,name=field908" json:"field908,omitempty"` Field909 []string `protobuf:"bytes,9,rep,name=field909" json:"field909,omitempty"` Field910 *Message716 `protobuf:"bytes,10,opt,name=field910" json:"field910,omitempty"` Field911 *Message718 `protobuf:"bytes,11,opt,name=field911" json:"field911,omitempty"` Field912 *bool `protobuf:"varint,14,opt,name=field912" json:"field912,omitempty"` Field913 []*Message715 `protobuf:"bytes,4,rep,name=field913" json:"field913,omitempty"` Field914 []string `protobuf:"bytes,17,rep,name=field914" json:"field914,omitempty"` Field915 []string `protobuf:"bytes,23,rep,name=field915" json:"field915,omitempty"` Field916 []*Message719 `protobuf:"bytes,24,rep,name=field916" json:"field916,omitempty"` Field917 []*Message728 `protobuf:"bytes,26,rep,name=field917" json:"field917,omitempty"` Field918 []*Message702 `protobuf:"bytes,35,rep,name=field918" json:"field918,omitempty"` Field919 *string `protobuf:"bytes,36,opt,name=field919" json:"field919,omitempty"` Field920 []string `protobuf:"bytes,37,rep,name=field920" json:"field920,omitempty"` Field921 *int64 `protobuf:"varint,38,opt,name=field921" json:"field921,omitempty"` Field922 []*UnusedEmptyMessage `protobuf:"bytes,39,rep,name=field922" json:"field922,omitempty"` Field923 []*UnusedEmptyMessage `protobuf:"bytes,1,rep,name=field923" json:"field923,omitempty"` Field924 *UnusedEmptyMessage `protobuf:"bytes,2,opt,name=field924" json:"field924,omitempty"` Field925 *UnusedEmptyMessage `protobuf:"bytes,3,opt,name=field925" json:"field925,omitempty"` Field926 *UnusedEmptyMessage `protobuf:"bytes,5,opt,name=field926" json:"field926,omitempty"` Field927 *UnusedEmptyMessage `protobuf:"bytes,13,opt,name=field927" json:"field927,omitempty"` Field928 []string `protobuf:"bytes,22,rep,name=field928" json:"field928,omitempty"` Field929 []byte `protobuf:"bytes,31,opt,name=field929" json:"field929,omitempty"` } func (x *Message730) Reset() { *x = Message730{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message730) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message730) ProtoMessage() {} func (x *Message730) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message730.ProtoReflect.Descriptor instead. func (*Message730) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{7} } func (x *Message730) GetField897() string { if x != nil && x.Field897 != nil { return *x.Field897 } return "" } func (x *Message730) GetField898() []string { if x != nil { return x.Field898 } return nil } func (x *Message730) GetField899() []string { if x != nil { return x.Field899 } return nil } func (x *Message730) GetField900() []string { if x != nil { return x.Field900 } return nil } func (x *Message730) GetField901() string { if x != nil && x.Field901 != nil { return *x.Field901 } return "" } func (x *Message730) GetField902() []uint32 { if x != nil { return x.Field902 } return nil } func (x *Message730) GetField903() []uint32 { if x != nil { return x.Field903 } return nil } func (x *Message730) GetField904() []string { if x != nil { return x.Field904 } return nil } func (x *Message730) GetField905() []*Message697 { if x != nil { return x.Field905 } return nil } func (x *Message730) GetField906() []*Message704 { if x != nil { return x.Field906 } return nil } func (x *Message730) GetField907() []string { if x != nil { return x.Field907 } return nil } func (x *Message730) GetField908() []*Message703 { if x != nil { return x.Field908 } return nil } func (x *Message730) GetField909() []string { if x != nil { return x.Field909 } return nil } func (x *Message730) GetField910() *Message716 { if x != nil { return x.Field910 } return nil } func (x *Message730) GetField911() *Message718 { if x != nil { return x.Field911 } return nil } func (x *Message730) GetField912() bool { if x != nil && x.Field912 != nil { return *x.Field912 } return false } func (x *Message730) GetField913() []*Message715 { if x != nil { return x.Field913 } return nil } func (x *Message730) GetField914() []string { if x != nil { return x.Field914 } return nil } func (x *Message730) GetField915() []string { if x != nil { return x.Field915 } return nil } func (x *Message730) GetField916() []*Message719 { if x != nil { return x.Field916 } return nil } func (x *Message730) GetField917() []*Message728 { if x != nil { return x.Field917 } return nil } func (x *Message730) GetField918() []*Message702 { if x != nil { return x.Field918 } return nil } func (x *Message730) GetField919() string { if x != nil && x.Field919 != nil { return *x.Field919 } return "" } func (x *Message730) GetField920() []string { if x != nil { return x.Field920 } return nil } func (x *Message730) GetField921() int64 { if x != nil && x.Field921 != nil { return *x.Field921 } return 0 } func (x *Message730) GetField922() []*UnusedEmptyMessage { if x != nil { return x.Field922 } return nil } func (x *Message730) GetField923() []*UnusedEmptyMessage { if x != nil { return x.Field923 } return nil } func (x *Message730) GetField924() *UnusedEmptyMessage { if x != nil { return x.Field924 } return nil } func (x *Message730) GetField925() *UnusedEmptyMessage { if x != nil { return x.Field925 } return nil } func (x *Message730) GetField926() *UnusedEmptyMessage { if x != nil { return x.Field926 } return nil } func (x *Message730) GetField927() *UnusedEmptyMessage { if x != nil { return x.Field927 } return nil } func (x *Message730) GetField928() []string { if x != nil { return x.Field928 } return nil } func (x *Message730) GetField929() []byte { if x != nil { return x.Field929 } return nil } type Message33958 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field33977 *string `protobuf:"bytes,1,opt,name=field33977" json:"field33977,omitempty"` Field33978 *string `protobuf:"bytes,9,opt,name=field33978" json:"field33978,omitempty"` Message33959 []*Message33958_Message33959 `protobuf:"group,2,rep,name=Message33959,json=message33959" json:"message33959,omitempty"` Field33980 *Enum33960 `protobuf:"varint,7,opt,name=field33980,enum=benchmarks.google_message3.Enum33960" json:"field33980,omitempty"` } func (x *Message33958) Reset() { *x = Message33958{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message33958) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message33958) ProtoMessage() {} func (x *Message33958) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message33958.ProtoReflect.Descriptor instead. func (*Message33958) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{8} } func (x *Message33958) GetField33977() string { if x != nil && x.Field33977 != nil { return *x.Field33977 } return "" } func (x *Message33958) GetField33978() string { if x != nil && x.Field33978 != nil { return *x.Field33978 } return "" } func (x *Message33958) GetMessage33959() []*Message33958_Message33959 { if x != nil { return x.Message33959 } return nil } func (x *Message33958) GetField33980() Enum33960 { if x != nil && x.Field33980 != nil { return *x.Field33980 } return Enum33960_ENUM_VALUE33961 } type Message6637 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6670 *UnusedEmptyMessage `protobuf:"bytes,2,opt,name=field6670" json:"field6670,omitempty"` Field6671 []*UnusedEmptyMessage `protobuf:"bytes,1,rep,name=field6671" json:"field6671,omitempty"` Field6672 *int32 `protobuf:"varint,3,opt,name=field6672" json:"field6672,omitempty"` Field6673 []string `protobuf:"bytes,4,rep,name=field6673" json:"field6673,omitempty"` Field6674 *UnusedEmptyMessage `protobuf:"bytes,5,opt,name=field6674" json:"field6674,omitempty"` } func (x *Message6637) Reset() { *x = Message6637{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6637) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6637) ProtoMessage() {} func (x *Message6637) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6637.ProtoReflect.Descriptor instead. func (*Message6637) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{9} } func (x *Message6637) GetField6670() *UnusedEmptyMessage { if x != nil { return x.Field6670 } return nil } func (x *Message6637) GetField6671() []*UnusedEmptyMessage { if x != nil { return x.Field6671 } return nil } func (x *Message6637) GetField6672() int32 { if x != nil && x.Field6672 != nil { return *x.Field6672 } return 0 } func (x *Message6637) GetField6673() []string { if x != nil { return x.Field6673 } return nil } func (x *Message6637) GetField6674() *UnusedEmptyMessage { if x != nil { return x.Field6674 } return nil } type Message6643 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6683 *UnusedEmptyMessage `protobuf:"bytes,3,opt,name=field6683" json:"field6683,omitempty"` Field6684 *UnusedEmptyMessage `protobuf:"bytes,4,opt,name=field6684" json:"field6684,omitempty"` Field6685 *float64 `protobuf:"fixed64,5,opt,name=field6685" json:"field6685,omitempty"` Field6686 *float64 `protobuf:"fixed64,6,opt,name=field6686" json:"field6686,omitempty"` Field6687 *int32 `protobuf:"varint,1,opt,name=field6687" json:"field6687,omitempty"` Field6688 *int32 `protobuf:"varint,2,opt,name=field6688" json:"field6688,omitempty"` Field6689 *float64 `protobuf:"fixed64,9,opt,name=field6689" json:"field6689,omitempty"` Field6690 []byte `protobuf:"bytes,10,opt,name=field6690" json:"field6690,omitempty"` Field6691 *int32 `protobuf:"varint,11,opt,name=field6691" json:"field6691,omitempty"` Field6692 *bool `protobuf:"varint,12,opt,name=field6692" json:"field6692,omitempty"` Field6693 *bool `protobuf:"varint,13,opt,name=field6693" json:"field6693,omitempty"` Field6694 *Message6578 `protobuf:"bytes,15,opt,name=field6694" json:"field6694,omitempty"` Field6695 *UnusedEnum `protobuf:"varint,16,opt,name=field6695,enum=benchmarks.google_message3.UnusedEnum" json:"field6695,omitempty"` Field6696 *int64 `protobuf:"varint,17,opt,name=field6696" json:"field6696,omitempty"` Field6697 []*UnusedEmptyMessage `protobuf:"bytes,22,rep,name=field6697" json:"field6697,omitempty"` Field6698 *UnusedEmptyMessage `protobuf:"bytes,19,opt,name=field6698" json:"field6698,omitempty"` Field6699 *UnusedEmptyMessage `protobuf:"bytes,20,opt,name=field6699" json:"field6699,omitempty"` Field6700 *int32 `protobuf:"varint,21,opt,name=field6700" json:"field6700,omitempty"` } func (x *Message6643) Reset() { *x = Message6643{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6643) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6643) ProtoMessage() {} func (x *Message6643) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6643.ProtoReflect.Descriptor instead. func (*Message6643) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{10} } func (x *Message6643) GetField6683() *UnusedEmptyMessage { if x != nil { return x.Field6683 } return nil } func (x *Message6643) GetField6684() *UnusedEmptyMessage { if x != nil { return x.Field6684 } return nil } func (x *Message6643) GetField6685() float64 { if x != nil && x.Field6685 != nil { return *x.Field6685 } return 0 } func (x *Message6643) GetField6686() float64 { if x != nil && x.Field6686 != nil { return *x.Field6686 } return 0 } func (x *Message6643) GetField6687() int32 { if x != nil && x.Field6687 != nil { return *x.Field6687 } return 0 } func (x *Message6643) GetField6688() int32 { if x != nil && x.Field6688 != nil { return *x.Field6688 } return 0 } func (x *Message6643) GetField6689() float64 { if x != nil && x.Field6689 != nil { return *x.Field6689 } return 0 } func (x *Message6643) GetField6690() []byte { if x != nil { return x.Field6690 } return nil } func (x *Message6643) GetField6691() int32 { if x != nil && x.Field6691 != nil { return *x.Field6691 } return 0 } func (x *Message6643) GetField6692() bool { if x != nil && x.Field6692 != nil { return *x.Field6692 } return false } func (x *Message6643) GetField6693() bool { if x != nil && x.Field6693 != nil { return *x.Field6693 } return false } func (x *Message6643) GetField6694() *Message6578 { if x != nil { return x.Field6694 } return nil } func (x *Message6643) GetField6695() UnusedEnum { if x != nil && x.Field6695 != nil { return *x.Field6695 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message6643) GetField6696() int64 { if x != nil && x.Field6696 != nil { return *x.Field6696 } return 0 } func (x *Message6643) GetField6697() []*UnusedEmptyMessage { if x != nil { return x.Field6697 } return nil } func (x *Message6643) GetField6698() *UnusedEmptyMessage { if x != nil { return x.Field6698 } return nil } func (x *Message6643) GetField6699() *UnusedEmptyMessage { if x != nil { return x.Field6699 } return nil } func (x *Message6643) GetField6700() int32 { if x != nil && x.Field6700 != nil { return *x.Field6700 } return 0 } type Message6126 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6152 *string `protobuf:"bytes,1,req,name=field6152" json:"field6152,omitempty"` Field6153 []*UnusedEmptyMessage `protobuf:"bytes,9,rep,name=field6153" json:"field6153,omitempty"` Field6154 *int32 `protobuf:"varint,14,opt,name=field6154" json:"field6154,omitempty"` Field6155 []byte `protobuf:"bytes,10,opt,name=field6155" json:"field6155,omitempty"` Field6156 *Message6024 `protobuf:"bytes,12,opt,name=field6156" json:"field6156,omitempty"` Field6157 *int32 `protobuf:"varint,4,opt,name=field6157" json:"field6157,omitempty"` Field6158 *string `protobuf:"bytes,5,opt,name=field6158" json:"field6158,omitempty"` Field6159 *int32 `protobuf:"varint,6,opt,name=field6159" json:"field6159,omitempty"` Field6160 []int32 `protobuf:"varint,2,rep,name=field6160" json:"field6160,omitempty"` Field6161 []int32 `protobuf:"varint,3,rep,name=field6161" json:"field6161,omitempty"` Field6162 []*Message6052 `protobuf:"bytes,7,rep,name=field6162" json:"field6162,omitempty"` Field6163 []*UnusedEmptyMessage `protobuf:"bytes,11,rep,name=field6163" json:"field6163,omitempty"` Field6164 *Enum6065 `protobuf:"varint,15,opt,name=field6164,enum=benchmarks.google_message3.Enum6065" json:"field6164,omitempty"` Field6165 []*UnusedEmptyMessage `protobuf:"bytes,8,rep,name=field6165" json:"field6165,omitempty"` Field6166 *bool `protobuf:"varint,13,opt,name=field6166" json:"field6166,omitempty"` Field6167 *bool `protobuf:"varint,16,opt,name=field6167" json:"field6167,omitempty"` Field6168 *bool `protobuf:"varint,18,opt,name=field6168" json:"field6168,omitempty"` Field6169 []*Message6054 `protobuf:"bytes,17,rep,name=field6169" json:"field6169,omitempty"` Field6170 *int32 `protobuf:"varint,19,opt,name=field6170" json:"field6170,omitempty"` } func (x *Message6126) Reset() { *x = Message6126{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6126) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6126) ProtoMessage() {} func (x *Message6126) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6126.ProtoReflect.Descriptor instead. func (*Message6126) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{11} } func (x *Message6126) GetField6152() string { if x != nil && x.Field6152 != nil { return *x.Field6152 } return "" } func (x *Message6126) GetField6153() []*UnusedEmptyMessage { if x != nil { return x.Field6153 } return nil } func (x *Message6126) GetField6154() int32 { if x != nil && x.Field6154 != nil { return *x.Field6154 } return 0 } func (x *Message6126) GetField6155() []byte { if x != nil { return x.Field6155 } return nil } func (x *Message6126) GetField6156() *Message6024 { if x != nil { return x.Field6156 } return nil } func (x *Message6126) GetField6157() int32 { if x != nil && x.Field6157 != nil { return *x.Field6157 } return 0 } func (x *Message6126) GetField6158() string { if x != nil && x.Field6158 != nil { return *x.Field6158 } return "" } func (x *Message6126) GetField6159() int32 { if x != nil && x.Field6159 != nil { return *x.Field6159 } return 0 } func (x *Message6126) GetField6160() []int32 { if x != nil { return x.Field6160 } return nil } func (x *Message6126) GetField6161() []int32 { if x != nil { return x.Field6161 } return nil } func (x *Message6126) GetField6162() []*Message6052 { if x != nil { return x.Field6162 } return nil } func (x *Message6126) GetField6163() []*UnusedEmptyMessage { if x != nil { return x.Field6163 } return nil } func (x *Message6126) GetField6164() Enum6065 { if x != nil && x.Field6164 != nil { return *x.Field6164 } return Enum6065_ENUM_VALUE6066 } func (x *Message6126) GetField6165() []*UnusedEmptyMessage { if x != nil { return x.Field6165 } return nil } func (x *Message6126) GetField6166() bool { if x != nil && x.Field6166 != nil { return *x.Field6166 } return false } func (x *Message6126) GetField6167() bool { if x != nil && x.Field6167 != nil { return *x.Field6167 } return false } func (x *Message6126) GetField6168() bool { if x != nil && x.Field6168 != nil { return *x.Field6168 } return false } func (x *Message6126) GetField6169() []*Message6054 { if x != nil { return x.Field6169 } return nil } func (x *Message6126) GetField6170() int32 { if x != nil && x.Field6170 != nil { return *x.Field6170 } return 0 } type Message13083 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field13096 *float32 `protobuf:"fixed32,1,opt,name=field13096" json:"field13096,omitempty"` Message13084 []*Message13083_Message13084 `protobuf:"group,2,rep,name=Message13084,json=message13084" json:"message13084,omitempty"` Field13098 *float32 `protobuf:"fixed32,44,opt,name=field13098" json:"field13098,omitempty"` Field13099 *float32 `protobuf:"fixed32,45,opt,name=field13099" json:"field13099,omitempty"` Field13100 *uint64 `protobuf:"varint,46,opt,name=field13100" json:"field13100,omitempty"` Field13101 *float32 `protobuf:"fixed32,47,opt,name=field13101" json:"field13101,omitempty"` Message13085 *Message13083_Message13085 `protobuf:"group,16,opt,name=Message13085,json=message13085" json:"message13085,omitempty"` Message13086 []*Message13083_Message13086 `protobuf:"group,23,rep,name=Message13086,json=message13086" json:"message13086,omitempty"` Message13087 []*Message13083_Message13087 `protobuf:"group,29,rep,name=Message13087,json=message13087" json:"message13087,omitempty"` Field13105 *UnusedEmptyMessage `protobuf:"bytes,43,opt,name=field13105" json:"field13105,omitempty"` } func (x *Message13083) Reset() { *x = Message13083{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message13083) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message13083) ProtoMessage() {} func (x *Message13083) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message13083.ProtoReflect.Descriptor instead. func (*Message13083) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{12} } func (x *Message13083) GetField13096() float32 { if x != nil && x.Field13096 != nil { return *x.Field13096 } return 0 } func (x *Message13083) GetMessage13084() []*Message13083_Message13084 { if x != nil { return x.Message13084 } return nil } func (x *Message13083) GetField13098() float32 { if x != nil && x.Field13098 != nil { return *x.Field13098 } return 0 } func (x *Message13083) GetField13099() float32 { if x != nil && x.Field13099 != nil { return *x.Field13099 } return 0 } func (x *Message13083) GetField13100() uint64 { if x != nil && x.Field13100 != nil { return *x.Field13100 } return 0 } func (x *Message13083) GetField13101() float32 { if x != nil && x.Field13101 != nil { return *x.Field13101 } return 0 } func (x *Message13083) GetMessage13085() *Message13083_Message13085 { if x != nil { return x.Message13085 } return nil } func (x *Message13083) GetMessage13086() []*Message13083_Message13086 { if x != nil { return x.Message13086 } return nil } func (x *Message13083) GetMessage13087() []*Message13083_Message13087 { if x != nil { return x.Message13087 } return nil } func (x *Message13083) GetField13105() *UnusedEmptyMessage { if x != nil { return x.Field13105 } return nil } type Message13088 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Message13089 []*Message13088_Message13089 `protobuf:"group,1,rep,name=Message13089,json=message13089" json:"message13089,omitempty"` Field13136 *int64 `protobuf:"varint,4,opt,name=field13136" json:"field13136,omitempty"` Field13137 *bool `protobuf:"varint,5,opt,name=field13137" json:"field13137,omitempty"` } func (x *Message13088) Reset() { *x = Message13088{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message13088) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message13088) ProtoMessage() {} func (x *Message13088) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message13088.ProtoReflect.Descriptor instead. func (*Message13088) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{13} } func (x *Message13088) GetMessage13089() []*Message13088_Message13089 { if x != nil { return x.Message13089 } return nil } func (x *Message13088) GetField13136() int64 { if x != nil && x.Field13136 != nil { return *x.Field13136 } return 0 } func (x *Message13088) GetField13137() bool { if x != nil && x.Field13137 != nil { return *x.Field13137 } return false } type Message10391 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field10411 *Enum10392 `protobuf:"varint,1,opt,name=field10411,enum=benchmarks.google_message3.Enum10392" json:"field10411,omitempty"` Field10412 *UnusedEnum `protobuf:"varint,2,opt,name=field10412,enum=benchmarks.google_message3.UnusedEnum" json:"field10412,omitempty"` Field10413 *int64 `protobuf:"varint,3,opt,name=field10413" json:"field10413,omitempty"` Field10414 *string `protobuf:"bytes,4,opt,name=field10414" json:"field10414,omitempty"` Field10415 *string `protobuf:"bytes,5,opt,name=field10415" json:"field10415,omitempty"` Field10416 []byte `protobuf:"bytes,6,opt,name=field10416" json:"field10416,omitempty"` Field10417 *bool `protobuf:"varint,8,opt,name=field10417" json:"field10417,omitempty"` Field10418 *UnusedEmptyMessage `protobuf:"bytes,9,opt,name=field10418" json:"field10418,omitempty"` Field10419 *bool `protobuf:"varint,10,opt,name=field10419" json:"field10419,omitempty"` } func (x *Message10391) Reset() { *x = Message10391{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10391) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10391) ProtoMessage() {} func (x *Message10391) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10391.ProtoReflect.Descriptor instead. func (*Message10391) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{14} } func (x *Message10391) GetField10411() Enum10392 { if x != nil && x.Field10411 != nil { return *x.Field10411 } return Enum10392_ENUM_VALUE10393 } func (x *Message10391) GetField10412() UnusedEnum { if x != nil && x.Field10412 != nil { return *x.Field10412 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message10391) GetField10413() int64 { if x != nil && x.Field10413 != nil { return *x.Field10413 } return 0 } func (x *Message10391) GetField10414() string { if x != nil && x.Field10414 != nil { return *x.Field10414 } return "" } func (x *Message10391) GetField10415() string { if x != nil && x.Field10415 != nil { return *x.Field10415 } return "" } func (x *Message10391) GetField10416() []byte { if x != nil { return x.Field10416 } return nil } func (x *Message10391) GetField10417() bool { if x != nil && x.Field10417 != nil { return *x.Field10417 } return false } func (x *Message10391) GetField10418() *UnusedEmptyMessage { if x != nil { return x.Field10418 } return nil } func (x *Message10391) GetField10419() bool { if x != nil && x.Field10419 != nil { return *x.Field10419 } return false } type Message11873 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields Field11876 *string `protobuf:"bytes,1,opt,name=field11876" json:"field11876,omitempty"` Field11877 *string `protobuf:"bytes,4,opt,name=field11877" json:"field11877,omitempty"` Field11878 *Message10573 `protobuf:"bytes,5,opt,name=field11878" json:"field11878,omitempty"` Field11879 *Message10582 `protobuf:"bytes,6,opt,name=field11879" json:"field11879,omitempty"` Field11880 *Message10824 `protobuf:"bytes,7,opt,name=field11880" json:"field11880,omitempty"` Field11881 *Message10773 `protobuf:"bytes,12,opt,name=field11881" json:"field11881,omitempty"` Field11882 *Message11866 `protobuf:"bytes,8,opt,name=field11882" json:"field11882,omitempty"` Field11883 *Message10818 `protobuf:"bytes,13,opt,name=field11883" json:"field11883,omitempty"` Field11884 *UnusedEmptyMessage `protobuf:"bytes,16,opt,name=field11884" json:"field11884,omitempty"` Field11885 *Message10155 `protobuf:"bytes,11,opt,name=field11885" json:"field11885,omitempty"` Field11886 *Message10469 `protobuf:"bytes,14,opt,name=field11886" json:"field11886,omitempty"` Field11887 *UnusedEmptyMessage `protobuf:"bytes,15,opt,name=field11887" json:"field11887,omitempty"` } func (x *Message11873) Reset() { *x = Message11873{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message11873) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message11873) ProtoMessage() {} func (x *Message11873) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message11873.ProtoReflect.Descriptor instead. func (*Message11873) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{15} } func (x *Message11873) GetField11876() string { if x != nil && x.Field11876 != nil { return *x.Field11876 } return "" } func (x *Message11873) GetField11877() string { if x != nil && x.Field11877 != nil { return *x.Field11877 } return "" } func (x *Message11873) GetField11878() *Message10573 { if x != nil { return x.Field11878 } return nil } func (x *Message11873) GetField11879() *Message10582 { if x != nil { return x.Field11879 } return nil } func (x *Message11873) GetField11880() *Message10824 { if x != nil { return x.Field11880 } return nil } func (x *Message11873) GetField11881() *Message10773 { if x != nil { return x.Field11881 } return nil } func (x *Message11873) GetField11882() *Message11866 { if x != nil { return x.Field11882 } return nil } func (x *Message11873) GetField11883() *Message10818 { if x != nil { return x.Field11883 } return nil } func (x *Message11873) GetField11884() *UnusedEmptyMessage { if x != nil { return x.Field11884 } return nil } func (x *Message11873) GetField11885() *Message10155 { if x != nil { return x.Field11885 } return nil } func (x *Message11873) GetField11886() *Message10469 { if x != nil { return x.Field11886 } return nil } func (x *Message11873) GetField11887() *UnusedEmptyMessage { if x != nil { return x.Field11887 } return nil } type Message35506 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field35524 *int32 `protobuf:"varint,1,opt,name=field35524" json:"field35524,omitempty"` Field35525 *string `protobuf:"bytes,2,opt,name=field35525" json:"field35525,omitempty"` Field35526 *Enum35507 `protobuf:"varint,3,opt,name=field35526,enum=benchmarks.google_message3.Enum35507" json:"field35526,omitempty"` Field35527 []*UnusedEmptyMessage `protobuf:"bytes,4,rep,name=field35527" json:"field35527,omitempty"` } func (x *Message35506) Reset() { *x = Message35506{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message35506) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message35506) ProtoMessage() {} func (x *Message35506) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message35506.ProtoReflect.Descriptor instead. func (*Message35506) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{16} } func (x *Message35506) GetField35524() int32 { if x != nil && x.Field35524 != nil { return *x.Field35524 } return 0 } func (x *Message35506) GetField35525() string { if x != nil && x.Field35525 != nil { return *x.Field35525 } return "" } func (x *Message35506) GetField35526() Enum35507 { if x != nil && x.Field35526 != nil { return *x.Field35526 } return Enum35507_ENUM_VALUE35508 } func (x *Message35506) GetField35527() []*UnusedEmptyMessage { if x != nil { return x.Field35527 } return nil } type Message13151 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field13158 []*Message13145 `protobuf:"bytes,1,rep,name=field13158" json:"field13158,omitempty"` } func (x *Message13151) Reset() { *x = Message13151{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message13151) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message13151) ProtoMessage() {} func (x *Message13151) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message13151.ProtoReflect.Descriptor instead. func (*Message13151) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{17} } func (x *Message13151) GetField13158() []*Message13145 { if x != nil { return x.Field13158 } return nil } type Message18253 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Message18254 []*Message18253_Message18254 `protobuf:"group,1,rep,name=Message18254,json=message18254" json:"message18254,omitempty"` } func (x *Message18253) Reset() { *x = Message18253{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message18253) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message18253) ProtoMessage() {} func (x *Message18253) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message18253.ProtoReflect.Descriptor instead. func (*Message18253) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{18} } func (x *Message18253) GetMessage18254() []*Message18253_Message18254 { if x != nil { return x.Message18254 } return nil } type Message16685 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field16694 []*Message16686 `protobuf:"bytes,2,rep,name=field16694" json:"field16694,omitempty"` } func (x *Message16685) Reset() { *x = Message16685{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message16685) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message16685) ProtoMessage() {} func (x *Message16685) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message16685.ProtoReflect.Descriptor instead. func (*Message16685) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{19} } func (x *Message16685) GetField16694() []*Message16686 { if x != nil { return x.Field16694 } return nil } type Message16816 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field16826 *float32 `protobuf:"fixed32,1,opt,name=field16826" json:"field16826,omitempty"` Field16827 *Enum16819 `protobuf:"varint,2,opt,name=field16827,enum=benchmarks.google_message3.Enum16819" json:"field16827,omitempty"` Field16828 *float32 `protobuf:"fixed32,3,opt,name=field16828" json:"field16828,omitempty"` Message16817 []*Message16816_Message16817 `protobuf:"group,4,rep,name=Message16817,json=message16817" json:"message16817,omitempty"` Field16830 *bool `protobuf:"varint,7,opt,name=field16830" json:"field16830,omitempty"` Field16831 *bool `protobuf:"varint,8,opt,name=field16831" json:"field16831,omitempty"` Message16818 []*Message16816_Message16818 `protobuf:"group,12,rep,name=Message16818,json=message16818" json:"message16818,omitempty"` Field16833 *string `protobuf:"bytes,10,opt,name=field16833" json:"field16833,omitempty"` Field16834 *bool `protobuf:"varint,13,opt,name=field16834" json:"field16834,omitempty"` Field16835 *bool `protobuf:"varint,14,opt,name=field16835" json:"field16835,omitempty"` } func (x *Message16816) Reset() { *x = Message16816{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message16816) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message16816) ProtoMessage() {} func (x *Message16816) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message16816.ProtoReflect.Descriptor instead. func (*Message16816) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{20} } func (x *Message16816) GetField16826() float32 { if x != nil && x.Field16826 != nil { return *x.Field16826 } return 0 } func (x *Message16816) GetField16827() Enum16819 { if x != nil && x.Field16827 != nil { return *x.Field16827 } return Enum16819_ENUM_VALUE16820 } func (x *Message16816) GetField16828() float32 { if x != nil && x.Field16828 != nil { return *x.Field16828 } return 0 } func (x *Message16816) GetMessage16817() []*Message16816_Message16817 { if x != nil { return x.Message16817 } return nil } func (x *Message16816) GetField16830() bool { if x != nil && x.Field16830 != nil { return *x.Field16830 } return false } func (x *Message16816) GetField16831() bool { if x != nil && x.Field16831 != nil { return *x.Field16831 } return false } func (x *Message16816) GetMessage16818() []*Message16816_Message16818 { if x != nil { return x.Message16818 } return nil } func (x *Message16816) GetField16833() string { if x != nil && x.Field16833 != nil { return *x.Field16833 } return "" } func (x *Message16816) GetField16834() bool { if x != nil && x.Field16834 != nil { return *x.Field16834 } return false } func (x *Message16816) GetField16835() bool { if x != nil && x.Field16835 != nil { return *x.Field16835 } return false } type Message13168 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field13212 *int32 `protobuf:"varint,1,req,name=field13212" json:"field13212,omitempty"` Field13213 *uint64 `protobuf:"fixed64,7,opt,name=field13213" json:"field13213,omitempty"` Field13214 *bool `protobuf:"varint,8,opt,name=field13214" json:"field13214,omitempty"` Field13215 *uint64 `protobuf:"fixed64,10,opt,name=field13215" json:"field13215,omitempty"` Field13216 *bool `protobuf:"varint,11,opt,name=field13216" json:"field13216,omitempty"` Field13217 *Message12796 `protobuf:"bytes,9,opt,name=field13217" json:"field13217,omitempty"` Field13218 *float64 `protobuf:"fixed64,2,req,name=field13218" json:"field13218,omitempty"` Field13219 *bool `protobuf:"varint,3,req,name=field13219" json:"field13219,omitempty"` Field13220 *int32 `protobuf:"varint,4,opt,name=field13220" json:"field13220,omitempty"` Field13221 *bool `protobuf:"varint,5,req,name=field13221" json:"field13221,omitempty"` Field13222 *int32 `protobuf:"varint,6,opt,name=field13222" json:"field13222,omitempty"` } func (x *Message13168) Reset() { *x = Message13168{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message13168) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message13168) ProtoMessage() {} func (x *Message13168) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message13168.ProtoReflect.Descriptor instead. func (*Message13168) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{21} } func (x *Message13168) GetField13212() int32 { if x != nil && x.Field13212 != nil { return *x.Field13212 } return 0 } func (x *Message13168) GetField13213() uint64 { if x != nil && x.Field13213 != nil { return *x.Field13213 } return 0 } func (x *Message13168) GetField13214() bool { if x != nil && x.Field13214 != nil { return *x.Field13214 } return false } func (x *Message13168) GetField13215() uint64 { if x != nil && x.Field13215 != nil { return *x.Field13215 } return 0 } func (x *Message13168) GetField13216() bool { if x != nil && x.Field13216 != nil { return *x.Field13216 } return false } func (x *Message13168) GetField13217() *Message12796 { if x != nil { return x.Field13217 } return nil } func (x *Message13168) GetField13218() float64 { if x != nil && x.Field13218 != nil { return *x.Field13218 } return 0 } func (x *Message13168) GetField13219() bool { if x != nil && x.Field13219 != nil { return *x.Field13219 } return false } func (x *Message13168) GetField13220() int32 { if x != nil && x.Field13220 != nil { return *x.Field13220 } return 0 } func (x *Message13168) GetField13221() bool { if x != nil && x.Field13221 != nil { return *x.Field13221 } return false } func (x *Message13168) GetField13222() int32 { if x != nil && x.Field13222 != nil { return *x.Field13222 } return 0 } type Message13167 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field13199 *int32 `protobuf:"varint,1,req,name=field13199" json:"field13199,omitempty"` Field13200 *int32 `protobuf:"varint,2,opt,name=field13200" json:"field13200,omitempty"` Field13201 *int32 `protobuf:"varint,3,opt,name=field13201" json:"field13201,omitempty"` Field13202 *bool `protobuf:"varint,8,opt,name=field13202" json:"field13202,omitempty"` Field13203 *uint64 `protobuf:"fixed64,12,opt,name=field13203" json:"field13203,omitempty"` Field13204 *bool `protobuf:"varint,13,opt,name=field13204" json:"field13204,omitempty"` Field13205 *Message12796 `protobuf:"bytes,11,opt,name=field13205" json:"field13205,omitempty"` Field13206 *uint64 `protobuf:"fixed64,9,opt,name=field13206" json:"field13206,omitempty"` Field13207 *bool `protobuf:"varint,10,opt,name=field13207" json:"field13207,omitempty"` Field13208 []int32 `protobuf:"varint,4,rep,name=field13208" json:"field13208,omitempty"` Field13209 *int32 `protobuf:"varint,5,opt,name=field13209" json:"field13209,omitempty"` Field13210 *int32 `protobuf:"varint,6,opt,name=field13210" json:"field13210,omitempty"` Field13211 *int32 `protobuf:"varint,7,opt,name=field13211" json:"field13211,omitempty"` } func (x *Message13167) Reset() { *x = Message13167{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message13167) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message13167) ProtoMessage() {} func (x *Message13167) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message13167.ProtoReflect.Descriptor instead. func (*Message13167) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{22} } func (x *Message13167) GetField13199() int32 { if x != nil && x.Field13199 != nil { return *x.Field13199 } return 0 } func (x *Message13167) GetField13200() int32 { if x != nil && x.Field13200 != nil { return *x.Field13200 } return 0 } func (x *Message13167) GetField13201() int32 { if x != nil && x.Field13201 != nil { return *x.Field13201 } return 0 } func (x *Message13167) GetField13202() bool { if x != nil && x.Field13202 != nil { return *x.Field13202 } return false } func (x *Message13167) GetField13203() uint64 { if x != nil && x.Field13203 != nil { return *x.Field13203 } return 0 } func (x *Message13167) GetField13204() bool { if x != nil && x.Field13204 != nil { return *x.Field13204 } return false } func (x *Message13167) GetField13205() *Message12796 { if x != nil { return x.Field13205 } return nil } func (x *Message13167) GetField13206() uint64 { if x != nil && x.Field13206 != nil { return *x.Field13206 } return 0 } func (x *Message13167) GetField13207() bool { if x != nil && x.Field13207 != nil { return *x.Field13207 } return false } func (x *Message13167) GetField13208() []int32 { if x != nil { return x.Field13208 } return nil } func (x *Message13167) GetField13209() int32 { if x != nil && x.Field13209 != nil { return *x.Field13209 } return 0 } func (x *Message13167) GetField13210() int32 { if x != nil && x.Field13210 != nil { return *x.Field13210 } return 0 } func (x *Message13167) GetField13211() int32 { if x != nil && x.Field13211 != nil { return *x.Field13211 } return 0 } type Message1374 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field1375 *string `protobuf:"bytes,1,req,name=field1375" json:"field1375,omitempty"` Field1376 *string `protobuf:"bytes,2,opt,name=field1376" json:"field1376,omitempty"` } func (x *Message1374) Reset() { *x = Message1374{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message1374) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message1374) ProtoMessage() {} func (x *Message1374) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message1374.ProtoReflect.Descriptor instead. func (*Message1374) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{23} } func (x *Message1374) GetField1375() string { if x != nil && x.Field1375 != nil { return *x.Field1375 } return "" } func (x *Message1374) GetField1376() string { if x != nil && x.Field1376 != nil { return *x.Field1376 } return "" } type Message18943 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message18943) Reset() { *x = Message18943{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message18943) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message18943) ProtoMessage() {} func (x *Message18943) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message18943.ProtoReflect.Descriptor instead. func (*Message18943) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{24} } type Message18944 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message18944) Reset() { *x = Message18944{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message18944) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message18944) ProtoMessage() {} func (x *Message18944) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message18944.ProtoReflect.Descriptor instead. func (*Message18944) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{25} } type Message18856 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field18857 *string `protobuf:"bytes,1,opt,name=field18857" json:"field18857,omitempty"` Field18858 *string `protobuf:"bytes,2,opt,name=field18858" json:"field18858,omitempty"` Field18859 *bool `protobuf:"varint,31,opt,name=field18859" json:"field18859,omitempty"` Field18860 *string `protobuf:"bytes,26,opt,name=field18860" json:"field18860,omitempty"` Field18861 *string `protobuf:"bytes,3,opt,name=field18861" json:"field18861,omitempty"` Field18862 *string `protobuf:"bytes,4,opt,name=field18862" json:"field18862,omitempty"` Field18863 *string `protobuf:"bytes,5,opt,name=field18863" json:"field18863,omitempty"` Field18864 *string `protobuf:"bytes,17,opt,name=field18864" json:"field18864,omitempty"` Field18865 *string `protobuf:"bytes,6,opt,name=field18865" json:"field18865,omitempty"` Field18866 *string `protobuf:"bytes,7,opt,name=field18866" json:"field18866,omitempty"` Field18867 *string `protobuf:"bytes,8,opt,name=field18867" json:"field18867,omitempty"` Field18868 *string `protobuf:"bytes,9,opt,name=field18868" json:"field18868,omitempty"` Field18869 *string `protobuf:"bytes,10,opt,name=field18869" json:"field18869,omitempty"` Field18870 *string `protobuf:"bytes,11,opt,name=field18870" json:"field18870,omitempty"` Field18871 *string `protobuf:"bytes,21,opt,name=field18871" json:"field18871,omitempty"` Field18872 *string `protobuf:"bytes,18,opt,name=field18872" json:"field18872,omitempty"` Field18873 *string `protobuf:"bytes,19,opt,name=field18873" json:"field18873,omitempty"` Field18874 *string `protobuf:"bytes,20,opt,name=field18874" json:"field18874,omitempty"` Field18875 *string `protobuf:"bytes,22,opt,name=field18875" json:"field18875,omitempty"` Field18876 *string `protobuf:"bytes,23,opt,name=field18876" json:"field18876,omitempty"` Field18877 *string `protobuf:"bytes,24,opt,name=field18877" json:"field18877,omitempty"` Field18878 *string `protobuf:"bytes,25,opt,name=field18878" json:"field18878,omitempty"` Field18879 *string `protobuf:"bytes,12,opt,name=field18879" json:"field18879,omitempty"` Field18880 *string `protobuf:"bytes,13,opt,name=field18880" json:"field18880,omitempty"` Field18881 *string `protobuf:"bytes,29,opt,name=field18881" json:"field18881,omitempty"` Field18882 *string `protobuf:"bytes,30,opt,name=field18882" json:"field18882,omitempty"` Field18883 *string `protobuf:"bytes,15,opt,name=field18883" json:"field18883,omitempty"` Field18884 *string `protobuf:"bytes,16,opt,name=field18884" json:"field18884,omitempty"` Field18885 []string `protobuf:"bytes,14,rep,name=field18885" json:"field18885,omitempty"` Field18886 *string `protobuf:"bytes,27,opt,name=field18886" json:"field18886,omitempty"` Field18887 *string `protobuf:"bytes,28,opt,name=field18887" json:"field18887,omitempty"` } func (x *Message18856) Reset() { *x = Message18856{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message18856) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message18856) ProtoMessage() {} func (x *Message18856) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message18856.ProtoReflect.Descriptor instead. func (*Message18856) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{26} } func (x *Message18856) GetField18857() string { if x != nil && x.Field18857 != nil { return *x.Field18857 } return "" } func (x *Message18856) GetField18858() string { if x != nil && x.Field18858 != nil { return *x.Field18858 } return "" } func (x *Message18856) GetField18859() bool { if x != nil && x.Field18859 != nil { return *x.Field18859 } return false } func (x *Message18856) GetField18860() string { if x != nil && x.Field18860 != nil { return *x.Field18860 } return "" } func (x *Message18856) GetField18861() string { if x != nil && x.Field18861 != nil { return *x.Field18861 } return "" } func (x *Message18856) GetField18862() string { if x != nil && x.Field18862 != nil { return *x.Field18862 } return "" } func (x *Message18856) GetField18863() string { if x != nil && x.Field18863 != nil { return *x.Field18863 } return "" } func (x *Message18856) GetField18864() string { if x != nil && x.Field18864 != nil { return *x.Field18864 } return "" } func (x *Message18856) GetField18865() string { if x != nil && x.Field18865 != nil { return *x.Field18865 } return "" } func (x *Message18856) GetField18866() string { if x != nil && x.Field18866 != nil { return *x.Field18866 } return "" } func (x *Message18856) GetField18867() string { if x != nil && x.Field18867 != nil { return *x.Field18867 } return "" } func (x *Message18856) GetField18868() string { if x != nil && x.Field18868 != nil { return *x.Field18868 } return "" } func (x *Message18856) GetField18869() string { if x != nil && x.Field18869 != nil { return *x.Field18869 } return "" } func (x *Message18856) GetField18870() string { if x != nil && x.Field18870 != nil { return *x.Field18870 } return "" } func (x *Message18856) GetField18871() string { if x != nil && x.Field18871 != nil { return *x.Field18871 } return "" } func (x *Message18856) GetField18872() string { if x != nil && x.Field18872 != nil { return *x.Field18872 } return "" } func (x *Message18856) GetField18873() string { if x != nil && x.Field18873 != nil { return *x.Field18873 } return "" } func (x *Message18856) GetField18874() string { if x != nil && x.Field18874 != nil { return *x.Field18874 } return "" } func (x *Message18856) GetField18875() string { if x != nil && x.Field18875 != nil { return *x.Field18875 } return "" } func (x *Message18856) GetField18876() string { if x != nil && x.Field18876 != nil { return *x.Field18876 } return "" } func (x *Message18856) GetField18877() string { if x != nil && x.Field18877 != nil { return *x.Field18877 } return "" } func (x *Message18856) GetField18878() string { if x != nil && x.Field18878 != nil { return *x.Field18878 } return "" } func (x *Message18856) GetField18879() string { if x != nil && x.Field18879 != nil { return *x.Field18879 } return "" } func (x *Message18856) GetField18880() string { if x != nil && x.Field18880 != nil { return *x.Field18880 } return "" } func (x *Message18856) GetField18881() string { if x != nil && x.Field18881 != nil { return *x.Field18881 } return "" } func (x *Message18856) GetField18882() string { if x != nil && x.Field18882 != nil { return *x.Field18882 } return "" } func (x *Message18856) GetField18883() string { if x != nil && x.Field18883 != nil { return *x.Field18883 } return "" } func (x *Message18856) GetField18884() string { if x != nil && x.Field18884 != nil { return *x.Field18884 } return "" } func (x *Message18856) GetField18885() []string { if x != nil { return x.Field18885 } return nil } func (x *Message18856) GetField18886() string { if x != nil && x.Field18886 != nil { return *x.Field18886 } return "" } func (x *Message18856) GetField18887() string { if x != nil && x.Field18887 != nil { return *x.Field18887 } return "" } type Message3850 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field3924 *Enum3851 `protobuf:"varint,2,opt,name=field3924,enum=benchmarks.google_message3.Enum3851" json:"field3924,omitempty"` Field3925 *bool `protobuf:"varint,12,opt,name=field3925" json:"field3925,omitempty"` Field3926 *int32 `protobuf:"varint,4,opt,name=field3926" json:"field3926,omitempty"` Field3927 *bool `protobuf:"varint,10,opt,name=field3927" json:"field3927,omitempty"` Field3928 *bool `protobuf:"varint,13,opt,name=field3928" json:"field3928,omitempty"` Field3929 *bool `protobuf:"varint,14,opt,name=field3929" json:"field3929,omitempty"` } func (x *Message3850) Reset() { *x = Message3850{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3850) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3850) ProtoMessage() {} func (x *Message3850) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3850.ProtoReflect.Descriptor instead. func (*Message3850) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{27} } func (x *Message3850) GetField3924() Enum3851 { if x != nil && x.Field3924 != nil { return *x.Field3924 } return Enum3851_ENUM_VALUE3852 } func (x *Message3850) GetField3925() bool { if x != nil && x.Field3925 != nil { return *x.Field3925 } return false } func (x *Message3850) GetField3926() int32 { if x != nil && x.Field3926 != nil { return *x.Field3926 } return 0 } func (x *Message3850) GetField3927() bool { if x != nil && x.Field3927 != nil { return *x.Field3927 } return false } func (x *Message3850) GetField3928() bool { if x != nil && x.Field3928 != nil { return *x.Field3928 } return false } func (x *Message3850) GetField3929() bool { if x != nil && x.Field3929 != nil { return *x.Field3929 } return false } type Message6721 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6744 *Message6722 `protobuf:"bytes,1,opt,name=field6744" json:"field6744,omitempty"` Field6745 *bool `protobuf:"varint,2,opt,name=field6745" json:"field6745,omitempty"` Field6746 *bool `protobuf:"varint,3,opt,name=field6746" json:"field6746,omitempty"` Field6747 *bool `protobuf:"varint,4,opt,name=field6747" json:"field6747,omitempty"` } func (x *Message6721) Reset() { *x = Message6721{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6721) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6721) ProtoMessage() {} func (x *Message6721) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6721.ProtoReflect.Descriptor instead. func (*Message6721) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{28} } func (x *Message6721) GetField6744() *Message6722 { if x != nil { return x.Field6744 } return nil } func (x *Message6721) GetField6745() bool { if x != nil && x.Field6745 != nil { return *x.Field6745 } return false } func (x *Message6721) GetField6746() bool { if x != nil && x.Field6746 != nil { return *x.Field6746 } return false } func (x *Message6721) GetField6747() bool { if x != nil && x.Field6747 != nil { return *x.Field6747 } return false } type Message6742 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6758 *bool `protobuf:"varint,1,opt,name=field6758" json:"field6758,omitempty"` } func (x *Message6742) Reset() { *x = Message6742{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6742) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6742) ProtoMessage() {} func (x *Message6742) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6742.ProtoReflect.Descriptor instead. func (*Message6742) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{29} } func (x *Message6742) GetField6758() bool { if x != nil && x.Field6758 != nil { return *x.Field6758 } return false } type Message6726 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6752 *int64 `protobuf:"varint,1,opt,name=field6752" json:"field6752,omitempty"` Field6753 []*Message6727 `protobuf:"bytes,2,rep,name=field6753" json:"field6753,omitempty"` } func (x *Message6726) Reset() { *x = Message6726{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6726) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6726) ProtoMessage() {} func (x *Message6726) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6726.ProtoReflect.Descriptor instead. func (*Message6726) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{30} } func (x *Message6726) GetField6752() int64 { if x != nil && x.Field6752 != nil { return *x.Field6752 } return 0 } func (x *Message6726) GetField6753() []*Message6727 { if x != nil { return x.Field6753 } return nil } type Message6733 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6754 *int64 `protobuf:"varint,1,opt,name=field6754" json:"field6754,omitempty"` Field6755 *int64 `protobuf:"varint,2,opt,name=field6755" json:"field6755,omitempty"` Field6756 *bool `protobuf:"varint,3,opt,name=field6756" json:"field6756,omitempty"` } func (x *Message6733) Reset() { *x = Message6733{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6733) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6733) ProtoMessage() {} func (x *Message6733) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6733.ProtoReflect.Descriptor instead. func (*Message6733) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{31} } func (x *Message6733) GetField6754() int64 { if x != nil && x.Field6754 != nil { return *x.Field6754 } return 0 } func (x *Message6733) GetField6755() int64 { if x != nil && x.Field6755 != nil { return *x.Field6755 } return 0 } func (x *Message6733) GetField6756() bool { if x != nil && x.Field6756 != nil { return *x.Field6756 } return false } type Message6723 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6748 *int64 `protobuf:"varint,1,opt,name=field6748" json:"field6748,omitempty"` Field6749 []*Message6724 `protobuf:"bytes,2,rep,name=field6749" json:"field6749,omitempty"` } func (x *Message6723) Reset() { *x = Message6723{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6723) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6723) ProtoMessage() {} func (x *Message6723) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6723.ProtoReflect.Descriptor instead. func (*Message6723) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{32} } func (x *Message6723) GetField6748() int64 { if x != nil && x.Field6748 != nil { return *x.Field6748 } return 0 } func (x *Message6723) GetField6749() []*Message6724 { if x != nil { return x.Field6749 } return nil } type Message6725 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6750 *int32 `protobuf:"varint,1,opt,name=field6750" json:"field6750,omitempty"` Field6751 *int32 `protobuf:"varint,2,opt,name=field6751" json:"field6751,omitempty"` } func (x *Message6725) Reset() { *x = Message6725{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6725) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6725) ProtoMessage() {} func (x *Message6725) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6725.ProtoReflect.Descriptor instead. func (*Message6725) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{33} } func (x *Message6725) GetField6750() int32 { if x != nil && x.Field6750 != nil { return *x.Field6750 } return 0 } func (x *Message6725) GetField6751() int32 { if x != nil && x.Field6751 != nil { return *x.Field6751 } return 0 } type Message6734 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6757 []*Message6735 `protobuf:"bytes,1,rep,name=field6757" json:"field6757,omitempty"` } func (x *Message6734) Reset() { *x = Message6734{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6734) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6734) ProtoMessage() {} func (x *Message6734) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6734.ProtoReflect.Descriptor instead. func (*Message6734) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{34} } func (x *Message6734) GetField6757() []*Message6735 { if x != nil { return x.Field6757 } return nil } type Message8184 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8228 *Message7966 `protobuf:"bytes,1,opt,name=field8228" json:"field8228,omitempty"` Field8229 *bool `protobuf:"varint,2,opt,name=field8229" json:"field8229,omitempty"` Field8230 []*Message8183 `protobuf:"bytes,3,rep,name=field8230" json:"field8230,omitempty"` } func (x *Message8184) Reset() { *x = Message8184{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8184) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8184) ProtoMessage() {} func (x *Message8184) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8184.ProtoReflect.Descriptor instead. func (*Message8184) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{35} } func (x *Message8184) GetField8228() *Message7966 { if x != nil { return x.Field8228 } return nil } func (x *Message8184) GetField8229() bool { if x != nil && x.Field8229 != nil { return *x.Field8229 } return false } func (x *Message8184) GetField8230() []*Message8183 { if x != nil { return x.Field8230 } return nil } type Message8477 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8486 *Message7966 `protobuf:"bytes,1,opt,name=field8486" json:"field8486,omitempty"` Field8487 *int64 `protobuf:"varint,2,opt,name=field8487" json:"field8487,omitempty"` Field8488 *string `protobuf:"bytes,3,opt,name=field8488" json:"field8488,omitempty"` } func (x *Message8477) Reset() { *x = Message8477{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8477) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8477) ProtoMessage() {} func (x *Message8477) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8477.ProtoReflect.Descriptor instead. func (*Message8477) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{36} } func (x *Message8477) GetField8486() *Message7966 { if x != nil { return x.Field8486 } return nil } func (x *Message8477) GetField8487() int64 { if x != nil && x.Field8487 != nil { return *x.Field8487 } return 0 } func (x *Message8477) GetField8488() string { if x != nil && x.Field8488 != nil { return *x.Field8488 } return "" } type Message8454 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8465 *Message8449 `protobuf:"bytes,1,opt,name=field8465" json:"field8465,omitempty"` Field8466 *int64 `protobuf:"varint,3,opt,name=field8466" json:"field8466,omitempty"` Field8467 *int32 `protobuf:"varint,4,opt,name=field8467" json:"field8467,omitempty"` Field8468 *bool `protobuf:"varint,5,opt,name=field8468" json:"field8468,omitempty"` } func (x *Message8454) Reset() { *x = Message8454{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8454) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8454) ProtoMessage() {} func (x *Message8454) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8454.ProtoReflect.Descriptor instead. func (*Message8454) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{37} } func (x *Message8454) GetField8465() *Message8449 { if x != nil { return x.Field8465 } return nil } func (x *Message8454) GetField8466() int64 { if x != nil && x.Field8466 != nil { return *x.Field8466 } return 0 } func (x *Message8454) GetField8467() int32 { if x != nil && x.Field8467 != nil { return *x.Field8467 } return 0 } func (x *Message8454) GetField8468() bool { if x != nil && x.Field8468 != nil { return *x.Field8468 } return false } type Message8476 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8483 *string `protobuf:"bytes,1,opt,name=field8483" json:"field8483,omitempty"` Field8484 *string `protobuf:"bytes,2,opt,name=field8484" json:"field8484,omitempty"` Field8485 *string `protobuf:"bytes,3,opt,name=field8485" json:"field8485,omitempty"` } func (x *Message8476) Reset() { *x = Message8476{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8476) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8476) ProtoMessage() {} func (x *Message8476) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8476.ProtoReflect.Descriptor instead. func (*Message8476) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{38} } func (x *Message8476) GetField8483() string { if x != nil && x.Field8483 != nil { return *x.Field8483 } return "" } func (x *Message8476) GetField8484() string { if x != nil && x.Field8484 != nil { return *x.Field8484 } return "" } func (x *Message8476) GetField8485() string { if x != nil && x.Field8485 != nil { return *x.Field8485 } return "" } type Message8455 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8470 *Message8449 `protobuf:"bytes,1,opt,name=field8470" json:"field8470,omitempty"` Field8471 []*Message8456 `protobuf:"bytes,2,rep,name=field8471" json:"field8471,omitempty"` Field8472 *Message8457 `protobuf:"bytes,5,opt,name=field8472" json:"field8472,omitempty"` Field8473 *UnusedEmptyMessage `protobuf:"bytes,6,opt,name=field8473" json:"field8473,omitempty"` } func (x *Message8455) Reset() { *x = Message8455{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8455) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8455) ProtoMessage() {} func (x *Message8455) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8455.ProtoReflect.Descriptor instead. func (*Message8455) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{39} } func (x *Message8455) GetField8470() *Message8449 { if x != nil { return x.Field8470 } return nil } func (x *Message8455) GetField8471() []*Message8456 { if x != nil { return x.Field8471 } return nil } func (x *Message8455) GetField8472() *Message8457 { if x != nil { return x.Field8472 } return nil } func (x *Message8455) GetField8473() *UnusedEmptyMessage { if x != nil { return x.Field8473 } return nil } type Message8475 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8481 *string `protobuf:"bytes,1,opt,name=field8481" json:"field8481,omitempty"` Field8482 *int64 `protobuf:"varint,2,opt,name=field8482" json:"field8482,omitempty"` } func (x *Message8475) Reset() { *x = Message8475{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8475) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8475) ProtoMessage() {} func (x *Message8475) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8475.ProtoReflect.Descriptor instead. func (*Message8475) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{40} } func (x *Message8475) GetField8481() string { if x != nil && x.Field8481 != nil { return *x.Field8481 } return "" } func (x *Message8475) GetField8482() int64 { if x != nil && x.Field8482 != nil { return *x.Field8482 } return 0 } type Message12559 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message12559) Reset() { *x = Message12559{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12559) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12559) ProtoMessage() {} func (x *Message12559) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12559.ProtoReflect.Descriptor instead. func (*Message12559) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{41} } type Message12817 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12826 *int32 `protobuf:"varint,1,opt,name=field12826" json:"field12826,omitempty"` Field12827 *int32 `protobuf:"varint,2,opt,name=field12827" json:"field12827,omitempty"` Field12828 *int32 `protobuf:"varint,3,opt,name=field12828" json:"field12828,omitempty"` } func (x *Message12817) Reset() { *x = Message12817{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12817) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12817) ProtoMessage() {} func (x *Message12817) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12817.ProtoReflect.Descriptor instead. func (*Message12817) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{42} } func (x *Message12817) GetField12826() int32 { if x != nil && x.Field12826 != nil { return *x.Field12826 } return 0 } func (x *Message12817) GetField12827() int32 { if x != nil && x.Field12827 != nil { return *x.Field12827 } return 0 } func (x *Message12817) GetField12828() int32 { if x != nil && x.Field12828 != nil { return *x.Field12828 } return 0 } type Message16480 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field16490 *Message13358 `protobuf:"bytes,1,opt,name=field16490" json:"field16490,omitempty"` Field16491 *Enum16042 `protobuf:"varint,2,opt,name=field16491,enum=benchmarks.google_message3.Enum16042" json:"field16491,omitempty"` Field16492 *Message13912 `protobuf:"bytes,3,opt,name=field16492" json:"field16492,omitempty"` Field16493 *string `protobuf:"bytes,4,opt,name=field16493" json:"field16493,omitempty"` Field16494 *string `protobuf:"bytes,5,opt,name=field16494" json:"field16494,omitempty"` Field16495 *string `protobuf:"bytes,6,opt,name=field16495" json:"field16495,omitempty"` Field16496 *string `protobuf:"bytes,7,opt,name=field16496" json:"field16496,omitempty"` Field16497 *Message13358 `protobuf:"bytes,8,opt,name=field16497" json:"field16497,omitempty"` Field16498 *uint32 `protobuf:"fixed32,9,opt,name=field16498" json:"field16498,omitempty"` } func (x *Message16480) Reset() { *x = Message16480{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message16480) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message16480) ProtoMessage() {} func (x *Message16480) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message16480.ProtoReflect.Descriptor instead. func (*Message16480) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{43} } func (x *Message16480) GetField16490() *Message13358 { if x != nil { return x.Field16490 } return nil } func (x *Message16480) GetField16491() Enum16042 { if x != nil && x.Field16491 != nil { return *x.Field16491 } return Enum16042_ENUM_VALUE16043 } func (x *Message16480) GetField16492() *Message13912 { if x != nil { return x.Field16492 } return nil } func (x *Message16480) GetField16493() string { if x != nil && x.Field16493 != nil { return *x.Field16493 } return "" } func (x *Message16480) GetField16494() string { if x != nil && x.Field16494 != nil { return *x.Field16494 } return "" } func (x *Message16480) GetField16495() string { if x != nil && x.Field16495 != nil { return *x.Field16495 } return "" } func (x *Message16480) GetField16496() string { if x != nil && x.Field16496 != nil { return *x.Field16496 } return "" } func (x *Message16480) GetField16497() *Message13358 { if x != nil { return x.Field16497 } return nil } func (x *Message16480) GetField16498() uint32 { if x != nil && x.Field16498 != nil { return *x.Field16498 } return 0 } type Message24317 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field24446 *string `protobuf:"bytes,1,opt,name=field24446" json:"field24446,omitempty"` Field24447 *Message24312 `protobuf:"bytes,2,opt,name=field24447" json:"field24447,omitempty"` Field24448 []*Message24315 `protobuf:"bytes,3,rep,name=field24448" json:"field24448,omitempty"` Field24449 []*Message24313 `protobuf:"bytes,4,rep,name=field24449" json:"field24449,omitempty"` Field24450 []*Message24316 `protobuf:"bytes,5,rep,name=field24450" json:"field24450,omitempty"` Field24451 []*UnusedEmptyMessage `protobuf:"bytes,6,rep,name=field24451" json:"field24451,omitempty"` Field24452 *UnusedEmptyMessage `protobuf:"bytes,7,opt,name=field24452" json:"field24452,omitempty"` Field24453 []string `protobuf:"bytes,8,rep,name=field24453" json:"field24453,omitempty"` Field24454 []string `protobuf:"bytes,9,rep,name=field24454" json:"field24454,omitempty"` Field24455 []string `protobuf:"bytes,10,rep,name=field24455" json:"field24455,omitempty"` Field24456 []string `protobuf:"bytes,28,rep,name=field24456" json:"field24456,omitempty"` Field24457 *string `protobuf:"bytes,11,opt,name=field24457" json:"field24457,omitempty"` Field24458 *string `protobuf:"bytes,12,opt,name=field24458" json:"field24458,omitempty"` Field24459 *string `protobuf:"bytes,13,opt,name=field24459" json:"field24459,omitempty"` Field24460 *string `protobuf:"bytes,14,opt,name=field24460" json:"field24460,omitempty"` Field24461 []string `protobuf:"bytes,15,rep,name=field24461" json:"field24461,omitempty"` Field24462 *string `protobuf:"bytes,16,opt,name=field24462" json:"field24462,omitempty"` Field24463 []string `protobuf:"bytes,17,rep,name=field24463" json:"field24463,omitempty"` Field24464 []string `protobuf:"bytes,18,rep,name=field24464" json:"field24464,omitempty"` Field24465 []string `protobuf:"bytes,19,rep,name=field24465" json:"field24465,omitempty"` Field24466 []string `protobuf:"bytes,20,rep,name=field24466" json:"field24466,omitempty"` Field24467 []string `protobuf:"bytes,21,rep,name=field24467" json:"field24467,omitempty"` Field24468 []string `protobuf:"bytes,22,rep,name=field24468" json:"field24468,omitempty"` Field24469 []string `protobuf:"bytes,23,rep,name=field24469" json:"field24469,omitempty"` Field24470 []string `protobuf:"bytes,24,rep,name=field24470" json:"field24470,omitempty"` Field24471 *string `protobuf:"bytes,25,opt,name=field24471" json:"field24471,omitempty"` Field24472 *string `protobuf:"bytes,26,opt,name=field24472" json:"field24472,omitempty"` Field24473 []string `protobuf:"bytes,27,rep,name=field24473" json:"field24473,omitempty"` Field24474 *bool `protobuf:"varint,40,opt,name=field24474" json:"field24474,omitempty"` } func (x *Message24317) Reset() { *x = Message24317{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message24317) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message24317) ProtoMessage() {} func (x *Message24317) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message24317.ProtoReflect.Descriptor instead. func (*Message24317) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{44} } func (x *Message24317) GetField24446() string { if x != nil && x.Field24446 != nil { return *x.Field24446 } return "" } func (x *Message24317) GetField24447() *Message24312 { if x != nil { return x.Field24447 } return nil } func (x *Message24317) GetField24448() []*Message24315 { if x != nil { return x.Field24448 } return nil } func (x *Message24317) GetField24449() []*Message24313 { if x != nil { return x.Field24449 } return nil } func (x *Message24317) GetField24450() []*Message24316 { if x != nil { return x.Field24450 } return nil } func (x *Message24317) GetField24451() []*UnusedEmptyMessage { if x != nil { return x.Field24451 } return nil } func (x *Message24317) GetField24452() *UnusedEmptyMessage { if x != nil { return x.Field24452 } return nil } func (x *Message24317) GetField24453() []string { if x != nil { return x.Field24453 } return nil } func (x *Message24317) GetField24454() []string { if x != nil { return x.Field24454 } return nil } func (x *Message24317) GetField24455() []string { if x != nil { return x.Field24455 } return nil } func (x *Message24317) GetField24456() []string { if x != nil { return x.Field24456 } return nil } func (x *Message24317) GetField24457() string { if x != nil && x.Field24457 != nil { return *x.Field24457 } return "" } func (x *Message24317) GetField24458() string { if x != nil && x.Field24458 != nil { return *x.Field24458 } return "" } func (x *Message24317) GetField24459() string { if x != nil && x.Field24459 != nil { return *x.Field24459 } return "" } func (x *Message24317) GetField24460() string { if x != nil && x.Field24460 != nil { return *x.Field24460 } return "" } func (x *Message24317) GetField24461() []string { if x != nil { return x.Field24461 } return nil } func (x *Message24317) GetField24462() string { if x != nil && x.Field24462 != nil { return *x.Field24462 } return "" } func (x *Message24317) GetField24463() []string { if x != nil { return x.Field24463 } return nil } func (x *Message24317) GetField24464() []string { if x != nil { return x.Field24464 } return nil } func (x *Message24317) GetField24465() []string { if x != nil { return x.Field24465 } return nil } func (x *Message24317) GetField24466() []string { if x != nil { return x.Field24466 } return nil } func (x *Message24317) GetField24467() []string { if x != nil { return x.Field24467 } return nil } func (x *Message24317) GetField24468() []string { if x != nil { return x.Field24468 } return nil } func (x *Message24317) GetField24469() []string { if x != nil { return x.Field24469 } return nil } func (x *Message24317) GetField24470() []string { if x != nil { return x.Field24470 } return nil } func (x *Message24317) GetField24471() string { if x != nil && x.Field24471 != nil { return *x.Field24471 } return "" } func (x *Message24317) GetField24472() string { if x != nil && x.Field24472 != nil { return *x.Field24472 } return "" } func (x *Message24317) GetField24473() []string { if x != nil { return x.Field24473 } return nil } func (x *Message24317) GetField24474() bool { if x != nil && x.Field24474 != nil { return *x.Field24474 } return false } type Message33958_Message33959 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field33982 *string `protobuf:"bytes,3,req,name=field33982" json:"field33982,omitempty"` Field33983 *string `protobuf:"bytes,4,opt,name=field33983" json:"field33983,omitempty"` Field33984 *string `protobuf:"bytes,5,opt,name=field33984" json:"field33984,omitempty"` Field33985 *uint64 `protobuf:"fixed64,8,opt,name=field33985" json:"field33985,omitempty"` Field33986 *bool `protobuf:"varint,10,opt,name=field33986" json:"field33986,omitempty"` Field33987 *Message0 `protobuf:"bytes,6,opt,name=field33987" json:"field33987,omitempty"` } func (x *Message33958_Message33959) Reset() { *x = Message33958_Message33959{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message33958_Message33959) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message33958_Message33959) ProtoMessage() {} func (x *Message33958_Message33959) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message33958_Message33959.ProtoReflect.Descriptor instead. func (*Message33958_Message33959) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{8, 0} } func (x *Message33958_Message33959) GetField33982() string { if x != nil && x.Field33982 != nil { return *x.Field33982 } return "" } func (x *Message33958_Message33959) GetField33983() string { if x != nil && x.Field33983 != nil { return *x.Field33983 } return "" } func (x *Message33958_Message33959) GetField33984() string { if x != nil && x.Field33984 != nil { return *x.Field33984 } return "" } func (x *Message33958_Message33959) GetField33985() uint64 { if x != nil && x.Field33985 != nil { return *x.Field33985 } return 0 } func (x *Message33958_Message33959) GetField33986() bool { if x != nil && x.Field33986 != nil { return *x.Field33986 } return false } func (x *Message33958_Message33959) GetField33987() *Message0 { if x != nil { return x.Field33987 } return nil } type Message13083_Message13084 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field13107 *float32 `protobuf:"fixed32,3,req,name=field13107" json:"field13107,omitempty"` Field13108 *int32 `protobuf:"varint,4,req,name=field13108" json:"field13108,omitempty"` Field13109 *float32 `protobuf:"fixed32,5,opt,name=field13109" json:"field13109,omitempty"` Field13110 []Enum13092 `protobuf:"varint,6,rep,name=field13110,enum=benchmarks.google_message3.Enum13092" json:"field13110,omitempty"` } func (x *Message13083_Message13084) Reset() { *x = Message13083_Message13084{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message13083_Message13084) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message13083_Message13084) ProtoMessage() {} func (x *Message13083_Message13084) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message13083_Message13084.ProtoReflect.Descriptor instead. func (*Message13083_Message13084) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{12, 0} } func (x *Message13083_Message13084) GetField13107() float32 { if x != nil && x.Field13107 != nil { return *x.Field13107 } return 0 } func (x *Message13083_Message13084) GetField13108() int32 { if x != nil && x.Field13108 != nil { return *x.Field13108 } return 0 } func (x *Message13083_Message13084) GetField13109() float32 { if x != nil && x.Field13109 != nil { return *x.Field13109 } return 0 } func (x *Message13083_Message13084) GetField13110() []Enum13092 { if x != nil { return x.Field13110 } return nil } type Message13083_Message13085 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message13083_Message13085) Reset() { *x = Message13083_Message13085{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message13083_Message13085) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message13083_Message13085) ProtoMessage() {} func (x *Message13083_Message13085) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message13083_Message13085.ProtoReflect.Descriptor instead. func (*Message13083_Message13085) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{12, 1} } type Message13083_Message13086 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message13083_Message13086) Reset() { *x = Message13083_Message13086{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message13083_Message13086) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message13083_Message13086) ProtoMessage() {} func (x *Message13083_Message13086) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message13083_Message13086.ProtoReflect.Descriptor instead. func (*Message13083_Message13086) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{12, 2} } type Message13083_Message13087 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message13083_Message13087) Reset() { *x = Message13083_Message13087{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message13083_Message13087) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message13083_Message13087) ProtoMessage() {} func (x *Message13083_Message13087) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message13083_Message13087.ProtoReflect.Descriptor instead. func (*Message13083_Message13087) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{12, 3} } type Message13088_Message13089 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field13139 *string `protobuf:"bytes,2,req,name=field13139" json:"field13139,omitempty"` Field13140 *float32 `protobuf:"fixed32,3,opt,name=field13140" json:"field13140,omitempty"` } func (x *Message13088_Message13089) Reset() { *x = Message13088_Message13089{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message13088_Message13089) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message13088_Message13089) ProtoMessage() {} func (x *Message13088_Message13089) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message13088_Message13089.ProtoReflect.Descriptor instead. func (*Message13088_Message13089) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{13, 0} } func (x *Message13088_Message13089) GetField13139() string { if x != nil && x.Field13139 != nil { return *x.Field13139 } return "" } func (x *Message13088_Message13089) GetField13140() float32 { if x != nil && x.Field13140 != nil { return *x.Field13140 } return 0 } type Message18253_Message18254 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field18362 *uint64 `protobuf:"fixed64,2,req,name=field18362" json:"field18362,omitempty"` Field18363 *float64 `protobuf:"fixed64,3,req,name=field18363" json:"field18363,omitempty"` } func (x *Message18253_Message18254) Reset() { *x = Message18253_Message18254{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message18253_Message18254) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message18253_Message18254) ProtoMessage() {} func (x *Message18253_Message18254) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message18253_Message18254.ProtoReflect.Descriptor instead. func (*Message18253_Message18254) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{18, 0} } func (x *Message18253_Message18254) GetField18362() uint64 { if x != nil && x.Field18362 != nil { return *x.Field18362 } return 0 } func (x *Message18253_Message18254) GetField18363() float64 { if x != nil && x.Field18363 != nil { return *x.Field18363 } return 0 } type Message16816_Message16817 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message16816_Message16817) Reset() { *x = Message16816_Message16817{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message16816_Message16817) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message16816_Message16817) ProtoMessage() {} func (x *Message16816_Message16817) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message16816_Message16817.ProtoReflect.Descriptor instead. func (*Message16816_Message16817) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{20, 0} } type Message16816_Message16818 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message16816_Message16818) Reset() { *x = Message16816_Message16818{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message16816_Message16818) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message16816_Message16818) ProtoMessage() {} func (x *Message16816_Message16818) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message16816_Message16818.ProtoReflect.Descriptor instead. func (*Message16816_Message16818) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP(), []int{20, 1} } var file_datasets_google_message3_benchmark_message3_4_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*Message0)(nil), ExtensionType: (*Message33958)(nil), Field: 10747482, Name: "benchmarks.google_message3.Message33958.field33981", Tag: "bytes,10747482,opt,name=field33981", Filename: "datasets/google_message3/benchmark_message3_4.proto", }, { ExtendedType: (*Message8301)(nil), ExtensionType: (*Message8454)(nil), Field: 66, Name: "benchmarks.google_message3.Message8454.field8469", Tag: "bytes,66,opt,name=field8469", Filename: "datasets/google_message3/benchmark_message3_4.proto", }, { ExtendedType: (*Message8302)(nil), ExtensionType: (*Message8455)(nil), Field: 66, Name: "benchmarks.google_message3.Message8455.field8474", Tag: "bytes,66,opt,name=field8474", Filename: "datasets/google_message3/benchmark_message3_4.proto", }, } // Extension fields to Message0. var ( // optional benchmarks.google_message3.Message33958 field33981 = 10747482; E_Message33958_Field33981 = &file_datasets_google_message3_benchmark_message3_4_proto_extTypes[0] ) // Extension fields to Message8301. var ( // optional benchmarks.google_message3.Message8454 field8469 = 66; E_Message8454_Field8469 = &file_datasets_google_message3_benchmark_message3_4_proto_extTypes[1] ) // Extension fields to Message8302. var ( // optional benchmarks.google_message3.Message8455 field8474 = 66; E_Message8455_Field8474 = &file_datasets_google_message3_benchmark_message3_4_proto_extTypes[2] ) var File_datasets_google_message3_benchmark_message3_4_proto protoreflect.FileDescriptor var file_datasets_google_message3_benchmark_message3_4_proto_rawDesc = []byte{ 0x0a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x35, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x36, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x37, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x38, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x34, 0x36, 0x22, 0x58, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x34, 0x30, 0x31, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x37, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x34, 0x30, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x37, 0x39, 0x22, 0x58, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x34, 0x30, 0x32, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x38, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x34, 0x30, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x38, 0x30, 0x22, 0xb2, 0x06, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x37, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x30, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x30, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x30, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x30, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x30, 0x35, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x30, 0x35, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x30, 0x36, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x38, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x30, 0x36, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x30, 0x37, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x30, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x30, 0x38, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x30, 0x38, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x30, 0x39, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x38, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x30, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x31, 0x30, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x31, 0x30, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x31, 0x31, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x31, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x31, 0x32, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x31, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x31, 0x33, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x31, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x31, 0x34, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x31, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x31, 0x35, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x31, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x31, 0x36, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x31, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x31, 0x37, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x31, 0x37, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x31, 0x38, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x31, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x31, 0x39, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x31, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x32, 0x30, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x32, 0x30, 0x22, 0x4e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x37, 0x33, 0x35, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x31, 0x35, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x31, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x31, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x34, 0x31, 0x36, 0x22, 0xee, 0x04, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x34, 0x33, 0x38, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x33, 0x39, 0x38, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x33, 0x39, 0x38, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x33, 0x39, 0x39, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x33, 0x39, 0x39, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x30, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x30, 0x30, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x30, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x30, 0x31, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x30, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x30, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x30, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x30, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x30, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x30, 0x34, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x30, 0x35, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x30, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x30, 0x36, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x30, 0x36, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x30, 0x37, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x34, 0x30, 0x37, 0x22, 0x9e, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x34, 0x36, 0x31, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x34, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x34, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x34, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x34, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x34, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x34, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x34, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x34, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x34, 0x35, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x34, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x34, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x34, 0x36, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x34, 0x37, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x34, 0x36, 0x34, 0x37, 0x22, 0xc8, 0x0c, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x33, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x37, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x37, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x38, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x38, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x39, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x30, 0x18, 0x15, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x31, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x32, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x33, 0x18, 0x20, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x34, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x34, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x35, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x39, 0x37, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x35, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x36, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x34, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x36, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x37, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x37, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x38, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x33, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x38, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x39, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x39, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x30, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x31, 0x36, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x30, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x31, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x31, 0x38, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x32, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x33, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x31, 0x35, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x34, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x35, 0x18, 0x17, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x35, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x36, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x31, 0x39, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x36, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x37, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x32, 0x38, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x37, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x38, 0x18, 0x23, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x32, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x38, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x39, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x30, 0x18, 0x25, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x31, 0x18, 0x26, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x31, 0x12, 0x4a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x32, 0x18, 0x27, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x32, 0x12, 0x4a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x33, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x33, 0x12, 0x4a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x34, 0x12, 0x4a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x35, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x35, 0x12, 0x4a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x36, 0x12, 0x4a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x37, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x37, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x38, 0x18, 0x16, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x38, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x39, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x39, 0x2a, 0x04, 0x08, 0x19, 0x10, 0x1a, 0x2a, 0x04, 0x08, 0x1d, 0x10, 0x1e, 0x2a, 0x04, 0x08, 0x22, 0x10, 0x23, 0x2a, 0x04, 0x08, 0x0f, 0x10, 0x10, 0x22, 0xda, 0x04, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x33, 0x39, 0x35, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x37, 0x37, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x37, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x37, 0x38, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x37, 0x38, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x33, 0x39, 0x35, 0x39, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x33, 0x39, 0x35, 0x38, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x33, 0x39, 0x35, 0x39, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x33, 0x39, 0x35, 0x39, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x38, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x33, 0x39, 0x36, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x38, 0x30, 0x1a, 0xf4, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x33, 0x39, 0x35, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x38, 0x32, 0x18, 0x03, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x38, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x38, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x38, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x38, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x38, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x38, 0x35, 0x18, 0x08, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x38, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x38, 0x36, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x38, 0x36, 0x12, 0x44, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x38, 0x37, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x38, 0x37, 0x32, 0x71, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x38, 0x31, 0x12, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x18, 0xda, 0xfc, 0x8f, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x33, 0x39, 0x35, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x39, 0x38, 0x31, 0x22, 0xb3, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x36, 0x33, 0x37, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x37, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x37, 0x30, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x37, 0x31, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x37, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x37, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x37, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x37, 0x33, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x37, 0x33, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x37, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x37, 0x34, 0x22, 0xea, 0x06, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x36, 0x34, 0x33, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x33, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x37, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x38, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x39, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x30, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x31, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x33, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x34, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x35, 0x37, 0x38, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x34, 0x12, 0x44, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x35, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x36, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x36, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x37, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x37, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x38, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x38, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x39, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x30, 0x30, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x30, 0x30, 0x22, 0xf8, 0x06, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x31, 0x32, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x32, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x32, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x33, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x35, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x35, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x36, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x30, 0x32, 0x34, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x37, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x38, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x39, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x30, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x31, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x31, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x32, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x30, 0x35, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x32, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x33, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x33, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x34, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x30, 0x36, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x34, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x35, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x36, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x37, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x38, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x38, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x39, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x30, 0x35, 0x34, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x37, 0x30, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x37, 0x30, 0x22, 0xd2, 0x06, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x39, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x39, 0x36, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x34, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x34, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x39, 0x38, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x39, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x39, 0x39, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x39, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x30, 0x30, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x30, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x30, 0x31, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x30, 0x31, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x35, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x35, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x35, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x36, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x36, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x36, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x37, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x37, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x37, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x30, 0x35, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x30, 0x35, 0x1a, 0xb5, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x30, 0x37, 0x18, 0x03, 0x20, 0x02, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x30, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x30, 0x38, 0x18, 0x04, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x30, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x30, 0x39, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x30, 0x39, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x31, 0x30, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x33, 0x30, 0x39, 0x32, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x31, 0x30, 0x1a, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x35, 0x1a, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x36, 0x1a, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x37, 0x22, 0xf9, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x38, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x39, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x38, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x39, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x33, 0x36, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x33, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x33, 0x37, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x33, 0x37, 0x1a, 0x4e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x38, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x33, 0x39, 0x18, 0x02, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x33, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x34, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x34, 0x30, 0x22, 0xad, 0x03, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x33, 0x39, 0x31, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x31, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x30, 0x33, 0x39, 0x32, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x31, 0x31, 0x12, 0x46, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x31, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x31, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x31, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x31, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x31, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x31, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x31, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x31, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x31, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x31, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x31, 0x37, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x31, 0x37, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x31, 0x38, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x31, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x31, 0x39, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x31, 0x39, 0x22, 0xca, 0x06, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x38, 0x37, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x37, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x37, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x37, 0x37, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x37, 0x37, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x37, 0x38, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x35, 0x37, 0x33, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x37, 0x38, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x37, 0x39, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x35, 0x38, 0x32, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x37, 0x39, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x38, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x38, 0x32, 0x34, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x38, 0x30, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x38, 0x31, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x37, 0x37, 0x33, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x38, 0x31, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x38, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x38, 0x36, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x38, 0x32, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x38, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x38, 0x31, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x38, 0x33, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x38, 0x34, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x38, 0x34, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x38, 0x35, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x31, 0x35, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x38, 0x35, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x38, 0x36, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x34, 0x36, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x38, 0x36, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x38, 0x37, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x38, 0x37, 0x2a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x2a, 0x04, 0x08, 0x0a, 0x10, 0x0b, 0x22, 0xe5, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x35, 0x35, 0x30, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x32, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x32, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x32, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x32, 0x35, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x32, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x35, 0x35, 0x30, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x32, 0x36, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x32, 0x37, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x35, 0x35, 0x32, 0x37, 0x22, 0x58, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x31, 0x35, 0x31, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x35, 0x38, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x31, 0x34, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x35, 0x38, 0x22, 0xb9, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x32, 0x35, 0x33, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x32, 0x35, 0x34, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x32, 0x35, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x32, 0x35, 0x34, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x32, 0x35, 0x34, 0x1a, 0x4e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x32, 0x35, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x33, 0x36, 0x32, 0x18, 0x02, 0x20, 0x02, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x33, 0x36, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x33, 0x36, 0x33, 0x18, 0x03, 0x20, 0x02, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x33, 0x36, 0x33, 0x22, 0x58, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x36, 0x38, 0x35, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x36, 0x39, 0x34, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x36, 0x38, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x36, 0x39, 0x34, 0x22, 0x8b, 0x04, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x38, 0x31, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x32, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x32, 0x36, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x32, 0x37, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x36, 0x38, 0x31, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x32, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x32, 0x38, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x32, 0x38, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x38, 0x31, 0x37, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x38, 0x31, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x38, 0x31, 0x37, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x38, 0x31, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x33, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x33, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x33, 0x31, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x33, 0x31, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x38, 0x31, 0x38, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x38, 0x31, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x38, 0x31, 0x38, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x38, 0x31, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x33, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x33, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x33, 0x34, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x33, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x33, 0x35, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x38, 0x33, 0x35, 0x1a, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x38, 0x31, 0x37, 0x1a, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x38, 0x31, 0x38, 0x22, 0x98, 0x03, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x31, 0x36, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x31, 0x32, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x31, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x31, 0x33, 0x18, 0x07, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x31, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x31, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x31, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x31, 0x35, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x31, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x31, 0x36, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x31, 0x36, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x31, 0x37, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x37, 0x39, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x31, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x31, 0x38, 0x18, 0x02, 0x20, 0x02, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x31, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x31, 0x39, 0x18, 0x03, 0x20, 0x02, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x31, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x32, 0x30, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x32, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x32, 0x31, 0x18, 0x05, 0x20, 0x02, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x32, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x32, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x32, 0x32, 0x22, 0xd8, 0x03, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x31, 0x36, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x39, 0x39, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x39, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x30, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x30, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x30, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x30, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x30, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x30, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x30, 0x33, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x30, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x30, 0x34, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x30, 0x34, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x30, 0x35, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x37, 0x39, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x30, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x30, 0x36, 0x18, 0x09, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x30, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x30, 0x37, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x30, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x30, 0x38, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x30, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x30, 0x39, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x30, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x31, 0x30, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x31, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x31, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x32, 0x31, 0x31, 0x22, 0x49, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x37, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x37, 0x35, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x37, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x37, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x37, 0x36, 0x22, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x39, 0x34, 0x33, 0x22, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x39, 0x34, 0x34, 0x22, 0xee, 0x07, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x38, 0x38, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x35, 0x37, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x35, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x35, 0x38, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x35, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x35, 0x39, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x35, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x36, 0x30, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x36, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x36, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x36, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x36, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x36, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x36, 0x33, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x36, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x36, 0x34, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x36, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x36, 0x35, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x36, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x36, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x36, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x36, 0x37, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x36, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x36, 0x38, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x36, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x36, 0x39, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x36, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x37, 0x30, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x37, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x37, 0x31, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x37, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x37, 0x32, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x37, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x37, 0x33, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x37, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x37, 0x34, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x37, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x37, 0x35, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x37, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x37, 0x36, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x37, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x37, 0x37, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x37, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x37, 0x38, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x37, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x37, 0x39, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x37, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x38, 0x30, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x38, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x38, 0x31, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x38, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x38, 0x32, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x38, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x38, 0x33, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x38, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x38, 0x34, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x38, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x38, 0x35, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x38, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x38, 0x36, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x38, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x38, 0x37, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x38, 0x38, 0x38, 0x37, 0x22, 0xe7, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x38, 0x35, 0x30, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x38, 0x35, 0x31, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x35, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x36, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x37, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x38, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x39, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x39, 0x22, 0xae, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x32, 0x31, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x34, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x32, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x34, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x34, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x34, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x34, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x34, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x34, 0x37, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x34, 0x37, 0x22, 0x2b, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x34, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x35, 0x38, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x35, 0x38, 0x22, 0x72, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x32, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x35, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x35, 0x32, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x35, 0x33, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x32, 0x37, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x35, 0x33, 0x22, 0x67, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x33, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x35, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x35, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x35, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x35, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x35, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x35, 0x36, 0x22, 0x72, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x32, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x34, 0x38, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x34, 0x38, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x34, 0x39, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x32, 0x34, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x34, 0x39, 0x22, 0x49, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x32, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x35, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x35, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x35, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x35, 0x31, 0x22, 0x54, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x33, 0x34, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x35, 0x37, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x33, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x35, 0x37, 0x22, 0xb9, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x31, 0x38, 0x34, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x32, 0x38, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x36, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x32, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x32, 0x39, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x32, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x33, 0x30, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x31, 0x38, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x33, 0x30, 0x22, 0x90, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x37, 0x37, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x38, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x36, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x38, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x38, 0x37, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x38, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x38, 0x38, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x38, 0x38, 0x22, 0x9e, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x35, 0x34, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x36, 0x35, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x34, 0x39, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x36, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x36, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x36, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x36, 0x37, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x36, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x36, 0x38, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x36, 0x38, 0x32, 0x6e, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x36, 0x39, 0x12, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x33, 0x30, 0x31, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x35, 0x34, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x36, 0x39, 0x22, 0x67, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x37, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x38, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x38, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x38, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x38, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x38, 0x35, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x38, 0x35, 0x22, 0xa0, 0x03, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x35, 0x35, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x37, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x34, 0x39, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x37, 0x30, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x37, 0x31, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x35, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x37, 0x31, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x37, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x35, 0x37, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x37, 0x32, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x37, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x37, 0x33, 0x32, 0x6e, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x37, 0x34, 0x12, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x33, 0x30, 0x32, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x35, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x37, 0x34, 0x22, 0x49, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x37, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x38, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x38, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x38, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x38, 0x32, 0x22, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x35, 0x35, 0x39, 0x22, 0x6e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x31, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x32, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x32, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x32, 0x37, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x32, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x32, 0x38, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x32, 0x38, 0x22, 0xd3, 0x03, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x34, 0x38, 0x30, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x39, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x33, 0x35, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x39, 0x30, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x39, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x36, 0x30, 0x34, 0x32, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x39, 0x31, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x39, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x39, 0x31, 0x32, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x39, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x39, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x39, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x39, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x39, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x39, 0x35, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x39, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x39, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x39, 0x36, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x39, 0x37, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x33, 0x35, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x39, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x39, 0x38, 0x18, 0x09, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x36, 0x34, 0x39, 0x38, 0x22, 0xb6, 0x09, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x31, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x34, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x34, 0x36, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x34, 0x37, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x31, 0x32, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x34, 0x37, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x34, 0x38, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x31, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x34, 0x38, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x34, 0x39, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x31, 0x33, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x34, 0x39, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x35, 0x30, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x31, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x35, 0x30, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x35, 0x31, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x35, 0x31, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x35, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x35, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x35, 0x33, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x35, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x35, 0x34, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x35, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x35, 0x35, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x35, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x35, 0x36, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x35, 0x37, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x35, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x35, 0x38, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x35, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x35, 0x39, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x35, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x36, 0x30, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x36, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x36, 0x31, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x36, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x36, 0x32, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x36, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x36, 0x33, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x36, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x36, 0x34, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x36, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x36, 0x35, 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x36, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x36, 0x36, 0x18, 0x14, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x36, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x36, 0x37, 0x18, 0x15, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x36, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x36, 0x38, 0x18, 0x16, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x36, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x36, 0x39, 0x18, 0x17, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x36, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x37, 0x30, 0x18, 0x18, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x37, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x37, 0x31, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x37, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x37, 0x32, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x37, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x37, 0x33, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x37, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x37, 0x34, 0x18, 0x28, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x37, 0x34, 0x42, 0x23, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0xf8, 0x01, 0x01, } var ( file_datasets_google_message3_benchmark_message3_4_proto_rawDescOnce sync.Once file_datasets_google_message3_benchmark_message3_4_proto_rawDescData = file_datasets_google_message3_benchmark_message3_4_proto_rawDesc ) func file_datasets_google_message3_benchmark_message3_4_proto_rawDescGZIP() []byte { file_datasets_google_message3_benchmark_message3_4_proto_rawDescOnce.Do(func() { file_datasets_google_message3_benchmark_message3_4_proto_rawDescData = protoimpl.X.CompressGZIP(file_datasets_google_message3_benchmark_message3_4_proto_rawDescData) }) return file_datasets_google_message3_benchmark_message3_4_proto_rawDescData } var file_datasets_google_message3_benchmark_message3_4_proto_msgTypes = make([]protoimpl.MessageInfo, 54) var file_datasets_google_message3_benchmark_message3_4_proto_goTypes = []interface{}{ (*Message24346)(nil), // 0: benchmarks.google_message3.Message24346 (*Message24401)(nil), // 1: benchmarks.google_message3.Message24401 (*Message24402)(nil), // 2: benchmarks.google_message3.Message24402 (*Message24379)(nil), // 3: benchmarks.google_message3.Message24379 (*Message27358)(nil), // 4: benchmarks.google_message3.Message27358 (*Message34381)(nil), // 5: benchmarks.google_message3.Message34381 (*Message34619)(nil), // 6: benchmarks.google_message3.Message34619 (*Message730)(nil), // 7: benchmarks.google_message3.Message730 (*Message33958)(nil), // 8: benchmarks.google_message3.Message33958 (*Message6637)(nil), // 9: benchmarks.google_message3.Message6637 (*Message6643)(nil), // 10: benchmarks.google_message3.Message6643 (*Message6126)(nil), // 11: benchmarks.google_message3.Message6126 (*Message13083)(nil), // 12: benchmarks.google_message3.Message13083 (*Message13088)(nil), // 13: benchmarks.google_message3.Message13088 (*Message10391)(nil), // 14: benchmarks.google_message3.Message10391 (*Message11873)(nil), // 15: benchmarks.google_message3.Message11873 (*Message35506)(nil), // 16: benchmarks.google_message3.Message35506 (*Message13151)(nil), // 17: benchmarks.google_message3.Message13151 (*Message18253)(nil), // 18: benchmarks.google_message3.Message18253 (*Message16685)(nil), // 19: benchmarks.google_message3.Message16685 (*Message16816)(nil), // 20: benchmarks.google_message3.Message16816 (*Message13168)(nil), // 21: benchmarks.google_message3.Message13168 (*Message13167)(nil), // 22: benchmarks.google_message3.Message13167 (*Message1374)(nil), // 23: benchmarks.google_message3.Message1374 (*Message18943)(nil), // 24: benchmarks.google_message3.Message18943 (*Message18944)(nil), // 25: benchmarks.google_message3.Message18944 (*Message18856)(nil), // 26: benchmarks.google_message3.Message18856 (*Message3850)(nil), // 27: benchmarks.google_message3.Message3850 (*Message6721)(nil), // 28: benchmarks.google_message3.Message6721 (*Message6742)(nil), // 29: benchmarks.google_message3.Message6742 (*Message6726)(nil), // 30: benchmarks.google_message3.Message6726 (*Message6733)(nil), // 31: benchmarks.google_message3.Message6733 (*Message6723)(nil), // 32: benchmarks.google_message3.Message6723 (*Message6725)(nil), // 33: benchmarks.google_message3.Message6725 (*Message6734)(nil), // 34: benchmarks.google_message3.Message6734 (*Message8184)(nil), // 35: benchmarks.google_message3.Message8184 (*Message8477)(nil), // 36: benchmarks.google_message3.Message8477 (*Message8454)(nil), // 37: benchmarks.google_message3.Message8454 (*Message8476)(nil), // 38: benchmarks.google_message3.Message8476 (*Message8455)(nil), // 39: benchmarks.google_message3.Message8455 (*Message8475)(nil), // 40: benchmarks.google_message3.Message8475 (*Message12559)(nil), // 41: benchmarks.google_message3.Message12559 (*Message12817)(nil), // 42: benchmarks.google_message3.Message12817 (*Message16480)(nil), // 43: benchmarks.google_message3.Message16480 (*Message24317)(nil), // 44: benchmarks.google_message3.Message24317 (*Message33958_Message33959)(nil), // 45: benchmarks.google_message3.Message33958.Message33959 (*Message13083_Message13084)(nil), // 46: benchmarks.google_message3.Message13083.Message13084 (*Message13083_Message13085)(nil), // 47: benchmarks.google_message3.Message13083.Message13085 (*Message13083_Message13086)(nil), // 48: benchmarks.google_message3.Message13083.Message13086 (*Message13083_Message13087)(nil), // 49: benchmarks.google_message3.Message13083.Message13087 (*Message13088_Message13089)(nil), // 50: benchmarks.google_message3.Message13088.Message13089 (*Message18253_Message18254)(nil), // 51: benchmarks.google_message3.Message18253.Message18254 (*Message16816_Message16817)(nil), // 52: benchmarks.google_message3.Message16816.Message16817 (*Message16816_Message16818)(nil), // 53: benchmarks.google_message3.Message16816.Message16818 (*Message24400)(nil), // 54: benchmarks.google_message3.Message24400 (*Message24380)(nil), // 55: benchmarks.google_message3.Message24380 (*UnusedEmptyMessage)(nil), // 56: benchmarks.google_message3.UnusedEmptyMessage (*Message24381)(nil), // 57: benchmarks.google_message3.Message24381 (*Message697)(nil), // 58: benchmarks.google_message3.Message697 (*Message704)(nil), // 59: benchmarks.google_message3.Message704 (*Message703)(nil), // 60: benchmarks.google_message3.Message703 (*Message716)(nil), // 61: benchmarks.google_message3.Message716 (*Message718)(nil), // 62: benchmarks.google_message3.Message718 (*Message715)(nil), // 63: benchmarks.google_message3.Message715 (*Message719)(nil), // 64: benchmarks.google_message3.Message719 (*Message728)(nil), // 65: benchmarks.google_message3.Message728 (*Message702)(nil), // 66: benchmarks.google_message3.Message702 (Enum33960)(0), // 67: benchmarks.google_message3.Enum33960 (*Message6578)(nil), // 68: benchmarks.google_message3.Message6578 (UnusedEnum)(0), // 69: benchmarks.google_message3.UnusedEnum (*Message6024)(nil), // 70: benchmarks.google_message3.Message6024 (*Message6052)(nil), // 71: benchmarks.google_message3.Message6052 (Enum6065)(0), // 72: benchmarks.google_message3.Enum6065 (*Message6054)(nil), // 73: benchmarks.google_message3.Message6054 (Enum10392)(0), // 74: benchmarks.google_message3.Enum10392 (*Message10573)(nil), // 75: benchmarks.google_message3.Message10573 (*Message10582)(nil), // 76: benchmarks.google_message3.Message10582 (*Message10824)(nil), // 77: benchmarks.google_message3.Message10824 (*Message10773)(nil), // 78: benchmarks.google_message3.Message10773 (*Message11866)(nil), // 79: benchmarks.google_message3.Message11866 (*Message10818)(nil), // 80: benchmarks.google_message3.Message10818 (*Message10155)(nil), // 81: benchmarks.google_message3.Message10155 (*Message10469)(nil), // 82: benchmarks.google_message3.Message10469 (Enum35507)(0), // 83: benchmarks.google_message3.Enum35507 (*Message13145)(nil), // 84: benchmarks.google_message3.Message13145 (*Message16686)(nil), // 85: benchmarks.google_message3.Message16686 (Enum16819)(0), // 86: benchmarks.google_message3.Enum16819 (*Message12796)(nil), // 87: benchmarks.google_message3.Message12796 (Enum3851)(0), // 88: benchmarks.google_message3.Enum3851 (*Message6722)(nil), // 89: benchmarks.google_message3.Message6722 (*Message6727)(nil), // 90: benchmarks.google_message3.Message6727 (*Message6724)(nil), // 91: benchmarks.google_message3.Message6724 (*Message6735)(nil), // 92: benchmarks.google_message3.Message6735 (*Message7966)(nil), // 93: benchmarks.google_message3.Message7966 (*Message8183)(nil), // 94: benchmarks.google_message3.Message8183 (*Message8449)(nil), // 95: benchmarks.google_message3.Message8449 (*Message8456)(nil), // 96: benchmarks.google_message3.Message8456 (*Message8457)(nil), // 97: benchmarks.google_message3.Message8457 (*Message13358)(nil), // 98: benchmarks.google_message3.Message13358 (Enum16042)(0), // 99: benchmarks.google_message3.Enum16042 (*Message13912)(nil), // 100: benchmarks.google_message3.Message13912 (*Message24312)(nil), // 101: benchmarks.google_message3.Message24312 (*Message24315)(nil), // 102: benchmarks.google_message3.Message24315 (*Message24313)(nil), // 103: benchmarks.google_message3.Message24313 (*Message24316)(nil), // 104: benchmarks.google_message3.Message24316 (*Message0)(nil), // 105: benchmarks.google_message3.Message0 (Enum13092)(0), // 106: benchmarks.google_message3.Enum13092 (*Message8301)(nil), // 107: benchmarks.google_message3.Message8301 (*Message8302)(nil), // 108: benchmarks.google_message3.Message8302 } var file_datasets_google_message3_benchmark_message3_4_proto_depIdxs = []int32{ 54, // 0: benchmarks.google_message3.Message24401.field24679:type_name -> benchmarks.google_message3.Message24400 54, // 1: benchmarks.google_message3.Message24402.field24680:type_name -> benchmarks.google_message3.Message24400 55, // 2: benchmarks.google_message3.Message24379.field24606:type_name -> benchmarks.google_message3.Message24380 56, // 3: benchmarks.google_message3.Message24379.field24607:type_name -> benchmarks.google_message3.UnusedEmptyMessage 57, // 4: benchmarks.google_message3.Message24379.field24609:type_name -> benchmarks.google_message3.Message24381 56, // 5: benchmarks.google_message3.Message24379.field24611:type_name -> benchmarks.google_message3.UnusedEmptyMessage 56, // 6: benchmarks.google_message3.Message24379.field24618:type_name -> benchmarks.google_message3.UnusedEmptyMessage 56, // 7: benchmarks.google_message3.Message34381.field34399:type_name -> benchmarks.google_message3.UnusedEmptyMessage 56, // 8: benchmarks.google_message3.Message34381.field34400:type_name -> benchmarks.google_message3.UnusedEmptyMessage 56, // 9: benchmarks.google_message3.Message34381.field34401:type_name -> benchmarks.google_message3.UnusedEmptyMessage 56, // 10: benchmarks.google_message3.Message34381.field34402:type_name -> benchmarks.google_message3.UnusedEmptyMessage 56, // 11: benchmarks.google_message3.Message34381.field34405:type_name -> benchmarks.google_message3.UnusedEmptyMessage 56, // 12: benchmarks.google_message3.Message34381.field34407:type_name -> benchmarks.google_message3.UnusedEmptyMessage 56, // 13: benchmarks.google_message3.Message34619.field34647:type_name -> benchmarks.google_message3.UnusedEmptyMessage 58, // 14: benchmarks.google_message3.Message730.field905:type_name -> benchmarks.google_message3.Message697 59, // 15: benchmarks.google_message3.Message730.field906:type_name -> benchmarks.google_message3.Message704 60, // 16: benchmarks.google_message3.Message730.field908:type_name -> benchmarks.google_message3.Message703 61, // 17: benchmarks.google_message3.Message730.field910:type_name -> benchmarks.google_message3.Message716 62, // 18: benchmarks.google_message3.Message730.field911:type_name -> benchmarks.google_message3.Message718 63, // 19: benchmarks.google_message3.Message730.field913:type_name -> benchmarks.google_message3.Message715 64, // 20: benchmarks.google_message3.Message730.field916:type_name -> benchmarks.google_message3.Message719 65, // 21: benchmarks.google_message3.Message730.field917:type_name -> benchmarks.google_message3.Message728 66, // 22: benchmarks.google_message3.Message730.field918:type_name -> benchmarks.google_message3.Message702 56, // 23: benchmarks.google_message3.Message730.field922:type_name -> benchmarks.google_message3.UnusedEmptyMessage 56, // 24: benchmarks.google_message3.Message730.field923:type_name -> benchmarks.google_message3.UnusedEmptyMessage 56, // 25: benchmarks.google_message3.Message730.field924:type_name -> benchmarks.google_message3.UnusedEmptyMessage 56, // 26: benchmarks.google_message3.Message730.field925:type_name -> benchmarks.google_message3.UnusedEmptyMessage 56, // 27: benchmarks.google_message3.Message730.field926:type_name -> benchmarks.google_message3.UnusedEmptyMessage 56, // 28: benchmarks.google_message3.Message730.field927:type_name -> benchmarks.google_message3.UnusedEmptyMessage 45, // 29: benchmarks.google_message3.Message33958.message33959:type_name -> benchmarks.google_message3.Message33958.Message33959 67, // 30: benchmarks.google_message3.Message33958.field33980:type_name -> benchmarks.google_message3.Enum33960 56, // 31: benchmarks.google_message3.Message6637.field6670:type_name -> benchmarks.google_message3.UnusedEmptyMessage 56, // 32: benchmarks.google_message3.Message6637.field6671:type_name -> benchmarks.google_message3.UnusedEmptyMessage 56, // 33: benchmarks.google_message3.Message6637.field6674:type_name -> benchmarks.google_message3.UnusedEmptyMessage 56, // 34: benchmarks.google_message3.Message6643.field6683:type_name -> benchmarks.google_message3.UnusedEmptyMessage 56, // 35: benchmarks.google_message3.Message6643.field6684:type_name -> benchmarks.google_message3.UnusedEmptyMessage 68, // 36: benchmarks.google_message3.Message6643.field6694:type_name -> benchmarks.google_message3.Message6578 69, // 37: benchmarks.google_message3.Message6643.field6695:type_name -> benchmarks.google_message3.UnusedEnum 56, // 38: benchmarks.google_message3.Message6643.field6697:type_name -> benchmarks.google_message3.UnusedEmptyMessage 56, // 39: benchmarks.google_message3.Message6643.field6698:type_name -> benchmarks.google_message3.UnusedEmptyMessage 56, // 40: benchmarks.google_message3.Message6643.field6699:type_name -> benchmarks.google_message3.UnusedEmptyMessage 56, // 41: benchmarks.google_message3.Message6126.field6153:type_name -> benchmarks.google_message3.UnusedEmptyMessage 70, // 42: benchmarks.google_message3.Message6126.field6156:type_name -> benchmarks.google_message3.Message6024 71, // 43: benchmarks.google_message3.Message6126.field6162:type_name -> benchmarks.google_message3.Message6052 56, // 44: benchmarks.google_message3.Message6126.field6163:type_name -> benchmarks.google_message3.UnusedEmptyMessage 72, // 45: benchmarks.google_message3.Message6126.field6164:type_name -> benchmarks.google_message3.Enum6065 56, // 46: benchmarks.google_message3.Message6126.field6165:type_name -> benchmarks.google_message3.UnusedEmptyMessage 73, // 47: benchmarks.google_message3.Message6126.field6169:type_name -> benchmarks.google_message3.Message6054 46, // 48: benchmarks.google_message3.Message13083.message13084:type_name -> benchmarks.google_message3.Message13083.Message13084 47, // 49: benchmarks.google_message3.Message13083.message13085:type_name -> benchmarks.google_message3.Message13083.Message13085 48, // 50: benchmarks.google_message3.Message13083.message13086:type_name -> benchmarks.google_message3.Message13083.Message13086 49, // 51: benchmarks.google_message3.Message13083.message13087:type_name -> benchmarks.google_message3.Message13083.Message13087 56, // 52: benchmarks.google_message3.Message13083.field13105:type_name -> benchmarks.google_message3.UnusedEmptyMessage 50, // 53: benchmarks.google_message3.Message13088.message13089:type_name -> benchmarks.google_message3.Message13088.Message13089 74, // 54: benchmarks.google_message3.Message10391.field10411:type_name -> benchmarks.google_message3.Enum10392 69, // 55: benchmarks.google_message3.Message10391.field10412:type_name -> benchmarks.google_message3.UnusedEnum 56, // 56: benchmarks.google_message3.Message10391.field10418:type_name -> benchmarks.google_message3.UnusedEmptyMessage 75, // 57: benchmarks.google_message3.Message11873.field11878:type_name -> benchmarks.google_message3.Message10573 76, // 58: benchmarks.google_message3.Message11873.field11879:type_name -> benchmarks.google_message3.Message10582 77, // 59: benchmarks.google_message3.Message11873.field11880:type_name -> benchmarks.google_message3.Message10824 78, // 60: benchmarks.google_message3.Message11873.field11881:type_name -> benchmarks.google_message3.Message10773 79, // 61: benchmarks.google_message3.Message11873.field11882:type_name -> benchmarks.google_message3.Message11866 80, // 62: benchmarks.google_message3.Message11873.field11883:type_name -> benchmarks.google_message3.Message10818 56, // 63: benchmarks.google_message3.Message11873.field11884:type_name -> benchmarks.google_message3.UnusedEmptyMessage 81, // 64: benchmarks.google_message3.Message11873.field11885:type_name -> benchmarks.google_message3.Message10155 82, // 65: benchmarks.google_message3.Message11873.field11886:type_name -> benchmarks.google_message3.Message10469 56, // 66: benchmarks.google_message3.Message11873.field11887:type_name -> benchmarks.google_message3.UnusedEmptyMessage 83, // 67: benchmarks.google_message3.Message35506.field35526:type_name -> benchmarks.google_message3.Enum35507 56, // 68: benchmarks.google_message3.Message35506.field35527:type_name -> benchmarks.google_message3.UnusedEmptyMessage 84, // 69: benchmarks.google_message3.Message13151.field13158:type_name -> benchmarks.google_message3.Message13145 51, // 70: benchmarks.google_message3.Message18253.message18254:type_name -> benchmarks.google_message3.Message18253.Message18254 85, // 71: benchmarks.google_message3.Message16685.field16694:type_name -> benchmarks.google_message3.Message16686 86, // 72: benchmarks.google_message3.Message16816.field16827:type_name -> benchmarks.google_message3.Enum16819 52, // 73: benchmarks.google_message3.Message16816.message16817:type_name -> benchmarks.google_message3.Message16816.Message16817 53, // 74: benchmarks.google_message3.Message16816.message16818:type_name -> benchmarks.google_message3.Message16816.Message16818 87, // 75: benchmarks.google_message3.Message13168.field13217:type_name -> benchmarks.google_message3.Message12796 87, // 76: benchmarks.google_message3.Message13167.field13205:type_name -> benchmarks.google_message3.Message12796 88, // 77: benchmarks.google_message3.Message3850.field3924:type_name -> benchmarks.google_message3.Enum3851 89, // 78: benchmarks.google_message3.Message6721.field6744:type_name -> benchmarks.google_message3.Message6722 90, // 79: benchmarks.google_message3.Message6726.field6753:type_name -> benchmarks.google_message3.Message6727 91, // 80: benchmarks.google_message3.Message6723.field6749:type_name -> benchmarks.google_message3.Message6724 92, // 81: benchmarks.google_message3.Message6734.field6757:type_name -> benchmarks.google_message3.Message6735 93, // 82: benchmarks.google_message3.Message8184.field8228:type_name -> benchmarks.google_message3.Message7966 94, // 83: benchmarks.google_message3.Message8184.field8230:type_name -> benchmarks.google_message3.Message8183 93, // 84: benchmarks.google_message3.Message8477.field8486:type_name -> benchmarks.google_message3.Message7966 95, // 85: benchmarks.google_message3.Message8454.field8465:type_name -> benchmarks.google_message3.Message8449 95, // 86: benchmarks.google_message3.Message8455.field8470:type_name -> benchmarks.google_message3.Message8449 96, // 87: benchmarks.google_message3.Message8455.field8471:type_name -> benchmarks.google_message3.Message8456 97, // 88: benchmarks.google_message3.Message8455.field8472:type_name -> benchmarks.google_message3.Message8457 56, // 89: benchmarks.google_message3.Message8455.field8473:type_name -> benchmarks.google_message3.UnusedEmptyMessage 98, // 90: benchmarks.google_message3.Message16480.field16490:type_name -> benchmarks.google_message3.Message13358 99, // 91: benchmarks.google_message3.Message16480.field16491:type_name -> benchmarks.google_message3.Enum16042 100, // 92: benchmarks.google_message3.Message16480.field16492:type_name -> benchmarks.google_message3.Message13912 98, // 93: benchmarks.google_message3.Message16480.field16497:type_name -> benchmarks.google_message3.Message13358 101, // 94: benchmarks.google_message3.Message24317.field24447:type_name -> benchmarks.google_message3.Message24312 102, // 95: benchmarks.google_message3.Message24317.field24448:type_name -> benchmarks.google_message3.Message24315 103, // 96: benchmarks.google_message3.Message24317.field24449:type_name -> benchmarks.google_message3.Message24313 104, // 97: benchmarks.google_message3.Message24317.field24450:type_name -> benchmarks.google_message3.Message24316 56, // 98: benchmarks.google_message3.Message24317.field24451:type_name -> benchmarks.google_message3.UnusedEmptyMessage 56, // 99: benchmarks.google_message3.Message24317.field24452:type_name -> benchmarks.google_message3.UnusedEmptyMessage 105, // 100: benchmarks.google_message3.Message33958.Message33959.field33987:type_name -> benchmarks.google_message3.Message0 106, // 101: benchmarks.google_message3.Message13083.Message13084.field13110:type_name -> benchmarks.google_message3.Enum13092 105, // 102: benchmarks.google_message3.Message33958.field33981:extendee -> benchmarks.google_message3.Message0 107, // 103: benchmarks.google_message3.Message8454.field8469:extendee -> benchmarks.google_message3.Message8301 108, // 104: benchmarks.google_message3.Message8455.field8474:extendee -> benchmarks.google_message3.Message8302 8, // 105: benchmarks.google_message3.Message33958.field33981:type_name -> benchmarks.google_message3.Message33958 37, // 106: benchmarks.google_message3.Message8454.field8469:type_name -> benchmarks.google_message3.Message8454 39, // 107: benchmarks.google_message3.Message8455.field8474:type_name -> benchmarks.google_message3.Message8455 108, // [108:108] is the sub-list for method output_type 108, // [108:108] is the sub-list for method input_type 105, // [105:108] is the sub-list for extension type_name 102, // [102:105] is the sub-list for extension extendee 0, // [0:102] is the sub-list for field type_name } func init() { file_datasets_google_message3_benchmark_message3_4_proto_init() } func file_datasets_google_message3_benchmark_message3_4_proto_init() { if File_datasets_google_message3_benchmark_message3_4_proto != nil { return } file_datasets_google_message3_benchmark_message3_5_proto_init() file_datasets_google_message3_benchmark_message3_6_proto_init() file_datasets_google_message3_benchmark_message3_7_proto_init() file_datasets_google_message3_benchmark_message3_8_proto_init() if !protoimpl.UnsafeEnabled { file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message24346); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message24401); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message24402); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message24379); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message27358); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message34381); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message34619); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message730); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message33958); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6637); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6643); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6126); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message13083); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message13088); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10391); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message11873); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message35506); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message13151); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message18253); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message16685); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message16816); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message13168); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message13167); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message1374); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message18943); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message18944); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message18856); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3850); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6721); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6742); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6726); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6733); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6723); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6725); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6734); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8184); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8477); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8454); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8476); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8455); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8475); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12559); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12817); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message16480); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message24317); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message33958_Message33959); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message13083_Message13084); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message13083_Message13085); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message13083_Message13086); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message13083_Message13087); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message13088_Message13089); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message18253_Message18254); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message16816_Message16817); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_4_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message16816_Message16818); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_datasets_google_message3_benchmark_message3_4_proto_rawDesc, NumEnums: 0, NumMessages: 54, NumExtensions: 3, NumServices: 0, }, GoTypes: file_datasets_google_message3_benchmark_message3_4_proto_goTypes, DependencyIndexes: file_datasets_google_message3_benchmark_message3_4_proto_depIdxs, MessageInfos: file_datasets_google_message3_benchmark_message3_4_proto_msgTypes, ExtensionInfos: file_datasets_google_message3_benchmark_message3_4_proto_extTypes, }.Build() File_datasets_google_message3_benchmark_message3_4_proto = out.File file_datasets_google_message3_benchmark_message3_4_proto_rawDesc = nil file_datasets_google_message3_benchmark_message3_4_proto_goTypes = nil file_datasets_google_message3_benchmark_message3_4_proto_depIdxs = nil } benchmark_message3_5.pb.go000066400000000000000000007142141411250152500360350ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/datasets/google_message3// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // LINT: ALLOW_GROUPS // Code generated by protoc-gen-go. DO NOT EDIT. // source: datasets/google_message3/benchmark_message3_5.proto package google_message3 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Message24377 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message24377) Reset() { *x = Message24377{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message24377) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message24377) ProtoMessage() {} func (x *Message24377) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message24377.ProtoReflect.Descriptor instead. func (*Message24377) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{0} } type Message24378 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message24378) Reset() { *x = Message24378{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message24378) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message24378) ProtoMessage() {} func (x *Message24378) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message24378.ProtoReflect.Descriptor instead. func (*Message24378) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{1} } type Message24400 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field24674 *int32 `protobuf:"varint,1,opt,name=field24674" json:"field24674,omitempty"` Field24675 *int32 `protobuf:"varint,2,opt,name=field24675" json:"field24675,omitempty"` Field24676 *int32 `protobuf:"varint,3,opt,name=field24676" json:"field24676,omitempty"` Field24677 *int32 `protobuf:"varint,4,opt,name=field24677" json:"field24677,omitempty"` Field24678 *int32 `protobuf:"varint,5,opt,name=field24678" json:"field24678,omitempty"` } func (x *Message24400) Reset() { *x = Message24400{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message24400) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message24400) ProtoMessage() {} func (x *Message24400) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message24400.ProtoReflect.Descriptor instead. func (*Message24400) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{2} } func (x *Message24400) GetField24674() int32 { if x != nil && x.Field24674 != nil { return *x.Field24674 } return 0 } func (x *Message24400) GetField24675() int32 { if x != nil && x.Field24675 != nil { return *x.Field24675 } return 0 } func (x *Message24400) GetField24676() int32 { if x != nil && x.Field24676 != nil { return *x.Field24676 } return 0 } func (x *Message24400) GetField24677() int32 { if x != nil && x.Field24677 != nil { return *x.Field24677 } return 0 } func (x *Message24400) GetField24678() int32 { if x != nil && x.Field24678 != nil { return *x.Field24678 } return 0 } type Message24380 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message24380) Reset() { *x = Message24380{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message24380) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message24380) ProtoMessage() {} func (x *Message24380) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message24380.ProtoReflect.Descriptor instead. func (*Message24380) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{3} } type Message24381 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message24381) Reset() { *x = Message24381{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message24381) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message24381) ProtoMessage() {} func (x *Message24381) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message24381.ProtoReflect.Descriptor instead. func (*Message24381) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{4} } type Message719 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field881 []string `protobuf:"bytes,1,rep,name=field881" json:"field881,omitempty"` Field882 []string `protobuf:"bytes,2,rep,name=field882" json:"field882,omitempty"` Field883 []string `protobuf:"bytes,3,rep,name=field883" json:"field883,omitempty"` Field884 *Enum720 `protobuf:"varint,4,opt,name=field884,enum=benchmarks.google_message3.Enum720" json:"field884,omitempty"` } func (x *Message719) Reset() { *x = Message719{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message719) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message719) ProtoMessage() {} func (x *Message719) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message719.ProtoReflect.Descriptor instead. func (*Message719) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{5} } func (x *Message719) GetField881() []string { if x != nil { return x.Field881 } return nil } func (x *Message719) GetField882() []string { if x != nil { return x.Field882 } return nil } func (x *Message719) GetField883() []string { if x != nil { return x.Field883 } return nil } func (x *Message719) GetField884() Enum720 { if x != nil && x.Field884 != nil { return *x.Field884 } return Enum720_ENUM_VALUE721 } type Message728 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields Field887 *string `protobuf:"bytes,1,req,name=field887" json:"field887,omitempty"` Field888 []string `protobuf:"bytes,2,rep,name=field888" json:"field888,omitempty"` Field889 []*Message703 `protobuf:"bytes,3,rep,name=field889" json:"field889,omitempty"` Field890 []*Message715 `protobuf:"bytes,4,rep,name=field890" json:"field890,omitempty"` Field891 []string `protobuf:"bytes,5,rep,name=field891" json:"field891,omitempty"` Field892 []string `protobuf:"bytes,6,rep,name=field892" json:"field892,omitempty"` Field893 *Message718 `protobuf:"bytes,7,opt,name=field893" json:"field893,omitempty"` Field894 *Message716 `protobuf:"bytes,8,opt,name=field894" json:"field894,omitempty"` Field895 []string `protobuf:"bytes,9,rep,name=field895" json:"field895,omitempty"` } func (x *Message728) Reset() { *x = Message728{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message728) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message728) ProtoMessage() {} func (x *Message728) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message728.ProtoReflect.Descriptor instead. func (*Message728) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{6} } func (x *Message728) GetField887() string { if x != nil && x.Field887 != nil { return *x.Field887 } return "" } func (x *Message728) GetField888() []string { if x != nil { return x.Field888 } return nil } func (x *Message728) GetField889() []*Message703 { if x != nil { return x.Field889 } return nil } func (x *Message728) GetField890() []*Message715 { if x != nil { return x.Field890 } return nil } func (x *Message728) GetField891() []string { if x != nil { return x.Field891 } return nil } func (x *Message728) GetField892() []string { if x != nil { return x.Field892 } return nil } func (x *Message728) GetField893() *Message718 { if x != nil { return x.Field893 } return nil } func (x *Message728) GetField894() *Message716 { if x != nil { return x.Field894 } return nil } func (x *Message728) GetField895() []string { if x != nil { return x.Field895 } return nil } type Message704 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field800 *string `protobuf:"bytes,1,opt,name=field800" json:"field800,omitempty"` Field801 *string `protobuf:"bytes,7,opt,name=field801" json:"field801,omitempty"` Field802 *string `protobuf:"bytes,2,opt,name=field802" json:"field802,omitempty"` Field803 *string `protobuf:"bytes,3,opt,name=field803" json:"field803,omitempty"` Field804 *string `protobuf:"bytes,4,opt,name=field804" json:"field804,omitempty"` Field805 *string `protobuf:"bytes,5,opt,name=field805" json:"field805,omitempty"` Field806 *UnusedEmptyMessage `protobuf:"bytes,6,opt,name=field806" json:"field806,omitempty"` } func (x *Message704) Reset() { *x = Message704{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message704) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message704) ProtoMessage() {} func (x *Message704) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message704.ProtoReflect.Descriptor instead. func (*Message704) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{7} } func (x *Message704) GetField800() string { if x != nil && x.Field800 != nil { return *x.Field800 } return "" } func (x *Message704) GetField801() string { if x != nil && x.Field801 != nil { return *x.Field801 } return "" } func (x *Message704) GetField802() string { if x != nil && x.Field802 != nil { return *x.Field802 } return "" } func (x *Message704) GetField803() string { if x != nil && x.Field803 != nil { return *x.Field803 } return "" } func (x *Message704) GetField804() string { if x != nil && x.Field804 != nil { return *x.Field804 } return "" } func (x *Message704) GetField805() string { if x != nil && x.Field805 != nil { return *x.Field805 } return "" } func (x *Message704) GetField806() *UnusedEmptyMessage { if x != nil { return x.Field806 } return nil } type Message697 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields Field743 *string `protobuf:"bytes,7,opt,name=field743" json:"field743,omitempty"` Field744 []string `protobuf:"bytes,1,rep,name=field744" json:"field744,omitempty"` Field745 []string `protobuf:"bytes,2,rep,name=field745" json:"field745,omitempty"` Field746 []string `protobuf:"bytes,33,rep,name=field746" json:"field746,omitempty"` Field747 []string `protobuf:"bytes,29,rep,name=field747" json:"field747,omitempty"` Field748 []string `protobuf:"bytes,30,rep,name=field748" json:"field748,omitempty"` Field749 []string `protobuf:"bytes,31,rep,name=field749" json:"field749,omitempty"` Field750 []string `protobuf:"bytes,32,rep,name=field750" json:"field750,omitempty"` Field751 []string `protobuf:"bytes,13,rep,name=field751" json:"field751,omitempty"` Field752 []string `protobuf:"bytes,6,rep,name=field752" json:"field752,omitempty"` Field753 []string `protobuf:"bytes,3,rep,name=field753" json:"field753,omitempty"` Field754 []string `protobuf:"bytes,14,rep,name=field754" json:"field754,omitempty"` Field755 []string `protobuf:"bytes,15,rep,name=field755" json:"field755,omitempty"` Field756 []string `protobuf:"bytes,16,rep,name=field756" json:"field756,omitempty"` Field757 []string `protobuf:"bytes,4,rep,name=field757" json:"field757,omitempty"` Field758 []string `protobuf:"bytes,34,rep,name=field758" json:"field758,omitempty"` Field759 []string `protobuf:"bytes,35,rep,name=field759" json:"field759,omitempty"` Field760 []string `protobuf:"bytes,5,rep,name=field760" json:"field760,omitempty"` Field761 []string `protobuf:"bytes,17,rep,name=field761" json:"field761,omitempty"` Field762 []string `protobuf:"bytes,18,rep,name=field762" json:"field762,omitempty"` Field763 []string `protobuf:"bytes,19,rep,name=field763" json:"field763,omitempty"` Field764 *bool `protobuf:"varint,36,opt,name=field764" json:"field764,omitempty"` Field765 []string `protobuf:"bytes,8,rep,name=field765" json:"field765,omitempty"` Field766 []string `protobuf:"bytes,9,rep,name=field766" json:"field766,omitempty"` Field767 *string `protobuf:"bytes,27,opt,name=field767" json:"field767,omitempty"` Field768 *bool `protobuf:"varint,25,opt,name=field768" json:"field768,omitempty"` Field769 *Message700 `protobuf:"bytes,10,opt,name=field769" json:"field769,omitempty"` Field770 *bool `protobuf:"varint,11,opt,name=field770" json:"field770,omitempty"` Field771 *bool `protobuf:"varint,24,opt,name=field771" json:"field771,omitempty"` Field772 []string `protobuf:"bytes,12,rep,name=field772" json:"field772,omitempty"` Field773 []string `protobuf:"bytes,20,rep,name=field773" json:"field773,omitempty"` Field774 []string `protobuf:"bytes,21,rep,name=field774" json:"field774,omitempty"` Field775 []string `protobuf:"bytes,22,rep,name=field775" json:"field775,omitempty"` Field776 []*Message699 `protobuf:"bytes,23,rep,name=field776" json:"field776,omitempty"` Field777 []*Message698 `protobuf:"bytes,37,rep,name=field777" json:"field777,omitempty"` Field778 *int64 `protobuf:"varint,38,opt,name=field778" json:"field778,omitempty"` } func (x *Message697) Reset() { *x = Message697{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message697) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message697) ProtoMessage() {} func (x *Message697) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message697.ProtoReflect.Descriptor instead. func (*Message697) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{8} } func (x *Message697) GetField743() string { if x != nil && x.Field743 != nil { return *x.Field743 } return "" } func (x *Message697) GetField744() []string { if x != nil { return x.Field744 } return nil } func (x *Message697) GetField745() []string { if x != nil { return x.Field745 } return nil } func (x *Message697) GetField746() []string { if x != nil { return x.Field746 } return nil } func (x *Message697) GetField747() []string { if x != nil { return x.Field747 } return nil } func (x *Message697) GetField748() []string { if x != nil { return x.Field748 } return nil } func (x *Message697) GetField749() []string { if x != nil { return x.Field749 } return nil } func (x *Message697) GetField750() []string { if x != nil { return x.Field750 } return nil } func (x *Message697) GetField751() []string { if x != nil { return x.Field751 } return nil } func (x *Message697) GetField752() []string { if x != nil { return x.Field752 } return nil } func (x *Message697) GetField753() []string { if x != nil { return x.Field753 } return nil } func (x *Message697) GetField754() []string { if x != nil { return x.Field754 } return nil } func (x *Message697) GetField755() []string { if x != nil { return x.Field755 } return nil } func (x *Message697) GetField756() []string { if x != nil { return x.Field756 } return nil } func (x *Message697) GetField757() []string { if x != nil { return x.Field757 } return nil } func (x *Message697) GetField758() []string { if x != nil { return x.Field758 } return nil } func (x *Message697) GetField759() []string { if x != nil { return x.Field759 } return nil } func (x *Message697) GetField760() []string { if x != nil { return x.Field760 } return nil } func (x *Message697) GetField761() []string { if x != nil { return x.Field761 } return nil } func (x *Message697) GetField762() []string { if x != nil { return x.Field762 } return nil } func (x *Message697) GetField763() []string { if x != nil { return x.Field763 } return nil } func (x *Message697) GetField764() bool { if x != nil && x.Field764 != nil { return *x.Field764 } return false } func (x *Message697) GetField765() []string { if x != nil { return x.Field765 } return nil } func (x *Message697) GetField766() []string { if x != nil { return x.Field766 } return nil } func (x *Message697) GetField767() string { if x != nil && x.Field767 != nil { return *x.Field767 } return "" } func (x *Message697) GetField768() bool { if x != nil && x.Field768 != nil { return *x.Field768 } return false } func (x *Message697) GetField769() *Message700 { if x != nil { return x.Field769 } return nil } func (x *Message697) GetField770() bool { if x != nil && x.Field770 != nil { return *x.Field770 } return false } func (x *Message697) GetField771() bool { if x != nil && x.Field771 != nil { return *x.Field771 } return false } func (x *Message697) GetField772() []string { if x != nil { return x.Field772 } return nil } func (x *Message697) GetField773() []string { if x != nil { return x.Field773 } return nil } func (x *Message697) GetField774() []string { if x != nil { return x.Field774 } return nil } func (x *Message697) GetField775() []string { if x != nil { return x.Field775 } return nil } func (x *Message697) GetField776() []*Message699 { if x != nil { return x.Field776 } return nil } func (x *Message697) GetField777() []*Message698 { if x != nil { return x.Field777 } return nil } func (x *Message697) GetField778() int64 { if x != nil && x.Field778 != nil { return *x.Field778 } return 0 } type Message0 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields } func (x *Message0) Reset() { *x = Message0{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message0) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message0) ProtoMessage() {} func (x *Message0) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message0.ProtoReflect.Descriptor instead. func (*Message0) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{9} } type Message6578 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6632 *Enum6579 `protobuf:"varint,1,opt,name=field6632,enum=benchmarks.google_message3.Enum6579" json:"field6632,omitempty"` Field6633 *Enum6588 `protobuf:"varint,2,opt,name=field6633,enum=benchmarks.google_message3.Enum6588" json:"field6633,omitempty"` } func (x *Message6578) Reset() { *x = Message6578{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6578) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6578) ProtoMessage() {} func (x *Message6578) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6578.ProtoReflect.Descriptor instead. func (*Message6578) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{10} } func (x *Message6578) GetField6632() Enum6579 { if x != nil && x.Field6632 != nil { return *x.Field6632 } return Enum6579_ENUM_VALUE6580 } func (x *Message6578) GetField6633() Enum6588 { if x != nil && x.Field6633 != nil { return *x.Field6633 } return Enum6588_ENUM_VALUE6589 } type Message6024 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6048 *Enum6025 `protobuf:"varint,1,opt,name=field6048,enum=benchmarks.google_message3.Enum6025" json:"field6048,omitempty"` Field6049 *string `protobuf:"bytes,2,opt,name=field6049" json:"field6049,omitempty"` Field6050 *UnusedEmptyMessage `protobuf:"bytes,3,opt,name=field6050" json:"field6050,omitempty"` } func (x *Message6024) Reset() { *x = Message6024{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6024) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6024) ProtoMessage() {} func (x *Message6024) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6024.ProtoReflect.Descriptor instead. func (*Message6024) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{11} } func (x *Message6024) GetField6048() Enum6025 { if x != nil && x.Field6048 != nil { return *x.Field6048 } return Enum6025_ENUM_VALUE6026 } func (x *Message6024) GetField6049() string { if x != nil && x.Field6049 != nil { return *x.Field6049 } return "" } func (x *Message6024) GetField6050() *UnusedEmptyMessage { if x != nil { return x.Field6050 } return nil } type Message6052 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6084 *string `protobuf:"bytes,1,req,name=field6084" json:"field6084,omitempty"` Field6085 []byte `protobuf:"bytes,2,req,name=field6085" json:"field6085,omitempty"` } func (x *Message6052) Reset() { *x = Message6052{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6052) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6052) ProtoMessage() {} func (x *Message6052) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6052.ProtoReflect.Descriptor instead. func (*Message6052) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{12} } func (x *Message6052) GetField6084() string { if x != nil && x.Field6084 != nil { return *x.Field6084 } return "" } func (x *Message6052) GetField6085() []byte { if x != nil { return x.Field6085 } return nil } type Message6054 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6089 *string `protobuf:"bytes,1,req,name=field6089" json:"field6089,omitempty"` Field6090 *string `protobuf:"bytes,2,opt,name=field6090" json:"field6090,omitempty"` } func (x *Message6054) Reset() { *x = Message6054{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6054) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6054) ProtoMessage() {} func (x *Message6054) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6054.ProtoReflect.Descriptor instead. func (*Message6054) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{13} } func (x *Message6054) GetField6089() string { if x != nil && x.Field6089 != nil { return *x.Field6089 } return "" } func (x *Message6054) GetField6090() string { if x != nil && x.Field6090 != nil { return *x.Field6090 } return "" } type Message10573 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields Field10580 []*Message10576 `protobuf:"bytes,1,rep,name=field10580" json:"field10580,omitempty"` Field10581 *string `protobuf:"bytes,2,opt,name=field10581" json:"field10581,omitempty"` } func (x *Message10573) Reset() { *x = Message10573{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10573) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10573) ProtoMessage() {} func (x *Message10573) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10573.ProtoReflect.Descriptor instead. func (*Message10573) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{14} } func (x *Message10573) GetField10580() []*Message10576 { if x != nil { return x.Field10580 } return nil } func (x *Message10573) GetField10581() string { if x != nil && x.Field10581 != nil { return *x.Field10581 } return "" } type Message10824 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field10825 *string `protobuf:"bytes,1,req,name=field10825" json:"field10825,omitempty"` Field10826 *int32 `protobuf:"varint,2,opt,name=field10826" json:"field10826,omitempty"` } func (x *Message10824) Reset() { *x = Message10824{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10824) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10824) ProtoMessage() {} func (x *Message10824) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10824.ProtoReflect.Descriptor instead. func (*Message10824) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{15} } func (x *Message10824) GetField10825() string { if x != nil && x.Field10825 != nil { return *x.Field10825 } return "" } func (x *Message10824) GetField10826() int32 { if x != nil && x.Field10826 != nil { return *x.Field10826 } return 0 } type Message10582 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field10583 *bool `protobuf:"varint,1,req,name=field10583" json:"field10583,omitempty"` Field10584 *float64 `protobuf:"fixed64,2,req,name=field10584" json:"field10584,omitempty"` Field10585 *bool `protobuf:"varint,3,opt,name=field10585" json:"field10585,omitempty"` Field10586 *float64 `protobuf:"fixed64,4,opt,name=field10586" json:"field10586,omitempty"` Field10587 *float64 `protobuf:"fixed64,5,opt,name=field10587" json:"field10587,omitempty"` Field10588 *bool `protobuf:"varint,6,opt,name=field10588" json:"field10588,omitempty"` } func (x *Message10582) Reset() { *x = Message10582{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10582) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10582) ProtoMessage() {} func (x *Message10582) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10582.ProtoReflect.Descriptor instead. func (*Message10582) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{16} } func (x *Message10582) GetField10583() bool { if x != nil && x.Field10583 != nil { return *x.Field10583 } return false } func (x *Message10582) GetField10584() float64 { if x != nil && x.Field10584 != nil { return *x.Field10584 } return 0 } func (x *Message10582) GetField10585() bool { if x != nil && x.Field10585 != nil { return *x.Field10585 } return false } func (x *Message10582) GetField10586() float64 { if x != nil && x.Field10586 != nil { return *x.Field10586 } return 0 } func (x *Message10582) GetField10587() float64 { if x != nil && x.Field10587 != nil { return *x.Field10587 } return 0 } func (x *Message10582) GetField10588() bool { if x != nil && x.Field10588 != nil { return *x.Field10588 } return false } type Message10155 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields Field10195 *int32 `protobuf:"varint,1,req,name=field10195" json:"field10195,omitempty"` Field10196 *int32 `protobuf:"varint,2,req,name=field10196" json:"field10196,omitempty"` Field10197 *Enum10157 `protobuf:"varint,59,opt,name=field10197,enum=benchmarks.google_message3.Enum10157" json:"field10197,omitempty"` Field10198 *int32 `protobuf:"varint,18,opt,name=field10198" json:"field10198,omitempty"` Field10199 *int32 `protobuf:"varint,19,opt,name=field10199" json:"field10199,omitempty"` Field10200 *int32 `protobuf:"varint,21,opt,name=field10200" json:"field10200,omitempty"` Message10156 []*Message10155_Message10156 `protobuf:"group,50,rep,name=Message10156,json=message10156" json:"message10156,omitempty"` Field10202 *int32 `protobuf:"varint,3,opt,name=field10202" json:"field10202,omitempty"` Field10203 *int32 `protobuf:"varint,4,opt,name=field10203" json:"field10203,omitempty"` Field10204 *int32 `protobuf:"varint,5,opt,name=field10204" json:"field10204,omitempty"` Field10205 *bool `protobuf:"varint,84,opt,name=field10205" json:"field10205,omitempty"` Field10206 *bool `protobuf:"varint,33,opt,name=field10206" json:"field10206,omitempty"` Field10207 *int32 `protobuf:"varint,75,opt,name=field10207" json:"field10207,omitempty"` Field10208 *float32 `protobuf:"fixed32,26,opt,name=field10208" json:"field10208,omitempty"` Field10209 *int32 `protobuf:"varint,27,opt,name=field10209" json:"field10209,omitempty"` Field10210 *int32 `protobuf:"varint,49,opt,name=field10210" json:"field10210,omitempty"` Field10211 *int32 `protobuf:"varint,10,opt,name=field10211" json:"field10211,omitempty"` Field10212 *float32 `protobuf:"fixed32,78,opt,name=field10212" json:"field10212,omitempty"` Field10213 *Message9151 `protobuf:"bytes,91,opt,name=field10213" json:"field10213,omitempty"` Field10214 *int32 `protobuf:"varint,11,opt,name=field10214" json:"field10214,omitempty"` Field10215 *int32 `protobuf:"varint,12,opt,name=field10215" json:"field10215,omitempty"` Field10216 *float32 `protobuf:"fixed32,41,opt,name=field10216" json:"field10216,omitempty"` Field10217 *Message10154 `protobuf:"bytes,61,opt,name=field10217" json:"field10217,omitempty"` Field10218 *int32 `protobuf:"varint,23,opt,name=field10218" json:"field10218,omitempty"` Field10219 []byte `protobuf:"bytes,24,opt,name=field10219" json:"field10219,omitempty"` Field10220 *int32 `protobuf:"varint,65,opt,name=field10220" json:"field10220,omitempty"` Field10221 [][]byte `protobuf:"bytes,66,rep,name=field10221" json:"field10221,omitempty"` Field10222 *int32 `protobuf:"varint,70,opt,name=field10222" json:"field10222,omitempty"` Field10223 []byte `protobuf:"bytes,71,opt,name=field10223" json:"field10223,omitempty"` Field10224 []uint64 `protobuf:"fixed64,73,rep,name=field10224" json:"field10224,omitempty"` Field10225 *float32 `protobuf:"fixed32,29,opt,name=field10225" json:"field10225,omitempty"` Field10226 *int32 `protobuf:"varint,30,opt,name=field10226" json:"field10226,omitempty"` Field10227 *float32 `protobuf:"fixed32,31,opt,name=field10227" json:"field10227,omitempty"` Field10228 *int32 `protobuf:"varint,32,opt,name=field10228" json:"field10228,omitempty"` Field10229 *float32 `protobuf:"fixed32,34,opt,name=field10229" json:"field10229,omitempty"` Field10230 *int32 `protobuf:"varint,35,opt,name=field10230" json:"field10230,omitempty"` Field10231 *string `protobuf:"bytes,22,opt,name=field10231" json:"field10231,omitempty"` Field10232 *uint64 `protobuf:"fixed64,13,opt,name=field10232" json:"field10232,omitempty"` Field10233 *uint64 `protobuf:"fixed64,20,opt,name=field10233" json:"field10233,omitempty"` Field10234 *bool `protobuf:"varint,79,opt,name=field10234" json:"field10234,omitempty"` Field10235 []Enum10167 `protobuf:"varint,80,rep,packed,name=field10235,enum=benchmarks.google_message3.Enum10167" json:"field10235,omitempty"` Field10236 *int32 `protobuf:"varint,14,opt,name=field10236" json:"field10236,omitempty"` Field10237 *int32 `protobuf:"varint,15,opt,name=field10237" json:"field10237,omitempty"` Field10238 *int32 `protobuf:"varint,28,opt,name=field10238" json:"field10238,omitempty"` Field10239 []string `protobuf:"bytes,16,rep,name=field10239" json:"field10239,omitempty"` Field10240 *Message9182 `protobuf:"bytes,17,opt,name=field10240" json:"field10240,omitempty"` Field10241 *int32 `protobuf:"varint,63,opt,name=field10241" json:"field10241,omitempty"` Field10242 *float32 `protobuf:"fixed32,64,opt,name=field10242" json:"field10242,omitempty"` Field10243 *float32 `protobuf:"fixed32,37,opt,name=field10243" json:"field10243,omitempty"` Field10244 []float32 `protobuf:"fixed32,43,rep,name=field10244" json:"field10244,omitempty"` Field10245 *int32 `protobuf:"varint,44,opt,name=field10245" json:"field10245,omitempty"` Field10246 *Message9242 `protobuf:"bytes,45,opt,name=field10246" json:"field10246,omitempty"` Field10247 *UnusedEmptyMessage `protobuf:"bytes,46,opt,name=field10247" json:"field10247,omitempty"` Field10248 *UnusedEmptyMessage `protobuf:"bytes,62,opt,name=field10248" json:"field10248,omitempty"` Field10249 *Message8944 `protobuf:"bytes,48,opt,name=field10249" json:"field10249,omitempty"` Field10250 *UnusedEmptyMessage `protobuf:"bytes,87,opt,name=field10250" json:"field10250,omitempty"` Field10251 *int32 `protobuf:"varint,58,opt,name=field10251" json:"field10251,omitempty"` Field10252 *int32 `protobuf:"varint,92,opt,name=field10252" json:"field10252,omitempty"` Field10253 *Message9123 `protobuf:"bytes,93,opt,name=field10253" json:"field10253,omitempty"` Field10254 *Message9160 `protobuf:"bytes,60,opt,name=field10254" json:"field10254,omitempty"` Field10255 *Message8890 `protobuf:"bytes,67,opt,name=field10255" json:"field10255,omitempty"` Field10256 *string `protobuf:"bytes,69,opt,name=field10256" json:"field10256,omitempty"` Field10257 *int64 `protobuf:"varint,74,opt,name=field10257" json:"field10257,omitempty"` Field10258 *float32 `protobuf:"fixed32,82,opt,name=field10258" json:"field10258,omitempty"` Field10259 *float32 `protobuf:"fixed32,85,opt,name=field10259" json:"field10259,omitempty"` Field10260 *float32 `protobuf:"fixed32,86,opt,name=field10260" json:"field10260,omitempty"` Field10261 *int64 `protobuf:"varint,83,opt,name=field10261" json:"field10261,omitempty"` Field10262 *string `protobuf:"bytes,77,opt,name=field10262" json:"field10262,omitempty"` Field10263 *bool `protobuf:"varint,88,opt,name=field10263" json:"field10263,omitempty"` Field10264 []*Message9628 `protobuf:"bytes,94,rep,name=field10264" json:"field10264,omitempty"` } func (x *Message10155) Reset() { *x = Message10155{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10155) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10155) ProtoMessage() {} func (x *Message10155) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10155.ProtoReflect.Descriptor instead. func (*Message10155) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{17} } func (x *Message10155) GetField10195() int32 { if x != nil && x.Field10195 != nil { return *x.Field10195 } return 0 } func (x *Message10155) GetField10196() int32 { if x != nil && x.Field10196 != nil { return *x.Field10196 } return 0 } func (x *Message10155) GetField10197() Enum10157 { if x != nil && x.Field10197 != nil { return *x.Field10197 } return Enum10157_ENUM_VALUE10158 } func (x *Message10155) GetField10198() int32 { if x != nil && x.Field10198 != nil { return *x.Field10198 } return 0 } func (x *Message10155) GetField10199() int32 { if x != nil && x.Field10199 != nil { return *x.Field10199 } return 0 } func (x *Message10155) GetField10200() int32 { if x != nil && x.Field10200 != nil { return *x.Field10200 } return 0 } func (x *Message10155) GetMessage10156() []*Message10155_Message10156 { if x != nil { return x.Message10156 } return nil } func (x *Message10155) GetField10202() int32 { if x != nil && x.Field10202 != nil { return *x.Field10202 } return 0 } func (x *Message10155) GetField10203() int32 { if x != nil && x.Field10203 != nil { return *x.Field10203 } return 0 } func (x *Message10155) GetField10204() int32 { if x != nil && x.Field10204 != nil { return *x.Field10204 } return 0 } func (x *Message10155) GetField10205() bool { if x != nil && x.Field10205 != nil { return *x.Field10205 } return false } func (x *Message10155) GetField10206() bool { if x != nil && x.Field10206 != nil { return *x.Field10206 } return false } func (x *Message10155) GetField10207() int32 { if x != nil && x.Field10207 != nil { return *x.Field10207 } return 0 } func (x *Message10155) GetField10208() float32 { if x != nil && x.Field10208 != nil { return *x.Field10208 } return 0 } func (x *Message10155) GetField10209() int32 { if x != nil && x.Field10209 != nil { return *x.Field10209 } return 0 } func (x *Message10155) GetField10210() int32 { if x != nil && x.Field10210 != nil { return *x.Field10210 } return 0 } func (x *Message10155) GetField10211() int32 { if x != nil && x.Field10211 != nil { return *x.Field10211 } return 0 } func (x *Message10155) GetField10212() float32 { if x != nil && x.Field10212 != nil { return *x.Field10212 } return 0 } func (x *Message10155) GetField10213() *Message9151 { if x != nil { return x.Field10213 } return nil } func (x *Message10155) GetField10214() int32 { if x != nil && x.Field10214 != nil { return *x.Field10214 } return 0 } func (x *Message10155) GetField10215() int32 { if x != nil && x.Field10215 != nil { return *x.Field10215 } return 0 } func (x *Message10155) GetField10216() float32 { if x != nil && x.Field10216 != nil { return *x.Field10216 } return 0 } func (x *Message10155) GetField10217() *Message10154 { if x != nil { return x.Field10217 } return nil } func (x *Message10155) GetField10218() int32 { if x != nil && x.Field10218 != nil { return *x.Field10218 } return 0 } func (x *Message10155) GetField10219() []byte { if x != nil { return x.Field10219 } return nil } func (x *Message10155) GetField10220() int32 { if x != nil && x.Field10220 != nil { return *x.Field10220 } return 0 } func (x *Message10155) GetField10221() [][]byte { if x != nil { return x.Field10221 } return nil } func (x *Message10155) GetField10222() int32 { if x != nil && x.Field10222 != nil { return *x.Field10222 } return 0 } func (x *Message10155) GetField10223() []byte { if x != nil { return x.Field10223 } return nil } func (x *Message10155) GetField10224() []uint64 { if x != nil { return x.Field10224 } return nil } func (x *Message10155) GetField10225() float32 { if x != nil && x.Field10225 != nil { return *x.Field10225 } return 0 } func (x *Message10155) GetField10226() int32 { if x != nil && x.Field10226 != nil { return *x.Field10226 } return 0 } func (x *Message10155) GetField10227() float32 { if x != nil && x.Field10227 != nil { return *x.Field10227 } return 0 } func (x *Message10155) GetField10228() int32 { if x != nil && x.Field10228 != nil { return *x.Field10228 } return 0 } func (x *Message10155) GetField10229() float32 { if x != nil && x.Field10229 != nil { return *x.Field10229 } return 0 } func (x *Message10155) GetField10230() int32 { if x != nil && x.Field10230 != nil { return *x.Field10230 } return 0 } func (x *Message10155) GetField10231() string { if x != nil && x.Field10231 != nil { return *x.Field10231 } return "" } func (x *Message10155) GetField10232() uint64 { if x != nil && x.Field10232 != nil { return *x.Field10232 } return 0 } func (x *Message10155) GetField10233() uint64 { if x != nil && x.Field10233 != nil { return *x.Field10233 } return 0 } func (x *Message10155) GetField10234() bool { if x != nil && x.Field10234 != nil { return *x.Field10234 } return false } func (x *Message10155) GetField10235() []Enum10167 { if x != nil { return x.Field10235 } return nil } func (x *Message10155) GetField10236() int32 { if x != nil && x.Field10236 != nil { return *x.Field10236 } return 0 } func (x *Message10155) GetField10237() int32 { if x != nil && x.Field10237 != nil { return *x.Field10237 } return 0 } func (x *Message10155) GetField10238() int32 { if x != nil && x.Field10238 != nil { return *x.Field10238 } return 0 } func (x *Message10155) GetField10239() []string { if x != nil { return x.Field10239 } return nil } func (x *Message10155) GetField10240() *Message9182 { if x != nil { return x.Field10240 } return nil } func (x *Message10155) GetField10241() int32 { if x != nil && x.Field10241 != nil { return *x.Field10241 } return 0 } func (x *Message10155) GetField10242() float32 { if x != nil && x.Field10242 != nil { return *x.Field10242 } return 0 } func (x *Message10155) GetField10243() float32 { if x != nil && x.Field10243 != nil { return *x.Field10243 } return 0 } func (x *Message10155) GetField10244() []float32 { if x != nil { return x.Field10244 } return nil } func (x *Message10155) GetField10245() int32 { if x != nil && x.Field10245 != nil { return *x.Field10245 } return 0 } func (x *Message10155) GetField10246() *Message9242 { if x != nil { return x.Field10246 } return nil } func (x *Message10155) GetField10247() *UnusedEmptyMessage { if x != nil { return x.Field10247 } return nil } func (x *Message10155) GetField10248() *UnusedEmptyMessage { if x != nil { return x.Field10248 } return nil } func (x *Message10155) GetField10249() *Message8944 { if x != nil { return x.Field10249 } return nil } func (x *Message10155) GetField10250() *UnusedEmptyMessage { if x != nil { return x.Field10250 } return nil } func (x *Message10155) GetField10251() int32 { if x != nil && x.Field10251 != nil { return *x.Field10251 } return 0 } func (x *Message10155) GetField10252() int32 { if x != nil && x.Field10252 != nil { return *x.Field10252 } return 0 } func (x *Message10155) GetField10253() *Message9123 { if x != nil { return x.Field10253 } return nil } func (x *Message10155) GetField10254() *Message9160 { if x != nil { return x.Field10254 } return nil } func (x *Message10155) GetField10255() *Message8890 { if x != nil { return x.Field10255 } return nil } func (x *Message10155) GetField10256() string { if x != nil && x.Field10256 != nil { return *x.Field10256 } return "" } func (x *Message10155) GetField10257() int64 { if x != nil && x.Field10257 != nil { return *x.Field10257 } return 0 } func (x *Message10155) GetField10258() float32 { if x != nil && x.Field10258 != nil { return *x.Field10258 } return 0 } func (x *Message10155) GetField10259() float32 { if x != nil && x.Field10259 != nil { return *x.Field10259 } return 0 } func (x *Message10155) GetField10260() float32 { if x != nil && x.Field10260 != nil { return *x.Field10260 } return 0 } func (x *Message10155) GetField10261() int64 { if x != nil && x.Field10261 != nil { return *x.Field10261 } return 0 } func (x *Message10155) GetField10262() string { if x != nil && x.Field10262 != nil { return *x.Field10262 } return "" } func (x *Message10155) GetField10263() bool { if x != nil && x.Field10263 != nil { return *x.Field10263 } return false } func (x *Message10155) GetField10264() []*Message9628 { if x != nil { return x.Field10264 } return nil } type Message11866 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field11868 *Message11014 `protobuf:"bytes,1,req,name=field11868" json:"field11868,omitempty"` Field11869 *bool `protobuf:"varint,2,opt,name=field11869" json:"field11869,omitempty"` Field11870 *float64 `protobuf:"fixed64,3,opt,name=field11870" json:"field11870,omitempty"` Field11871 *float64 `protobuf:"fixed64,4,opt,name=field11871" json:"field11871,omitempty"` Field11872 []*UnusedEmptyMessage `protobuf:"bytes,5,rep,name=field11872" json:"field11872,omitempty"` } func (x *Message11866) Reset() { *x = Message11866{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message11866) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message11866) ProtoMessage() {} func (x *Message11866) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message11866.ProtoReflect.Descriptor instead. func (*Message11866) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{18} } func (x *Message11866) GetField11868() *Message11014 { if x != nil { return x.Field11868 } return nil } func (x *Message11866) GetField11869() bool { if x != nil && x.Field11869 != nil { return *x.Field11869 } return false } func (x *Message11866) GetField11870() float64 { if x != nil && x.Field11870 != nil { return *x.Field11870 } return 0 } func (x *Message11866) GetField11871() float64 { if x != nil && x.Field11871 != nil { return *x.Field11871 } return 0 } func (x *Message11866) GetField11872() []*UnusedEmptyMessage { if x != nil { return x.Field11872 } return nil } type Message10469 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field10473 *string `protobuf:"bytes,1,opt,name=field10473" json:"field10473,omitempty"` Field10474 *float32 `protobuf:"fixed32,2,opt,name=field10474" json:"field10474,omitempty"` Field10475 *int32 `protobuf:"varint,3,opt,name=field10475" json:"field10475,omitempty"` Field10476 *int32 `protobuf:"varint,4,opt,name=field10476" json:"field10476,omitempty"` Field10477 *int32 `protobuf:"varint,5,opt,name=field10477" json:"field10477,omitempty"` Field10478 *bool `protobuf:"varint,6,opt,name=field10478" json:"field10478,omitempty"` Field10479 *bool `protobuf:"varint,7,opt,name=field10479" json:"field10479,omitempty"` Field10480 *int32 `protobuf:"varint,8,opt,name=field10480" json:"field10480,omitempty"` Field10481 *float32 `protobuf:"fixed32,9,opt,name=field10481" json:"field10481,omitempty"` } func (x *Message10469) Reset() { *x = Message10469{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10469) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10469) ProtoMessage() {} func (x *Message10469) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10469.ProtoReflect.Descriptor instead. func (*Message10469) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{19} } func (x *Message10469) GetField10473() string { if x != nil && x.Field10473 != nil { return *x.Field10473 } return "" } func (x *Message10469) GetField10474() float32 { if x != nil && x.Field10474 != nil { return *x.Field10474 } return 0 } func (x *Message10469) GetField10475() int32 { if x != nil && x.Field10475 != nil { return *x.Field10475 } return 0 } func (x *Message10469) GetField10476() int32 { if x != nil && x.Field10476 != nil { return *x.Field10476 } return 0 } func (x *Message10469) GetField10477() int32 { if x != nil && x.Field10477 != nil { return *x.Field10477 } return 0 } func (x *Message10469) GetField10478() bool { if x != nil && x.Field10478 != nil { return *x.Field10478 } return false } func (x *Message10469) GetField10479() bool { if x != nil && x.Field10479 != nil { return *x.Field10479 } return false } func (x *Message10469) GetField10480() int32 { if x != nil && x.Field10480 != nil { return *x.Field10480 } return 0 } func (x *Message10469) GetField10481() float32 { if x != nil && x.Field10481 != nil { return *x.Field10481 } return 0 } type Message10818 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field10819 *Message10800 `protobuf:"bytes,1,opt,name=field10819" json:"field10819,omitempty"` Field10820 *Message10801 `protobuf:"bytes,2,opt,name=field10820" json:"field10820,omitempty"` } func (x *Message10818) Reset() { *x = Message10818{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10818) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10818) ProtoMessage() {} func (x *Message10818) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10818.ProtoReflect.Descriptor instead. func (*Message10818) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{20} } func (x *Message10818) GetField10819() *Message10800 { if x != nil { return x.Field10819 } return nil } func (x *Message10818) GetField10820() *Message10801 { if x != nil { return x.Field10820 } return nil } type Message10773 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field10774 *bool `protobuf:"varint,9,opt,name=field10774" json:"field10774,omitempty"` Field10775 *bool `protobuf:"varint,1,opt,name=field10775" json:"field10775,omitempty"` Field10776 *bool `protobuf:"varint,23,opt,name=field10776" json:"field10776,omitempty"` Field10777 *bool `protobuf:"varint,2,opt,name=field10777" json:"field10777,omitempty"` Field10778 *bool `protobuf:"varint,3,opt,name=field10778" json:"field10778,omitempty"` Field10779 *int32 `protobuf:"varint,4,opt,name=field10779" json:"field10779,omitempty"` Field10780 *int32 `protobuf:"varint,5,opt,name=field10780" json:"field10780,omitempty"` Field10781 *int32 `protobuf:"varint,6,opt,name=field10781" json:"field10781,omitempty"` Field10782 *int32 `protobuf:"varint,7,opt,name=field10782" json:"field10782,omitempty"` Field10783 *int32 `protobuf:"varint,8,opt,name=field10783" json:"field10783,omitempty"` Field10784 *int32 `protobuf:"varint,10,opt,name=field10784" json:"field10784,omitempty"` Field10785 *Message10749 `protobuf:"bytes,11,opt,name=field10785" json:"field10785,omitempty"` Field10786 []*UnusedEmptyMessage `protobuf:"bytes,12,rep,name=field10786" json:"field10786,omitempty"` Field10787 *bool `protobuf:"varint,13,opt,name=field10787" json:"field10787,omitempty"` Field10788 *bool `protobuf:"varint,15,opt,name=field10788" json:"field10788,omitempty"` Field10789 *bool `protobuf:"varint,16,opt,name=field10789" json:"field10789,omitempty"` Field10790 *int32 `protobuf:"varint,17,opt,name=field10790" json:"field10790,omitempty"` Field10791 *int32 `protobuf:"varint,18,opt,name=field10791" json:"field10791,omitempty"` Field10792 *bool `protobuf:"varint,19,opt,name=field10792" json:"field10792,omitempty"` Field10793 *bool `protobuf:"varint,20,opt,name=field10793" json:"field10793,omitempty"` Field10794 *bool `protobuf:"varint,21,opt,name=field10794" json:"field10794,omitempty"` Field10795 *UnusedEnum `protobuf:"varint,14,opt,name=field10795,enum=benchmarks.google_message3.UnusedEnum" json:"field10795,omitempty"` Field10796 *UnusedEnum `protobuf:"varint,22,opt,name=field10796,enum=benchmarks.google_message3.UnusedEnum" json:"field10796,omitempty"` } func (x *Message10773) Reset() { *x = Message10773{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10773) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10773) ProtoMessage() {} func (x *Message10773) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10773.ProtoReflect.Descriptor instead. func (*Message10773) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{21} } func (x *Message10773) GetField10774() bool { if x != nil && x.Field10774 != nil { return *x.Field10774 } return false } func (x *Message10773) GetField10775() bool { if x != nil && x.Field10775 != nil { return *x.Field10775 } return false } func (x *Message10773) GetField10776() bool { if x != nil && x.Field10776 != nil { return *x.Field10776 } return false } func (x *Message10773) GetField10777() bool { if x != nil && x.Field10777 != nil { return *x.Field10777 } return false } func (x *Message10773) GetField10778() bool { if x != nil && x.Field10778 != nil { return *x.Field10778 } return false } func (x *Message10773) GetField10779() int32 { if x != nil && x.Field10779 != nil { return *x.Field10779 } return 0 } func (x *Message10773) GetField10780() int32 { if x != nil && x.Field10780 != nil { return *x.Field10780 } return 0 } func (x *Message10773) GetField10781() int32 { if x != nil && x.Field10781 != nil { return *x.Field10781 } return 0 } func (x *Message10773) GetField10782() int32 { if x != nil && x.Field10782 != nil { return *x.Field10782 } return 0 } func (x *Message10773) GetField10783() int32 { if x != nil && x.Field10783 != nil { return *x.Field10783 } return 0 } func (x *Message10773) GetField10784() int32 { if x != nil && x.Field10784 != nil { return *x.Field10784 } return 0 } func (x *Message10773) GetField10785() *Message10749 { if x != nil { return x.Field10785 } return nil } func (x *Message10773) GetField10786() []*UnusedEmptyMessage { if x != nil { return x.Field10786 } return nil } func (x *Message10773) GetField10787() bool { if x != nil && x.Field10787 != nil { return *x.Field10787 } return false } func (x *Message10773) GetField10788() bool { if x != nil && x.Field10788 != nil { return *x.Field10788 } return false } func (x *Message10773) GetField10789() bool { if x != nil && x.Field10789 != nil { return *x.Field10789 } return false } func (x *Message10773) GetField10790() int32 { if x != nil && x.Field10790 != nil { return *x.Field10790 } return 0 } func (x *Message10773) GetField10791() int32 { if x != nil && x.Field10791 != nil { return *x.Field10791 } return 0 } func (x *Message10773) GetField10792() bool { if x != nil && x.Field10792 != nil { return *x.Field10792 } return false } func (x *Message10773) GetField10793() bool { if x != nil && x.Field10793 != nil { return *x.Field10793 } return false } func (x *Message10773) GetField10794() bool { if x != nil && x.Field10794 != nil { return *x.Field10794 } return false } func (x *Message10773) GetField10795() UnusedEnum { if x != nil && x.Field10795 != nil { return *x.Field10795 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message10773) GetField10796() UnusedEnum { if x != nil && x.Field10796 != nil { return *x.Field10796 } return UnusedEnum_UNUSED_ENUM_VALUE1 } type Message13145 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields Field13155 *Enum13146 `protobuf:"varint,1,req,name=field13155,enum=benchmarks.google_message3.Enum13146" json:"field13155,omitempty"` Field13156 *float32 `protobuf:"fixed32,2,opt,name=field13156" json:"field13156,omitempty"` Field13157 *float32 `protobuf:"fixed32,3,opt,name=field13157" json:"field13157,omitempty"` } func (x *Message13145) Reset() { *x = Message13145{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message13145) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message13145) ProtoMessage() {} func (x *Message13145) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message13145.ProtoReflect.Descriptor instead. func (*Message13145) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{22} } func (x *Message13145) GetField13155() Enum13146 { if x != nil && x.Field13155 != nil { return *x.Field13155 } return Enum13146_ENUM_VALUE13147 } func (x *Message13145) GetField13156() float32 { if x != nil && x.Field13156 != nil { return *x.Field13156 } return 0 } func (x *Message13145) GetField13157() float32 { if x != nil && x.Field13157 != nil { return *x.Field13157 } return 0 } type Message16686 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message16686) Reset() { *x = Message16686{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message16686) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message16686) ProtoMessage() {} func (x *Message16686) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message16686.ProtoReflect.Descriptor instead. func (*Message16686) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{23} } type Message12796 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12800 []uint64 `protobuf:"fixed64,1,rep,name=field12800" json:"field12800,omitempty"` Field12801 *uint64 `protobuf:"varint,2,opt,name=field12801" json:"field12801,omitempty"` } func (x *Message12796) Reset() { *x = Message12796{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12796) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12796) ProtoMessage() {} func (x *Message12796) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12796.ProtoReflect.Descriptor instead. func (*Message12796) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{24} } func (x *Message12796) GetField12800() []uint64 { if x != nil { return x.Field12800 } return nil } func (x *Message12796) GetField12801() uint64 { if x != nil && x.Field12801 != nil { return *x.Field12801 } return 0 } type Message6722 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message6722) Reset() { *x = Message6722{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6722) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6722) ProtoMessage() {} func (x *Message6722) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6722.ProtoReflect.Descriptor instead. func (*Message6722) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{25} } type Message6727 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message6727) Reset() { *x = Message6727{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6727) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6727) ProtoMessage() {} func (x *Message6727) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6727.ProtoReflect.Descriptor instead. func (*Message6727) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{26} } type Message6724 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message6724) Reset() { *x = Message6724{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6724) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6724) ProtoMessage() {} func (x *Message6724) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6724.ProtoReflect.Descriptor instead. func (*Message6724) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{27} } type Message6735 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message6735) Reset() { *x = Message6735{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6735) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6735) ProtoMessage() {} func (x *Message6735) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6735.ProtoReflect.Descriptor instead. func (*Message6735) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{28} } type Message8183 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8226 *string `protobuf:"bytes,1,opt,name=field8226" json:"field8226,omitempty"` Field8227 *string `protobuf:"bytes,2,opt,name=field8227" json:"field8227,omitempty"` } func (x *Message8183) Reset() { *x = Message8183{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8183) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8183) ProtoMessage() {} func (x *Message8183) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8183.ProtoReflect.Descriptor instead. func (*Message8183) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{29} } func (x *Message8183) GetField8226() string { if x != nil && x.Field8226 != nil { return *x.Field8226 } return "" } func (x *Message8183) GetField8227() string { if x != nil && x.Field8227 != nil { return *x.Field8227 } return "" } type Message8301 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields Field8328 *string `protobuf:"bytes,1,opt,name=field8328" json:"field8328,omitempty"` Field8329 *Message7966 `protobuf:"bytes,2,opt,name=field8329" json:"field8329,omitempty"` Field8330 *string `protobuf:"bytes,3,opt,name=field8330" json:"field8330,omitempty"` Field8331 *string `protobuf:"bytes,4,opt,name=field8331" json:"field8331,omitempty"` Field8332 []*Message8290 `protobuf:"bytes,5,rep,name=field8332" json:"field8332,omitempty"` Field8333 *Message7966 `protobuf:"bytes,6,opt,name=field8333" json:"field8333,omitempty"` Field8334 []*Message8298 `protobuf:"bytes,7,rep,name=field8334" json:"field8334,omitempty"` Field8335 *Message8300 `protobuf:"bytes,8,opt,name=field8335" json:"field8335,omitempty"` Field8336 *int64 `protobuf:"varint,9,opt,name=field8336" json:"field8336,omitempty"` Field8337 *UnusedEmptyMessage `protobuf:"bytes,10,opt,name=field8337" json:"field8337,omitempty"` Field8338 *Message7965 `protobuf:"bytes,11,opt,name=field8338" json:"field8338,omitempty"` } func (x *Message8301) Reset() { *x = Message8301{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8301) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8301) ProtoMessage() {} func (x *Message8301) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8301.ProtoReflect.Descriptor instead. func (*Message8301) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{30} } func (x *Message8301) GetField8328() string { if x != nil && x.Field8328 != nil { return *x.Field8328 } return "" } func (x *Message8301) GetField8329() *Message7966 { if x != nil { return x.Field8329 } return nil } func (x *Message8301) GetField8330() string { if x != nil && x.Field8330 != nil { return *x.Field8330 } return "" } func (x *Message8301) GetField8331() string { if x != nil && x.Field8331 != nil { return *x.Field8331 } return "" } func (x *Message8301) GetField8332() []*Message8290 { if x != nil { return x.Field8332 } return nil } func (x *Message8301) GetField8333() *Message7966 { if x != nil { return x.Field8333 } return nil } func (x *Message8301) GetField8334() []*Message8298 { if x != nil { return x.Field8334 } return nil } func (x *Message8301) GetField8335() *Message8300 { if x != nil { return x.Field8335 } return nil } func (x *Message8301) GetField8336() int64 { if x != nil && x.Field8336 != nil { return *x.Field8336 } return 0 } func (x *Message8301) GetField8337() *UnusedEmptyMessage { if x != nil { return x.Field8337 } return nil } func (x *Message8301) GetField8338() *Message7965 { if x != nil { return x.Field8338 } return nil } type Message8456 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message8456) Reset() { *x = Message8456{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8456) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8456) ProtoMessage() {} func (x *Message8456) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8456.ProtoReflect.Descriptor instead. func (*Message8456) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{31} } type Message8302 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields Field8339 *string `protobuf:"bytes,1,opt,name=field8339" json:"field8339,omitempty"` Field8340 *Message7966 `protobuf:"bytes,2,opt,name=field8340" json:"field8340,omitempty"` Field8341 *string `protobuf:"bytes,3,opt,name=field8341" json:"field8341,omitempty"` Field8342 *string `protobuf:"bytes,4,opt,name=field8342" json:"field8342,omitempty"` Field8343 *string `protobuf:"bytes,5,opt,name=field8343" json:"field8343,omitempty"` Field8344 *string `protobuf:"bytes,6,opt,name=field8344" json:"field8344,omitempty"` Field8345 *string `protobuf:"bytes,7,opt,name=field8345" json:"field8345,omitempty"` Field8346 *int64 `protobuf:"varint,8,opt,name=field8346" json:"field8346,omitempty"` Field8347 *int64 `protobuf:"varint,9,opt,name=field8347" json:"field8347,omitempty"` Field8348 []*Message8290 `protobuf:"bytes,10,rep,name=field8348" json:"field8348,omitempty"` Field8349 *string `protobuf:"bytes,11,opt,name=field8349" json:"field8349,omitempty"` Field8350 *UnusedEmptyMessage `protobuf:"bytes,12,opt,name=field8350" json:"field8350,omitempty"` Field8351 *Message8291 `protobuf:"bytes,13,opt,name=field8351" json:"field8351,omitempty"` Field8352 *int64 `protobuf:"varint,14,opt,name=field8352" json:"field8352,omitempty"` Field8353 *Message8296 `protobuf:"bytes,15,opt,name=field8353" json:"field8353,omitempty"` Field8354 *string `protobuf:"bytes,16,opt,name=field8354" json:"field8354,omitempty"` Field8355 *UnusedEmptyMessage `protobuf:"bytes,17,opt,name=field8355" json:"field8355,omitempty"` Field8356 []int32 `protobuf:"varint,18,rep,name=field8356" json:"field8356,omitempty"` Field8357 []int32 `protobuf:"varint,19,rep,name=field8357" json:"field8357,omitempty"` Field8358 []*UnusedEmptyMessage `protobuf:"bytes,20,rep,name=field8358" json:"field8358,omitempty"` Field8359 *Message7965 `protobuf:"bytes,21,opt,name=field8359" json:"field8359,omitempty"` } func (x *Message8302) Reset() { *x = Message8302{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8302) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8302) ProtoMessage() {} func (x *Message8302) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8302.ProtoReflect.Descriptor instead. func (*Message8302) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{32} } func (x *Message8302) GetField8339() string { if x != nil && x.Field8339 != nil { return *x.Field8339 } return "" } func (x *Message8302) GetField8340() *Message7966 { if x != nil { return x.Field8340 } return nil } func (x *Message8302) GetField8341() string { if x != nil && x.Field8341 != nil { return *x.Field8341 } return "" } func (x *Message8302) GetField8342() string { if x != nil && x.Field8342 != nil { return *x.Field8342 } return "" } func (x *Message8302) GetField8343() string { if x != nil && x.Field8343 != nil { return *x.Field8343 } return "" } func (x *Message8302) GetField8344() string { if x != nil && x.Field8344 != nil { return *x.Field8344 } return "" } func (x *Message8302) GetField8345() string { if x != nil && x.Field8345 != nil { return *x.Field8345 } return "" } func (x *Message8302) GetField8346() int64 { if x != nil && x.Field8346 != nil { return *x.Field8346 } return 0 } func (x *Message8302) GetField8347() int64 { if x != nil && x.Field8347 != nil { return *x.Field8347 } return 0 } func (x *Message8302) GetField8348() []*Message8290 { if x != nil { return x.Field8348 } return nil } func (x *Message8302) GetField8349() string { if x != nil && x.Field8349 != nil { return *x.Field8349 } return "" } func (x *Message8302) GetField8350() *UnusedEmptyMessage { if x != nil { return x.Field8350 } return nil } func (x *Message8302) GetField8351() *Message8291 { if x != nil { return x.Field8351 } return nil } func (x *Message8302) GetField8352() int64 { if x != nil && x.Field8352 != nil { return *x.Field8352 } return 0 } func (x *Message8302) GetField8353() *Message8296 { if x != nil { return x.Field8353 } return nil } func (x *Message8302) GetField8354() string { if x != nil && x.Field8354 != nil { return *x.Field8354 } return "" } func (x *Message8302) GetField8355() *UnusedEmptyMessage { if x != nil { return x.Field8355 } return nil } func (x *Message8302) GetField8356() []int32 { if x != nil { return x.Field8356 } return nil } func (x *Message8302) GetField8357() []int32 { if x != nil { return x.Field8357 } return nil } func (x *Message8302) GetField8358() []*UnusedEmptyMessage { if x != nil { return x.Field8358 } return nil } func (x *Message8302) GetField8359() *Message7965 { if x != nil { return x.Field8359 } return nil } type Message8457 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message8457) Reset() { *x = Message8457{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8457) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8457) ProtoMessage() {} func (x *Message8457) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8457.ProtoReflect.Descriptor instead. func (*Message8457) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{33} } type Message8449 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8458 *string `protobuf:"bytes,1,opt,name=field8458" json:"field8458,omitempty"` Field8459 *bool `protobuf:"varint,2,opt,name=field8459" json:"field8459,omitempty"` Field8460 *Enum8450 `protobuf:"varint,3,opt,name=field8460,enum=benchmarks.google_message3.Enum8450" json:"field8460,omitempty"` Field8461 []string `protobuf:"bytes,4,rep,name=field8461" json:"field8461,omitempty"` Field8462 *string `protobuf:"bytes,5,opt,name=field8462" json:"field8462,omitempty"` Field8463 *string `protobuf:"bytes,6,opt,name=field8463" json:"field8463,omitempty"` Field8464 *Message7966 `protobuf:"bytes,7,opt,name=field8464" json:"field8464,omitempty"` } func (x *Message8449) Reset() { *x = Message8449{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8449) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8449) ProtoMessage() {} func (x *Message8449) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8449.ProtoReflect.Descriptor instead. func (*Message8449) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{34} } func (x *Message8449) GetField8458() string { if x != nil && x.Field8458 != nil { return *x.Field8458 } return "" } func (x *Message8449) GetField8459() bool { if x != nil && x.Field8459 != nil { return *x.Field8459 } return false } func (x *Message8449) GetField8460() Enum8450 { if x != nil && x.Field8460 != nil { return *x.Field8460 } return Enum8450_ENUM_VALUE8451 } func (x *Message8449) GetField8461() []string { if x != nil { return x.Field8461 } return nil } func (x *Message8449) GetField8462() string { if x != nil && x.Field8462 != nil { return *x.Field8462 } return "" } func (x *Message8449) GetField8463() string { if x != nil && x.Field8463 != nil { return *x.Field8463 } return "" } func (x *Message8449) GetField8464() *Message7966 { if x != nil { return x.Field8464 } return nil } type Message13358 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field13359 *uint64 `protobuf:"fixed64,1,req,name=field13359" json:"field13359,omitempty"` Field13360 *uint64 `protobuf:"fixed64,2,req,name=field13360" json:"field13360,omitempty"` Field13361 *UnusedEmptyMessage `protobuf:"bytes,3,opt,name=field13361" json:"field13361,omitempty"` } func (x *Message13358) Reset() { *x = Message13358{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message13358) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message13358) ProtoMessage() {} func (x *Message13358) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message13358.ProtoReflect.Descriptor instead. func (*Message13358) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{35} } func (x *Message13358) GetField13359() uint64 { if x != nil && x.Field13359 != nil { return *x.Field13359 } return 0 } func (x *Message13358) GetField13360() uint64 { if x != nil && x.Field13360 != nil { return *x.Field13360 } return 0 } func (x *Message13358) GetField13361() *UnusedEmptyMessage { if x != nil { return x.Field13361 } return nil } type Message13912 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field13913 *uint32 `protobuf:"fixed32,1,req,name=field13913" json:"field13913,omitempty"` Field13914 *uint32 `protobuf:"fixed32,2,req,name=field13914" json:"field13914,omitempty"` Field13915 *UnusedEmptyMessage `protobuf:"bytes,500,opt,name=field13915" json:"field13915,omitempty"` Field13916 *UnusedEmptyMessage `protobuf:"bytes,15,opt,name=field13916" json:"field13916,omitempty"` } func (x *Message13912) Reset() { *x = Message13912{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message13912) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message13912) ProtoMessage() {} func (x *Message13912) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message13912.ProtoReflect.Descriptor instead. func (*Message13912) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{36} } func (x *Message13912) GetField13913() uint32 { if x != nil && x.Field13913 != nil { return *x.Field13913 } return 0 } func (x *Message13912) GetField13914() uint32 { if x != nil && x.Field13914 != nil { return *x.Field13914 } return 0 } func (x *Message13912) GetField13915() *UnusedEmptyMessage { if x != nil { return x.Field13915 } return nil } func (x *Message13912) GetField13916() *UnusedEmptyMessage { if x != nil { return x.Field13916 } return nil } type Message24316 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field24443 []string `protobuf:"bytes,1,rep,name=field24443" json:"field24443,omitempty"` Field24444 []string `protobuf:"bytes,2,rep,name=field24444" json:"field24444,omitempty"` Field24445 []string `protobuf:"bytes,3,rep,name=field24445" json:"field24445,omitempty"` } func (x *Message24316) Reset() { *x = Message24316{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message24316) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message24316) ProtoMessage() {} func (x *Message24316) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message24316.ProtoReflect.Descriptor instead. func (*Message24316) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{37} } func (x *Message24316) GetField24443() []string { if x != nil { return x.Field24443 } return nil } func (x *Message24316) GetField24444() []string { if x != nil { return x.Field24444 } return nil } func (x *Message24316) GetField24445() []string { if x != nil { return x.Field24445 } return nil } type Message24312 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field24421 *string `protobuf:"bytes,1,opt,name=field24421" json:"field24421,omitempty"` Field24422 *string `protobuf:"bytes,2,opt,name=field24422" json:"field24422,omitempty"` Field24423 []string `protobuf:"bytes,3,rep,name=field24423" json:"field24423,omitempty"` Field24424 []string `protobuf:"bytes,4,rep,name=field24424" json:"field24424,omitempty"` Field24425 []string `protobuf:"bytes,5,rep,name=field24425" json:"field24425,omitempty"` Field24426 []string `protobuf:"bytes,6,rep,name=field24426" json:"field24426,omitempty"` } func (x *Message24312) Reset() { *x = Message24312{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message24312) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message24312) ProtoMessage() {} func (x *Message24312) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message24312.ProtoReflect.Descriptor instead. func (*Message24312) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{38} } func (x *Message24312) GetField24421() string { if x != nil && x.Field24421 != nil { return *x.Field24421 } return "" } func (x *Message24312) GetField24422() string { if x != nil && x.Field24422 != nil { return *x.Field24422 } return "" } func (x *Message24312) GetField24423() []string { if x != nil { return x.Field24423 } return nil } func (x *Message24312) GetField24424() []string { if x != nil { return x.Field24424 } return nil } func (x *Message24312) GetField24425() []string { if x != nil { return x.Field24425 } return nil } func (x *Message24312) GetField24426() []string { if x != nil { return x.Field24426 } return nil } type Message24313 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field24427 *string `protobuf:"bytes,1,opt,name=field24427" json:"field24427,omitempty"` Field24428 *string `protobuf:"bytes,2,opt,name=field24428" json:"field24428,omitempty"` Field24429 []string `protobuf:"bytes,3,rep,name=field24429" json:"field24429,omitempty"` Field24430 *string `protobuf:"bytes,4,opt,name=field24430" json:"field24430,omitempty"` Field24431 *string `protobuf:"bytes,5,opt,name=field24431" json:"field24431,omitempty"` Field24432 *string `protobuf:"bytes,6,opt,name=field24432" json:"field24432,omitempty"` Field24433 *string `protobuf:"bytes,7,opt,name=field24433" json:"field24433,omitempty"` Field24434 []string `protobuf:"bytes,8,rep,name=field24434" json:"field24434,omitempty"` Field24435 *string `protobuf:"bytes,9,opt,name=field24435" json:"field24435,omitempty"` Field24436 []string `protobuf:"bytes,10,rep,name=field24436" json:"field24436,omitempty"` } func (x *Message24313) Reset() { *x = Message24313{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message24313) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message24313) ProtoMessage() {} func (x *Message24313) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message24313.ProtoReflect.Descriptor instead. func (*Message24313) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{39} } func (x *Message24313) GetField24427() string { if x != nil && x.Field24427 != nil { return *x.Field24427 } return "" } func (x *Message24313) GetField24428() string { if x != nil && x.Field24428 != nil { return *x.Field24428 } return "" } func (x *Message24313) GetField24429() []string { if x != nil { return x.Field24429 } return nil } func (x *Message24313) GetField24430() string { if x != nil && x.Field24430 != nil { return *x.Field24430 } return "" } func (x *Message24313) GetField24431() string { if x != nil && x.Field24431 != nil { return *x.Field24431 } return "" } func (x *Message24313) GetField24432() string { if x != nil && x.Field24432 != nil { return *x.Field24432 } return "" } func (x *Message24313) GetField24433() string { if x != nil && x.Field24433 != nil { return *x.Field24433 } return "" } func (x *Message24313) GetField24434() []string { if x != nil { return x.Field24434 } return nil } func (x *Message24313) GetField24435() string { if x != nil && x.Field24435 != nil { return *x.Field24435 } return "" } func (x *Message24313) GetField24436() []string { if x != nil { return x.Field24436 } return nil } type Message24315 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field24440 *string `protobuf:"bytes,1,req,name=field24440" json:"field24440,omitempty"` Field24441 []string `protobuf:"bytes,2,rep,name=field24441" json:"field24441,omitempty"` Field24442 []string `protobuf:"bytes,3,rep,name=field24442" json:"field24442,omitempty"` } func (x *Message24315) Reset() { *x = Message24315{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message24315) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message24315) ProtoMessage() {} func (x *Message24315) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message24315.ProtoReflect.Descriptor instead. func (*Message24315) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{40} } func (x *Message24315) GetField24440() string { if x != nil && x.Field24440 != nil { return *x.Field24440 } return "" } func (x *Message24315) GetField24441() []string { if x != nil { return x.Field24441 } return nil } func (x *Message24315) GetField24442() []string { if x != nil { return x.Field24442 } return nil } type Message716 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field872 *string `protobuf:"bytes,1,req,name=field872" json:"field872,omitempty"` Field873 *int32 `protobuf:"varint,2,req,name=field873" json:"field873,omitempty"` Field874 *bool `protobuf:"varint,3,opt,name=field874" json:"field874,omitempty"` Field875 *Message717 `protobuf:"bytes,4,opt,name=field875" json:"field875,omitempty"` } func (x *Message716) Reset() { *x = Message716{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message716) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message716) ProtoMessage() {} func (x *Message716) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message716.ProtoReflect.Descriptor instead. func (*Message716) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{41} } func (x *Message716) GetField872() string { if x != nil && x.Field872 != nil { return *x.Field872 } return "" } func (x *Message716) GetField873() int32 { if x != nil && x.Field873 != nil { return *x.Field873 } return 0 } func (x *Message716) GetField874() bool { if x != nil && x.Field874 != nil { return *x.Field874 } return false } func (x *Message716) GetField875() *Message717 { if x != nil { return x.Field875 } return nil } type Message718 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field878 []string `protobuf:"bytes,1,rep,name=field878" json:"field878,omitempty"` Field879 []string `protobuf:"bytes,2,rep,name=field879" json:"field879,omitempty"` Field880 *string `protobuf:"bytes,3,opt,name=field880" json:"field880,omitempty"` } func (x *Message718) Reset() { *x = Message718{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message718) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message718) ProtoMessage() {} func (x *Message718) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message718.ProtoReflect.Descriptor instead. func (*Message718) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{42} } func (x *Message718) GetField878() []string { if x != nil { return x.Field878 } return nil } func (x *Message718) GetField879() []string { if x != nil { return x.Field879 } return nil } func (x *Message718) GetField880() string { if x != nil && x.Field880 != nil { return *x.Field880 } return "" } type Message703 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field795 *string `protobuf:"bytes,1,req,name=field795" json:"field795,omitempty"` Field796 []string `protobuf:"bytes,2,rep,name=field796" json:"field796,omitempty"` Field797 []string `protobuf:"bytes,3,rep,name=field797" json:"field797,omitempty"` Field798 *string `protobuf:"bytes,4,opt,name=field798" json:"field798,omitempty"` Field799 []string `protobuf:"bytes,5,rep,name=field799" json:"field799,omitempty"` } func (x *Message703) Reset() { *x = Message703{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message703) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message703) ProtoMessage() {} func (x *Message703) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message703.ProtoReflect.Descriptor instead. func (*Message703) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{43} } func (x *Message703) GetField795() string { if x != nil && x.Field795 != nil { return *x.Field795 } return "" } func (x *Message703) GetField796() []string { if x != nil { return x.Field796 } return nil } func (x *Message703) GetField797() []string { if x != nil { return x.Field797 } return nil } func (x *Message703) GetField798() string { if x != nil && x.Field798 != nil { return *x.Field798 } return "" } func (x *Message703) GetField799() []string { if x != nil { return x.Field799 } return nil } type Message715 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field859 *string `protobuf:"bytes,1,req,name=field859" json:"field859,omitempty"` Field860 *string `protobuf:"bytes,7,opt,name=field860" json:"field860,omitempty"` Field861 []*Message707 `protobuf:"bytes,2,rep,name=field861" json:"field861,omitempty"` Field862 []*Message708 `protobuf:"bytes,3,rep,name=field862" json:"field862,omitempty"` Field863 []*Message711 `protobuf:"bytes,4,rep,name=field863" json:"field863,omitempty"` Field864 []*Message712 `protobuf:"bytes,5,rep,name=field864" json:"field864,omitempty"` Field865 []*Message713 `protobuf:"bytes,6,rep,name=field865" json:"field865,omitempty"` Field866 []*Message714 `protobuf:"bytes,8,rep,name=field866" json:"field866,omitempty"` Field867 []*Message710 `protobuf:"bytes,9,rep,name=field867" json:"field867,omitempty"` Field868 []*Message709 `protobuf:"bytes,10,rep,name=field868" json:"field868,omitempty"` Field869 []*Message705 `protobuf:"bytes,11,rep,name=field869" json:"field869,omitempty"` Field870 []*Message702 `protobuf:"bytes,12,rep,name=field870" json:"field870,omitempty"` Field871 []*Message706 `protobuf:"bytes,13,rep,name=field871" json:"field871,omitempty"` } func (x *Message715) Reset() { *x = Message715{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message715) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message715) ProtoMessage() {} func (x *Message715) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message715.ProtoReflect.Descriptor instead. func (*Message715) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{44} } func (x *Message715) GetField859() string { if x != nil && x.Field859 != nil { return *x.Field859 } return "" } func (x *Message715) GetField860() string { if x != nil && x.Field860 != nil { return *x.Field860 } return "" } func (x *Message715) GetField861() []*Message707 { if x != nil { return x.Field861 } return nil } func (x *Message715) GetField862() []*Message708 { if x != nil { return x.Field862 } return nil } func (x *Message715) GetField863() []*Message711 { if x != nil { return x.Field863 } return nil } func (x *Message715) GetField864() []*Message712 { if x != nil { return x.Field864 } return nil } func (x *Message715) GetField865() []*Message713 { if x != nil { return x.Field865 } return nil } func (x *Message715) GetField866() []*Message714 { if x != nil { return x.Field866 } return nil } func (x *Message715) GetField867() []*Message710 { if x != nil { return x.Field867 } return nil } func (x *Message715) GetField868() []*Message709 { if x != nil { return x.Field868 } return nil } func (x *Message715) GetField869() []*Message705 { if x != nil { return x.Field869 } return nil } func (x *Message715) GetField870() []*Message702 { if x != nil { return x.Field870 } return nil } func (x *Message715) GetField871() []*Message706 { if x != nil { return x.Field871 } return nil } type Message700 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field789 []string `protobuf:"bytes,1,rep,name=field789" json:"field789,omitempty"` Field790 []string `protobuf:"bytes,2,rep,name=field790" json:"field790,omitempty"` } func (x *Message700) Reset() { *x = Message700{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message700) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message700) ProtoMessage() {} func (x *Message700) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message700.ProtoReflect.Descriptor instead. func (*Message700) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{45} } func (x *Message700) GetField789() []string { if x != nil { return x.Field789 } return nil } func (x *Message700) GetField790() []string { if x != nil { return x.Field790 } return nil } type Message699 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field787 *string `protobuf:"bytes,1,req,name=field787" json:"field787,omitempty"` Field788 []string `protobuf:"bytes,2,rep,name=field788" json:"field788,omitempty"` } func (x *Message699) Reset() { *x = Message699{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message699) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message699) ProtoMessage() {} func (x *Message699) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message699.ProtoReflect.Descriptor instead. func (*Message699) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{46} } func (x *Message699) GetField787() string { if x != nil && x.Field787 != nil { return *x.Field787 } return "" } func (x *Message699) GetField788() []string { if x != nil { return x.Field788 } return nil } type Message698 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field779 *string `protobuf:"bytes,1,opt,name=field779" json:"field779,omitempty"` Field780 *string `protobuf:"bytes,2,opt,name=field780" json:"field780,omitempty"` Field781 *string `protobuf:"bytes,3,opt,name=field781" json:"field781,omitempty"` Field782 *string `protobuf:"bytes,4,opt,name=field782" json:"field782,omitempty"` Field783 *uint64 `protobuf:"varint,5,opt,name=field783" json:"field783,omitempty"` Field784 *uint32 `protobuf:"varint,6,opt,name=field784" json:"field784,omitempty"` Field785 *int64 `protobuf:"varint,7,opt,name=field785" json:"field785,omitempty"` Field786 []string `protobuf:"bytes,8,rep,name=field786" json:"field786,omitempty"` } func (x *Message698) Reset() { *x = Message698{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message698) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message698) ProtoMessage() {} func (x *Message698) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message698.ProtoReflect.Descriptor instead. func (*Message698) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{47} } func (x *Message698) GetField779() string { if x != nil && x.Field779 != nil { return *x.Field779 } return "" } func (x *Message698) GetField780() string { if x != nil && x.Field780 != nil { return *x.Field780 } return "" } func (x *Message698) GetField781() string { if x != nil && x.Field781 != nil { return *x.Field781 } return "" } func (x *Message698) GetField782() string { if x != nil && x.Field782 != nil { return *x.Field782 } return "" } func (x *Message698) GetField783() uint64 { if x != nil && x.Field783 != nil { return *x.Field783 } return 0 } func (x *Message698) GetField784() uint32 { if x != nil && x.Field784 != nil { return *x.Field784 } return 0 } func (x *Message698) GetField785() int64 { if x != nil && x.Field785 != nil { return *x.Field785 } return 0 } func (x *Message698) GetField786() []string { if x != nil { return x.Field786 } return nil } type Message10155_Message10156 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field10266 *Enum8862 `protobuf:"varint,51,opt,name=field10266,enum=benchmarks.google_message3.Enum8862" json:"field10266,omitempty"` Field10267 *int32 `protobuf:"varint,52,opt,name=field10267" json:"field10267,omitempty"` Field10268 *int32 `protobuf:"varint,53,opt,name=field10268" json:"field10268,omitempty"` Field10269 *int32 `protobuf:"varint,54,opt,name=field10269" json:"field10269,omitempty"` } func (x *Message10155_Message10156) Reset() { *x = Message10155_Message10156{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10155_Message10156) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10155_Message10156) ProtoMessage() {} func (x *Message10155_Message10156) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10155_Message10156.ProtoReflect.Descriptor instead. func (*Message10155_Message10156) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP(), []int{17, 0} } func (x *Message10155_Message10156) GetField10266() Enum8862 { if x != nil && x.Field10266 != nil { return *x.Field10266 } return Enum8862_ENUM_VALUE8863 } func (x *Message10155_Message10156) GetField10267() int32 { if x != nil && x.Field10267 != nil { return *x.Field10267 } return 0 } func (x *Message10155_Message10156) GetField10268() int32 { if x != nil && x.Field10268 != nil { return *x.Field10268 } return 0 } func (x *Message10155_Message10156) GetField10269() int32 { if x != nil && x.Field10269 != nil { return *x.Field10269 } return 0 } var File_datasets_google_message3_benchmark_message3_5_proto protoreflect.FileDescriptor var file_datasets_google_message3_benchmark_message3_5_proto_rawDesc = []byte{ 0x0a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x35, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x36, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x37, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x38, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x37, 0x37, 0x22, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x37, 0x38, 0x22, 0xae, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x34, 0x30, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x37, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x37, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x37, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x37, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x37, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x37, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x37, 0x37, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x37, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x37, 0x38, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x36, 0x37, 0x38, 0x22, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x38, 0x30, 0x22, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x38, 0x31, 0x22, 0xa1, 0x01, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x31, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x31, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x32, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x33, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x33, 0x12, 0x3f, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x37, 0x32, 0x30, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x34, 0x22, 0xba, 0x03, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x32, 0x38, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x37, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x37, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x38, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x38, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x39, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x33, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x39, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x30, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x31, 0x35, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x31, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x32, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x33, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x31, 0x38, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x33, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x31, 0x36, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x35, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x35, 0x2a, 0x04, 0x08, 0x0a, 0x10, 0x0b, 0x2a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x2a, 0x04, 0x08, 0x0c, 0x10, 0x0d, 0x22, 0x80, 0x02, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x35, 0x12, 0x4a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x36, 0x22, 0x80, 0x09, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x39, 0x37, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x34, 0x33, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x34, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x34, 0x34, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x34, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x34, 0x35, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x34, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x34, 0x36, 0x18, 0x21, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x34, 0x36, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x34, 0x37, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x34, 0x37, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x34, 0x38, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x34, 0x38, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x34, 0x39, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x34, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x30, 0x18, 0x20, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x31, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x33, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x34, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x35, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x36, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x36, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x37, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x37, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x38, 0x18, 0x22, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x38, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x39, 0x18, 0x23, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x30, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x31, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x32, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x33, 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x34, 0x18, 0x24, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x35, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x36, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x36, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x37, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x37, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x38, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x38, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x39, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x30, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x36, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x30, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x31, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x32, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x33, 0x18, 0x14, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x34, 0x18, 0x15, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x35, 0x18, 0x16, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x35, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x36, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x39, 0x39, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x36, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x37, 0x18, 0x25, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x39, 0x38, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x37, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x38, 0x18, 0x26, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x38, 0x2a, 0x04, 0x08, 0x1c, 0x10, 0x1d, 0x2a, 0x04, 0x08, 0x1a, 0x10, 0x1b, 0x22, 0x18, 0x0a, 0x08, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x2a, 0x08, 0x08, 0x04, 0x10, 0xff, 0xff, 0xff, 0xff, 0x07, 0x3a, 0x02, 0x08, 0x01, 0x22, 0x95, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x35, 0x37, 0x38, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x33, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x35, 0x37, 0x39, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x33, 0x32, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x33, 0x33, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x35, 0x38, 0x38, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x33, 0x33, 0x22, 0xbd, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x30, 0x32, 0x34, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x34, 0x38, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x30, 0x32, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x34, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x34, 0x39, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x34, 0x39, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x35, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x35, 0x30, 0x22, 0x49, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x30, 0x35, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x38, 0x34, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x38, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x38, 0x35, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x38, 0x35, 0x22, 0x49, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x30, 0x35, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x38, 0x39, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x38, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x39, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x39, 0x30, 0x22, 0x83, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x35, 0x37, 0x33, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x35, 0x38, 0x30, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x35, 0x37, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x35, 0x38, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x35, 0x38, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x35, 0x38, 0x31, 0x2a, 0x09, 0x08, 0x90, 0x4e, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x4e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x38, 0x32, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x38, 0x32, 0x35, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x38, 0x32, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x38, 0x32, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x38, 0x32, 0x36, 0x22, 0xce, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x35, 0x38, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x35, 0x38, 0x33, 0x18, 0x01, 0x20, 0x02, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x35, 0x38, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x35, 0x38, 0x34, 0x18, 0x02, 0x20, 0x02, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x35, 0x38, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x35, 0x38, 0x35, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x35, 0x38, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x35, 0x38, 0x36, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x35, 0x38, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x35, 0x38, 0x37, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x35, 0x38, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x35, 0x38, 0x38, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x35, 0x38, 0x38, 0x22, 0xa5, 0x18, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x31, 0x35, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x31, 0x39, 0x35, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x31, 0x39, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x31, 0x39, 0x36, 0x18, 0x02, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x31, 0x39, 0x36, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x31, 0x39, 0x37, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x30, 0x31, 0x35, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x31, 0x39, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x31, 0x39, 0x38, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x31, 0x39, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x31, 0x39, 0x39, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x31, 0x39, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x30, 0x30, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x30, 0x30, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x31, 0x35, 0x36, 0x18, 0x32, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x35, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x31, 0x35, 0x35, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x31, 0x35, 0x36, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x31, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x30, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x30, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x30, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x30, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x30, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x30, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x30, 0x35, 0x18, 0x54, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x30, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x30, 0x36, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x30, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x30, 0x37, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x30, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x30, 0x38, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x30, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x30, 0x39, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x30, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x31, 0x30, 0x18, 0x31, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x31, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x31, 0x31, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x31, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x31, 0x32, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x31, 0x32, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x31, 0x33, 0x18, 0x5b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x31, 0x35, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x31, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x31, 0x34, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x31, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x31, 0x35, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x31, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x31, 0x36, 0x18, 0x29, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x31, 0x36, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x31, 0x37, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x31, 0x35, 0x34, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x31, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x31, 0x38, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x31, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x31, 0x39, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x31, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x32, 0x30, 0x18, 0x41, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x32, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x32, 0x31, 0x18, 0x42, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x32, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x32, 0x32, 0x18, 0x46, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x32, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x32, 0x33, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x32, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x32, 0x34, 0x18, 0x49, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x32, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x32, 0x35, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x32, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x32, 0x36, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x32, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x32, 0x37, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x32, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x32, 0x38, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x32, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x32, 0x39, 0x18, 0x22, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x32, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x33, 0x30, 0x18, 0x23, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x33, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x33, 0x31, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x33, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x33, 0x32, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x33, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x33, 0x33, 0x18, 0x14, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x33, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x33, 0x34, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x33, 0x34, 0x12, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x33, 0x35, 0x18, 0x50, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x30, 0x31, 0x36, 0x37, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x33, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x33, 0x36, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x33, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x33, 0x37, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x33, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x33, 0x38, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x33, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x33, 0x39, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x33, 0x39, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x34, 0x30, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x31, 0x38, 0x32, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x34, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x34, 0x31, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x34, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x34, 0x32, 0x18, 0x40, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x34, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x34, 0x33, 0x18, 0x25, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x34, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x34, 0x34, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x34, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x34, 0x35, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x34, 0x35, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x34, 0x36, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x32, 0x34, 0x32, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x34, 0x36, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x34, 0x37, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x34, 0x37, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x34, 0x38, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x34, 0x38, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x34, 0x39, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x39, 0x34, 0x34, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x34, 0x39, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x35, 0x30, 0x18, 0x57, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x35, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x35, 0x31, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x35, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x35, 0x32, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x35, 0x32, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x35, 0x33, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x31, 0x32, 0x33, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x35, 0x33, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x35, 0x34, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x31, 0x36, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x35, 0x34, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x35, 0x35, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x38, 0x39, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x35, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x35, 0x36, 0x18, 0x45, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x35, 0x37, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x35, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x35, 0x38, 0x18, 0x52, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x35, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x35, 0x39, 0x18, 0x55, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x35, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x36, 0x30, 0x18, 0x56, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x36, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x36, 0x31, 0x18, 0x53, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x36, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x36, 0x32, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x36, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x36, 0x33, 0x18, 0x58, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x36, 0x33, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x36, 0x34, 0x18, 0x5e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x36, 0x32, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x36, 0x34, 0x1a, 0xb4, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x31, 0x35, 0x36, 0x12, 0x44, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x36, 0x36, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x38, 0x38, 0x36, 0x32, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x36, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x36, 0x37, 0x18, 0x34, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x36, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x36, 0x38, 0x18, 0x35, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x36, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x36, 0x39, 0x18, 0x36, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x36, 0x39, 0x2a, 0x04, 0x08, 0x39, 0x10, 0x3a, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x88, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x38, 0x36, 0x36, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x36, 0x38, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x30, 0x31, 0x34, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x36, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x36, 0x39, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x36, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x37, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x37, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x37, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x37, 0x31, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x37, 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x37, 0x32, 0x22, 0xae, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x34, 0x36, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x37, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x37, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x37, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x37, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x37, 0x35, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x37, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x37, 0x36, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x37, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x37, 0x37, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x37, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x37, 0x38, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x37, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x37, 0x39, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x37, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x38, 0x30, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x38, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x38, 0x31, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x34, 0x38, 0x31, 0x22, 0xa2, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x38, 0x31, 0x38, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x38, 0x31, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x38, 0x30, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x38, 0x31, 0x39, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x38, 0x32, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x38, 0x30, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x38, 0x32, 0x30, 0x22, 0x98, 0x07, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x37, 0x37, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x37, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x37, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x37, 0x35, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x37, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x37, 0x36, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x37, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x37, 0x37, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x37, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x37, 0x38, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x37, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x37, 0x39, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x37, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x38, 0x30, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x38, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x38, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x38, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x38, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x38, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x38, 0x33, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x38, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x38, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x38, 0x34, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x38, 0x35, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x37, 0x34, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x38, 0x35, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x38, 0x36, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x38, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x38, 0x37, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x38, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x38, 0x38, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x38, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x38, 0x39, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x38, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x39, 0x30, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x39, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x39, 0x31, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x39, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x39, 0x32, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x39, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x39, 0x33, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x39, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x39, 0x34, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x39, 0x34, 0x12, 0x46, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x39, 0x35, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x39, 0x35, 0x12, 0x46, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x39, 0x36, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x39, 0x36, 0x22, 0xa0, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x31, 0x34, 0x35, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x35, 0x35, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x33, 0x31, 0x34, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x35, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x35, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x35, 0x37, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x31, 0x35, 0x37, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x36, 0x36, 0x38, 0x36, 0x22, 0x4e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x37, 0x39, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x30, 0x18, 0x01, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x31, 0x22, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x32, 0x32, 0x22, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x32, 0x37, 0x22, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x32, 0x34, 0x22, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x37, 0x33, 0x35, 0x22, 0x49, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x31, 0x38, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x32, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x32, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x32, 0x37, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x32, 0x37, 0x22, 0x87, 0x05, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x33, 0x30, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x32, 0x38, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x32, 0x38, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x32, 0x39, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x36, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x32, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x33, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x33, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x33, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x33, 0x31, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x33, 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x32, 0x39, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x33, 0x32, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x33, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x36, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x33, 0x33, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x33, 0x34, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x32, 0x39, 0x38, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x33, 0x34, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x33, 0x35, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x33, 0x30, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x33, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x33, 0x36, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x33, 0x36, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x33, 0x37, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x33, 0x37, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x33, 0x38, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x36, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x33, 0x38, 0x2a, 0x08, 0x08, 0x40, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x35, 0x36, 0x22, 0xea, 0x07, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x33, 0x30, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x33, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x33, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x34, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x36, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x34, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x34, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x34, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x34, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x34, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x34, 0x33, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x34, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x34, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x34, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x34, 0x35, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x34, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x34, 0x36, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x34, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x34, 0x37, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x34, 0x37, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x34, 0x38, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x32, 0x39, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x34, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x34, 0x39, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x34, 0x39, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x35, 0x30, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x35, 0x30, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x35, 0x31, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x32, 0x39, 0x31, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x35, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x35, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x35, 0x32, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x35, 0x33, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x32, 0x39, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x35, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x35, 0x34, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x35, 0x34, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x35, 0x35, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x35, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x35, 0x36, 0x18, 0x12, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x35, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x35, 0x37, 0x18, 0x13, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x35, 0x37, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x35, 0x38, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x35, 0x38, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x35, 0x39, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x36, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x35, 0x39, 0x2a, 0x08, 0x08, 0x40, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x35, 0x37, 0x22, 0xae, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x34, 0x34, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x35, 0x38, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x35, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x35, 0x39, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x35, 0x39, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x36, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x38, 0x34, 0x35, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x36, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x36, 0x31, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x36, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x36, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x36, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x36, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x36, 0x33, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x36, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x36, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x36, 0x34, 0x22, 0x9e, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x33, 0x35, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x33, 0x35, 0x39, 0x18, 0x01, 0x20, 0x02, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x33, 0x35, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x33, 0x36, 0x30, 0x18, 0x02, 0x20, 0x02, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x33, 0x36, 0x30, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x33, 0x36, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x33, 0x36, 0x31, 0x22, 0xef, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x39, 0x31, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x39, 0x31, 0x33, 0x18, 0x01, 0x20, 0x02, 0x28, 0x07, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x39, 0x31, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x39, 0x31, 0x34, 0x18, 0x02, 0x20, 0x02, 0x28, 0x07, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x39, 0x31, 0x34, 0x12, 0x4f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x39, 0x31, 0x35, 0x18, 0xf4, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x39, 0x31, 0x35, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x39, 0x31, 0x36, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x39, 0x31, 0x36, 0x22, 0x6e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x31, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x34, 0x33, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x34, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x34, 0x34, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x34, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x34, 0x35, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x34, 0x35, 0x22, 0xce, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x31, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x32, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x32, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x32, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x32, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x32, 0x33, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x32, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x32, 0x34, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x32, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x32, 0x35, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x32, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x32, 0x36, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x32, 0x36, 0x22, 0xce, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x31, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x32, 0x37, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x32, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x32, 0x38, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x32, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x32, 0x39, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x32, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x33, 0x30, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x33, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x33, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x33, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x33, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x33, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x33, 0x33, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x33, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x33, 0x34, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x33, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x33, 0x35, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x33, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x33, 0x36, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x33, 0x36, 0x22, 0x6e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x33, 0x31, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x34, 0x30, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x34, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x34, 0x31, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x34, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x34, 0x32, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x34, 0x34, 0x32, 0x22, 0xa4, 0x01, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x31, 0x36, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x32, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x33, 0x18, 0x02, 0x20, 0x02, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x34, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x31, 0x37, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x35, 0x22, 0x60, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x31, 0x38, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x38, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x38, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x39, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x30, 0x22, 0x98, 0x01, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x36, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x36, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x37, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x37, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x38, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x38, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x39, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x39, 0x22, 0xb0, 0x06, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x31, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x39, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x30, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x31, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x37, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x31, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x32, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x38, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x32, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x33, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x31, 0x31, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x33, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x34, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x31, 0x32, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x34, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x35, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x31, 0x33, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x35, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x36, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x31, 0x34, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x36, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x37, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x31, 0x30, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x37, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x38, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x39, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x38, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x39, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x35, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x39, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x30, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x32, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x30, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x31, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x36, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x31, 0x22, 0x44, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x39, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x30, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x30, 0x22, 0x44, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x39, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x37, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x37, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x38, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x38, 0x22, 0xec, 0x01, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x39, 0x38, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x37, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x33, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x35, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x36, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x36, 0x42, 0x23, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0xf8, 0x01, 0x01, } var ( file_datasets_google_message3_benchmark_message3_5_proto_rawDescOnce sync.Once file_datasets_google_message3_benchmark_message3_5_proto_rawDescData = file_datasets_google_message3_benchmark_message3_5_proto_rawDesc ) func file_datasets_google_message3_benchmark_message3_5_proto_rawDescGZIP() []byte { file_datasets_google_message3_benchmark_message3_5_proto_rawDescOnce.Do(func() { file_datasets_google_message3_benchmark_message3_5_proto_rawDescData = protoimpl.X.CompressGZIP(file_datasets_google_message3_benchmark_message3_5_proto_rawDescData) }) return file_datasets_google_message3_benchmark_message3_5_proto_rawDescData } var file_datasets_google_message3_benchmark_message3_5_proto_msgTypes = make([]protoimpl.MessageInfo, 49) var file_datasets_google_message3_benchmark_message3_5_proto_goTypes = []interface{}{ (*Message24377)(nil), // 0: benchmarks.google_message3.Message24377 (*Message24378)(nil), // 1: benchmarks.google_message3.Message24378 (*Message24400)(nil), // 2: benchmarks.google_message3.Message24400 (*Message24380)(nil), // 3: benchmarks.google_message3.Message24380 (*Message24381)(nil), // 4: benchmarks.google_message3.Message24381 (*Message719)(nil), // 5: benchmarks.google_message3.Message719 (*Message728)(nil), // 6: benchmarks.google_message3.Message728 (*Message704)(nil), // 7: benchmarks.google_message3.Message704 (*Message697)(nil), // 8: benchmarks.google_message3.Message697 (*Message0)(nil), // 9: benchmarks.google_message3.Message0 (*Message6578)(nil), // 10: benchmarks.google_message3.Message6578 (*Message6024)(nil), // 11: benchmarks.google_message3.Message6024 (*Message6052)(nil), // 12: benchmarks.google_message3.Message6052 (*Message6054)(nil), // 13: benchmarks.google_message3.Message6054 (*Message10573)(nil), // 14: benchmarks.google_message3.Message10573 (*Message10824)(nil), // 15: benchmarks.google_message3.Message10824 (*Message10582)(nil), // 16: benchmarks.google_message3.Message10582 (*Message10155)(nil), // 17: benchmarks.google_message3.Message10155 (*Message11866)(nil), // 18: benchmarks.google_message3.Message11866 (*Message10469)(nil), // 19: benchmarks.google_message3.Message10469 (*Message10818)(nil), // 20: benchmarks.google_message3.Message10818 (*Message10773)(nil), // 21: benchmarks.google_message3.Message10773 (*Message13145)(nil), // 22: benchmarks.google_message3.Message13145 (*Message16686)(nil), // 23: benchmarks.google_message3.Message16686 (*Message12796)(nil), // 24: benchmarks.google_message3.Message12796 (*Message6722)(nil), // 25: benchmarks.google_message3.Message6722 (*Message6727)(nil), // 26: benchmarks.google_message3.Message6727 (*Message6724)(nil), // 27: benchmarks.google_message3.Message6724 (*Message6735)(nil), // 28: benchmarks.google_message3.Message6735 (*Message8183)(nil), // 29: benchmarks.google_message3.Message8183 (*Message8301)(nil), // 30: benchmarks.google_message3.Message8301 (*Message8456)(nil), // 31: benchmarks.google_message3.Message8456 (*Message8302)(nil), // 32: benchmarks.google_message3.Message8302 (*Message8457)(nil), // 33: benchmarks.google_message3.Message8457 (*Message8449)(nil), // 34: benchmarks.google_message3.Message8449 (*Message13358)(nil), // 35: benchmarks.google_message3.Message13358 (*Message13912)(nil), // 36: benchmarks.google_message3.Message13912 (*Message24316)(nil), // 37: benchmarks.google_message3.Message24316 (*Message24312)(nil), // 38: benchmarks.google_message3.Message24312 (*Message24313)(nil), // 39: benchmarks.google_message3.Message24313 (*Message24315)(nil), // 40: benchmarks.google_message3.Message24315 (*Message716)(nil), // 41: benchmarks.google_message3.Message716 (*Message718)(nil), // 42: benchmarks.google_message3.Message718 (*Message703)(nil), // 43: benchmarks.google_message3.Message703 (*Message715)(nil), // 44: benchmarks.google_message3.Message715 (*Message700)(nil), // 45: benchmarks.google_message3.Message700 (*Message699)(nil), // 46: benchmarks.google_message3.Message699 (*Message698)(nil), // 47: benchmarks.google_message3.Message698 (*Message10155_Message10156)(nil), // 48: benchmarks.google_message3.Message10155.Message10156 (Enum720)(0), // 49: benchmarks.google_message3.Enum720 (*UnusedEmptyMessage)(nil), // 50: benchmarks.google_message3.UnusedEmptyMessage (Enum6579)(0), // 51: benchmarks.google_message3.Enum6579 (Enum6588)(0), // 52: benchmarks.google_message3.Enum6588 (Enum6025)(0), // 53: benchmarks.google_message3.Enum6025 (*Message10576)(nil), // 54: benchmarks.google_message3.Message10576 (Enum10157)(0), // 55: benchmarks.google_message3.Enum10157 (*Message9151)(nil), // 56: benchmarks.google_message3.Message9151 (*Message10154)(nil), // 57: benchmarks.google_message3.Message10154 (Enum10167)(0), // 58: benchmarks.google_message3.Enum10167 (*Message9182)(nil), // 59: benchmarks.google_message3.Message9182 (*Message9242)(nil), // 60: benchmarks.google_message3.Message9242 (*Message8944)(nil), // 61: benchmarks.google_message3.Message8944 (*Message9123)(nil), // 62: benchmarks.google_message3.Message9123 (*Message9160)(nil), // 63: benchmarks.google_message3.Message9160 (*Message8890)(nil), // 64: benchmarks.google_message3.Message8890 (*Message9628)(nil), // 65: benchmarks.google_message3.Message9628 (*Message11014)(nil), // 66: benchmarks.google_message3.Message11014 (*Message10800)(nil), // 67: benchmarks.google_message3.Message10800 (*Message10801)(nil), // 68: benchmarks.google_message3.Message10801 (*Message10749)(nil), // 69: benchmarks.google_message3.Message10749 (UnusedEnum)(0), // 70: benchmarks.google_message3.UnusedEnum (Enum13146)(0), // 71: benchmarks.google_message3.Enum13146 (*Message7966)(nil), // 72: benchmarks.google_message3.Message7966 (*Message8290)(nil), // 73: benchmarks.google_message3.Message8290 (*Message8298)(nil), // 74: benchmarks.google_message3.Message8298 (*Message8300)(nil), // 75: benchmarks.google_message3.Message8300 (*Message7965)(nil), // 76: benchmarks.google_message3.Message7965 (*Message8291)(nil), // 77: benchmarks.google_message3.Message8291 (*Message8296)(nil), // 78: benchmarks.google_message3.Message8296 (Enum8450)(0), // 79: benchmarks.google_message3.Enum8450 (*Message717)(nil), // 80: benchmarks.google_message3.Message717 (*Message707)(nil), // 81: benchmarks.google_message3.Message707 (*Message708)(nil), // 82: benchmarks.google_message3.Message708 (*Message711)(nil), // 83: benchmarks.google_message3.Message711 (*Message712)(nil), // 84: benchmarks.google_message3.Message712 (*Message713)(nil), // 85: benchmarks.google_message3.Message713 (*Message714)(nil), // 86: benchmarks.google_message3.Message714 (*Message710)(nil), // 87: benchmarks.google_message3.Message710 (*Message709)(nil), // 88: benchmarks.google_message3.Message709 (*Message705)(nil), // 89: benchmarks.google_message3.Message705 (*Message702)(nil), // 90: benchmarks.google_message3.Message702 (*Message706)(nil), // 91: benchmarks.google_message3.Message706 (Enum8862)(0), // 92: benchmarks.google_message3.Enum8862 } var file_datasets_google_message3_benchmark_message3_5_proto_depIdxs = []int32{ 49, // 0: benchmarks.google_message3.Message719.field884:type_name -> benchmarks.google_message3.Enum720 43, // 1: benchmarks.google_message3.Message728.field889:type_name -> benchmarks.google_message3.Message703 44, // 2: benchmarks.google_message3.Message728.field890:type_name -> benchmarks.google_message3.Message715 42, // 3: benchmarks.google_message3.Message728.field893:type_name -> benchmarks.google_message3.Message718 41, // 4: benchmarks.google_message3.Message728.field894:type_name -> benchmarks.google_message3.Message716 50, // 5: benchmarks.google_message3.Message704.field806:type_name -> benchmarks.google_message3.UnusedEmptyMessage 45, // 6: benchmarks.google_message3.Message697.field769:type_name -> benchmarks.google_message3.Message700 46, // 7: benchmarks.google_message3.Message697.field776:type_name -> benchmarks.google_message3.Message699 47, // 8: benchmarks.google_message3.Message697.field777:type_name -> benchmarks.google_message3.Message698 51, // 9: benchmarks.google_message3.Message6578.field6632:type_name -> benchmarks.google_message3.Enum6579 52, // 10: benchmarks.google_message3.Message6578.field6633:type_name -> benchmarks.google_message3.Enum6588 53, // 11: benchmarks.google_message3.Message6024.field6048:type_name -> benchmarks.google_message3.Enum6025 50, // 12: benchmarks.google_message3.Message6024.field6050:type_name -> benchmarks.google_message3.UnusedEmptyMessage 54, // 13: benchmarks.google_message3.Message10573.field10580:type_name -> benchmarks.google_message3.Message10576 55, // 14: benchmarks.google_message3.Message10155.field10197:type_name -> benchmarks.google_message3.Enum10157 48, // 15: benchmarks.google_message3.Message10155.message10156:type_name -> benchmarks.google_message3.Message10155.Message10156 56, // 16: benchmarks.google_message3.Message10155.field10213:type_name -> benchmarks.google_message3.Message9151 57, // 17: benchmarks.google_message3.Message10155.field10217:type_name -> benchmarks.google_message3.Message10154 58, // 18: benchmarks.google_message3.Message10155.field10235:type_name -> benchmarks.google_message3.Enum10167 59, // 19: benchmarks.google_message3.Message10155.field10240:type_name -> benchmarks.google_message3.Message9182 60, // 20: benchmarks.google_message3.Message10155.field10246:type_name -> benchmarks.google_message3.Message9242 50, // 21: benchmarks.google_message3.Message10155.field10247:type_name -> benchmarks.google_message3.UnusedEmptyMessage 50, // 22: benchmarks.google_message3.Message10155.field10248:type_name -> benchmarks.google_message3.UnusedEmptyMessage 61, // 23: benchmarks.google_message3.Message10155.field10249:type_name -> benchmarks.google_message3.Message8944 50, // 24: benchmarks.google_message3.Message10155.field10250:type_name -> benchmarks.google_message3.UnusedEmptyMessage 62, // 25: benchmarks.google_message3.Message10155.field10253:type_name -> benchmarks.google_message3.Message9123 63, // 26: benchmarks.google_message3.Message10155.field10254:type_name -> benchmarks.google_message3.Message9160 64, // 27: benchmarks.google_message3.Message10155.field10255:type_name -> benchmarks.google_message3.Message8890 65, // 28: benchmarks.google_message3.Message10155.field10264:type_name -> benchmarks.google_message3.Message9628 66, // 29: benchmarks.google_message3.Message11866.field11868:type_name -> benchmarks.google_message3.Message11014 50, // 30: benchmarks.google_message3.Message11866.field11872:type_name -> benchmarks.google_message3.UnusedEmptyMessage 67, // 31: benchmarks.google_message3.Message10818.field10819:type_name -> benchmarks.google_message3.Message10800 68, // 32: benchmarks.google_message3.Message10818.field10820:type_name -> benchmarks.google_message3.Message10801 69, // 33: benchmarks.google_message3.Message10773.field10785:type_name -> benchmarks.google_message3.Message10749 50, // 34: benchmarks.google_message3.Message10773.field10786:type_name -> benchmarks.google_message3.UnusedEmptyMessage 70, // 35: benchmarks.google_message3.Message10773.field10795:type_name -> benchmarks.google_message3.UnusedEnum 70, // 36: benchmarks.google_message3.Message10773.field10796:type_name -> benchmarks.google_message3.UnusedEnum 71, // 37: benchmarks.google_message3.Message13145.field13155:type_name -> benchmarks.google_message3.Enum13146 72, // 38: benchmarks.google_message3.Message8301.field8329:type_name -> benchmarks.google_message3.Message7966 73, // 39: benchmarks.google_message3.Message8301.field8332:type_name -> benchmarks.google_message3.Message8290 72, // 40: benchmarks.google_message3.Message8301.field8333:type_name -> benchmarks.google_message3.Message7966 74, // 41: benchmarks.google_message3.Message8301.field8334:type_name -> benchmarks.google_message3.Message8298 75, // 42: benchmarks.google_message3.Message8301.field8335:type_name -> benchmarks.google_message3.Message8300 50, // 43: benchmarks.google_message3.Message8301.field8337:type_name -> benchmarks.google_message3.UnusedEmptyMessage 76, // 44: benchmarks.google_message3.Message8301.field8338:type_name -> benchmarks.google_message3.Message7965 72, // 45: benchmarks.google_message3.Message8302.field8340:type_name -> benchmarks.google_message3.Message7966 73, // 46: benchmarks.google_message3.Message8302.field8348:type_name -> benchmarks.google_message3.Message8290 50, // 47: benchmarks.google_message3.Message8302.field8350:type_name -> benchmarks.google_message3.UnusedEmptyMessage 77, // 48: benchmarks.google_message3.Message8302.field8351:type_name -> benchmarks.google_message3.Message8291 78, // 49: benchmarks.google_message3.Message8302.field8353:type_name -> benchmarks.google_message3.Message8296 50, // 50: benchmarks.google_message3.Message8302.field8355:type_name -> benchmarks.google_message3.UnusedEmptyMessage 50, // 51: benchmarks.google_message3.Message8302.field8358:type_name -> benchmarks.google_message3.UnusedEmptyMessage 76, // 52: benchmarks.google_message3.Message8302.field8359:type_name -> benchmarks.google_message3.Message7965 79, // 53: benchmarks.google_message3.Message8449.field8460:type_name -> benchmarks.google_message3.Enum8450 72, // 54: benchmarks.google_message3.Message8449.field8464:type_name -> benchmarks.google_message3.Message7966 50, // 55: benchmarks.google_message3.Message13358.field13361:type_name -> benchmarks.google_message3.UnusedEmptyMessage 50, // 56: benchmarks.google_message3.Message13912.field13915:type_name -> benchmarks.google_message3.UnusedEmptyMessage 50, // 57: benchmarks.google_message3.Message13912.field13916:type_name -> benchmarks.google_message3.UnusedEmptyMessage 80, // 58: benchmarks.google_message3.Message716.field875:type_name -> benchmarks.google_message3.Message717 81, // 59: benchmarks.google_message3.Message715.field861:type_name -> benchmarks.google_message3.Message707 82, // 60: benchmarks.google_message3.Message715.field862:type_name -> benchmarks.google_message3.Message708 83, // 61: benchmarks.google_message3.Message715.field863:type_name -> benchmarks.google_message3.Message711 84, // 62: benchmarks.google_message3.Message715.field864:type_name -> benchmarks.google_message3.Message712 85, // 63: benchmarks.google_message3.Message715.field865:type_name -> benchmarks.google_message3.Message713 86, // 64: benchmarks.google_message3.Message715.field866:type_name -> benchmarks.google_message3.Message714 87, // 65: benchmarks.google_message3.Message715.field867:type_name -> benchmarks.google_message3.Message710 88, // 66: benchmarks.google_message3.Message715.field868:type_name -> benchmarks.google_message3.Message709 89, // 67: benchmarks.google_message3.Message715.field869:type_name -> benchmarks.google_message3.Message705 90, // 68: benchmarks.google_message3.Message715.field870:type_name -> benchmarks.google_message3.Message702 91, // 69: benchmarks.google_message3.Message715.field871:type_name -> benchmarks.google_message3.Message706 92, // 70: benchmarks.google_message3.Message10155.Message10156.field10266:type_name -> benchmarks.google_message3.Enum8862 71, // [71:71] is the sub-list for method output_type 71, // [71:71] is the sub-list for method input_type 71, // [71:71] is the sub-list for extension type_name 71, // [71:71] is the sub-list for extension extendee 0, // [0:71] is the sub-list for field type_name } func init() { file_datasets_google_message3_benchmark_message3_5_proto_init() } func file_datasets_google_message3_benchmark_message3_5_proto_init() { if File_datasets_google_message3_benchmark_message3_5_proto != nil { return } file_datasets_google_message3_benchmark_message3_6_proto_init() file_datasets_google_message3_benchmark_message3_7_proto_init() file_datasets_google_message3_benchmark_message3_8_proto_init() if !protoimpl.UnsafeEnabled { file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message24377); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message24378); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message24400); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message24380); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message24381); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message719); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message728); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message704); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message697); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message0); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6578); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6024); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6052); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6054); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10573); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10824); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10582); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10155); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message11866); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10469); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10818); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10773); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message13145); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message16686); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12796); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6722); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6727); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6724); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6735); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8183); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8301); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8456); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8302); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8457); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8449); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message13358); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message13912); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message24316); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message24312); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message24313); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message24315); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message716); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message718); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message703); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message715); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message700); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message699); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message698); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_5_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10155_Message10156); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_datasets_google_message3_benchmark_message3_5_proto_rawDesc, NumEnums: 0, NumMessages: 49, NumExtensions: 0, NumServices: 0, }, GoTypes: file_datasets_google_message3_benchmark_message3_5_proto_goTypes, DependencyIndexes: file_datasets_google_message3_benchmark_message3_5_proto_depIdxs, MessageInfos: file_datasets_google_message3_benchmark_message3_5_proto_msgTypes, }.Build() File_datasets_google_message3_benchmark_message3_5_proto = out.File file_datasets_google_message3_benchmark_message3_5_proto_rawDesc = nil file_datasets_google_message3_benchmark_message3_5_proto_goTypes = nil file_datasets_google_message3_benchmark_message3_5_proto_depIdxs = nil } benchmark_message3_6.pb.go000066400000000000000000006536521411250152500360460ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/datasets/google_message3// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // LINT: ALLOW_GROUPS // Code generated by protoc-gen-go. DO NOT EDIT. // source: datasets/google_message3/benchmark_message3_6.proto package google_message3 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Message10576 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message10576) Reset() { *x = Message10576{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10576) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10576) ProtoMessage() {} func (x *Message10576) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10576.ProtoReflect.Descriptor instead. func (*Message10576) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{0} } type Message10154 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field10192 []byte `protobuf:"bytes,1,opt,name=field10192" json:"field10192,omitempty"` Field10193 *int32 `protobuf:"varint,2,opt,name=field10193" json:"field10193,omitempty"` } func (x *Message10154) Reset() { *x = Message10154{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10154) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10154) ProtoMessage() {} func (x *Message10154) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10154.ProtoReflect.Descriptor instead. func (*Message10154) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{1} } func (x *Message10154) GetField10192() []byte { if x != nil { return x.Field10192 } return nil } func (x *Message10154) GetField10193() int32 { if x != nil && x.Field10193 != nil { return *x.Field10193 } return 0 } type Message8944 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field9045 *string `protobuf:"bytes,2,opt,name=field9045" json:"field9045,omitempty"` Field9046 *string `protobuf:"bytes,3,opt,name=field9046" json:"field9046,omitempty"` Field9047 *string `protobuf:"bytes,23,opt,name=field9047" json:"field9047,omitempty"` Field9048 *string `protobuf:"bytes,52,opt,name=field9048" json:"field9048,omitempty"` Field9049 *int32 `protobuf:"varint,53,opt,name=field9049" json:"field9049,omitempty"` Field9050 *int32 `protobuf:"varint,54,opt,name=field9050" json:"field9050,omitempty"` Field9051 *float32 `protobuf:"fixed32,55,opt,name=field9051" json:"field9051,omitempty"` Field9052 *float32 `protobuf:"fixed32,56,opt,name=field9052" json:"field9052,omitempty"` Field9053 *string `protobuf:"bytes,57,opt,name=field9053" json:"field9053,omitempty"` Field9054 *int64 `protobuf:"varint,1,opt,name=field9054" json:"field9054,omitempty"` Field9055 *bool `protobuf:"varint,4,opt,name=field9055" json:"field9055,omitempty"` Field9056 *int32 `protobuf:"varint,5,opt,name=field9056" json:"field9056,omitempty"` Field9057 *int32 `protobuf:"varint,6,opt,name=field9057" json:"field9057,omitempty"` Field9058 *int32 `protobuf:"varint,7,opt,name=field9058" json:"field9058,omitempty"` Field9059 *float32 `protobuf:"fixed32,8,opt,name=field9059" json:"field9059,omitempty"` Field9060 *float32 `protobuf:"fixed32,11,opt,name=field9060" json:"field9060,omitempty"` Field9061 *float32 `protobuf:"fixed32,9,opt,name=field9061" json:"field9061,omitempty"` Field9062 *float32 `protobuf:"fixed32,10,opt,name=field9062" json:"field9062,omitempty"` Field9063 *float32 `protobuf:"fixed32,13,opt,name=field9063" json:"field9063,omitempty"` Field9064 *bool `protobuf:"varint,14,opt,name=field9064" json:"field9064,omitempty"` Field9065 *float32 `protobuf:"fixed32,70,opt,name=field9065" json:"field9065,omitempty"` Field9066 *int32 `protobuf:"varint,71,opt,name=field9066" json:"field9066,omitempty"` Field9067 *Enum8945 `protobuf:"varint,15,opt,name=field9067,enum=benchmarks.google_message3.Enum8945" json:"field9067,omitempty"` Field9068 *int32 `protobuf:"varint,16,opt,name=field9068" json:"field9068,omitempty"` Field9069 *int32 `protobuf:"varint,17,opt,name=field9069" json:"field9069,omitempty"` Field9070 *float32 `protobuf:"fixed32,18,opt,name=field9070" json:"field9070,omitempty"` Field9071 *float32 `protobuf:"fixed32,19,opt,name=field9071" json:"field9071,omitempty"` Field9072 *int32 `protobuf:"varint,28,opt,name=field9072" json:"field9072,omitempty"` Field9073 *int32 `protobuf:"varint,29,opt,name=field9073" json:"field9073,omitempty"` Field9074 *float32 `protobuf:"fixed32,60,opt,name=field9074" json:"field9074,omitempty"` Field9075 *float32 `protobuf:"fixed32,61,opt,name=field9075" json:"field9075,omitempty"` Field9076 *int32 `protobuf:"varint,72,opt,name=field9076" json:"field9076,omitempty"` Field9077 *int32 `protobuf:"varint,73,opt,name=field9077" json:"field9077,omitempty"` Field9078 *Enum8951 `protobuf:"varint,62,opt,name=field9078,enum=benchmarks.google_message3.Enum8951" json:"field9078,omitempty"` Field9079 *string `protobuf:"bytes,20,opt,name=field9079" json:"field9079,omitempty"` Field9080 *string `protobuf:"bytes,21,opt,name=field9080" json:"field9080,omitempty"` Field9081 *string `protobuf:"bytes,22,opt,name=field9081" json:"field9081,omitempty"` Field9082 *float64 `protobuf:"fixed64,31,opt,name=field9082" json:"field9082,omitempty"` Field9083 *float64 `protobuf:"fixed64,32,opt,name=field9083" json:"field9083,omitempty"` Field9084 *float64 `protobuf:"fixed64,33,opt,name=field9084" json:"field9084,omitempty"` Field9085 *float64 `protobuf:"fixed64,36,opt,name=field9085" json:"field9085,omitempty"` Field9086 *UnusedEnum `protobuf:"varint,37,opt,name=field9086,enum=benchmarks.google_message3.UnusedEnum" json:"field9086,omitempty"` Field9087 *float64 `protobuf:"fixed64,38,opt,name=field9087" json:"field9087,omitempty"` Field9088 *float64 `protobuf:"fixed64,39,opt,name=field9088" json:"field9088,omitempty"` Field9089 *float64 `protobuf:"fixed64,63,opt,name=field9089" json:"field9089,omitempty"` Field9090 *float64 `protobuf:"fixed64,64,opt,name=field9090" json:"field9090,omitempty"` Field9091 *float64 `protobuf:"fixed64,65,opt,name=field9091" json:"field9091,omitempty"` Field9092 *float64 `protobuf:"fixed64,34,opt,name=field9092" json:"field9092,omitempty"` Field9093 *UnusedEnum `protobuf:"varint,35,opt,name=field9093,enum=benchmarks.google_message3.UnusedEnum" json:"field9093,omitempty"` Field9094 *UnusedEnum `protobuf:"varint,66,opt,name=field9094,enum=benchmarks.google_message3.UnusedEnum" json:"field9094,omitempty"` Field9095 *string `protobuf:"bytes,40,opt,name=field9095" json:"field9095,omitempty"` Field9096 *string `protobuf:"bytes,41,opt,name=field9096" json:"field9096,omitempty"` Field9097 *string `protobuf:"bytes,42,opt,name=field9097" json:"field9097,omitempty"` Field9098 *string `protobuf:"bytes,43,opt,name=field9098" json:"field9098,omitempty"` Field9099 *string `protobuf:"bytes,44,opt,name=field9099" json:"field9099,omitempty"` Field9100 *string `protobuf:"bytes,45,opt,name=field9100" json:"field9100,omitempty"` Field9101 *string `protobuf:"bytes,46,opt,name=field9101" json:"field9101,omitempty"` Field9102 *string `protobuf:"bytes,47,opt,name=field9102" json:"field9102,omitempty"` Field9103 *string `protobuf:"bytes,48,opt,name=field9103" json:"field9103,omitempty"` Field9104 *string `protobuf:"bytes,49,opt,name=field9104" json:"field9104,omitempty"` Field9105 *Message8939 `protobuf:"bytes,100,opt,name=field9105" json:"field9105,omitempty"` Field9106 *int64 `protobuf:"varint,101,opt,name=field9106" json:"field9106,omitempty"` } func (x *Message8944) Reset() { *x = Message8944{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8944) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8944) ProtoMessage() {} func (x *Message8944) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8944.ProtoReflect.Descriptor instead. func (*Message8944) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{2} } func (x *Message8944) GetField9045() string { if x != nil && x.Field9045 != nil { return *x.Field9045 } return "" } func (x *Message8944) GetField9046() string { if x != nil && x.Field9046 != nil { return *x.Field9046 } return "" } func (x *Message8944) GetField9047() string { if x != nil && x.Field9047 != nil { return *x.Field9047 } return "" } func (x *Message8944) GetField9048() string { if x != nil && x.Field9048 != nil { return *x.Field9048 } return "" } func (x *Message8944) GetField9049() int32 { if x != nil && x.Field9049 != nil { return *x.Field9049 } return 0 } func (x *Message8944) GetField9050() int32 { if x != nil && x.Field9050 != nil { return *x.Field9050 } return 0 } func (x *Message8944) GetField9051() float32 { if x != nil && x.Field9051 != nil { return *x.Field9051 } return 0 } func (x *Message8944) GetField9052() float32 { if x != nil && x.Field9052 != nil { return *x.Field9052 } return 0 } func (x *Message8944) GetField9053() string { if x != nil && x.Field9053 != nil { return *x.Field9053 } return "" } func (x *Message8944) GetField9054() int64 { if x != nil && x.Field9054 != nil { return *x.Field9054 } return 0 } func (x *Message8944) GetField9055() bool { if x != nil && x.Field9055 != nil { return *x.Field9055 } return false } func (x *Message8944) GetField9056() int32 { if x != nil && x.Field9056 != nil { return *x.Field9056 } return 0 } func (x *Message8944) GetField9057() int32 { if x != nil && x.Field9057 != nil { return *x.Field9057 } return 0 } func (x *Message8944) GetField9058() int32 { if x != nil && x.Field9058 != nil { return *x.Field9058 } return 0 } func (x *Message8944) GetField9059() float32 { if x != nil && x.Field9059 != nil { return *x.Field9059 } return 0 } func (x *Message8944) GetField9060() float32 { if x != nil && x.Field9060 != nil { return *x.Field9060 } return 0 } func (x *Message8944) GetField9061() float32 { if x != nil && x.Field9061 != nil { return *x.Field9061 } return 0 } func (x *Message8944) GetField9062() float32 { if x != nil && x.Field9062 != nil { return *x.Field9062 } return 0 } func (x *Message8944) GetField9063() float32 { if x != nil && x.Field9063 != nil { return *x.Field9063 } return 0 } func (x *Message8944) GetField9064() bool { if x != nil && x.Field9064 != nil { return *x.Field9064 } return false } func (x *Message8944) GetField9065() float32 { if x != nil && x.Field9065 != nil { return *x.Field9065 } return 0 } func (x *Message8944) GetField9066() int32 { if x != nil && x.Field9066 != nil { return *x.Field9066 } return 0 } func (x *Message8944) GetField9067() Enum8945 { if x != nil && x.Field9067 != nil { return *x.Field9067 } return Enum8945_ENUM_VALUE8946 } func (x *Message8944) GetField9068() int32 { if x != nil && x.Field9068 != nil { return *x.Field9068 } return 0 } func (x *Message8944) GetField9069() int32 { if x != nil && x.Field9069 != nil { return *x.Field9069 } return 0 } func (x *Message8944) GetField9070() float32 { if x != nil && x.Field9070 != nil { return *x.Field9070 } return 0 } func (x *Message8944) GetField9071() float32 { if x != nil && x.Field9071 != nil { return *x.Field9071 } return 0 } func (x *Message8944) GetField9072() int32 { if x != nil && x.Field9072 != nil { return *x.Field9072 } return 0 } func (x *Message8944) GetField9073() int32 { if x != nil && x.Field9073 != nil { return *x.Field9073 } return 0 } func (x *Message8944) GetField9074() float32 { if x != nil && x.Field9074 != nil { return *x.Field9074 } return 0 } func (x *Message8944) GetField9075() float32 { if x != nil && x.Field9075 != nil { return *x.Field9075 } return 0 } func (x *Message8944) GetField9076() int32 { if x != nil && x.Field9076 != nil { return *x.Field9076 } return 0 } func (x *Message8944) GetField9077() int32 { if x != nil && x.Field9077 != nil { return *x.Field9077 } return 0 } func (x *Message8944) GetField9078() Enum8951 { if x != nil && x.Field9078 != nil { return *x.Field9078 } return Enum8951_ENUM_VALUE8952 } func (x *Message8944) GetField9079() string { if x != nil && x.Field9079 != nil { return *x.Field9079 } return "" } func (x *Message8944) GetField9080() string { if x != nil && x.Field9080 != nil { return *x.Field9080 } return "" } func (x *Message8944) GetField9081() string { if x != nil && x.Field9081 != nil { return *x.Field9081 } return "" } func (x *Message8944) GetField9082() float64 { if x != nil && x.Field9082 != nil { return *x.Field9082 } return 0 } func (x *Message8944) GetField9083() float64 { if x != nil && x.Field9083 != nil { return *x.Field9083 } return 0 } func (x *Message8944) GetField9084() float64 { if x != nil && x.Field9084 != nil { return *x.Field9084 } return 0 } func (x *Message8944) GetField9085() float64 { if x != nil && x.Field9085 != nil { return *x.Field9085 } return 0 } func (x *Message8944) GetField9086() UnusedEnum { if x != nil && x.Field9086 != nil { return *x.Field9086 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message8944) GetField9087() float64 { if x != nil && x.Field9087 != nil { return *x.Field9087 } return 0 } func (x *Message8944) GetField9088() float64 { if x != nil && x.Field9088 != nil { return *x.Field9088 } return 0 } func (x *Message8944) GetField9089() float64 { if x != nil && x.Field9089 != nil { return *x.Field9089 } return 0 } func (x *Message8944) GetField9090() float64 { if x != nil && x.Field9090 != nil { return *x.Field9090 } return 0 } func (x *Message8944) GetField9091() float64 { if x != nil && x.Field9091 != nil { return *x.Field9091 } return 0 } func (x *Message8944) GetField9092() float64 { if x != nil && x.Field9092 != nil { return *x.Field9092 } return 0 } func (x *Message8944) GetField9093() UnusedEnum { if x != nil && x.Field9093 != nil { return *x.Field9093 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message8944) GetField9094() UnusedEnum { if x != nil && x.Field9094 != nil { return *x.Field9094 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message8944) GetField9095() string { if x != nil && x.Field9095 != nil { return *x.Field9095 } return "" } func (x *Message8944) GetField9096() string { if x != nil && x.Field9096 != nil { return *x.Field9096 } return "" } func (x *Message8944) GetField9097() string { if x != nil && x.Field9097 != nil { return *x.Field9097 } return "" } func (x *Message8944) GetField9098() string { if x != nil && x.Field9098 != nil { return *x.Field9098 } return "" } func (x *Message8944) GetField9099() string { if x != nil && x.Field9099 != nil { return *x.Field9099 } return "" } func (x *Message8944) GetField9100() string { if x != nil && x.Field9100 != nil { return *x.Field9100 } return "" } func (x *Message8944) GetField9101() string { if x != nil && x.Field9101 != nil { return *x.Field9101 } return "" } func (x *Message8944) GetField9102() string { if x != nil && x.Field9102 != nil { return *x.Field9102 } return "" } func (x *Message8944) GetField9103() string { if x != nil && x.Field9103 != nil { return *x.Field9103 } return "" } func (x *Message8944) GetField9104() string { if x != nil && x.Field9104 != nil { return *x.Field9104 } return "" } func (x *Message8944) GetField9105() *Message8939 { if x != nil { return x.Field9105 } return nil } func (x *Message8944) GetField9106() int64 { if x != nil && x.Field9106 != nil { return *x.Field9106 } return 0 } type Message9182 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields Field9205 *string `protobuf:"bytes,1,opt,name=field9205" json:"field9205,omitempty"` Field9206 *string `protobuf:"bytes,2,opt,name=field9206" json:"field9206,omitempty"` Field9207 *float32 `protobuf:"fixed32,16,opt,name=field9207" json:"field9207,omitempty"` Field9208 *int32 `protobuf:"varint,17,opt,name=field9208" json:"field9208,omitempty"` Field9209 *int32 `protobuf:"varint,27,opt,name=field9209" json:"field9209,omitempty"` Field9210 *int32 `protobuf:"varint,7,opt,name=field9210" json:"field9210,omitempty"` Field9211 *int32 `protobuf:"varint,8,opt,name=field9211" json:"field9211,omitempty"` Field9212 *float32 `protobuf:"fixed32,26,opt,name=field9212" json:"field9212,omitempty"` Field9213 *float32 `protobuf:"fixed32,22,opt,name=field9213" json:"field9213,omitempty"` Field9214 *bool `protobuf:"varint,28,opt,name=field9214" json:"field9214,omitempty"` Field9215 []*UnusedEmptyMessage `protobuf:"bytes,21,rep,name=field9215" json:"field9215,omitempty"` Field9216 []*UnusedEmptyMessage `protobuf:"bytes,25,rep,name=field9216" json:"field9216,omitempty"` Field9217 []*Message9181 `protobuf:"bytes,29,rep,name=field9217" json:"field9217,omitempty"` Field9218 *bool `protobuf:"varint,18,opt,name=field9218" json:"field9218,omitempty"` Field9219 *bool `protobuf:"varint,19,opt,name=field9219" json:"field9219,omitempty"` Field9220 *bool `protobuf:"varint,20,opt,name=field9220" json:"field9220,omitempty"` Field9221 *Message9164 `protobuf:"bytes,30,opt,name=field9221" json:"field9221,omitempty"` Field9222 *Message9165 `protobuf:"bytes,31,opt,name=field9222" json:"field9222,omitempty"` Field9223 *Message9166 `protobuf:"bytes,32,opt,name=field9223" json:"field9223,omitempty"` Field9224 *float32 `protobuf:"fixed32,33,opt,name=field9224" json:"field9224,omitempty"` Field9225 *Message9151 `protobuf:"bytes,34,opt,name=field9225" json:"field9225,omitempty"` Field9226 *float32 `protobuf:"fixed32,35,opt,name=field9226" json:"field9226,omitempty"` Field9227 *float32 `protobuf:"fixed32,36,opt,name=field9227" json:"field9227,omitempty"` Field9228 *float32 `protobuf:"fixed32,37,opt,name=field9228" json:"field9228,omitempty"` Field9229 *float32 `protobuf:"fixed32,38,opt,name=field9229" json:"field9229,omitempty"` Field9230 *float32 `protobuf:"fixed32,39,opt,name=field9230" json:"field9230,omitempty"` } func (x *Message9182) Reset() { *x = Message9182{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message9182) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message9182) ProtoMessage() {} func (x *Message9182) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message9182.ProtoReflect.Descriptor instead. func (*Message9182) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{3} } func (x *Message9182) GetField9205() string { if x != nil && x.Field9205 != nil { return *x.Field9205 } return "" } func (x *Message9182) GetField9206() string { if x != nil && x.Field9206 != nil { return *x.Field9206 } return "" } func (x *Message9182) GetField9207() float32 { if x != nil && x.Field9207 != nil { return *x.Field9207 } return 0 } func (x *Message9182) GetField9208() int32 { if x != nil && x.Field9208 != nil { return *x.Field9208 } return 0 } func (x *Message9182) GetField9209() int32 { if x != nil && x.Field9209 != nil { return *x.Field9209 } return 0 } func (x *Message9182) GetField9210() int32 { if x != nil && x.Field9210 != nil { return *x.Field9210 } return 0 } func (x *Message9182) GetField9211() int32 { if x != nil && x.Field9211 != nil { return *x.Field9211 } return 0 } func (x *Message9182) GetField9212() float32 { if x != nil && x.Field9212 != nil { return *x.Field9212 } return 0 } func (x *Message9182) GetField9213() float32 { if x != nil && x.Field9213 != nil { return *x.Field9213 } return 0 } func (x *Message9182) GetField9214() bool { if x != nil && x.Field9214 != nil { return *x.Field9214 } return false } func (x *Message9182) GetField9215() []*UnusedEmptyMessage { if x != nil { return x.Field9215 } return nil } func (x *Message9182) GetField9216() []*UnusedEmptyMessage { if x != nil { return x.Field9216 } return nil } func (x *Message9182) GetField9217() []*Message9181 { if x != nil { return x.Field9217 } return nil } func (x *Message9182) GetField9218() bool { if x != nil && x.Field9218 != nil { return *x.Field9218 } return false } func (x *Message9182) GetField9219() bool { if x != nil && x.Field9219 != nil { return *x.Field9219 } return false } func (x *Message9182) GetField9220() bool { if x != nil && x.Field9220 != nil { return *x.Field9220 } return false } func (x *Message9182) GetField9221() *Message9164 { if x != nil { return x.Field9221 } return nil } func (x *Message9182) GetField9222() *Message9165 { if x != nil { return x.Field9222 } return nil } func (x *Message9182) GetField9223() *Message9166 { if x != nil { return x.Field9223 } return nil } func (x *Message9182) GetField9224() float32 { if x != nil && x.Field9224 != nil { return *x.Field9224 } return 0 } func (x *Message9182) GetField9225() *Message9151 { if x != nil { return x.Field9225 } return nil } func (x *Message9182) GetField9226() float32 { if x != nil && x.Field9226 != nil { return *x.Field9226 } return 0 } func (x *Message9182) GetField9227() float32 { if x != nil && x.Field9227 != nil { return *x.Field9227 } return 0 } func (x *Message9182) GetField9228() float32 { if x != nil && x.Field9228 != nil { return *x.Field9228 } return 0 } func (x *Message9182) GetField9229() float32 { if x != nil && x.Field9229 != nil { return *x.Field9229 } return 0 } func (x *Message9182) GetField9230() float32 { if x != nil && x.Field9230 != nil { return *x.Field9230 } return 0 } type Message9160 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field9161 *int32 `protobuf:"varint,1,opt,name=field9161" json:"field9161,omitempty"` Field9162 []byte `protobuf:"bytes,2,opt,name=field9162" json:"field9162,omitempty"` } func (x *Message9160) Reset() { *x = Message9160{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message9160) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message9160) ProtoMessage() {} func (x *Message9160) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message9160.ProtoReflect.Descriptor instead. func (*Message9160) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{4} } func (x *Message9160) GetField9161() int32 { if x != nil && x.Field9161 != nil { return *x.Field9161 } return 0 } func (x *Message9160) GetField9162() []byte { if x != nil { return x.Field9162 } return nil } type Message9242 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field9327 []Enum9243 `protobuf:"varint,1,rep,name=field9327,enum=benchmarks.google_message3.Enum9243" json:"field9327,omitempty"` } func (x *Message9242) Reset() { *x = Message9242{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message9242) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message9242) ProtoMessage() {} func (x *Message9242) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message9242.ProtoReflect.Descriptor instead. func (*Message9242) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{5} } func (x *Message9242) GetField9327() []Enum9243 { if x != nil { return x.Field9327 } return nil } type Message8890 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8916 []*Message8888 `protobuf:"bytes,1,rep,name=field8916" json:"field8916,omitempty"` } func (x *Message8890) Reset() { *x = Message8890{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8890) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8890) ProtoMessage() {} func (x *Message8890) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8890.ProtoReflect.Descriptor instead. func (*Message8890) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{6} } func (x *Message8890) GetField8916() []*Message8888 { if x != nil { return x.Field8916 } return nil } type Message9123 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field9135 *float32 `protobuf:"fixed32,1,opt,name=field9135" json:"field9135,omitempty"` } func (x *Message9123) Reset() { *x = Message9123{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message9123) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message9123) ProtoMessage() {} func (x *Message9123) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message9123.ProtoReflect.Descriptor instead. func (*Message9123) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{7} } func (x *Message9123) GetField9135() float32 { if x != nil && x.Field9135 != nil { return *x.Field9135 } return 0 } type Message9628 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field9673 *Message9627 `protobuf:"bytes,1,opt,name=field9673" json:"field9673,omitempty"` Field9674 *string `protobuf:"bytes,2,opt,name=field9674" json:"field9674,omitempty"` Field9675 []int32 `protobuf:"varint,3,rep,name=field9675" json:"field9675,omitempty"` Field9676 *int32 `protobuf:"varint,4,opt,name=field9676" json:"field9676,omitempty"` } func (x *Message9628) Reset() { *x = Message9628{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message9628) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message9628) ProtoMessage() {} func (x *Message9628) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message9628.ProtoReflect.Descriptor instead. func (*Message9628) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{8} } func (x *Message9628) GetField9673() *Message9627 { if x != nil { return x.Field9673 } return nil } func (x *Message9628) GetField9674() string { if x != nil && x.Field9674 != nil { return *x.Field9674 } return "" } func (x *Message9628) GetField9675() []int32 { if x != nil { return x.Field9675 } return nil } func (x *Message9628) GetField9676() int32 { if x != nil && x.Field9676 != nil { return *x.Field9676 } return 0 } type Message11014 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field11780 *int32 `protobuf:"varint,40,opt,name=field11780" json:"field11780,omitempty"` Field11781 *string `protobuf:"bytes,46,opt,name=field11781" json:"field11781,omitempty"` Field11782 *bool `protobuf:"varint,47,opt,name=field11782" json:"field11782,omitempty"` Field11783 *Enum11107 `protobuf:"varint,1,opt,name=field11783,enum=benchmarks.google_message3.Enum11107" json:"field11783,omitempty"` Field11784 *int32 `protobuf:"varint,2,opt,name=field11784" json:"field11784,omitempty"` Field11785 *float64 `protobuf:"fixed64,4,opt,name=field11785" json:"field11785,omitempty"` Field11786 *int32 `protobuf:"varint,5,opt,name=field11786" json:"field11786,omitempty"` Field11787 *int32 `protobuf:"varint,6,opt,name=field11787" json:"field11787,omitempty"` Field11788 *float64 `protobuf:"fixed64,7,opt,name=field11788" json:"field11788,omitempty"` Field11789 *float64 `protobuf:"fixed64,8,opt,name=field11789" json:"field11789,omitempty"` Field11790 *int64 `protobuf:"varint,9,opt,name=field11790" json:"field11790,omitempty"` Field11791 *bool `protobuf:"varint,10,opt,name=field11791" json:"field11791,omitempty"` Field11792 *int64 `protobuf:"varint,28,opt,name=field11792" json:"field11792,omitempty"` Field11793 *bool `protobuf:"varint,37,opt,name=field11793" json:"field11793,omitempty"` Field11794 *Enum11541 `protobuf:"varint,44,opt,name=field11794,enum=benchmarks.google_message3.Enum11541" json:"field11794,omitempty"` Field11795 *float64 `protobuf:"fixed64,49,opt,name=field11795" json:"field11795,omitempty"` Field11796 *float64 `protobuf:"fixed64,51,opt,name=field11796" json:"field11796,omitempty"` Field11797 *int64 `protobuf:"varint,54,opt,name=field11797" json:"field11797,omitempty"` Field11798 *int64 `protobuf:"varint,55,opt,name=field11798" json:"field11798,omitempty"` Field11799 *UnusedEnum `protobuf:"varint,57,opt,name=field11799,enum=benchmarks.google_message3.UnusedEnum" json:"field11799,omitempty"` Field11800 *Enum11468 `protobuf:"varint,58,opt,name=field11800,enum=benchmarks.google_message3.Enum11468" json:"field11800,omitempty"` Field11801 *int32 `protobuf:"varint,59,opt,name=field11801" json:"field11801,omitempty"` Field11802 *UnusedEnum `protobuf:"varint,60,opt,name=field11802,enum=benchmarks.google_message3.UnusedEnum" json:"field11802,omitempty"` Field11803 *int32 `protobuf:"varint,61,opt,name=field11803" json:"field11803,omitempty"` Field11804 *int32 `protobuf:"varint,62,opt,name=field11804" json:"field11804,omitempty"` Field11805 *int32 `protobuf:"varint,69,opt,name=field11805" json:"field11805,omitempty"` Field11806 *UnusedEmptyMessage `protobuf:"bytes,68,opt,name=field11806" json:"field11806,omitempty"` Field11807 []*Message11018 `protobuf:"bytes,71,rep,name=field11807" json:"field11807,omitempty"` Field11808 *bool `protobuf:"varint,50,opt,name=field11808" json:"field11808,omitempty"` Field11809 *bool `protobuf:"varint,56,opt,name=field11809" json:"field11809,omitempty"` Field11810 *bool `protobuf:"varint,66,opt,name=field11810" json:"field11810,omitempty"` Field11811 *bool `protobuf:"varint,63,opt,name=field11811" json:"field11811,omitempty"` Field11812 *bool `protobuf:"varint,64,opt,name=field11812" json:"field11812,omitempty"` Field11813 *bool `protobuf:"varint,65,opt,name=field11813" json:"field11813,omitempty"` Field11814 *bool `protobuf:"varint,67,opt,name=field11814" json:"field11814,omitempty"` Field11815 *Enum11107 `protobuf:"varint,15,opt,name=field11815,enum=benchmarks.google_message3.Enum11107" json:"field11815,omitempty"` Field11816 *int64 `protobuf:"varint,16,opt,name=field11816" json:"field11816,omitempty"` Field11817 *float64 `protobuf:"fixed64,17,opt,name=field11817" json:"field11817,omitempty"` Field11818 *int64 `protobuf:"varint,18,opt,name=field11818" json:"field11818,omitempty"` Field11819 *int32 `protobuf:"varint,19,opt,name=field11819" json:"field11819,omitempty"` Field11820 *int64 `protobuf:"varint,20,opt,name=field11820" json:"field11820,omitempty"` Field11821 *int32 `protobuf:"varint,42,opt,name=field11821" json:"field11821,omitempty"` Field11822 *int64 `protobuf:"varint,52,opt,name=field11822" json:"field11822,omitempty"` Field11823 *int64 `protobuf:"varint,53,opt,name=field11823" json:"field11823,omitempty"` Field11824 *int64 `protobuf:"varint,41,opt,name=field11824" json:"field11824,omitempty"` Field11825 *float64 `protobuf:"fixed64,48,opt,name=field11825" json:"field11825,omitempty"` Field11826 []*Message11020 `protobuf:"bytes,70,rep,name=field11826" json:"field11826,omitempty"` Field11827 []*UnusedEmptyMessage `protobuf:"bytes,72,rep,name=field11827" json:"field11827,omitempty"` Field11828 *float64 `protobuf:"fixed64,25,opt,name=field11828" json:"field11828,omitempty"` Field11829 *string `protobuf:"bytes,26,opt,name=field11829" json:"field11829,omitempty"` Field11830 *int64 `protobuf:"varint,27,opt,name=field11830" json:"field11830,omitempty"` Field11831 *int64 `protobuf:"varint,32,opt,name=field11831" json:"field11831,omitempty"` Field11832 *uint64 `protobuf:"varint,33,opt,name=field11832" json:"field11832,omitempty"` Field11833 *bool `protobuf:"varint,29,opt,name=field11833" json:"field11833,omitempty"` Field11834 *bool `protobuf:"varint,34,opt,name=field11834" json:"field11834,omitempty"` Field11835 *string `protobuf:"bytes,30,opt,name=field11835" json:"field11835,omitempty"` Field11836 *int32 `protobuf:"varint,3,opt,name=field11836" json:"field11836,omitempty"` Field11837 *int32 `protobuf:"varint,31,opt,name=field11837" json:"field11837,omitempty"` Field11838 *int32 `protobuf:"varint,73,opt,name=field11838" json:"field11838,omitempty"` Field11839 *int32 `protobuf:"varint,35,opt,name=field11839" json:"field11839,omitempty"` Field11840 *Enum11022 `protobuf:"varint,36,opt,name=field11840,enum=benchmarks.google_message3.Enum11022" json:"field11840,omitempty"` Field11841 *Message11013 `protobuf:"bytes,38,opt,name=field11841" json:"field11841,omitempty"` Field11842 *float64 `protobuf:"fixed64,39,opt,name=field11842" json:"field11842,omitempty"` Field11843 *int32 `protobuf:"varint,45,opt,name=field11843" json:"field11843,omitempty"` Field11844 *bool `protobuf:"varint,74,opt,name=field11844" json:"field11844,omitempty"` } func (x *Message11014) Reset() { *x = Message11014{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message11014) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message11014) ProtoMessage() {} func (x *Message11014) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message11014.ProtoReflect.Descriptor instead. func (*Message11014) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{9} } func (x *Message11014) GetField11780() int32 { if x != nil && x.Field11780 != nil { return *x.Field11780 } return 0 } func (x *Message11014) GetField11781() string { if x != nil && x.Field11781 != nil { return *x.Field11781 } return "" } func (x *Message11014) GetField11782() bool { if x != nil && x.Field11782 != nil { return *x.Field11782 } return false } func (x *Message11014) GetField11783() Enum11107 { if x != nil && x.Field11783 != nil { return *x.Field11783 } return Enum11107_ENUM_VALUE11108 } func (x *Message11014) GetField11784() int32 { if x != nil && x.Field11784 != nil { return *x.Field11784 } return 0 } func (x *Message11014) GetField11785() float64 { if x != nil && x.Field11785 != nil { return *x.Field11785 } return 0 } func (x *Message11014) GetField11786() int32 { if x != nil && x.Field11786 != nil { return *x.Field11786 } return 0 } func (x *Message11014) GetField11787() int32 { if x != nil && x.Field11787 != nil { return *x.Field11787 } return 0 } func (x *Message11014) GetField11788() float64 { if x != nil && x.Field11788 != nil { return *x.Field11788 } return 0 } func (x *Message11014) GetField11789() float64 { if x != nil && x.Field11789 != nil { return *x.Field11789 } return 0 } func (x *Message11014) GetField11790() int64 { if x != nil && x.Field11790 != nil { return *x.Field11790 } return 0 } func (x *Message11014) GetField11791() bool { if x != nil && x.Field11791 != nil { return *x.Field11791 } return false } func (x *Message11014) GetField11792() int64 { if x != nil && x.Field11792 != nil { return *x.Field11792 } return 0 } func (x *Message11014) GetField11793() bool { if x != nil && x.Field11793 != nil { return *x.Field11793 } return false } func (x *Message11014) GetField11794() Enum11541 { if x != nil && x.Field11794 != nil { return *x.Field11794 } return Enum11541_ENUM_VALUE11542 } func (x *Message11014) GetField11795() float64 { if x != nil && x.Field11795 != nil { return *x.Field11795 } return 0 } func (x *Message11014) GetField11796() float64 { if x != nil && x.Field11796 != nil { return *x.Field11796 } return 0 } func (x *Message11014) GetField11797() int64 { if x != nil && x.Field11797 != nil { return *x.Field11797 } return 0 } func (x *Message11014) GetField11798() int64 { if x != nil && x.Field11798 != nil { return *x.Field11798 } return 0 } func (x *Message11014) GetField11799() UnusedEnum { if x != nil && x.Field11799 != nil { return *x.Field11799 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message11014) GetField11800() Enum11468 { if x != nil && x.Field11800 != nil { return *x.Field11800 } return Enum11468_ENUM_VALUE11469 } func (x *Message11014) GetField11801() int32 { if x != nil && x.Field11801 != nil { return *x.Field11801 } return 0 } func (x *Message11014) GetField11802() UnusedEnum { if x != nil && x.Field11802 != nil { return *x.Field11802 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message11014) GetField11803() int32 { if x != nil && x.Field11803 != nil { return *x.Field11803 } return 0 } func (x *Message11014) GetField11804() int32 { if x != nil && x.Field11804 != nil { return *x.Field11804 } return 0 } func (x *Message11014) GetField11805() int32 { if x != nil && x.Field11805 != nil { return *x.Field11805 } return 0 } func (x *Message11014) GetField11806() *UnusedEmptyMessage { if x != nil { return x.Field11806 } return nil } func (x *Message11014) GetField11807() []*Message11018 { if x != nil { return x.Field11807 } return nil } func (x *Message11014) GetField11808() bool { if x != nil && x.Field11808 != nil { return *x.Field11808 } return false } func (x *Message11014) GetField11809() bool { if x != nil && x.Field11809 != nil { return *x.Field11809 } return false } func (x *Message11014) GetField11810() bool { if x != nil && x.Field11810 != nil { return *x.Field11810 } return false } func (x *Message11014) GetField11811() bool { if x != nil && x.Field11811 != nil { return *x.Field11811 } return false } func (x *Message11014) GetField11812() bool { if x != nil && x.Field11812 != nil { return *x.Field11812 } return false } func (x *Message11014) GetField11813() bool { if x != nil && x.Field11813 != nil { return *x.Field11813 } return false } func (x *Message11014) GetField11814() bool { if x != nil && x.Field11814 != nil { return *x.Field11814 } return false } func (x *Message11014) GetField11815() Enum11107 { if x != nil && x.Field11815 != nil { return *x.Field11815 } return Enum11107_ENUM_VALUE11108 } func (x *Message11014) GetField11816() int64 { if x != nil && x.Field11816 != nil { return *x.Field11816 } return 0 } func (x *Message11014) GetField11817() float64 { if x != nil && x.Field11817 != nil { return *x.Field11817 } return 0 } func (x *Message11014) GetField11818() int64 { if x != nil && x.Field11818 != nil { return *x.Field11818 } return 0 } func (x *Message11014) GetField11819() int32 { if x != nil && x.Field11819 != nil { return *x.Field11819 } return 0 } func (x *Message11014) GetField11820() int64 { if x != nil && x.Field11820 != nil { return *x.Field11820 } return 0 } func (x *Message11014) GetField11821() int32 { if x != nil && x.Field11821 != nil { return *x.Field11821 } return 0 } func (x *Message11014) GetField11822() int64 { if x != nil && x.Field11822 != nil { return *x.Field11822 } return 0 } func (x *Message11014) GetField11823() int64 { if x != nil && x.Field11823 != nil { return *x.Field11823 } return 0 } func (x *Message11014) GetField11824() int64 { if x != nil && x.Field11824 != nil { return *x.Field11824 } return 0 } func (x *Message11014) GetField11825() float64 { if x != nil && x.Field11825 != nil { return *x.Field11825 } return 0 } func (x *Message11014) GetField11826() []*Message11020 { if x != nil { return x.Field11826 } return nil } func (x *Message11014) GetField11827() []*UnusedEmptyMessage { if x != nil { return x.Field11827 } return nil } func (x *Message11014) GetField11828() float64 { if x != nil && x.Field11828 != nil { return *x.Field11828 } return 0 } func (x *Message11014) GetField11829() string { if x != nil && x.Field11829 != nil { return *x.Field11829 } return "" } func (x *Message11014) GetField11830() int64 { if x != nil && x.Field11830 != nil { return *x.Field11830 } return 0 } func (x *Message11014) GetField11831() int64 { if x != nil && x.Field11831 != nil { return *x.Field11831 } return 0 } func (x *Message11014) GetField11832() uint64 { if x != nil && x.Field11832 != nil { return *x.Field11832 } return 0 } func (x *Message11014) GetField11833() bool { if x != nil && x.Field11833 != nil { return *x.Field11833 } return false } func (x *Message11014) GetField11834() bool { if x != nil && x.Field11834 != nil { return *x.Field11834 } return false } func (x *Message11014) GetField11835() string { if x != nil && x.Field11835 != nil { return *x.Field11835 } return "" } func (x *Message11014) GetField11836() int32 { if x != nil && x.Field11836 != nil { return *x.Field11836 } return 0 } func (x *Message11014) GetField11837() int32 { if x != nil && x.Field11837 != nil { return *x.Field11837 } return 0 } func (x *Message11014) GetField11838() int32 { if x != nil && x.Field11838 != nil { return *x.Field11838 } return 0 } func (x *Message11014) GetField11839() int32 { if x != nil && x.Field11839 != nil { return *x.Field11839 } return 0 } func (x *Message11014) GetField11840() Enum11022 { if x != nil && x.Field11840 != nil { return *x.Field11840 } return Enum11022_ENUM_VALUE11023 } func (x *Message11014) GetField11841() *Message11013 { if x != nil { return x.Field11841 } return nil } func (x *Message11014) GetField11842() float64 { if x != nil && x.Field11842 != nil { return *x.Field11842 } return 0 } func (x *Message11014) GetField11843() int32 { if x != nil && x.Field11843 != nil { return *x.Field11843 } return 0 } func (x *Message11014) GetField11844() bool { if x != nil && x.Field11844 != nil { return *x.Field11844 } return false } type Message10801 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field10812 *Message10800 `protobuf:"bytes,1,opt,name=field10812" json:"field10812,omitempty"` Field10813 []*Message10802 `protobuf:"bytes,2,rep,name=field10813" json:"field10813,omitempty"` Field10814 *int32 `protobuf:"varint,3,opt,name=field10814" json:"field10814,omitempty"` } func (x *Message10801) Reset() { *x = Message10801{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10801) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10801) ProtoMessage() {} func (x *Message10801) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10801.ProtoReflect.Descriptor instead. func (*Message10801) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{10} } func (x *Message10801) GetField10812() *Message10800 { if x != nil { return x.Field10812 } return nil } func (x *Message10801) GetField10813() []*Message10802 { if x != nil { return x.Field10813 } return nil } func (x *Message10801) GetField10814() int32 { if x != nil && x.Field10814 != nil { return *x.Field10814 } return 0 } type Message10749 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field10754 []*Message10748 `protobuf:"bytes,1,rep,name=field10754" json:"field10754,omitempty"` } func (x *Message10749) Reset() { *x = Message10749{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10749) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10749) ProtoMessage() {} func (x *Message10749) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10749.ProtoReflect.Descriptor instead. func (*Message10749) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{11} } func (x *Message10749) GetField10754() []*Message10748 { if x != nil { return x.Field10754 } return nil } type Message8298 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8321 *Message7966 `protobuf:"bytes,1,opt,name=field8321" json:"field8321,omitempty"` Field8322 *int64 `protobuf:"varint,2,opt,name=field8322" json:"field8322,omitempty"` Field8323 *string `protobuf:"bytes,3,opt,name=field8323" json:"field8323,omitempty"` } func (x *Message8298) Reset() { *x = Message8298{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8298) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8298) ProtoMessage() {} func (x *Message8298) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8298.ProtoReflect.Descriptor instead. func (*Message8298) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{12} } func (x *Message8298) GetField8321() *Message7966 { if x != nil { return x.Field8321 } return nil } func (x *Message8298) GetField8322() int64 { if x != nil && x.Field8322 != nil { return *x.Field8322 } return 0 } func (x *Message8298) GetField8323() string { if x != nil && x.Field8323 != nil { return *x.Field8323 } return "" } type Message8300 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8326 *string `protobuf:"bytes,1,opt,name=field8326" json:"field8326,omitempty"` Field8327 *Message7966 `protobuf:"bytes,2,opt,name=field8327" json:"field8327,omitempty"` } func (x *Message8300) Reset() { *x = Message8300{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8300) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8300) ProtoMessage() {} func (x *Message8300) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8300.ProtoReflect.Descriptor instead. func (*Message8300) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{13} } func (x *Message8300) GetField8326() string { if x != nil && x.Field8326 != nil { return *x.Field8326 } return "" } func (x *Message8300) GetField8327() *Message7966 { if x != nil { return x.Field8327 } return nil } type Message8291 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8306 *string `protobuf:"bytes,1,opt,name=field8306" json:"field8306,omitempty"` Field8307 *int32 `protobuf:"varint,2,opt,name=field8307" json:"field8307,omitempty"` Field8308 *string `protobuf:"bytes,3,opt,name=field8308" json:"field8308,omitempty"` Field8309 *string `protobuf:"bytes,4,opt,name=field8309" json:"field8309,omitempty"` Field8310 *Enum8292 `protobuf:"varint,5,opt,name=field8310,enum=benchmarks.google_message3.Enum8292" json:"field8310,omitempty"` } func (x *Message8291) Reset() { *x = Message8291{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8291) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8291) ProtoMessage() {} func (x *Message8291) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8291.ProtoReflect.Descriptor instead. func (*Message8291) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{14} } func (x *Message8291) GetField8306() string { if x != nil && x.Field8306 != nil { return *x.Field8306 } return "" } func (x *Message8291) GetField8307() int32 { if x != nil && x.Field8307 != nil { return *x.Field8307 } return 0 } func (x *Message8291) GetField8308() string { if x != nil && x.Field8308 != nil { return *x.Field8308 } return "" } func (x *Message8291) GetField8309() string { if x != nil && x.Field8309 != nil { return *x.Field8309 } return "" } func (x *Message8291) GetField8310() Enum8292 { if x != nil && x.Field8310 != nil { return *x.Field8310 } return Enum8292_ENUM_VALUE8293 } type Message8296 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8311 *Message7966 `protobuf:"bytes,1,opt,name=field8311" json:"field8311,omitempty"` Field8312 *string `protobuf:"bytes,2,opt,name=field8312" json:"field8312,omitempty"` Field8313 *Message7966 `protobuf:"bytes,3,opt,name=field8313" json:"field8313,omitempty"` Field8314 *int32 `protobuf:"varint,4,opt,name=field8314" json:"field8314,omitempty"` Field8315 *int32 `protobuf:"varint,5,opt,name=field8315" json:"field8315,omitempty"` Field8316 *string `protobuf:"bytes,6,opt,name=field8316" json:"field8316,omitempty"` } func (x *Message8296) Reset() { *x = Message8296{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8296) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8296) ProtoMessage() {} func (x *Message8296) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8296.ProtoReflect.Descriptor instead. func (*Message8296) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{15} } func (x *Message8296) GetField8311() *Message7966 { if x != nil { return x.Field8311 } return nil } func (x *Message8296) GetField8312() string { if x != nil && x.Field8312 != nil { return *x.Field8312 } return "" } func (x *Message8296) GetField8313() *Message7966 { if x != nil { return x.Field8313 } return nil } func (x *Message8296) GetField8314() int32 { if x != nil && x.Field8314 != nil { return *x.Field8314 } return 0 } func (x *Message8296) GetField8315() int32 { if x != nil && x.Field8315 != nil { return *x.Field8315 } return 0 } func (x *Message8296) GetField8316() string { if x != nil && x.Field8316 != nil { return *x.Field8316 } return "" } type Message7965 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7967 *int32 `protobuf:"varint,1,opt,name=field7967" json:"field7967,omitempty"` Field7968 *int32 `protobuf:"varint,2,opt,name=field7968" json:"field7968,omitempty"` } func (x *Message7965) Reset() { *x = Message7965{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7965) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7965) ProtoMessage() {} func (x *Message7965) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7965.ProtoReflect.Descriptor instead. func (*Message7965) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{16} } func (x *Message7965) GetField7967() int32 { if x != nil && x.Field7967 != nil { return *x.Field7967 } return 0 } func (x *Message7965) GetField7968() int32 { if x != nil && x.Field7968 != nil { return *x.Field7968 } return 0 } type Message8290 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8304 *string `protobuf:"bytes,1,opt,name=field8304" json:"field8304,omitempty"` Field8305 *string `protobuf:"bytes,2,opt,name=field8305" json:"field8305,omitempty"` } func (x *Message8290) Reset() { *x = Message8290{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8290) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8290) ProtoMessage() {} func (x *Message8290) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8290.ProtoReflect.Descriptor instead. func (*Message8290) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{17} } func (x *Message8290) GetField8304() string { if x != nil && x.Field8304 != nil { return *x.Field8304 } return "" } func (x *Message8290) GetField8305() string { if x != nil && x.Field8305 != nil { return *x.Field8305 } return "" } type Message717 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field876 []string `protobuf:"bytes,1,rep,name=field876" json:"field876,omitempty"` Field877 *float64 `protobuf:"fixed64,2,opt,name=field877" json:"field877,omitempty"` } func (x *Message717) Reset() { *x = Message717{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message717) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message717) ProtoMessage() {} func (x *Message717) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message717.ProtoReflect.Descriptor instead. func (*Message717) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{18} } func (x *Message717) GetField876() []string { if x != nil { return x.Field876 } return nil } func (x *Message717) GetField877() float64 { if x != nil && x.Field877 != nil { return *x.Field877 } return 0 } type Message713 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field852 *Message708 `protobuf:"bytes,1,req,name=field852" json:"field852,omitempty"` Field853 []string `protobuf:"bytes,2,rep,name=field853" json:"field853,omitempty"` } func (x *Message713) Reset() { *x = Message713{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message713) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message713) ProtoMessage() {} func (x *Message713) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message713.ProtoReflect.Descriptor instead. func (*Message713) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{19} } func (x *Message713) GetField852() *Message708 { if x != nil { return x.Field852 } return nil } func (x *Message713) GetField853() []string { if x != nil { return x.Field853 } return nil } type Message705 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field807 *string `protobuf:"bytes,1,req,name=field807" json:"field807,omitempty"` Field808 *string `protobuf:"bytes,2,opt,name=field808" json:"field808,omitempty"` Field809 *string `protobuf:"bytes,3,opt,name=field809" json:"field809,omitempty"` Field810 *bool `protobuf:"varint,4,opt,name=field810" json:"field810,omitempty"` Field811 *string `protobuf:"bytes,5,opt,name=field811" json:"field811,omitempty"` Field812 *string `protobuf:"bytes,6,opt,name=field812" json:"field812,omitempty"` Field813 []string `protobuf:"bytes,7,rep,name=field813" json:"field813,omitempty"` } func (x *Message705) Reset() { *x = Message705{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message705) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message705) ProtoMessage() {} func (x *Message705) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message705.ProtoReflect.Descriptor instead. func (*Message705) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{20} } func (x *Message705) GetField807() string { if x != nil && x.Field807 != nil { return *x.Field807 } return "" } func (x *Message705) GetField808() string { if x != nil && x.Field808 != nil { return *x.Field808 } return "" } func (x *Message705) GetField809() string { if x != nil && x.Field809 != nil { return *x.Field809 } return "" } func (x *Message705) GetField810() bool { if x != nil && x.Field810 != nil { return *x.Field810 } return false } func (x *Message705) GetField811() string { if x != nil && x.Field811 != nil { return *x.Field811 } return "" } func (x *Message705) GetField812() string { if x != nil && x.Field812 != nil { return *x.Field812 } return "" } func (x *Message705) GetField813() []string { if x != nil { return x.Field813 } return nil } type Message709 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field829 []string `protobuf:"bytes,1,rep,name=field829" json:"field829,omitempty"` Field830 []string `protobuf:"bytes,2,rep,name=field830" json:"field830,omitempty"` Field831 []string `protobuf:"bytes,3,rep,name=field831" json:"field831,omitempty"` Field832 []string `protobuf:"bytes,4,rep,name=field832" json:"field832,omitempty"` Field833 []string `protobuf:"bytes,5,rep,name=field833" json:"field833,omitempty"` } func (x *Message709) Reset() { *x = Message709{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message709) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message709) ProtoMessage() {} func (x *Message709) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message709.ProtoReflect.Descriptor instead. func (*Message709) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{21} } func (x *Message709) GetField829() []string { if x != nil { return x.Field829 } return nil } func (x *Message709) GetField830() []string { if x != nil { return x.Field830 } return nil } func (x *Message709) GetField831() []string { if x != nil { return x.Field831 } return nil } func (x *Message709) GetField832() []string { if x != nil { return x.Field832 } return nil } func (x *Message709) GetField833() []string { if x != nil { return x.Field833 } return nil } type Message702 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field793 *string `protobuf:"bytes,1,opt,name=field793" json:"field793,omitempty"` Field794 *string `protobuf:"bytes,2,opt,name=field794" json:"field794,omitempty"` } func (x *Message702) Reset() { *x = Message702{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message702) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message702) ProtoMessage() {} func (x *Message702) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message702.ProtoReflect.Descriptor instead. func (*Message702) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{22} } func (x *Message702) GetField793() string { if x != nil && x.Field793 != nil { return *x.Field793 } return "" } func (x *Message702) GetField794() string { if x != nil && x.Field794 != nil { return *x.Field794 } return "" } type Message714 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field854 *string `protobuf:"bytes,1,opt,name=field854" json:"field854,omitempty"` Field855 *string `protobuf:"bytes,2,opt,name=field855" json:"field855,omitempty"` Field856 *string `protobuf:"bytes,3,opt,name=field856" json:"field856,omitempty"` Field857 *string `protobuf:"bytes,4,opt,name=field857" json:"field857,omitempty"` Field858 *uint32 `protobuf:"varint,5,opt,name=field858" json:"field858,omitempty"` } func (x *Message714) Reset() { *x = Message714{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message714) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message714) ProtoMessage() {} func (x *Message714) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message714.ProtoReflect.Descriptor instead. func (*Message714) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{23} } func (x *Message714) GetField854() string { if x != nil && x.Field854 != nil { return *x.Field854 } return "" } func (x *Message714) GetField855() string { if x != nil && x.Field855 != nil { return *x.Field855 } return "" } func (x *Message714) GetField856() string { if x != nil && x.Field856 != nil { return *x.Field856 } return "" } func (x *Message714) GetField857() string { if x != nil && x.Field857 != nil { return *x.Field857 } return "" } func (x *Message714) GetField858() uint32 { if x != nil && x.Field858 != nil { return *x.Field858 } return 0 } type Message710 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field834 []string `protobuf:"bytes,1,rep,name=field834" json:"field834,omitempty"` Field835 *string `protobuf:"bytes,2,opt,name=field835" json:"field835,omitempty"` Field836 *string `protobuf:"bytes,3,opt,name=field836" json:"field836,omitempty"` Field837 []string `protobuf:"bytes,4,rep,name=field837" json:"field837,omitempty"` Field838 []string `protobuf:"bytes,5,rep,name=field838" json:"field838,omitempty"` } func (x *Message710) Reset() { *x = Message710{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message710) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message710) ProtoMessage() {} func (x *Message710) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message710.ProtoReflect.Descriptor instead. func (*Message710) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{24} } func (x *Message710) GetField834() []string { if x != nil { return x.Field834 } return nil } func (x *Message710) GetField835() string { if x != nil && x.Field835 != nil { return *x.Field835 } return "" } func (x *Message710) GetField836() string { if x != nil && x.Field836 != nil { return *x.Field836 } return "" } func (x *Message710) GetField837() []string { if x != nil { return x.Field837 } return nil } func (x *Message710) GetField838() []string { if x != nil { return x.Field838 } return nil } type Message706 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field814 []string `protobuf:"bytes,1,rep,name=field814" json:"field814,omitempty"` Field815 *string `protobuf:"bytes,2,opt,name=field815" json:"field815,omitempty"` Field816 []string `protobuf:"bytes,3,rep,name=field816" json:"field816,omitempty"` Field817 []string `protobuf:"bytes,4,rep,name=field817" json:"field817,omitempty"` } func (x *Message706) Reset() { *x = Message706{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message706) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message706) ProtoMessage() {} func (x *Message706) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message706.ProtoReflect.Descriptor instead. func (*Message706) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{25} } func (x *Message706) GetField814() []string { if x != nil { return x.Field814 } return nil } func (x *Message706) GetField815() string { if x != nil && x.Field815 != nil { return *x.Field815 } return "" } func (x *Message706) GetField816() []string { if x != nil { return x.Field816 } return nil } func (x *Message706) GetField817() []string { if x != nil { return x.Field817 } return nil } type Message707 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field818 *string `protobuf:"bytes,1,req,name=field818" json:"field818,omitempty"` Field819 *string `protobuf:"bytes,2,req,name=field819" json:"field819,omitempty"` Field820 *string `protobuf:"bytes,3,req,name=field820" json:"field820,omitempty"` Field821 *bool `protobuf:"varint,4,opt,name=field821" json:"field821,omitempty"` Field822 []string `protobuf:"bytes,5,rep,name=field822" json:"field822,omitempty"` } func (x *Message707) Reset() { *x = Message707{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message707) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message707) ProtoMessage() {} func (x *Message707) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message707.ProtoReflect.Descriptor instead. func (*Message707) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{26} } func (x *Message707) GetField818() string { if x != nil && x.Field818 != nil { return *x.Field818 } return "" } func (x *Message707) GetField819() string { if x != nil && x.Field819 != nil { return *x.Field819 } return "" } func (x *Message707) GetField820() string { if x != nil && x.Field820 != nil { return *x.Field820 } return "" } func (x *Message707) GetField821() bool { if x != nil && x.Field821 != nil { return *x.Field821 } return false } func (x *Message707) GetField822() []string { if x != nil { return x.Field822 } return nil } type Message711 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field839 *UnusedEmptyMessage `protobuf:"bytes,1,opt,name=field839" json:"field839,omitempty"` Field840 []string `protobuf:"bytes,4,rep,name=field840" json:"field840,omitempty"` Field841 []string `protobuf:"bytes,2,rep,name=field841" json:"field841,omitempty"` Field842 []string `protobuf:"bytes,3,rep,name=field842" json:"field842,omitempty"` } func (x *Message711) Reset() { *x = Message711{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message711) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message711) ProtoMessage() {} func (x *Message711) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message711.ProtoReflect.Descriptor instead. func (*Message711) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{27} } func (x *Message711) GetField839() *UnusedEmptyMessage { if x != nil { return x.Field839 } return nil } func (x *Message711) GetField840() []string { if x != nil { return x.Field840 } return nil } func (x *Message711) GetField841() []string { if x != nil { return x.Field841 } return nil } func (x *Message711) GetField842() []string { if x != nil { return x.Field842 } return nil } type Message712 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field843 []string `protobuf:"bytes,1,rep,name=field843" json:"field843,omitempty"` Field844 *string `protobuf:"bytes,2,req,name=field844" json:"field844,omitempty"` Field845 *string `protobuf:"bytes,3,opt,name=field845" json:"field845,omitempty"` Field846 []string `protobuf:"bytes,4,rep,name=field846" json:"field846,omitempty"` Field847 []string `protobuf:"bytes,5,rep,name=field847" json:"field847,omitempty"` Field848 *string `protobuf:"bytes,6,opt,name=field848" json:"field848,omitempty"` Field849 []string `protobuf:"bytes,7,rep,name=field849" json:"field849,omitempty"` Field850 *string `protobuf:"bytes,8,opt,name=field850" json:"field850,omitempty"` Field851 *string `protobuf:"bytes,9,opt,name=field851" json:"field851,omitempty"` } func (x *Message712) Reset() { *x = Message712{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message712) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message712) ProtoMessage() {} func (x *Message712) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message712.ProtoReflect.Descriptor instead. func (*Message712) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{28} } func (x *Message712) GetField843() []string { if x != nil { return x.Field843 } return nil } func (x *Message712) GetField844() string { if x != nil && x.Field844 != nil { return *x.Field844 } return "" } func (x *Message712) GetField845() string { if x != nil && x.Field845 != nil { return *x.Field845 } return "" } func (x *Message712) GetField846() []string { if x != nil { return x.Field846 } return nil } func (x *Message712) GetField847() []string { if x != nil { return x.Field847 } return nil } func (x *Message712) GetField848() string { if x != nil && x.Field848 != nil { return *x.Field848 } return "" } func (x *Message712) GetField849() []string { if x != nil { return x.Field849 } return nil } func (x *Message712) GetField850() string { if x != nil && x.Field850 != nil { return *x.Field850 } return "" } func (x *Message712) GetField851() string { if x != nil && x.Field851 != nil { return *x.Field851 } return "" } type Message8939 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field9010 *string `protobuf:"bytes,1,opt,name=field9010" json:"field9010,omitempty"` Field9011 *string `protobuf:"bytes,2,opt,name=field9011" json:"field9011,omitempty"` Field9012 *string `protobuf:"bytes,3,opt,name=field9012" json:"field9012,omitempty"` Field9013 []string `protobuf:"bytes,4,rep,name=field9013" json:"field9013,omitempty"` Field9014 *string `protobuf:"bytes,5,opt,name=field9014" json:"field9014,omitempty"` Message8940 []*Message8939_Message8940 `protobuf:"group,11,rep,name=Message8940,json=message8940" json:"message8940,omitempty"` Field9016 *int64 `protobuf:"varint,21,opt,name=field9016" json:"field9016,omitempty"` Field9017 *int64 `protobuf:"varint,22,opt,name=field9017" json:"field9017,omitempty"` Field9018 *int64 `protobuf:"varint,23,opt,name=field9018" json:"field9018,omitempty"` Message8941 *Message8939_Message8941 `protobuf:"group,31,opt,name=Message8941,json=message8941" json:"message8941,omitempty"` Field9020 *Message8942 `protobuf:"bytes,38,opt,name=field9020" json:"field9020,omitempty"` Field9021 []*UnusedEmptyMessage `protobuf:"bytes,39,rep,name=field9021" json:"field9021,omitempty"` Field9022 []string `protobuf:"bytes,41,rep,name=field9022" json:"field9022,omitempty"` Field9023 *string `protobuf:"bytes,42,opt,name=field9023" json:"field9023,omitempty"` Field9024 *string `protobuf:"bytes,43,opt,name=field9024" json:"field9024,omitempty"` Field9025 *string `protobuf:"bytes,44,opt,name=field9025" json:"field9025,omitempty"` Field9026 *string `protobuf:"bytes,45,opt,name=field9026" json:"field9026,omitempty"` Field9027 *string `protobuf:"bytes,46,opt,name=field9027" json:"field9027,omitempty"` Field9028 *string `protobuf:"bytes,47,opt,name=field9028" json:"field9028,omitempty"` Field9029 *UnusedEnum `protobuf:"varint,48,opt,name=field9029,enum=benchmarks.google_message3.UnusedEnum" json:"field9029,omitempty"` Field9030 *UnusedEnum `protobuf:"varint,49,opt,name=field9030,enum=benchmarks.google_message3.UnusedEnum" json:"field9030,omitempty"` Message8943 *Message8939_Message8943 `protobuf:"group,51,opt,name=Message8943,json=message8943" json:"message8943,omitempty"` } func (x *Message8939) Reset() { *x = Message8939{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8939) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8939) ProtoMessage() {} func (x *Message8939) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8939.ProtoReflect.Descriptor instead. func (*Message8939) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{29} } func (x *Message8939) GetField9010() string { if x != nil && x.Field9010 != nil { return *x.Field9010 } return "" } func (x *Message8939) GetField9011() string { if x != nil && x.Field9011 != nil { return *x.Field9011 } return "" } func (x *Message8939) GetField9012() string { if x != nil && x.Field9012 != nil { return *x.Field9012 } return "" } func (x *Message8939) GetField9013() []string { if x != nil { return x.Field9013 } return nil } func (x *Message8939) GetField9014() string { if x != nil && x.Field9014 != nil { return *x.Field9014 } return "" } func (x *Message8939) GetMessage8940() []*Message8939_Message8940 { if x != nil { return x.Message8940 } return nil } func (x *Message8939) GetField9016() int64 { if x != nil && x.Field9016 != nil { return *x.Field9016 } return 0 } func (x *Message8939) GetField9017() int64 { if x != nil && x.Field9017 != nil { return *x.Field9017 } return 0 } func (x *Message8939) GetField9018() int64 { if x != nil && x.Field9018 != nil { return *x.Field9018 } return 0 } func (x *Message8939) GetMessage8941() *Message8939_Message8941 { if x != nil { return x.Message8941 } return nil } func (x *Message8939) GetField9020() *Message8942 { if x != nil { return x.Field9020 } return nil } func (x *Message8939) GetField9021() []*UnusedEmptyMessage { if x != nil { return x.Field9021 } return nil } func (x *Message8939) GetField9022() []string { if x != nil { return x.Field9022 } return nil } func (x *Message8939) GetField9023() string { if x != nil && x.Field9023 != nil { return *x.Field9023 } return "" } func (x *Message8939) GetField9024() string { if x != nil && x.Field9024 != nil { return *x.Field9024 } return "" } func (x *Message8939) GetField9025() string { if x != nil && x.Field9025 != nil { return *x.Field9025 } return "" } func (x *Message8939) GetField9026() string { if x != nil && x.Field9026 != nil { return *x.Field9026 } return "" } func (x *Message8939) GetField9027() string { if x != nil && x.Field9027 != nil { return *x.Field9027 } return "" } func (x *Message8939) GetField9028() string { if x != nil && x.Field9028 != nil { return *x.Field9028 } return "" } func (x *Message8939) GetField9029() UnusedEnum { if x != nil && x.Field9029 != nil { return *x.Field9029 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message8939) GetField9030() UnusedEnum { if x != nil && x.Field9030 != nil { return *x.Field9030 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message8939) GetMessage8943() *Message8939_Message8943 { if x != nil { return x.Message8943 } return nil } type Message9181 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field9204 *string `protobuf:"bytes,1,opt,name=field9204" json:"field9204,omitempty"` } func (x *Message9181) Reset() { *x = Message9181{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message9181) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message9181) ProtoMessage() {} func (x *Message9181) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message9181.ProtoReflect.Descriptor instead. func (*Message9181) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{30} } func (x *Message9181) GetField9204() string { if x != nil && x.Field9204 != nil { return *x.Field9204 } return "" } type Message9164 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field9168 *int32 `protobuf:"varint,1,opt,name=field9168" json:"field9168,omitempty"` Field9169 *int32 `protobuf:"varint,2,opt,name=field9169" json:"field9169,omitempty"` Field9170 *int32 `protobuf:"varint,3,opt,name=field9170" json:"field9170,omitempty"` } func (x *Message9164) Reset() { *x = Message9164{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message9164) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message9164) ProtoMessage() {} func (x *Message9164) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message9164.ProtoReflect.Descriptor instead. func (*Message9164) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{31} } func (x *Message9164) GetField9168() int32 { if x != nil && x.Field9168 != nil { return *x.Field9168 } return 0 } func (x *Message9164) GetField9169() int32 { if x != nil && x.Field9169 != nil { return *x.Field9169 } return 0 } func (x *Message9164) GetField9170() int32 { if x != nil && x.Field9170 != nil { return *x.Field9170 } return 0 } type Message9165 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field9171 *float32 `protobuf:"fixed32,1,opt,name=field9171" json:"field9171,omitempty"` Field9172 *float32 `protobuf:"fixed32,2,opt,name=field9172" json:"field9172,omitempty"` } func (x *Message9165) Reset() { *x = Message9165{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message9165) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message9165) ProtoMessage() {} func (x *Message9165) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message9165.ProtoReflect.Descriptor instead. func (*Message9165) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{32} } func (x *Message9165) GetField9171() float32 { if x != nil && x.Field9171 != nil { return *x.Field9171 } return 0 } func (x *Message9165) GetField9172() float32 { if x != nil && x.Field9172 != nil { return *x.Field9172 } return 0 } type Message9166 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field9173 *float32 `protobuf:"fixed32,1,opt,name=field9173" json:"field9173,omitempty"` Field9174 *int32 `protobuf:"varint,2,opt,name=field9174" json:"field9174,omitempty"` } func (x *Message9166) Reset() { *x = Message9166{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message9166) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message9166) ProtoMessage() {} func (x *Message9166) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message9166.ProtoReflect.Descriptor instead. func (*Message9166) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{33} } func (x *Message9166) GetField9173() float32 { if x != nil && x.Field9173 != nil { return *x.Field9173 } return 0 } func (x *Message9166) GetField9174() int32 { if x != nil && x.Field9174 != nil { return *x.Field9174 } return 0 } type Message9151 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field9152 *float64 `protobuf:"fixed64,1,opt,name=field9152" json:"field9152,omitempty"` Field9153 *float64 `protobuf:"fixed64,2,opt,name=field9153" json:"field9153,omitempty"` Field9154 *float32 `protobuf:"fixed32,3,opt,name=field9154" json:"field9154,omitempty"` Field9155 *float32 `protobuf:"fixed32,4,opt,name=field9155" json:"field9155,omitempty"` Field9156 *float32 `protobuf:"fixed32,5,opt,name=field9156" json:"field9156,omitempty"` Field9157 *float32 `protobuf:"fixed32,6,opt,name=field9157" json:"field9157,omitempty"` Field9158 *float32 `protobuf:"fixed32,7,opt,name=field9158" json:"field9158,omitempty"` Field9159 *float32 `protobuf:"fixed32,8,opt,name=field9159" json:"field9159,omitempty"` } func (x *Message9151) Reset() { *x = Message9151{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message9151) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message9151) ProtoMessage() {} func (x *Message9151) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message9151.ProtoReflect.Descriptor instead. func (*Message9151) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{34} } func (x *Message9151) GetField9152() float64 { if x != nil && x.Field9152 != nil { return *x.Field9152 } return 0 } func (x *Message9151) GetField9153() float64 { if x != nil && x.Field9153 != nil { return *x.Field9153 } return 0 } func (x *Message9151) GetField9154() float32 { if x != nil && x.Field9154 != nil { return *x.Field9154 } return 0 } func (x *Message9151) GetField9155() float32 { if x != nil && x.Field9155 != nil { return *x.Field9155 } return 0 } func (x *Message9151) GetField9156() float32 { if x != nil && x.Field9156 != nil { return *x.Field9156 } return 0 } func (x *Message9151) GetField9157() float32 { if x != nil && x.Field9157 != nil { return *x.Field9157 } return 0 } func (x *Message9151) GetField9158() float32 { if x != nil && x.Field9158 != nil { return *x.Field9158 } return 0 } func (x *Message9151) GetField9159() float32 { if x != nil && x.Field9159 != nil { return *x.Field9159 } return 0 } type Message8888 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8908 *int32 `protobuf:"varint,1,opt,name=field8908" json:"field8908,omitempty"` Field8909 *Enum8900 `protobuf:"varint,4,opt,name=field8909,enum=benchmarks.google_message3.Enum8900" json:"field8909,omitempty"` Field8910 []int32 `protobuf:"varint,2,rep,packed,name=field8910" json:"field8910,omitempty"` Field8911 []byte `protobuf:"bytes,3,opt,name=field8911" json:"field8911,omitempty"` } func (x *Message8888) Reset() { *x = Message8888{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8888) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8888) ProtoMessage() {} func (x *Message8888) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8888.ProtoReflect.Descriptor instead. func (*Message8888) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{35} } func (x *Message8888) GetField8908() int32 { if x != nil && x.Field8908 != nil { return *x.Field8908 } return 0 } func (x *Message8888) GetField8909() Enum8900 { if x != nil && x.Field8909 != nil { return *x.Field8909 } return Enum8900_ENUM_VALUE8901 } func (x *Message8888) GetField8910() []int32 { if x != nil { return x.Field8910 } return nil } func (x *Message8888) GetField8911() []byte { if x != nil { return x.Field8911 } return nil } type Message9627 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field9668 *int32 `protobuf:"varint,1,req,name=field9668" json:"field9668,omitempty"` Field9669 *int32 `protobuf:"varint,2,req,name=field9669" json:"field9669,omitempty"` Field9670 *int32 `protobuf:"varint,3,req,name=field9670" json:"field9670,omitempty"` Field9671 *int32 `protobuf:"varint,4,req,name=field9671" json:"field9671,omitempty"` Field9672 *float32 `protobuf:"fixed32,5,opt,name=field9672" json:"field9672,omitempty"` } func (x *Message9627) Reset() { *x = Message9627{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message9627) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message9627) ProtoMessage() {} func (x *Message9627) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message9627.ProtoReflect.Descriptor instead. func (*Message9627) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{36} } func (x *Message9627) GetField9668() int32 { if x != nil && x.Field9668 != nil { return *x.Field9668 } return 0 } func (x *Message9627) GetField9669() int32 { if x != nil && x.Field9669 != nil { return *x.Field9669 } return 0 } func (x *Message9627) GetField9670() int32 { if x != nil && x.Field9670 != nil { return *x.Field9670 } return 0 } func (x *Message9627) GetField9671() int32 { if x != nil && x.Field9671 != nil { return *x.Field9671 } return 0 } func (x *Message9627) GetField9672() float32 { if x != nil && x.Field9672 != nil { return *x.Field9672 } return 0 } type Message11020 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message11020) Reset() { *x = Message11020{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message11020) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message11020) ProtoMessage() {} func (x *Message11020) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message11020.ProtoReflect.Descriptor instead. func (*Message11020) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{37} } type Message11013 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field11757 []byte `protobuf:"bytes,19,opt,name=field11757" json:"field11757,omitempty"` Field11758 []byte `protobuf:"bytes,1,opt,name=field11758" json:"field11758,omitempty"` Field11759 []byte `protobuf:"bytes,2,opt,name=field11759" json:"field11759,omitempty"` Field11760 []byte `protobuf:"bytes,3,opt,name=field11760" json:"field11760,omitempty"` Field11761 []byte `protobuf:"bytes,4,opt,name=field11761" json:"field11761,omitempty"` Field11762 []byte `protobuf:"bytes,5,opt,name=field11762" json:"field11762,omitempty"` Field11763 []byte `protobuf:"bytes,6,opt,name=field11763" json:"field11763,omitempty"` Field11764 []byte `protobuf:"bytes,7,opt,name=field11764" json:"field11764,omitempty"` Field11765 []byte `protobuf:"bytes,8,opt,name=field11765" json:"field11765,omitempty"` Field11766 []byte `protobuf:"bytes,9,opt,name=field11766" json:"field11766,omitempty"` Field11767 []byte `protobuf:"bytes,10,opt,name=field11767" json:"field11767,omitempty"` Field11768 []byte `protobuf:"bytes,11,opt,name=field11768" json:"field11768,omitempty"` Field11769 []byte `protobuf:"bytes,12,opt,name=field11769" json:"field11769,omitempty"` Field11770 []byte `protobuf:"bytes,13,opt,name=field11770" json:"field11770,omitempty"` Field11771 []byte `protobuf:"bytes,14,opt,name=field11771" json:"field11771,omitempty"` Field11772 []byte `protobuf:"bytes,15,opt,name=field11772" json:"field11772,omitempty"` Field11773 []byte `protobuf:"bytes,16,opt,name=field11773" json:"field11773,omitempty"` Field11774 []byte `protobuf:"bytes,17,opt,name=field11774" json:"field11774,omitempty"` Field11775 []byte `protobuf:"bytes,18,opt,name=field11775" json:"field11775,omitempty"` Field11776 []byte `protobuf:"bytes,20,opt,name=field11776" json:"field11776,omitempty"` Field11777 []byte `protobuf:"bytes,21,opt,name=field11777" json:"field11777,omitempty"` Field11778 *UnusedEmptyMessage `protobuf:"bytes,23,opt,name=field11778" json:"field11778,omitempty"` Field11779 []*Message11011 `protobuf:"bytes,22,rep,name=field11779" json:"field11779,omitempty"` } func (x *Message11013) Reset() { *x = Message11013{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message11013) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message11013) ProtoMessage() {} func (x *Message11013) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message11013.ProtoReflect.Descriptor instead. func (*Message11013) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{38} } func (x *Message11013) GetField11757() []byte { if x != nil { return x.Field11757 } return nil } func (x *Message11013) GetField11758() []byte { if x != nil { return x.Field11758 } return nil } func (x *Message11013) GetField11759() []byte { if x != nil { return x.Field11759 } return nil } func (x *Message11013) GetField11760() []byte { if x != nil { return x.Field11760 } return nil } func (x *Message11013) GetField11761() []byte { if x != nil { return x.Field11761 } return nil } func (x *Message11013) GetField11762() []byte { if x != nil { return x.Field11762 } return nil } func (x *Message11013) GetField11763() []byte { if x != nil { return x.Field11763 } return nil } func (x *Message11013) GetField11764() []byte { if x != nil { return x.Field11764 } return nil } func (x *Message11013) GetField11765() []byte { if x != nil { return x.Field11765 } return nil } func (x *Message11013) GetField11766() []byte { if x != nil { return x.Field11766 } return nil } func (x *Message11013) GetField11767() []byte { if x != nil { return x.Field11767 } return nil } func (x *Message11013) GetField11768() []byte { if x != nil { return x.Field11768 } return nil } func (x *Message11013) GetField11769() []byte { if x != nil { return x.Field11769 } return nil } func (x *Message11013) GetField11770() []byte { if x != nil { return x.Field11770 } return nil } func (x *Message11013) GetField11771() []byte { if x != nil { return x.Field11771 } return nil } func (x *Message11013) GetField11772() []byte { if x != nil { return x.Field11772 } return nil } func (x *Message11013) GetField11773() []byte { if x != nil { return x.Field11773 } return nil } func (x *Message11013) GetField11774() []byte { if x != nil { return x.Field11774 } return nil } func (x *Message11013) GetField11775() []byte { if x != nil { return x.Field11775 } return nil } func (x *Message11013) GetField11776() []byte { if x != nil { return x.Field11776 } return nil } func (x *Message11013) GetField11777() []byte { if x != nil { return x.Field11777 } return nil } func (x *Message11013) GetField11778() *UnusedEmptyMessage { if x != nil { return x.Field11778 } return nil } func (x *Message11013) GetField11779() []*Message11011 { if x != nil { return x.Field11779 } return nil } type Message8939_Message8940 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message8939_Message8940) Reset() { *x = Message8939_Message8940{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8939_Message8940) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8939_Message8940) ProtoMessage() {} func (x *Message8939_Message8940) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8939_Message8940.ProtoReflect.Descriptor instead. func (*Message8939_Message8940) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{29, 0} } type Message8939_Message8941 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field9033 *string `protobuf:"bytes,32,opt,name=field9033" json:"field9033,omitempty"` Field9034 *string `protobuf:"bytes,33,opt,name=field9034" json:"field9034,omitempty"` Field9035 *string `protobuf:"bytes,34,opt,name=field9035" json:"field9035,omitempty"` Field9036 *string `protobuf:"bytes,35,opt,name=field9036" json:"field9036,omitempty"` Field9037 *string `protobuf:"bytes,36,opt,name=field9037" json:"field9037,omitempty"` Field9038 *string `protobuf:"bytes,37,opt,name=field9038" json:"field9038,omitempty"` } func (x *Message8939_Message8941) Reset() { *x = Message8939_Message8941{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8939_Message8941) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8939_Message8941) ProtoMessage() {} func (x *Message8939_Message8941) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8939_Message8941.ProtoReflect.Descriptor instead. func (*Message8939_Message8941) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{29, 1} } func (x *Message8939_Message8941) GetField9033() string { if x != nil && x.Field9033 != nil { return *x.Field9033 } return "" } func (x *Message8939_Message8941) GetField9034() string { if x != nil && x.Field9034 != nil { return *x.Field9034 } return "" } func (x *Message8939_Message8941) GetField9035() string { if x != nil && x.Field9035 != nil { return *x.Field9035 } return "" } func (x *Message8939_Message8941) GetField9036() string { if x != nil && x.Field9036 != nil { return *x.Field9036 } return "" } func (x *Message8939_Message8941) GetField9037() string { if x != nil && x.Field9037 != nil { return *x.Field9037 } return "" } func (x *Message8939_Message8941) GetField9038() string { if x != nil && x.Field9038 != nil { return *x.Field9038 } return "" } type Message8939_Message8943 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field9039 *string `protobuf:"bytes,1,opt,name=field9039" json:"field9039,omitempty"` Field9040 *string `protobuf:"bytes,2,opt,name=field9040" json:"field9040,omitempty"` Field9041 *string `protobuf:"bytes,3,opt,name=field9041" json:"field9041,omitempty"` Field9042 *string `protobuf:"bytes,4,opt,name=field9042" json:"field9042,omitempty"` Field9043 *string `protobuf:"bytes,5,opt,name=field9043" json:"field9043,omitempty"` Field9044 *string `protobuf:"bytes,6,opt,name=field9044" json:"field9044,omitempty"` } func (x *Message8939_Message8943) Reset() { *x = Message8939_Message8943{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8939_Message8943) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8939_Message8943) ProtoMessage() {} func (x *Message8939_Message8943) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8939_Message8943.ProtoReflect.Descriptor instead. func (*Message8939_Message8943) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP(), []int{29, 2} } func (x *Message8939_Message8943) GetField9039() string { if x != nil && x.Field9039 != nil { return *x.Field9039 } return "" } func (x *Message8939_Message8943) GetField9040() string { if x != nil && x.Field9040 != nil { return *x.Field9040 } return "" } func (x *Message8939_Message8943) GetField9041() string { if x != nil && x.Field9041 != nil { return *x.Field9041 } return "" } func (x *Message8939_Message8943) GetField9042() string { if x != nil && x.Field9042 != nil { return *x.Field9042 } return "" } func (x *Message8939_Message8943) GetField9043() string { if x != nil && x.Field9043 != nil { return *x.Field9043 } return "" } func (x *Message8939_Message8943) GetField9044() string { if x != nil && x.Field9044 != nil { return *x.Field9044 } return "" } var File_datasets_google_message3_benchmark_message3_6_proto protoreflect.FileDescriptor var file_datasets_google_message3_benchmark_message3_6_proto_rawDesc = []byte{ 0x0a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x36, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x37, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x38, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x35, 0x37, 0x36, 0x22, 0x4e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x31, 0x35, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x31, 0x39, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x31, 0x39, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x31, 0x39, 0x33, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x31, 0x39, 0x33, 0x22, 0xbe, 0x10, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x39, 0x34, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x34, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x34, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x34, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x34, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x34, 0x37, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x34, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x34, 0x38, 0x18, 0x34, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x34, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x34, 0x39, 0x18, 0x35, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x34, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x35, 0x30, 0x18, 0x36, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x35, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x35, 0x31, 0x18, 0x37, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x35, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x35, 0x32, 0x18, 0x38, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x35, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x35, 0x33, 0x18, 0x39, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x35, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x35, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x35, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x35, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x35, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x35, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x35, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x35, 0x37, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x35, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x35, 0x38, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x35, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x35, 0x39, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x35, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x36, 0x30, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x36, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x36, 0x31, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x36, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x36, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x36, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x36, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x36, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x36, 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x36, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x36, 0x35, 0x18, 0x46, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x36, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x36, 0x36, 0x18, 0x47, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x36, 0x36, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x36, 0x37, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x38, 0x39, 0x34, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x36, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x36, 0x38, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x36, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x36, 0x39, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x36, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x37, 0x30, 0x18, 0x12, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x37, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x37, 0x31, 0x18, 0x13, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x37, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x37, 0x32, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x37, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x37, 0x33, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x37, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x37, 0x34, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x37, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x37, 0x35, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x37, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x37, 0x36, 0x18, 0x48, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x37, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x37, 0x37, 0x18, 0x49, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x37, 0x37, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x37, 0x38, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x38, 0x39, 0x35, 0x31, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x37, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x37, 0x39, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x37, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x38, 0x30, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x38, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x38, 0x31, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x38, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x38, 0x32, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x38, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x38, 0x33, 0x18, 0x20, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x38, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x38, 0x34, 0x18, 0x21, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x38, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x38, 0x35, 0x18, 0x24, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x38, 0x35, 0x12, 0x44, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x38, 0x36, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x38, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x38, 0x37, 0x18, 0x26, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x38, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x38, 0x38, 0x18, 0x27, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x38, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x38, 0x39, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x38, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x39, 0x30, 0x18, 0x40, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x39, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x39, 0x31, 0x18, 0x41, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x39, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x39, 0x32, 0x18, 0x22, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x39, 0x32, 0x12, 0x44, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x39, 0x33, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x39, 0x33, 0x12, 0x44, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x39, 0x34, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x39, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x39, 0x35, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x39, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x39, 0x36, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x39, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x39, 0x37, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x39, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x39, 0x38, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x39, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x39, 0x39, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x39, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x30, 0x30, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x30, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x30, 0x31, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x30, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x30, 0x32, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x30, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x30, 0x33, 0x18, 0x30, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x30, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x30, 0x34, 0x18, 0x31, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x30, 0x34, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x30, 0x35, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x39, 0x33, 0x39, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x30, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x30, 0x36, 0x18, 0x65, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x30, 0x36, 0x22, 0xe9, 0x08, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x31, 0x38, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x30, 0x35, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x30, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x30, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x30, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x30, 0x37, 0x18, 0x10, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x30, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x30, 0x38, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x30, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x30, 0x39, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x30, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x31, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x31, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x31, 0x31, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x31, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x31, 0x32, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x31, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x31, 0x33, 0x18, 0x16, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x31, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x31, 0x34, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x31, 0x34, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x31, 0x35, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x31, 0x35, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x31, 0x36, 0x18, 0x19, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x31, 0x36, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x31, 0x37, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x31, 0x38, 0x31, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x31, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x31, 0x38, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x31, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x31, 0x39, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x31, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x32, 0x30, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x32, 0x30, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x32, 0x31, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x31, 0x36, 0x34, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x32, 0x31, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x32, 0x32, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x31, 0x36, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x32, 0x32, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x32, 0x33, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x31, 0x36, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x32, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x32, 0x34, 0x18, 0x21, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x32, 0x34, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x32, 0x35, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x31, 0x35, 0x31, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x32, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x32, 0x36, 0x18, 0x23, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x32, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x32, 0x37, 0x18, 0x24, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x32, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x32, 0x38, 0x18, 0x25, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x32, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x32, 0x39, 0x18, 0x26, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x32, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x33, 0x30, 0x18, 0x27, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x33, 0x30, 0x2a, 0x04, 0x08, 0x03, 0x10, 0x07, 0x2a, 0x04, 0x08, 0x09, 0x10, 0x10, 0x2a, 0x04, 0x08, 0x17, 0x10, 0x18, 0x2a, 0x04, 0x08, 0x18, 0x10, 0x19, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x49, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x31, 0x36, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x36, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x36, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x36, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x36, 0x32, 0x22, 0x51, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x32, 0x34, 0x32, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x33, 0x32, 0x37, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x39, 0x32, 0x34, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x33, 0x32, 0x37, 0x22, 0x54, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x38, 0x39, 0x30, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x31, 0x36, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x38, 0x38, 0x38, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x31, 0x36, 0x22, 0x2b, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x31, 0x32, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x33, 0x35, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x33, 0x35, 0x22, 0xae, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x36, 0x32, 0x38, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x37, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x36, 0x32, 0x37, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x37, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x37, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x37, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x37, 0x35, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x37, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x37, 0x36, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x37, 0x36, 0x22, 0x9f, 0x14, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x30, 0x31, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x38, 0x30, 0x18, 0x28, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x38, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x38, 0x31, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x38, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x38, 0x32, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x38, 0x32, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x38, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x31, 0x31, 0x30, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x38, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x38, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x38, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x38, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x38, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x38, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x38, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x38, 0x37, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x38, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x38, 0x38, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x38, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x38, 0x39, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x38, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x39, 0x30, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x39, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x39, 0x31, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x39, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x39, 0x32, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x39, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x39, 0x33, 0x18, 0x25, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x39, 0x33, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x39, 0x34, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x31, 0x35, 0x34, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x39, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x39, 0x35, 0x18, 0x31, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x39, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x39, 0x36, 0x18, 0x33, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x39, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x39, 0x37, 0x18, 0x36, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x39, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x39, 0x38, 0x18, 0x37, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x39, 0x38, 0x12, 0x46, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x39, 0x39, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x39, 0x39, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x30, 0x30, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x31, 0x34, 0x36, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x30, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x30, 0x31, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x30, 0x31, 0x12, 0x46, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x30, 0x32, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x30, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x30, 0x33, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x30, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x30, 0x34, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x30, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x30, 0x35, 0x18, 0x45, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x30, 0x35, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x30, 0x36, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x30, 0x36, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x30, 0x37, 0x18, 0x47, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x30, 0x31, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x30, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x30, 0x38, 0x18, 0x32, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x30, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x30, 0x39, 0x18, 0x38, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x30, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x31, 0x30, 0x18, 0x42, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x31, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x31, 0x31, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x31, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x31, 0x32, 0x18, 0x40, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x31, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x31, 0x33, 0x18, 0x41, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x31, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x31, 0x34, 0x18, 0x43, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x31, 0x34, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x31, 0x35, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x31, 0x31, 0x30, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x31, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x31, 0x36, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x31, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x31, 0x37, 0x18, 0x11, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x31, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x31, 0x38, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x31, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x31, 0x39, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x31, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x32, 0x30, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x32, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x32, 0x31, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x32, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x32, 0x32, 0x18, 0x34, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x32, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x32, 0x33, 0x18, 0x35, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x32, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x32, 0x34, 0x18, 0x29, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x32, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x32, 0x35, 0x18, 0x30, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x32, 0x35, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x32, 0x36, 0x18, 0x46, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x30, 0x32, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x32, 0x36, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x32, 0x37, 0x18, 0x48, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x32, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x32, 0x38, 0x18, 0x19, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x32, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x32, 0x39, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x32, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x33, 0x30, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x33, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x33, 0x31, 0x18, 0x20, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x33, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x33, 0x32, 0x18, 0x21, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x33, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x33, 0x33, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x33, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x33, 0x34, 0x18, 0x22, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x33, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x33, 0x35, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x33, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x33, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x33, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x33, 0x37, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x33, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x33, 0x38, 0x18, 0x49, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x33, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x33, 0x39, 0x18, 0x23, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x33, 0x39, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x34, 0x30, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x31, 0x30, 0x32, 0x32, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x34, 0x30, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x34, 0x31, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x30, 0x31, 0x33, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x34, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x34, 0x32, 0x18, 0x27, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x34, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x34, 0x33, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x34, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x34, 0x34, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x38, 0x34, 0x34, 0x22, 0xc2, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x38, 0x30, 0x31, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x38, 0x31, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x38, 0x30, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x38, 0x31, 0x32, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x38, 0x31, 0x33, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x38, 0x30, 0x32, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x38, 0x31, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x38, 0x31, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x38, 0x31, 0x34, 0x22, 0x58, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x37, 0x34, 0x39, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x35, 0x34, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x37, 0x34, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x35, 0x34, 0x22, 0x90, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x32, 0x39, 0x38, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x32, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x36, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x32, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x32, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x32, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x32, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x32, 0x33, 0x22, 0x72, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x33, 0x30, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x32, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x32, 0x36, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x32, 0x37, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x36, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x32, 0x37, 0x22, 0xc9, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x32, 0x39, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x30, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x30, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x30, 0x37, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x30, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x30, 0x38, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x30, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x30, 0x39, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x30, 0x39, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x31, 0x30, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x38, 0x32, 0x39, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x31, 0x30, 0x22, 0x93, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x32, 0x39, 0x36, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x31, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x36, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x31, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x31, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x31, 0x32, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x31, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x36, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x31, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x31, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x31, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x31, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x31, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x31, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x31, 0x36, 0x22, 0x49, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x36, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x36, 0x37, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x36, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x36, 0x38, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x36, 0x38, 0x22, 0x49, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x32, 0x39, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x30, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x30, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x30, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x30, 0x35, 0x22, 0x44, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x31, 0x37, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x36, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x36, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x37, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x37, 0x22, 0x6c, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x31, 0x33, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x32, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x38, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x33, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x33, 0x22, 0xd0, 0x01, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x37, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x37, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x38, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x38, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x39, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x30, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x30, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x33, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x33, 0x22, 0x98, 0x01, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x39, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x30, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x31, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x32, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x33, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x33, 0x22, 0x44, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x22, 0x98, 0x01, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x31, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x36, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x37, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x37, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x38, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x38, 0x22, 0x98, 0x01, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x31, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x34, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x36, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x37, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x37, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x38, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x38, 0x22, 0x7c, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x36, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x34, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x36, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x36, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x37, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x37, 0x22, 0x98, 0x01, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x37, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x38, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x38, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x39, 0x18, 0x02, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x31, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x30, 0x18, 0x03, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x32, 0x22, 0xac, 0x01, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x31, 0x31, 0x12, 0x4a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x33, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x30, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x31, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x32, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x32, 0x22, 0x88, 0x02, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x31, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x33, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x34, 0x18, 0x02, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x35, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x36, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x36, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x37, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x37, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x38, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x38, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x39, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x34, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x30, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x31, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x35, 0x31, 0x22, 0x8c, 0x0b, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x39, 0x33, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x31, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x31, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x31, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x31, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x31, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x31, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x31, 0x33, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x31, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x31, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x31, 0x34, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x39, 0x34, 0x30, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x33, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x39, 0x33, 0x39, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x39, 0x34, 0x30, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x39, 0x34, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x31, 0x36, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x31, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x31, 0x37, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x31, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x31, 0x38, 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x31, 0x38, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x39, 0x34, 0x31, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x33, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x39, 0x33, 0x39, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x39, 0x34, 0x31, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x39, 0x34, 0x31, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x32, 0x30, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x39, 0x34, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x32, 0x30, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x32, 0x31, 0x18, 0x27, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x32, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x32, 0x32, 0x18, 0x29, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x32, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x32, 0x33, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x32, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x32, 0x34, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x32, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x32, 0x35, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x32, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x32, 0x36, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x32, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x32, 0x37, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x32, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x32, 0x38, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x32, 0x38, 0x12, 0x44, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x32, 0x39, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x32, 0x39, 0x12, 0x44, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x33, 0x30, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x33, 0x30, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x39, 0x34, 0x33, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x33, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x39, 0x33, 0x39, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x39, 0x34, 0x33, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x39, 0x34, 0x33, 0x1a, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x39, 0x34, 0x30, 0x1a, 0xc1, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x39, 0x34, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x33, 0x33, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x33, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x33, 0x34, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x33, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x33, 0x35, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x33, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x33, 0x36, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x33, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x33, 0x37, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x33, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x33, 0x38, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x33, 0x38, 0x1a, 0xc1, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x39, 0x34, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x33, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x33, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x34, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x34, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x34, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x34, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x34, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x34, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x34, 0x33, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x34, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x34, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x30, 0x34, 0x34, 0x22, 0x2b, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x31, 0x38, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x30, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x32, 0x30, 0x34, 0x22, 0x67, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x31, 0x36, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x36, 0x38, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x36, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x36, 0x39, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x36, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x37, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x37, 0x30, 0x22, 0x49, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x31, 0x36, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x37, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x37, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x37, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x37, 0x32, 0x22, 0x49, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x31, 0x36, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x37, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x37, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x37, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x37, 0x34, 0x22, 0xfd, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x31, 0x35, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x35, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x35, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x35, 0x33, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x35, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x35, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x35, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x35, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x35, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x35, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x35, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x35, 0x37, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x35, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x35, 0x38, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x35, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x35, 0x39, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x31, 0x35, 0x39, 0x22, 0xaf, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x38, 0x38, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x30, 0x38, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x30, 0x38, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x30, 0x39, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x38, 0x39, 0x30, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x30, 0x39, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x31, 0x30, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x31, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x31, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x39, 0x31, 0x31, 0x22, 0xa3, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x36, 0x32, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x36, 0x38, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x36, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x36, 0x39, 0x18, 0x02, 0x20, 0x02, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x36, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x37, 0x30, 0x18, 0x03, 0x20, 0x02, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x37, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x37, 0x31, 0x18, 0x04, 0x20, 0x02, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x37, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x37, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x36, 0x37, 0x32, 0x22, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x30, 0x32, 0x30, 0x22, 0xc8, 0x06, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x30, 0x31, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x35, 0x37, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x35, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x35, 0x38, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x35, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x35, 0x39, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x35, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x36, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x36, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x36, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x36, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x36, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x36, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x36, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x36, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x36, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x36, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x36, 0x35, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x36, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x36, 0x36, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x36, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x36, 0x37, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x36, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x36, 0x38, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x36, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x36, 0x39, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x36, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x37, 0x30, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x37, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x37, 0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x37, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x37, 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x37, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x37, 0x33, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x37, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x37, 0x34, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x37, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x37, 0x35, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x37, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x37, 0x36, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x37, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x37, 0x37, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x37, 0x37, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x37, 0x38, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x37, 0x38, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x37, 0x39, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x30, 0x31, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x37, 0x39, 0x42, 0x23, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0xf8, 0x01, 0x01, } var ( file_datasets_google_message3_benchmark_message3_6_proto_rawDescOnce sync.Once file_datasets_google_message3_benchmark_message3_6_proto_rawDescData = file_datasets_google_message3_benchmark_message3_6_proto_rawDesc ) func file_datasets_google_message3_benchmark_message3_6_proto_rawDescGZIP() []byte { file_datasets_google_message3_benchmark_message3_6_proto_rawDescOnce.Do(func() { file_datasets_google_message3_benchmark_message3_6_proto_rawDescData = protoimpl.X.CompressGZIP(file_datasets_google_message3_benchmark_message3_6_proto_rawDescData) }) return file_datasets_google_message3_benchmark_message3_6_proto_rawDescData } var file_datasets_google_message3_benchmark_message3_6_proto_msgTypes = make([]protoimpl.MessageInfo, 42) var file_datasets_google_message3_benchmark_message3_6_proto_goTypes = []interface{}{ (*Message10576)(nil), // 0: benchmarks.google_message3.Message10576 (*Message10154)(nil), // 1: benchmarks.google_message3.Message10154 (*Message8944)(nil), // 2: benchmarks.google_message3.Message8944 (*Message9182)(nil), // 3: benchmarks.google_message3.Message9182 (*Message9160)(nil), // 4: benchmarks.google_message3.Message9160 (*Message9242)(nil), // 5: benchmarks.google_message3.Message9242 (*Message8890)(nil), // 6: benchmarks.google_message3.Message8890 (*Message9123)(nil), // 7: benchmarks.google_message3.Message9123 (*Message9628)(nil), // 8: benchmarks.google_message3.Message9628 (*Message11014)(nil), // 9: benchmarks.google_message3.Message11014 (*Message10801)(nil), // 10: benchmarks.google_message3.Message10801 (*Message10749)(nil), // 11: benchmarks.google_message3.Message10749 (*Message8298)(nil), // 12: benchmarks.google_message3.Message8298 (*Message8300)(nil), // 13: benchmarks.google_message3.Message8300 (*Message8291)(nil), // 14: benchmarks.google_message3.Message8291 (*Message8296)(nil), // 15: benchmarks.google_message3.Message8296 (*Message7965)(nil), // 16: benchmarks.google_message3.Message7965 (*Message8290)(nil), // 17: benchmarks.google_message3.Message8290 (*Message717)(nil), // 18: benchmarks.google_message3.Message717 (*Message713)(nil), // 19: benchmarks.google_message3.Message713 (*Message705)(nil), // 20: benchmarks.google_message3.Message705 (*Message709)(nil), // 21: benchmarks.google_message3.Message709 (*Message702)(nil), // 22: benchmarks.google_message3.Message702 (*Message714)(nil), // 23: benchmarks.google_message3.Message714 (*Message710)(nil), // 24: benchmarks.google_message3.Message710 (*Message706)(nil), // 25: benchmarks.google_message3.Message706 (*Message707)(nil), // 26: benchmarks.google_message3.Message707 (*Message711)(nil), // 27: benchmarks.google_message3.Message711 (*Message712)(nil), // 28: benchmarks.google_message3.Message712 (*Message8939)(nil), // 29: benchmarks.google_message3.Message8939 (*Message9181)(nil), // 30: benchmarks.google_message3.Message9181 (*Message9164)(nil), // 31: benchmarks.google_message3.Message9164 (*Message9165)(nil), // 32: benchmarks.google_message3.Message9165 (*Message9166)(nil), // 33: benchmarks.google_message3.Message9166 (*Message9151)(nil), // 34: benchmarks.google_message3.Message9151 (*Message8888)(nil), // 35: benchmarks.google_message3.Message8888 (*Message9627)(nil), // 36: benchmarks.google_message3.Message9627 (*Message11020)(nil), // 37: benchmarks.google_message3.Message11020 (*Message11013)(nil), // 38: benchmarks.google_message3.Message11013 (*Message8939_Message8940)(nil), // 39: benchmarks.google_message3.Message8939.Message8940 (*Message8939_Message8941)(nil), // 40: benchmarks.google_message3.Message8939.Message8941 (*Message8939_Message8943)(nil), // 41: benchmarks.google_message3.Message8939.Message8943 (Enum8945)(0), // 42: benchmarks.google_message3.Enum8945 (Enum8951)(0), // 43: benchmarks.google_message3.Enum8951 (UnusedEnum)(0), // 44: benchmarks.google_message3.UnusedEnum (*UnusedEmptyMessage)(nil), // 45: benchmarks.google_message3.UnusedEmptyMessage (Enum9243)(0), // 46: benchmarks.google_message3.Enum9243 (Enum11107)(0), // 47: benchmarks.google_message3.Enum11107 (Enum11541)(0), // 48: benchmarks.google_message3.Enum11541 (Enum11468)(0), // 49: benchmarks.google_message3.Enum11468 (*Message11018)(nil), // 50: benchmarks.google_message3.Message11018 (Enum11022)(0), // 51: benchmarks.google_message3.Enum11022 (*Message10800)(nil), // 52: benchmarks.google_message3.Message10800 (*Message10802)(nil), // 53: benchmarks.google_message3.Message10802 (*Message10748)(nil), // 54: benchmarks.google_message3.Message10748 (*Message7966)(nil), // 55: benchmarks.google_message3.Message7966 (Enum8292)(0), // 56: benchmarks.google_message3.Enum8292 (*Message708)(nil), // 57: benchmarks.google_message3.Message708 (*Message8942)(nil), // 58: benchmarks.google_message3.Message8942 (Enum8900)(0), // 59: benchmarks.google_message3.Enum8900 (*Message11011)(nil), // 60: benchmarks.google_message3.Message11011 } var file_datasets_google_message3_benchmark_message3_6_proto_depIdxs = []int32{ 42, // 0: benchmarks.google_message3.Message8944.field9067:type_name -> benchmarks.google_message3.Enum8945 43, // 1: benchmarks.google_message3.Message8944.field9078:type_name -> benchmarks.google_message3.Enum8951 44, // 2: benchmarks.google_message3.Message8944.field9086:type_name -> benchmarks.google_message3.UnusedEnum 44, // 3: benchmarks.google_message3.Message8944.field9093:type_name -> benchmarks.google_message3.UnusedEnum 44, // 4: benchmarks.google_message3.Message8944.field9094:type_name -> benchmarks.google_message3.UnusedEnum 29, // 5: benchmarks.google_message3.Message8944.field9105:type_name -> benchmarks.google_message3.Message8939 45, // 6: benchmarks.google_message3.Message9182.field9215:type_name -> benchmarks.google_message3.UnusedEmptyMessage 45, // 7: benchmarks.google_message3.Message9182.field9216:type_name -> benchmarks.google_message3.UnusedEmptyMessage 30, // 8: benchmarks.google_message3.Message9182.field9217:type_name -> benchmarks.google_message3.Message9181 31, // 9: benchmarks.google_message3.Message9182.field9221:type_name -> benchmarks.google_message3.Message9164 32, // 10: benchmarks.google_message3.Message9182.field9222:type_name -> benchmarks.google_message3.Message9165 33, // 11: benchmarks.google_message3.Message9182.field9223:type_name -> benchmarks.google_message3.Message9166 34, // 12: benchmarks.google_message3.Message9182.field9225:type_name -> benchmarks.google_message3.Message9151 46, // 13: benchmarks.google_message3.Message9242.field9327:type_name -> benchmarks.google_message3.Enum9243 35, // 14: benchmarks.google_message3.Message8890.field8916:type_name -> benchmarks.google_message3.Message8888 36, // 15: benchmarks.google_message3.Message9628.field9673:type_name -> benchmarks.google_message3.Message9627 47, // 16: benchmarks.google_message3.Message11014.field11783:type_name -> benchmarks.google_message3.Enum11107 48, // 17: benchmarks.google_message3.Message11014.field11794:type_name -> benchmarks.google_message3.Enum11541 44, // 18: benchmarks.google_message3.Message11014.field11799:type_name -> benchmarks.google_message3.UnusedEnum 49, // 19: benchmarks.google_message3.Message11014.field11800:type_name -> benchmarks.google_message3.Enum11468 44, // 20: benchmarks.google_message3.Message11014.field11802:type_name -> benchmarks.google_message3.UnusedEnum 45, // 21: benchmarks.google_message3.Message11014.field11806:type_name -> benchmarks.google_message3.UnusedEmptyMessage 50, // 22: benchmarks.google_message3.Message11014.field11807:type_name -> benchmarks.google_message3.Message11018 47, // 23: benchmarks.google_message3.Message11014.field11815:type_name -> benchmarks.google_message3.Enum11107 37, // 24: benchmarks.google_message3.Message11014.field11826:type_name -> benchmarks.google_message3.Message11020 45, // 25: benchmarks.google_message3.Message11014.field11827:type_name -> benchmarks.google_message3.UnusedEmptyMessage 51, // 26: benchmarks.google_message3.Message11014.field11840:type_name -> benchmarks.google_message3.Enum11022 38, // 27: benchmarks.google_message3.Message11014.field11841:type_name -> benchmarks.google_message3.Message11013 52, // 28: benchmarks.google_message3.Message10801.field10812:type_name -> benchmarks.google_message3.Message10800 53, // 29: benchmarks.google_message3.Message10801.field10813:type_name -> benchmarks.google_message3.Message10802 54, // 30: benchmarks.google_message3.Message10749.field10754:type_name -> benchmarks.google_message3.Message10748 55, // 31: benchmarks.google_message3.Message8298.field8321:type_name -> benchmarks.google_message3.Message7966 55, // 32: benchmarks.google_message3.Message8300.field8327:type_name -> benchmarks.google_message3.Message7966 56, // 33: benchmarks.google_message3.Message8291.field8310:type_name -> benchmarks.google_message3.Enum8292 55, // 34: benchmarks.google_message3.Message8296.field8311:type_name -> benchmarks.google_message3.Message7966 55, // 35: benchmarks.google_message3.Message8296.field8313:type_name -> benchmarks.google_message3.Message7966 57, // 36: benchmarks.google_message3.Message713.field852:type_name -> benchmarks.google_message3.Message708 45, // 37: benchmarks.google_message3.Message711.field839:type_name -> benchmarks.google_message3.UnusedEmptyMessage 39, // 38: benchmarks.google_message3.Message8939.message8940:type_name -> benchmarks.google_message3.Message8939.Message8940 40, // 39: benchmarks.google_message3.Message8939.message8941:type_name -> benchmarks.google_message3.Message8939.Message8941 58, // 40: benchmarks.google_message3.Message8939.field9020:type_name -> benchmarks.google_message3.Message8942 45, // 41: benchmarks.google_message3.Message8939.field9021:type_name -> benchmarks.google_message3.UnusedEmptyMessage 44, // 42: benchmarks.google_message3.Message8939.field9029:type_name -> benchmarks.google_message3.UnusedEnum 44, // 43: benchmarks.google_message3.Message8939.field9030:type_name -> benchmarks.google_message3.UnusedEnum 41, // 44: benchmarks.google_message3.Message8939.message8943:type_name -> benchmarks.google_message3.Message8939.Message8943 59, // 45: benchmarks.google_message3.Message8888.field8909:type_name -> benchmarks.google_message3.Enum8900 45, // 46: benchmarks.google_message3.Message11013.field11778:type_name -> benchmarks.google_message3.UnusedEmptyMessage 60, // 47: benchmarks.google_message3.Message11013.field11779:type_name -> benchmarks.google_message3.Message11011 48, // [48:48] is the sub-list for method output_type 48, // [48:48] is the sub-list for method input_type 48, // [48:48] is the sub-list for extension type_name 48, // [48:48] is the sub-list for extension extendee 0, // [0:48] is the sub-list for field type_name } func init() { file_datasets_google_message3_benchmark_message3_6_proto_init() } func file_datasets_google_message3_benchmark_message3_6_proto_init() { if File_datasets_google_message3_benchmark_message3_6_proto != nil { return } file_datasets_google_message3_benchmark_message3_7_proto_init() file_datasets_google_message3_benchmark_message3_8_proto_init() if !protoimpl.UnsafeEnabled { file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10576); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10154); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8944); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message9182); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message9160); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message9242); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8890); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message9123); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message9628); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message11014); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10801); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10749); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8298); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8300); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8291); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8296); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7965); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8290); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message717); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message713); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message705); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message709); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message702); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message714); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message710); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message706); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message707); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message711); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message712); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8939); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message9181); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message9164); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message9165); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message9166); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message9151); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8888); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message9627); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message11020); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message11013); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8939_Message8940); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8939_Message8941); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_6_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8939_Message8943); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_datasets_google_message3_benchmark_message3_6_proto_rawDesc, NumEnums: 0, NumMessages: 42, NumExtensions: 0, NumServices: 0, }, GoTypes: file_datasets_google_message3_benchmark_message3_6_proto_goTypes, DependencyIndexes: file_datasets_google_message3_benchmark_message3_6_proto_depIdxs, MessageInfos: file_datasets_google_message3_benchmark_message3_6_proto_msgTypes, }.Build() File_datasets_google_message3_benchmark_message3_6_proto = out.File file_datasets_google_message3_benchmark_message3_6_proto_rawDesc = nil file_datasets_google_message3_benchmark_message3_6_proto_goTypes = nil file_datasets_google_message3_benchmark_message3_6_proto_depIdxs = nil } benchmark_message3_7.pb.go000066400000000000000000000672531411250152500360430ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/datasets/google_message3// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Code generated by protoc-gen-go. DO NOT EDIT. // source: datasets/google_message3/benchmark_message3_7.proto package google_message3 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Message11018 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message11018) Reset() { *x = Message11018{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message11018) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message11018) ProtoMessage() {} func (x *Message11018) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message11018.ProtoReflect.Descriptor instead. func (*Message11018) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_7_proto_rawDescGZIP(), []int{0} } type Message10800 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field10808 *string `protobuf:"bytes,1,opt,name=field10808" json:"field10808,omitempty"` Field10809 *int64 `protobuf:"varint,2,opt,name=field10809" json:"field10809,omitempty"` Field10810 *bool `protobuf:"varint,3,opt,name=field10810" json:"field10810,omitempty"` Field10811 *float32 `protobuf:"fixed32,4,opt,name=field10811" json:"field10811,omitempty"` } func (x *Message10800) Reset() { *x = Message10800{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10800) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10800) ProtoMessage() {} func (x *Message10800) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10800.ProtoReflect.Descriptor instead. func (*Message10800) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_7_proto_rawDescGZIP(), []int{1} } func (x *Message10800) GetField10808() string { if x != nil && x.Field10808 != nil { return *x.Field10808 } return "" } func (x *Message10800) GetField10809() int64 { if x != nil && x.Field10809 != nil { return *x.Field10809 } return 0 } func (x *Message10800) GetField10810() bool { if x != nil && x.Field10810 != nil { return *x.Field10810 } return false } func (x *Message10800) GetField10811() float32 { if x != nil && x.Field10811 != nil { return *x.Field10811 } return 0 } type Message10802 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message10802) Reset() { *x = Message10802{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10802) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10802) ProtoMessage() {} func (x *Message10802) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10802.ProtoReflect.Descriptor instead. func (*Message10802) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_7_proto_rawDescGZIP(), []int{2} } type Message10748 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field10750 *string `protobuf:"bytes,1,opt,name=field10750" json:"field10750,omitempty"` Field10751 *int32 `protobuf:"varint,2,opt,name=field10751" json:"field10751,omitempty"` Field10752 *int32 `protobuf:"varint,3,opt,name=field10752" json:"field10752,omitempty"` Field10753 *int32 `protobuf:"varint,4,opt,name=field10753" json:"field10753,omitempty"` } func (x *Message10748) Reset() { *x = Message10748{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10748) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10748) ProtoMessage() {} func (x *Message10748) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10748.ProtoReflect.Descriptor instead. func (*Message10748) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_7_proto_rawDescGZIP(), []int{3} } func (x *Message10748) GetField10750() string { if x != nil && x.Field10750 != nil { return *x.Field10750 } return "" } func (x *Message10748) GetField10751() int32 { if x != nil && x.Field10751 != nil { return *x.Field10751 } return 0 } func (x *Message10748) GetField10752() int32 { if x != nil && x.Field10752 != nil { return *x.Field10752 } return 0 } func (x *Message10748) GetField10753() int32 { if x != nil && x.Field10753 != nil { return *x.Field10753 } return 0 } type Message7966 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7969 *string `protobuf:"bytes,1,opt,name=field7969" json:"field7969,omitempty"` Field7970 *bool `protobuf:"varint,2,opt,name=field7970" json:"field7970,omitempty"` } func (x *Message7966) Reset() { *x = Message7966{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7966) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7966) ProtoMessage() {} func (x *Message7966) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7966.ProtoReflect.Descriptor instead. func (*Message7966) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_7_proto_rawDescGZIP(), []int{4} } func (x *Message7966) GetField7969() string { if x != nil && x.Field7969 != nil { return *x.Field7969 } return "" } func (x *Message7966) GetField7970() bool { if x != nil && x.Field7970 != nil { return *x.Field7970 } return false } type Message708 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field823 *Message741 `protobuf:"bytes,1,opt,name=field823" json:"field823,omitempty"` Field824 []string `protobuf:"bytes,6,rep,name=field824" json:"field824,omitempty"` Field825 *string `protobuf:"bytes,2,opt,name=field825" json:"field825,omitempty"` Field826 *string `protobuf:"bytes,3,opt,name=field826" json:"field826,omitempty"` Field827 []string `protobuf:"bytes,4,rep,name=field827" json:"field827,omitempty"` Field828 []string `protobuf:"bytes,5,rep,name=field828" json:"field828,omitempty"` } func (x *Message708) Reset() { *x = Message708{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message708) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message708) ProtoMessage() {} func (x *Message708) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message708.ProtoReflect.Descriptor instead. func (*Message708) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_7_proto_rawDescGZIP(), []int{5} } func (x *Message708) GetField823() *Message741 { if x != nil { return x.Field823 } return nil } func (x *Message708) GetField824() []string { if x != nil { return x.Field824 } return nil } func (x *Message708) GetField825() string { if x != nil && x.Field825 != nil { return *x.Field825 } return "" } func (x *Message708) GetField826() string { if x != nil && x.Field826 != nil { return *x.Field826 } return "" } func (x *Message708) GetField827() []string { if x != nil { return x.Field827 } return nil } func (x *Message708) GetField828() []string { if x != nil { return x.Field828 } return nil } type Message8942 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message8942) Reset() { *x = Message8942{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8942) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8942) ProtoMessage() {} func (x *Message8942) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8942.ProtoReflect.Descriptor instead. func (*Message8942) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_7_proto_rawDescGZIP(), []int{6} } type Message11011 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field11752 []byte `protobuf:"bytes,1,req,name=field11752" json:"field11752,omitempty"` Field11753 []byte `protobuf:"bytes,2,req,name=field11753" json:"field11753,omitempty"` } func (x *Message11011) Reset() { *x = Message11011{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message11011) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message11011) ProtoMessage() {} func (x *Message11011) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message11011.ProtoReflect.Descriptor instead. func (*Message11011) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_7_proto_rawDescGZIP(), []int{7} } func (x *Message11011) GetField11752() []byte { if x != nil { return x.Field11752 } return nil } func (x *Message11011) GetField11753() []byte { if x != nil { return x.Field11753 } return nil } type UnusedEmptyMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *UnusedEmptyMessage) Reset() { *x = UnusedEmptyMessage{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UnusedEmptyMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*UnusedEmptyMessage) ProtoMessage() {} func (x *UnusedEmptyMessage) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UnusedEmptyMessage.ProtoReflect.Descriptor instead. func (*UnusedEmptyMessage) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_7_proto_rawDescGZIP(), []int{8} } type Message741 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field936 []string `protobuf:"bytes,1,rep,name=field936" json:"field936,omitempty"` } func (x *Message741) Reset() { *x = Message741{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message741) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message741) ProtoMessage() {} func (x *Message741) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message741.ProtoReflect.Descriptor instead. func (*Message741) Descriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_7_proto_rawDescGZIP(), []int{9} } func (x *Message741) GetField936() []string { if x != nil { return x.Field936 } return nil } var File_datasets_google_message3_benchmark_message3_7_proto protoreflect.FileDescriptor var file_datasets_google_message3_benchmark_message3_7_proto_rawDesc = []byte{ 0x0a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x37, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x22, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x30, 0x31, 0x38, 0x22, 0x8e, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x38, 0x30, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x38, 0x30, 0x38, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x38, 0x30, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x38, 0x30, 0x39, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x38, 0x30, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x38, 0x31, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x38, 0x31, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x38, 0x31, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x38, 0x31, 0x31, 0x22, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x38, 0x30, 0x32, 0x22, 0x8e, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x37, 0x34, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x35, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x35, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x35, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x35, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x35, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x35, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x35, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x37, 0x35, 0x33, 0x22, 0x49, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x36, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x36, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x36, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x37, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x37, 0x30, 0x22, 0xdc, 0x01, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x30, 0x38, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x34, 0x31, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x34, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x36, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x37, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x37, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x38, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x32, 0x38, 0x22, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x39, 0x34, 0x32, 0x22, 0x4e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x30, 0x31, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x35, 0x32, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x35, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x35, 0x33, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x37, 0x35, 0x33, 0x22, 0x14, 0x0a, 0x12, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x28, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x34, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x33, 0x36, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x33, 0x36, 0x42, 0x23, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0xf8, 0x01, 0x01, } var ( file_datasets_google_message3_benchmark_message3_7_proto_rawDescOnce sync.Once file_datasets_google_message3_benchmark_message3_7_proto_rawDescData = file_datasets_google_message3_benchmark_message3_7_proto_rawDesc ) func file_datasets_google_message3_benchmark_message3_7_proto_rawDescGZIP() []byte { file_datasets_google_message3_benchmark_message3_7_proto_rawDescOnce.Do(func() { file_datasets_google_message3_benchmark_message3_7_proto_rawDescData = protoimpl.X.CompressGZIP(file_datasets_google_message3_benchmark_message3_7_proto_rawDescData) }) return file_datasets_google_message3_benchmark_message3_7_proto_rawDescData } var file_datasets_google_message3_benchmark_message3_7_proto_msgTypes = make([]protoimpl.MessageInfo, 10) var file_datasets_google_message3_benchmark_message3_7_proto_goTypes = []interface{}{ (*Message11018)(nil), // 0: benchmarks.google_message3.Message11018 (*Message10800)(nil), // 1: benchmarks.google_message3.Message10800 (*Message10802)(nil), // 2: benchmarks.google_message3.Message10802 (*Message10748)(nil), // 3: benchmarks.google_message3.Message10748 (*Message7966)(nil), // 4: benchmarks.google_message3.Message7966 (*Message708)(nil), // 5: benchmarks.google_message3.Message708 (*Message8942)(nil), // 6: benchmarks.google_message3.Message8942 (*Message11011)(nil), // 7: benchmarks.google_message3.Message11011 (*UnusedEmptyMessage)(nil), // 8: benchmarks.google_message3.UnusedEmptyMessage (*Message741)(nil), // 9: benchmarks.google_message3.Message741 } var file_datasets_google_message3_benchmark_message3_7_proto_depIdxs = []int32{ 9, // 0: benchmarks.google_message3.Message708.field823:type_name -> benchmarks.google_message3.Message741 1, // [1:1] is the sub-list for method output_type 1, // [1:1] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name 1, // [1:1] is the sub-list for extension extendee 0, // [0:1] is the sub-list for field type_name } func init() { file_datasets_google_message3_benchmark_message3_7_proto_init() } func file_datasets_google_message3_benchmark_message3_7_proto_init() { if File_datasets_google_message3_benchmark_message3_7_proto != nil { return } if !protoimpl.UnsafeEnabled { file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message11018); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10800); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10802); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10748); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7966); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message708); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8942); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message11011); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UnusedEmptyMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message3_benchmark_message3_7_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message741); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_datasets_google_message3_benchmark_message3_7_proto_rawDesc, NumEnums: 0, NumMessages: 10, NumExtensions: 0, NumServices: 0, }, GoTypes: file_datasets_google_message3_benchmark_message3_7_proto_goTypes, DependencyIndexes: file_datasets_google_message3_benchmark_message3_7_proto_depIdxs, MessageInfos: file_datasets_google_message3_benchmark_message3_7_proto_msgTypes, }.Build() File_datasets_google_message3_benchmark_message3_7_proto = out.File file_datasets_google_message3_benchmark_message3_7_proto_rawDesc = nil file_datasets_google_message3_benchmark_message3_7_proto_goTypes = nil file_datasets_google_message3_benchmark_message3_7_proto_depIdxs = nil } benchmark_message3_8.pb.go000066400000000000000000016120461411250152500360410ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/datasets/google_message3// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Code generated by protoc-gen-go. DO NOT EDIT. // source: datasets/google_message3/benchmark_message3_8.proto package google_message3 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Enum720 int32 const ( Enum720_ENUM_VALUE721 Enum720 = 1 Enum720_ENUM_VALUE722 Enum720 = 2 ) // Enum value maps for Enum720. var ( Enum720_name = map[int32]string{ 1: "ENUM_VALUE721", 2: "ENUM_VALUE722", } Enum720_value = map[string]int32{ "ENUM_VALUE721": 1, "ENUM_VALUE722": 2, } ) func (x Enum720) Enum() *Enum720 { p := new(Enum720) *p = x return p } func (x Enum720) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum720) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[0].Descriptor() } func (Enum720) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[0] } func (x Enum720) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum720) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum720(num) return nil } // Deprecated: Use Enum720.Descriptor instead. func (Enum720) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{0} } type Enum3476 int32 const ( Enum3476_ENUM_VALUE3477 Enum3476 = 0 Enum3476_ENUM_VALUE3478 Enum3476 = 1 Enum3476_ENUM_VALUE3479 Enum3476 = 2 Enum3476_ENUM_VALUE3480 Enum3476 = 3 Enum3476_ENUM_VALUE3481 Enum3476 = 4 Enum3476_ENUM_VALUE3482 Enum3476 = 5 Enum3476_ENUM_VALUE3483 Enum3476 = 6 Enum3476_ENUM_VALUE3484 Enum3476 = 7 Enum3476_ENUM_VALUE3485 Enum3476 = 8 Enum3476_ENUM_VALUE3486 Enum3476 = 9 Enum3476_ENUM_VALUE3487 Enum3476 = 10 Enum3476_ENUM_VALUE3488 Enum3476 = 11 Enum3476_ENUM_VALUE3489 Enum3476 = 12 Enum3476_ENUM_VALUE3490 Enum3476 = 13 Enum3476_ENUM_VALUE3491 Enum3476 = 14 Enum3476_ENUM_VALUE3492 Enum3476 = 15 Enum3476_ENUM_VALUE3493 Enum3476 = 16 Enum3476_ENUM_VALUE3494 Enum3476 = 17 Enum3476_ENUM_VALUE3495 Enum3476 = 18 Enum3476_ENUM_VALUE3496 Enum3476 = 19 Enum3476_ENUM_VALUE3497 Enum3476 = 20 Enum3476_ENUM_VALUE3498 Enum3476 = 21 Enum3476_ENUM_VALUE3499 Enum3476 = 22 Enum3476_ENUM_VALUE3500 Enum3476 = 23 Enum3476_ENUM_VALUE3501 Enum3476 = 24 Enum3476_ENUM_VALUE3502 Enum3476 = 25 Enum3476_ENUM_VALUE3503 Enum3476 = 26 Enum3476_ENUM_VALUE3504 Enum3476 = 27 Enum3476_ENUM_VALUE3505 Enum3476 = 28 Enum3476_ENUM_VALUE3506 Enum3476 = 29 Enum3476_ENUM_VALUE3507 Enum3476 = 30 Enum3476_ENUM_VALUE3508 Enum3476 = 31 Enum3476_ENUM_VALUE3509 Enum3476 = 32 Enum3476_ENUM_VALUE3510 Enum3476 = 33 Enum3476_ENUM_VALUE3511 Enum3476 = 34 Enum3476_ENUM_VALUE3512 Enum3476 = 35 Enum3476_ENUM_VALUE3513 Enum3476 = 36 Enum3476_ENUM_VALUE3514 Enum3476 = 37 Enum3476_ENUM_VALUE3515 Enum3476 = 38 Enum3476_ENUM_VALUE3516 Enum3476 = 39 Enum3476_ENUM_VALUE3517 Enum3476 = 40 Enum3476_ENUM_VALUE3518 Enum3476 = 41 Enum3476_ENUM_VALUE3519 Enum3476 = 42 Enum3476_ENUM_VALUE3520 Enum3476 = 43 Enum3476_ENUM_VALUE3521 Enum3476 = 44 Enum3476_ENUM_VALUE3522 Enum3476 = 45 Enum3476_ENUM_VALUE3523 Enum3476 = 46 Enum3476_ENUM_VALUE3524 Enum3476 = 47 Enum3476_ENUM_VALUE3525 Enum3476 = 48 Enum3476_ENUM_VALUE3526 Enum3476 = 49 Enum3476_ENUM_VALUE3527 Enum3476 = 50 Enum3476_ENUM_VALUE3528 Enum3476 = 51 Enum3476_ENUM_VALUE3529 Enum3476 = 52 Enum3476_ENUM_VALUE3530 Enum3476 = 53 Enum3476_ENUM_VALUE3531 Enum3476 = 54 Enum3476_ENUM_VALUE3532 Enum3476 = 55 Enum3476_ENUM_VALUE3533 Enum3476 = 56 Enum3476_ENUM_VALUE3534 Enum3476 = 57 Enum3476_ENUM_VALUE3535 Enum3476 = 58 Enum3476_ENUM_VALUE3536 Enum3476 = 59 Enum3476_ENUM_VALUE3537 Enum3476 = 60 Enum3476_ENUM_VALUE3538 Enum3476 = 61 Enum3476_ENUM_VALUE3539 Enum3476 = 62 Enum3476_ENUM_VALUE3540 Enum3476 = 63 Enum3476_ENUM_VALUE3541 Enum3476 = 64 Enum3476_ENUM_VALUE3542 Enum3476 = 65 Enum3476_ENUM_VALUE3543 Enum3476 = 66 Enum3476_ENUM_VALUE3544 Enum3476 = 67 Enum3476_ENUM_VALUE3545 Enum3476 = 68 Enum3476_ENUM_VALUE3546 Enum3476 = 69 Enum3476_ENUM_VALUE3547 Enum3476 = 70 Enum3476_ENUM_VALUE3548 Enum3476 = 71 Enum3476_ENUM_VALUE3549 Enum3476 = 72 Enum3476_ENUM_VALUE3550 Enum3476 = 73 Enum3476_ENUM_VALUE3551 Enum3476 = 74 Enum3476_ENUM_VALUE3552 Enum3476 = 75 Enum3476_ENUM_VALUE3553 Enum3476 = 76 Enum3476_ENUM_VALUE3554 Enum3476 = 77 Enum3476_ENUM_VALUE3555 Enum3476 = 78 Enum3476_ENUM_VALUE3556 Enum3476 = 79 Enum3476_ENUM_VALUE3557 Enum3476 = 80 Enum3476_ENUM_VALUE3558 Enum3476 = 81 Enum3476_ENUM_VALUE3559 Enum3476 = 82 Enum3476_ENUM_VALUE3560 Enum3476 = 83 Enum3476_ENUM_VALUE3561 Enum3476 = 84 Enum3476_ENUM_VALUE3562 Enum3476 = 85 Enum3476_ENUM_VALUE3563 Enum3476 = 86 Enum3476_ENUM_VALUE3564 Enum3476 = 87 Enum3476_ENUM_VALUE3565 Enum3476 = 88 Enum3476_ENUM_VALUE3566 Enum3476 = 89 Enum3476_ENUM_VALUE3567 Enum3476 = 90 Enum3476_ENUM_VALUE3568 Enum3476 = 91 Enum3476_ENUM_VALUE3569 Enum3476 = 92 Enum3476_ENUM_VALUE3570 Enum3476 = 93 Enum3476_ENUM_VALUE3571 Enum3476 = 94 Enum3476_ENUM_VALUE3572 Enum3476 = 95 Enum3476_ENUM_VALUE3573 Enum3476 = 96 Enum3476_ENUM_VALUE3574 Enum3476 = 97 Enum3476_ENUM_VALUE3575 Enum3476 = 98 Enum3476_ENUM_VALUE3576 Enum3476 = 99 Enum3476_ENUM_VALUE3577 Enum3476 = 100 Enum3476_ENUM_VALUE3578 Enum3476 = 101 Enum3476_ENUM_VALUE3579 Enum3476 = 102 Enum3476_ENUM_VALUE3580 Enum3476 = 103 Enum3476_ENUM_VALUE3581 Enum3476 = 104 Enum3476_ENUM_VALUE3582 Enum3476 = 105 Enum3476_ENUM_VALUE3583 Enum3476 = 106 Enum3476_ENUM_VALUE3584 Enum3476 = 107 Enum3476_ENUM_VALUE3585 Enum3476 = 108 Enum3476_ENUM_VALUE3586 Enum3476 = 109 Enum3476_ENUM_VALUE3587 Enum3476 = 110 Enum3476_ENUM_VALUE3588 Enum3476 = 111 Enum3476_ENUM_VALUE3589 Enum3476 = 112 Enum3476_ENUM_VALUE3590 Enum3476 = 113 Enum3476_ENUM_VALUE3591 Enum3476 = 114 Enum3476_ENUM_VALUE3592 Enum3476 = 115 Enum3476_ENUM_VALUE3593 Enum3476 = 116 Enum3476_ENUM_VALUE3594 Enum3476 = 117 Enum3476_ENUM_VALUE3595 Enum3476 = 118 Enum3476_ENUM_VALUE3596 Enum3476 = 119 Enum3476_ENUM_VALUE3597 Enum3476 = 120 Enum3476_ENUM_VALUE3598 Enum3476 = 121 Enum3476_ENUM_VALUE3599 Enum3476 = 122 Enum3476_ENUM_VALUE3600 Enum3476 = 123 Enum3476_ENUM_VALUE3601 Enum3476 = 124 Enum3476_ENUM_VALUE3602 Enum3476 = 125 Enum3476_ENUM_VALUE3603 Enum3476 = 126 Enum3476_ENUM_VALUE3604 Enum3476 = 127 Enum3476_ENUM_VALUE3605 Enum3476 = 128 Enum3476_ENUM_VALUE3606 Enum3476 = 129 Enum3476_ENUM_VALUE3607 Enum3476 = 130 Enum3476_ENUM_VALUE3608 Enum3476 = 131 Enum3476_ENUM_VALUE3609 Enum3476 = 132 Enum3476_ENUM_VALUE3610 Enum3476 = 133 Enum3476_ENUM_VALUE3611 Enum3476 = 134 Enum3476_ENUM_VALUE3612 Enum3476 = 135 Enum3476_ENUM_VALUE3613 Enum3476 = 136 Enum3476_ENUM_VALUE3614 Enum3476 = 137 Enum3476_ENUM_VALUE3615 Enum3476 = 138 Enum3476_ENUM_VALUE3616 Enum3476 = 139 Enum3476_ENUM_VALUE3617 Enum3476 = 140 Enum3476_ENUM_VALUE3618 Enum3476 = 141 Enum3476_ENUM_VALUE3619 Enum3476 = 142 Enum3476_ENUM_VALUE3620 Enum3476 = 143 Enum3476_ENUM_VALUE3621 Enum3476 = 144 Enum3476_ENUM_VALUE3622 Enum3476 = 145 Enum3476_ENUM_VALUE3623 Enum3476 = 146 Enum3476_ENUM_VALUE3624 Enum3476 = 147 Enum3476_ENUM_VALUE3625 Enum3476 = 148 Enum3476_ENUM_VALUE3626 Enum3476 = 149 Enum3476_ENUM_VALUE3627 Enum3476 = 150 Enum3476_ENUM_VALUE3628 Enum3476 = 151 Enum3476_ENUM_VALUE3629 Enum3476 = 152 Enum3476_ENUM_VALUE3630 Enum3476 = 153 Enum3476_ENUM_VALUE3631 Enum3476 = 154 Enum3476_ENUM_VALUE3632 Enum3476 = 155 Enum3476_ENUM_VALUE3633 Enum3476 = 156 Enum3476_ENUM_VALUE3634 Enum3476 = 157 Enum3476_ENUM_VALUE3635 Enum3476 = 158 Enum3476_ENUM_VALUE3636 Enum3476 = 159 Enum3476_ENUM_VALUE3637 Enum3476 = 160 Enum3476_ENUM_VALUE3638 Enum3476 = 161 Enum3476_ENUM_VALUE3639 Enum3476 = 162 Enum3476_ENUM_VALUE3640 Enum3476 = 163 Enum3476_ENUM_VALUE3641 Enum3476 = 164 Enum3476_ENUM_VALUE3642 Enum3476 = 165 Enum3476_ENUM_VALUE3643 Enum3476 = 166 Enum3476_ENUM_VALUE3644 Enum3476 = 167 Enum3476_ENUM_VALUE3645 Enum3476 = 168 Enum3476_ENUM_VALUE3646 Enum3476 = 169 Enum3476_ENUM_VALUE3647 Enum3476 = 170 Enum3476_ENUM_VALUE3648 Enum3476 = 171 Enum3476_ENUM_VALUE3649 Enum3476 = 172 Enum3476_ENUM_VALUE3650 Enum3476 = 173 Enum3476_ENUM_VALUE3651 Enum3476 = 174 Enum3476_ENUM_VALUE3652 Enum3476 = 175 Enum3476_ENUM_VALUE3653 Enum3476 = 176 Enum3476_ENUM_VALUE3654 Enum3476 = 177 Enum3476_ENUM_VALUE3655 Enum3476 = 178 Enum3476_ENUM_VALUE3656 Enum3476 = 179 Enum3476_ENUM_VALUE3657 Enum3476 = 180 Enum3476_ENUM_VALUE3658 Enum3476 = 181 Enum3476_ENUM_VALUE3659 Enum3476 = 182 Enum3476_ENUM_VALUE3660 Enum3476 = 183 ) // Enum value maps for Enum3476. var ( Enum3476_name = map[int32]string{ 0: "ENUM_VALUE3477", 1: "ENUM_VALUE3478", 2: "ENUM_VALUE3479", 3: "ENUM_VALUE3480", 4: "ENUM_VALUE3481", 5: "ENUM_VALUE3482", 6: "ENUM_VALUE3483", 7: "ENUM_VALUE3484", 8: "ENUM_VALUE3485", 9: "ENUM_VALUE3486", 10: "ENUM_VALUE3487", 11: "ENUM_VALUE3488", 12: "ENUM_VALUE3489", 13: "ENUM_VALUE3490", 14: "ENUM_VALUE3491", 15: "ENUM_VALUE3492", 16: "ENUM_VALUE3493", 17: "ENUM_VALUE3494", 18: "ENUM_VALUE3495", 19: "ENUM_VALUE3496", 20: "ENUM_VALUE3497", 21: "ENUM_VALUE3498", 22: "ENUM_VALUE3499", 23: "ENUM_VALUE3500", 24: "ENUM_VALUE3501", 25: "ENUM_VALUE3502", 26: "ENUM_VALUE3503", 27: "ENUM_VALUE3504", 28: "ENUM_VALUE3505", 29: "ENUM_VALUE3506", 30: "ENUM_VALUE3507", 31: "ENUM_VALUE3508", 32: "ENUM_VALUE3509", 33: "ENUM_VALUE3510", 34: "ENUM_VALUE3511", 35: "ENUM_VALUE3512", 36: "ENUM_VALUE3513", 37: "ENUM_VALUE3514", 38: "ENUM_VALUE3515", 39: "ENUM_VALUE3516", 40: "ENUM_VALUE3517", 41: "ENUM_VALUE3518", 42: "ENUM_VALUE3519", 43: "ENUM_VALUE3520", 44: "ENUM_VALUE3521", 45: "ENUM_VALUE3522", 46: "ENUM_VALUE3523", 47: "ENUM_VALUE3524", 48: "ENUM_VALUE3525", 49: "ENUM_VALUE3526", 50: "ENUM_VALUE3527", 51: "ENUM_VALUE3528", 52: "ENUM_VALUE3529", 53: "ENUM_VALUE3530", 54: "ENUM_VALUE3531", 55: "ENUM_VALUE3532", 56: "ENUM_VALUE3533", 57: "ENUM_VALUE3534", 58: "ENUM_VALUE3535", 59: "ENUM_VALUE3536", 60: "ENUM_VALUE3537", 61: "ENUM_VALUE3538", 62: "ENUM_VALUE3539", 63: "ENUM_VALUE3540", 64: "ENUM_VALUE3541", 65: "ENUM_VALUE3542", 66: "ENUM_VALUE3543", 67: "ENUM_VALUE3544", 68: "ENUM_VALUE3545", 69: "ENUM_VALUE3546", 70: "ENUM_VALUE3547", 71: "ENUM_VALUE3548", 72: "ENUM_VALUE3549", 73: "ENUM_VALUE3550", 74: "ENUM_VALUE3551", 75: "ENUM_VALUE3552", 76: "ENUM_VALUE3553", 77: "ENUM_VALUE3554", 78: "ENUM_VALUE3555", 79: "ENUM_VALUE3556", 80: "ENUM_VALUE3557", 81: "ENUM_VALUE3558", 82: "ENUM_VALUE3559", 83: "ENUM_VALUE3560", 84: "ENUM_VALUE3561", 85: "ENUM_VALUE3562", 86: "ENUM_VALUE3563", 87: "ENUM_VALUE3564", 88: "ENUM_VALUE3565", 89: "ENUM_VALUE3566", 90: "ENUM_VALUE3567", 91: "ENUM_VALUE3568", 92: "ENUM_VALUE3569", 93: "ENUM_VALUE3570", 94: "ENUM_VALUE3571", 95: "ENUM_VALUE3572", 96: "ENUM_VALUE3573", 97: "ENUM_VALUE3574", 98: "ENUM_VALUE3575", 99: "ENUM_VALUE3576", 100: "ENUM_VALUE3577", 101: "ENUM_VALUE3578", 102: "ENUM_VALUE3579", 103: "ENUM_VALUE3580", 104: "ENUM_VALUE3581", 105: "ENUM_VALUE3582", 106: "ENUM_VALUE3583", 107: "ENUM_VALUE3584", 108: "ENUM_VALUE3585", 109: "ENUM_VALUE3586", 110: "ENUM_VALUE3587", 111: "ENUM_VALUE3588", 112: "ENUM_VALUE3589", 113: "ENUM_VALUE3590", 114: "ENUM_VALUE3591", 115: "ENUM_VALUE3592", 116: "ENUM_VALUE3593", 117: "ENUM_VALUE3594", 118: "ENUM_VALUE3595", 119: "ENUM_VALUE3596", 120: "ENUM_VALUE3597", 121: "ENUM_VALUE3598", 122: "ENUM_VALUE3599", 123: "ENUM_VALUE3600", 124: "ENUM_VALUE3601", 125: "ENUM_VALUE3602", 126: "ENUM_VALUE3603", 127: "ENUM_VALUE3604", 128: "ENUM_VALUE3605", 129: "ENUM_VALUE3606", 130: "ENUM_VALUE3607", 131: "ENUM_VALUE3608", 132: "ENUM_VALUE3609", 133: "ENUM_VALUE3610", 134: "ENUM_VALUE3611", 135: "ENUM_VALUE3612", 136: "ENUM_VALUE3613", 137: "ENUM_VALUE3614", 138: "ENUM_VALUE3615", 139: "ENUM_VALUE3616", 140: "ENUM_VALUE3617", 141: "ENUM_VALUE3618", 142: "ENUM_VALUE3619", 143: "ENUM_VALUE3620", 144: "ENUM_VALUE3621", 145: "ENUM_VALUE3622", 146: "ENUM_VALUE3623", 147: "ENUM_VALUE3624", 148: "ENUM_VALUE3625", 149: "ENUM_VALUE3626", 150: "ENUM_VALUE3627", 151: "ENUM_VALUE3628", 152: "ENUM_VALUE3629", 153: "ENUM_VALUE3630", 154: "ENUM_VALUE3631", 155: "ENUM_VALUE3632", 156: "ENUM_VALUE3633", 157: "ENUM_VALUE3634", 158: "ENUM_VALUE3635", 159: "ENUM_VALUE3636", 160: "ENUM_VALUE3637", 161: "ENUM_VALUE3638", 162: "ENUM_VALUE3639", 163: "ENUM_VALUE3640", 164: "ENUM_VALUE3641", 165: "ENUM_VALUE3642", 166: "ENUM_VALUE3643", 167: "ENUM_VALUE3644", 168: "ENUM_VALUE3645", 169: "ENUM_VALUE3646", 170: "ENUM_VALUE3647", 171: "ENUM_VALUE3648", 172: "ENUM_VALUE3649", 173: "ENUM_VALUE3650", 174: "ENUM_VALUE3651", 175: "ENUM_VALUE3652", 176: "ENUM_VALUE3653", 177: "ENUM_VALUE3654", 178: "ENUM_VALUE3655", 179: "ENUM_VALUE3656", 180: "ENUM_VALUE3657", 181: "ENUM_VALUE3658", 182: "ENUM_VALUE3659", 183: "ENUM_VALUE3660", } Enum3476_value = map[string]int32{ "ENUM_VALUE3477": 0, "ENUM_VALUE3478": 1, "ENUM_VALUE3479": 2, "ENUM_VALUE3480": 3, "ENUM_VALUE3481": 4, "ENUM_VALUE3482": 5, "ENUM_VALUE3483": 6, "ENUM_VALUE3484": 7, "ENUM_VALUE3485": 8, "ENUM_VALUE3486": 9, "ENUM_VALUE3487": 10, "ENUM_VALUE3488": 11, "ENUM_VALUE3489": 12, "ENUM_VALUE3490": 13, "ENUM_VALUE3491": 14, "ENUM_VALUE3492": 15, "ENUM_VALUE3493": 16, "ENUM_VALUE3494": 17, "ENUM_VALUE3495": 18, "ENUM_VALUE3496": 19, "ENUM_VALUE3497": 20, "ENUM_VALUE3498": 21, "ENUM_VALUE3499": 22, "ENUM_VALUE3500": 23, "ENUM_VALUE3501": 24, "ENUM_VALUE3502": 25, "ENUM_VALUE3503": 26, "ENUM_VALUE3504": 27, "ENUM_VALUE3505": 28, "ENUM_VALUE3506": 29, "ENUM_VALUE3507": 30, "ENUM_VALUE3508": 31, "ENUM_VALUE3509": 32, "ENUM_VALUE3510": 33, "ENUM_VALUE3511": 34, "ENUM_VALUE3512": 35, "ENUM_VALUE3513": 36, "ENUM_VALUE3514": 37, "ENUM_VALUE3515": 38, "ENUM_VALUE3516": 39, "ENUM_VALUE3517": 40, "ENUM_VALUE3518": 41, "ENUM_VALUE3519": 42, "ENUM_VALUE3520": 43, "ENUM_VALUE3521": 44, "ENUM_VALUE3522": 45, "ENUM_VALUE3523": 46, "ENUM_VALUE3524": 47, "ENUM_VALUE3525": 48, "ENUM_VALUE3526": 49, "ENUM_VALUE3527": 50, "ENUM_VALUE3528": 51, "ENUM_VALUE3529": 52, "ENUM_VALUE3530": 53, "ENUM_VALUE3531": 54, "ENUM_VALUE3532": 55, "ENUM_VALUE3533": 56, "ENUM_VALUE3534": 57, "ENUM_VALUE3535": 58, "ENUM_VALUE3536": 59, "ENUM_VALUE3537": 60, "ENUM_VALUE3538": 61, "ENUM_VALUE3539": 62, "ENUM_VALUE3540": 63, "ENUM_VALUE3541": 64, "ENUM_VALUE3542": 65, "ENUM_VALUE3543": 66, "ENUM_VALUE3544": 67, "ENUM_VALUE3545": 68, "ENUM_VALUE3546": 69, "ENUM_VALUE3547": 70, "ENUM_VALUE3548": 71, "ENUM_VALUE3549": 72, "ENUM_VALUE3550": 73, "ENUM_VALUE3551": 74, "ENUM_VALUE3552": 75, "ENUM_VALUE3553": 76, "ENUM_VALUE3554": 77, "ENUM_VALUE3555": 78, "ENUM_VALUE3556": 79, "ENUM_VALUE3557": 80, "ENUM_VALUE3558": 81, "ENUM_VALUE3559": 82, "ENUM_VALUE3560": 83, "ENUM_VALUE3561": 84, "ENUM_VALUE3562": 85, "ENUM_VALUE3563": 86, "ENUM_VALUE3564": 87, "ENUM_VALUE3565": 88, "ENUM_VALUE3566": 89, "ENUM_VALUE3567": 90, "ENUM_VALUE3568": 91, "ENUM_VALUE3569": 92, "ENUM_VALUE3570": 93, "ENUM_VALUE3571": 94, "ENUM_VALUE3572": 95, "ENUM_VALUE3573": 96, "ENUM_VALUE3574": 97, "ENUM_VALUE3575": 98, "ENUM_VALUE3576": 99, "ENUM_VALUE3577": 100, "ENUM_VALUE3578": 101, "ENUM_VALUE3579": 102, "ENUM_VALUE3580": 103, "ENUM_VALUE3581": 104, "ENUM_VALUE3582": 105, "ENUM_VALUE3583": 106, "ENUM_VALUE3584": 107, "ENUM_VALUE3585": 108, "ENUM_VALUE3586": 109, "ENUM_VALUE3587": 110, "ENUM_VALUE3588": 111, "ENUM_VALUE3589": 112, "ENUM_VALUE3590": 113, "ENUM_VALUE3591": 114, "ENUM_VALUE3592": 115, "ENUM_VALUE3593": 116, "ENUM_VALUE3594": 117, "ENUM_VALUE3595": 118, "ENUM_VALUE3596": 119, "ENUM_VALUE3597": 120, "ENUM_VALUE3598": 121, "ENUM_VALUE3599": 122, "ENUM_VALUE3600": 123, "ENUM_VALUE3601": 124, "ENUM_VALUE3602": 125, "ENUM_VALUE3603": 126, "ENUM_VALUE3604": 127, "ENUM_VALUE3605": 128, "ENUM_VALUE3606": 129, "ENUM_VALUE3607": 130, "ENUM_VALUE3608": 131, "ENUM_VALUE3609": 132, "ENUM_VALUE3610": 133, "ENUM_VALUE3611": 134, "ENUM_VALUE3612": 135, "ENUM_VALUE3613": 136, "ENUM_VALUE3614": 137, "ENUM_VALUE3615": 138, "ENUM_VALUE3616": 139, "ENUM_VALUE3617": 140, "ENUM_VALUE3618": 141, "ENUM_VALUE3619": 142, "ENUM_VALUE3620": 143, "ENUM_VALUE3621": 144, "ENUM_VALUE3622": 145, "ENUM_VALUE3623": 146, "ENUM_VALUE3624": 147, "ENUM_VALUE3625": 148, "ENUM_VALUE3626": 149, "ENUM_VALUE3627": 150, "ENUM_VALUE3628": 151, "ENUM_VALUE3629": 152, "ENUM_VALUE3630": 153, "ENUM_VALUE3631": 154, "ENUM_VALUE3632": 155, "ENUM_VALUE3633": 156, "ENUM_VALUE3634": 157, "ENUM_VALUE3635": 158, "ENUM_VALUE3636": 159, "ENUM_VALUE3637": 160, "ENUM_VALUE3638": 161, "ENUM_VALUE3639": 162, "ENUM_VALUE3640": 163, "ENUM_VALUE3641": 164, "ENUM_VALUE3642": 165, "ENUM_VALUE3643": 166, "ENUM_VALUE3644": 167, "ENUM_VALUE3645": 168, "ENUM_VALUE3646": 169, "ENUM_VALUE3647": 170, "ENUM_VALUE3648": 171, "ENUM_VALUE3649": 172, "ENUM_VALUE3650": 173, "ENUM_VALUE3651": 174, "ENUM_VALUE3652": 175, "ENUM_VALUE3653": 176, "ENUM_VALUE3654": 177, "ENUM_VALUE3655": 178, "ENUM_VALUE3656": 179, "ENUM_VALUE3657": 180, "ENUM_VALUE3658": 181, "ENUM_VALUE3659": 182, "ENUM_VALUE3660": 183, } ) func (x Enum3476) Enum() *Enum3476 { p := new(Enum3476) *p = x return p } func (x Enum3476) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum3476) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[1].Descriptor() } func (Enum3476) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[1] } func (x Enum3476) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum3476) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum3476(num) return nil } // Deprecated: Use Enum3476.Descriptor instead. func (Enum3476) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{1} } type Enum3805 int32 const ( Enum3805_ENUM_VALUE3806 Enum3805 = 0 Enum3805_ENUM_VALUE3807 Enum3805 = 1 Enum3805_ENUM_VALUE3808 Enum3805 = 2 Enum3805_ENUM_VALUE3809 Enum3805 = 3 Enum3805_ENUM_VALUE3810 Enum3805 = 4 Enum3805_ENUM_VALUE3811 Enum3805 = 5 Enum3805_ENUM_VALUE3812 Enum3805 = 6 Enum3805_ENUM_VALUE3813 Enum3805 = 7 Enum3805_ENUM_VALUE3814 Enum3805 = 8 Enum3805_ENUM_VALUE3815 Enum3805 = 9 Enum3805_ENUM_VALUE3816 Enum3805 = 11 Enum3805_ENUM_VALUE3817 Enum3805 = 10 ) // Enum value maps for Enum3805. var ( Enum3805_name = map[int32]string{ 0: "ENUM_VALUE3806", 1: "ENUM_VALUE3807", 2: "ENUM_VALUE3808", 3: "ENUM_VALUE3809", 4: "ENUM_VALUE3810", 5: "ENUM_VALUE3811", 6: "ENUM_VALUE3812", 7: "ENUM_VALUE3813", 8: "ENUM_VALUE3814", 9: "ENUM_VALUE3815", 11: "ENUM_VALUE3816", 10: "ENUM_VALUE3817", } Enum3805_value = map[string]int32{ "ENUM_VALUE3806": 0, "ENUM_VALUE3807": 1, "ENUM_VALUE3808": 2, "ENUM_VALUE3809": 3, "ENUM_VALUE3810": 4, "ENUM_VALUE3811": 5, "ENUM_VALUE3812": 6, "ENUM_VALUE3813": 7, "ENUM_VALUE3814": 8, "ENUM_VALUE3815": 9, "ENUM_VALUE3816": 11, "ENUM_VALUE3817": 10, } ) func (x Enum3805) Enum() *Enum3805 { p := new(Enum3805) *p = x return p } func (x Enum3805) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum3805) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[2].Descriptor() } func (Enum3805) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[2] } func (x Enum3805) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum3805) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum3805(num) return nil } // Deprecated: Use Enum3805.Descriptor instead. func (Enum3805) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{2} } type Enum3783 int32 const ( Enum3783_ENUM_VALUE3784 Enum3783 = 0 Enum3783_ENUM_VALUE3785 Enum3783 = 1 Enum3783_ENUM_VALUE3786 Enum3783 = 2 Enum3783_ENUM_VALUE3787 Enum3783 = 3 Enum3783_ENUM_VALUE3788 Enum3783 = 4 Enum3783_ENUM_VALUE3789 Enum3783 = 5 Enum3783_ENUM_VALUE3790 Enum3783 = 6 Enum3783_ENUM_VALUE3791 Enum3783 = 7 Enum3783_ENUM_VALUE3792 Enum3783 = 8 Enum3783_ENUM_VALUE3793 Enum3783 = 9 Enum3783_ENUM_VALUE3794 Enum3783 = 10 Enum3783_ENUM_VALUE3795 Enum3783 = 11 Enum3783_ENUM_VALUE3796 Enum3783 = 12 Enum3783_ENUM_VALUE3797 Enum3783 = 13 Enum3783_ENUM_VALUE3798 Enum3783 = 14 Enum3783_ENUM_VALUE3799 Enum3783 = 15 Enum3783_ENUM_VALUE3800 Enum3783 = 16 Enum3783_ENUM_VALUE3801 Enum3783 = 20 Enum3783_ENUM_VALUE3802 Enum3783 = 21 Enum3783_ENUM_VALUE3803 Enum3783 = 50 ) // Enum value maps for Enum3783. var ( Enum3783_name = map[int32]string{ 0: "ENUM_VALUE3784", 1: "ENUM_VALUE3785", 2: "ENUM_VALUE3786", 3: "ENUM_VALUE3787", 4: "ENUM_VALUE3788", 5: "ENUM_VALUE3789", 6: "ENUM_VALUE3790", 7: "ENUM_VALUE3791", 8: "ENUM_VALUE3792", 9: "ENUM_VALUE3793", 10: "ENUM_VALUE3794", 11: "ENUM_VALUE3795", 12: "ENUM_VALUE3796", 13: "ENUM_VALUE3797", 14: "ENUM_VALUE3798", 15: "ENUM_VALUE3799", 16: "ENUM_VALUE3800", 20: "ENUM_VALUE3801", 21: "ENUM_VALUE3802", 50: "ENUM_VALUE3803", } Enum3783_value = map[string]int32{ "ENUM_VALUE3784": 0, "ENUM_VALUE3785": 1, "ENUM_VALUE3786": 2, "ENUM_VALUE3787": 3, "ENUM_VALUE3788": 4, "ENUM_VALUE3789": 5, "ENUM_VALUE3790": 6, "ENUM_VALUE3791": 7, "ENUM_VALUE3792": 8, "ENUM_VALUE3793": 9, "ENUM_VALUE3794": 10, "ENUM_VALUE3795": 11, "ENUM_VALUE3796": 12, "ENUM_VALUE3797": 13, "ENUM_VALUE3798": 14, "ENUM_VALUE3799": 15, "ENUM_VALUE3800": 16, "ENUM_VALUE3801": 20, "ENUM_VALUE3802": 21, "ENUM_VALUE3803": 50, } ) func (x Enum3783) Enum() *Enum3783 { p := new(Enum3783) *p = x return p } func (x Enum3783) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum3783) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[3].Descriptor() } func (Enum3783) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[3] } func (x Enum3783) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum3783) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum3783(num) return nil } // Deprecated: Use Enum3783.Descriptor instead. func (Enum3783) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{3} } type Enum3851 int32 const ( Enum3851_ENUM_VALUE3852 Enum3851 = 0 Enum3851_ENUM_VALUE3853 Enum3851 = 1 Enum3851_ENUM_VALUE3854 Enum3851 = 2 Enum3851_ENUM_VALUE3855 Enum3851 = 3 Enum3851_ENUM_VALUE3856 Enum3851 = 4 Enum3851_ENUM_VALUE3857 Enum3851 = 5 Enum3851_ENUM_VALUE3858 Enum3851 = 6 Enum3851_ENUM_VALUE3859 Enum3851 = 7 Enum3851_ENUM_VALUE3860 Enum3851 = 8 Enum3851_ENUM_VALUE3861 Enum3851 = 9 Enum3851_ENUM_VALUE3862 Enum3851 = 10 Enum3851_ENUM_VALUE3863 Enum3851 = 11 Enum3851_ENUM_VALUE3864 Enum3851 = 12 Enum3851_ENUM_VALUE3865 Enum3851 = 13 Enum3851_ENUM_VALUE3866 Enum3851 = 14 Enum3851_ENUM_VALUE3867 Enum3851 = 15 Enum3851_ENUM_VALUE3868 Enum3851 = 16 Enum3851_ENUM_VALUE3869 Enum3851 = 17 ) // Enum value maps for Enum3851. var ( Enum3851_name = map[int32]string{ 0: "ENUM_VALUE3852", 1: "ENUM_VALUE3853", 2: "ENUM_VALUE3854", 3: "ENUM_VALUE3855", 4: "ENUM_VALUE3856", 5: "ENUM_VALUE3857", 6: "ENUM_VALUE3858", 7: "ENUM_VALUE3859", 8: "ENUM_VALUE3860", 9: "ENUM_VALUE3861", 10: "ENUM_VALUE3862", 11: "ENUM_VALUE3863", 12: "ENUM_VALUE3864", 13: "ENUM_VALUE3865", 14: "ENUM_VALUE3866", 15: "ENUM_VALUE3867", 16: "ENUM_VALUE3868", 17: "ENUM_VALUE3869", } Enum3851_value = map[string]int32{ "ENUM_VALUE3852": 0, "ENUM_VALUE3853": 1, "ENUM_VALUE3854": 2, "ENUM_VALUE3855": 3, "ENUM_VALUE3856": 4, "ENUM_VALUE3857": 5, "ENUM_VALUE3858": 6, "ENUM_VALUE3859": 7, "ENUM_VALUE3860": 8, "ENUM_VALUE3861": 9, "ENUM_VALUE3862": 10, "ENUM_VALUE3863": 11, "ENUM_VALUE3864": 12, "ENUM_VALUE3865": 13, "ENUM_VALUE3866": 14, "ENUM_VALUE3867": 15, "ENUM_VALUE3868": 16, "ENUM_VALUE3869": 17, } ) func (x Enum3851) Enum() *Enum3851 { p := new(Enum3851) *p = x return p } func (x Enum3851) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum3851) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[4].Descriptor() } func (Enum3851) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[4] } func (x Enum3851) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum3851) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum3851(num) return nil } // Deprecated: Use Enum3851.Descriptor instead. func (Enum3851) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{4} } type UnusedEnum int32 const ( UnusedEnum_UNUSED_ENUM_VALUE1 UnusedEnum = 0 UnusedEnum_UNUSED_ENUM_VALUE2 UnusedEnum = 1 ) // Enum value maps for UnusedEnum. var ( UnusedEnum_name = map[int32]string{ 0: "UNUSED_ENUM_VALUE1", 1: "UNUSED_ENUM_VALUE2", } UnusedEnum_value = map[string]int32{ "UNUSED_ENUM_VALUE1": 0, "UNUSED_ENUM_VALUE2": 1, } ) func (x UnusedEnum) Enum() *UnusedEnum { p := new(UnusedEnum) *p = x return p } func (x UnusedEnum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (UnusedEnum) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[5].Descriptor() } func (UnusedEnum) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[5] } func (x UnusedEnum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *UnusedEnum) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = UnusedEnum(num) return nil } // Deprecated: Use UnusedEnum.Descriptor instead. func (UnusedEnum) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{5} } type Enum4146 int32 const ( Enum4146_ENUM_VALUE4147 Enum4146 = 0 Enum4146_ENUM_VALUE4148 Enum4146 = 1 Enum4146_ENUM_VALUE4149 Enum4146 = 2 Enum4146_ENUM_VALUE4150 Enum4146 = 3 Enum4146_ENUM_VALUE4151 Enum4146 = 4 ) // Enum value maps for Enum4146. var ( Enum4146_name = map[int32]string{ 0: "ENUM_VALUE4147", 1: "ENUM_VALUE4148", 2: "ENUM_VALUE4149", 3: "ENUM_VALUE4150", 4: "ENUM_VALUE4151", } Enum4146_value = map[string]int32{ "ENUM_VALUE4147": 0, "ENUM_VALUE4148": 1, "ENUM_VALUE4149": 2, "ENUM_VALUE4150": 3, "ENUM_VALUE4151": 4, } ) func (x Enum4146) Enum() *Enum4146 { p := new(Enum4146) *p = x return p } func (x Enum4146) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum4146) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[6].Descriptor() } func (Enum4146) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[6] } func (x Enum4146) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum4146) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum4146(num) return nil } // Deprecated: Use Enum4146.Descriptor instead. func (Enum4146) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{6} } type Enum4160 int32 const ( Enum4160_ENUM_VALUE4161 Enum4160 = 0 Enum4160_ENUM_VALUE4162 Enum4160 = 1 ) // Enum value maps for Enum4160. var ( Enum4160_name = map[int32]string{ 0: "ENUM_VALUE4161", 1: "ENUM_VALUE4162", } Enum4160_value = map[string]int32{ "ENUM_VALUE4161": 0, "ENUM_VALUE4162": 1, } ) func (x Enum4160) Enum() *Enum4160 { p := new(Enum4160) *p = x return p } func (x Enum4160) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum4160) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[7].Descriptor() } func (Enum4160) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[7] } func (x Enum4160) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum4160) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum4160(num) return nil } // Deprecated: Use Enum4160.Descriptor instead. func (Enum4160) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{7} } type Enum4152 int32 const ( Enum4152_ENUM_VALUE4153 Enum4152 = 0 Enum4152_ENUM_VALUE4154 Enum4152 = 1 Enum4152_ENUM_VALUE4155 Enum4152 = 2 Enum4152_ENUM_VALUE4156 Enum4152 = 3 Enum4152_ENUM_VALUE4157 Enum4152 = 4 Enum4152_ENUM_VALUE4158 Enum4152 = 5 Enum4152_ENUM_VALUE4159 Enum4152 = 6 ) // Enum value maps for Enum4152. var ( Enum4152_name = map[int32]string{ 0: "ENUM_VALUE4153", 1: "ENUM_VALUE4154", 2: "ENUM_VALUE4155", 3: "ENUM_VALUE4156", 4: "ENUM_VALUE4157", 5: "ENUM_VALUE4158", 6: "ENUM_VALUE4159", } Enum4152_value = map[string]int32{ "ENUM_VALUE4153": 0, "ENUM_VALUE4154": 1, "ENUM_VALUE4155": 2, "ENUM_VALUE4156": 3, "ENUM_VALUE4157": 4, "ENUM_VALUE4158": 5, "ENUM_VALUE4159": 6, } ) func (x Enum4152) Enum() *Enum4152 { p := new(Enum4152) *p = x return p } func (x Enum4152) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum4152) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[8].Descriptor() } func (Enum4152) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[8] } func (x Enum4152) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum4152) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum4152(num) return nil } // Deprecated: Use Enum4152.Descriptor instead. func (Enum4152) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{8} } type Enum6025 int32 const ( Enum6025_ENUM_VALUE6026 Enum6025 = 0 Enum6025_ENUM_VALUE6027 Enum6025 = 1 Enum6025_ENUM_VALUE6028 Enum6025 = 2 Enum6025_ENUM_VALUE6029 Enum6025 = 3 Enum6025_ENUM_VALUE6030 Enum6025 = 4 Enum6025_ENUM_VALUE6031 Enum6025 = 5 Enum6025_ENUM_VALUE6032 Enum6025 = 6 Enum6025_ENUM_VALUE6033 Enum6025 = 7 Enum6025_ENUM_VALUE6034 Enum6025 = 8 Enum6025_ENUM_VALUE6035 Enum6025 = 9 Enum6025_ENUM_VALUE6036 Enum6025 = 10 Enum6025_ENUM_VALUE6037 Enum6025 = 11 Enum6025_ENUM_VALUE6038 Enum6025 = 12 Enum6025_ENUM_VALUE6039 Enum6025 = 13 Enum6025_ENUM_VALUE6040 Enum6025 = 14 Enum6025_ENUM_VALUE6041 Enum6025 = 15 Enum6025_ENUM_VALUE6042 Enum6025 = 16 Enum6025_ENUM_VALUE6043 Enum6025 = 17 Enum6025_ENUM_VALUE6044 Enum6025 = 18 Enum6025_ENUM_VALUE6045 Enum6025 = 19 Enum6025_ENUM_VALUE6046 Enum6025 = 20 Enum6025_ENUM_VALUE6047 Enum6025 = 21 ) // Enum value maps for Enum6025. var ( Enum6025_name = map[int32]string{ 0: "ENUM_VALUE6026", 1: "ENUM_VALUE6027", 2: "ENUM_VALUE6028", 3: "ENUM_VALUE6029", 4: "ENUM_VALUE6030", 5: "ENUM_VALUE6031", 6: "ENUM_VALUE6032", 7: "ENUM_VALUE6033", 8: "ENUM_VALUE6034", 9: "ENUM_VALUE6035", 10: "ENUM_VALUE6036", 11: "ENUM_VALUE6037", 12: "ENUM_VALUE6038", 13: "ENUM_VALUE6039", 14: "ENUM_VALUE6040", 15: "ENUM_VALUE6041", 16: "ENUM_VALUE6042", 17: "ENUM_VALUE6043", 18: "ENUM_VALUE6044", 19: "ENUM_VALUE6045", 20: "ENUM_VALUE6046", 21: "ENUM_VALUE6047", } Enum6025_value = map[string]int32{ "ENUM_VALUE6026": 0, "ENUM_VALUE6027": 1, "ENUM_VALUE6028": 2, "ENUM_VALUE6029": 3, "ENUM_VALUE6030": 4, "ENUM_VALUE6031": 5, "ENUM_VALUE6032": 6, "ENUM_VALUE6033": 7, "ENUM_VALUE6034": 8, "ENUM_VALUE6035": 9, "ENUM_VALUE6036": 10, "ENUM_VALUE6037": 11, "ENUM_VALUE6038": 12, "ENUM_VALUE6039": 13, "ENUM_VALUE6040": 14, "ENUM_VALUE6041": 15, "ENUM_VALUE6042": 16, "ENUM_VALUE6043": 17, "ENUM_VALUE6044": 18, "ENUM_VALUE6045": 19, "ENUM_VALUE6046": 20, "ENUM_VALUE6047": 21, } ) func (x Enum6025) Enum() *Enum6025 { p := new(Enum6025) *p = x return p } func (x Enum6025) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum6025) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[9].Descriptor() } func (Enum6025) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[9] } func (x Enum6025) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum6025) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum6025(num) return nil } // Deprecated: Use Enum6025.Descriptor instead. func (Enum6025) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{9} } type Enum6065 int32 const ( Enum6065_ENUM_VALUE6066 Enum6065 = 0 Enum6065_ENUM_VALUE6067 Enum6065 = 1 Enum6065_ENUM_VALUE6068 Enum6065 = 2 Enum6065_ENUM_VALUE6069 Enum6065 = 3 Enum6065_ENUM_VALUE6070 Enum6065 = 4 Enum6065_ENUM_VALUE6071 Enum6065 = 5 Enum6065_ENUM_VALUE6072 Enum6065 = 6 Enum6065_ENUM_VALUE6073 Enum6065 = 7 Enum6065_ENUM_VALUE6074 Enum6065 = 8 Enum6065_ENUM_VALUE6075 Enum6065 = 9 Enum6065_ENUM_VALUE6076 Enum6065 = 10 Enum6065_ENUM_VALUE6077 Enum6065 = 11 Enum6065_ENUM_VALUE6078 Enum6065 = 12 Enum6065_ENUM_VALUE6079 Enum6065 = 13 Enum6065_ENUM_VALUE6080 Enum6065 = 14 ) // Enum value maps for Enum6065. var ( Enum6065_name = map[int32]string{ 0: "ENUM_VALUE6066", 1: "ENUM_VALUE6067", 2: "ENUM_VALUE6068", 3: "ENUM_VALUE6069", 4: "ENUM_VALUE6070", 5: "ENUM_VALUE6071", 6: "ENUM_VALUE6072", 7: "ENUM_VALUE6073", 8: "ENUM_VALUE6074", 9: "ENUM_VALUE6075", 10: "ENUM_VALUE6076", 11: "ENUM_VALUE6077", 12: "ENUM_VALUE6078", 13: "ENUM_VALUE6079", 14: "ENUM_VALUE6080", } Enum6065_value = map[string]int32{ "ENUM_VALUE6066": 0, "ENUM_VALUE6067": 1, "ENUM_VALUE6068": 2, "ENUM_VALUE6069": 3, "ENUM_VALUE6070": 4, "ENUM_VALUE6071": 5, "ENUM_VALUE6072": 6, "ENUM_VALUE6073": 7, "ENUM_VALUE6074": 8, "ENUM_VALUE6075": 9, "ENUM_VALUE6076": 10, "ENUM_VALUE6077": 11, "ENUM_VALUE6078": 12, "ENUM_VALUE6079": 13, "ENUM_VALUE6080": 14, } ) func (x Enum6065) Enum() *Enum6065 { p := new(Enum6065) *p = x return p } func (x Enum6065) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum6065) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[10].Descriptor() } func (Enum6065) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[10] } func (x Enum6065) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum6065) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum6065(num) return nil } // Deprecated: Use Enum6065.Descriptor instead. func (Enum6065) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{10} } type Enum6579 int32 const ( Enum6579_ENUM_VALUE6580 Enum6579 = 0 Enum6579_ENUM_VALUE6581 Enum6579 = 2 Enum6579_ENUM_VALUE6582 Enum6579 = 3 Enum6579_ENUM_VALUE6583 Enum6579 = 5 Enum6579_ENUM_VALUE6584 Enum6579 = 10 Enum6579_ENUM_VALUE6585 Enum6579 = 15 Enum6579_ENUM_VALUE6586 Enum6579 = 25 Enum6579_ENUM_VALUE6587 Enum6579 = 30 ) // Enum value maps for Enum6579. var ( Enum6579_name = map[int32]string{ 0: "ENUM_VALUE6580", 2: "ENUM_VALUE6581", 3: "ENUM_VALUE6582", 5: "ENUM_VALUE6583", 10: "ENUM_VALUE6584", 15: "ENUM_VALUE6585", 25: "ENUM_VALUE6586", 30: "ENUM_VALUE6587", } Enum6579_value = map[string]int32{ "ENUM_VALUE6580": 0, "ENUM_VALUE6581": 2, "ENUM_VALUE6582": 3, "ENUM_VALUE6583": 5, "ENUM_VALUE6584": 10, "ENUM_VALUE6585": 15, "ENUM_VALUE6586": 25, "ENUM_VALUE6587": 30, } ) func (x Enum6579) Enum() *Enum6579 { p := new(Enum6579) *p = x return p } func (x Enum6579) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum6579) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[11].Descriptor() } func (Enum6579) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[11] } func (x Enum6579) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum6579) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum6579(num) return nil } // Deprecated: Use Enum6579.Descriptor instead. func (Enum6579) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{11} } type Enum6588 int32 const ( Enum6588_ENUM_VALUE6589 Enum6588 = 0 Enum6588_ENUM_VALUE6590 Enum6588 = 1 Enum6588_ENUM_VALUE6591 Enum6588 = 2 Enum6588_ENUM_VALUE6592 Enum6588 = 3 Enum6588_ENUM_VALUE6593 Enum6588 = 4 Enum6588_ENUM_VALUE6594 Enum6588 = 5 Enum6588_ENUM_VALUE6595 Enum6588 = 6 Enum6588_ENUM_VALUE6596 Enum6588 = 7 Enum6588_ENUM_VALUE6597 Enum6588 = 8 Enum6588_ENUM_VALUE6598 Enum6588 = 9 Enum6588_ENUM_VALUE6599 Enum6588 = 10 Enum6588_ENUM_VALUE6600 Enum6588 = 11 Enum6588_ENUM_VALUE6601 Enum6588 = 12 Enum6588_ENUM_VALUE6602 Enum6588 = 13 Enum6588_ENUM_VALUE6603 Enum6588 = 14 Enum6588_ENUM_VALUE6604 Enum6588 = 15 Enum6588_ENUM_VALUE6605 Enum6588 = 16 Enum6588_ENUM_VALUE6606 Enum6588 = 17 Enum6588_ENUM_VALUE6607 Enum6588 = 19 Enum6588_ENUM_VALUE6608 Enum6588 = 20 Enum6588_ENUM_VALUE6609 Enum6588 = 21 Enum6588_ENUM_VALUE6610 Enum6588 = 22 Enum6588_ENUM_VALUE6611 Enum6588 = 23 Enum6588_ENUM_VALUE6612 Enum6588 = 24 Enum6588_ENUM_VALUE6613 Enum6588 = 25 Enum6588_ENUM_VALUE6614 Enum6588 = 26 Enum6588_ENUM_VALUE6615 Enum6588 = 27 Enum6588_ENUM_VALUE6616 Enum6588 = 28 Enum6588_ENUM_VALUE6617 Enum6588 = 29 Enum6588_ENUM_VALUE6618 Enum6588 = 30 Enum6588_ENUM_VALUE6619 Enum6588 = 31 Enum6588_ENUM_VALUE6620 Enum6588 = 32 Enum6588_ENUM_VALUE6621 Enum6588 = 33 Enum6588_ENUM_VALUE6622 Enum6588 = 34 ) // Enum value maps for Enum6588. var ( Enum6588_name = map[int32]string{ 0: "ENUM_VALUE6589", 1: "ENUM_VALUE6590", 2: "ENUM_VALUE6591", 3: "ENUM_VALUE6592", 4: "ENUM_VALUE6593", 5: "ENUM_VALUE6594", 6: "ENUM_VALUE6595", 7: "ENUM_VALUE6596", 8: "ENUM_VALUE6597", 9: "ENUM_VALUE6598", 10: "ENUM_VALUE6599", 11: "ENUM_VALUE6600", 12: "ENUM_VALUE6601", 13: "ENUM_VALUE6602", 14: "ENUM_VALUE6603", 15: "ENUM_VALUE6604", 16: "ENUM_VALUE6605", 17: "ENUM_VALUE6606", 19: "ENUM_VALUE6607", 20: "ENUM_VALUE6608", 21: "ENUM_VALUE6609", 22: "ENUM_VALUE6610", 23: "ENUM_VALUE6611", 24: "ENUM_VALUE6612", 25: "ENUM_VALUE6613", 26: "ENUM_VALUE6614", 27: "ENUM_VALUE6615", 28: "ENUM_VALUE6616", 29: "ENUM_VALUE6617", 30: "ENUM_VALUE6618", 31: "ENUM_VALUE6619", 32: "ENUM_VALUE6620", 33: "ENUM_VALUE6621", 34: "ENUM_VALUE6622", } Enum6588_value = map[string]int32{ "ENUM_VALUE6589": 0, "ENUM_VALUE6590": 1, "ENUM_VALUE6591": 2, "ENUM_VALUE6592": 3, "ENUM_VALUE6593": 4, "ENUM_VALUE6594": 5, "ENUM_VALUE6595": 6, "ENUM_VALUE6596": 7, "ENUM_VALUE6597": 8, "ENUM_VALUE6598": 9, "ENUM_VALUE6599": 10, "ENUM_VALUE6600": 11, "ENUM_VALUE6601": 12, "ENUM_VALUE6602": 13, "ENUM_VALUE6603": 14, "ENUM_VALUE6604": 15, "ENUM_VALUE6605": 16, "ENUM_VALUE6606": 17, "ENUM_VALUE6607": 19, "ENUM_VALUE6608": 20, "ENUM_VALUE6609": 21, "ENUM_VALUE6610": 22, "ENUM_VALUE6611": 23, "ENUM_VALUE6612": 24, "ENUM_VALUE6613": 25, "ENUM_VALUE6614": 26, "ENUM_VALUE6615": 27, "ENUM_VALUE6616": 28, "ENUM_VALUE6617": 29, "ENUM_VALUE6618": 30, "ENUM_VALUE6619": 31, "ENUM_VALUE6620": 32, "ENUM_VALUE6621": 33, "ENUM_VALUE6622": 34, } ) func (x Enum6588) Enum() *Enum6588 { p := new(Enum6588) *p = x return p } func (x Enum6588) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum6588) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[12].Descriptor() } func (Enum6588) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[12] } func (x Enum6588) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum6588) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum6588(num) return nil } // Deprecated: Use Enum6588.Descriptor instead. func (Enum6588) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{12} } type Enum6769 int32 const ( Enum6769_ENUM_VALUE6770 Enum6769 = 0 Enum6769_ENUM_VALUE6771 Enum6769 = 1 Enum6769_ENUM_VALUE6772 Enum6769 = 2 ) // Enum value maps for Enum6769. var ( Enum6769_name = map[int32]string{ 0: "ENUM_VALUE6770", 1: "ENUM_VALUE6771", 2: "ENUM_VALUE6772", } Enum6769_value = map[string]int32{ "ENUM_VALUE6770": 0, "ENUM_VALUE6771": 1, "ENUM_VALUE6772": 2, } ) func (x Enum6769) Enum() *Enum6769 { p := new(Enum6769) *p = x return p } func (x Enum6769) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum6769) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[13].Descriptor() } func (Enum6769) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[13] } func (x Enum6769) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum6769) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum6769(num) return nil } // Deprecated: Use Enum6769.Descriptor instead. func (Enum6769) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{13} } type Enum6774 int32 const ( Enum6774_ENUM_VALUE6775 Enum6774 = 0 Enum6774_ENUM_VALUE6776 Enum6774 = 1 Enum6774_ENUM_VALUE6777 Enum6774 = 2 Enum6774_ENUM_VALUE6778 Enum6774 = 3 Enum6774_ENUM_VALUE6779 Enum6774 = 4 Enum6774_ENUM_VALUE6780 Enum6774 = 5 Enum6774_ENUM_VALUE6781 Enum6774 = 6 ) // Enum value maps for Enum6774. var ( Enum6774_name = map[int32]string{ 0: "ENUM_VALUE6775", 1: "ENUM_VALUE6776", 2: "ENUM_VALUE6777", 3: "ENUM_VALUE6778", 4: "ENUM_VALUE6779", 5: "ENUM_VALUE6780", 6: "ENUM_VALUE6781", } Enum6774_value = map[string]int32{ "ENUM_VALUE6775": 0, "ENUM_VALUE6776": 1, "ENUM_VALUE6777": 2, "ENUM_VALUE6778": 3, "ENUM_VALUE6779": 4, "ENUM_VALUE6780": 5, "ENUM_VALUE6781": 6, } ) func (x Enum6774) Enum() *Enum6774 { p := new(Enum6774) *p = x return p } func (x Enum6774) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum6774) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[14].Descriptor() } func (Enum6774) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[14] } func (x Enum6774) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum6774) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum6774(num) return nil } // Deprecated: Use Enum6774.Descriptor instead. func (Enum6774) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{14} } type Enum6782 int32 const ( Enum6782_ENUM_VALUE6783 Enum6782 = 0 Enum6782_ENUM_VALUE6784 Enum6782 = 1 Enum6782_ENUM_VALUE6785 Enum6782 = 2 Enum6782_ENUM_VALUE6786 Enum6782 = 3 Enum6782_ENUM_VALUE6787 Enum6782 = 4 Enum6782_ENUM_VALUE6788 Enum6782 = 5 ) // Enum value maps for Enum6782. var ( Enum6782_name = map[int32]string{ 0: "ENUM_VALUE6783", 1: "ENUM_VALUE6784", 2: "ENUM_VALUE6785", 3: "ENUM_VALUE6786", 4: "ENUM_VALUE6787", 5: "ENUM_VALUE6788", } Enum6782_value = map[string]int32{ "ENUM_VALUE6783": 0, "ENUM_VALUE6784": 1, "ENUM_VALUE6785": 2, "ENUM_VALUE6786": 3, "ENUM_VALUE6787": 4, "ENUM_VALUE6788": 5, } ) func (x Enum6782) Enum() *Enum6782 { p := new(Enum6782) *p = x return p } func (x Enum6782) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum6782) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[15].Descriptor() } func (Enum6782) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[15] } func (x Enum6782) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum6782) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum6782(num) return nil } // Deprecated: Use Enum6782.Descriptor instead. func (Enum6782) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{15} } type Enum6858 int32 const ( Enum6858_ENUM_VALUE6859 Enum6858 = 1 Enum6858_ENUM_VALUE6860 Enum6858 = 2 Enum6858_ENUM_VALUE6861 Enum6858 = 3 Enum6858_ENUM_VALUE6862 Enum6858 = 4 ) // Enum value maps for Enum6858. var ( Enum6858_name = map[int32]string{ 1: "ENUM_VALUE6859", 2: "ENUM_VALUE6860", 3: "ENUM_VALUE6861", 4: "ENUM_VALUE6862", } Enum6858_value = map[string]int32{ "ENUM_VALUE6859": 1, "ENUM_VALUE6860": 2, "ENUM_VALUE6861": 3, "ENUM_VALUE6862": 4, } ) func (x Enum6858) Enum() *Enum6858 { p := new(Enum6858) *p = x return p } func (x Enum6858) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum6858) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[16].Descriptor() } func (Enum6858) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[16] } func (x Enum6858) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum6858) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum6858(num) return nil } // Deprecated: Use Enum6858.Descriptor instead. func (Enum6858) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{16} } type Enum6815 int32 const ( Enum6815_ENUM_VALUE6816 Enum6815 = 0 Enum6815_ENUM_VALUE6817 Enum6815 = 1 Enum6815_ENUM_VALUE6818 Enum6815 = 2 Enum6815_ENUM_VALUE6819 Enum6815 = 3 Enum6815_ENUM_VALUE6820 Enum6815 = 4 Enum6815_ENUM_VALUE6821 Enum6815 = 5 ) // Enum value maps for Enum6815. var ( Enum6815_name = map[int32]string{ 0: "ENUM_VALUE6816", 1: "ENUM_VALUE6817", 2: "ENUM_VALUE6818", 3: "ENUM_VALUE6819", 4: "ENUM_VALUE6820", 5: "ENUM_VALUE6821", } Enum6815_value = map[string]int32{ "ENUM_VALUE6816": 0, "ENUM_VALUE6817": 1, "ENUM_VALUE6818": 2, "ENUM_VALUE6819": 3, "ENUM_VALUE6820": 4, "ENUM_VALUE6821": 5, } ) func (x Enum6815) Enum() *Enum6815 { p := new(Enum6815) *p = x return p } func (x Enum6815) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum6815) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[17].Descriptor() } func (Enum6815) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[17] } func (x Enum6815) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum6815) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum6815(num) return nil } // Deprecated: Use Enum6815.Descriptor instead. func (Enum6815) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{17} } type Enum6822 int32 const ( Enum6822_ENUM_VALUE6823 Enum6822 = 0 Enum6822_ENUM_VALUE6824 Enum6822 = 1 Enum6822_ENUM_VALUE6825 Enum6822 = 2 Enum6822_ENUM_VALUE6826 Enum6822 = 3 ) // Enum value maps for Enum6822. var ( Enum6822_name = map[int32]string{ 0: "ENUM_VALUE6823", 1: "ENUM_VALUE6824", 2: "ENUM_VALUE6825", 3: "ENUM_VALUE6826", } Enum6822_value = map[string]int32{ "ENUM_VALUE6823": 0, "ENUM_VALUE6824": 1, "ENUM_VALUE6825": 2, "ENUM_VALUE6826": 3, } ) func (x Enum6822) Enum() *Enum6822 { p := new(Enum6822) *p = x return p } func (x Enum6822) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum6822) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[18].Descriptor() } func (Enum6822) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[18] } func (x Enum6822) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum6822) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum6822(num) return nil } // Deprecated: Use Enum6822.Descriptor instead. func (Enum6822) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{18} } type Enum7654 int32 const ( Enum7654_ENUM_VALUE7655 Enum7654 = 1 Enum7654_ENUM_VALUE7656 Enum7654 = 2 Enum7654_ENUM_VALUE7657 Enum7654 = 3 ) // Enum value maps for Enum7654. var ( Enum7654_name = map[int32]string{ 1: "ENUM_VALUE7655", 2: "ENUM_VALUE7656", 3: "ENUM_VALUE7657", } Enum7654_value = map[string]int32{ "ENUM_VALUE7655": 1, "ENUM_VALUE7656": 2, "ENUM_VALUE7657": 3, } ) func (x Enum7654) Enum() *Enum7654 { p := new(Enum7654) *p = x return p } func (x Enum7654) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum7654) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[19].Descriptor() } func (Enum7654) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[19] } func (x Enum7654) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum7654) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum7654(num) return nil } // Deprecated: Use Enum7654.Descriptor instead. func (Enum7654) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{19} } type Enum8292 int32 const ( Enum8292_ENUM_VALUE8293 Enum8292 = 0 Enum8292_ENUM_VALUE8294 Enum8292 = 1 Enum8292_ENUM_VALUE8295 Enum8292 = 2 ) // Enum value maps for Enum8292. var ( Enum8292_name = map[int32]string{ 0: "ENUM_VALUE8293", 1: "ENUM_VALUE8294", 2: "ENUM_VALUE8295", } Enum8292_value = map[string]int32{ "ENUM_VALUE8293": 0, "ENUM_VALUE8294": 1, "ENUM_VALUE8295": 2, } ) func (x Enum8292) Enum() *Enum8292 { p := new(Enum8292) *p = x return p } func (x Enum8292) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum8292) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[20].Descriptor() } func (Enum8292) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[20] } func (x Enum8292) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum8292) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum8292(num) return nil } // Deprecated: Use Enum8292.Descriptor instead. func (Enum8292) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{20} } type Enum8450 int32 const ( Enum8450_ENUM_VALUE8451 Enum8450 = 0 Enum8450_ENUM_VALUE8452 Enum8450 = 1 Enum8450_ENUM_VALUE8453 Enum8450 = 2 ) // Enum value maps for Enum8450. var ( Enum8450_name = map[int32]string{ 0: "ENUM_VALUE8451", 1: "ENUM_VALUE8452", 2: "ENUM_VALUE8453", } Enum8450_value = map[string]int32{ "ENUM_VALUE8451": 0, "ENUM_VALUE8452": 1, "ENUM_VALUE8453": 2, } ) func (x Enum8450) Enum() *Enum8450 { p := new(Enum8450) *p = x return p } func (x Enum8450) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum8450) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[21].Descriptor() } func (Enum8450) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[21] } func (x Enum8450) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum8450) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum8450(num) return nil } // Deprecated: Use Enum8450.Descriptor instead. func (Enum8450) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{21} } type Enum8900 int32 const ( Enum8900_ENUM_VALUE8901 Enum8900 = 0 Enum8900_ENUM_VALUE8902 Enum8900 = 1 Enum8900_ENUM_VALUE8903 Enum8900 = 2 Enum8900_ENUM_VALUE8904 Enum8900 = 3 Enum8900_ENUM_VALUE8905 Enum8900 = 4 ) // Enum value maps for Enum8900. var ( Enum8900_name = map[int32]string{ 0: "ENUM_VALUE8901", 1: "ENUM_VALUE8902", 2: "ENUM_VALUE8903", 3: "ENUM_VALUE8904", 4: "ENUM_VALUE8905", } Enum8900_value = map[string]int32{ "ENUM_VALUE8901": 0, "ENUM_VALUE8902": 1, "ENUM_VALUE8903": 2, "ENUM_VALUE8904": 3, "ENUM_VALUE8905": 4, } ) func (x Enum8900) Enum() *Enum8900 { p := new(Enum8900) *p = x return p } func (x Enum8900) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum8900) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[22].Descriptor() } func (Enum8900) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[22] } func (x Enum8900) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum8900) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum8900(num) return nil } // Deprecated: Use Enum8900.Descriptor instead. func (Enum8900) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{22} } type Enum8945 int32 const ( Enum8945_ENUM_VALUE8946 Enum8945 = 0 Enum8945_ENUM_VALUE8947 Enum8945 = 1 Enum8945_ENUM_VALUE8948 Enum8945 = 2 Enum8945_ENUM_VALUE8949 Enum8945 = 3 Enum8945_ENUM_VALUE8950 Enum8945 = 4 ) // Enum value maps for Enum8945. var ( Enum8945_name = map[int32]string{ 0: "ENUM_VALUE8946", 1: "ENUM_VALUE8947", 2: "ENUM_VALUE8948", 3: "ENUM_VALUE8949", 4: "ENUM_VALUE8950", } Enum8945_value = map[string]int32{ "ENUM_VALUE8946": 0, "ENUM_VALUE8947": 1, "ENUM_VALUE8948": 2, "ENUM_VALUE8949": 3, "ENUM_VALUE8950": 4, } ) func (x Enum8945) Enum() *Enum8945 { p := new(Enum8945) *p = x return p } func (x Enum8945) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum8945) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[23].Descriptor() } func (Enum8945) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[23] } func (x Enum8945) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum8945) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum8945(num) return nil } // Deprecated: Use Enum8945.Descriptor instead. func (Enum8945) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{23} } type Enum8951 int32 const ( Enum8951_ENUM_VALUE8952 Enum8951 = 1 Enum8951_ENUM_VALUE8953 Enum8951 = 2 Enum8951_ENUM_VALUE8954 Enum8951 = 3 Enum8951_ENUM_VALUE8955 Enum8951 = 4 Enum8951_ENUM_VALUE8956 Enum8951 = 5 Enum8951_ENUM_VALUE8957 Enum8951 = 6 Enum8951_ENUM_VALUE8958 Enum8951 = 7 Enum8951_ENUM_VALUE8959 Enum8951 = 8 ) // Enum value maps for Enum8951. var ( Enum8951_name = map[int32]string{ 1: "ENUM_VALUE8952", 2: "ENUM_VALUE8953", 3: "ENUM_VALUE8954", 4: "ENUM_VALUE8955", 5: "ENUM_VALUE8956", 6: "ENUM_VALUE8957", 7: "ENUM_VALUE8958", 8: "ENUM_VALUE8959", } Enum8951_value = map[string]int32{ "ENUM_VALUE8952": 1, "ENUM_VALUE8953": 2, "ENUM_VALUE8954": 3, "ENUM_VALUE8955": 4, "ENUM_VALUE8956": 5, "ENUM_VALUE8957": 6, "ENUM_VALUE8958": 7, "ENUM_VALUE8959": 8, } ) func (x Enum8951) Enum() *Enum8951 { p := new(Enum8951) *p = x return p } func (x Enum8951) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum8951) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[24].Descriptor() } func (Enum8951) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[24] } func (x Enum8951) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum8951) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum8951(num) return nil } // Deprecated: Use Enum8951.Descriptor instead. func (Enum8951) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{24} } type Enum9243 int32 const ( Enum9243_ENUM_VALUE9244 Enum9243 = -1 Enum9243_ENUM_VALUE9245 Enum9243 = 0 Enum9243_ENUM_VALUE9246 Enum9243 = 1 Enum9243_ENUM_VALUE9247 Enum9243 = 2 Enum9243_ENUM_VALUE9248 Enum9243 = 3 Enum9243_ENUM_VALUE9249 Enum9243 = 4 Enum9243_ENUM_VALUE9250 Enum9243 = 5 Enum9243_ENUM_VALUE9251 Enum9243 = 6 Enum9243_ENUM_VALUE9252 Enum9243 = 7 Enum9243_ENUM_VALUE9253 Enum9243 = 8 Enum9243_ENUM_VALUE9254 Enum9243 = 9 Enum9243_ENUM_VALUE9255 Enum9243 = 10 Enum9243_ENUM_VALUE9256 Enum9243 = 11 Enum9243_ENUM_VALUE9257 Enum9243 = 12 Enum9243_ENUM_VALUE9258 Enum9243 = 13 Enum9243_ENUM_VALUE9259 Enum9243 = 14 Enum9243_ENUM_VALUE9260 Enum9243 = 15 Enum9243_ENUM_VALUE9261 Enum9243 = 16 Enum9243_ENUM_VALUE9262 Enum9243 = 17 Enum9243_ENUM_VALUE9263 Enum9243 = 71 Enum9243_ENUM_VALUE9264 Enum9243 = 72 Enum9243_ENUM_VALUE9265 Enum9243 = 73 Enum9243_ENUM_VALUE9266 Enum9243 = 74 Enum9243_ENUM_VALUE9267 Enum9243 = 18 Enum9243_ENUM_VALUE9268 Enum9243 = 20 Enum9243_ENUM_VALUE9269 Enum9243 = 21 Enum9243_ENUM_VALUE9270 Enum9243 = 22 Enum9243_ENUM_VALUE9271 Enum9243 = 23 Enum9243_ENUM_VALUE9272 Enum9243 = 61 Enum9243_ENUM_VALUE9273 Enum9243 = 62 Enum9243_ENUM_VALUE9274 Enum9243 = 63 Enum9243_ENUM_VALUE9275 Enum9243 = 64 Enum9243_ENUM_VALUE9276 Enum9243 = 66 Enum9243_ENUM_VALUE9277 Enum9243 = 67 Enum9243_ENUM_VALUE9278 Enum9243 = 24 Enum9243_ENUM_VALUE9279 Enum9243 = 25 Enum9243_ENUM_VALUE9280 Enum9243 = 26 Enum9243_ENUM_VALUE9281 Enum9243 = 27 Enum9243_ENUM_VALUE9282 Enum9243 = 28 Enum9243_ENUM_VALUE9283 Enum9243 = 29 Enum9243_ENUM_VALUE9284 Enum9243 = 30 Enum9243_ENUM_VALUE9285 Enum9243 = 31 Enum9243_ENUM_VALUE9286 Enum9243 = 32 Enum9243_ENUM_VALUE9287 Enum9243 = 33 Enum9243_ENUM_VALUE9288 Enum9243 = 34 Enum9243_ENUM_VALUE9289 Enum9243 = 35 Enum9243_ENUM_VALUE9290 Enum9243 = 36 Enum9243_ENUM_VALUE9291 Enum9243 = 37 Enum9243_ENUM_VALUE9292 Enum9243 = 38 Enum9243_ENUM_VALUE9293 Enum9243 = 39 Enum9243_ENUM_VALUE9294 Enum9243 = 40 Enum9243_ENUM_VALUE9295 Enum9243 = 41 Enum9243_ENUM_VALUE9296 Enum9243 = 42 Enum9243_ENUM_VALUE9297 Enum9243 = 43 Enum9243_ENUM_VALUE9298 Enum9243 = 44 Enum9243_ENUM_VALUE9299 Enum9243 = 45 Enum9243_ENUM_VALUE9300 Enum9243 = 46 Enum9243_ENUM_VALUE9301 Enum9243 = 47 Enum9243_ENUM_VALUE9302 Enum9243 = 48 Enum9243_ENUM_VALUE9303 Enum9243 = 49 Enum9243_ENUM_VALUE9304 Enum9243 = 50 Enum9243_ENUM_VALUE9305 Enum9243 = 51 Enum9243_ENUM_VALUE9306 Enum9243 = 52 Enum9243_ENUM_VALUE9307 Enum9243 = 53 Enum9243_ENUM_VALUE9308 Enum9243 = 54 Enum9243_ENUM_VALUE9309 Enum9243 = 55 Enum9243_ENUM_VALUE9310 Enum9243 = 56 Enum9243_ENUM_VALUE9311 Enum9243 = 57 Enum9243_ENUM_VALUE9312 Enum9243 = 58 Enum9243_ENUM_VALUE9313 Enum9243 = 59 Enum9243_ENUM_VALUE9314 Enum9243 = 60 Enum9243_ENUM_VALUE9315 Enum9243 = 68 Enum9243_ENUM_VALUE9316 Enum9243 = 69 Enum9243_ENUM_VALUE9317 Enum9243 = 70 Enum9243_ENUM_VALUE9318 Enum9243 = 1000 Enum9243_ENUM_VALUE9319 Enum9243 = 1001 Enum9243_ENUM_VALUE9320 Enum9243 = 1002 Enum9243_ENUM_VALUE9321 Enum9243 = 1003 Enum9243_ENUM_VALUE9322 Enum9243 = 1004 Enum9243_ENUM_VALUE9323 Enum9243 = 1005 Enum9243_ENUM_VALUE9324 Enum9243 = 1006 Enum9243_ENUM_VALUE9325 Enum9243 = 1007 Enum9243_ENUM_VALUE9326 Enum9243 = 65 ) // Enum value maps for Enum9243. var ( Enum9243_name = map[int32]string{ -1: "ENUM_VALUE9244", 0: "ENUM_VALUE9245", 1: "ENUM_VALUE9246", 2: "ENUM_VALUE9247", 3: "ENUM_VALUE9248", 4: "ENUM_VALUE9249", 5: "ENUM_VALUE9250", 6: "ENUM_VALUE9251", 7: "ENUM_VALUE9252", 8: "ENUM_VALUE9253", 9: "ENUM_VALUE9254", 10: "ENUM_VALUE9255", 11: "ENUM_VALUE9256", 12: "ENUM_VALUE9257", 13: "ENUM_VALUE9258", 14: "ENUM_VALUE9259", 15: "ENUM_VALUE9260", 16: "ENUM_VALUE9261", 17: "ENUM_VALUE9262", 71: "ENUM_VALUE9263", 72: "ENUM_VALUE9264", 73: "ENUM_VALUE9265", 74: "ENUM_VALUE9266", 18: "ENUM_VALUE9267", 20: "ENUM_VALUE9268", 21: "ENUM_VALUE9269", 22: "ENUM_VALUE9270", 23: "ENUM_VALUE9271", 61: "ENUM_VALUE9272", 62: "ENUM_VALUE9273", 63: "ENUM_VALUE9274", 64: "ENUM_VALUE9275", 66: "ENUM_VALUE9276", 67: "ENUM_VALUE9277", 24: "ENUM_VALUE9278", 25: "ENUM_VALUE9279", 26: "ENUM_VALUE9280", 27: "ENUM_VALUE9281", 28: "ENUM_VALUE9282", 29: "ENUM_VALUE9283", 30: "ENUM_VALUE9284", 31: "ENUM_VALUE9285", 32: "ENUM_VALUE9286", 33: "ENUM_VALUE9287", 34: "ENUM_VALUE9288", 35: "ENUM_VALUE9289", 36: "ENUM_VALUE9290", 37: "ENUM_VALUE9291", 38: "ENUM_VALUE9292", 39: "ENUM_VALUE9293", 40: "ENUM_VALUE9294", 41: "ENUM_VALUE9295", 42: "ENUM_VALUE9296", 43: "ENUM_VALUE9297", 44: "ENUM_VALUE9298", 45: "ENUM_VALUE9299", 46: "ENUM_VALUE9300", 47: "ENUM_VALUE9301", 48: "ENUM_VALUE9302", 49: "ENUM_VALUE9303", 50: "ENUM_VALUE9304", 51: "ENUM_VALUE9305", 52: "ENUM_VALUE9306", 53: "ENUM_VALUE9307", 54: "ENUM_VALUE9308", 55: "ENUM_VALUE9309", 56: "ENUM_VALUE9310", 57: "ENUM_VALUE9311", 58: "ENUM_VALUE9312", 59: "ENUM_VALUE9313", 60: "ENUM_VALUE9314", 68: "ENUM_VALUE9315", 69: "ENUM_VALUE9316", 70: "ENUM_VALUE9317", 1000: "ENUM_VALUE9318", 1001: "ENUM_VALUE9319", 1002: "ENUM_VALUE9320", 1003: "ENUM_VALUE9321", 1004: "ENUM_VALUE9322", 1005: "ENUM_VALUE9323", 1006: "ENUM_VALUE9324", 1007: "ENUM_VALUE9325", 65: "ENUM_VALUE9326", } Enum9243_value = map[string]int32{ "ENUM_VALUE9244": -1, "ENUM_VALUE9245": 0, "ENUM_VALUE9246": 1, "ENUM_VALUE9247": 2, "ENUM_VALUE9248": 3, "ENUM_VALUE9249": 4, "ENUM_VALUE9250": 5, "ENUM_VALUE9251": 6, "ENUM_VALUE9252": 7, "ENUM_VALUE9253": 8, "ENUM_VALUE9254": 9, "ENUM_VALUE9255": 10, "ENUM_VALUE9256": 11, "ENUM_VALUE9257": 12, "ENUM_VALUE9258": 13, "ENUM_VALUE9259": 14, "ENUM_VALUE9260": 15, "ENUM_VALUE9261": 16, "ENUM_VALUE9262": 17, "ENUM_VALUE9263": 71, "ENUM_VALUE9264": 72, "ENUM_VALUE9265": 73, "ENUM_VALUE9266": 74, "ENUM_VALUE9267": 18, "ENUM_VALUE9268": 20, "ENUM_VALUE9269": 21, "ENUM_VALUE9270": 22, "ENUM_VALUE9271": 23, "ENUM_VALUE9272": 61, "ENUM_VALUE9273": 62, "ENUM_VALUE9274": 63, "ENUM_VALUE9275": 64, "ENUM_VALUE9276": 66, "ENUM_VALUE9277": 67, "ENUM_VALUE9278": 24, "ENUM_VALUE9279": 25, "ENUM_VALUE9280": 26, "ENUM_VALUE9281": 27, "ENUM_VALUE9282": 28, "ENUM_VALUE9283": 29, "ENUM_VALUE9284": 30, "ENUM_VALUE9285": 31, "ENUM_VALUE9286": 32, "ENUM_VALUE9287": 33, "ENUM_VALUE9288": 34, "ENUM_VALUE9289": 35, "ENUM_VALUE9290": 36, "ENUM_VALUE9291": 37, "ENUM_VALUE9292": 38, "ENUM_VALUE9293": 39, "ENUM_VALUE9294": 40, "ENUM_VALUE9295": 41, "ENUM_VALUE9296": 42, "ENUM_VALUE9297": 43, "ENUM_VALUE9298": 44, "ENUM_VALUE9299": 45, "ENUM_VALUE9300": 46, "ENUM_VALUE9301": 47, "ENUM_VALUE9302": 48, "ENUM_VALUE9303": 49, "ENUM_VALUE9304": 50, "ENUM_VALUE9305": 51, "ENUM_VALUE9306": 52, "ENUM_VALUE9307": 53, "ENUM_VALUE9308": 54, "ENUM_VALUE9309": 55, "ENUM_VALUE9310": 56, "ENUM_VALUE9311": 57, "ENUM_VALUE9312": 58, "ENUM_VALUE9313": 59, "ENUM_VALUE9314": 60, "ENUM_VALUE9315": 68, "ENUM_VALUE9316": 69, "ENUM_VALUE9317": 70, "ENUM_VALUE9318": 1000, "ENUM_VALUE9319": 1001, "ENUM_VALUE9320": 1002, "ENUM_VALUE9321": 1003, "ENUM_VALUE9322": 1004, "ENUM_VALUE9323": 1005, "ENUM_VALUE9324": 1006, "ENUM_VALUE9325": 1007, "ENUM_VALUE9326": 65, } ) func (x Enum9243) Enum() *Enum9243 { p := new(Enum9243) *p = x return p } func (x Enum9243) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum9243) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[25].Descriptor() } func (Enum9243) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[25] } func (x Enum9243) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum9243) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum9243(num) return nil } // Deprecated: Use Enum9243.Descriptor instead. func (Enum9243) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{25} } type Enum10157 int32 const ( Enum10157_ENUM_VALUE10158 Enum10157 = 0 Enum10157_ENUM_VALUE10159 Enum10157 = 1 Enum10157_ENUM_VALUE10160 Enum10157 = 2 Enum10157_ENUM_VALUE10161 Enum10157 = 3 Enum10157_ENUM_VALUE10162 Enum10157 = 4 Enum10157_ENUM_VALUE10163 Enum10157 = 5 Enum10157_ENUM_VALUE10164 Enum10157 = 6 Enum10157_ENUM_VALUE10165 Enum10157 = 7 Enum10157_ENUM_VALUE10166 Enum10157 = 8 ) // Enum value maps for Enum10157. var ( Enum10157_name = map[int32]string{ 0: "ENUM_VALUE10158", 1: "ENUM_VALUE10159", 2: "ENUM_VALUE10160", 3: "ENUM_VALUE10161", 4: "ENUM_VALUE10162", 5: "ENUM_VALUE10163", 6: "ENUM_VALUE10164", 7: "ENUM_VALUE10165", 8: "ENUM_VALUE10166", } Enum10157_value = map[string]int32{ "ENUM_VALUE10158": 0, "ENUM_VALUE10159": 1, "ENUM_VALUE10160": 2, "ENUM_VALUE10161": 3, "ENUM_VALUE10162": 4, "ENUM_VALUE10163": 5, "ENUM_VALUE10164": 6, "ENUM_VALUE10165": 7, "ENUM_VALUE10166": 8, } ) func (x Enum10157) Enum() *Enum10157 { p := new(Enum10157) *p = x return p } func (x Enum10157) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum10157) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[26].Descriptor() } func (Enum10157) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[26] } func (x Enum10157) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum10157) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum10157(num) return nil } // Deprecated: Use Enum10157.Descriptor instead. func (Enum10157) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{26} } type Enum10167 int32 const ( Enum10167_ENUM_VALUE10168 Enum10167 = 0 Enum10167_ENUM_VALUE10169 Enum10167 = 1 Enum10167_ENUM_VALUE10170 Enum10167 = 2 Enum10167_ENUM_VALUE10171 Enum10167 = 3 Enum10167_ENUM_VALUE10172 Enum10167 = 4 Enum10167_ENUM_VALUE10173 Enum10167 = 5 Enum10167_ENUM_VALUE10174 Enum10167 = 6 Enum10167_ENUM_VALUE10175 Enum10167 = 7 Enum10167_ENUM_VALUE10176 Enum10167 = 8 ) // Enum value maps for Enum10167. var ( Enum10167_name = map[int32]string{ 0: "ENUM_VALUE10168", 1: "ENUM_VALUE10169", 2: "ENUM_VALUE10170", 3: "ENUM_VALUE10171", 4: "ENUM_VALUE10172", 5: "ENUM_VALUE10173", 6: "ENUM_VALUE10174", 7: "ENUM_VALUE10175", 8: "ENUM_VALUE10176", } Enum10167_value = map[string]int32{ "ENUM_VALUE10168": 0, "ENUM_VALUE10169": 1, "ENUM_VALUE10170": 2, "ENUM_VALUE10171": 3, "ENUM_VALUE10172": 4, "ENUM_VALUE10173": 5, "ENUM_VALUE10174": 6, "ENUM_VALUE10175": 7, "ENUM_VALUE10176": 8, } ) func (x Enum10167) Enum() *Enum10167 { p := new(Enum10167) *p = x return p } func (x Enum10167) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum10167) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[27].Descriptor() } func (Enum10167) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[27] } func (x Enum10167) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum10167) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum10167(num) return nil } // Deprecated: Use Enum10167.Descriptor instead. func (Enum10167) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{27} } type Enum8862 int32 const ( Enum8862_ENUM_VALUE8863 Enum8862 = 0 Enum8862_ENUM_VALUE8864 Enum8862 = 1 Enum8862_ENUM_VALUE8865 Enum8862 = 2 Enum8862_ENUM_VALUE8866 Enum8862 = 3 Enum8862_ENUM_VALUE8867 Enum8862 = 4 Enum8862_ENUM_VALUE8868 Enum8862 = 5 Enum8862_ENUM_VALUE8869 Enum8862 = 6 Enum8862_ENUM_VALUE8870 Enum8862 = 7 Enum8862_ENUM_VALUE8871 Enum8862 = 13 Enum8862_ENUM_VALUE8872 Enum8862 = 14 Enum8862_ENUM_VALUE8873 Enum8862 = 8 Enum8862_ENUM_VALUE8874 Enum8862 = 9 Enum8862_ENUM_VALUE8875 Enum8862 = 10 Enum8862_ENUM_VALUE8876 Enum8862 = 11 Enum8862_ENUM_VALUE8877 Enum8862 = 12 Enum8862_ENUM_VALUE8878 Enum8862 = 15 ) // Enum value maps for Enum8862. var ( Enum8862_name = map[int32]string{ 0: "ENUM_VALUE8863", 1: "ENUM_VALUE8864", 2: "ENUM_VALUE8865", 3: "ENUM_VALUE8866", 4: "ENUM_VALUE8867", 5: "ENUM_VALUE8868", 6: "ENUM_VALUE8869", 7: "ENUM_VALUE8870", 13: "ENUM_VALUE8871", 14: "ENUM_VALUE8872", 8: "ENUM_VALUE8873", 9: "ENUM_VALUE8874", 10: "ENUM_VALUE8875", 11: "ENUM_VALUE8876", 12: "ENUM_VALUE8877", 15: "ENUM_VALUE8878", } Enum8862_value = map[string]int32{ "ENUM_VALUE8863": 0, "ENUM_VALUE8864": 1, "ENUM_VALUE8865": 2, "ENUM_VALUE8866": 3, "ENUM_VALUE8867": 4, "ENUM_VALUE8868": 5, "ENUM_VALUE8869": 6, "ENUM_VALUE8870": 7, "ENUM_VALUE8871": 13, "ENUM_VALUE8872": 14, "ENUM_VALUE8873": 8, "ENUM_VALUE8874": 9, "ENUM_VALUE8875": 10, "ENUM_VALUE8876": 11, "ENUM_VALUE8877": 12, "ENUM_VALUE8878": 15, } ) func (x Enum8862) Enum() *Enum8862 { p := new(Enum8862) *p = x return p } func (x Enum8862) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum8862) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[28].Descriptor() } func (Enum8862) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[28] } func (x Enum8862) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum8862) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum8862(num) return nil } // Deprecated: Use Enum8862.Descriptor instead. func (Enum8862) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{28} } type Enum10325 int32 const ( Enum10325_ENUM_VALUE10326 Enum10325 = 0 Enum10325_ENUM_VALUE10327 Enum10325 = 1 Enum10325_ENUM_VALUE10328 Enum10325 = 2 Enum10325_ENUM_VALUE10329 Enum10325 = 3 Enum10325_ENUM_VALUE10330 Enum10325 = 4 Enum10325_ENUM_VALUE10331 Enum10325 = 5 Enum10325_ENUM_VALUE10332 Enum10325 = 6 Enum10325_ENUM_VALUE10333 Enum10325 = 7 Enum10325_ENUM_VALUE10334 Enum10325 = 8 ) // Enum value maps for Enum10325. var ( Enum10325_name = map[int32]string{ 0: "ENUM_VALUE10326", 1: "ENUM_VALUE10327", 2: "ENUM_VALUE10328", 3: "ENUM_VALUE10329", 4: "ENUM_VALUE10330", 5: "ENUM_VALUE10331", 6: "ENUM_VALUE10332", 7: "ENUM_VALUE10333", 8: "ENUM_VALUE10334", } Enum10325_value = map[string]int32{ "ENUM_VALUE10326": 0, "ENUM_VALUE10327": 1, "ENUM_VALUE10328": 2, "ENUM_VALUE10329": 3, "ENUM_VALUE10330": 4, "ENUM_VALUE10331": 5, "ENUM_VALUE10332": 6, "ENUM_VALUE10333": 7, "ENUM_VALUE10334": 8, } ) func (x Enum10325) Enum() *Enum10325 { p := new(Enum10325) *p = x return p } func (x Enum10325) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum10325) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[29].Descriptor() } func (Enum10325) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[29] } func (x Enum10325) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum10325) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum10325(num) return nil } // Deprecated: Use Enum10325.Descriptor instead. func (Enum10325) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{29} } type Enum10335 int32 const ( Enum10335_ENUM_VALUE10336 Enum10335 = 0 ) // Enum value maps for Enum10335. var ( Enum10335_name = map[int32]string{ 0: "ENUM_VALUE10336", } Enum10335_value = map[string]int32{ "ENUM_VALUE10336": 0, } ) func (x Enum10335) Enum() *Enum10335 { p := new(Enum10335) *p = x return p } func (x Enum10335) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum10335) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[30].Descriptor() } func (Enum10335) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[30] } func (x Enum10335) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum10335) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum10335(num) return nil } // Deprecated: Use Enum10335.Descriptor instead. func (Enum10335) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{30} } type Enum10337 int32 const ( Enum10337_ENUM_VALUE10338 Enum10337 = 0 Enum10337_ENUM_VALUE10339 Enum10337 = 1 ) // Enum value maps for Enum10337. var ( Enum10337_name = map[int32]string{ 0: "ENUM_VALUE10338", 1: "ENUM_VALUE10339", } Enum10337_value = map[string]int32{ "ENUM_VALUE10338": 0, "ENUM_VALUE10339": 1, } ) func (x Enum10337) Enum() *Enum10337 { p := new(Enum10337) *p = x return p } func (x Enum10337) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum10337) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[31].Descriptor() } func (Enum10337) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[31] } func (x Enum10337) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum10337) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum10337(num) return nil } // Deprecated: Use Enum10337.Descriptor instead. func (Enum10337) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{31} } type Enum10392 int32 const ( Enum10392_ENUM_VALUE10393 Enum10392 = 0 Enum10392_ENUM_VALUE10394 Enum10392 = 1 Enum10392_ENUM_VALUE10395 Enum10392 = 2 Enum10392_ENUM_VALUE10396 Enum10392 = 3 Enum10392_ENUM_VALUE10397 Enum10392 = 4 Enum10392_ENUM_VALUE10398 Enum10392 = 5 Enum10392_ENUM_VALUE10399 Enum10392 = 6 Enum10392_ENUM_VALUE10400 Enum10392 = 7 Enum10392_ENUM_VALUE10401 Enum10392 = 8 Enum10392_ENUM_VALUE10402 Enum10392 = 15 Enum10392_ENUM_VALUE10403 Enum10392 = 9 Enum10392_ENUM_VALUE10404 Enum10392 = 10 Enum10392_ENUM_VALUE10405 Enum10392 = 11 Enum10392_ENUM_VALUE10406 Enum10392 = 12 Enum10392_ENUM_VALUE10407 Enum10392 = 13 Enum10392_ENUM_VALUE10408 Enum10392 = 14 Enum10392_ENUM_VALUE10409 Enum10392 = 101 Enum10392_ENUM_VALUE10410 Enum10392 = 102 ) // Enum value maps for Enum10392. var ( Enum10392_name = map[int32]string{ 0: "ENUM_VALUE10393", 1: "ENUM_VALUE10394", 2: "ENUM_VALUE10395", 3: "ENUM_VALUE10396", 4: "ENUM_VALUE10397", 5: "ENUM_VALUE10398", 6: "ENUM_VALUE10399", 7: "ENUM_VALUE10400", 8: "ENUM_VALUE10401", 15: "ENUM_VALUE10402", 9: "ENUM_VALUE10403", 10: "ENUM_VALUE10404", 11: "ENUM_VALUE10405", 12: "ENUM_VALUE10406", 13: "ENUM_VALUE10407", 14: "ENUM_VALUE10408", 101: "ENUM_VALUE10409", 102: "ENUM_VALUE10410", } Enum10392_value = map[string]int32{ "ENUM_VALUE10393": 0, "ENUM_VALUE10394": 1, "ENUM_VALUE10395": 2, "ENUM_VALUE10396": 3, "ENUM_VALUE10397": 4, "ENUM_VALUE10398": 5, "ENUM_VALUE10399": 6, "ENUM_VALUE10400": 7, "ENUM_VALUE10401": 8, "ENUM_VALUE10402": 15, "ENUM_VALUE10403": 9, "ENUM_VALUE10404": 10, "ENUM_VALUE10405": 11, "ENUM_VALUE10406": 12, "ENUM_VALUE10407": 13, "ENUM_VALUE10408": 14, "ENUM_VALUE10409": 101, "ENUM_VALUE10410": 102, } ) func (x Enum10392) Enum() *Enum10392 { p := new(Enum10392) *p = x return p } func (x Enum10392) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum10392) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[32].Descriptor() } func (Enum10392) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[32] } func (x Enum10392) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum10392) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum10392(num) return nil } // Deprecated: Use Enum10392.Descriptor instead. func (Enum10392) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{32} } type Enum11107 int32 const ( Enum11107_ENUM_VALUE11108 Enum11107 = 0 Enum11107_ENUM_VALUE11109 Enum11107 = 1 Enum11107_ENUM_VALUE11110 Enum11107 = 2 Enum11107_ENUM_VALUE11111 Enum11107 = 3 Enum11107_ENUM_VALUE11112 Enum11107 = 4 Enum11107_ENUM_VALUE11113 Enum11107 = 5 Enum11107_ENUM_VALUE11114 Enum11107 = 6 Enum11107_ENUM_VALUE11115 Enum11107 = 7 Enum11107_ENUM_VALUE11116 Enum11107 = 8 Enum11107_ENUM_VALUE11117 Enum11107 = 9 Enum11107_ENUM_VALUE11118 Enum11107 = 10 Enum11107_ENUM_VALUE11119 Enum11107 = 11 Enum11107_ENUM_VALUE11120 Enum11107 = 12 Enum11107_ENUM_VALUE11121 Enum11107 = 13 Enum11107_ENUM_VALUE11122 Enum11107 = 14 Enum11107_ENUM_VALUE11123 Enum11107 = 15 Enum11107_ENUM_VALUE11124 Enum11107 = 16 Enum11107_ENUM_VALUE11125 Enum11107 = 17 Enum11107_ENUM_VALUE11126 Enum11107 = 18 Enum11107_ENUM_VALUE11127 Enum11107 = 19 Enum11107_ENUM_VALUE11128 Enum11107 = 20 Enum11107_ENUM_VALUE11129 Enum11107 = 21 Enum11107_ENUM_VALUE11130 Enum11107 = 22 Enum11107_ENUM_VALUE11131 Enum11107 = 23 Enum11107_ENUM_VALUE11132 Enum11107 = 24 Enum11107_ENUM_VALUE11133 Enum11107 = 25 Enum11107_ENUM_VALUE11134 Enum11107 = 26 Enum11107_ENUM_VALUE11135 Enum11107 = 27 Enum11107_ENUM_VALUE11136 Enum11107 = 28 Enum11107_ENUM_VALUE11137 Enum11107 = 29 Enum11107_ENUM_VALUE11138 Enum11107 = 30 Enum11107_ENUM_VALUE11139 Enum11107 = 31 Enum11107_ENUM_VALUE11140 Enum11107 = 32 Enum11107_ENUM_VALUE11141 Enum11107 = 33 Enum11107_ENUM_VALUE11142 Enum11107 = 34 Enum11107_ENUM_VALUE11143 Enum11107 = 35 Enum11107_ENUM_VALUE11144 Enum11107 = 36 Enum11107_ENUM_VALUE11145 Enum11107 = 37 Enum11107_ENUM_VALUE11146 Enum11107 = 38 Enum11107_ENUM_VALUE11147 Enum11107 = 39 Enum11107_ENUM_VALUE11148 Enum11107 = 40 Enum11107_ENUM_VALUE11149 Enum11107 = 41 Enum11107_ENUM_VALUE11150 Enum11107 = 42 Enum11107_ENUM_VALUE11151 Enum11107 = 43 Enum11107_ENUM_VALUE11152 Enum11107 = 44 Enum11107_ENUM_VALUE11153 Enum11107 = 45 Enum11107_ENUM_VALUE11154 Enum11107 = 46 Enum11107_ENUM_VALUE11155 Enum11107 = 47 Enum11107_ENUM_VALUE11156 Enum11107 = 48 Enum11107_ENUM_VALUE11157 Enum11107 = 49 Enum11107_ENUM_VALUE11158 Enum11107 = 50 Enum11107_ENUM_VALUE11159 Enum11107 = 51 Enum11107_ENUM_VALUE11160 Enum11107 = 52 Enum11107_ENUM_VALUE11161 Enum11107 = 53 Enum11107_ENUM_VALUE11162 Enum11107 = 54 Enum11107_ENUM_VALUE11163 Enum11107 = 55 Enum11107_ENUM_VALUE11164 Enum11107 = 56 Enum11107_ENUM_VALUE11165 Enum11107 = 57 Enum11107_ENUM_VALUE11166 Enum11107 = 58 Enum11107_ENUM_VALUE11167 Enum11107 = 59 Enum11107_ENUM_VALUE11168 Enum11107 = 60 Enum11107_ENUM_VALUE11169 Enum11107 = 61 Enum11107_ENUM_VALUE11170 Enum11107 = 62 Enum11107_ENUM_VALUE11171 Enum11107 = 63 Enum11107_ENUM_VALUE11172 Enum11107 = 64 Enum11107_ENUM_VALUE11173 Enum11107 = 65 Enum11107_ENUM_VALUE11174 Enum11107 = 66 Enum11107_ENUM_VALUE11175 Enum11107 = 67 Enum11107_ENUM_VALUE11176 Enum11107 = 68 Enum11107_ENUM_VALUE11177 Enum11107 = 69 Enum11107_ENUM_VALUE11178 Enum11107 = 70 Enum11107_ENUM_VALUE11179 Enum11107 = 71 Enum11107_ENUM_VALUE11180 Enum11107 = 72 Enum11107_ENUM_VALUE11181 Enum11107 = 73 Enum11107_ENUM_VALUE11182 Enum11107 = 74 Enum11107_ENUM_VALUE11183 Enum11107 = 75 Enum11107_ENUM_VALUE11184 Enum11107 = 76 Enum11107_ENUM_VALUE11185 Enum11107 = 77 Enum11107_ENUM_VALUE11186 Enum11107 = 78 Enum11107_ENUM_VALUE11187 Enum11107 = 79 Enum11107_ENUM_VALUE11188 Enum11107 = 80 Enum11107_ENUM_VALUE11189 Enum11107 = 81 Enum11107_ENUM_VALUE11190 Enum11107 = 82 Enum11107_ENUM_VALUE11191 Enum11107 = 83 Enum11107_ENUM_VALUE11192 Enum11107 = 84 Enum11107_ENUM_VALUE11193 Enum11107 = 85 Enum11107_ENUM_VALUE11194 Enum11107 = 86 Enum11107_ENUM_VALUE11195 Enum11107 = 87 Enum11107_ENUM_VALUE11196 Enum11107 = 88 Enum11107_ENUM_VALUE11197 Enum11107 = 89 Enum11107_ENUM_VALUE11198 Enum11107 = 90 Enum11107_ENUM_VALUE11199 Enum11107 = 91 Enum11107_ENUM_VALUE11200 Enum11107 = 92 Enum11107_ENUM_VALUE11201 Enum11107 = 93 Enum11107_ENUM_VALUE11202 Enum11107 = 94 Enum11107_ENUM_VALUE11203 Enum11107 = 95 Enum11107_ENUM_VALUE11204 Enum11107 = 96 Enum11107_ENUM_VALUE11205 Enum11107 = 97 Enum11107_ENUM_VALUE11206 Enum11107 = 98 Enum11107_ENUM_VALUE11207 Enum11107 = 99 Enum11107_ENUM_VALUE11208 Enum11107 = 100 Enum11107_ENUM_VALUE11209 Enum11107 = 101 Enum11107_ENUM_VALUE11210 Enum11107 = 102 Enum11107_ENUM_VALUE11211 Enum11107 = 103 Enum11107_ENUM_VALUE11212 Enum11107 = 104 Enum11107_ENUM_VALUE11213 Enum11107 = 105 Enum11107_ENUM_VALUE11214 Enum11107 = 106 Enum11107_ENUM_VALUE11215 Enum11107 = 107 Enum11107_ENUM_VALUE11216 Enum11107 = 108 Enum11107_ENUM_VALUE11217 Enum11107 = 109 Enum11107_ENUM_VALUE11218 Enum11107 = 110 Enum11107_ENUM_VALUE11219 Enum11107 = 111 Enum11107_ENUM_VALUE11220 Enum11107 = 112 Enum11107_ENUM_VALUE11221 Enum11107 = 113 Enum11107_ENUM_VALUE11222 Enum11107 = 114 Enum11107_ENUM_VALUE11223 Enum11107 = 115 Enum11107_ENUM_VALUE11224 Enum11107 = 116 Enum11107_ENUM_VALUE11225 Enum11107 = 117 Enum11107_ENUM_VALUE11226 Enum11107 = 118 Enum11107_ENUM_VALUE11227 Enum11107 = 119 Enum11107_ENUM_VALUE11228 Enum11107 = 120 Enum11107_ENUM_VALUE11229 Enum11107 = 121 Enum11107_ENUM_VALUE11230 Enum11107 = 122 Enum11107_ENUM_VALUE11231 Enum11107 = 123 Enum11107_ENUM_VALUE11232 Enum11107 = 124 Enum11107_ENUM_VALUE11233 Enum11107 = 125 Enum11107_ENUM_VALUE11234 Enum11107 = 126 Enum11107_ENUM_VALUE11235 Enum11107 = 127 Enum11107_ENUM_VALUE11236 Enum11107 = 128 Enum11107_ENUM_VALUE11237 Enum11107 = 129 Enum11107_ENUM_VALUE11238 Enum11107 = 130 Enum11107_ENUM_VALUE11239 Enum11107 = 131 Enum11107_ENUM_VALUE11240 Enum11107 = 132 Enum11107_ENUM_VALUE11241 Enum11107 = 133 Enum11107_ENUM_VALUE11242 Enum11107 = 134 Enum11107_ENUM_VALUE11243 Enum11107 = 135 Enum11107_ENUM_VALUE11244 Enum11107 = 136 Enum11107_ENUM_VALUE11245 Enum11107 = 137 Enum11107_ENUM_VALUE11246 Enum11107 = 138 Enum11107_ENUM_VALUE11247 Enum11107 = 139 Enum11107_ENUM_VALUE11248 Enum11107 = 140 Enum11107_ENUM_VALUE11249 Enum11107 = 141 Enum11107_ENUM_VALUE11250 Enum11107 = 142 Enum11107_ENUM_VALUE11251 Enum11107 = 143 Enum11107_ENUM_VALUE11252 Enum11107 = 144 Enum11107_ENUM_VALUE11253 Enum11107 = 145 Enum11107_ENUM_VALUE11254 Enum11107 = 146 Enum11107_ENUM_VALUE11255 Enum11107 = 147 Enum11107_ENUM_VALUE11256 Enum11107 = 148 Enum11107_ENUM_VALUE11257 Enum11107 = 149 Enum11107_ENUM_VALUE11258 Enum11107 = 150 Enum11107_ENUM_VALUE11259 Enum11107 = 151 Enum11107_ENUM_VALUE11260 Enum11107 = 152 Enum11107_ENUM_VALUE11261 Enum11107 = 153 Enum11107_ENUM_VALUE11262 Enum11107 = 154 Enum11107_ENUM_VALUE11263 Enum11107 = 155 Enum11107_ENUM_VALUE11264 Enum11107 = 156 Enum11107_ENUM_VALUE11265 Enum11107 = 157 Enum11107_ENUM_VALUE11266 Enum11107 = 158 Enum11107_ENUM_VALUE11267 Enum11107 = 159 Enum11107_ENUM_VALUE11268 Enum11107 = 160 Enum11107_ENUM_VALUE11269 Enum11107 = 161 Enum11107_ENUM_VALUE11270 Enum11107 = 163 Enum11107_ENUM_VALUE11271 Enum11107 = 164 Enum11107_ENUM_VALUE11272 Enum11107 = 165 Enum11107_ENUM_VALUE11273 Enum11107 = 166 Enum11107_ENUM_VALUE11274 Enum11107 = 167 Enum11107_ENUM_VALUE11275 Enum11107 = 168 Enum11107_ENUM_VALUE11276 Enum11107 = 169 Enum11107_ENUM_VALUE11277 Enum11107 = 170 Enum11107_ENUM_VALUE11278 Enum11107 = 171 Enum11107_ENUM_VALUE11279 Enum11107 = 172 Enum11107_ENUM_VALUE11280 Enum11107 = 173 Enum11107_ENUM_VALUE11281 Enum11107 = 174 Enum11107_ENUM_VALUE11282 Enum11107 = 175 Enum11107_ENUM_VALUE11283 Enum11107 = 176 Enum11107_ENUM_VALUE11284 Enum11107 = 177 Enum11107_ENUM_VALUE11285 Enum11107 = 178 Enum11107_ENUM_VALUE11286 Enum11107 = 179 Enum11107_ENUM_VALUE11287 Enum11107 = 180 Enum11107_ENUM_VALUE11288 Enum11107 = 181 Enum11107_ENUM_VALUE11289 Enum11107 = 182 Enum11107_ENUM_VALUE11290 Enum11107 = 183 Enum11107_ENUM_VALUE11291 Enum11107 = 184 Enum11107_ENUM_VALUE11292 Enum11107 = 185 Enum11107_ENUM_VALUE11293 Enum11107 = 187 Enum11107_ENUM_VALUE11294 Enum11107 = 188 Enum11107_ENUM_VALUE11295 Enum11107 = 189 Enum11107_ENUM_VALUE11296 Enum11107 = 190 Enum11107_ENUM_VALUE11297 Enum11107 = 191 Enum11107_ENUM_VALUE11298 Enum11107 = 192 Enum11107_ENUM_VALUE11299 Enum11107 = 193 Enum11107_ENUM_VALUE11300 Enum11107 = 194 Enum11107_ENUM_VALUE11301 Enum11107 = 195 Enum11107_ENUM_VALUE11302 Enum11107 = 196 Enum11107_ENUM_VALUE11303 Enum11107 = 197 Enum11107_ENUM_VALUE11304 Enum11107 = 198 Enum11107_ENUM_VALUE11305 Enum11107 = 65535 Enum11107_ENUM_VALUE11306 Enum11107 = 65536 Enum11107_ENUM_VALUE11307 Enum11107 = 65537 Enum11107_ENUM_VALUE11308 Enum11107 = 65538 Enum11107_ENUM_VALUE11309 Enum11107 = 65539 Enum11107_ENUM_VALUE11310 Enum11107 = 65540 Enum11107_ENUM_VALUE11311 Enum11107 = 65541 Enum11107_ENUM_VALUE11312 Enum11107 = 65542 Enum11107_ENUM_VALUE11313 Enum11107 = 65543 Enum11107_ENUM_VALUE11314 Enum11107 = 65544 Enum11107_ENUM_VALUE11315 Enum11107 = 65545 Enum11107_ENUM_VALUE11316 Enum11107 = 65546 Enum11107_ENUM_VALUE11317 Enum11107 = 65547 Enum11107_ENUM_VALUE11318 Enum11107 = 65548 Enum11107_ENUM_VALUE11319 Enum11107 = 65549 Enum11107_ENUM_VALUE11320 Enum11107 = 65550 Enum11107_ENUM_VALUE11321 Enum11107 = 65551 Enum11107_ENUM_VALUE11322 Enum11107 = 65552 Enum11107_ENUM_VALUE11323 Enum11107 = 65553 Enum11107_ENUM_VALUE11324 Enum11107 = 65554 Enum11107_ENUM_VALUE11325 Enum11107 = 65555 Enum11107_ENUM_VALUE11326 Enum11107 = 65556 Enum11107_ENUM_VALUE11327 Enum11107 = 65557 Enum11107_ENUM_VALUE11328 Enum11107 = 65558 Enum11107_ENUM_VALUE11329 Enum11107 = 65559 Enum11107_ENUM_VALUE11330 Enum11107 = 65560 Enum11107_ENUM_VALUE11331 Enum11107 = 65561 Enum11107_ENUM_VALUE11332 Enum11107 = 65562 Enum11107_ENUM_VALUE11333 Enum11107 = 65563 Enum11107_ENUM_VALUE11334 Enum11107 = 69632 Enum11107_ENUM_VALUE11335 Enum11107 = 69633 Enum11107_ENUM_VALUE11336 Enum11107 = 69634 Enum11107_ENUM_VALUE11337 Enum11107 = 69635 Enum11107_ENUM_VALUE11338 Enum11107 = 69636 Enum11107_ENUM_VALUE11339 Enum11107 = 69637 Enum11107_ENUM_VALUE11340 Enum11107 = 69638 Enum11107_ENUM_VALUE11341 Enum11107 = 69639 Enum11107_ENUM_VALUE11342 Enum11107 = 69640 Enum11107_ENUM_VALUE11343 Enum11107 = 69641 Enum11107_ENUM_VALUE11344 Enum11107 = 69642 Enum11107_ENUM_VALUE11345 Enum11107 = 69643 Enum11107_ENUM_VALUE11346 Enum11107 = 69644 Enum11107_ENUM_VALUE11347 Enum11107 = 69645 Enum11107_ENUM_VALUE11348 Enum11107 = 69646 Enum11107_ENUM_VALUE11349 Enum11107 = 69647 Enum11107_ENUM_VALUE11350 Enum11107 = 69648 Enum11107_ENUM_VALUE11351 Enum11107 = 69649 Enum11107_ENUM_VALUE11352 Enum11107 = 69650 Enum11107_ENUM_VALUE11353 Enum11107 = 69651 Enum11107_ENUM_VALUE11354 Enum11107 = 69652 Enum11107_ENUM_VALUE11355 Enum11107 = 69653 Enum11107_ENUM_VALUE11356 Enum11107 = 69654 Enum11107_ENUM_VALUE11357 Enum11107 = 69655 Enum11107_ENUM_VALUE11358 Enum11107 = 69656 Enum11107_ENUM_VALUE11359 Enum11107 = 69657 Enum11107_ENUM_VALUE11360 Enum11107 = 69658 Enum11107_ENUM_VALUE11361 Enum11107 = 69659 Enum11107_ENUM_VALUE11362 Enum11107 = 69660 Enum11107_ENUM_VALUE11363 Enum11107 = 69661 Enum11107_ENUM_VALUE11364 Enum11107 = 69662 Enum11107_ENUM_VALUE11365 Enum11107 = 73728 Enum11107_ENUM_VALUE11366 Enum11107 = 73729 Enum11107_ENUM_VALUE11367 Enum11107 = 77824 Enum11107_ENUM_VALUE11368 Enum11107 = 77825 Enum11107_ENUM_VALUE11369 Enum11107 = 81920 Enum11107_ENUM_VALUE11370 Enum11107 = 81921 Enum11107_ENUM_VALUE11371 Enum11107 = 81922 Enum11107_ENUM_VALUE11372 Enum11107 = 81923 Enum11107_ENUM_VALUE11373 Enum11107 = 86016 Enum11107_ENUM_VALUE11374 Enum11107 = 86017 Enum11107_ENUM_VALUE11375 Enum11107 = 86018 Enum11107_ENUM_VALUE11376 Enum11107 = 86019 Enum11107_ENUM_VALUE11377 Enum11107 = 86020 Enum11107_ENUM_VALUE11378 Enum11107 = 86021 Enum11107_ENUM_VALUE11379 Enum11107 = 86022 Enum11107_ENUM_VALUE11380 Enum11107 = 86023 Enum11107_ENUM_VALUE11381 Enum11107 = 86024 Enum11107_ENUM_VALUE11382 Enum11107 = 86025 Enum11107_ENUM_VALUE11383 Enum11107 = 86026 Enum11107_ENUM_VALUE11384 Enum11107 = 86027 Enum11107_ENUM_VALUE11385 Enum11107 = 86028 Enum11107_ENUM_VALUE11386 Enum11107 = 86029 Enum11107_ENUM_VALUE11387 Enum11107 = 86030 Enum11107_ENUM_VALUE11388 Enum11107 = 86031 Enum11107_ENUM_VALUE11389 Enum11107 = 86032 Enum11107_ENUM_VALUE11390 Enum11107 = 86033 Enum11107_ENUM_VALUE11391 Enum11107 = 86034 Enum11107_ENUM_VALUE11392 Enum11107 = 86035 Enum11107_ENUM_VALUE11393 Enum11107 = 86036 Enum11107_ENUM_VALUE11394 Enum11107 = 86037 Enum11107_ENUM_VALUE11395 Enum11107 = 86038 Enum11107_ENUM_VALUE11396 Enum11107 = 86039 Enum11107_ENUM_VALUE11397 Enum11107 = 86040 Enum11107_ENUM_VALUE11398 Enum11107 = 86041 Enum11107_ENUM_VALUE11399 Enum11107 = 86042 Enum11107_ENUM_VALUE11400 Enum11107 = 86043 Enum11107_ENUM_VALUE11401 Enum11107 = 86044 Enum11107_ENUM_VALUE11402 Enum11107 = 86045 Enum11107_ENUM_VALUE11403 Enum11107 = 86046 Enum11107_ENUM_VALUE11404 Enum11107 = 86047 Enum11107_ENUM_VALUE11405 Enum11107 = 86048 Enum11107_ENUM_VALUE11406 Enum11107 = 86049 Enum11107_ENUM_VALUE11407 Enum11107 = 86050 Enum11107_ENUM_VALUE11408 Enum11107 = 86051 Enum11107_ENUM_VALUE11409 Enum11107 = 86052 Enum11107_ENUM_VALUE11410 Enum11107 = 86053 Enum11107_ENUM_VALUE11411 Enum11107 = 86054 Enum11107_ENUM_VALUE11412 Enum11107 = 86055 Enum11107_ENUM_VALUE11413 Enum11107 = 86056 Enum11107_ENUM_VALUE11414 Enum11107 = 86057 Enum11107_ENUM_VALUE11415 Enum11107 = 86058 Enum11107_ENUM_VALUE11416 Enum11107 = 86059 Enum11107_ENUM_VALUE11417 Enum11107 = 86060 Enum11107_ENUM_VALUE11418 Enum11107 = 86061 Enum11107_ENUM_VALUE11419 Enum11107 = 86062 Enum11107_ENUM_VALUE11420 Enum11107 = 86063 Enum11107_ENUM_VALUE11421 Enum11107 = 86064 Enum11107_ENUM_VALUE11422 Enum11107 = 86065 Enum11107_ENUM_VALUE11423 Enum11107 = 86066 Enum11107_ENUM_VALUE11424 Enum11107 = 86067 Enum11107_ENUM_VALUE11425 Enum11107 = 86068 Enum11107_ENUM_VALUE11426 Enum11107 = 86069 Enum11107_ENUM_VALUE11427 Enum11107 = 86070 Enum11107_ENUM_VALUE11428 Enum11107 = 86071 Enum11107_ENUM_VALUE11429 Enum11107 = 86072 Enum11107_ENUM_VALUE11430 Enum11107 = 86073 Enum11107_ENUM_VALUE11431 Enum11107 = 86074 Enum11107_ENUM_VALUE11432 Enum11107 = 86077 Enum11107_ENUM_VALUE11433 Enum11107 = 86078 Enum11107_ENUM_VALUE11434 Enum11107 = 86079 Enum11107_ENUM_VALUE11435 Enum11107 = 86080 Enum11107_ENUM_VALUE11436 Enum11107 = 86081 Enum11107_ENUM_VALUE11437 Enum11107 = 86082 Enum11107_ENUM_VALUE11438 Enum11107 = 86083 Enum11107_ENUM_VALUE11439 Enum11107 = 86084 Enum11107_ENUM_VALUE11440 Enum11107 = 90112 Enum11107_ENUM_VALUE11441 Enum11107 = 94208 Enum11107_ENUM_VALUE11442 Enum11107 = 94209 Enum11107_ENUM_VALUE11443 Enum11107 = 94210 Enum11107_ENUM_VALUE11444 Enum11107 = 94211 Enum11107_ENUM_VALUE11445 Enum11107 = 94212 Enum11107_ENUM_VALUE11446 Enum11107 = 94213 Enum11107_ENUM_VALUE11447 Enum11107 = 94214 Enum11107_ENUM_VALUE11448 Enum11107 = 94215 Enum11107_ENUM_VALUE11449 Enum11107 = 94216 Enum11107_ENUM_VALUE11450 Enum11107 = 94217 Enum11107_ENUM_VALUE11451 Enum11107 = 94218 Enum11107_ENUM_VALUE11452 Enum11107 = 94219 Enum11107_ENUM_VALUE11453 Enum11107 = 94220 Enum11107_ENUM_VALUE11454 Enum11107 = 94221 Enum11107_ENUM_VALUE11455 Enum11107 = 94222 Enum11107_ENUM_VALUE11456 Enum11107 = 94223 Enum11107_ENUM_VALUE11457 Enum11107 = 94224 Enum11107_ENUM_VALUE11458 Enum11107 = 98304 Enum11107_ENUM_VALUE11459 Enum11107 = 98305 Enum11107_ENUM_VALUE11460 Enum11107 = 98306 Enum11107_ENUM_VALUE11461 Enum11107 = 98307 Enum11107_ENUM_VALUE11462 Enum11107 = 98308 Enum11107_ENUM_VALUE11463 Enum11107 = 102400 Enum11107_ENUM_VALUE11464 Enum11107 = 131072 Enum11107_ENUM_VALUE11465 Enum11107 = 131073 Enum11107_ENUM_VALUE11466 Enum11107 = 135168 Enum11107_ENUM_VALUE11467 Enum11107 = 9439507 ) // Enum value maps for Enum11107. var ( Enum11107_name = map[int32]string{ 0: "ENUM_VALUE11108", 1: "ENUM_VALUE11109", 2: "ENUM_VALUE11110", 3: "ENUM_VALUE11111", 4: "ENUM_VALUE11112", 5: "ENUM_VALUE11113", 6: "ENUM_VALUE11114", 7: "ENUM_VALUE11115", 8: "ENUM_VALUE11116", 9: "ENUM_VALUE11117", 10: "ENUM_VALUE11118", 11: "ENUM_VALUE11119", 12: "ENUM_VALUE11120", 13: "ENUM_VALUE11121", 14: "ENUM_VALUE11122", 15: "ENUM_VALUE11123", 16: "ENUM_VALUE11124", 17: "ENUM_VALUE11125", 18: "ENUM_VALUE11126", 19: "ENUM_VALUE11127", 20: "ENUM_VALUE11128", 21: "ENUM_VALUE11129", 22: "ENUM_VALUE11130", 23: "ENUM_VALUE11131", 24: "ENUM_VALUE11132", 25: "ENUM_VALUE11133", 26: "ENUM_VALUE11134", 27: "ENUM_VALUE11135", 28: "ENUM_VALUE11136", 29: "ENUM_VALUE11137", 30: "ENUM_VALUE11138", 31: "ENUM_VALUE11139", 32: "ENUM_VALUE11140", 33: "ENUM_VALUE11141", 34: "ENUM_VALUE11142", 35: "ENUM_VALUE11143", 36: "ENUM_VALUE11144", 37: "ENUM_VALUE11145", 38: "ENUM_VALUE11146", 39: "ENUM_VALUE11147", 40: "ENUM_VALUE11148", 41: "ENUM_VALUE11149", 42: "ENUM_VALUE11150", 43: "ENUM_VALUE11151", 44: "ENUM_VALUE11152", 45: "ENUM_VALUE11153", 46: "ENUM_VALUE11154", 47: "ENUM_VALUE11155", 48: "ENUM_VALUE11156", 49: "ENUM_VALUE11157", 50: "ENUM_VALUE11158", 51: "ENUM_VALUE11159", 52: "ENUM_VALUE11160", 53: "ENUM_VALUE11161", 54: "ENUM_VALUE11162", 55: "ENUM_VALUE11163", 56: "ENUM_VALUE11164", 57: "ENUM_VALUE11165", 58: "ENUM_VALUE11166", 59: "ENUM_VALUE11167", 60: "ENUM_VALUE11168", 61: "ENUM_VALUE11169", 62: "ENUM_VALUE11170", 63: "ENUM_VALUE11171", 64: "ENUM_VALUE11172", 65: "ENUM_VALUE11173", 66: "ENUM_VALUE11174", 67: "ENUM_VALUE11175", 68: "ENUM_VALUE11176", 69: "ENUM_VALUE11177", 70: "ENUM_VALUE11178", 71: "ENUM_VALUE11179", 72: "ENUM_VALUE11180", 73: "ENUM_VALUE11181", 74: "ENUM_VALUE11182", 75: "ENUM_VALUE11183", 76: "ENUM_VALUE11184", 77: "ENUM_VALUE11185", 78: "ENUM_VALUE11186", 79: "ENUM_VALUE11187", 80: "ENUM_VALUE11188", 81: "ENUM_VALUE11189", 82: "ENUM_VALUE11190", 83: "ENUM_VALUE11191", 84: "ENUM_VALUE11192", 85: "ENUM_VALUE11193", 86: "ENUM_VALUE11194", 87: "ENUM_VALUE11195", 88: "ENUM_VALUE11196", 89: "ENUM_VALUE11197", 90: "ENUM_VALUE11198", 91: "ENUM_VALUE11199", 92: "ENUM_VALUE11200", 93: "ENUM_VALUE11201", 94: "ENUM_VALUE11202", 95: "ENUM_VALUE11203", 96: "ENUM_VALUE11204", 97: "ENUM_VALUE11205", 98: "ENUM_VALUE11206", 99: "ENUM_VALUE11207", 100: "ENUM_VALUE11208", 101: "ENUM_VALUE11209", 102: "ENUM_VALUE11210", 103: "ENUM_VALUE11211", 104: "ENUM_VALUE11212", 105: "ENUM_VALUE11213", 106: "ENUM_VALUE11214", 107: "ENUM_VALUE11215", 108: "ENUM_VALUE11216", 109: "ENUM_VALUE11217", 110: "ENUM_VALUE11218", 111: "ENUM_VALUE11219", 112: "ENUM_VALUE11220", 113: "ENUM_VALUE11221", 114: "ENUM_VALUE11222", 115: "ENUM_VALUE11223", 116: "ENUM_VALUE11224", 117: "ENUM_VALUE11225", 118: "ENUM_VALUE11226", 119: "ENUM_VALUE11227", 120: "ENUM_VALUE11228", 121: "ENUM_VALUE11229", 122: "ENUM_VALUE11230", 123: "ENUM_VALUE11231", 124: "ENUM_VALUE11232", 125: "ENUM_VALUE11233", 126: "ENUM_VALUE11234", 127: "ENUM_VALUE11235", 128: "ENUM_VALUE11236", 129: "ENUM_VALUE11237", 130: "ENUM_VALUE11238", 131: "ENUM_VALUE11239", 132: "ENUM_VALUE11240", 133: "ENUM_VALUE11241", 134: "ENUM_VALUE11242", 135: "ENUM_VALUE11243", 136: "ENUM_VALUE11244", 137: "ENUM_VALUE11245", 138: "ENUM_VALUE11246", 139: "ENUM_VALUE11247", 140: "ENUM_VALUE11248", 141: "ENUM_VALUE11249", 142: "ENUM_VALUE11250", 143: "ENUM_VALUE11251", 144: "ENUM_VALUE11252", 145: "ENUM_VALUE11253", 146: "ENUM_VALUE11254", 147: "ENUM_VALUE11255", 148: "ENUM_VALUE11256", 149: "ENUM_VALUE11257", 150: "ENUM_VALUE11258", 151: "ENUM_VALUE11259", 152: "ENUM_VALUE11260", 153: "ENUM_VALUE11261", 154: "ENUM_VALUE11262", 155: "ENUM_VALUE11263", 156: "ENUM_VALUE11264", 157: "ENUM_VALUE11265", 158: "ENUM_VALUE11266", 159: "ENUM_VALUE11267", 160: "ENUM_VALUE11268", 161: "ENUM_VALUE11269", 163: "ENUM_VALUE11270", 164: "ENUM_VALUE11271", 165: "ENUM_VALUE11272", 166: "ENUM_VALUE11273", 167: "ENUM_VALUE11274", 168: "ENUM_VALUE11275", 169: "ENUM_VALUE11276", 170: "ENUM_VALUE11277", 171: "ENUM_VALUE11278", 172: "ENUM_VALUE11279", 173: "ENUM_VALUE11280", 174: "ENUM_VALUE11281", 175: "ENUM_VALUE11282", 176: "ENUM_VALUE11283", 177: "ENUM_VALUE11284", 178: "ENUM_VALUE11285", 179: "ENUM_VALUE11286", 180: "ENUM_VALUE11287", 181: "ENUM_VALUE11288", 182: "ENUM_VALUE11289", 183: "ENUM_VALUE11290", 184: "ENUM_VALUE11291", 185: "ENUM_VALUE11292", 187: "ENUM_VALUE11293", 188: "ENUM_VALUE11294", 189: "ENUM_VALUE11295", 190: "ENUM_VALUE11296", 191: "ENUM_VALUE11297", 192: "ENUM_VALUE11298", 193: "ENUM_VALUE11299", 194: "ENUM_VALUE11300", 195: "ENUM_VALUE11301", 196: "ENUM_VALUE11302", 197: "ENUM_VALUE11303", 198: "ENUM_VALUE11304", 65535: "ENUM_VALUE11305", 65536: "ENUM_VALUE11306", 65537: "ENUM_VALUE11307", 65538: "ENUM_VALUE11308", 65539: "ENUM_VALUE11309", 65540: "ENUM_VALUE11310", 65541: "ENUM_VALUE11311", 65542: "ENUM_VALUE11312", 65543: "ENUM_VALUE11313", 65544: "ENUM_VALUE11314", 65545: "ENUM_VALUE11315", 65546: "ENUM_VALUE11316", 65547: "ENUM_VALUE11317", 65548: "ENUM_VALUE11318", 65549: "ENUM_VALUE11319", 65550: "ENUM_VALUE11320", 65551: "ENUM_VALUE11321", 65552: "ENUM_VALUE11322", 65553: "ENUM_VALUE11323", 65554: "ENUM_VALUE11324", 65555: "ENUM_VALUE11325", 65556: "ENUM_VALUE11326", 65557: "ENUM_VALUE11327", 65558: "ENUM_VALUE11328", 65559: "ENUM_VALUE11329", 65560: "ENUM_VALUE11330", 65561: "ENUM_VALUE11331", 65562: "ENUM_VALUE11332", 65563: "ENUM_VALUE11333", 69632: "ENUM_VALUE11334", 69633: "ENUM_VALUE11335", 69634: "ENUM_VALUE11336", 69635: "ENUM_VALUE11337", 69636: "ENUM_VALUE11338", 69637: "ENUM_VALUE11339", 69638: "ENUM_VALUE11340", 69639: "ENUM_VALUE11341", 69640: "ENUM_VALUE11342", 69641: "ENUM_VALUE11343", 69642: "ENUM_VALUE11344", 69643: "ENUM_VALUE11345", 69644: "ENUM_VALUE11346", 69645: "ENUM_VALUE11347", 69646: "ENUM_VALUE11348", 69647: "ENUM_VALUE11349", 69648: "ENUM_VALUE11350", 69649: "ENUM_VALUE11351", 69650: "ENUM_VALUE11352", 69651: "ENUM_VALUE11353", 69652: "ENUM_VALUE11354", 69653: "ENUM_VALUE11355", 69654: "ENUM_VALUE11356", 69655: "ENUM_VALUE11357", 69656: "ENUM_VALUE11358", 69657: "ENUM_VALUE11359", 69658: "ENUM_VALUE11360", 69659: "ENUM_VALUE11361", 69660: "ENUM_VALUE11362", 69661: "ENUM_VALUE11363", 69662: "ENUM_VALUE11364", 73728: "ENUM_VALUE11365", 73729: "ENUM_VALUE11366", 77824: "ENUM_VALUE11367", 77825: "ENUM_VALUE11368", 81920: "ENUM_VALUE11369", 81921: "ENUM_VALUE11370", 81922: "ENUM_VALUE11371", 81923: "ENUM_VALUE11372", 86016: "ENUM_VALUE11373", 86017: "ENUM_VALUE11374", 86018: "ENUM_VALUE11375", 86019: "ENUM_VALUE11376", 86020: "ENUM_VALUE11377", 86021: "ENUM_VALUE11378", 86022: "ENUM_VALUE11379", 86023: "ENUM_VALUE11380", 86024: "ENUM_VALUE11381", 86025: "ENUM_VALUE11382", 86026: "ENUM_VALUE11383", 86027: "ENUM_VALUE11384", 86028: "ENUM_VALUE11385", 86029: "ENUM_VALUE11386", 86030: "ENUM_VALUE11387", 86031: "ENUM_VALUE11388", 86032: "ENUM_VALUE11389", 86033: "ENUM_VALUE11390", 86034: "ENUM_VALUE11391", 86035: "ENUM_VALUE11392", 86036: "ENUM_VALUE11393", 86037: "ENUM_VALUE11394", 86038: "ENUM_VALUE11395", 86039: "ENUM_VALUE11396", 86040: "ENUM_VALUE11397", 86041: "ENUM_VALUE11398", 86042: "ENUM_VALUE11399", 86043: "ENUM_VALUE11400", 86044: "ENUM_VALUE11401", 86045: "ENUM_VALUE11402", 86046: "ENUM_VALUE11403", 86047: "ENUM_VALUE11404", 86048: "ENUM_VALUE11405", 86049: "ENUM_VALUE11406", 86050: "ENUM_VALUE11407", 86051: "ENUM_VALUE11408", 86052: "ENUM_VALUE11409", 86053: "ENUM_VALUE11410", 86054: "ENUM_VALUE11411", 86055: "ENUM_VALUE11412", 86056: "ENUM_VALUE11413", 86057: "ENUM_VALUE11414", 86058: "ENUM_VALUE11415", 86059: "ENUM_VALUE11416", 86060: "ENUM_VALUE11417", 86061: "ENUM_VALUE11418", 86062: "ENUM_VALUE11419", 86063: "ENUM_VALUE11420", 86064: "ENUM_VALUE11421", 86065: "ENUM_VALUE11422", 86066: "ENUM_VALUE11423", 86067: "ENUM_VALUE11424", 86068: "ENUM_VALUE11425", 86069: "ENUM_VALUE11426", 86070: "ENUM_VALUE11427", 86071: "ENUM_VALUE11428", 86072: "ENUM_VALUE11429", 86073: "ENUM_VALUE11430", 86074: "ENUM_VALUE11431", 86077: "ENUM_VALUE11432", 86078: "ENUM_VALUE11433", 86079: "ENUM_VALUE11434", 86080: "ENUM_VALUE11435", 86081: "ENUM_VALUE11436", 86082: "ENUM_VALUE11437", 86083: "ENUM_VALUE11438", 86084: "ENUM_VALUE11439", 90112: "ENUM_VALUE11440", 94208: "ENUM_VALUE11441", 94209: "ENUM_VALUE11442", 94210: "ENUM_VALUE11443", 94211: "ENUM_VALUE11444", 94212: "ENUM_VALUE11445", 94213: "ENUM_VALUE11446", 94214: "ENUM_VALUE11447", 94215: "ENUM_VALUE11448", 94216: "ENUM_VALUE11449", 94217: "ENUM_VALUE11450", 94218: "ENUM_VALUE11451", 94219: "ENUM_VALUE11452", 94220: "ENUM_VALUE11453", 94221: "ENUM_VALUE11454", 94222: "ENUM_VALUE11455", 94223: "ENUM_VALUE11456", 94224: "ENUM_VALUE11457", 98304: "ENUM_VALUE11458", 98305: "ENUM_VALUE11459", 98306: "ENUM_VALUE11460", 98307: "ENUM_VALUE11461", 98308: "ENUM_VALUE11462", 102400: "ENUM_VALUE11463", 131072: "ENUM_VALUE11464", 131073: "ENUM_VALUE11465", 135168: "ENUM_VALUE11466", 9439507: "ENUM_VALUE11467", } Enum11107_value = map[string]int32{ "ENUM_VALUE11108": 0, "ENUM_VALUE11109": 1, "ENUM_VALUE11110": 2, "ENUM_VALUE11111": 3, "ENUM_VALUE11112": 4, "ENUM_VALUE11113": 5, "ENUM_VALUE11114": 6, "ENUM_VALUE11115": 7, "ENUM_VALUE11116": 8, "ENUM_VALUE11117": 9, "ENUM_VALUE11118": 10, "ENUM_VALUE11119": 11, "ENUM_VALUE11120": 12, "ENUM_VALUE11121": 13, "ENUM_VALUE11122": 14, "ENUM_VALUE11123": 15, "ENUM_VALUE11124": 16, "ENUM_VALUE11125": 17, "ENUM_VALUE11126": 18, "ENUM_VALUE11127": 19, "ENUM_VALUE11128": 20, "ENUM_VALUE11129": 21, "ENUM_VALUE11130": 22, "ENUM_VALUE11131": 23, "ENUM_VALUE11132": 24, "ENUM_VALUE11133": 25, "ENUM_VALUE11134": 26, "ENUM_VALUE11135": 27, "ENUM_VALUE11136": 28, "ENUM_VALUE11137": 29, "ENUM_VALUE11138": 30, "ENUM_VALUE11139": 31, "ENUM_VALUE11140": 32, "ENUM_VALUE11141": 33, "ENUM_VALUE11142": 34, "ENUM_VALUE11143": 35, "ENUM_VALUE11144": 36, "ENUM_VALUE11145": 37, "ENUM_VALUE11146": 38, "ENUM_VALUE11147": 39, "ENUM_VALUE11148": 40, "ENUM_VALUE11149": 41, "ENUM_VALUE11150": 42, "ENUM_VALUE11151": 43, "ENUM_VALUE11152": 44, "ENUM_VALUE11153": 45, "ENUM_VALUE11154": 46, "ENUM_VALUE11155": 47, "ENUM_VALUE11156": 48, "ENUM_VALUE11157": 49, "ENUM_VALUE11158": 50, "ENUM_VALUE11159": 51, "ENUM_VALUE11160": 52, "ENUM_VALUE11161": 53, "ENUM_VALUE11162": 54, "ENUM_VALUE11163": 55, "ENUM_VALUE11164": 56, "ENUM_VALUE11165": 57, "ENUM_VALUE11166": 58, "ENUM_VALUE11167": 59, "ENUM_VALUE11168": 60, "ENUM_VALUE11169": 61, "ENUM_VALUE11170": 62, "ENUM_VALUE11171": 63, "ENUM_VALUE11172": 64, "ENUM_VALUE11173": 65, "ENUM_VALUE11174": 66, "ENUM_VALUE11175": 67, "ENUM_VALUE11176": 68, "ENUM_VALUE11177": 69, "ENUM_VALUE11178": 70, "ENUM_VALUE11179": 71, "ENUM_VALUE11180": 72, "ENUM_VALUE11181": 73, "ENUM_VALUE11182": 74, "ENUM_VALUE11183": 75, "ENUM_VALUE11184": 76, "ENUM_VALUE11185": 77, "ENUM_VALUE11186": 78, "ENUM_VALUE11187": 79, "ENUM_VALUE11188": 80, "ENUM_VALUE11189": 81, "ENUM_VALUE11190": 82, "ENUM_VALUE11191": 83, "ENUM_VALUE11192": 84, "ENUM_VALUE11193": 85, "ENUM_VALUE11194": 86, "ENUM_VALUE11195": 87, "ENUM_VALUE11196": 88, "ENUM_VALUE11197": 89, "ENUM_VALUE11198": 90, "ENUM_VALUE11199": 91, "ENUM_VALUE11200": 92, "ENUM_VALUE11201": 93, "ENUM_VALUE11202": 94, "ENUM_VALUE11203": 95, "ENUM_VALUE11204": 96, "ENUM_VALUE11205": 97, "ENUM_VALUE11206": 98, "ENUM_VALUE11207": 99, "ENUM_VALUE11208": 100, "ENUM_VALUE11209": 101, "ENUM_VALUE11210": 102, "ENUM_VALUE11211": 103, "ENUM_VALUE11212": 104, "ENUM_VALUE11213": 105, "ENUM_VALUE11214": 106, "ENUM_VALUE11215": 107, "ENUM_VALUE11216": 108, "ENUM_VALUE11217": 109, "ENUM_VALUE11218": 110, "ENUM_VALUE11219": 111, "ENUM_VALUE11220": 112, "ENUM_VALUE11221": 113, "ENUM_VALUE11222": 114, "ENUM_VALUE11223": 115, "ENUM_VALUE11224": 116, "ENUM_VALUE11225": 117, "ENUM_VALUE11226": 118, "ENUM_VALUE11227": 119, "ENUM_VALUE11228": 120, "ENUM_VALUE11229": 121, "ENUM_VALUE11230": 122, "ENUM_VALUE11231": 123, "ENUM_VALUE11232": 124, "ENUM_VALUE11233": 125, "ENUM_VALUE11234": 126, "ENUM_VALUE11235": 127, "ENUM_VALUE11236": 128, "ENUM_VALUE11237": 129, "ENUM_VALUE11238": 130, "ENUM_VALUE11239": 131, "ENUM_VALUE11240": 132, "ENUM_VALUE11241": 133, "ENUM_VALUE11242": 134, "ENUM_VALUE11243": 135, "ENUM_VALUE11244": 136, "ENUM_VALUE11245": 137, "ENUM_VALUE11246": 138, "ENUM_VALUE11247": 139, "ENUM_VALUE11248": 140, "ENUM_VALUE11249": 141, "ENUM_VALUE11250": 142, "ENUM_VALUE11251": 143, "ENUM_VALUE11252": 144, "ENUM_VALUE11253": 145, "ENUM_VALUE11254": 146, "ENUM_VALUE11255": 147, "ENUM_VALUE11256": 148, "ENUM_VALUE11257": 149, "ENUM_VALUE11258": 150, "ENUM_VALUE11259": 151, "ENUM_VALUE11260": 152, "ENUM_VALUE11261": 153, "ENUM_VALUE11262": 154, "ENUM_VALUE11263": 155, "ENUM_VALUE11264": 156, "ENUM_VALUE11265": 157, "ENUM_VALUE11266": 158, "ENUM_VALUE11267": 159, "ENUM_VALUE11268": 160, "ENUM_VALUE11269": 161, "ENUM_VALUE11270": 163, "ENUM_VALUE11271": 164, "ENUM_VALUE11272": 165, "ENUM_VALUE11273": 166, "ENUM_VALUE11274": 167, "ENUM_VALUE11275": 168, "ENUM_VALUE11276": 169, "ENUM_VALUE11277": 170, "ENUM_VALUE11278": 171, "ENUM_VALUE11279": 172, "ENUM_VALUE11280": 173, "ENUM_VALUE11281": 174, "ENUM_VALUE11282": 175, "ENUM_VALUE11283": 176, "ENUM_VALUE11284": 177, "ENUM_VALUE11285": 178, "ENUM_VALUE11286": 179, "ENUM_VALUE11287": 180, "ENUM_VALUE11288": 181, "ENUM_VALUE11289": 182, "ENUM_VALUE11290": 183, "ENUM_VALUE11291": 184, "ENUM_VALUE11292": 185, "ENUM_VALUE11293": 187, "ENUM_VALUE11294": 188, "ENUM_VALUE11295": 189, "ENUM_VALUE11296": 190, "ENUM_VALUE11297": 191, "ENUM_VALUE11298": 192, "ENUM_VALUE11299": 193, "ENUM_VALUE11300": 194, "ENUM_VALUE11301": 195, "ENUM_VALUE11302": 196, "ENUM_VALUE11303": 197, "ENUM_VALUE11304": 198, "ENUM_VALUE11305": 65535, "ENUM_VALUE11306": 65536, "ENUM_VALUE11307": 65537, "ENUM_VALUE11308": 65538, "ENUM_VALUE11309": 65539, "ENUM_VALUE11310": 65540, "ENUM_VALUE11311": 65541, "ENUM_VALUE11312": 65542, "ENUM_VALUE11313": 65543, "ENUM_VALUE11314": 65544, "ENUM_VALUE11315": 65545, "ENUM_VALUE11316": 65546, "ENUM_VALUE11317": 65547, "ENUM_VALUE11318": 65548, "ENUM_VALUE11319": 65549, "ENUM_VALUE11320": 65550, "ENUM_VALUE11321": 65551, "ENUM_VALUE11322": 65552, "ENUM_VALUE11323": 65553, "ENUM_VALUE11324": 65554, "ENUM_VALUE11325": 65555, "ENUM_VALUE11326": 65556, "ENUM_VALUE11327": 65557, "ENUM_VALUE11328": 65558, "ENUM_VALUE11329": 65559, "ENUM_VALUE11330": 65560, "ENUM_VALUE11331": 65561, "ENUM_VALUE11332": 65562, "ENUM_VALUE11333": 65563, "ENUM_VALUE11334": 69632, "ENUM_VALUE11335": 69633, "ENUM_VALUE11336": 69634, "ENUM_VALUE11337": 69635, "ENUM_VALUE11338": 69636, "ENUM_VALUE11339": 69637, "ENUM_VALUE11340": 69638, "ENUM_VALUE11341": 69639, "ENUM_VALUE11342": 69640, "ENUM_VALUE11343": 69641, "ENUM_VALUE11344": 69642, "ENUM_VALUE11345": 69643, "ENUM_VALUE11346": 69644, "ENUM_VALUE11347": 69645, "ENUM_VALUE11348": 69646, "ENUM_VALUE11349": 69647, "ENUM_VALUE11350": 69648, "ENUM_VALUE11351": 69649, "ENUM_VALUE11352": 69650, "ENUM_VALUE11353": 69651, "ENUM_VALUE11354": 69652, "ENUM_VALUE11355": 69653, "ENUM_VALUE11356": 69654, "ENUM_VALUE11357": 69655, "ENUM_VALUE11358": 69656, "ENUM_VALUE11359": 69657, "ENUM_VALUE11360": 69658, "ENUM_VALUE11361": 69659, "ENUM_VALUE11362": 69660, "ENUM_VALUE11363": 69661, "ENUM_VALUE11364": 69662, "ENUM_VALUE11365": 73728, "ENUM_VALUE11366": 73729, "ENUM_VALUE11367": 77824, "ENUM_VALUE11368": 77825, "ENUM_VALUE11369": 81920, "ENUM_VALUE11370": 81921, "ENUM_VALUE11371": 81922, "ENUM_VALUE11372": 81923, "ENUM_VALUE11373": 86016, "ENUM_VALUE11374": 86017, "ENUM_VALUE11375": 86018, "ENUM_VALUE11376": 86019, "ENUM_VALUE11377": 86020, "ENUM_VALUE11378": 86021, "ENUM_VALUE11379": 86022, "ENUM_VALUE11380": 86023, "ENUM_VALUE11381": 86024, "ENUM_VALUE11382": 86025, "ENUM_VALUE11383": 86026, "ENUM_VALUE11384": 86027, "ENUM_VALUE11385": 86028, "ENUM_VALUE11386": 86029, "ENUM_VALUE11387": 86030, "ENUM_VALUE11388": 86031, "ENUM_VALUE11389": 86032, "ENUM_VALUE11390": 86033, "ENUM_VALUE11391": 86034, "ENUM_VALUE11392": 86035, "ENUM_VALUE11393": 86036, "ENUM_VALUE11394": 86037, "ENUM_VALUE11395": 86038, "ENUM_VALUE11396": 86039, "ENUM_VALUE11397": 86040, "ENUM_VALUE11398": 86041, "ENUM_VALUE11399": 86042, "ENUM_VALUE11400": 86043, "ENUM_VALUE11401": 86044, "ENUM_VALUE11402": 86045, "ENUM_VALUE11403": 86046, "ENUM_VALUE11404": 86047, "ENUM_VALUE11405": 86048, "ENUM_VALUE11406": 86049, "ENUM_VALUE11407": 86050, "ENUM_VALUE11408": 86051, "ENUM_VALUE11409": 86052, "ENUM_VALUE11410": 86053, "ENUM_VALUE11411": 86054, "ENUM_VALUE11412": 86055, "ENUM_VALUE11413": 86056, "ENUM_VALUE11414": 86057, "ENUM_VALUE11415": 86058, "ENUM_VALUE11416": 86059, "ENUM_VALUE11417": 86060, "ENUM_VALUE11418": 86061, "ENUM_VALUE11419": 86062, "ENUM_VALUE11420": 86063, "ENUM_VALUE11421": 86064, "ENUM_VALUE11422": 86065, "ENUM_VALUE11423": 86066, "ENUM_VALUE11424": 86067, "ENUM_VALUE11425": 86068, "ENUM_VALUE11426": 86069, "ENUM_VALUE11427": 86070, "ENUM_VALUE11428": 86071, "ENUM_VALUE11429": 86072, "ENUM_VALUE11430": 86073, "ENUM_VALUE11431": 86074, "ENUM_VALUE11432": 86077, "ENUM_VALUE11433": 86078, "ENUM_VALUE11434": 86079, "ENUM_VALUE11435": 86080, "ENUM_VALUE11436": 86081, "ENUM_VALUE11437": 86082, "ENUM_VALUE11438": 86083, "ENUM_VALUE11439": 86084, "ENUM_VALUE11440": 90112, "ENUM_VALUE11441": 94208, "ENUM_VALUE11442": 94209, "ENUM_VALUE11443": 94210, "ENUM_VALUE11444": 94211, "ENUM_VALUE11445": 94212, "ENUM_VALUE11446": 94213, "ENUM_VALUE11447": 94214, "ENUM_VALUE11448": 94215, "ENUM_VALUE11449": 94216, "ENUM_VALUE11450": 94217, "ENUM_VALUE11451": 94218, "ENUM_VALUE11452": 94219, "ENUM_VALUE11453": 94220, "ENUM_VALUE11454": 94221, "ENUM_VALUE11455": 94222, "ENUM_VALUE11456": 94223, "ENUM_VALUE11457": 94224, "ENUM_VALUE11458": 98304, "ENUM_VALUE11459": 98305, "ENUM_VALUE11460": 98306, "ENUM_VALUE11461": 98307, "ENUM_VALUE11462": 98308, "ENUM_VALUE11463": 102400, "ENUM_VALUE11464": 131072, "ENUM_VALUE11465": 131073, "ENUM_VALUE11466": 135168, "ENUM_VALUE11467": 9439507, } ) func (x Enum11107) Enum() *Enum11107 { p := new(Enum11107) *p = x return p } func (x Enum11107) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum11107) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[33].Descriptor() } func (Enum11107) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[33] } func (x Enum11107) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum11107) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum11107(num) return nil } // Deprecated: Use Enum11107.Descriptor instead. func (Enum11107) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{33} } type Enum11541 int32 const ( Enum11541_ENUM_VALUE11542 Enum11541 = -1 Enum11541_ENUM_VALUE11543 Enum11541 = 0 Enum11541_ENUM_VALUE11544 Enum11541 = 1 Enum11541_ENUM_VALUE11545 Enum11541 = 2 Enum11541_ENUM_VALUE11546 Enum11541 = 3 Enum11541_ENUM_VALUE11547 Enum11541 = 4 Enum11541_ENUM_VALUE11548 Enum11541 = 5 Enum11541_ENUM_VALUE11549 Enum11541 = 6 Enum11541_ENUM_VALUE11550 Enum11541 = 7 Enum11541_ENUM_VALUE11551 Enum11541 = 8 Enum11541_ENUM_VALUE11552 Enum11541 = 9 Enum11541_ENUM_VALUE11553 Enum11541 = 10 Enum11541_ENUM_VALUE11554 Enum11541 = 11 Enum11541_ENUM_VALUE11555 Enum11541 = 12 Enum11541_ENUM_VALUE11556 Enum11541 = 13 Enum11541_ENUM_VALUE11557 Enum11541 = 14 Enum11541_ENUM_VALUE11558 Enum11541 = 15 Enum11541_ENUM_VALUE11559 Enum11541 = 16 Enum11541_ENUM_VALUE11560 Enum11541 = 17 Enum11541_ENUM_VALUE11561 Enum11541 = 18 Enum11541_ENUM_VALUE11562 Enum11541 = 19 Enum11541_ENUM_VALUE11563 Enum11541 = 20 Enum11541_ENUM_VALUE11564 Enum11541 = 21 Enum11541_ENUM_VALUE11565 Enum11541 = 22 Enum11541_ENUM_VALUE11566 Enum11541 = 23 Enum11541_ENUM_VALUE11567 Enum11541 = 24 Enum11541_ENUM_VALUE11568 Enum11541 = 25 Enum11541_ENUM_VALUE11569 Enum11541 = 26 Enum11541_ENUM_VALUE11570 Enum11541 = 27 Enum11541_ENUM_VALUE11571 Enum11541 = 28 Enum11541_ENUM_VALUE11572 Enum11541 = 29 Enum11541_ENUM_VALUE11573 Enum11541 = 30 Enum11541_ENUM_VALUE11574 Enum11541 = 31 Enum11541_ENUM_VALUE11575 Enum11541 = 32 Enum11541_ENUM_VALUE11576 Enum11541 = 33 Enum11541_ENUM_VALUE11577 Enum11541 = 34 Enum11541_ENUM_VALUE11578 Enum11541 = 35 Enum11541_ENUM_VALUE11579 Enum11541 = 36 Enum11541_ENUM_VALUE11580 Enum11541 = 37 Enum11541_ENUM_VALUE11581 Enum11541 = 38 Enum11541_ENUM_VALUE11582 Enum11541 = 39 Enum11541_ENUM_VALUE11583 Enum11541 = 40 Enum11541_ENUM_VALUE11584 Enum11541 = 41 Enum11541_ENUM_VALUE11585 Enum11541 = 42 Enum11541_ENUM_VALUE11586 Enum11541 = 43 Enum11541_ENUM_VALUE11587 Enum11541 = 44 Enum11541_ENUM_VALUE11588 Enum11541 = 45 Enum11541_ENUM_VALUE11589 Enum11541 = 46 Enum11541_ENUM_VALUE11590 Enum11541 = 47 Enum11541_ENUM_VALUE11591 Enum11541 = 48 Enum11541_ENUM_VALUE11592 Enum11541 = 49 Enum11541_ENUM_VALUE11593 Enum11541 = 50 Enum11541_ENUM_VALUE11594 Enum11541 = 51 Enum11541_ENUM_VALUE11595 Enum11541 = 52 Enum11541_ENUM_VALUE11596 Enum11541 = 53 Enum11541_ENUM_VALUE11597 Enum11541 = 54 Enum11541_ENUM_VALUE11598 Enum11541 = 55 Enum11541_ENUM_VALUE11599 Enum11541 = 56 Enum11541_ENUM_VALUE11600 Enum11541 = 57 Enum11541_ENUM_VALUE11601 Enum11541 = 58 Enum11541_ENUM_VALUE11602 Enum11541 = 59 Enum11541_ENUM_VALUE11603 Enum11541 = 60 Enum11541_ENUM_VALUE11604 Enum11541 = 61 Enum11541_ENUM_VALUE11605 Enum11541 = 62 Enum11541_ENUM_VALUE11606 Enum11541 = 63 Enum11541_ENUM_VALUE11607 Enum11541 = 64 Enum11541_ENUM_VALUE11608 Enum11541 = 65 Enum11541_ENUM_VALUE11609 Enum11541 = 66 Enum11541_ENUM_VALUE11610 Enum11541 = 67 Enum11541_ENUM_VALUE11611 Enum11541 = 68 Enum11541_ENUM_VALUE11612 Enum11541 = 69 Enum11541_ENUM_VALUE11613 Enum11541 = 70 Enum11541_ENUM_VALUE11614 Enum11541 = 71 Enum11541_ENUM_VALUE11615 Enum11541 = 72 Enum11541_ENUM_VALUE11616 Enum11541 = 73 Enum11541_ENUM_VALUE11617 Enum11541 = 74 Enum11541_ENUM_VALUE11618 Enum11541 = 75 Enum11541_ENUM_VALUE11619 Enum11541 = 76 Enum11541_ENUM_VALUE11620 Enum11541 = 77 Enum11541_ENUM_VALUE11621 Enum11541 = 78 Enum11541_ENUM_VALUE11622 Enum11541 = 79 Enum11541_ENUM_VALUE11623 Enum11541 = 80 Enum11541_ENUM_VALUE11624 Enum11541 = 81 Enum11541_ENUM_VALUE11625 Enum11541 = 82 Enum11541_ENUM_VALUE11626 Enum11541 = 83 Enum11541_ENUM_VALUE11627 Enum11541 = 84 Enum11541_ENUM_VALUE11628 Enum11541 = 85 Enum11541_ENUM_VALUE11629 Enum11541 = 86 Enum11541_ENUM_VALUE11630 Enum11541 = 87 Enum11541_ENUM_VALUE11631 Enum11541 = 88 Enum11541_ENUM_VALUE11632 Enum11541 = 89 Enum11541_ENUM_VALUE11633 Enum11541 = 90 Enum11541_ENUM_VALUE11634 Enum11541 = 91 Enum11541_ENUM_VALUE11635 Enum11541 = 92 Enum11541_ENUM_VALUE11636 Enum11541 = 93 Enum11541_ENUM_VALUE11637 Enum11541 = 94 Enum11541_ENUM_VALUE11638 Enum11541 = 95 Enum11541_ENUM_VALUE11639 Enum11541 = 96 Enum11541_ENUM_VALUE11640 Enum11541 = 97 Enum11541_ENUM_VALUE11641 Enum11541 = 98 Enum11541_ENUM_VALUE11642 Enum11541 = 99 Enum11541_ENUM_VALUE11643 Enum11541 = 100 Enum11541_ENUM_VALUE11644 Enum11541 = 101 Enum11541_ENUM_VALUE11645 Enum11541 = 102 Enum11541_ENUM_VALUE11646 Enum11541 = 103 Enum11541_ENUM_VALUE11647 Enum11541 = 104 Enum11541_ENUM_VALUE11648 Enum11541 = 105 Enum11541_ENUM_VALUE11649 Enum11541 = 106 Enum11541_ENUM_VALUE11650 Enum11541 = 107 Enum11541_ENUM_VALUE11651 Enum11541 = 108 Enum11541_ENUM_VALUE11652 Enum11541 = 109 Enum11541_ENUM_VALUE11653 Enum11541 = 110 Enum11541_ENUM_VALUE11654 Enum11541 = 111 Enum11541_ENUM_VALUE11655 Enum11541 = 112 Enum11541_ENUM_VALUE11656 Enum11541 = 113 Enum11541_ENUM_VALUE11657 Enum11541 = 114 Enum11541_ENUM_VALUE11658 Enum11541 = 115 Enum11541_ENUM_VALUE11659 Enum11541 = 116 Enum11541_ENUM_VALUE11660 Enum11541 = 117 Enum11541_ENUM_VALUE11661 Enum11541 = 118 Enum11541_ENUM_VALUE11662 Enum11541 = 119 Enum11541_ENUM_VALUE11663 Enum11541 = 120 Enum11541_ENUM_VALUE11664 Enum11541 = 121 Enum11541_ENUM_VALUE11665 Enum11541 = 122 Enum11541_ENUM_VALUE11666 Enum11541 = 123 Enum11541_ENUM_VALUE11667 Enum11541 = 124 Enum11541_ENUM_VALUE11668 Enum11541 = 125 Enum11541_ENUM_VALUE11669 Enum11541 = 126 Enum11541_ENUM_VALUE11670 Enum11541 = 127 Enum11541_ENUM_VALUE11671 Enum11541 = 128 Enum11541_ENUM_VALUE11672 Enum11541 = 129 Enum11541_ENUM_VALUE11673 Enum11541 = 130 Enum11541_ENUM_VALUE11674 Enum11541 = 131 Enum11541_ENUM_VALUE11675 Enum11541 = 132 Enum11541_ENUM_VALUE11676 Enum11541 = 133 Enum11541_ENUM_VALUE11677 Enum11541 = 134 Enum11541_ENUM_VALUE11678 Enum11541 = 135 Enum11541_ENUM_VALUE11679 Enum11541 = 136 Enum11541_ENUM_VALUE11680 Enum11541 = 137 Enum11541_ENUM_VALUE11681 Enum11541 = 138 Enum11541_ENUM_VALUE11682 Enum11541 = 139 Enum11541_ENUM_VALUE11683 Enum11541 = 140 Enum11541_ENUM_VALUE11684 Enum11541 = 141 Enum11541_ENUM_VALUE11685 Enum11541 = 142 Enum11541_ENUM_VALUE11686 Enum11541 = 143 Enum11541_ENUM_VALUE11687 Enum11541 = 144 Enum11541_ENUM_VALUE11688 Enum11541 = 145 Enum11541_ENUM_VALUE11689 Enum11541 = 146 Enum11541_ENUM_VALUE11690 Enum11541 = 147 Enum11541_ENUM_VALUE11691 Enum11541 = 148 Enum11541_ENUM_VALUE11692 Enum11541 = 149 Enum11541_ENUM_VALUE11693 Enum11541 = 150 Enum11541_ENUM_VALUE11694 Enum11541 = 151 Enum11541_ENUM_VALUE11695 Enum11541 = 152 Enum11541_ENUM_VALUE11696 Enum11541 = 153 Enum11541_ENUM_VALUE11697 Enum11541 = 154 Enum11541_ENUM_VALUE11698 Enum11541 = 155 Enum11541_ENUM_VALUE11699 Enum11541 = 156 Enum11541_ENUM_VALUE11700 Enum11541 = 157 Enum11541_ENUM_VALUE11701 Enum11541 = 158 Enum11541_ENUM_VALUE11702 Enum11541 = 159 Enum11541_ENUM_VALUE11703 Enum11541 = 160 Enum11541_ENUM_VALUE11704 Enum11541 = 161 Enum11541_ENUM_VALUE11705 Enum11541 = 162 Enum11541_ENUM_VALUE11706 Enum11541 = 163 Enum11541_ENUM_VALUE11707 Enum11541 = 164 Enum11541_ENUM_VALUE11708 Enum11541 = 165 Enum11541_ENUM_VALUE11709 Enum11541 = 166 Enum11541_ENUM_VALUE11710 Enum11541 = 167 Enum11541_ENUM_VALUE11711 Enum11541 = 168 Enum11541_ENUM_VALUE11712 Enum11541 = 169 Enum11541_ENUM_VALUE11713 Enum11541 = 170 Enum11541_ENUM_VALUE11714 Enum11541 = 171 Enum11541_ENUM_VALUE11715 Enum11541 = 172 Enum11541_ENUM_VALUE11716 Enum11541 = 173 Enum11541_ENUM_VALUE11717 Enum11541 = 174 Enum11541_ENUM_VALUE11718 Enum11541 = 175 Enum11541_ENUM_VALUE11719 Enum11541 = 176 Enum11541_ENUM_VALUE11720 Enum11541 = 177 Enum11541_ENUM_VALUE11721 Enum11541 = 178 Enum11541_ENUM_VALUE11722 Enum11541 = 179 Enum11541_ENUM_VALUE11723 Enum11541 = 180 Enum11541_ENUM_VALUE11724 Enum11541 = 181 Enum11541_ENUM_VALUE11725 Enum11541 = 182 Enum11541_ENUM_VALUE11726 Enum11541 = 183 Enum11541_ENUM_VALUE11727 Enum11541 = 184 Enum11541_ENUM_VALUE11728 Enum11541 = 185 Enum11541_ENUM_VALUE11729 Enum11541 = 186 Enum11541_ENUM_VALUE11730 Enum11541 = 187 Enum11541_ENUM_VALUE11731 Enum11541 = 188 Enum11541_ENUM_VALUE11732 Enum11541 = 16777215 ) // Enum value maps for Enum11541. var ( Enum11541_name = map[int32]string{ -1: "ENUM_VALUE11542", 0: "ENUM_VALUE11543", 1: "ENUM_VALUE11544", 2: "ENUM_VALUE11545", 3: "ENUM_VALUE11546", 4: "ENUM_VALUE11547", 5: "ENUM_VALUE11548", 6: "ENUM_VALUE11549", 7: "ENUM_VALUE11550", 8: "ENUM_VALUE11551", 9: "ENUM_VALUE11552", 10: "ENUM_VALUE11553", 11: "ENUM_VALUE11554", 12: "ENUM_VALUE11555", 13: "ENUM_VALUE11556", 14: "ENUM_VALUE11557", 15: "ENUM_VALUE11558", 16: "ENUM_VALUE11559", 17: "ENUM_VALUE11560", 18: "ENUM_VALUE11561", 19: "ENUM_VALUE11562", 20: "ENUM_VALUE11563", 21: "ENUM_VALUE11564", 22: "ENUM_VALUE11565", 23: "ENUM_VALUE11566", 24: "ENUM_VALUE11567", 25: "ENUM_VALUE11568", 26: "ENUM_VALUE11569", 27: "ENUM_VALUE11570", 28: "ENUM_VALUE11571", 29: "ENUM_VALUE11572", 30: "ENUM_VALUE11573", 31: "ENUM_VALUE11574", 32: "ENUM_VALUE11575", 33: "ENUM_VALUE11576", 34: "ENUM_VALUE11577", 35: "ENUM_VALUE11578", 36: "ENUM_VALUE11579", 37: "ENUM_VALUE11580", 38: "ENUM_VALUE11581", 39: "ENUM_VALUE11582", 40: "ENUM_VALUE11583", 41: "ENUM_VALUE11584", 42: "ENUM_VALUE11585", 43: "ENUM_VALUE11586", 44: "ENUM_VALUE11587", 45: "ENUM_VALUE11588", 46: "ENUM_VALUE11589", 47: "ENUM_VALUE11590", 48: "ENUM_VALUE11591", 49: "ENUM_VALUE11592", 50: "ENUM_VALUE11593", 51: "ENUM_VALUE11594", 52: "ENUM_VALUE11595", 53: "ENUM_VALUE11596", 54: "ENUM_VALUE11597", 55: "ENUM_VALUE11598", 56: "ENUM_VALUE11599", 57: "ENUM_VALUE11600", 58: "ENUM_VALUE11601", 59: "ENUM_VALUE11602", 60: "ENUM_VALUE11603", 61: "ENUM_VALUE11604", 62: "ENUM_VALUE11605", 63: "ENUM_VALUE11606", 64: "ENUM_VALUE11607", 65: "ENUM_VALUE11608", 66: "ENUM_VALUE11609", 67: "ENUM_VALUE11610", 68: "ENUM_VALUE11611", 69: "ENUM_VALUE11612", 70: "ENUM_VALUE11613", 71: "ENUM_VALUE11614", 72: "ENUM_VALUE11615", 73: "ENUM_VALUE11616", 74: "ENUM_VALUE11617", 75: "ENUM_VALUE11618", 76: "ENUM_VALUE11619", 77: "ENUM_VALUE11620", 78: "ENUM_VALUE11621", 79: "ENUM_VALUE11622", 80: "ENUM_VALUE11623", 81: "ENUM_VALUE11624", 82: "ENUM_VALUE11625", 83: "ENUM_VALUE11626", 84: "ENUM_VALUE11627", 85: "ENUM_VALUE11628", 86: "ENUM_VALUE11629", 87: "ENUM_VALUE11630", 88: "ENUM_VALUE11631", 89: "ENUM_VALUE11632", 90: "ENUM_VALUE11633", 91: "ENUM_VALUE11634", 92: "ENUM_VALUE11635", 93: "ENUM_VALUE11636", 94: "ENUM_VALUE11637", 95: "ENUM_VALUE11638", 96: "ENUM_VALUE11639", 97: "ENUM_VALUE11640", 98: "ENUM_VALUE11641", 99: "ENUM_VALUE11642", 100: "ENUM_VALUE11643", 101: "ENUM_VALUE11644", 102: "ENUM_VALUE11645", 103: "ENUM_VALUE11646", 104: "ENUM_VALUE11647", 105: "ENUM_VALUE11648", 106: "ENUM_VALUE11649", 107: "ENUM_VALUE11650", 108: "ENUM_VALUE11651", 109: "ENUM_VALUE11652", 110: "ENUM_VALUE11653", 111: "ENUM_VALUE11654", 112: "ENUM_VALUE11655", 113: "ENUM_VALUE11656", 114: "ENUM_VALUE11657", 115: "ENUM_VALUE11658", 116: "ENUM_VALUE11659", 117: "ENUM_VALUE11660", 118: "ENUM_VALUE11661", 119: "ENUM_VALUE11662", 120: "ENUM_VALUE11663", 121: "ENUM_VALUE11664", 122: "ENUM_VALUE11665", 123: "ENUM_VALUE11666", 124: "ENUM_VALUE11667", 125: "ENUM_VALUE11668", 126: "ENUM_VALUE11669", 127: "ENUM_VALUE11670", 128: "ENUM_VALUE11671", 129: "ENUM_VALUE11672", 130: "ENUM_VALUE11673", 131: "ENUM_VALUE11674", 132: "ENUM_VALUE11675", 133: "ENUM_VALUE11676", 134: "ENUM_VALUE11677", 135: "ENUM_VALUE11678", 136: "ENUM_VALUE11679", 137: "ENUM_VALUE11680", 138: "ENUM_VALUE11681", 139: "ENUM_VALUE11682", 140: "ENUM_VALUE11683", 141: "ENUM_VALUE11684", 142: "ENUM_VALUE11685", 143: "ENUM_VALUE11686", 144: "ENUM_VALUE11687", 145: "ENUM_VALUE11688", 146: "ENUM_VALUE11689", 147: "ENUM_VALUE11690", 148: "ENUM_VALUE11691", 149: "ENUM_VALUE11692", 150: "ENUM_VALUE11693", 151: "ENUM_VALUE11694", 152: "ENUM_VALUE11695", 153: "ENUM_VALUE11696", 154: "ENUM_VALUE11697", 155: "ENUM_VALUE11698", 156: "ENUM_VALUE11699", 157: "ENUM_VALUE11700", 158: "ENUM_VALUE11701", 159: "ENUM_VALUE11702", 160: "ENUM_VALUE11703", 161: "ENUM_VALUE11704", 162: "ENUM_VALUE11705", 163: "ENUM_VALUE11706", 164: "ENUM_VALUE11707", 165: "ENUM_VALUE11708", 166: "ENUM_VALUE11709", 167: "ENUM_VALUE11710", 168: "ENUM_VALUE11711", 169: "ENUM_VALUE11712", 170: "ENUM_VALUE11713", 171: "ENUM_VALUE11714", 172: "ENUM_VALUE11715", 173: "ENUM_VALUE11716", 174: "ENUM_VALUE11717", 175: "ENUM_VALUE11718", 176: "ENUM_VALUE11719", 177: "ENUM_VALUE11720", 178: "ENUM_VALUE11721", 179: "ENUM_VALUE11722", 180: "ENUM_VALUE11723", 181: "ENUM_VALUE11724", 182: "ENUM_VALUE11725", 183: "ENUM_VALUE11726", 184: "ENUM_VALUE11727", 185: "ENUM_VALUE11728", 186: "ENUM_VALUE11729", 187: "ENUM_VALUE11730", 188: "ENUM_VALUE11731", 16777215: "ENUM_VALUE11732", } Enum11541_value = map[string]int32{ "ENUM_VALUE11542": -1, "ENUM_VALUE11543": 0, "ENUM_VALUE11544": 1, "ENUM_VALUE11545": 2, "ENUM_VALUE11546": 3, "ENUM_VALUE11547": 4, "ENUM_VALUE11548": 5, "ENUM_VALUE11549": 6, "ENUM_VALUE11550": 7, "ENUM_VALUE11551": 8, "ENUM_VALUE11552": 9, "ENUM_VALUE11553": 10, "ENUM_VALUE11554": 11, "ENUM_VALUE11555": 12, "ENUM_VALUE11556": 13, "ENUM_VALUE11557": 14, "ENUM_VALUE11558": 15, "ENUM_VALUE11559": 16, "ENUM_VALUE11560": 17, "ENUM_VALUE11561": 18, "ENUM_VALUE11562": 19, "ENUM_VALUE11563": 20, "ENUM_VALUE11564": 21, "ENUM_VALUE11565": 22, "ENUM_VALUE11566": 23, "ENUM_VALUE11567": 24, "ENUM_VALUE11568": 25, "ENUM_VALUE11569": 26, "ENUM_VALUE11570": 27, "ENUM_VALUE11571": 28, "ENUM_VALUE11572": 29, "ENUM_VALUE11573": 30, "ENUM_VALUE11574": 31, "ENUM_VALUE11575": 32, "ENUM_VALUE11576": 33, "ENUM_VALUE11577": 34, "ENUM_VALUE11578": 35, "ENUM_VALUE11579": 36, "ENUM_VALUE11580": 37, "ENUM_VALUE11581": 38, "ENUM_VALUE11582": 39, "ENUM_VALUE11583": 40, "ENUM_VALUE11584": 41, "ENUM_VALUE11585": 42, "ENUM_VALUE11586": 43, "ENUM_VALUE11587": 44, "ENUM_VALUE11588": 45, "ENUM_VALUE11589": 46, "ENUM_VALUE11590": 47, "ENUM_VALUE11591": 48, "ENUM_VALUE11592": 49, "ENUM_VALUE11593": 50, "ENUM_VALUE11594": 51, "ENUM_VALUE11595": 52, "ENUM_VALUE11596": 53, "ENUM_VALUE11597": 54, "ENUM_VALUE11598": 55, "ENUM_VALUE11599": 56, "ENUM_VALUE11600": 57, "ENUM_VALUE11601": 58, "ENUM_VALUE11602": 59, "ENUM_VALUE11603": 60, "ENUM_VALUE11604": 61, "ENUM_VALUE11605": 62, "ENUM_VALUE11606": 63, "ENUM_VALUE11607": 64, "ENUM_VALUE11608": 65, "ENUM_VALUE11609": 66, "ENUM_VALUE11610": 67, "ENUM_VALUE11611": 68, "ENUM_VALUE11612": 69, "ENUM_VALUE11613": 70, "ENUM_VALUE11614": 71, "ENUM_VALUE11615": 72, "ENUM_VALUE11616": 73, "ENUM_VALUE11617": 74, "ENUM_VALUE11618": 75, "ENUM_VALUE11619": 76, "ENUM_VALUE11620": 77, "ENUM_VALUE11621": 78, "ENUM_VALUE11622": 79, "ENUM_VALUE11623": 80, "ENUM_VALUE11624": 81, "ENUM_VALUE11625": 82, "ENUM_VALUE11626": 83, "ENUM_VALUE11627": 84, "ENUM_VALUE11628": 85, "ENUM_VALUE11629": 86, "ENUM_VALUE11630": 87, "ENUM_VALUE11631": 88, "ENUM_VALUE11632": 89, "ENUM_VALUE11633": 90, "ENUM_VALUE11634": 91, "ENUM_VALUE11635": 92, "ENUM_VALUE11636": 93, "ENUM_VALUE11637": 94, "ENUM_VALUE11638": 95, "ENUM_VALUE11639": 96, "ENUM_VALUE11640": 97, "ENUM_VALUE11641": 98, "ENUM_VALUE11642": 99, "ENUM_VALUE11643": 100, "ENUM_VALUE11644": 101, "ENUM_VALUE11645": 102, "ENUM_VALUE11646": 103, "ENUM_VALUE11647": 104, "ENUM_VALUE11648": 105, "ENUM_VALUE11649": 106, "ENUM_VALUE11650": 107, "ENUM_VALUE11651": 108, "ENUM_VALUE11652": 109, "ENUM_VALUE11653": 110, "ENUM_VALUE11654": 111, "ENUM_VALUE11655": 112, "ENUM_VALUE11656": 113, "ENUM_VALUE11657": 114, "ENUM_VALUE11658": 115, "ENUM_VALUE11659": 116, "ENUM_VALUE11660": 117, "ENUM_VALUE11661": 118, "ENUM_VALUE11662": 119, "ENUM_VALUE11663": 120, "ENUM_VALUE11664": 121, "ENUM_VALUE11665": 122, "ENUM_VALUE11666": 123, "ENUM_VALUE11667": 124, "ENUM_VALUE11668": 125, "ENUM_VALUE11669": 126, "ENUM_VALUE11670": 127, "ENUM_VALUE11671": 128, "ENUM_VALUE11672": 129, "ENUM_VALUE11673": 130, "ENUM_VALUE11674": 131, "ENUM_VALUE11675": 132, "ENUM_VALUE11676": 133, "ENUM_VALUE11677": 134, "ENUM_VALUE11678": 135, "ENUM_VALUE11679": 136, "ENUM_VALUE11680": 137, "ENUM_VALUE11681": 138, "ENUM_VALUE11682": 139, "ENUM_VALUE11683": 140, "ENUM_VALUE11684": 141, "ENUM_VALUE11685": 142, "ENUM_VALUE11686": 143, "ENUM_VALUE11687": 144, "ENUM_VALUE11688": 145, "ENUM_VALUE11689": 146, "ENUM_VALUE11690": 147, "ENUM_VALUE11691": 148, "ENUM_VALUE11692": 149, "ENUM_VALUE11693": 150, "ENUM_VALUE11694": 151, "ENUM_VALUE11695": 152, "ENUM_VALUE11696": 153, "ENUM_VALUE11697": 154, "ENUM_VALUE11698": 155, "ENUM_VALUE11699": 156, "ENUM_VALUE11700": 157, "ENUM_VALUE11701": 158, "ENUM_VALUE11702": 159, "ENUM_VALUE11703": 160, "ENUM_VALUE11704": 161, "ENUM_VALUE11705": 162, "ENUM_VALUE11706": 163, "ENUM_VALUE11707": 164, "ENUM_VALUE11708": 165, "ENUM_VALUE11709": 166, "ENUM_VALUE11710": 167, "ENUM_VALUE11711": 168, "ENUM_VALUE11712": 169, "ENUM_VALUE11713": 170, "ENUM_VALUE11714": 171, "ENUM_VALUE11715": 172, "ENUM_VALUE11716": 173, "ENUM_VALUE11717": 174, "ENUM_VALUE11718": 175, "ENUM_VALUE11719": 176, "ENUM_VALUE11720": 177, "ENUM_VALUE11721": 178, "ENUM_VALUE11722": 179, "ENUM_VALUE11723": 180, "ENUM_VALUE11724": 181, "ENUM_VALUE11725": 182, "ENUM_VALUE11726": 183, "ENUM_VALUE11727": 184, "ENUM_VALUE11728": 185, "ENUM_VALUE11729": 186, "ENUM_VALUE11730": 187, "ENUM_VALUE11731": 188, "ENUM_VALUE11732": 16777215, } ) func (x Enum11541) Enum() *Enum11541 { p := new(Enum11541) *p = x return p } func (x Enum11541) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum11541) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[34].Descriptor() } func (Enum11541) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[34] } func (x Enum11541) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum11541) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum11541(num) return nil } // Deprecated: Use Enum11541.Descriptor instead. func (Enum11541) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{34} } type Enum11468 int32 const ( Enum11468_ENUM_VALUE11469 Enum11468 = -99 Enum11468_ENUM_VALUE11470 Enum11468 = 0 Enum11468_ENUM_VALUE11471 Enum11468 = 1 Enum11468_ENUM_VALUE11472 Enum11468 = 2 Enum11468_ENUM_VALUE11473 Enum11468 = 3 Enum11468_ENUM_VALUE11474 Enum11468 = 4 Enum11468_ENUM_VALUE11475 Enum11468 = 28 Enum11468_ENUM_VALUE11476 Enum11468 = 22 Enum11468_ENUM_VALUE11477 Enum11468 = 38 Enum11468_ENUM_VALUE11478 Enum11468 = 512 Enum11468_ENUM_VALUE11479 Enum11468 = 2048 Enum11468_ENUM_VALUE11480 Enum11468 = 66 Enum11468_ENUM_VALUE11481 Enum11468 = 578 Enum11468_ENUM_VALUE11482 Enum11468 = 77 Enum11468_ENUM_VALUE11483 Enum11468 = 88 Enum11468_ENUM_VALUE11484 Enum11468 = 100 Enum11468_ENUM_VALUE11485 Enum11468 = 110 Enum11468_ENUM_VALUE11486 Enum11468 = 2158 Enum11468_ENUM_VALUE11487 Enum11468 = 122 Enum11468_ENUM_VALUE11488 Enum11468 = 2170 Enum11468_ENUM_VALUE11489 Enum11468 = 144 Enum11468_ENUM_VALUE11490 Enum11468 = 244 Enum11468_ENUM_VALUE11491 Enum11468 = 2292 Enum11468_ENUM_VALUE11492 Enum11468 = 44 ) // Enum value maps for Enum11468. var ( Enum11468_name = map[int32]string{ -99: "ENUM_VALUE11469", 0: "ENUM_VALUE11470", 1: "ENUM_VALUE11471", 2: "ENUM_VALUE11472", 3: "ENUM_VALUE11473", 4: "ENUM_VALUE11474", 28: "ENUM_VALUE11475", 22: "ENUM_VALUE11476", 38: "ENUM_VALUE11477", 512: "ENUM_VALUE11478", 2048: "ENUM_VALUE11479", 66: "ENUM_VALUE11480", 578: "ENUM_VALUE11481", 77: "ENUM_VALUE11482", 88: "ENUM_VALUE11483", 100: "ENUM_VALUE11484", 110: "ENUM_VALUE11485", 2158: "ENUM_VALUE11486", 122: "ENUM_VALUE11487", 2170: "ENUM_VALUE11488", 144: "ENUM_VALUE11489", 244: "ENUM_VALUE11490", 2292: "ENUM_VALUE11491", 44: "ENUM_VALUE11492", } Enum11468_value = map[string]int32{ "ENUM_VALUE11469": -99, "ENUM_VALUE11470": 0, "ENUM_VALUE11471": 1, "ENUM_VALUE11472": 2, "ENUM_VALUE11473": 3, "ENUM_VALUE11474": 4, "ENUM_VALUE11475": 28, "ENUM_VALUE11476": 22, "ENUM_VALUE11477": 38, "ENUM_VALUE11478": 512, "ENUM_VALUE11479": 2048, "ENUM_VALUE11480": 66, "ENUM_VALUE11481": 578, "ENUM_VALUE11482": 77, "ENUM_VALUE11483": 88, "ENUM_VALUE11484": 100, "ENUM_VALUE11485": 110, "ENUM_VALUE11486": 2158, "ENUM_VALUE11487": 122, "ENUM_VALUE11488": 2170, "ENUM_VALUE11489": 144, "ENUM_VALUE11490": 244, "ENUM_VALUE11491": 2292, "ENUM_VALUE11492": 44, } ) func (x Enum11468) Enum() *Enum11468 { p := new(Enum11468) *p = x return p } func (x Enum11468) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum11468) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[35].Descriptor() } func (Enum11468) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[35] } func (x Enum11468) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum11468) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum11468(num) return nil } // Deprecated: Use Enum11468.Descriptor instead. func (Enum11468) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{35} } type Enum11022 int32 const ( Enum11022_ENUM_VALUE11023 Enum11022 = 0 Enum11022_ENUM_VALUE11024 Enum11022 = 1 Enum11022_ENUM_VALUE11025 Enum11022 = 2 Enum11022_ENUM_VALUE11026 Enum11022 = 3 Enum11022_ENUM_VALUE11027 Enum11022 = 4 Enum11022_ENUM_VALUE11028 Enum11022 = 5 Enum11022_ENUM_VALUE11029 Enum11022 = 6 Enum11022_ENUM_VALUE11030 Enum11022 = 7 Enum11022_ENUM_VALUE11031 Enum11022 = 8 Enum11022_ENUM_VALUE11032 Enum11022 = 9 Enum11022_ENUM_VALUE11033 Enum11022 = 10 Enum11022_ENUM_VALUE11034 Enum11022 = 11 Enum11022_ENUM_VALUE11035 Enum11022 = 12 Enum11022_ENUM_VALUE11036 Enum11022 = 13 Enum11022_ENUM_VALUE11037 Enum11022 = 14 Enum11022_ENUM_VALUE11038 Enum11022 = 15 Enum11022_ENUM_VALUE11039 Enum11022 = 16 Enum11022_ENUM_VALUE11040 Enum11022 = 17 Enum11022_ENUM_VALUE11041 Enum11022 = 18 Enum11022_ENUM_VALUE11042 Enum11022 = 19 Enum11022_ENUM_VALUE11043 Enum11022 = 20 Enum11022_ENUM_VALUE11044 Enum11022 = 21 Enum11022_ENUM_VALUE11045 Enum11022 = 22 Enum11022_ENUM_VALUE11046 Enum11022 = 23 Enum11022_ENUM_VALUE11047 Enum11022 = 24 Enum11022_ENUM_VALUE11048 Enum11022 = 25 Enum11022_ENUM_VALUE11049 Enum11022 = 26 Enum11022_ENUM_VALUE11050 Enum11022 = 27 Enum11022_ENUM_VALUE11051 Enum11022 = 28 Enum11022_ENUM_VALUE11052 Enum11022 = 29 Enum11022_ENUM_VALUE11053 Enum11022 = 30 Enum11022_ENUM_VALUE11054 Enum11022 = 31 Enum11022_ENUM_VALUE11055 Enum11022 = 32 Enum11022_ENUM_VALUE11056 Enum11022 = 33 Enum11022_ENUM_VALUE11057 Enum11022 = 34 Enum11022_ENUM_VALUE11058 Enum11022 = 35 Enum11022_ENUM_VALUE11059 Enum11022 = 36 Enum11022_ENUM_VALUE11060 Enum11022 = 37 Enum11022_ENUM_VALUE11061 Enum11022 = 38 Enum11022_ENUM_VALUE11062 Enum11022 = 39 Enum11022_ENUM_VALUE11063 Enum11022 = 40 Enum11022_ENUM_VALUE11064 Enum11022 = 41 Enum11022_ENUM_VALUE11065 Enum11022 = 42 Enum11022_ENUM_VALUE11066 Enum11022 = 43 Enum11022_ENUM_VALUE11067 Enum11022 = 44 Enum11022_ENUM_VALUE11068 Enum11022 = 45 Enum11022_ENUM_VALUE11069 Enum11022 = 46 Enum11022_ENUM_VALUE11070 Enum11022 = 47 Enum11022_ENUM_VALUE11071 Enum11022 = 48 Enum11022_ENUM_VALUE11072 Enum11022 = 49 Enum11022_ENUM_VALUE11073 Enum11022 = 50 Enum11022_ENUM_VALUE11074 Enum11022 = 51 Enum11022_ENUM_VALUE11075 Enum11022 = 52 Enum11022_ENUM_VALUE11076 Enum11022 = 53 Enum11022_ENUM_VALUE11077 Enum11022 = 54 Enum11022_ENUM_VALUE11078 Enum11022 = 55 Enum11022_ENUM_VALUE11079 Enum11022 = 56 Enum11022_ENUM_VALUE11080 Enum11022 = 57 Enum11022_ENUM_VALUE11081 Enum11022 = 58 Enum11022_ENUM_VALUE11082 Enum11022 = 59 Enum11022_ENUM_VALUE11083 Enum11022 = 60 Enum11022_ENUM_VALUE11084 Enum11022 = 61 Enum11022_ENUM_VALUE11085 Enum11022 = 62 Enum11022_ENUM_VALUE11086 Enum11022 = 63 Enum11022_ENUM_VALUE11087 Enum11022 = 64 Enum11022_ENUM_VALUE11088 Enum11022 = 65 Enum11022_ENUM_VALUE11089 Enum11022 = 66 Enum11022_ENUM_VALUE11090 Enum11022 = 67 Enum11022_ENUM_VALUE11091 Enum11022 = 68 Enum11022_ENUM_VALUE11092 Enum11022 = 69 Enum11022_ENUM_VALUE11093 Enum11022 = 70 Enum11022_ENUM_VALUE11094 Enum11022 = 71 Enum11022_ENUM_VALUE11095 Enum11022 = 72 Enum11022_ENUM_VALUE11096 Enum11022 = 73 Enum11022_ENUM_VALUE11097 Enum11022 = 74 Enum11022_ENUM_VALUE11098 Enum11022 = 75 Enum11022_ENUM_VALUE11099 Enum11022 = 76 Enum11022_ENUM_VALUE11100 Enum11022 = 77 Enum11022_ENUM_VALUE11101 Enum11022 = 78 Enum11022_ENUM_VALUE11102 Enum11022 = 79 Enum11022_ENUM_VALUE11103 Enum11022 = 80 Enum11022_ENUM_VALUE11104 Enum11022 = 81 Enum11022_ENUM_VALUE11105 Enum11022 = 82 Enum11022_ENUM_VALUE11106 Enum11022 = 83 ) // Enum value maps for Enum11022. var ( Enum11022_name = map[int32]string{ 0: "ENUM_VALUE11023", 1: "ENUM_VALUE11024", 2: "ENUM_VALUE11025", 3: "ENUM_VALUE11026", 4: "ENUM_VALUE11027", 5: "ENUM_VALUE11028", 6: "ENUM_VALUE11029", 7: "ENUM_VALUE11030", 8: "ENUM_VALUE11031", 9: "ENUM_VALUE11032", 10: "ENUM_VALUE11033", 11: "ENUM_VALUE11034", 12: "ENUM_VALUE11035", 13: "ENUM_VALUE11036", 14: "ENUM_VALUE11037", 15: "ENUM_VALUE11038", 16: "ENUM_VALUE11039", 17: "ENUM_VALUE11040", 18: "ENUM_VALUE11041", 19: "ENUM_VALUE11042", 20: "ENUM_VALUE11043", 21: "ENUM_VALUE11044", 22: "ENUM_VALUE11045", 23: "ENUM_VALUE11046", 24: "ENUM_VALUE11047", 25: "ENUM_VALUE11048", 26: "ENUM_VALUE11049", 27: "ENUM_VALUE11050", 28: "ENUM_VALUE11051", 29: "ENUM_VALUE11052", 30: "ENUM_VALUE11053", 31: "ENUM_VALUE11054", 32: "ENUM_VALUE11055", 33: "ENUM_VALUE11056", 34: "ENUM_VALUE11057", 35: "ENUM_VALUE11058", 36: "ENUM_VALUE11059", 37: "ENUM_VALUE11060", 38: "ENUM_VALUE11061", 39: "ENUM_VALUE11062", 40: "ENUM_VALUE11063", 41: "ENUM_VALUE11064", 42: "ENUM_VALUE11065", 43: "ENUM_VALUE11066", 44: "ENUM_VALUE11067", 45: "ENUM_VALUE11068", 46: "ENUM_VALUE11069", 47: "ENUM_VALUE11070", 48: "ENUM_VALUE11071", 49: "ENUM_VALUE11072", 50: "ENUM_VALUE11073", 51: "ENUM_VALUE11074", 52: "ENUM_VALUE11075", 53: "ENUM_VALUE11076", 54: "ENUM_VALUE11077", 55: "ENUM_VALUE11078", 56: "ENUM_VALUE11079", 57: "ENUM_VALUE11080", 58: "ENUM_VALUE11081", 59: "ENUM_VALUE11082", 60: "ENUM_VALUE11083", 61: "ENUM_VALUE11084", 62: "ENUM_VALUE11085", 63: "ENUM_VALUE11086", 64: "ENUM_VALUE11087", 65: "ENUM_VALUE11088", 66: "ENUM_VALUE11089", 67: "ENUM_VALUE11090", 68: "ENUM_VALUE11091", 69: "ENUM_VALUE11092", 70: "ENUM_VALUE11093", 71: "ENUM_VALUE11094", 72: "ENUM_VALUE11095", 73: "ENUM_VALUE11096", 74: "ENUM_VALUE11097", 75: "ENUM_VALUE11098", 76: "ENUM_VALUE11099", 77: "ENUM_VALUE11100", 78: "ENUM_VALUE11101", 79: "ENUM_VALUE11102", 80: "ENUM_VALUE11103", 81: "ENUM_VALUE11104", 82: "ENUM_VALUE11105", 83: "ENUM_VALUE11106", } Enum11022_value = map[string]int32{ "ENUM_VALUE11023": 0, "ENUM_VALUE11024": 1, "ENUM_VALUE11025": 2, "ENUM_VALUE11026": 3, "ENUM_VALUE11027": 4, "ENUM_VALUE11028": 5, "ENUM_VALUE11029": 6, "ENUM_VALUE11030": 7, "ENUM_VALUE11031": 8, "ENUM_VALUE11032": 9, "ENUM_VALUE11033": 10, "ENUM_VALUE11034": 11, "ENUM_VALUE11035": 12, "ENUM_VALUE11036": 13, "ENUM_VALUE11037": 14, "ENUM_VALUE11038": 15, "ENUM_VALUE11039": 16, "ENUM_VALUE11040": 17, "ENUM_VALUE11041": 18, "ENUM_VALUE11042": 19, "ENUM_VALUE11043": 20, "ENUM_VALUE11044": 21, "ENUM_VALUE11045": 22, "ENUM_VALUE11046": 23, "ENUM_VALUE11047": 24, "ENUM_VALUE11048": 25, "ENUM_VALUE11049": 26, "ENUM_VALUE11050": 27, "ENUM_VALUE11051": 28, "ENUM_VALUE11052": 29, "ENUM_VALUE11053": 30, "ENUM_VALUE11054": 31, "ENUM_VALUE11055": 32, "ENUM_VALUE11056": 33, "ENUM_VALUE11057": 34, "ENUM_VALUE11058": 35, "ENUM_VALUE11059": 36, "ENUM_VALUE11060": 37, "ENUM_VALUE11061": 38, "ENUM_VALUE11062": 39, "ENUM_VALUE11063": 40, "ENUM_VALUE11064": 41, "ENUM_VALUE11065": 42, "ENUM_VALUE11066": 43, "ENUM_VALUE11067": 44, "ENUM_VALUE11068": 45, "ENUM_VALUE11069": 46, "ENUM_VALUE11070": 47, "ENUM_VALUE11071": 48, "ENUM_VALUE11072": 49, "ENUM_VALUE11073": 50, "ENUM_VALUE11074": 51, "ENUM_VALUE11075": 52, "ENUM_VALUE11076": 53, "ENUM_VALUE11077": 54, "ENUM_VALUE11078": 55, "ENUM_VALUE11079": 56, "ENUM_VALUE11080": 57, "ENUM_VALUE11081": 58, "ENUM_VALUE11082": 59, "ENUM_VALUE11083": 60, "ENUM_VALUE11084": 61, "ENUM_VALUE11085": 62, "ENUM_VALUE11086": 63, "ENUM_VALUE11087": 64, "ENUM_VALUE11088": 65, "ENUM_VALUE11089": 66, "ENUM_VALUE11090": 67, "ENUM_VALUE11091": 68, "ENUM_VALUE11092": 69, "ENUM_VALUE11093": 70, "ENUM_VALUE11094": 71, "ENUM_VALUE11095": 72, "ENUM_VALUE11096": 73, "ENUM_VALUE11097": 74, "ENUM_VALUE11098": 75, "ENUM_VALUE11099": 76, "ENUM_VALUE11100": 77, "ENUM_VALUE11101": 78, "ENUM_VALUE11102": 79, "ENUM_VALUE11103": 80, "ENUM_VALUE11104": 81, "ENUM_VALUE11105": 82, "ENUM_VALUE11106": 83, } ) func (x Enum11022) Enum() *Enum11022 { p := new(Enum11022) *p = x return p } func (x Enum11022) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum11022) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[36].Descriptor() } func (Enum11022) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[36] } func (x Enum11022) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum11022) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum11022(num) return nil } // Deprecated: Use Enum11022.Descriptor instead. func (Enum11022) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{36} } type Enum12670 int32 const ( Enum12670_ENUM_VALUE12671 Enum12670 = 0 Enum12670_ENUM_VALUE12672 Enum12670 = 1 Enum12670_ENUM_VALUE12673 Enum12670 = 2 ) // Enum value maps for Enum12670. var ( Enum12670_name = map[int32]string{ 0: "ENUM_VALUE12671", 1: "ENUM_VALUE12672", 2: "ENUM_VALUE12673", } Enum12670_value = map[string]int32{ "ENUM_VALUE12671": 0, "ENUM_VALUE12672": 1, "ENUM_VALUE12673": 2, } ) func (x Enum12670) Enum() *Enum12670 { p := new(Enum12670) *p = x return p } func (x Enum12670) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum12670) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[37].Descriptor() } func (Enum12670) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[37] } func (x Enum12670) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum12670) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum12670(num) return nil } // Deprecated: Use Enum12670.Descriptor instead. func (Enum12670) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{37} } type Enum12871 int32 const ( Enum12871_ENUM_VALUE12872 Enum12871 = 1 Enum12871_ENUM_VALUE12873 Enum12871 = 2 Enum12871_ENUM_VALUE12874 Enum12871 = 3 Enum12871_ENUM_VALUE12875 Enum12871 = 4 Enum12871_ENUM_VALUE12876 Enum12871 = 5 Enum12871_ENUM_VALUE12877 Enum12871 = 6 ) // Enum value maps for Enum12871. var ( Enum12871_name = map[int32]string{ 1: "ENUM_VALUE12872", 2: "ENUM_VALUE12873", 3: "ENUM_VALUE12874", 4: "ENUM_VALUE12875", 5: "ENUM_VALUE12876", 6: "ENUM_VALUE12877", } Enum12871_value = map[string]int32{ "ENUM_VALUE12872": 1, "ENUM_VALUE12873": 2, "ENUM_VALUE12874": 3, "ENUM_VALUE12875": 4, "ENUM_VALUE12876": 5, "ENUM_VALUE12877": 6, } ) func (x Enum12871) Enum() *Enum12871 { p := new(Enum12871) *p = x return p } func (x Enum12871) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum12871) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[38].Descriptor() } func (Enum12871) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[38] } func (x Enum12871) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum12871) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum12871(num) return nil } // Deprecated: Use Enum12871.Descriptor instead. func (Enum12871) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{38} } type Enum13092 int32 const ( Enum13092_ENUM_VALUE13093 Enum13092 = 1 Enum13092_ENUM_VALUE13094 Enum13092 = 2 Enum13092_ENUM_VALUE13095 Enum13092 = 3 ) // Enum value maps for Enum13092. var ( Enum13092_name = map[int32]string{ 1: "ENUM_VALUE13093", 2: "ENUM_VALUE13094", 3: "ENUM_VALUE13095", } Enum13092_value = map[string]int32{ "ENUM_VALUE13093": 1, "ENUM_VALUE13094": 2, "ENUM_VALUE13095": 3, } ) func (x Enum13092) Enum() *Enum13092 { p := new(Enum13092) *p = x return p } func (x Enum13092) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum13092) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[39].Descriptor() } func (Enum13092) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[39] } func (x Enum13092) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum13092) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum13092(num) return nil } // Deprecated: Use Enum13092.Descriptor instead. func (Enum13092) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{39} } type Enum13146 int32 const ( Enum13146_ENUM_VALUE13147 Enum13146 = 0 Enum13146_ENUM_VALUE13148 Enum13146 = 1 Enum13146_ENUM_VALUE13149 Enum13146 = 2 Enum13146_ENUM_VALUE13150 Enum13146 = 3 ) // Enum value maps for Enum13146. var ( Enum13146_name = map[int32]string{ 0: "ENUM_VALUE13147", 1: "ENUM_VALUE13148", 2: "ENUM_VALUE13149", 3: "ENUM_VALUE13150", } Enum13146_value = map[string]int32{ "ENUM_VALUE13147": 0, "ENUM_VALUE13148": 1, "ENUM_VALUE13149": 2, "ENUM_VALUE13150": 3, } ) func (x Enum13146) Enum() *Enum13146 { p := new(Enum13146) *p = x return p } func (x Enum13146) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum13146) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[40].Descriptor() } func (Enum13146) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[40] } func (x Enum13146) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum13146) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum13146(num) return nil } // Deprecated: Use Enum13146.Descriptor instead. func (Enum13146) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{40} } type Enum16042 int32 const ( Enum16042_ENUM_VALUE16043 Enum16042 = 0 Enum16042_ENUM_VALUE16044 Enum16042 = 1 Enum16042_ENUM_VALUE16045 Enum16042 = 17 Enum16042_ENUM_VALUE16046 Enum16042 = 273 Enum16042_ENUM_VALUE16047 Enum16042 = 274 Enum16042_ENUM_VALUE16048 Enum16042 = 4385 Enum16042_ENUM_VALUE16049 Enum16042 = 4386 Enum16042_ENUM_VALUE16050 Enum16042 = 4387 Enum16042_ENUM_VALUE16051 Enum16042 = 4388 Enum16042_ENUM_VALUE16052 Enum16042 = 4389 Enum16042_ENUM_VALUE16053 Enum16042 = 4390 Enum16042_ENUM_VALUE16054 Enum16042 = 4391 Enum16042_ENUM_VALUE16055 Enum16042 = 4392 Enum16042_ENUM_VALUE16056 Enum16042 = 4393 Enum16042_ENUM_VALUE16057 Enum16042 = 276 Enum16042_ENUM_VALUE16058 Enum16042 = 277 Enum16042_ENUM_VALUE16059 Enum16042 = 18 Enum16042_ENUM_VALUE16060 Enum16042 = 289 Enum16042_ENUM_VALUE16061 Enum16042 = 291 Enum16042_ENUM_VALUE16062 Enum16042 = 4657 Enum16042_ENUM_VALUE16063 Enum16042 = 74513 Enum16042_ENUM_VALUE16064 Enum16042 = 4658 Enum16042_ENUM_VALUE16065 Enum16042 = 4659 Enum16042_ENUM_VALUE16066 Enum16042 = 4660 Enum16042_ENUM_VALUE16067 Enum16042 = 4661 Enum16042_ENUM_VALUE16068 Enum16042 = 4662 Enum16042_ENUM_VALUE16069 Enum16042 = 4663 Enum16042_ENUM_VALUE16070 Enum16042 = 4664 Enum16042_ENUM_VALUE16071 Enum16042 = 292 Enum16042_ENUM_VALUE16072 Enum16042 = 4673 Enum16042_ENUM_VALUE16073 Enum16042 = 4674 Enum16042_ENUM_VALUE16074 Enum16042 = 293 Enum16042_ENUM_VALUE16075 Enum16042 = 19 Enum16042_ENUM_VALUE16076 Enum16042 = 20 Enum16042_ENUM_VALUE16077 Enum16042 = 321 Enum16042_ENUM_VALUE16078 Enum16042 = 5137 Enum16042_ENUM_VALUE16079 Enum16042 = 5138 Enum16042_ENUM_VALUE16080 Enum16042 = 5139 Enum16042_ENUM_VALUE16081 Enum16042 = 5140 Enum16042_ENUM_VALUE16082 Enum16042 = 5141 Enum16042_ENUM_VALUE16083 Enum16042 = 5142 Enum16042_ENUM_VALUE16084 Enum16042 = 82273 Enum16042_ENUM_VALUE16085 Enum16042 = 82274 Enum16042_ENUM_VALUE16086 Enum16042 = 82275 Enum16042_ENUM_VALUE16087 Enum16042 = 82276 Enum16042_ENUM_VALUE16088 Enum16042 = 82277 Enum16042_ENUM_VALUE16089 Enum16042 = 82278 Enum16042_ENUM_VALUE16090 Enum16042 = 5143 Enum16042_ENUM_VALUE16091 Enum16042 = 5144 Enum16042_ENUM_VALUE16092 Enum16042 = 5145 Enum16042_ENUM_VALUE16093 Enum16042 = 5146 Enum16042_ENUM_VALUE16094 Enum16042 = 82337 Enum16042_ENUM_VALUE16095 Enum16042 = 5147 Enum16042_ENUM_VALUE16096 Enum16042 = 5148 Enum16042_ENUM_VALUE16097 Enum16042 = 322 Enum16042_ENUM_VALUE16098 Enum16042 = 323 Enum16042_ENUM_VALUE16099 Enum16042 = 324 Enum16042_ENUM_VALUE16100 Enum16042 = 325 Enum16042_ENUM_VALUE16101 Enum16042 = 326 Enum16042_ENUM_VALUE16102 Enum16042 = 327 Enum16042_ENUM_VALUE16103 Enum16042 = 328 Enum16042_ENUM_VALUE16104 Enum16042 = 21 Enum16042_ENUM_VALUE16105 Enum16042 = 337 Enum16042_ENUM_VALUE16106 Enum16042 = 22 Enum16042_ENUM_VALUE16107 Enum16042 = 23 Enum16042_ENUM_VALUE16108 Enum16042 = 24 Enum16042_ENUM_VALUE16109 Enum16042 = 2 Enum16042_ENUM_VALUE16110 Enum16042 = 33 Enum16042_ENUM_VALUE16111 Enum16042 = 34 Enum16042_ENUM_VALUE16112 Enum16042 = 545 Enum16042_ENUM_VALUE16113 Enum16042 = 8721 Enum16042_ENUM_VALUE16114 Enum16042 = 8723 Enum16042_ENUM_VALUE16115 Enum16042 = 8724 Enum16042_ENUM_VALUE16116 Enum16042 = 546 Enum16042_ENUM_VALUE16117 Enum16042 = 8739 Enum16042_ENUM_VALUE16118 Enum16042 = 8740 Enum16042_ENUM_VALUE16119 Enum16042 = 547 Enum16042_ENUM_VALUE16120 Enum16042 = 548 Enum16042_ENUM_VALUE16121 Enum16042 = 549 Enum16042_ENUM_VALUE16122 Enum16042 = 550 Enum16042_ENUM_VALUE16123 Enum16042 = 551 Enum16042_ENUM_VALUE16124 Enum16042 = 552 Enum16042_ENUM_VALUE16125 Enum16042 = 553 Enum16042_ENUM_VALUE16126 Enum16042 = 35 Enum16042_ENUM_VALUE16127 Enum16042 = 36 Enum16042_ENUM_VALUE16128 Enum16042 = 37 Enum16042_ENUM_VALUE16129 Enum16042 = 593 Enum16042_ENUM_VALUE16130 Enum16042 = 594 Enum16042_ENUM_VALUE16131 Enum16042 = 595 Enum16042_ENUM_VALUE16132 Enum16042 = 596 Enum16042_ENUM_VALUE16133 Enum16042 = 597 Enum16042_ENUM_VALUE16134 Enum16042 = 38 Enum16042_ENUM_VALUE16135 Enum16042 = 609 Enum16042_ENUM_VALUE16136 Enum16042 = 610 Enum16042_ENUM_VALUE16137 Enum16042 = 617 Enum16042_ENUM_VALUE16138 Enum16042 = 614 Enum16042_ENUM_VALUE16139 Enum16042 = 615 Enum16042_ENUM_VALUE16140 Enum16042 = 616 Enum16042_ENUM_VALUE16141 Enum16042 = 618 Enum16042_ENUM_VALUE16142 Enum16042 = 620 Enum16042_ENUM_VALUE16143 Enum16042 = 9937 Enum16042_ENUM_VALUE16144 Enum16042 = 9938 Enum16042_ENUM_VALUE16145 Enum16042 = 9939 Enum16042_ENUM_VALUE16146 Enum16042 = 9940 Enum16042_ENUM_VALUE16147 Enum16042 = 9941 Enum16042_ENUM_VALUE16148 Enum16042 = 39 Enum16042_ENUM_VALUE16149 Enum16042 = 40 Enum16042_ENUM_VALUE16150 Enum16042 = 41 Enum16042_ENUM_VALUE16151 Enum16042 = 42 Enum16042_ENUM_VALUE16152 Enum16042 = 43 Enum16042_ENUM_VALUE16153 Enum16042 = 44 Enum16042_ENUM_VALUE16154 Enum16042 = 45 Enum16042_ENUM_VALUE16155 Enum16042 = 11793 Enum16042_ENUM_VALUE16156 Enum16042 = 3 Enum16042_ENUM_VALUE16157 Enum16042 = 49 Enum16042_ENUM_VALUE16158 Enum16042 = 50 Enum16042_ENUM_VALUE16159 Enum16042 = 51 Enum16042_ENUM_VALUE16160 Enum16042 = 817 Enum16042_ENUM_VALUE16161 Enum16042 = 818 Enum16042_ENUM_VALUE16162 Enum16042 = 819 Enum16042_ENUM_VALUE16163 Enum16042 = 52 Enum16042_ENUM_VALUE16164 Enum16042 = 833 Enum16042_ENUM_VALUE16165 Enum16042 = 53 Enum16042_ENUM_VALUE16166 Enum16042 = 54 Enum16042_ENUM_VALUE16167 Enum16042 = 4 Enum16042_ENUM_VALUE16168 Enum16042 = 1041 Enum16042_ENUM_VALUE16169 Enum16042 = 16657 Enum16042_ENUM_VALUE16170 Enum16042 = 16658 Enum16042_ENUM_VALUE16171 Enum16042 = 16659 Enum16042_ENUM_VALUE16172 Enum16042 = 16660 Enum16042_ENUM_VALUE16173 Enum16042 = 16661 Enum16042_ENUM_VALUE16174 Enum16042 = 1042 Enum16042_ENUM_VALUE16175 Enum16042 = 16673 Enum16042_ENUM_VALUE16176 Enum16042 = 1043 Enum16042_ENUM_VALUE16177 Enum16042 = 16689 Enum16042_ENUM_VALUE16178 Enum16042 = 16690 Enum16042_ENUM_VALUE16179 Enum16042 = 16691 Enum16042_ENUM_VALUE16180 Enum16042 = 16692 Enum16042_ENUM_VALUE16181 Enum16042 = 16693 Enum16042_ENUM_VALUE16182 Enum16042 = 16694 Enum16042_ENUM_VALUE16183 Enum16042 = 16695 Enum16042_ENUM_VALUE16184 Enum16042 = 1044 Enum16042_ENUM_VALUE16185 Enum16042 = 16705 Enum16042_ENUM_VALUE16186 Enum16042 = 16706 Enum16042_ENUM_VALUE16187 Enum16042 = 16707 Enum16042_ENUM_VALUE16188 Enum16042 = 16708 Enum16042_ENUM_VALUE16189 Enum16042 = 16709 Enum16042_ENUM_VALUE16190 Enum16042 = 16710 Enum16042_ENUM_VALUE16191 Enum16042 = 16711 Enum16042_ENUM_VALUE16192 Enum16042 = 16712 Enum16042_ENUM_VALUE16193 Enum16042 = 16713 Enum16042_ENUM_VALUE16194 Enum16042 = 1046 Enum16042_ENUM_VALUE16195 Enum16042 = 16737 Enum16042_ENUM_VALUE16196 Enum16042 = 1047 Enum16042_ENUM_VALUE16197 Enum16042 = 16753 Enum16042_ENUM_VALUE16198 Enum16042 = 268049 Enum16042_ENUM_VALUE16199 Enum16042 = 268050 Enum16042_ENUM_VALUE16200 Enum16042 = 268051 Enum16042_ENUM_VALUE16201 Enum16042 = 268052 Enum16042_ENUM_VALUE16202 Enum16042 = 1048 Enum16042_ENUM_VALUE16203 Enum16042 = 16769 Enum16042_ENUM_VALUE16204 Enum16042 = 16770 Enum16042_ENUM_VALUE16205 Enum16042 = 16771 Enum16042_ENUM_VALUE16206 Enum16042 = 16772 Enum16042_ENUM_VALUE16207 Enum16042 = 16773 Enum16042_ENUM_VALUE16208 Enum16042 = 1049 Enum16042_ENUM_VALUE16209 Enum16042 = 1056 Enum16042_ENUM_VALUE16210 Enum16042 = 1058 Enum16042_ENUM_VALUE16211 Enum16042 = 1059 Enum16042_ENUM_VALUE16212 Enum16042 = 1060 Enum16042_ENUM_VALUE16213 Enum16042 = 1061 Enum16042_ENUM_VALUE16214 Enum16042 = 5 Enum16042_ENUM_VALUE16215 Enum16042 = 6 Enum16042_ENUM_VALUE16216 Enum16042 = 97 Enum16042_ENUM_VALUE16217 Enum16042 = 98 Enum16042_ENUM_VALUE16218 Enum16042 = 99 Enum16042_ENUM_VALUE16219 Enum16042 = 100 Enum16042_ENUM_VALUE16220 Enum16042 = 101 Enum16042_ENUM_VALUE16221 Enum16042 = 102 Enum16042_ENUM_VALUE16222 Enum16042 = 103 Enum16042_ENUM_VALUE16223 Enum16042 = 104 Enum16042_ENUM_VALUE16224 Enum16042 = 105 Enum16042_ENUM_VALUE16225 Enum16042 = 106 Enum16042_ENUM_VALUE16226 Enum16042 = 108 Enum16042_ENUM_VALUE16227 Enum16042 = 1729 Enum16042_ENUM_VALUE16228 Enum16042 = 1730 Enum16042_ENUM_VALUE16229 Enum16042 = 1731 Enum16042_ENUM_VALUE16230 Enum16042 = 7 Enum16042_ENUM_VALUE16231 Enum16042 = 8 Enum16042_ENUM_VALUE16232 Enum16042 = 9 Enum16042_ENUM_VALUE16233 Enum16042 = 10 Enum16042_ENUM_VALUE16234 Enum16042 = 161 Enum16042_ENUM_VALUE16235 Enum16042 = 2577 Enum16042_ENUM_VALUE16236 Enum16042 = 41233 Enum16042_ENUM_VALUE16237 Enum16042 = 41234 Enum16042_ENUM_VALUE16238 Enum16042 = 2578 Enum16042_ENUM_VALUE16239 Enum16042 = 2579 Enum16042_ENUM_VALUE16240 Enum16042 = 41265 Enum16042_ENUM_VALUE16241 Enum16042 = 2580 Enum16042_ENUM_VALUE16242 Enum16042 = 2581 Enum16042_ENUM_VALUE16243 Enum16042 = 41297 Enum16042_ENUM_VALUE16244 Enum16042 = 41298 Enum16042_ENUM_VALUE16245 Enum16042 = 41299 Enum16042_ENUM_VALUE16246 Enum16042 = 41300 Enum16042_ENUM_VALUE16247 Enum16042 = 2582 Enum16042_ENUM_VALUE16248 Enum16042 = 2583 Enum16042_ENUM_VALUE16249 Enum16042 = 2584 Enum16042_ENUM_VALUE16250 Enum16042 = 162 Enum16042_ENUM_VALUE16251 Enum16042 = 2593 Enum16042_ENUM_VALUE16252 Enum16042 = 41489 Enum16042_ENUM_VALUE16253 Enum16042 = 663825 Enum16042_ENUM_VALUE16254 Enum16042 = 663826 Enum16042_ENUM_VALUE16255 Enum16042 = 41490 Enum16042_ENUM_VALUE16256 Enum16042 = 41491 Enum16042_ENUM_VALUE16257 Enum16042 = 41492 Enum16042_ENUM_VALUE16258 Enum16042 = 663873 Enum16042_ENUM_VALUE16259 Enum16042 = 2594 Enum16042_ENUM_VALUE16260 Enum16042 = 41505 Enum16042_ENUM_VALUE16261 Enum16042 = 41506 Enum16042_ENUM_VALUE16262 Enum16042 = 41507 Enum16042_ENUM_VALUE16263 Enum16042 = 2595 Enum16042_ENUM_VALUE16264 Enum16042 = 41521 Enum16042_ENUM_VALUE16265 Enum16042 = 41522 Enum16042_ENUM_VALUE16266 Enum16042 = 41523 Enum16042_ENUM_VALUE16267 Enum16042 = 41524 Enum16042_ENUM_VALUE16268 Enum16042 = 41525 Enum16042_ENUM_VALUE16269 Enum16042 = 664401 Enum16042_ENUM_VALUE16270 Enum16042 = 664402 Enum16042_ENUM_VALUE16271 Enum16042 = 41526 Enum16042_ENUM_VALUE16272 Enum16042 = 41527 Enum16042_ENUM_VALUE16273 Enum16042 = 2596 Enum16042_ENUM_VALUE16274 Enum16042 = 2597 Enum16042_ENUM_VALUE16275 Enum16042 = 2598 Enum16042_ENUM_VALUE16276 Enum16042 = 41569 Enum16042_ENUM_VALUE16277 Enum16042 = 41570 Enum16042_ENUM_VALUE16278 Enum16042 = 41571 Enum16042_ENUM_VALUE16279 Enum16042 = 41572 Enum16042_ENUM_VALUE16280 Enum16042 = 41573 Enum16042_ENUM_VALUE16281 Enum16042 = 665169 Enum16042_ENUM_VALUE16282 Enum16042 = 665170 Enum16042_ENUM_VALUE16283 Enum16042 = 665171 Enum16042_ENUM_VALUE16284 Enum16042 = 665172 Enum16042_ENUM_VALUE16285 Enum16042 = 2599 Enum16042_ENUM_VALUE16286 Enum16042 = 2600 Enum16042_ENUM_VALUE16287 Enum16042 = 2601 Enum16042_ENUM_VALUE16288 Enum16042 = 2603 Enum16042_ENUM_VALUE16289 Enum16042 = 2604 Enum16042_ENUM_VALUE16290 Enum16042 = 163 Enum16042_ENUM_VALUE16291 Enum16042 = 2608 Enum16042_ENUM_VALUE16292 Enum16042 = 2609 Enum16042_ENUM_VALUE16293 Enum16042 = 2610 Enum16042_ENUM_VALUE16294 Enum16042 = 2611 Enum16042_ENUM_VALUE16295 Enum16042 = 2612 Enum16042_ENUM_VALUE16296 Enum16042 = 164 Enum16042_ENUM_VALUE16297 Enum16042 = 2625 Enum16042_ENUM_VALUE16298 Enum16042 = 2626 Enum16042_ENUM_VALUE16299 Enum16042 = 42017 Enum16042_ENUM_VALUE16300 Enum16042 = 42018 Enum16042_ENUM_VALUE16301 Enum16042 = 42019 Enum16042_ENUM_VALUE16302 Enum16042 = 2627 Enum16042_ENUM_VALUE16303 Enum16042 = 2628 Enum16042_ENUM_VALUE16304 Enum16042 = 165 Enum16042_ENUM_VALUE16305 Enum16042 = 2641 Enum16042_ENUM_VALUE16306 Enum16042 = 42257 Enum16042_ENUM_VALUE16307 Enum16042 = 42258 Enum16042_ENUM_VALUE16308 Enum16042 = 2642 Enum16042_ENUM_VALUE16309 Enum16042 = 2643 Enum16042_ENUM_VALUE16310 Enum16042 = 2644 Enum16042_ENUM_VALUE16311 Enum16042 = 2646 Enum16042_ENUM_VALUE16312 Enum16042 = 2647 Enum16042_ENUM_VALUE16313 Enum16042 = 42353 Enum16042_ENUM_VALUE16314 Enum16042 = 2648 Enum16042_ENUM_VALUE16315 Enum16042 = 2649 Enum16042_ENUM_VALUE16316 Enum16042 = 2650 Enum16042_ENUM_VALUE16317 Enum16042 = 2651 Enum16042_ENUM_VALUE16318 Enum16042 = 2652 Enum16042_ENUM_VALUE16319 Enum16042 = 2653 Enum16042_ENUM_VALUE16320 Enum16042 = 2654 Enum16042_ENUM_VALUE16321 Enum16042 = 42481 Enum16042_ENUM_VALUE16322 Enum16042 = 42482 Enum16042_ENUM_VALUE16323 Enum16042 = 42483 Enum16042_ENUM_VALUE16324 Enum16042 = 166 Enum16042_ENUM_VALUE16325 Enum16042 = 2657 Enum16042_ENUM_VALUE16326 Enum16042 = 2658 Enum16042_ENUM_VALUE16327 Enum16042 = 42529 Enum16042_ENUM_VALUE16328 Enum16042 = 2659 Enum16042_ENUM_VALUE16329 Enum16042 = 2660 Enum16042_ENUM_VALUE16330 Enum16042 = 2661 Enum16042_ENUM_VALUE16331 Enum16042 = 2662 Enum16042_ENUM_VALUE16332 Enum16042 = 2663 Enum16042_ENUM_VALUE16333 Enum16042 = 42609 Enum16042_ENUM_VALUE16334 Enum16042 = 2664 Enum16042_ENUM_VALUE16335 Enum16042 = 2665 Enum16042_ENUM_VALUE16336 Enum16042 = 42753 Enum16042_ENUM_VALUE16337 Enum16042 = 42754 Enum16042_ENUM_VALUE16338 Enum16042 = 42755 Enum16042_ENUM_VALUE16339 Enum16042 = 11 Enum16042_ENUM_VALUE16340 Enum16042 = 177 Enum16042_ENUM_VALUE16341 Enum16042 = 2833 Enum16042_ENUM_VALUE16342 Enum16042 = 179 Enum16042_ENUM_VALUE16343 Enum16042 = 180 Enum16042_ENUM_VALUE16344 Enum16042 = 2881 Enum16042_ENUM_VALUE16345 Enum16042 = 182 Enum16042_ENUM_VALUE16346 Enum16042 = 183 Enum16042_ENUM_VALUE16347 Enum16042 = 12 Enum16042_ENUM_VALUE16348 Enum16042 = 3089 Enum16042_ENUM_VALUE16349 Enum16042 = 194 Enum16042_ENUM_VALUE16350 Enum16042 = 195 Enum16042_ENUM_VALUE16351 Enum16042 = 196 Enum16042_ENUM_VALUE16352 Enum16042 = 198 Enum16042_ENUM_VALUE16353 Enum16042 = 3169 Enum16042_ENUM_VALUE16354 Enum16042 = 199 Enum16042_ENUM_VALUE16355 Enum16042 = 200 Enum16042_ENUM_VALUE16356 Enum16042 = 208 Enum16042_ENUM_VALUE16357 Enum16042 = 3329 Enum16042_ENUM_VALUE16358 Enum16042 = 3330 Enum16042_ENUM_VALUE16359 Enum16042 = 3331 Enum16042_ENUM_VALUE16360 Enum16042 = 209 Enum16042_ENUM_VALUE16361 Enum16042 = 210 Enum16042_ENUM_VALUE16362 Enum16042 = 211 Enum16042_ENUM_VALUE16363 Enum16042 = 3377 Enum16042_ENUM_VALUE16364 Enum16042 = 3378 Enum16042_ENUM_VALUE16365 Enum16042 = 3379 Enum16042_ENUM_VALUE16366 Enum16042 = 3380 Enum16042_ENUM_VALUE16367 Enum16042 = 3381 Enum16042_ENUM_VALUE16368 Enum16042 = 865809 Enum16042_ENUM_VALUE16369 Enum16042 = 865810 Enum16042_ENUM_VALUE16370 Enum16042 = 865811 Enum16042_ENUM_VALUE16371 Enum16042 = 865812 Enum16042_ENUM_VALUE16372 Enum16042 = 865813 Enum16042_ENUM_VALUE16373 Enum16042 = 865814 Enum16042_ENUM_VALUE16374 Enum16042 = 865815 Enum16042_ENUM_VALUE16375 Enum16042 = 865816 Enum16042_ENUM_VALUE16376 Enum16042 = 865817 Enum16042_ENUM_VALUE16377 Enum16042 = 865818 Enum16042_ENUM_VALUE16378 Enum16042 = 865819 Enum16042_ENUM_VALUE16379 Enum16042 = 865820 Enum16042_ENUM_VALUE16380 Enum16042 = 865821 Enum16042_ENUM_VALUE16381 Enum16042 = 865822 Enum16042_ENUM_VALUE16382 Enum16042 = 865823 Enum16042_ENUM_VALUE16383 Enum16042 = 865824 Enum16042_ENUM_VALUE16384 Enum16042 = 865825 Enum16042_ENUM_VALUE16385 Enum16042 = 865826 Enum16042_ENUM_VALUE16386 Enum16042 = 865827 Enum16042_ENUM_VALUE16387 Enum16042 = 865828 Enum16042_ENUM_VALUE16388 Enum16042 = 865829 Enum16042_ENUM_VALUE16389 Enum16042 = 212 Enum16042_ENUM_VALUE16390 Enum16042 = 3393 Enum16042_ENUM_VALUE16391 Enum16042 = 3394 Enum16042_ENUM_VALUE16392 Enum16042 = 3395 Enum16042_ENUM_VALUE16393 Enum16042 = 213 Enum16042_ENUM_VALUE16394 Enum16042 = 214 Enum16042_ENUM_VALUE16395 Enum16042 = 215 Enum16042_ENUM_VALUE16396 Enum16042 = 3441 Enum16042_ENUM_VALUE16397 Enum16042 = 3442 Enum16042_ENUM_VALUE16398 Enum16042 = 216 Enum16042_ENUM_VALUE16399 Enum16042 = 217 Enum16042_ENUM_VALUE16400 Enum16042 = 3473 Enum16042_ENUM_VALUE16401 Enum16042 = 3474 Enum16042_ENUM_VALUE16402 Enum16042 = 3475 Enum16042_ENUM_VALUE16403 Enum16042 = 254 Enum16042_ENUM_VALUE16404 Enum16042 = 255 ) // Enum value maps for Enum16042. var ( Enum16042_name = map[int32]string{ 0: "ENUM_VALUE16043", 1: "ENUM_VALUE16044", 17: "ENUM_VALUE16045", 273: "ENUM_VALUE16046", 274: "ENUM_VALUE16047", 4385: "ENUM_VALUE16048", 4386: "ENUM_VALUE16049", 4387: "ENUM_VALUE16050", 4388: "ENUM_VALUE16051", 4389: "ENUM_VALUE16052", 4390: "ENUM_VALUE16053", 4391: "ENUM_VALUE16054", 4392: "ENUM_VALUE16055", 4393: "ENUM_VALUE16056", 276: "ENUM_VALUE16057", 277: "ENUM_VALUE16058", 18: "ENUM_VALUE16059", 289: "ENUM_VALUE16060", 291: "ENUM_VALUE16061", 4657: "ENUM_VALUE16062", 74513: "ENUM_VALUE16063", 4658: "ENUM_VALUE16064", 4659: "ENUM_VALUE16065", 4660: "ENUM_VALUE16066", 4661: "ENUM_VALUE16067", 4662: "ENUM_VALUE16068", 4663: "ENUM_VALUE16069", 4664: "ENUM_VALUE16070", 292: "ENUM_VALUE16071", 4673: "ENUM_VALUE16072", 4674: "ENUM_VALUE16073", 293: "ENUM_VALUE16074", 19: "ENUM_VALUE16075", 20: "ENUM_VALUE16076", 321: "ENUM_VALUE16077", 5137: "ENUM_VALUE16078", 5138: "ENUM_VALUE16079", 5139: "ENUM_VALUE16080", 5140: "ENUM_VALUE16081", 5141: "ENUM_VALUE16082", 5142: "ENUM_VALUE16083", 82273: "ENUM_VALUE16084", 82274: "ENUM_VALUE16085", 82275: "ENUM_VALUE16086", 82276: "ENUM_VALUE16087", 82277: "ENUM_VALUE16088", 82278: "ENUM_VALUE16089", 5143: "ENUM_VALUE16090", 5144: "ENUM_VALUE16091", 5145: "ENUM_VALUE16092", 5146: "ENUM_VALUE16093", 82337: "ENUM_VALUE16094", 5147: "ENUM_VALUE16095", 5148: "ENUM_VALUE16096", 322: "ENUM_VALUE16097", 323: "ENUM_VALUE16098", 324: "ENUM_VALUE16099", 325: "ENUM_VALUE16100", 326: "ENUM_VALUE16101", 327: "ENUM_VALUE16102", 328: "ENUM_VALUE16103", 21: "ENUM_VALUE16104", 337: "ENUM_VALUE16105", 22: "ENUM_VALUE16106", 23: "ENUM_VALUE16107", 24: "ENUM_VALUE16108", 2: "ENUM_VALUE16109", 33: "ENUM_VALUE16110", 34: "ENUM_VALUE16111", 545: "ENUM_VALUE16112", 8721: "ENUM_VALUE16113", 8723: "ENUM_VALUE16114", 8724: "ENUM_VALUE16115", 546: "ENUM_VALUE16116", 8739: "ENUM_VALUE16117", 8740: "ENUM_VALUE16118", 547: "ENUM_VALUE16119", 548: "ENUM_VALUE16120", 549: "ENUM_VALUE16121", 550: "ENUM_VALUE16122", 551: "ENUM_VALUE16123", 552: "ENUM_VALUE16124", 553: "ENUM_VALUE16125", 35: "ENUM_VALUE16126", 36: "ENUM_VALUE16127", 37: "ENUM_VALUE16128", 593: "ENUM_VALUE16129", 594: "ENUM_VALUE16130", 595: "ENUM_VALUE16131", 596: "ENUM_VALUE16132", 597: "ENUM_VALUE16133", 38: "ENUM_VALUE16134", 609: "ENUM_VALUE16135", 610: "ENUM_VALUE16136", 617: "ENUM_VALUE16137", 614: "ENUM_VALUE16138", 615: "ENUM_VALUE16139", 616: "ENUM_VALUE16140", 618: "ENUM_VALUE16141", 620: "ENUM_VALUE16142", 9937: "ENUM_VALUE16143", 9938: "ENUM_VALUE16144", 9939: "ENUM_VALUE16145", 9940: "ENUM_VALUE16146", 9941: "ENUM_VALUE16147", 39: "ENUM_VALUE16148", 40: "ENUM_VALUE16149", 41: "ENUM_VALUE16150", 42: "ENUM_VALUE16151", 43: "ENUM_VALUE16152", 44: "ENUM_VALUE16153", 45: "ENUM_VALUE16154", 11793: "ENUM_VALUE16155", 3: "ENUM_VALUE16156", 49: "ENUM_VALUE16157", 50: "ENUM_VALUE16158", 51: "ENUM_VALUE16159", 817: "ENUM_VALUE16160", 818: "ENUM_VALUE16161", 819: "ENUM_VALUE16162", 52: "ENUM_VALUE16163", 833: "ENUM_VALUE16164", 53: "ENUM_VALUE16165", 54: "ENUM_VALUE16166", 4: "ENUM_VALUE16167", 1041: "ENUM_VALUE16168", 16657: "ENUM_VALUE16169", 16658: "ENUM_VALUE16170", 16659: "ENUM_VALUE16171", 16660: "ENUM_VALUE16172", 16661: "ENUM_VALUE16173", 1042: "ENUM_VALUE16174", 16673: "ENUM_VALUE16175", 1043: "ENUM_VALUE16176", 16689: "ENUM_VALUE16177", 16690: "ENUM_VALUE16178", 16691: "ENUM_VALUE16179", 16692: "ENUM_VALUE16180", 16693: "ENUM_VALUE16181", 16694: "ENUM_VALUE16182", 16695: "ENUM_VALUE16183", 1044: "ENUM_VALUE16184", 16705: "ENUM_VALUE16185", 16706: "ENUM_VALUE16186", 16707: "ENUM_VALUE16187", 16708: "ENUM_VALUE16188", 16709: "ENUM_VALUE16189", 16710: "ENUM_VALUE16190", 16711: "ENUM_VALUE16191", 16712: "ENUM_VALUE16192", 16713: "ENUM_VALUE16193", 1046: "ENUM_VALUE16194", 16737: "ENUM_VALUE16195", 1047: "ENUM_VALUE16196", 16753: "ENUM_VALUE16197", 268049: "ENUM_VALUE16198", 268050: "ENUM_VALUE16199", 268051: "ENUM_VALUE16200", 268052: "ENUM_VALUE16201", 1048: "ENUM_VALUE16202", 16769: "ENUM_VALUE16203", 16770: "ENUM_VALUE16204", 16771: "ENUM_VALUE16205", 16772: "ENUM_VALUE16206", 16773: "ENUM_VALUE16207", 1049: "ENUM_VALUE16208", 1056: "ENUM_VALUE16209", 1058: "ENUM_VALUE16210", 1059: "ENUM_VALUE16211", 1060: "ENUM_VALUE16212", 1061: "ENUM_VALUE16213", 5: "ENUM_VALUE16214", 6: "ENUM_VALUE16215", 97: "ENUM_VALUE16216", 98: "ENUM_VALUE16217", 99: "ENUM_VALUE16218", 100: "ENUM_VALUE16219", 101: "ENUM_VALUE16220", 102: "ENUM_VALUE16221", 103: "ENUM_VALUE16222", 104: "ENUM_VALUE16223", 105: "ENUM_VALUE16224", 106: "ENUM_VALUE16225", 108: "ENUM_VALUE16226", 1729: "ENUM_VALUE16227", 1730: "ENUM_VALUE16228", 1731: "ENUM_VALUE16229", 7: "ENUM_VALUE16230", 8: "ENUM_VALUE16231", 9: "ENUM_VALUE16232", 10: "ENUM_VALUE16233", 161: "ENUM_VALUE16234", 2577: "ENUM_VALUE16235", 41233: "ENUM_VALUE16236", 41234: "ENUM_VALUE16237", 2578: "ENUM_VALUE16238", 2579: "ENUM_VALUE16239", 41265: "ENUM_VALUE16240", 2580: "ENUM_VALUE16241", 2581: "ENUM_VALUE16242", 41297: "ENUM_VALUE16243", 41298: "ENUM_VALUE16244", 41299: "ENUM_VALUE16245", 41300: "ENUM_VALUE16246", 2582: "ENUM_VALUE16247", 2583: "ENUM_VALUE16248", 2584: "ENUM_VALUE16249", 162: "ENUM_VALUE16250", 2593: "ENUM_VALUE16251", 41489: "ENUM_VALUE16252", 663825: "ENUM_VALUE16253", 663826: "ENUM_VALUE16254", 41490: "ENUM_VALUE16255", 41491: "ENUM_VALUE16256", 41492: "ENUM_VALUE16257", 663873: "ENUM_VALUE16258", 2594: "ENUM_VALUE16259", 41505: "ENUM_VALUE16260", 41506: "ENUM_VALUE16261", 41507: "ENUM_VALUE16262", 2595: "ENUM_VALUE16263", 41521: "ENUM_VALUE16264", 41522: "ENUM_VALUE16265", 41523: "ENUM_VALUE16266", 41524: "ENUM_VALUE16267", 41525: "ENUM_VALUE16268", 664401: "ENUM_VALUE16269", 664402: "ENUM_VALUE16270", 41526: "ENUM_VALUE16271", 41527: "ENUM_VALUE16272", 2596: "ENUM_VALUE16273", 2597: "ENUM_VALUE16274", 2598: "ENUM_VALUE16275", 41569: "ENUM_VALUE16276", 41570: "ENUM_VALUE16277", 41571: "ENUM_VALUE16278", 41572: "ENUM_VALUE16279", 41573: "ENUM_VALUE16280", 665169: "ENUM_VALUE16281", 665170: "ENUM_VALUE16282", 665171: "ENUM_VALUE16283", 665172: "ENUM_VALUE16284", 2599: "ENUM_VALUE16285", 2600: "ENUM_VALUE16286", 2601: "ENUM_VALUE16287", 2603: "ENUM_VALUE16288", 2604: "ENUM_VALUE16289", 163: "ENUM_VALUE16290", 2608: "ENUM_VALUE16291", 2609: "ENUM_VALUE16292", 2610: "ENUM_VALUE16293", 2611: "ENUM_VALUE16294", 2612: "ENUM_VALUE16295", 164: "ENUM_VALUE16296", 2625: "ENUM_VALUE16297", 2626: "ENUM_VALUE16298", 42017: "ENUM_VALUE16299", 42018: "ENUM_VALUE16300", 42019: "ENUM_VALUE16301", 2627: "ENUM_VALUE16302", 2628: "ENUM_VALUE16303", 165: "ENUM_VALUE16304", 2641: "ENUM_VALUE16305", 42257: "ENUM_VALUE16306", 42258: "ENUM_VALUE16307", 2642: "ENUM_VALUE16308", 2643: "ENUM_VALUE16309", 2644: "ENUM_VALUE16310", 2646: "ENUM_VALUE16311", 2647: "ENUM_VALUE16312", 42353: "ENUM_VALUE16313", 2648: "ENUM_VALUE16314", 2649: "ENUM_VALUE16315", 2650: "ENUM_VALUE16316", 2651: "ENUM_VALUE16317", 2652: "ENUM_VALUE16318", 2653: "ENUM_VALUE16319", 2654: "ENUM_VALUE16320", 42481: "ENUM_VALUE16321", 42482: "ENUM_VALUE16322", 42483: "ENUM_VALUE16323", 166: "ENUM_VALUE16324", 2657: "ENUM_VALUE16325", 2658: "ENUM_VALUE16326", 42529: "ENUM_VALUE16327", 2659: "ENUM_VALUE16328", 2660: "ENUM_VALUE16329", 2661: "ENUM_VALUE16330", 2662: "ENUM_VALUE16331", 2663: "ENUM_VALUE16332", 42609: "ENUM_VALUE16333", 2664: "ENUM_VALUE16334", 2665: "ENUM_VALUE16335", 42753: "ENUM_VALUE16336", 42754: "ENUM_VALUE16337", 42755: "ENUM_VALUE16338", 11: "ENUM_VALUE16339", 177: "ENUM_VALUE16340", 2833: "ENUM_VALUE16341", 179: "ENUM_VALUE16342", 180: "ENUM_VALUE16343", 2881: "ENUM_VALUE16344", 182: "ENUM_VALUE16345", 183: "ENUM_VALUE16346", 12: "ENUM_VALUE16347", 3089: "ENUM_VALUE16348", 194: "ENUM_VALUE16349", 195: "ENUM_VALUE16350", 196: "ENUM_VALUE16351", 198: "ENUM_VALUE16352", 3169: "ENUM_VALUE16353", 199: "ENUM_VALUE16354", 200: "ENUM_VALUE16355", 208: "ENUM_VALUE16356", 3329: "ENUM_VALUE16357", 3330: "ENUM_VALUE16358", 3331: "ENUM_VALUE16359", 209: "ENUM_VALUE16360", 210: "ENUM_VALUE16361", 211: "ENUM_VALUE16362", 3377: "ENUM_VALUE16363", 3378: "ENUM_VALUE16364", 3379: "ENUM_VALUE16365", 3380: "ENUM_VALUE16366", 3381: "ENUM_VALUE16367", 865809: "ENUM_VALUE16368", 865810: "ENUM_VALUE16369", 865811: "ENUM_VALUE16370", 865812: "ENUM_VALUE16371", 865813: "ENUM_VALUE16372", 865814: "ENUM_VALUE16373", 865815: "ENUM_VALUE16374", 865816: "ENUM_VALUE16375", 865817: "ENUM_VALUE16376", 865818: "ENUM_VALUE16377", 865819: "ENUM_VALUE16378", 865820: "ENUM_VALUE16379", 865821: "ENUM_VALUE16380", 865822: "ENUM_VALUE16381", 865823: "ENUM_VALUE16382", 865824: "ENUM_VALUE16383", 865825: "ENUM_VALUE16384", 865826: "ENUM_VALUE16385", 865827: "ENUM_VALUE16386", 865828: "ENUM_VALUE16387", 865829: "ENUM_VALUE16388", 212: "ENUM_VALUE16389", 3393: "ENUM_VALUE16390", 3394: "ENUM_VALUE16391", 3395: "ENUM_VALUE16392", 213: "ENUM_VALUE16393", 214: "ENUM_VALUE16394", 215: "ENUM_VALUE16395", 3441: "ENUM_VALUE16396", 3442: "ENUM_VALUE16397", 216: "ENUM_VALUE16398", 217: "ENUM_VALUE16399", 3473: "ENUM_VALUE16400", 3474: "ENUM_VALUE16401", 3475: "ENUM_VALUE16402", 254: "ENUM_VALUE16403", 255: "ENUM_VALUE16404", } Enum16042_value = map[string]int32{ "ENUM_VALUE16043": 0, "ENUM_VALUE16044": 1, "ENUM_VALUE16045": 17, "ENUM_VALUE16046": 273, "ENUM_VALUE16047": 274, "ENUM_VALUE16048": 4385, "ENUM_VALUE16049": 4386, "ENUM_VALUE16050": 4387, "ENUM_VALUE16051": 4388, "ENUM_VALUE16052": 4389, "ENUM_VALUE16053": 4390, "ENUM_VALUE16054": 4391, "ENUM_VALUE16055": 4392, "ENUM_VALUE16056": 4393, "ENUM_VALUE16057": 276, "ENUM_VALUE16058": 277, "ENUM_VALUE16059": 18, "ENUM_VALUE16060": 289, "ENUM_VALUE16061": 291, "ENUM_VALUE16062": 4657, "ENUM_VALUE16063": 74513, "ENUM_VALUE16064": 4658, "ENUM_VALUE16065": 4659, "ENUM_VALUE16066": 4660, "ENUM_VALUE16067": 4661, "ENUM_VALUE16068": 4662, "ENUM_VALUE16069": 4663, "ENUM_VALUE16070": 4664, "ENUM_VALUE16071": 292, "ENUM_VALUE16072": 4673, "ENUM_VALUE16073": 4674, "ENUM_VALUE16074": 293, "ENUM_VALUE16075": 19, "ENUM_VALUE16076": 20, "ENUM_VALUE16077": 321, "ENUM_VALUE16078": 5137, "ENUM_VALUE16079": 5138, "ENUM_VALUE16080": 5139, "ENUM_VALUE16081": 5140, "ENUM_VALUE16082": 5141, "ENUM_VALUE16083": 5142, "ENUM_VALUE16084": 82273, "ENUM_VALUE16085": 82274, "ENUM_VALUE16086": 82275, "ENUM_VALUE16087": 82276, "ENUM_VALUE16088": 82277, "ENUM_VALUE16089": 82278, "ENUM_VALUE16090": 5143, "ENUM_VALUE16091": 5144, "ENUM_VALUE16092": 5145, "ENUM_VALUE16093": 5146, "ENUM_VALUE16094": 82337, "ENUM_VALUE16095": 5147, "ENUM_VALUE16096": 5148, "ENUM_VALUE16097": 322, "ENUM_VALUE16098": 323, "ENUM_VALUE16099": 324, "ENUM_VALUE16100": 325, "ENUM_VALUE16101": 326, "ENUM_VALUE16102": 327, "ENUM_VALUE16103": 328, "ENUM_VALUE16104": 21, "ENUM_VALUE16105": 337, "ENUM_VALUE16106": 22, "ENUM_VALUE16107": 23, "ENUM_VALUE16108": 24, "ENUM_VALUE16109": 2, "ENUM_VALUE16110": 33, "ENUM_VALUE16111": 34, "ENUM_VALUE16112": 545, "ENUM_VALUE16113": 8721, "ENUM_VALUE16114": 8723, "ENUM_VALUE16115": 8724, "ENUM_VALUE16116": 546, "ENUM_VALUE16117": 8739, "ENUM_VALUE16118": 8740, "ENUM_VALUE16119": 547, "ENUM_VALUE16120": 548, "ENUM_VALUE16121": 549, "ENUM_VALUE16122": 550, "ENUM_VALUE16123": 551, "ENUM_VALUE16124": 552, "ENUM_VALUE16125": 553, "ENUM_VALUE16126": 35, "ENUM_VALUE16127": 36, "ENUM_VALUE16128": 37, "ENUM_VALUE16129": 593, "ENUM_VALUE16130": 594, "ENUM_VALUE16131": 595, "ENUM_VALUE16132": 596, "ENUM_VALUE16133": 597, "ENUM_VALUE16134": 38, "ENUM_VALUE16135": 609, "ENUM_VALUE16136": 610, "ENUM_VALUE16137": 617, "ENUM_VALUE16138": 614, "ENUM_VALUE16139": 615, "ENUM_VALUE16140": 616, "ENUM_VALUE16141": 618, "ENUM_VALUE16142": 620, "ENUM_VALUE16143": 9937, "ENUM_VALUE16144": 9938, "ENUM_VALUE16145": 9939, "ENUM_VALUE16146": 9940, "ENUM_VALUE16147": 9941, "ENUM_VALUE16148": 39, "ENUM_VALUE16149": 40, "ENUM_VALUE16150": 41, "ENUM_VALUE16151": 42, "ENUM_VALUE16152": 43, "ENUM_VALUE16153": 44, "ENUM_VALUE16154": 45, "ENUM_VALUE16155": 11793, "ENUM_VALUE16156": 3, "ENUM_VALUE16157": 49, "ENUM_VALUE16158": 50, "ENUM_VALUE16159": 51, "ENUM_VALUE16160": 817, "ENUM_VALUE16161": 818, "ENUM_VALUE16162": 819, "ENUM_VALUE16163": 52, "ENUM_VALUE16164": 833, "ENUM_VALUE16165": 53, "ENUM_VALUE16166": 54, "ENUM_VALUE16167": 4, "ENUM_VALUE16168": 1041, "ENUM_VALUE16169": 16657, "ENUM_VALUE16170": 16658, "ENUM_VALUE16171": 16659, "ENUM_VALUE16172": 16660, "ENUM_VALUE16173": 16661, "ENUM_VALUE16174": 1042, "ENUM_VALUE16175": 16673, "ENUM_VALUE16176": 1043, "ENUM_VALUE16177": 16689, "ENUM_VALUE16178": 16690, "ENUM_VALUE16179": 16691, "ENUM_VALUE16180": 16692, "ENUM_VALUE16181": 16693, "ENUM_VALUE16182": 16694, "ENUM_VALUE16183": 16695, "ENUM_VALUE16184": 1044, "ENUM_VALUE16185": 16705, "ENUM_VALUE16186": 16706, "ENUM_VALUE16187": 16707, "ENUM_VALUE16188": 16708, "ENUM_VALUE16189": 16709, "ENUM_VALUE16190": 16710, "ENUM_VALUE16191": 16711, "ENUM_VALUE16192": 16712, "ENUM_VALUE16193": 16713, "ENUM_VALUE16194": 1046, "ENUM_VALUE16195": 16737, "ENUM_VALUE16196": 1047, "ENUM_VALUE16197": 16753, "ENUM_VALUE16198": 268049, "ENUM_VALUE16199": 268050, "ENUM_VALUE16200": 268051, "ENUM_VALUE16201": 268052, "ENUM_VALUE16202": 1048, "ENUM_VALUE16203": 16769, "ENUM_VALUE16204": 16770, "ENUM_VALUE16205": 16771, "ENUM_VALUE16206": 16772, "ENUM_VALUE16207": 16773, "ENUM_VALUE16208": 1049, "ENUM_VALUE16209": 1056, "ENUM_VALUE16210": 1058, "ENUM_VALUE16211": 1059, "ENUM_VALUE16212": 1060, "ENUM_VALUE16213": 1061, "ENUM_VALUE16214": 5, "ENUM_VALUE16215": 6, "ENUM_VALUE16216": 97, "ENUM_VALUE16217": 98, "ENUM_VALUE16218": 99, "ENUM_VALUE16219": 100, "ENUM_VALUE16220": 101, "ENUM_VALUE16221": 102, "ENUM_VALUE16222": 103, "ENUM_VALUE16223": 104, "ENUM_VALUE16224": 105, "ENUM_VALUE16225": 106, "ENUM_VALUE16226": 108, "ENUM_VALUE16227": 1729, "ENUM_VALUE16228": 1730, "ENUM_VALUE16229": 1731, "ENUM_VALUE16230": 7, "ENUM_VALUE16231": 8, "ENUM_VALUE16232": 9, "ENUM_VALUE16233": 10, "ENUM_VALUE16234": 161, "ENUM_VALUE16235": 2577, "ENUM_VALUE16236": 41233, "ENUM_VALUE16237": 41234, "ENUM_VALUE16238": 2578, "ENUM_VALUE16239": 2579, "ENUM_VALUE16240": 41265, "ENUM_VALUE16241": 2580, "ENUM_VALUE16242": 2581, "ENUM_VALUE16243": 41297, "ENUM_VALUE16244": 41298, "ENUM_VALUE16245": 41299, "ENUM_VALUE16246": 41300, "ENUM_VALUE16247": 2582, "ENUM_VALUE16248": 2583, "ENUM_VALUE16249": 2584, "ENUM_VALUE16250": 162, "ENUM_VALUE16251": 2593, "ENUM_VALUE16252": 41489, "ENUM_VALUE16253": 663825, "ENUM_VALUE16254": 663826, "ENUM_VALUE16255": 41490, "ENUM_VALUE16256": 41491, "ENUM_VALUE16257": 41492, "ENUM_VALUE16258": 663873, "ENUM_VALUE16259": 2594, "ENUM_VALUE16260": 41505, "ENUM_VALUE16261": 41506, "ENUM_VALUE16262": 41507, "ENUM_VALUE16263": 2595, "ENUM_VALUE16264": 41521, "ENUM_VALUE16265": 41522, "ENUM_VALUE16266": 41523, "ENUM_VALUE16267": 41524, "ENUM_VALUE16268": 41525, "ENUM_VALUE16269": 664401, "ENUM_VALUE16270": 664402, "ENUM_VALUE16271": 41526, "ENUM_VALUE16272": 41527, "ENUM_VALUE16273": 2596, "ENUM_VALUE16274": 2597, "ENUM_VALUE16275": 2598, "ENUM_VALUE16276": 41569, "ENUM_VALUE16277": 41570, "ENUM_VALUE16278": 41571, "ENUM_VALUE16279": 41572, "ENUM_VALUE16280": 41573, "ENUM_VALUE16281": 665169, "ENUM_VALUE16282": 665170, "ENUM_VALUE16283": 665171, "ENUM_VALUE16284": 665172, "ENUM_VALUE16285": 2599, "ENUM_VALUE16286": 2600, "ENUM_VALUE16287": 2601, "ENUM_VALUE16288": 2603, "ENUM_VALUE16289": 2604, "ENUM_VALUE16290": 163, "ENUM_VALUE16291": 2608, "ENUM_VALUE16292": 2609, "ENUM_VALUE16293": 2610, "ENUM_VALUE16294": 2611, "ENUM_VALUE16295": 2612, "ENUM_VALUE16296": 164, "ENUM_VALUE16297": 2625, "ENUM_VALUE16298": 2626, "ENUM_VALUE16299": 42017, "ENUM_VALUE16300": 42018, "ENUM_VALUE16301": 42019, "ENUM_VALUE16302": 2627, "ENUM_VALUE16303": 2628, "ENUM_VALUE16304": 165, "ENUM_VALUE16305": 2641, "ENUM_VALUE16306": 42257, "ENUM_VALUE16307": 42258, "ENUM_VALUE16308": 2642, "ENUM_VALUE16309": 2643, "ENUM_VALUE16310": 2644, "ENUM_VALUE16311": 2646, "ENUM_VALUE16312": 2647, "ENUM_VALUE16313": 42353, "ENUM_VALUE16314": 2648, "ENUM_VALUE16315": 2649, "ENUM_VALUE16316": 2650, "ENUM_VALUE16317": 2651, "ENUM_VALUE16318": 2652, "ENUM_VALUE16319": 2653, "ENUM_VALUE16320": 2654, "ENUM_VALUE16321": 42481, "ENUM_VALUE16322": 42482, "ENUM_VALUE16323": 42483, "ENUM_VALUE16324": 166, "ENUM_VALUE16325": 2657, "ENUM_VALUE16326": 2658, "ENUM_VALUE16327": 42529, "ENUM_VALUE16328": 2659, "ENUM_VALUE16329": 2660, "ENUM_VALUE16330": 2661, "ENUM_VALUE16331": 2662, "ENUM_VALUE16332": 2663, "ENUM_VALUE16333": 42609, "ENUM_VALUE16334": 2664, "ENUM_VALUE16335": 2665, "ENUM_VALUE16336": 42753, "ENUM_VALUE16337": 42754, "ENUM_VALUE16338": 42755, "ENUM_VALUE16339": 11, "ENUM_VALUE16340": 177, "ENUM_VALUE16341": 2833, "ENUM_VALUE16342": 179, "ENUM_VALUE16343": 180, "ENUM_VALUE16344": 2881, "ENUM_VALUE16345": 182, "ENUM_VALUE16346": 183, "ENUM_VALUE16347": 12, "ENUM_VALUE16348": 3089, "ENUM_VALUE16349": 194, "ENUM_VALUE16350": 195, "ENUM_VALUE16351": 196, "ENUM_VALUE16352": 198, "ENUM_VALUE16353": 3169, "ENUM_VALUE16354": 199, "ENUM_VALUE16355": 200, "ENUM_VALUE16356": 208, "ENUM_VALUE16357": 3329, "ENUM_VALUE16358": 3330, "ENUM_VALUE16359": 3331, "ENUM_VALUE16360": 209, "ENUM_VALUE16361": 210, "ENUM_VALUE16362": 211, "ENUM_VALUE16363": 3377, "ENUM_VALUE16364": 3378, "ENUM_VALUE16365": 3379, "ENUM_VALUE16366": 3380, "ENUM_VALUE16367": 3381, "ENUM_VALUE16368": 865809, "ENUM_VALUE16369": 865810, "ENUM_VALUE16370": 865811, "ENUM_VALUE16371": 865812, "ENUM_VALUE16372": 865813, "ENUM_VALUE16373": 865814, "ENUM_VALUE16374": 865815, "ENUM_VALUE16375": 865816, "ENUM_VALUE16376": 865817, "ENUM_VALUE16377": 865818, "ENUM_VALUE16378": 865819, "ENUM_VALUE16379": 865820, "ENUM_VALUE16380": 865821, "ENUM_VALUE16381": 865822, "ENUM_VALUE16382": 865823, "ENUM_VALUE16383": 865824, "ENUM_VALUE16384": 865825, "ENUM_VALUE16385": 865826, "ENUM_VALUE16386": 865827, "ENUM_VALUE16387": 865828, "ENUM_VALUE16388": 865829, "ENUM_VALUE16389": 212, "ENUM_VALUE16390": 3393, "ENUM_VALUE16391": 3394, "ENUM_VALUE16392": 3395, "ENUM_VALUE16393": 213, "ENUM_VALUE16394": 214, "ENUM_VALUE16395": 215, "ENUM_VALUE16396": 3441, "ENUM_VALUE16397": 3442, "ENUM_VALUE16398": 216, "ENUM_VALUE16399": 217, "ENUM_VALUE16400": 3473, "ENUM_VALUE16401": 3474, "ENUM_VALUE16402": 3475, "ENUM_VALUE16403": 254, "ENUM_VALUE16404": 255, } ) func (x Enum16042) Enum() *Enum16042 { p := new(Enum16042) *p = x return p } func (x Enum16042) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum16042) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[41].Descriptor() } func (Enum16042) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[41] } func (x Enum16042) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum16042) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum16042(num) return nil } // Deprecated: Use Enum16042.Descriptor instead. func (Enum16042) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{41} } type Enum16553 int32 const ( Enum16553_ENUM_VALUE16554 Enum16553 = 0 Enum16553_ENUM_VALUE16555 Enum16553 = 1 Enum16553_ENUM_VALUE16556 Enum16553 = 2 Enum16553_ENUM_VALUE16557 Enum16553 = 3 Enum16553_ENUM_VALUE16558 Enum16553 = 4 Enum16553_ENUM_VALUE16559 Enum16553 = 5 Enum16553_ENUM_VALUE16560 Enum16553 = 6 Enum16553_ENUM_VALUE16561 Enum16553 = 7 Enum16553_ENUM_VALUE16562 Enum16553 = 8 Enum16553_ENUM_VALUE16563 Enum16553 = 9 ) // Enum value maps for Enum16553. var ( Enum16553_name = map[int32]string{ 0: "ENUM_VALUE16554", 1: "ENUM_VALUE16555", 2: "ENUM_VALUE16556", 3: "ENUM_VALUE16557", 4: "ENUM_VALUE16558", 5: "ENUM_VALUE16559", 6: "ENUM_VALUE16560", 7: "ENUM_VALUE16561", 8: "ENUM_VALUE16562", 9: "ENUM_VALUE16563", } Enum16553_value = map[string]int32{ "ENUM_VALUE16554": 0, "ENUM_VALUE16555": 1, "ENUM_VALUE16556": 2, "ENUM_VALUE16557": 3, "ENUM_VALUE16558": 4, "ENUM_VALUE16559": 5, "ENUM_VALUE16560": 6, "ENUM_VALUE16561": 7, "ENUM_VALUE16562": 8, "ENUM_VALUE16563": 9, } ) func (x Enum16553) Enum() *Enum16553 { p := new(Enum16553) *p = x return p } func (x Enum16553) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum16553) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[42].Descriptor() } func (Enum16553) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[42] } func (x Enum16553) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum16553) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum16553(num) return nil } // Deprecated: Use Enum16553.Descriptor instead. func (Enum16553) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{42} } type Enum16728 int32 const ( Enum16728_ENUM_VALUE16729 Enum16728 = 1 Enum16728_ENUM_VALUE16730 Enum16728 = 2 Enum16728_ENUM_VALUE16731 Enum16728 = 3 ) // Enum value maps for Enum16728. var ( Enum16728_name = map[int32]string{ 1: "ENUM_VALUE16729", 2: "ENUM_VALUE16730", 3: "ENUM_VALUE16731", } Enum16728_value = map[string]int32{ "ENUM_VALUE16729": 1, "ENUM_VALUE16730": 2, "ENUM_VALUE16731": 3, } ) func (x Enum16728) Enum() *Enum16728 { p := new(Enum16728) *p = x return p } func (x Enum16728) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum16728) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[43].Descriptor() } func (Enum16728) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[43] } func (x Enum16728) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum16728) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum16728(num) return nil } // Deprecated: Use Enum16728.Descriptor instead. func (Enum16728) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{43} } type Enum16732 int32 const ( Enum16732_ENUM_VALUE16733 Enum16732 = 1 Enum16732_ENUM_VALUE16734 Enum16732 = 2 Enum16732_ENUM_VALUE16735 Enum16732 = 3 Enum16732_ENUM_VALUE16736 Enum16732 = 4 Enum16732_ENUM_VALUE16737 Enum16732 = 5 ) // Enum value maps for Enum16732. var ( Enum16732_name = map[int32]string{ 1: "ENUM_VALUE16733", 2: "ENUM_VALUE16734", 3: "ENUM_VALUE16735", 4: "ENUM_VALUE16736", 5: "ENUM_VALUE16737", } Enum16732_value = map[string]int32{ "ENUM_VALUE16733": 1, "ENUM_VALUE16734": 2, "ENUM_VALUE16735": 3, "ENUM_VALUE16736": 4, "ENUM_VALUE16737": 5, } ) func (x Enum16732) Enum() *Enum16732 { p := new(Enum16732) *p = x return p } func (x Enum16732) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum16732) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[44].Descriptor() } func (Enum16732) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[44] } func (x Enum16732) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum16732) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum16732(num) return nil } // Deprecated: Use Enum16732.Descriptor instead. func (Enum16732) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{44} } type Enum16738 int32 const ( Enum16738_ENUM_VALUE16739 Enum16738 = 1 Enum16738_ENUM_VALUE16740 Enum16738 = 2 Enum16738_ENUM_VALUE16741 Enum16738 = 3 Enum16738_ENUM_VALUE16742 Enum16738 = 4 Enum16738_ENUM_VALUE16743 Enum16738 = 5 Enum16738_ENUM_VALUE16744 Enum16738 = 6 Enum16738_ENUM_VALUE16745 Enum16738 = 7 ) // Enum value maps for Enum16738. var ( Enum16738_name = map[int32]string{ 1: "ENUM_VALUE16739", 2: "ENUM_VALUE16740", 3: "ENUM_VALUE16741", 4: "ENUM_VALUE16742", 5: "ENUM_VALUE16743", 6: "ENUM_VALUE16744", 7: "ENUM_VALUE16745", } Enum16738_value = map[string]int32{ "ENUM_VALUE16739": 1, "ENUM_VALUE16740": 2, "ENUM_VALUE16741": 3, "ENUM_VALUE16742": 4, "ENUM_VALUE16743": 5, "ENUM_VALUE16744": 6, "ENUM_VALUE16745": 7, } ) func (x Enum16738) Enum() *Enum16738 { p := new(Enum16738) *p = x return p } func (x Enum16738) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum16738) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[45].Descriptor() } func (Enum16738) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[45] } func (x Enum16738) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum16738) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum16738(num) return nil } // Deprecated: Use Enum16738.Descriptor instead. func (Enum16738) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{45} } type Enum16698 int32 const ( Enum16698_ENUM_VALUE16699 Enum16698 = -1 Enum16698_ENUM_VALUE16700 Enum16698 = 100 Enum16698_ENUM_VALUE16701 Enum16698 = 2 Enum16698_ENUM_VALUE16702 Enum16698 = 0 Enum16698_ENUM_VALUE16703 Enum16698 = 1 Enum16698_ENUM_VALUE16704 Enum16698 = 4 Enum16698_ENUM_VALUE16705 Enum16698 = 11 Enum16698_ENUM_VALUE16706 Enum16698 = 12 Enum16698_ENUM_VALUE16707 Enum16698 = 3 Enum16698_ENUM_VALUE16708 Enum16698 = 5 Enum16698_ENUM_VALUE16709 Enum16698 = 6 Enum16698_ENUM_VALUE16710 Enum16698 = 7 Enum16698_ENUM_VALUE16711 Enum16698 = 8 Enum16698_ENUM_VALUE16712 Enum16698 = 9 Enum16698_ENUM_VALUE16713 Enum16698 = 10 Enum16698_ENUM_VALUE16714 Enum16698 = 13 Enum16698_ENUM_VALUE16715 Enum16698 = 14 Enum16698_ENUM_VALUE16716 Enum16698 = 15 Enum16698_ENUM_VALUE16717 Enum16698 = 16 Enum16698_ENUM_VALUE16718 Enum16698 = 18 Enum16698_ENUM_VALUE16719 Enum16698 = 17 Enum16698_ENUM_VALUE16720 Enum16698 = 19 Enum16698_ENUM_VALUE16721 Enum16698 = 20 ) // Enum value maps for Enum16698. var ( Enum16698_name = map[int32]string{ -1: "ENUM_VALUE16699", 100: "ENUM_VALUE16700", 2: "ENUM_VALUE16701", 0: "ENUM_VALUE16702", 1: "ENUM_VALUE16703", 4: "ENUM_VALUE16704", 11: "ENUM_VALUE16705", 12: "ENUM_VALUE16706", 3: "ENUM_VALUE16707", 5: "ENUM_VALUE16708", 6: "ENUM_VALUE16709", 7: "ENUM_VALUE16710", 8: "ENUM_VALUE16711", 9: "ENUM_VALUE16712", 10: "ENUM_VALUE16713", 13: "ENUM_VALUE16714", 14: "ENUM_VALUE16715", 15: "ENUM_VALUE16716", 16: "ENUM_VALUE16717", 18: "ENUM_VALUE16718", 17: "ENUM_VALUE16719", 19: "ENUM_VALUE16720", 20: "ENUM_VALUE16721", } Enum16698_value = map[string]int32{ "ENUM_VALUE16699": -1, "ENUM_VALUE16700": 100, "ENUM_VALUE16701": 2, "ENUM_VALUE16702": 0, "ENUM_VALUE16703": 1, "ENUM_VALUE16704": 4, "ENUM_VALUE16705": 11, "ENUM_VALUE16706": 12, "ENUM_VALUE16707": 3, "ENUM_VALUE16708": 5, "ENUM_VALUE16709": 6, "ENUM_VALUE16710": 7, "ENUM_VALUE16711": 8, "ENUM_VALUE16712": 9, "ENUM_VALUE16713": 10, "ENUM_VALUE16714": 13, "ENUM_VALUE16715": 14, "ENUM_VALUE16716": 15, "ENUM_VALUE16717": 16, "ENUM_VALUE16718": 18, "ENUM_VALUE16719": 17, "ENUM_VALUE16720": 19, "ENUM_VALUE16721": 20, } ) func (x Enum16698) Enum() *Enum16698 { p := new(Enum16698) *p = x return p } func (x Enum16698) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum16698) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[46].Descriptor() } func (Enum16698) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[46] } func (x Enum16698) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum16698) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum16698(num) return nil } // Deprecated: Use Enum16698.Descriptor instead. func (Enum16698) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{46} } type Enum16819 int32 const ( Enum16819_ENUM_VALUE16820 Enum16819 = 0 Enum16819_ENUM_VALUE16821 Enum16819 = 1 Enum16819_ENUM_VALUE16822 Enum16819 = 2 Enum16819_ENUM_VALUE16823 Enum16819 = 3 Enum16819_ENUM_VALUE16824 Enum16819 = 4 Enum16819_ENUM_VALUE16825 Enum16819 = 5 ) // Enum value maps for Enum16819. var ( Enum16819_name = map[int32]string{ 0: "ENUM_VALUE16820", 1: "ENUM_VALUE16821", 2: "ENUM_VALUE16822", 3: "ENUM_VALUE16823", 4: "ENUM_VALUE16824", 5: "ENUM_VALUE16825", } Enum16819_value = map[string]int32{ "ENUM_VALUE16820": 0, "ENUM_VALUE16821": 1, "ENUM_VALUE16822": 2, "ENUM_VALUE16823": 3, "ENUM_VALUE16824": 4, "ENUM_VALUE16825": 5, } ) func (x Enum16819) Enum() *Enum16819 { p := new(Enum16819) *p = x return p } func (x Enum16819) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum16819) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[47].Descriptor() } func (Enum16819) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[47] } func (x Enum16819) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum16819) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum16819(num) return nil } // Deprecated: Use Enum16819.Descriptor instead. func (Enum16819) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{47} } type Enum16925 int32 const ( Enum16925_ENUM_VALUE16926 Enum16925 = 0 Enum16925_ENUM_VALUE16927 Enum16925 = 1 Enum16925_ENUM_VALUE16928 Enum16925 = 2 Enum16925_ENUM_VALUE16929 Enum16925 = 3 Enum16925_ENUM_VALUE16930 Enum16925 = 4 Enum16925_ENUM_VALUE16931 Enum16925 = 5 Enum16925_ENUM_VALUE16932 Enum16925 = 6 Enum16925_ENUM_VALUE16933 Enum16925 = 7 Enum16925_ENUM_VALUE16934 Enum16925 = 8 Enum16925_ENUM_VALUE16935 Enum16925 = 9 Enum16925_ENUM_VALUE16936 Enum16925 = 10 Enum16925_ENUM_VALUE16937 Enum16925 = 11 Enum16925_ENUM_VALUE16938 Enum16925 = 12 Enum16925_ENUM_VALUE16939 Enum16925 = 13 ) // Enum value maps for Enum16925. var ( Enum16925_name = map[int32]string{ 0: "ENUM_VALUE16926", 1: "ENUM_VALUE16927", 2: "ENUM_VALUE16928", 3: "ENUM_VALUE16929", 4: "ENUM_VALUE16930", 5: "ENUM_VALUE16931", 6: "ENUM_VALUE16932", 7: "ENUM_VALUE16933", 8: "ENUM_VALUE16934", 9: "ENUM_VALUE16935", 10: "ENUM_VALUE16936", 11: "ENUM_VALUE16937", 12: "ENUM_VALUE16938", 13: "ENUM_VALUE16939", } Enum16925_value = map[string]int32{ "ENUM_VALUE16926": 0, "ENUM_VALUE16927": 1, "ENUM_VALUE16928": 2, "ENUM_VALUE16929": 3, "ENUM_VALUE16930": 4, "ENUM_VALUE16931": 5, "ENUM_VALUE16932": 6, "ENUM_VALUE16933": 7, "ENUM_VALUE16934": 8, "ENUM_VALUE16935": 9, "ENUM_VALUE16936": 10, "ENUM_VALUE16937": 11, "ENUM_VALUE16938": 12, "ENUM_VALUE16939": 13, } ) func (x Enum16925) Enum() *Enum16925 { p := new(Enum16925) *p = x return p } func (x Enum16925) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum16925) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[48].Descriptor() } func (Enum16925) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[48] } func (x Enum16925) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum16925) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum16925(num) return nil } // Deprecated: Use Enum16925.Descriptor instead. func (Enum16925) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{48} } type Enum22854 int32 const ( Enum22854_ENUM_VALUE22855 Enum22854 = 0 Enum22854_ENUM_VALUE22856 Enum22854 = 1 ) // Enum value maps for Enum22854. var ( Enum22854_name = map[int32]string{ 0: "ENUM_VALUE22855", 1: "ENUM_VALUE22856", } Enum22854_value = map[string]int32{ "ENUM_VALUE22855": 0, "ENUM_VALUE22856": 1, } ) func (x Enum22854) Enum() *Enum22854 { p := new(Enum22854) *p = x return p } func (x Enum22854) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum22854) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[49].Descriptor() } func (Enum22854) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[49] } func (x Enum22854) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum22854) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum22854(num) return nil } // Deprecated: Use Enum22854.Descriptor instead. func (Enum22854) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{49} } type Enum24361 int32 const ( Enum24361_ENUM_VALUE24362 Enum24361 = 0 Enum24361_ENUM_VALUE24363 Enum24361 = 1 Enum24361_ENUM_VALUE24364 Enum24361 = 2 Enum24361_ENUM_VALUE24365 Enum24361 = 3 ) // Enum value maps for Enum24361. var ( Enum24361_name = map[int32]string{ 0: "ENUM_VALUE24362", 1: "ENUM_VALUE24363", 2: "ENUM_VALUE24364", 3: "ENUM_VALUE24365", } Enum24361_value = map[string]int32{ "ENUM_VALUE24362": 0, "ENUM_VALUE24363": 1, "ENUM_VALUE24364": 2, "ENUM_VALUE24365": 3, } ) func (x Enum24361) Enum() *Enum24361 { p := new(Enum24361) *p = x return p } func (x Enum24361) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum24361) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[50].Descriptor() } func (Enum24361) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[50] } func (x Enum24361) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum24361) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum24361(num) return nil } // Deprecated: Use Enum24361.Descriptor instead. func (Enum24361) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{50} } type Enum16891 int32 const ( Enum16891_ENUM_VALUE16892 Enum16891 = 0 Enum16891_ENUM_VALUE16893 Enum16891 = 1 Enum16891_ENUM_VALUE16894 Enum16891 = 2 Enum16891_ENUM_VALUE16895 Enum16891 = 3 Enum16891_ENUM_VALUE16896 Enum16891 = 4 Enum16891_ENUM_VALUE16897 Enum16891 = 5 Enum16891_ENUM_VALUE16898 Enum16891 = 6 Enum16891_ENUM_VALUE16899 Enum16891 = 7 Enum16891_ENUM_VALUE16900 Enum16891 = 8 Enum16891_ENUM_VALUE16901 Enum16891 = 9 Enum16891_ENUM_VALUE16902 Enum16891 = 10 Enum16891_ENUM_VALUE16903 Enum16891 = 11 Enum16891_ENUM_VALUE16904 Enum16891 = 12 Enum16891_ENUM_VALUE16905 Enum16891 = 13 Enum16891_ENUM_VALUE16906 Enum16891 = 14 Enum16891_ENUM_VALUE16907 Enum16891 = 15 Enum16891_ENUM_VALUE16908 Enum16891 = 16 Enum16891_ENUM_VALUE16909 Enum16891 = 17 Enum16891_ENUM_VALUE16910 Enum16891 = 18 Enum16891_ENUM_VALUE16911 Enum16891 = 19 Enum16891_ENUM_VALUE16912 Enum16891 = 20 Enum16891_ENUM_VALUE16913 Enum16891 = 21 Enum16891_ENUM_VALUE16914 Enum16891 = 22 Enum16891_ENUM_VALUE16915 Enum16891 = 23 Enum16891_ENUM_VALUE16916 Enum16891 = 24 Enum16891_ENUM_VALUE16917 Enum16891 = 25 Enum16891_ENUM_VALUE16918 Enum16891 = 26 Enum16891_ENUM_VALUE16919 Enum16891 = 27 Enum16891_ENUM_VALUE16920 Enum16891 = 28 Enum16891_ENUM_VALUE16921 Enum16891 = 29 Enum16891_ENUM_VALUE16922 Enum16891 = 30 Enum16891_ENUM_VALUE16923 Enum16891 = 31 ) // Enum value maps for Enum16891. var ( Enum16891_name = map[int32]string{ 0: "ENUM_VALUE16892", 1: "ENUM_VALUE16893", 2: "ENUM_VALUE16894", 3: "ENUM_VALUE16895", 4: "ENUM_VALUE16896", 5: "ENUM_VALUE16897", 6: "ENUM_VALUE16898", 7: "ENUM_VALUE16899", 8: "ENUM_VALUE16900", 9: "ENUM_VALUE16901", 10: "ENUM_VALUE16902", 11: "ENUM_VALUE16903", 12: "ENUM_VALUE16904", 13: "ENUM_VALUE16905", 14: "ENUM_VALUE16906", 15: "ENUM_VALUE16907", 16: "ENUM_VALUE16908", 17: "ENUM_VALUE16909", 18: "ENUM_VALUE16910", 19: "ENUM_VALUE16911", 20: "ENUM_VALUE16912", 21: "ENUM_VALUE16913", 22: "ENUM_VALUE16914", 23: "ENUM_VALUE16915", 24: "ENUM_VALUE16916", 25: "ENUM_VALUE16917", 26: "ENUM_VALUE16918", 27: "ENUM_VALUE16919", 28: "ENUM_VALUE16920", 29: "ENUM_VALUE16921", 30: "ENUM_VALUE16922", 31: "ENUM_VALUE16923", } Enum16891_value = map[string]int32{ "ENUM_VALUE16892": 0, "ENUM_VALUE16893": 1, "ENUM_VALUE16894": 2, "ENUM_VALUE16895": 3, "ENUM_VALUE16896": 4, "ENUM_VALUE16897": 5, "ENUM_VALUE16898": 6, "ENUM_VALUE16899": 7, "ENUM_VALUE16900": 8, "ENUM_VALUE16901": 9, "ENUM_VALUE16902": 10, "ENUM_VALUE16903": 11, "ENUM_VALUE16904": 12, "ENUM_VALUE16905": 13, "ENUM_VALUE16906": 14, "ENUM_VALUE16907": 15, "ENUM_VALUE16908": 16, "ENUM_VALUE16909": 17, "ENUM_VALUE16910": 18, "ENUM_VALUE16911": 19, "ENUM_VALUE16912": 20, "ENUM_VALUE16913": 21, "ENUM_VALUE16914": 22, "ENUM_VALUE16915": 23, "ENUM_VALUE16916": 24, "ENUM_VALUE16917": 25, "ENUM_VALUE16918": 26, "ENUM_VALUE16919": 27, "ENUM_VALUE16920": 28, "ENUM_VALUE16921": 29, "ENUM_VALUE16922": 30, "ENUM_VALUE16923": 31, } ) func (x Enum16891) Enum() *Enum16891 { p := new(Enum16891) *p = x return p } func (x Enum16891) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum16891) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[51].Descriptor() } func (Enum16891) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[51] } func (x Enum16891) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum16891) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum16891(num) return nil } // Deprecated: Use Enum16891.Descriptor instead. func (Enum16891) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{51} } type Enum27361 int32 const ( Enum27361_ENUM_VALUE27362 Enum27361 = 0 Enum27361_ENUM_VALUE27363 Enum27361 = 1 Enum27361_ENUM_VALUE27364 Enum27361 = 2 Enum27361_ENUM_VALUE27365 Enum27361 = 3 Enum27361_ENUM_VALUE27366 Enum27361 = 4 ) // Enum value maps for Enum27361. var ( Enum27361_name = map[int32]string{ 0: "ENUM_VALUE27362", 1: "ENUM_VALUE27363", 2: "ENUM_VALUE27364", 3: "ENUM_VALUE27365", 4: "ENUM_VALUE27366", } Enum27361_value = map[string]int32{ "ENUM_VALUE27362": 0, "ENUM_VALUE27363": 1, "ENUM_VALUE27364": 2, "ENUM_VALUE27365": 3, "ENUM_VALUE27366": 4, } ) func (x Enum27361) Enum() *Enum27361 { p := new(Enum27361) *p = x return p } func (x Enum27361) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum27361) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[52].Descriptor() } func (Enum27361) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[52] } func (x Enum27361) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum27361) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum27361(num) return nil } // Deprecated: Use Enum27361.Descriptor instead. func (Enum27361) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{52} } type Enum33960 int32 const ( Enum33960_ENUM_VALUE33961 Enum33960 = 0 Enum33960_ENUM_VALUE33962 Enum33960 = 1 Enum33960_ENUM_VALUE33963 Enum33960 = 2 Enum33960_ENUM_VALUE33964 Enum33960 = 3 Enum33960_ENUM_VALUE33965 Enum33960 = 4 Enum33960_ENUM_VALUE33966 Enum33960 = 5 Enum33960_ENUM_VALUE33967 Enum33960 = 6 ) // Enum value maps for Enum33960. var ( Enum33960_name = map[int32]string{ 0: "ENUM_VALUE33961", 1: "ENUM_VALUE33962", 2: "ENUM_VALUE33963", 3: "ENUM_VALUE33964", 4: "ENUM_VALUE33965", 5: "ENUM_VALUE33966", 6: "ENUM_VALUE33967", } Enum33960_value = map[string]int32{ "ENUM_VALUE33961": 0, "ENUM_VALUE33962": 1, "ENUM_VALUE33963": 2, "ENUM_VALUE33964": 3, "ENUM_VALUE33965": 4, "ENUM_VALUE33966": 5, "ENUM_VALUE33967": 6, } ) func (x Enum33960) Enum() *Enum33960 { p := new(Enum33960) *p = x return p } func (x Enum33960) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum33960) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[53].Descriptor() } func (Enum33960) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[53] } func (x Enum33960) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum33960) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum33960(num) return nil } // Deprecated: Use Enum33960.Descriptor instead. func (Enum33960) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{53} } type Enum34388 int32 const ( Enum34388_ENUM_VALUE34389 Enum34388 = 1 ) // Enum value maps for Enum34388. var ( Enum34388_name = map[int32]string{ 1: "ENUM_VALUE34389", } Enum34388_value = map[string]int32{ "ENUM_VALUE34389": 1, } ) func (x Enum34388) Enum() *Enum34388 { p := new(Enum34388) *p = x return p } func (x Enum34388) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum34388) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[54].Descriptor() } func (Enum34388) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[54] } func (x Enum34388) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum34388) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum34388(num) return nil } // Deprecated: Use Enum34388.Descriptor instead. func (Enum34388) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{54} } type Enum35477 int32 const ( Enum35477_ENUM_VALUE35478 Enum35477 = 4 Enum35477_ENUM_VALUE35479 Enum35477 = 3 Enum35477_ENUM_VALUE35480 Enum35477 = 2 Enum35477_ENUM_VALUE35481 Enum35477 = 1 Enum35477_ENUM_VALUE35482 Enum35477 = 0 ) // Enum value maps for Enum35477. var ( Enum35477_name = map[int32]string{ 4: "ENUM_VALUE35478", 3: "ENUM_VALUE35479", 2: "ENUM_VALUE35480", 1: "ENUM_VALUE35481", 0: "ENUM_VALUE35482", } Enum35477_value = map[string]int32{ "ENUM_VALUE35478": 4, "ENUM_VALUE35479": 3, "ENUM_VALUE35480": 2, "ENUM_VALUE35481": 1, "ENUM_VALUE35482": 0, } ) func (x Enum35477) Enum() *Enum35477 { p := new(Enum35477) *p = x return p } func (x Enum35477) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum35477) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[55].Descriptor() } func (Enum35477) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[55] } func (x Enum35477) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum35477) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum35477(num) return nil } // Deprecated: Use Enum35477.Descriptor instead. func (Enum35477) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{55} } type Enum35507 int32 const ( Enum35507_ENUM_VALUE35508 Enum35507 = 0 Enum35507_ENUM_VALUE35509 Enum35507 = 1 Enum35507_ENUM_VALUE35510 Enum35507 = 2 Enum35507_ENUM_VALUE35511 Enum35507 = 3 Enum35507_ENUM_VALUE35512 Enum35507 = 4 Enum35507_ENUM_VALUE35513 Enum35507 = 5 Enum35507_ENUM_VALUE35514 Enum35507 = 6 Enum35507_ENUM_VALUE35515 Enum35507 = 7 Enum35507_ENUM_VALUE35516 Enum35507 = 8 Enum35507_ENUM_VALUE35517 Enum35507 = 9 ) // Enum value maps for Enum35507. var ( Enum35507_name = map[int32]string{ 0: "ENUM_VALUE35508", 1: "ENUM_VALUE35509", 2: "ENUM_VALUE35510", 3: "ENUM_VALUE35511", 4: "ENUM_VALUE35512", 5: "ENUM_VALUE35513", 6: "ENUM_VALUE35514", 7: "ENUM_VALUE35515", 8: "ENUM_VALUE35516", 9: "ENUM_VALUE35517", } Enum35507_value = map[string]int32{ "ENUM_VALUE35508": 0, "ENUM_VALUE35509": 1, "ENUM_VALUE35510": 2, "ENUM_VALUE35511": 3, "ENUM_VALUE35512": 4, "ENUM_VALUE35513": 5, "ENUM_VALUE35514": 6, "ENUM_VALUE35515": 7, "ENUM_VALUE35516": 8, "ENUM_VALUE35517": 9, } ) func (x Enum35507) Enum() *Enum35507 { p := new(Enum35507) *p = x return p } func (x Enum35507) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum35507) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[56].Descriptor() } func (Enum35507) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[56] } func (x Enum35507) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum35507) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum35507(num) return nil } // Deprecated: Use Enum35507.Descriptor instead. func (Enum35507) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{56} } type Enum36860 int32 const ( Enum36860_ENUM_VALUE36861 Enum36860 = 0 Enum36860_ENUM_VALUE36862 Enum36860 = 1 Enum36860_ENUM_VALUE36863 Enum36860 = 2 Enum36860_ENUM_VALUE36864 Enum36860 = 3 Enum36860_ENUM_VALUE36865 Enum36860 = 4 Enum36860_ENUM_VALUE36866 Enum36860 = 5 Enum36860_ENUM_VALUE36867 Enum36860 = 6 Enum36860_ENUM_VALUE36868 Enum36860 = 7 ) // Enum value maps for Enum36860. var ( Enum36860_name = map[int32]string{ 0: "ENUM_VALUE36861", 1: "ENUM_VALUE36862", 2: "ENUM_VALUE36863", 3: "ENUM_VALUE36864", 4: "ENUM_VALUE36865", 5: "ENUM_VALUE36866", 6: "ENUM_VALUE36867", 7: "ENUM_VALUE36868", } Enum36860_value = map[string]int32{ "ENUM_VALUE36861": 0, "ENUM_VALUE36862": 1, "ENUM_VALUE36863": 2, "ENUM_VALUE36864": 3, "ENUM_VALUE36865": 4, "ENUM_VALUE36866": 5, "ENUM_VALUE36867": 6, "ENUM_VALUE36868": 7, } ) func (x Enum36860) Enum() *Enum36860 { p := new(Enum36860) *p = x return p } func (x Enum36860) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum36860) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[57].Descriptor() } func (Enum36860) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[57] } func (x Enum36860) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum36860) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum36860(num) return nil } // Deprecated: Use Enum36860.Descriptor instead. func (Enum36860) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{57} } type Enum36890 int32 const ( Enum36890_ENUM_VALUE36891 Enum36890 = 0 Enum36890_ENUM_VALUE36892 Enum36890 = 1 ) // Enum value maps for Enum36890. var ( Enum36890_name = map[int32]string{ 0: "ENUM_VALUE36891", 1: "ENUM_VALUE36892", } Enum36890_value = map[string]int32{ "ENUM_VALUE36891": 0, "ENUM_VALUE36892": 1, } ) func (x Enum36890) Enum() *Enum36890 { p := new(Enum36890) *p = x return p } func (x Enum36890) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum36890) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[58].Descriptor() } func (Enum36890) Type() protoreflect.EnumType { return &file_datasets_google_message3_benchmark_message3_8_proto_enumTypes[58] } func (x Enum36890) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum36890) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum36890(num) return nil } // Deprecated: Use Enum36890.Descriptor instead. func (Enum36890) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP(), []int{58} } var File_datasets_google_message3_benchmark_message3_8_proto protoreflect.FileDescriptor var file_datasets_google_message3_benchmark_message3_8_proto_rawDesc = []byte{ 0x0a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x5f, 0x38, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x2a, 0x2f, 0x0a, 0x07, 0x45, 0x6e, 0x75, 0x6d, 0x37, 0x32, 0x30, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x37, 0x32, 0x31, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x37, 0x32, 0x32, 0x10, 0x02, 0x2a, 0xa2, 0x1d, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x34, 0x37, 0x36, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x37, 0x37, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x37, 0x38, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x37, 0x39, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x38, 0x30, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x38, 0x31, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x38, 0x32, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x38, 0x33, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x38, 0x34, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x38, 0x35, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x38, 0x36, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x38, 0x37, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x38, 0x38, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x38, 0x39, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x39, 0x30, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x39, 0x31, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x39, 0x32, 0x10, 0x0f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x39, 0x33, 0x10, 0x10, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x39, 0x34, 0x10, 0x11, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x39, 0x35, 0x10, 0x12, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x39, 0x36, 0x10, 0x13, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x39, 0x37, 0x10, 0x14, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x39, 0x38, 0x10, 0x15, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x39, 0x39, 0x10, 0x16, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x30, 0x30, 0x10, 0x17, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x30, 0x31, 0x10, 0x18, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x30, 0x32, 0x10, 0x19, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x30, 0x33, 0x10, 0x1a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x30, 0x34, 0x10, 0x1b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x30, 0x35, 0x10, 0x1c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x30, 0x36, 0x10, 0x1d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x30, 0x37, 0x10, 0x1e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x30, 0x38, 0x10, 0x1f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x30, 0x39, 0x10, 0x20, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x31, 0x30, 0x10, 0x21, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x31, 0x31, 0x10, 0x22, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x31, 0x32, 0x10, 0x23, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x31, 0x33, 0x10, 0x24, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x31, 0x34, 0x10, 0x25, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x31, 0x35, 0x10, 0x26, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x31, 0x36, 0x10, 0x27, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x31, 0x37, 0x10, 0x28, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x31, 0x38, 0x10, 0x29, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x31, 0x39, 0x10, 0x2a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x32, 0x30, 0x10, 0x2b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x32, 0x31, 0x10, 0x2c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x32, 0x32, 0x10, 0x2d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x32, 0x33, 0x10, 0x2e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x32, 0x34, 0x10, 0x2f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x32, 0x35, 0x10, 0x30, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x32, 0x36, 0x10, 0x31, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x32, 0x37, 0x10, 0x32, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x32, 0x38, 0x10, 0x33, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x32, 0x39, 0x10, 0x34, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x33, 0x30, 0x10, 0x35, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x33, 0x31, 0x10, 0x36, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x33, 0x32, 0x10, 0x37, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x33, 0x33, 0x10, 0x38, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x33, 0x34, 0x10, 0x39, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x33, 0x35, 0x10, 0x3a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x33, 0x36, 0x10, 0x3b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x33, 0x37, 0x10, 0x3c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x33, 0x38, 0x10, 0x3d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x33, 0x39, 0x10, 0x3e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x30, 0x10, 0x3f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x31, 0x10, 0x40, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x32, 0x10, 0x41, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x33, 0x10, 0x42, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x34, 0x10, 0x43, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x35, 0x10, 0x44, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x36, 0x10, 0x45, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x37, 0x10, 0x46, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x38, 0x10, 0x47, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x39, 0x10, 0x48, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x30, 0x10, 0x49, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x31, 0x10, 0x4a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x32, 0x10, 0x4b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x33, 0x10, 0x4c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x34, 0x10, 0x4d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x35, 0x10, 0x4e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x36, 0x10, 0x4f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x37, 0x10, 0x50, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x38, 0x10, 0x51, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x39, 0x10, 0x52, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x36, 0x30, 0x10, 0x53, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x36, 0x31, 0x10, 0x54, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x36, 0x32, 0x10, 0x55, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x36, 0x33, 0x10, 0x56, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x36, 0x34, 0x10, 0x57, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x36, 0x35, 0x10, 0x58, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x36, 0x36, 0x10, 0x59, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x36, 0x37, 0x10, 0x5a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x36, 0x38, 0x10, 0x5b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x36, 0x39, 0x10, 0x5c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x37, 0x30, 0x10, 0x5d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x37, 0x31, 0x10, 0x5e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x37, 0x32, 0x10, 0x5f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x37, 0x33, 0x10, 0x60, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x37, 0x34, 0x10, 0x61, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x37, 0x35, 0x10, 0x62, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x37, 0x36, 0x10, 0x63, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x37, 0x37, 0x10, 0x64, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x37, 0x38, 0x10, 0x65, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x37, 0x39, 0x10, 0x66, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x38, 0x30, 0x10, 0x67, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x38, 0x31, 0x10, 0x68, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x38, 0x32, 0x10, 0x69, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x38, 0x33, 0x10, 0x6a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x38, 0x34, 0x10, 0x6b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x38, 0x35, 0x10, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x38, 0x36, 0x10, 0x6d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x38, 0x37, 0x10, 0x6e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x38, 0x38, 0x10, 0x6f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x38, 0x39, 0x10, 0x70, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x39, 0x30, 0x10, 0x71, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x39, 0x31, 0x10, 0x72, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x39, 0x32, 0x10, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x39, 0x33, 0x10, 0x74, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x39, 0x34, 0x10, 0x75, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x39, 0x35, 0x10, 0x76, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x39, 0x36, 0x10, 0x77, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x39, 0x37, 0x10, 0x78, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x39, 0x38, 0x10, 0x79, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x39, 0x39, 0x10, 0x7a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x30, 0x30, 0x10, 0x7b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x30, 0x31, 0x10, 0x7c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x30, 0x32, 0x10, 0x7d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x30, 0x33, 0x10, 0x7e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x30, 0x34, 0x10, 0x7f, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x30, 0x35, 0x10, 0x80, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x30, 0x36, 0x10, 0x81, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x30, 0x37, 0x10, 0x82, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x30, 0x38, 0x10, 0x83, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x30, 0x39, 0x10, 0x84, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x31, 0x30, 0x10, 0x85, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x31, 0x31, 0x10, 0x86, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x31, 0x32, 0x10, 0x87, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x31, 0x33, 0x10, 0x88, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x31, 0x34, 0x10, 0x89, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x31, 0x35, 0x10, 0x8a, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x31, 0x36, 0x10, 0x8b, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x31, 0x37, 0x10, 0x8c, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x31, 0x38, 0x10, 0x8d, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x31, 0x39, 0x10, 0x8e, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x32, 0x30, 0x10, 0x8f, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x32, 0x31, 0x10, 0x90, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x32, 0x32, 0x10, 0x91, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x32, 0x33, 0x10, 0x92, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x32, 0x34, 0x10, 0x93, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x32, 0x35, 0x10, 0x94, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x32, 0x36, 0x10, 0x95, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x32, 0x37, 0x10, 0x96, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x32, 0x38, 0x10, 0x97, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x32, 0x39, 0x10, 0x98, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x33, 0x30, 0x10, 0x99, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x33, 0x31, 0x10, 0x9a, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x33, 0x32, 0x10, 0x9b, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x33, 0x33, 0x10, 0x9c, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x33, 0x34, 0x10, 0x9d, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x33, 0x35, 0x10, 0x9e, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x33, 0x36, 0x10, 0x9f, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x33, 0x37, 0x10, 0xa0, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x33, 0x38, 0x10, 0xa1, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x33, 0x39, 0x10, 0xa2, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x34, 0x30, 0x10, 0xa3, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x34, 0x31, 0x10, 0xa4, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x34, 0x32, 0x10, 0xa5, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x34, 0x33, 0x10, 0xa6, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x34, 0x34, 0x10, 0xa7, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x34, 0x35, 0x10, 0xa8, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x34, 0x36, 0x10, 0xa9, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x34, 0x37, 0x10, 0xaa, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x34, 0x38, 0x10, 0xab, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x34, 0x39, 0x10, 0xac, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x35, 0x30, 0x10, 0xad, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x35, 0x31, 0x10, 0xae, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x35, 0x32, 0x10, 0xaf, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x35, 0x33, 0x10, 0xb0, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x35, 0x34, 0x10, 0xb1, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x35, 0x35, 0x10, 0xb2, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x35, 0x36, 0x10, 0xb3, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x35, 0x37, 0x10, 0xb4, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x35, 0x38, 0x10, 0xb5, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x35, 0x39, 0x10, 0xb6, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x36, 0x30, 0x10, 0xb7, 0x01, 0x2a, 0xfa, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x38, 0x30, 0x35, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x30, 0x36, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x30, 0x37, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x30, 0x38, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x30, 0x39, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x31, 0x30, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x31, 0x31, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x31, 0x32, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x31, 0x33, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x31, 0x34, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x31, 0x35, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x31, 0x36, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x31, 0x37, 0x10, 0x0a, 0x2a, 0x9a, 0x03, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x37, 0x38, 0x33, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x38, 0x34, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x38, 0x35, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x38, 0x36, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x38, 0x37, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x38, 0x38, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x38, 0x39, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x39, 0x30, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x39, 0x31, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x39, 0x32, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x39, 0x33, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x39, 0x34, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x39, 0x35, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x39, 0x36, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x39, 0x37, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x39, 0x38, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x39, 0x39, 0x10, 0x0f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x30, 0x30, 0x10, 0x10, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x30, 0x31, 0x10, 0x14, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x30, 0x32, 0x10, 0x15, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x30, 0x33, 0x10, 0x32, 0x2a, 0xf2, 0x02, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x38, 0x35, 0x31, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x35, 0x32, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x35, 0x33, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x35, 0x34, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x35, 0x35, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x35, 0x36, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x35, 0x37, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x35, 0x38, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x35, 0x39, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x36, 0x30, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x36, 0x31, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x36, 0x32, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x36, 0x33, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x36, 0x34, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x36, 0x35, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x36, 0x36, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x36, 0x37, 0x10, 0x0f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x36, 0x38, 0x10, 0x10, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x36, 0x39, 0x10, 0x11, 0x2a, 0x3c, 0x0a, 0x0a, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x4e, 0x55, 0x53, 0x45, 0x44, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x4e, 0x55, 0x53, 0x45, 0x44, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x10, 0x01, 0x2a, 0x6e, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x34, 0x31, 0x34, 0x36, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x34, 0x31, 0x34, 0x37, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x34, 0x31, 0x34, 0x38, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x34, 0x31, 0x34, 0x39, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x34, 0x31, 0x35, 0x30, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x34, 0x31, 0x35, 0x31, 0x10, 0x04, 0x2a, 0x32, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x34, 0x31, 0x36, 0x30, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x34, 0x31, 0x36, 0x31, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x34, 0x31, 0x36, 0x32, 0x10, 0x01, 0x2a, 0x96, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x34, 0x31, 0x35, 0x32, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x34, 0x31, 0x35, 0x33, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x34, 0x31, 0x35, 0x34, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x34, 0x31, 0x35, 0x35, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x34, 0x31, 0x35, 0x36, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x34, 0x31, 0x35, 0x37, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x34, 0x31, 0x35, 0x38, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x34, 0x31, 0x35, 0x39, 0x10, 0x06, 0x2a, 0xc2, 0x03, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x30, 0x32, 0x35, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x32, 0x36, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x32, 0x37, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x32, 0x38, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x32, 0x39, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x33, 0x30, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x33, 0x31, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x33, 0x32, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x33, 0x33, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x33, 0x34, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x33, 0x35, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x33, 0x36, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x33, 0x37, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x33, 0x38, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x33, 0x39, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x34, 0x30, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x34, 0x31, 0x10, 0x0f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x34, 0x32, 0x10, 0x10, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x34, 0x33, 0x10, 0x11, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x34, 0x34, 0x10, 0x12, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x34, 0x35, 0x10, 0x13, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x34, 0x36, 0x10, 0x14, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x34, 0x37, 0x10, 0x15, 0x2a, 0xb6, 0x02, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x30, 0x36, 0x35, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x36, 0x36, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x36, 0x37, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x36, 0x38, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x36, 0x39, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x37, 0x30, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x37, 0x31, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x37, 0x32, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x37, 0x33, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x37, 0x34, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x37, 0x35, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x37, 0x36, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x37, 0x37, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x37, 0x38, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x37, 0x39, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x38, 0x30, 0x10, 0x0e, 0x2a, 0xaa, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x35, 0x37, 0x39, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x38, 0x30, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x38, 0x31, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x38, 0x32, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x38, 0x33, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x38, 0x34, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x38, 0x35, 0x10, 0x0f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x38, 0x36, 0x10, 0x19, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x38, 0x37, 0x10, 0x1e, 0x2a, 0xb2, 0x05, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x35, 0x38, 0x38, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x38, 0x39, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x39, 0x30, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x39, 0x31, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x39, 0x32, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x39, 0x33, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x39, 0x34, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x39, 0x35, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x39, 0x36, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x39, 0x37, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x39, 0x38, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x39, 0x39, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x30, 0x30, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x30, 0x31, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x30, 0x32, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x30, 0x33, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x30, 0x34, 0x10, 0x0f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x30, 0x35, 0x10, 0x10, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x30, 0x36, 0x10, 0x11, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x30, 0x37, 0x10, 0x13, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x30, 0x38, 0x10, 0x14, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x30, 0x39, 0x10, 0x15, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x31, 0x30, 0x10, 0x16, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x31, 0x31, 0x10, 0x17, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x31, 0x32, 0x10, 0x18, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x31, 0x33, 0x10, 0x19, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x31, 0x34, 0x10, 0x1a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x31, 0x35, 0x10, 0x1b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x31, 0x36, 0x10, 0x1c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x31, 0x37, 0x10, 0x1d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x31, 0x38, 0x10, 0x1e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x31, 0x39, 0x10, 0x1f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x32, 0x30, 0x10, 0x20, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x32, 0x31, 0x10, 0x21, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x32, 0x32, 0x10, 0x22, 0x2a, 0x46, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x37, 0x36, 0x39, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x37, 0x37, 0x30, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x37, 0x37, 0x31, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x37, 0x37, 0x32, 0x10, 0x02, 0x2a, 0x96, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x37, 0x37, 0x34, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x37, 0x37, 0x35, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x37, 0x37, 0x36, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x37, 0x37, 0x37, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x37, 0x37, 0x38, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x37, 0x37, 0x39, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x37, 0x38, 0x30, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x37, 0x38, 0x31, 0x10, 0x06, 0x2a, 0x82, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x37, 0x38, 0x32, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x37, 0x38, 0x33, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x37, 0x38, 0x34, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x37, 0x38, 0x35, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x37, 0x38, 0x36, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x37, 0x38, 0x37, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x37, 0x38, 0x38, 0x10, 0x05, 0x2a, 0x5a, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x38, 0x35, 0x38, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x38, 0x35, 0x39, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x38, 0x36, 0x30, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x38, 0x36, 0x31, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x38, 0x36, 0x32, 0x10, 0x04, 0x2a, 0x82, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x38, 0x31, 0x35, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x38, 0x31, 0x36, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x38, 0x31, 0x37, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x38, 0x31, 0x38, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x38, 0x31, 0x39, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x38, 0x32, 0x30, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x38, 0x32, 0x31, 0x10, 0x05, 0x2a, 0x5a, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x38, 0x32, 0x32, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x38, 0x32, 0x33, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x38, 0x32, 0x34, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x38, 0x32, 0x35, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x38, 0x32, 0x36, 0x10, 0x03, 0x2a, 0x46, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x37, 0x36, 0x35, 0x34, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x37, 0x36, 0x35, 0x35, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x37, 0x36, 0x35, 0x36, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x37, 0x36, 0x35, 0x37, 0x10, 0x03, 0x2a, 0x46, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x38, 0x32, 0x39, 0x32, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x32, 0x39, 0x33, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x32, 0x39, 0x34, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x32, 0x39, 0x35, 0x10, 0x02, 0x2a, 0x46, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x38, 0x34, 0x35, 0x30, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x34, 0x35, 0x31, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x34, 0x35, 0x32, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x34, 0x35, 0x33, 0x10, 0x02, 0x2a, 0x6e, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x38, 0x39, 0x30, 0x30, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x39, 0x30, 0x31, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x39, 0x30, 0x32, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x39, 0x30, 0x33, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x39, 0x30, 0x34, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x39, 0x30, 0x35, 0x10, 0x04, 0x2a, 0x6e, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x38, 0x39, 0x34, 0x35, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x39, 0x34, 0x36, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x39, 0x34, 0x37, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x39, 0x34, 0x38, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x39, 0x34, 0x39, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x39, 0x35, 0x30, 0x10, 0x04, 0x2a, 0xaa, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x38, 0x39, 0x35, 0x31, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x39, 0x35, 0x32, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x39, 0x35, 0x33, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x39, 0x35, 0x34, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x39, 0x35, 0x35, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x39, 0x35, 0x36, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x39, 0x35, 0x37, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x39, 0x35, 0x38, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x39, 0x35, 0x39, 0x10, 0x08, 0x2a, 0x97, 0x0d, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x39, 0x32, 0x34, 0x33, 0x12, 0x1b, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x34, 0x34, 0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x34, 0x35, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x34, 0x36, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x34, 0x37, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x34, 0x38, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x34, 0x39, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x35, 0x30, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x35, 0x31, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x35, 0x32, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x35, 0x33, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x35, 0x34, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x35, 0x35, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x35, 0x36, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x35, 0x37, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x35, 0x38, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x35, 0x39, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x36, 0x30, 0x10, 0x0f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x36, 0x31, 0x10, 0x10, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x36, 0x32, 0x10, 0x11, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x36, 0x33, 0x10, 0x47, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x36, 0x34, 0x10, 0x48, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x36, 0x35, 0x10, 0x49, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x36, 0x36, 0x10, 0x4a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x36, 0x37, 0x10, 0x12, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x36, 0x38, 0x10, 0x14, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x36, 0x39, 0x10, 0x15, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x37, 0x30, 0x10, 0x16, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x37, 0x31, 0x10, 0x17, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x37, 0x32, 0x10, 0x3d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x37, 0x33, 0x10, 0x3e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x37, 0x34, 0x10, 0x3f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x37, 0x35, 0x10, 0x40, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x37, 0x36, 0x10, 0x42, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x37, 0x37, 0x10, 0x43, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x37, 0x38, 0x10, 0x18, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x37, 0x39, 0x10, 0x19, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x38, 0x30, 0x10, 0x1a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x38, 0x31, 0x10, 0x1b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x38, 0x32, 0x10, 0x1c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x38, 0x33, 0x10, 0x1d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x38, 0x34, 0x10, 0x1e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x38, 0x35, 0x10, 0x1f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x38, 0x36, 0x10, 0x20, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x38, 0x37, 0x10, 0x21, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x38, 0x38, 0x10, 0x22, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x38, 0x39, 0x10, 0x23, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x39, 0x30, 0x10, 0x24, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x39, 0x31, 0x10, 0x25, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x39, 0x32, 0x10, 0x26, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x39, 0x33, 0x10, 0x27, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x39, 0x34, 0x10, 0x28, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x39, 0x35, 0x10, 0x29, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x39, 0x36, 0x10, 0x2a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x39, 0x37, 0x10, 0x2b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x39, 0x38, 0x10, 0x2c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x32, 0x39, 0x39, 0x10, 0x2d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x30, 0x30, 0x10, 0x2e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x30, 0x31, 0x10, 0x2f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x30, 0x32, 0x10, 0x30, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x30, 0x33, 0x10, 0x31, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x30, 0x34, 0x10, 0x32, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x30, 0x35, 0x10, 0x33, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x30, 0x36, 0x10, 0x34, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x30, 0x37, 0x10, 0x35, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x30, 0x38, 0x10, 0x36, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x30, 0x39, 0x10, 0x37, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x31, 0x30, 0x10, 0x38, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x31, 0x31, 0x10, 0x39, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x31, 0x32, 0x10, 0x3a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x31, 0x33, 0x10, 0x3b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x31, 0x34, 0x10, 0x3c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x31, 0x35, 0x10, 0x44, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x31, 0x36, 0x10, 0x45, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x31, 0x37, 0x10, 0x46, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x31, 0x38, 0x10, 0xe8, 0x07, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x31, 0x39, 0x10, 0xe9, 0x07, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x32, 0x30, 0x10, 0xea, 0x07, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x32, 0x31, 0x10, 0xeb, 0x07, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x32, 0x32, 0x10, 0xec, 0x07, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x32, 0x33, 0x10, 0xed, 0x07, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x32, 0x34, 0x10, 0xee, 0x07, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x32, 0x35, 0x10, 0xef, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x39, 0x33, 0x32, 0x36, 0x10, 0x41, 0x2a, 0xc8, 0x01, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x30, 0x31, 0x35, 0x37, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x31, 0x35, 0x38, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x31, 0x35, 0x39, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x31, 0x36, 0x30, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x31, 0x36, 0x31, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x31, 0x36, 0x32, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x31, 0x36, 0x33, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x31, 0x36, 0x34, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x31, 0x36, 0x35, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x31, 0x36, 0x36, 0x10, 0x08, 0x2a, 0xc8, 0x01, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x30, 0x31, 0x36, 0x37, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x31, 0x36, 0x38, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x31, 0x36, 0x39, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x31, 0x37, 0x30, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x31, 0x37, 0x31, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x31, 0x37, 0x32, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x31, 0x37, 0x33, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x31, 0x37, 0x34, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x31, 0x37, 0x35, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x31, 0x37, 0x36, 0x10, 0x08, 0x2a, 0xca, 0x02, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x38, 0x38, 0x36, 0x32, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x38, 0x36, 0x33, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x38, 0x36, 0x34, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x38, 0x36, 0x35, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x38, 0x36, 0x36, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x38, 0x36, 0x37, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x38, 0x36, 0x38, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x38, 0x36, 0x39, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x38, 0x37, 0x30, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x38, 0x37, 0x31, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x38, 0x37, 0x32, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x38, 0x37, 0x33, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x38, 0x37, 0x34, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x38, 0x37, 0x35, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x38, 0x37, 0x36, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x38, 0x37, 0x37, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x38, 0x38, 0x37, 0x38, 0x10, 0x0f, 0x2a, 0xc8, 0x01, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x30, 0x33, 0x32, 0x35, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x32, 0x36, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x32, 0x37, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x32, 0x38, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x32, 0x39, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x33, 0x30, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x33, 0x31, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x33, 0x32, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x33, 0x33, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x33, 0x34, 0x10, 0x08, 0x2a, 0x20, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x30, 0x33, 0x33, 0x35, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x33, 0x36, 0x10, 0x00, 0x2a, 0x35, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x30, 0x33, 0x33, 0x37, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x33, 0x38, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x33, 0x39, 0x10, 0x01, 0x2a, 0x85, 0x03, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x30, 0x33, 0x39, 0x32, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x39, 0x33, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x39, 0x34, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x39, 0x35, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x39, 0x36, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x39, 0x37, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x39, 0x38, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x39, 0x39, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x34, 0x30, 0x30, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x34, 0x30, 0x31, 0x10, 0x08, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x34, 0x30, 0x32, 0x10, 0x0f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x34, 0x30, 0x33, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x34, 0x30, 0x34, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x34, 0x30, 0x35, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x34, 0x30, 0x36, 0x10, 0x0c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x34, 0x30, 0x37, 0x10, 0x0d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x34, 0x30, 0x38, 0x10, 0x0e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x34, 0x30, 0x39, 0x10, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x34, 0x31, 0x30, 0x10, 0x66, 0x2a, 0x9f, 0x3e, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x31, 0x31, 0x30, 0x37, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x30, 0x38, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x30, 0x39, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x31, 0x30, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x31, 0x31, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x31, 0x32, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x31, 0x33, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x31, 0x34, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x31, 0x35, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x31, 0x36, 0x10, 0x08, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x31, 0x37, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x31, 0x38, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x31, 0x39, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x32, 0x30, 0x10, 0x0c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x32, 0x31, 0x10, 0x0d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x32, 0x32, 0x10, 0x0e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x32, 0x33, 0x10, 0x0f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x32, 0x34, 0x10, 0x10, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x32, 0x35, 0x10, 0x11, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x32, 0x36, 0x10, 0x12, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x32, 0x37, 0x10, 0x13, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x32, 0x38, 0x10, 0x14, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x32, 0x39, 0x10, 0x15, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x33, 0x30, 0x10, 0x16, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x33, 0x31, 0x10, 0x17, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x33, 0x32, 0x10, 0x18, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x33, 0x33, 0x10, 0x19, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x33, 0x34, 0x10, 0x1a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x33, 0x35, 0x10, 0x1b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x33, 0x36, 0x10, 0x1c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x33, 0x37, 0x10, 0x1d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x33, 0x38, 0x10, 0x1e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x33, 0x39, 0x10, 0x1f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x34, 0x30, 0x10, 0x20, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x34, 0x31, 0x10, 0x21, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x34, 0x32, 0x10, 0x22, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x34, 0x33, 0x10, 0x23, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x34, 0x34, 0x10, 0x24, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x34, 0x35, 0x10, 0x25, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x34, 0x36, 0x10, 0x26, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x34, 0x37, 0x10, 0x27, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x34, 0x38, 0x10, 0x28, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x34, 0x39, 0x10, 0x29, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x35, 0x30, 0x10, 0x2a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x35, 0x31, 0x10, 0x2b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x35, 0x32, 0x10, 0x2c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x35, 0x33, 0x10, 0x2d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x35, 0x34, 0x10, 0x2e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x35, 0x35, 0x10, 0x2f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x35, 0x36, 0x10, 0x30, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x35, 0x37, 0x10, 0x31, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x35, 0x38, 0x10, 0x32, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x35, 0x39, 0x10, 0x33, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x36, 0x30, 0x10, 0x34, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x36, 0x31, 0x10, 0x35, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x36, 0x32, 0x10, 0x36, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x36, 0x33, 0x10, 0x37, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x36, 0x34, 0x10, 0x38, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x36, 0x35, 0x10, 0x39, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x36, 0x36, 0x10, 0x3a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x36, 0x37, 0x10, 0x3b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x36, 0x38, 0x10, 0x3c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x36, 0x39, 0x10, 0x3d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x37, 0x30, 0x10, 0x3e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x37, 0x31, 0x10, 0x3f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x37, 0x32, 0x10, 0x40, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x37, 0x33, 0x10, 0x41, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x37, 0x34, 0x10, 0x42, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x37, 0x35, 0x10, 0x43, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x37, 0x36, 0x10, 0x44, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x37, 0x37, 0x10, 0x45, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x37, 0x38, 0x10, 0x46, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x37, 0x39, 0x10, 0x47, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x38, 0x30, 0x10, 0x48, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x38, 0x31, 0x10, 0x49, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x38, 0x32, 0x10, 0x4a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x38, 0x33, 0x10, 0x4b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x38, 0x34, 0x10, 0x4c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x38, 0x35, 0x10, 0x4d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x38, 0x36, 0x10, 0x4e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x38, 0x37, 0x10, 0x4f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x38, 0x38, 0x10, 0x50, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x38, 0x39, 0x10, 0x51, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x39, 0x30, 0x10, 0x52, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x39, 0x31, 0x10, 0x53, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x39, 0x32, 0x10, 0x54, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x39, 0x33, 0x10, 0x55, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x39, 0x34, 0x10, 0x56, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x39, 0x35, 0x10, 0x57, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x39, 0x36, 0x10, 0x58, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x39, 0x37, 0x10, 0x59, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x39, 0x38, 0x10, 0x5a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x39, 0x39, 0x10, 0x5b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x30, 0x30, 0x10, 0x5c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x30, 0x31, 0x10, 0x5d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x30, 0x32, 0x10, 0x5e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x30, 0x33, 0x10, 0x5f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x30, 0x34, 0x10, 0x60, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x30, 0x35, 0x10, 0x61, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x30, 0x36, 0x10, 0x62, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x30, 0x37, 0x10, 0x63, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x30, 0x38, 0x10, 0x64, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x30, 0x39, 0x10, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x31, 0x30, 0x10, 0x66, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x31, 0x31, 0x10, 0x67, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x31, 0x32, 0x10, 0x68, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x31, 0x33, 0x10, 0x69, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x31, 0x34, 0x10, 0x6a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x31, 0x35, 0x10, 0x6b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x31, 0x36, 0x10, 0x6c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x31, 0x37, 0x10, 0x6d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x31, 0x38, 0x10, 0x6e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x31, 0x39, 0x10, 0x6f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x32, 0x30, 0x10, 0x70, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x32, 0x31, 0x10, 0x71, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x32, 0x32, 0x10, 0x72, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x32, 0x33, 0x10, 0x73, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x32, 0x34, 0x10, 0x74, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x32, 0x35, 0x10, 0x75, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x32, 0x36, 0x10, 0x76, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x32, 0x37, 0x10, 0x77, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x32, 0x38, 0x10, 0x78, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x32, 0x39, 0x10, 0x79, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x33, 0x30, 0x10, 0x7a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x33, 0x31, 0x10, 0x7b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x33, 0x32, 0x10, 0x7c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x33, 0x33, 0x10, 0x7d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x33, 0x34, 0x10, 0x7e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x33, 0x35, 0x10, 0x7f, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x33, 0x36, 0x10, 0x80, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x33, 0x37, 0x10, 0x81, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x33, 0x38, 0x10, 0x82, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x33, 0x39, 0x10, 0x83, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x34, 0x30, 0x10, 0x84, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x34, 0x31, 0x10, 0x85, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x34, 0x32, 0x10, 0x86, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x34, 0x33, 0x10, 0x87, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x34, 0x34, 0x10, 0x88, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x34, 0x35, 0x10, 0x89, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x34, 0x36, 0x10, 0x8a, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x34, 0x37, 0x10, 0x8b, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x34, 0x38, 0x10, 0x8c, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x34, 0x39, 0x10, 0x8d, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x35, 0x30, 0x10, 0x8e, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x35, 0x31, 0x10, 0x8f, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x35, 0x32, 0x10, 0x90, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x35, 0x33, 0x10, 0x91, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x35, 0x34, 0x10, 0x92, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x35, 0x35, 0x10, 0x93, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x35, 0x36, 0x10, 0x94, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x35, 0x37, 0x10, 0x95, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x35, 0x38, 0x10, 0x96, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x35, 0x39, 0x10, 0x97, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x36, 0x30, 0x10, 0x98, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x36, 0x31, 0x10, 0x99, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x36, 0x32, 0x10, 0x9a, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x36, 0x33, 0x10, 0x9b, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x36, 0x34, 0x10, 0x9c, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x36, 0x35, 0x10, 0x9d, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x36, 0x36, 0x10, 0x9e, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x36, 0x37, 0x10, 0x9f, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x36, 0x38, 0x10, 0xa0, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x36, 0x39, 0x10, 0xa1, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x37, 0x30, 0x10, 0xa3, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x37, 0x31, 0x10, 0xa4, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x37, 0x32, 0x10, 0xa5, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x37, 0x33, 0x10, 0xa6, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x37, 0x34, 0x10, 0xa7, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x37, 0x35, 0x10, 0xa8, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x37, 0x36, 0x10, 0xa9, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x37, 0x37, 0x10, 0xaa, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x37, 0x38, 0x10, 0xab, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x37, 0x39, 0x10, 0xac, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x38, 0x30, 0x10, 0xad, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x38, 0x31, 0x10, 0xae, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x38, 0x32, 0x10, 0xaf, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x38, 0x33, 0x10, 0xb0, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x38, 0x34, 0x10, 0xb1, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x38, 0x35, 0x10, 0xb2, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x38, 0x36, 0x10, 0xb3, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x38, 0x37, 0x10, 0xb4, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x38, 0x38, 0x10, 0xb5, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x38, 0x39, 0x10, 0xb6, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x39, 0x30, 0x10, 0xb7, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x39, 0x31, 0x10, 0xb8, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x39, 0x32, 0x10, 0xb9, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x39, 0x33, 0x10, 0xbb, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x39, 0x34, 0x10, 0xbc, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x39, 0x35, 0x10, 0xbd, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x39, 0x36, 0x10, 0xbe, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x39, 0x37, 0x10, 0xbf, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x39, 0x38, 0x10, 0xc0, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x32, 0x39, 0x39, 0x10, 0xc1, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x30, 0x30, 0x10, 0xc2, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x30, 0x31, 0x10, 0xc3, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x30, 0x32, 0x10, 0xc4, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x30, 0x33, 0x10, 0xc5, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x30, 0x34, 0x10, 0xc6, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x30, 0x35, 0x10, 0xff, 0xff, 0x03, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x30, 0x36, 0x10, 0x80, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x30, 0x37, 0x10, 0x81, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x30, 0x38, 0x10, 0x82, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x30, 0x39, 0x10, 0x83, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x31, 0x30, 0x10, 0x84, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x31, 0x31, 0x10, 0x85, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x31, 0x32, 0x10, 0x86, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x31, 0x33, 0x10, 0x87, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x31, 0x34, 0x10, 0x88, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x31, 0x35, 0x10, 0x89, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x31, 0x36, 0x10, 0x8a, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x31, 0x37, 0x10, 0x8b, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x31, 0x38, 0x10, 0x8c, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x31, 0x39, 0x10, 0x8d, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x32, 0x30, 0x10, 0x8e, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x32, 0x31, 0x10, 0x8f, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x32, 0x32, 0x10, 0x90, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x32, 0x33, 0x10, 0x91, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x32, 0x34, 0x10, 0x92, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x32, 0x35, 0x10, 0x93, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x32, 0x36, 0x10, 0x94, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x32, 0x37, 0x10, 0x95, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x32, 0x38, 0x10, 0x96, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x32, 0x39, 0x10, 0x97, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x33, 0x30, 0x10, 0x98, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x33, 0x31, 0x10, 0x99, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x33, 0x32, 0x10, 0x9a, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x33, 0x33, 0x10, 0x9b, 0x80, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x33, 0x34, 0x10, 0x80, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x33, 0x35, 0x10, 0x81, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x33, 0x36, 0x10, 0x82, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x33, 0x37, 0x10, 0x83, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x33, 0x38, 0x10, 0x84, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x33, 0x39, 0x10, 0x85, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x34, 0x30, 0x10, 0x86, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x34, 0x31, 0x10, 0x87, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x34, 0x32, 0x10, 0x88, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x34, 0x33, 0x10, 0x89, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x34, 0x34, 0x10, 0x8a, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x34, 0x35, 0x10, 0x8b, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x34, 0x36, 0x10, 0x8c, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x34, 0x37, 0x10, 0x8d, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x34, 0x38, 0x10, 0x8e, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x34, 0x39, 0x10, 0x8f, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x35, 0x30, 0x10, 0x90, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x35, 0x31, 0x10, 0x91, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x35, 0x32, 0x10, 0x92, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x35, 0x33, 0x10, 0x93, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x35, 0x34, 0x10, 0x94, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x35, 0x35, 0x10, 0x95, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x35, 0x36, 0x10, 0x96, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x35, 0x37, 0x10, 0x97, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x35, 0x38, 0x10, 0x98, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x35, 0x39, 0x10, 0x99, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x36, 0x30, 0x10, 0x9a, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x36, 0x31, 0x10, 0x9b, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x36, 0x32, 0x10, 0x9c, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x36, 0x33, 0x10, 0x9d, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x36, 0x34, 0x10, 0x9e, 0xa0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x36, 0x35, 0x10, 0x80, 0xc0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x36, 0x36, 0x10, 0x81, 0xc0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x36, 0x37, 0x10, 0x80, 0xe0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x36, 0x38, 0x10, 0x81, 0xe0, 0x04, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x36, 0x39, 0x10, 0x80, 0x80, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x37, 0x30, 0x10, 0x81, 0x80, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x37, 0x31, 0x10, 0x82, 0x80, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x37, 0x32, 0x10, 0x83, 0x80, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x37, 0x33, 0x10, 0x80, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x37, 0x34, 0x10, 0x81, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x37, 0x35, 0x10, 0x82, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x37, 0x36, 0x10, 0x83, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x37, 0x37, 0x10, 0x84, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x37, 0x38, 0x10, 0x85, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x37, 0x39, 0x10, 0x86, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x38, 0x30, 0x10, 0x87, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x38, 0x31, 0x10, 0x88, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x38, 0x32, 0x10, 0x89, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x38, 0x33, 0x10, 0x8a, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x38, 0x34, 0x10, 0x8b, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x38, 0x35, 0x10, 0x8c, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x38, 0x36, 0x10, 0x8d, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x38, 0x37, 0x10, 0x8e, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x38, 0x38, 0x10, 0x8f, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x38, 0x39, 0x10, 0x90, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x39, 0x30, 0x10, 0x91, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x39, 0x31, 0x10, 0x92, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x39, 0x32, 0x10, 0x93, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x39, 0x33, 0x10, 0x94, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x39, 0x34, 0x10, 0x95, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x39, 0x35, 0x10, 0x96, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x39, 0x36, 0x10, 0x97, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x39, 0x37, 0x10, 0x98, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x39, 0x38, 0x10, 0x99, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x33, 0x39, 0x39, 0x10, 0x9a, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x30, 0x30, 0x10, 0x9b, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x30, 0x31, 0x10, 0x9c, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x30, 0x32, 0x10, 0x9d, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x30, 0x33, 0x10, 0x9e, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x30, 0x34, 0x10, 0x9f, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x30, 0x35, 0x10, 0xa0, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x30, 0x36, 0x10, 0xa1, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x30, 0x37, 0x10, 0xa2, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x30, 0x38, 0x10, 0xa3, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x30, 0x39, 0x10, 0xa4, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x31, 0x30, 0x10, 0xa5, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x31, 0x31, 0x10, 0xa6, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x31, 0x32, 0x10, 0xa7, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x31, 0x33, 0x10, 0xa8, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x31, 0x34, 0x10, 0xa9, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x31, 0x35, 0x10, 0xaa, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x31, 0x36, 0x10, 0xab, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x31, 0x37, 0x10, 0xac, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x31, 0x38, 0x10, 0xad, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x31, 0x39, 0x10, 0xae, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x32, 0x30, 0x10, 0xaf, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x32, 0x31, 0x10, 0xb0, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x32, 0x32, 0x10, 0xb1, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x32, 0x33, 0x10, 0xb2, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x32, 0x34, 0x10, 0xb3, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x32, 0x35, 0x10, 0xb4, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x32, 0x36, 0x10, 0xb5, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x32, 0x37, 0x10, 0xb6, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x32, 0x38, 0x10, 0xb7, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x32, 0x39, 0x10, 0xb8, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x33, 0x30, 0x10, 0xb9, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x33, 0x31, 0x10, 0xba, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x33, 0x32, 0x10, 0xbd, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x33, 0x33, 0x10, 0xbe, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x33, 0x34, 0x10, 0xbf, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x33, 0x35, 0x10, 0xc0, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x33, 0x36, 0x10, 0xc1, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x33, 0x37, 0x10, 0xc2, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x33, 0x38, 0x10, 0xc3, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x33, 0x39, 0x10, 0xc4, 0xa0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x34, 0x30, 0x10, 0x80, 0xc0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x34, 0x31, 0x10, 0x80, 0xe0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x34, 0x32, 0x10, 0x81, 0xe0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x34, 0x33, 0x10, 0x82, 0xe0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x34, 0x34, 0x10, 0x83, 0xe0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x34, 0x35, 0x10, 0x84, 0xe0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x34, 0x36, 0x10, 0x85, 0xe0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x34, 0x37, 0x10, 0x86, 0xe0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x34, 0x38, 0x10, 0x87, 0xe0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x34, 0x39, 0x10, 0x88, 0xe0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x35, 0x30, 0x10, 0x89, 0xe0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x35, 0x31, 0x10, 0x8a, 0xe0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x35, 0x32, 0x10, 0x8b, 0xe0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x35, 0x33, 0x10, 0x8c, 0xe0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x35, 0x34, 0x10, 0x8d, 0xe0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x35, 0x35, 0x10, 0x8e, 0xe0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x35, 0x36, 0x10, 0x8f, 0xe0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x35, 0x37, 0x10, 0x90, 0xe0, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x35, 0x38, 0x10, 0x80, 0x80, 0x06, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x35, 0x39, 0x10, 0x81, 0x80, 0x06, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x36, 0x30, 0x10, 0x82, 0x80, 0x06, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x36, 0x31, 0x10, 0x83, 0x80, 0x06, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x36, 0x32, 0x10, 0x84, 0x80, 0x06, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x36, 0x33, 0x10, 0x80, 0xa0, 0x06, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x36, 0x34, 0x10, 0x80, 0x80, 0x08, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x36, 0x35, 0x10, 0x81, 0x80, 0x08, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x36, 0x36, 0x10, 0x80, 0xa0, 0x08, 0x12, 0x16, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x36, 0x37, 0x10, 0x93, 0x92, 0xc0, 0x04, 0x2a, 0xff, 0x1f, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x31, 0x35, 0x34, 0x31, 0x12, 0x1c, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x34, 0x32, 0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x34, 0x33, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x34, 0x34, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x34, 0x35, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x34, 0x36, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x34, 0x37, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x34, 0x38, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x34, 0x39, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x35, 0x30, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x35, 0x31, 0x10, 0x08, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x35, 0x32, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x35, 0x33, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x35, 0x34, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x35, 0x35, 0x10, 0x0c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x35, 0x36, 0x10, 0x0d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x35, 0x37, 0x10, 0x0e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x35, 0x38, 0x10, 0x0f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x35, 0x39, 0x10, 0x10, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x36, 0x30, 0x10, 0x11, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x36, 0x31, 0x10, 0x12, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x36, 0x32, 0x10, 0x13, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x36, 0x33, 0x10, 0x14, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x36, 0x34, 0x10, 0x15, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x36, 0x35, 0x10, 0x16, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x36, 0x36, 0x10, 0x17, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x36, 0x37, 0x10, 0x18, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x36, 0x38, 0x10, 0x19, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x36, 0x39, 0x10, 0x1a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x37, 0x30, 0x10, 0x1b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x37, 0x31, 0x10, 0x1c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x37, 0x32, 0x10, 0x1d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x37, 0x33, 0x10, 0x1e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x37, 0x34, 0x10, 0x1f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x37, 0x35, 0x10, 0x20, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x37, 0x36, 0x10, 0x21, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x37, 0x37, 0x10, 0x22, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x37, 0x38, 0x10, 0x23, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x37, 0x39, 0x10, 0x24, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x38, 0x30, 0x10, 0x25, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x38, 0x31, 0x10, 0x26, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x38, 0x32, 0x10, 0x27, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x38, 0x33, 0x10, 0x28, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x38, 0x34, 0x10, 0x29, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x38, 0x35, 0x10, 0x2a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x38, 0x36, 0x10, 0x2b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x38, 0x37, 0x10, 0x2c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x38, 0x38, 0x10, 0x2d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x38, 0x39, 0x10, 0x2e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x39, 0x30, 0x10, 0x2f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x39, 0x31, 0x10, 0x30, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x39, 0x32, 0x10, 0x31, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x39, 0x33, 0x10, 0x32, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x39, 0x34, 0x10, 0x33, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x39, 0x35, 0x10, 0x34, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x39, 0x36, 0x10, 0x35, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x39, 0x37, 0x10, 0x36, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x39, 0x38, 0x10, 0x37, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x35, 0x39, 0x39, 0x10, 0x38, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x30, 0x30, 0x10, 0x39, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x30, 0x31, 0x10, 0x3a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x30, 0x32, 0x10, 0x3b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x30, 0x33, 0x10, 0x3c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x30, 0x34, 0x10, 0x3d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x30, 0x35, 0x10, 0x3e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x30, 0x36, 0x10, 0x3f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x30, 0x37, 0x10, 0x40, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x30, 0x38, 0x10, 0x41, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x30, 0x39, 0x10, 0x42, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x31, 0x30, 0x10, 0x43, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x31, 0x31, 0x10, 0x44, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x31, 0x32, 0x10, 0x45, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x31, 0x33, 0x10, 0x46, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x31, 0x34, 0x10, 0x47, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x31, 0x35, 0x10, 0x48, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x31, 0x36, 0x10, 0x49, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x31, 0x37, 0x10, 0x4a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x31, 0x38, 0x10, 0x4b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x31, 0x39, 0x10, 0x4c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x32, 0x30, 0x10, 0x4d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x32, 0x31, 0x10, 0x4e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x32, 0x32, 0x10, 0x4f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x32, 0x33, 0x10, 0x50, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x32, 0x34, 0x10, 0x51, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x32, 0x35, 0x10, 0x52, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x32, 0x36, 0x10, 0x53, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x32, 0x37, 0x10, 0x54, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x32, 0x38, 0x10, 0x55, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x32, 0x39, 0x10, 0x56, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x33, 0x30, 0x10, 0x57, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x33, 0x31, 0x10, 0x58, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x33, 0x32, 0x10, 0x59, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x33, 0x33, 0x10, 0x5a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x33, 0x34, 0x10, 0x5b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x33, 0x35, 0x10, 0x5c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x33, 0x36, 0x10, 0x5d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x33, 0x37, 0x10, 0x5e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x33, 0x38, 0x10, 0x5f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x33, 0x39, 0x10, 0x60, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x34, 0x30, 0x10, 0x61, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x34, 0x31, 0x10, 0x62, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x34, 0x32, 0x10, 0x63, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x34, 0x33, 0x10, 0x64, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x34, 0x34, 0x10, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x34, 0x35, 0x10, 0x66, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x34, 0x36, 0x10, 0x67, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x34, 0x37, 0x10, 0x68, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x34, 0x38, 0x10, 0x69, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x34, 0x39, 0x10, 0x6a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x35, 0x30, 0x10, 0x6b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x35, 0x31, 0x10, 0x6c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x35, 0x32, 0x10, 0x6d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x35, 0x33, 0x10, 0x6e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x35, 0x34, 0x10, 0x6f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x35, 0x35, 0x10, 0x70, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x35, 0x36, 0x10, 0x71, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x35, 0x37, 0x10, 0x72, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x35, 0x38, 0x10, 0x73, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x35, 0x39, 0x10, 0x74, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x36, 0x30, 0x10, 0x75, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x36, 0x31, 0x10, 0x76, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x36, 0x32, 0x10, 0x77, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x36, 0x33, 0x10, 0x78, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x36, 0x34, 0x10, 0x79, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x36, 0x35, 0x10, 0x7a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x36, 0x36, 0x10, 0x7b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x36, 0x37, 0x10, 0x7c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x36, 0x38, 0x10, 0x7d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x36, 0x39, 0x10, 0x7e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x37, 0x30, 0x10, 0x7f, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x37, 0x31, 0x10, 0x80, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x37, 0x32, 0x10, 0x81, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x37, 0x33, 0x10, 0x82, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x37, 0x34, 0x10, 0x83, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x37, 0x35, 0x10, 0x84, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x37, 0x36, 0x10, 0x85, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x37, 0x37, 0x10, 0x86, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x37, 0x38, 0x10, 0x87, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x37, 0x39, 0x10, 0x88, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x38, 0x30, 0x10, 0x89, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x38, 0x31, 0x10, 0x8a, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x38, 0x32, 0x10, 0x8b, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x38, 0x33, 0x10, 0x8c, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x38, 0x34, 0x10, 0x8d, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x38, 0x35, 0x10, 0x8e, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x38, 0x36, 0x10, 0x8f, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x38, 0x37, 0x10, 0x90, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x38, 0x38, 0x10, 0x91, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x38, 0x39, 0x10, 0x92, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x39, 0x30, 0x10, 0x93, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x39, 0x31, 0x10, 0x94, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x39, 0x32, 0x10, 0x95, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x39, 0x33, 0x10, 0x96, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x39, 0x34, 0x10, 0x97, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x39, 0x35, 0x10, 0x98, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x39, 0x36, 0x10, 0x99, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x39, 0x37, 0x10, 0x9a, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x39, 0x38, 0x10, 0x9b, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x36, 0x39, 0x39, 0x10, 0x9c, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x30, 0x30, 0x10, 0x9d, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x30, 0x31, 0x10, 0x9e, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x30, 0x32, 0x10, 0x9f, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x30, 0x33, 0x10, 0xa0, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x30, 0x34, 0x10, 0xa1, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x30, 0x35, 0x10, 0xa2, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x30, 0x36, 0x10, 0xa3, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x30, 0x37, 0x10, 0xa4, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x30, 0x38, 0x10, 0xa5, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x30, 0x39, 0x10, 0xa6, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x31, 0x30, 0x10, 0xa7, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x31, 0x31, 0x10, 0xa8, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x31, 0x32, 0x10, 0xa9, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x31, 0x33, 0x10, 0xaa, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x31, 0x34, 0x10, 0xab, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x31, 0x35, 0x10, 0xac, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x31, 0x36, 0x10, 0xad, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x31, 0x37, 0x10, 0xae, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x31, 0x38, 0x10, 0xaf, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x31, 0x39, 0x10, 0xb0, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x32, 0x30, 0x10, 0xb1, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x32, 0x31, 0x10, 0xb2, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x32, 0x32, 0x10, 0xb3, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x32, 0x33, 0x10, 0xb4, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x32, 0x34, 0x10, 0xb5, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x32, 0x35, 0x10, 0xb6, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x32, 0x36, 0x10, 0xb7, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x32, 0x37, 0x10, 0xb8, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x32, 0x38, 0x10, 0xb9, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x32, 0x39, 0x10, 0xba, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x33, 0x30, 0x10, 0xbb, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x33, 0x31, 0x10, 0xbc, 0x01, 0x12, 0x16, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x37, 0x33, 0x32, 0x10, 0xff, 0xff, 0xff, 0x07, 0x2a, 0x94, 0x04, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x31, 0x34, 0x36, 0x38, 0x12, 0x1c, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x36, 0x39, 0x10, 0x9d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x37, 0x30, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x37, 0x31, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x37, 0x32, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x37, 0x33, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x37, 0x34, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x37, 0x35, 0x10, 0x1c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x37, 0x36, 0x10, 0x16, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x37, 0x37, 0x10, 0x26, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x37, 0x38, 0x10, 0x80, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x37, 0x39, 0x10, 0x80, 0x10, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x38, 0x30, 0x10, 0x42, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x38, 0x31, 0x10, 0xc2, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x38, 0x32, 0x10, 0x4d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x38, 0x33, 0x10, 0x58, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x38, 0x34, 0x10, 0x64, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x38, 0x35, 0x10, 0x6e, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x38, 0x36, 0x10, 0xee, 0x10, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x38, 0x37, 0x10, 0x7a, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x38, 0x38, 0x10, 0xfa, 0x10, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x38, 0x39, 0x10, 0x90, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x39, 0x30, 0x10, 0xf4, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x39, 0x31, 0x10, 0xf4, 0x11, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x34, 0x39, 0x32, 0x10, 0x2c, 0x2a, 0xef, 0x0d, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x31, 0x30, 0x32, 0x32, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x32, 0x33, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x32, 0x34, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x32, 0x35, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x32, 0x36, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x32, 0x37, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x32, 0x38, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x32, 0x39, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x33, 0x30, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x33, 0x31, 0x10, 0x08, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x33, 0x32, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x33, 0x33, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x33, 0x34, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x33, 0x35, 0x10, 0x0c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x33, 0x36, 0x10, 0x0d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x33, 0x37, 0x10, 0x0e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x33, 0x38, 0x10, 0x0f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x33, 0x39, 0x10, 0x10, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x34, 0x30, 0x10, 0x11, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x34, 0x31, 0x10, 0x12, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x34, 0x32, 0x10, 0x13, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x34, 0x33, 0x10, 0x14, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x34, 0x34, 0x10, 0x15, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x34, 0x35, 0x10, 0x16, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x34, 0x36, 0x10, 0x17, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x34, 0x37, 0x10, 0x18, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x34, 0x38, 0x10, 0x19, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x34, 0x39, 0x10, 0x1a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x35, 0x30, 0x10, 0x1b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x35, 0x31, 0x10, 0x1c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x35, 0x32, 0x10, 0x1d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x35, 0x33, 0x10, 0x1e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x35, 0x34, 0x10, 0x1f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x35, 0x35, 0x10, 0x20, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x35, 0x36, 0x10, 0x21, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x35, 0x37, 0x10, 0x22, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x35, 0x38, 0x10, 0x23, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x35, 0x39, 0x10, 0x24, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x36, 0x30, 0x10, 0x25, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x36, 0x31, 0x10, 0x26, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x36, 0x32, 0x10, 0x27, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x36, 0x33, 0x10, 0x28, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x36, 0x34, 0x10, 0x29, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x36, 0x35, 0x10, 0x2a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x36, 0x36, 0x10, 0x2b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x36, 0x37, 0x10, 0x2c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x36, 0x38, 0x10, 0x2d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x36, 0x39, 0x10, 0x2e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x37, 0x30, 0x10, 0x2f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x37, 0x31, 0x10, 0x30, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x37, 0x32, 0x10, 0x31, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x37, 0x33, 0x10, 0x32, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x37, 0x34, 0x10, 0x33, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x37, 0x35, 0x10, 0x34, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x37, 0x36, 0x10, 0x35, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x37, 0x37, 0x10, 0x36, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x37, 0x38, 0x10, 0x37, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x37, 0x39, 0x10, 0x38, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x38, 0x30, 0x10, 0x39, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x38, 0x31, 0x10, 0x3a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x38, 0x32, 0x10, 0x3b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x38, 0x33, 0x10, 0x3c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x38, 0x34, 0x10, 0x3d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x38, 0x35, 0x10, 0x3e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x38, 0x36, 0x10, 0x3f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x38, 0x37, 0x10, 0x40, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x38, 0x38, 0x10, 0x41, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x38, 0x39, 0x10, 0x42, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x39, 0x30, 0x10, 0x43, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x39, 0x31, 0x10, 0x44, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x39, 0x32, 0x10, 0x45, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x39, 0x33, 0x10, 0x46, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x39, 0x34, 0x10, 0x47, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x39, 0x35, 0x10, 0x48, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x39, 0x36, 0x10, 0x49, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x39, 0x37, 0x10, 0x4a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x39, 0x38, 0x10, 0x4b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x30, 0x39, 0x39, 0x10, 0x4c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x30, 0x30, 0x10, 0x4d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x30, 0x31, 0x10, 0x4e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x30, 0x32, 0x10, 0x4f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x30, 0x33, 0x10, 0x50, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x30, 0x34, 0x10, 0x51, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x30, 0x35, 0x10, 0x52, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x31, 0x30, 0x36, 0x10, 0x53, 0x2a, 0x4a, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x32, 0x36, 0x37, 0x30, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x32, 0x36, 0x37, 0x31, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x32, 0x36, 0x37, 0x32, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x32, 0x36, 0x37, 0x33, 0x10, 0x02, 0x2a, 0x89, 0x01, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x32, 0x38, 0x37, 0x31, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x32, 0x38, 0x37, 0x32, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x32, 0x38, 0x37, 0x33, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x32, 0x38, 0x37, 0x34, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x32, 0x38, 0x37, 0x35, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x32, 0x38, 0x37, 0x36, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x32, 0x38, 0x37, 0x37, 0x10, 0x06, 0x2a, 0x4a, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x33, 0x30, 0x39, 0x32, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x33, 0x30, 0x39, 0x33, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x33, 0x30, 0x39, 0x34, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x33, 0x30, 0x39, 0x35, 0x10, 0x03, 0x2a, 0x5f, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x33, 0x31, 0x34, 0x36, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x33, 0x31, 0x34, 0x37, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x33, 0x31, 0x34, 0x38, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x33, 0x31, 0x34, 0x39, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x33, 0x31, 0x35, 0x30, 0x10, 0x03, 0x2a, 0xe3, 0x3e, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x36, 0x30, 0x34, 0x32, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x34, 0x33, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x34, 0x34, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x34, 0x35, 0x10, 0x11, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x34, 0x36, 0x10, 0x91, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x34, 0x37, 0x10, 0x92, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x34, 0x38, 0x10, 0xa1, 0x22, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x34, 0x39, 0x10, 0xa2, 0x22, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x35, 0x30, 0x10, 0xa3, 0x22, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x35, 0x31, 0x10, 0xa4, 0x22, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x35, 0x32, 0x10, 0xa5, 0x22, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x35, 0x33, 0x10, 0xa6, 0x22, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x35, 0x34, 0x10, 0xa7, 0x22, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x35, 0x35, 0x10, 0xa8, 0x22, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x35, 0x36, 0x10, 0xa9, 0x22, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x35, 0x37, 0x10, 0x94, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x35, 0x38, 0x10, 0x95, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x35, 0x39, 0x10, 0x12, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x36, 0x30, 0x10, 0xa1, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x36, 0x31, 0x10, 0xa3, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x36, 0x32, 0x10, 0xb1, 0x24, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x36, 0x33, 0x10, 0x91, 0xc6, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x36, 0x34, 0x10, 0xb2, 0x24, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x36, 0x35, 0x10, 0xb3, 0x24, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x36, 0x36, 0x10, 0xb4, 0x24, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x36, 0x37, 0x10, 0xb5, 0x24, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x36, 0x38, 0x10, 0xb6, 0x24, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x36, 0x39, 0x10, 0xb7, 0x24, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x37, 0x30, 0x10, 0xb8, 0x24, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x37, 0x31, 0x10, 0xa4, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x37, 0x32, 0x10, 0xc1, 0x24, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x37, 0x33, 0x10, 0xc2, 0x24, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x37, 0x34, 0x10, 0xa5, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x37, 0x35, 0x10, 0x13, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x37, 0x36, 0x10, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x37, 0x37, 0x10, 0xc1, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x37, 0x38, 0x10, 0x91, 0x28, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x37, 0x39, 0x10, 0x92, 0x28, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x38, 0x30, 0x10, 0x93, 0x28, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x38, 0x31, 0x10, 0x94, 0x28, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x38, 0x32, 0x10, 0x95, 0x28, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x38, 0x33, 0x10, 0x96, 0x28, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x38, 0x34, 0x10, 0xe1, 0x82, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x38, 0x35, 0x10, 0xe2, 0x82, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x38, 0x36, 0x10, 0xe3, 0x82, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x38, 0x37, 0x10, 0xe4, 0x82, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x38, 0x38, 0x10, 0xe5, 0x82, 0x05, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x38, 0x39, 0x10, 0xe6, 0x82, 0x05, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x39, 0x30, 0x10, 0x97, 0x28, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x39, 0x31, 0x10, 0x98, 0x28, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x39, 0x32, 0x10, 0x99, 0x28, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x39, 0x33, 0x10, 0x9a, 0x28, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x39, 0x34, 0x10, 0xa1, 0x83, 0x05, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x39, 0x35, 0x10, 0x9b, 0x28, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x39, 0x36, 0x10, 0x9c, 0x28, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x39, 0x37, 0x10, 0xc2, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x39, 0x38, 0x10, 0xc3, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x30, 0x39, 0x39, 0x10, 0xc4, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x30, 0x30, 0x10, 0xc5, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x30, 0x31, 0x10, 0xc6, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x30, 0x32, 0x10, 0xc7, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x30, 0x33, 0x10, 0xc8, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x30, 0x34, 0x10, 0x15, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x30, 0x35, 0x10, 0xd1, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x30, 0x36, 0x10, 0x16, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x30, 0x37, 0x10, 0x17, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x30, 0x38, 0x10, 0x18, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x30, 0x39, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x31, 0x30, 0x10, 0x21, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x31, 0x31, 0x10, 0x22, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x31, 0x32, 0x10, 0xa1, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x31, 0x33, 0x10, 0x91, 0x44, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x31, 0x34, 0x10, 0x93, 0x44, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x31, 0x35, 0x10, 0x94, 0x44, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x31, 0x36, 0x10, 0xa2, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x31, 0x37, 0x10, 0xa3, 0x44, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x31, 0x38, 0x10, 0xa4, 0x44, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x31, 0x39, 0x10, 0xa3, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x32, 0x30, 0x10, 0xa4, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x32, 0x31, 0x10, 0xa5, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x32, 0x32, 0x10, 0xa6, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x32, 0x33, 0x10, 0xa7, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x32, 0x34, 0x10, 0xa8, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x32, 0x35, 0x10, 0xa9, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x32, 0x36, 0x10, 0x23, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x32, 0x37, 0x10, 0x24, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x32, 0x38, 0x10, 0x25, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x32, 0x39, 0x10, 0xd1, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x33, 0x30, 0x10, 0xd2, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x33, 0x31, 0x10, 0xd3, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x33, 0x32, 0x10, 0xd4, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x33, 0x33, 0x10, 0xd5, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x33, 0x34, 0x10, 0x26, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x33, 0x35, 0x10, 0xe1, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x33, 0x36, 0x10, 0xe2, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x33, 0x37, 0x10, 0xe9, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x33, 0x38, 0x10, 0xe6, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x33, 0x39, 0x10, 0xe7, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x34, 0x30, 0x10, 0xe8, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x34, 0x31, 0x10, 0xea, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x34, 0x32, 0x10, 0xec, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x34, 0x33, 0x10, 0xd1, 0x4d, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x34, 0x34, 0x10, 0xd2, 0x4d, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x34, 0x35, 0x10, 0xd3, 0x4d, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x34, 0x36, 0x10, 0xd4, 0x4d, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x34, 0x37, 0x10, 0xd5, 0x4d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x34, 0x38, 0x10, 0x27, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x34, 0x39, 0x10, 0x28, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x35, 0x30, 0x10, 0x29, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x35, 0x31, 0x10, 0x2a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x35, 0x32, 0x10, 0x2b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x35, 0x33, 0x10, 0x2c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x35, 0x34, 0x10, 0x2d, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x35, 0x35, 0x10, 0x91, 0x5c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x35, 0x36, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x35, 0x37, 0x10, 0x31, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x35, 0x38, 0x10, 0x32, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x35, 0x39, 0x10, 0x33, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x36, 0x30, 0x10, 0xb1, 0x06, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x36, 0x31, 0x10, 0xb2, 0x06, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x36, 0x32, 0x10, 0xb3, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x36, 0x33, 0x10, 0x34, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x36, 0x34, 0x10, 0xc1, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x36, 0x35, 0x10, 0x35, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x36, 0x36, 0x10, 0x36, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x36, 0x37, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x36, 0x38, 0x10, 0x91, 0x08, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x36, 0x39, 0x10, 0x91, 0x82, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x37, 0x30, 0x10, 0x92, 0x82, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x37, 0x31, 0x10, 0x93, 0x82, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x37, 0x32, 0x10, 0x94, 0x82, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x37, 0x33, 0x10, 0x95, 0x82, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x37, 0x34, 0x10, 0x92, 0x08, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x37, 0x35, 0x10, 0xa1, 0x82, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x37, 0x36, 0x10, 0x93, 0x08, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x37, 0x37, 0x10, 0xb1, 0x82, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x37, 0x38, 0x10, 0xb2, 0x82, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x37, 0x39, 0x10, 0xb3, 0x82, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x38, 0x30, 0x10, 0xb4, 0x82, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x38, 0x31, 0x10, 0xb5, 0x82, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x38, 0x32, 0x10, 0xb6, 0x82, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x38, 0x33, 0x10, 0xb7, 0x82, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x38, 0x34, 0x10, 0x94, 0x08, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x38, 0x35, 0x10, 0xc1, 0x82, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x38, 0x36, 0x10, 0xc2, 0x82, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x38, 0x37, 0x10, 0xc3, 0x82, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x38, 0x38, 0x10, 0xc4, 0x82, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x38, 0x39, 0x10, 0xc5, 0x82, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x39, 0x30, 0x10, 0xc6, 0x82, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x39, 0x31, 0x10, 0xc7, 0x82, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x39, 0x32, 0x10, 0xc8, 0x82, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x39, 0x33, 0x10, 0xc9, 0x82, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x39, 0x34, 0x10, 0x96, 0x08, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x39, 0x35, 0x10, 0xe1, 0x82, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x39, 0x36, 0x10, 0x97, 0x08, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x39, 0x37, 0x10, 0xf1, 0x82, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x39, 0x38, 0x10, 0x91, 0xae, 0x10, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x31, 0x39, 0x39, 0x10, 0x92, 0xae, 0x10, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x30, 0x30, 0x10, 0x93, 0xae, 0x10, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x30, 0x31, 0x10, 0x94, 0xae, 0x10, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x30, 0x32, 0x10, 0x98, 0x08, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x30, 0x33, 0x10, 0x81, 0x83, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x30, 0x34, 0x10, 0x82, 0x83, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x30, 0x35, 0x10, 0x83, 0x83, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x30, 0x36, 0x10, 0x84, 0x83, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x30, 0x37, 0x10, 0x85, 0x83, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x30, 0x38, 0x10, 0x99, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x30, 0x39, 0x10, 0xa0, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x31, 0x30, 0x10, 0xa2, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x31, 0x31, 0x10, 0xa3, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x31, 0x32, 0x10, 0xa4, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x31, 0x33, 0x10, 0xa5, 0x08, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x31, 0x34, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x31, 0x35, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x31, 0x36, 0x10, 0x61, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x31, 0x37, 0x10, 0x62, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x31, 0x38, 0x10, 0x63, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x31, 0x39, 0x10, 0x64, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x32, 0x30, 0x10, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x32, 0x31, 0x10, 0x66, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x32, 0x32, 0x10, 0x67, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x32, 0x33, 0x10, 0x68, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x32, 0x34, 0x10, 0x69, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x32, 0x35, 0x10, 0x6a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x32, 0x36, 0x10, 0x6c, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x32, 0x37, 0x10, 0xc1, 0x0d, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x32, 0x38, 0x10, 0xc2, 0x0d, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x32, 0x39, 0x10, 0xc3, 0x0d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x33, 0x30, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x33, 0x31, 0x10, 0x08, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x33, 0x32, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x33, 0x33, 0x10, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x33, 0x34, 0x10, 0xa1, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x33, 0x35, 0x10, 0x91, 0x14, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x33, 0x36, 0x10, 0x91, 0xc2, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x33, 0x37, 0x10, 0x92, 0xc2, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x33, 0x38, 0x10, 0x92, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x33, 0x39, 0x10, 0x93, 0x14, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x34, 0x30, 0x10, 0xb1, 0xc2, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x34, 0x31, 0x10, 0x94, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x34, 0x32, 0x10, 0x95, 0x14, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x34, 0x33, 0x10, 0xd1, 0xc2, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x34, 0x34, 0x10, 0xd2, 0xc2, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x34, 0x35, 0x10, 0xd3, 0xc2, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x34, 0x36, 0x10, 0xd4, 0xc2, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x34, 0x37, 0x10, 0x96, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x34, 0x38, 0x10, 0x97, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x34, 0x39, 0x10, 0x98, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x35, 0x30, 0x10, 0xa2, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x35, 0x31, 0x10, 0xa1, 0x14, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x35, 0x32, 0x10, 0x91, 0xc4, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x35, 0x33, 0x10, 0x91, 0xc2, 0x28, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x35, 0x34, 0x10, 0x92, 0xc2, 0x28, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x35, 0x35, 0x10, 0x92, 0xc4, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x35, 0x36, 0x10, 0x93, 0xc4, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x35, 0x37, 0x10, 0x94, 0xc4, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x35, 0x38, 0x10, 0xc1, 0xc2, 0x28, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x35, 0x39, 0x10, 0xa2, 0x14, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x36, 0x30, 0x10, 0xa1, 0xc4, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x36, 0x31, 0x10, 0xa2, 0xc4, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x36, 0x32, 0x10, 0xa3, 0xc4, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x36, 0x33, 0x10, 0xa3, 0x14, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x36, 0x34, 0x10, 0xb1, 0xc4, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x36, 0x35, 0x10, 0xb2, 0xc4, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x36, 0x36, 0x10, 0xb3, 0xc4, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x36, 0x37, 0x10, 0xb4, 0xc4, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x36, 0x38, 0x10, 0xb5, 0xc4, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x36, 0x39, 0x10, 0xd1, 0xc6, 0x28, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x37, 0x30, 0x10, 0xd2, 0xc6, 0x28, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x37, 0x31, 0x10, 0xb6, 0xc4, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x37, 0x32, 0x10, 0xb7, 0xc4, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x37, 0x33, 0x10, 0xa4, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x37, 0x34, 0x10, 0xa5, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x37, 0x35, 0x10, 0xa6, 0x14, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x37, 0x36, 0x10, 0xe1, 0xc4, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x37, 0x37, 0x10, 0xe2, 0xc4, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x37, 0x38, 0x10, 0xe3, 0xc4, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x37, 0x39, 0x10, 0xe4, 0xc4, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x38, 0x30, 0x10, 0xe5, 0xc4, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x38, 0x31, 0x10, 0xd1, 0xcc, 0x28, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x38, 0x32, 0x10, 0xd2, 0xcc, 0x28, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x38, 0x33, 0x10, 0xd3, 0xcc, 0x28, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x38, 0x34, 0x10, 0xd4, 0xcc, 0x28, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x38, 0x35, 0x10, 0xa7, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x38, 0x36, 0x10, 0xa8, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x38, 0x37, 0x10, 0xa9, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x38, 0x38, 0x10, 0xab, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x38, 0x39, 0x10, 0xac, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x39, 0x30, 0x10, 0xa3, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x39, 0x31, 0x10, 0xb0, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x39, 0x32, 0x10, 0xb1, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x39, 0x33, 0x10, 0xb2, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x39, 0x34, 0x10, 0xb3, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x39, 0x35, 0x10, 0xb4, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x39, 0x36, 0x10, 0xa4, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x39, 0x37, 0x10, 0xc1, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x39, 0x38, 0x10, 0xc2, 0x14, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x32, 0x39, 0x39, 0x10, 0xa1, 0xc8, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x30, 0x30, 0x10, 0xa2, 0xc8, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x30, 0x31, 0x10, 0xa3, 0xc8, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x30, 0x32, 0x10, 0xc3, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x30, 0x33, 0x10, 0xc4, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x30, 0x34, 0x10, 0xa5, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x30, 0x35, 0x10, 0xd1, 0x14, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x30, 0x36, 0x10, 0x91, 0xca, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x30, 0x37, 0x10, 0x92, 0xca, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x30, 0x38, 0x10, 0xd2, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x30, 0x39, 0x10, 0xd3, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x31, 0x30, 0x10, 0xd4, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x31, 0x31, 0x10, 0xd6, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x31, 0x32, 0x10, 0xd7, 0x14, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x31, 0x33, 0x10, 0xf1, 0xca, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x31, 0x34, 0x10, 0xd8, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x31, 0x35, 0x10, 0xd9, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x31, 0x36, 0x10, 0xda, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x31, 0x37, 0x10, 0xdb, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x31, 0x38, 0x10, 0xdc, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x31, 0x39, 0x10, 0xdd, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x32, 0x30, 0x10, 0xde, 0x14, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x32, 0x31, 0x10, 0xf1, 0xcb, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x32, 0x32, 0x10, 0xf2, 0xcb, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x32, 0x33, 0x10, 0xf3, 0xcb, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x32, 0x34, 0x10, 0xa6, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x32, 0x35, 0x10, 0xe1, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x32, 0x36, 0x10, 0xe2, 0x14, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x32, 0x37, 0x10, 0xa1, 0xcc, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x32, 0x38, 0x10, 0xe3, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x32, 0x39, 0x10, 0xe4, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x33, 0x30, 0x10, 0xe5, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x33, 0x31, 0x10, 0xe6, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x33, 0x32, 0x10, 0xe7, 0x14, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x33, 0x33, 0x10, 0xf1, 0xcc, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x33, 0x34, 0x10, 0xe8, 0x14, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x33, 0x35, 0x10, 0xe9, 0x14, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x33, 0x36, 0x10, 0x81, 0xce, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x33, 0x37, 0x10, 0x82, 0xce, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x33, 0x38, 0x10, 0x83, 0xce, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x33, 0x39, 0x10, 0x0b, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x34, 0x30, 0x10, 0xb1, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x34, 0x31, 0x10, 0x91, 0x16, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x34, 0x32, 0x10, 0xb3, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x34, 0x33, 0x10, 0xb4, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x34, 0x34, 0x10, 0xc1, 0x16, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x34, 0x35, 0x10, 0xb6, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x34, 0x36, 0x10, 0xb7, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x34, 0x37, 0x10, 0x0c, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x34, 0x38, 0x10, 0x91, 0x18, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x34, 0x39, 0x10, 0xc2, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x35, 0x30, 0x10, 0xc3, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x35, 0x31, 0x10, 0xc4, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x35, 0x32, 0x10, 0xc6, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x35, 0x33, 0x10, 0xe1, 0x18, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x35, 0x34, 0x10, 0xc7, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x35, 0x35, 0x10, 0xc8, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x35, 0x36, 0x10, 0xd0, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x35, 0x37, 0x10, 0x81, 0x1a, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x35, 0x38, 0x10, 0x82, 0x1a, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x35, 0x39, 0x10, 0x83, 0x1a, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x36, 0x30, 0x10, 0xd1, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x36, 0x31, 0x10, 0xd2, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x36, 0x32, 0x10, 0xd3, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x36, 0x33, 0x10, 0xb1, 0x1a, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x36, 0x34, 0x10, 0xb2, 0x1a, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x36, 0x35, 0x10, 0xb3, 0x1a, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x36, 0x36, 0x10, 0xb4, 0x1a, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x36, 0x37, 0x10, 0xb5, 0x1a, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x36, 0x38, 0x10, 0x91, 0xec, 0x34, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x36, 0x39, 0x10, 0x92, 0xec, 0x34, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x37, 0x30, 0x10, 0x93, 0xec, 0x34, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x37, 0x31, 0x10, 0x94, 0xec, 0x34, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x37, 0x32, 0x10, 0x95, 0xec, 0x34, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x37, 0x33, 0x10, 0x96, 0xec, 0x34, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x37, 0x34, 0x10, 0x97, 0xec, 0x34, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x37, 0x35, 0x10, 0x98, 0xec, 0x34, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x37, 0x36, 0x10, 0x99, 0xec, 0x34, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x37, 0x37, 0x10, 0x9a, 0xec, 0x34, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x37, 0x38, 0x10, 0x9b, 0xec, 0x34, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x37, 0x39, 0x10, 0x9c, 0xec, 0x34, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x38, 0x30, 0x10, 0x9d, 0xec, 0x34, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x38, 0x31, 0x10, 0x9e, 0xec, 0x34, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x38, 0x32, 0x10, 0x9f, 0xec, 0x34, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x38, 0x33, 0x10, 0xa0, 0xec, 0x34, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x38, 0x34, 0x10, 0xa1, 0xec, 0x34, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x38, 0x35, 0x10, 0xa2, 0xec, 0x34, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x38, 0x36, 0x10, 0xa3, 0xec, 0x34, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x38, 0x37, 0x10, 0xa4, 0xec, 0x34, 0x12, 0x15, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x38, 0x38, 0x10, 0xa5, 0xec, 0x34, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x38, 0x39, 0x10, 0xd4, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x39, 0x30, 0x10, 0xc1, 0x1a, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x39, 0x31, 0x10, 0xc2, 0x1a, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x39, 0x32, 0x10, 0xc3, 0x1a, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x39, 0x33, 0x10, 0xd5, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x39, 0x34, 0x10, 0xd6, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x39, 0x35, 0x10, 0xd7, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x39, 0x36, 0x10, 0xf1, 0x1a, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x39, 0x37, 0x10, 0xf2, 0x1a, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x39, 0x38, 0x10, 0xd8, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x33, 0x39, 0x39, 0x10, 0xd9, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x34, 0x30, 0x30, 0x10, 0x91, 0x1b, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x34, 0x30, 0x31, 0x10, 0x92, 0x1b, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x34, 0x30, 0x32, 0x10, 0x93, 0x1b, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x34, 0x30, 0x33, 0x10, 0xfe, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x34, 0x30, 0x34, 0x10, 0xff, 0x01, 0x2a, 0xdd, 0x01, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x36, 0x35, 0x35, 0x33, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x35, 0x35, 0x34, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x35, 0x35, 0x35, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x35, 0x35, 0x36, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x35, 0x35, 0x37, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x35, 0x35, 0x38, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x35, 0x35, 0x39, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x35, 0x36, 0x30, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x35, 0x36, 0x31, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x35, 0x36, 0x32, 0x10, 0x08, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x35, 0x36, 0x33, 0x10, 0x09, 0x2a, 0x4a, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x36, 0x37, 0x32, 0x38, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x32, 0x39, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x33, 0x30, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x33, 0x31, 0x10, 0x03, 0x2a, 0x74, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x36, 0x37, 0x33, 0x32, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x33, 0x33, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x33, 0x34, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x33, 0x35, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x33, 0x36, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x33, 0x37, 0x10, 0x05, 0x2a, 0x9e, 0x01, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x36, 0x37, 0x33, 0x38, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x33, 0x39, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x34, 0x30, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x34, 0x31, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x34, 0x32, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x34, 0x33, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x34, 0x34, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x34, 0x35, 0x10, 0x07, 0x2a, 0xf7, 0x03, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x36, 0x36, 0x39, 0x38, 0x12, 0x1c, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x36, 0x39, 0x39, 0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x30, 0x30, 0x10, 0x64, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x30, 0x31, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x30, 0x32, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x30, 0x33, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x30, 0x34, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x30, 0x35, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x30, 0x36, 0x10, 0x0c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x30, 0x37, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x30, 0x38, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x30, 0x39, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x31, 0x30, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x31, 0x31, 0x10, 0x08, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x31, 0x32, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x31, 0x33, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x31, 0x34, 0x10, 0x0d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x31, 0x35, 0x10, 0x0e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x31, 0x36, 0x10, 0x0f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x31, 0x37, 0x10, 0x10, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x31, 0x38, 0x10, 0x12, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x31, 0x39, 0x10, 0x11, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x32, 0x30, 0x10, 0x13, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x37, 0x32, 0x31, 0x10, 0x14, 0x2a, 0x89, 0x01, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x36, 0x38, 0x31, 0x39, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x38, 0x32, 0x30, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x38, 0x32, 0x31, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x38, 0x32, 0x32, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x38, 0x32, 0x33, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x38, 0x32, 0x34, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x38, 0x32, 0x35, 0x10, 0x05, 0x2a, 0xb1, 0x02, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x36, 0x39, 0x32, 0x35, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x32, 0x36, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x32, 0x37, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x32, 0x38, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x32, 0x39, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x33, 0x30, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x33, 0x31, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x33, 0x32, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x33, 0x33, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x33, 0x34, 0x10, 0x08, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x33, 0x35, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x33, 0x36, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x33, 0x37, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x33, 0x38, 0x10, 0x0c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x33, 0x39, 0x10, 0x0d, 0x2a, 0x35, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x32, 0x32, 0x38, 0x35, 0x34, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x32, 0x38, 0x35, 0x35, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x32, 0x38, 0x35, 0x36, 0x10, 0x01, 0x2a, 0x5f, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x32, 0x34, 0x33, 0x36, 0x31, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x34, 0x33, 0x36, 0x32, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x34, 0x33, 0x36, 0x33, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x34, 0x33, 0x36, 0x34, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x34, 0x33, 0x36, 0x35, 0x10, 0x03, 0x2a, 0xab, 0x05, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x36, 0x38, 0x39, 0x31, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x38, 0x39, 0x32, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x38, 0x39, 0x33, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x38, 0x39, 0x34, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x38, 0x39, 0x35, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x38, 0x39, 0x36, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x38, 0x39, 0x37, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x38, 0x39, 0x38, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x38, 0x39, 0x39, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x30, 0x30, 0x10, 0x08, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x30, 0x31, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x30, 0x32, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x30, 0x33, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x30, 0x34, 0x10, 0x0c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x30, 0x35, 0x10, 0x0d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x30, 0x36, 0x10, 0x0e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x30, 0x37, 0x10, 0x0f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x30, 0x38, 0x10, 0x10, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x30, 0x39, 0x10, 0x11, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x31, 0x30, 0x10, 0x12, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x31, 0x31, 0x10, 0x13, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x31, 0x32, 0x10, 0x14, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x31, 0x33, 0x10, 0x15, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x31, 0x34, 0x10, 0x16, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x31, 0x35, 0x10, 0x17, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x31, 0x36, 0x10, 0x18, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x31, 0x37, 0x10, 0x19, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x31, 0x38, 0x10, 0x1a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x31, 0x39, 0x10, 0x1b, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x32, 0x30, 0x10, 0x1c, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x32, 0x31, 0x10, 0x1d, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x32, 0x32, 0x10, 0x1e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x36, 0x39, 0x32, 0x33, 0x10, 0x1f, 0x2a, 0x74, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x32, 0x37, 0x33, 0x36, 0x31, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x37, 0x33, 0x36, 0x32, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x37, 0x33, 0x36, 0x33, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x37, 0x33, 0x36, 0x34, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x37, 0x33, 0x36, 0x35, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x37, 0x33, 0x36, 0x36, 0x10, 0x04, 0x2a, 0x9e, 0x01, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x33, 0x39, 0x36, 0x30, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x33, 0x39, 0x36, 0x31, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x33, 0x39, 0x36, 0x32, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x33, 0x39, 0x36, 0x33, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x33, 0x39, 0x36, 0x34, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x33, 0x39, 0x36, 0x35, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x33, 0x39, 0x36, 0x36, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x33, 0x39, 0x36, 0x37, 0x10, 0x06, 0x2a, 0x20, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x34, 0x33, 0x38, 0x38, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x33, 0x38, 0x39, 0x10, 0x01, 0x2a, 0x74, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x35, 0x34, 0x37, 0x37, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x37, 0x38, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x37, 0x39, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x38, 0x30, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x38, 0x31, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x38, 0x32, 0x10, 0x00, 0x2a, 0xdd, 0x01, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x35, 0x35, 0x30, 0x37, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x30, 0x38, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x30, 0x39, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x31, 0x30, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x31, 0x31, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x31, 0x32, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x31, 0x33, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x31, 0x34, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x31, 0x35, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x31, 0x36, 0x10, 0x08, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x31, 0x37, 0x10, 0x09, 0x2a, 0xb3, 0x01, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x36, 0x38, 0x36, 0x30, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x38, 0x36, 0x31, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x38, 0x36, 0x32, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x38, 0x36, 0x33, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x38, 0x36, 0x34, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x38, 0x36, 0x35, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x38, 0x36, 0x36, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x38, 0x36, 0x37, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x38, 0x36, 0x38, 0x10, 0x07, 0x2a, 0x35, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x36, 0x38, 0x39, 0x30, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x38, 0x39, 0x31, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x38, 0x39, 0x32, 0x10, 0x01, 0x42, 0x23, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0xf8, 0x01, 0x01, } var ( file_datasets_google_message3_benchmark_message3_8_proto_rawDescOnce sync.Once file_datasets_google_message3_benchmark_message3_8_proto_rawDescData = file_datasets_google_message3_benchmark_message3_8_proto_rawDesc ) func file_datasets_google_message3_benchmark_message3_8_proto_rawDescGZIP() []byte { file_datasets_google_message3_benchmark_message3_8_proto_rawDescOnce.Do(func() { file_datasets_google_message3_benchmark_message3_8_proto_rawDescData = protoimpl.X.CompressGZIP(file_datasets_google_message3_benchmark_message3_8_proto_rawDescData) }) return file_datasets_google_message3_benchmark_message3_8_proto_rawDescData } var file_datasets_google_message3_benchmark_message3_8_proto_enumTypes = make([]protoimpl.EnumInfo, 59) var file_datasets_google_message3_benchmark_message3_8_proto_goTypes = []interface{}{ (Enum720)(0), // 0: benchmarks.google_message3.Enum720 (Enum3476)(0), // 1: benchmarks.google_message3.Enum3476 (Enum3805)(0), // 2: benchmarks.google_message3.Enum3805 (Enum3783)(0), // 3: benchmarks.google_message3.Enum3783 (Enum3851)(0), // 4: benchmarks.google_message3.Enum3851 (UnusedEnum)(0), // 5: benchmarks.google_message3.UnusedEnum (Enum4146)(0), // 6: benchmarks.google_message3.Enum4146 (Enum4160)(0), // 7: benchmarks.google_message3.Enum4160 (Enum4152)(0), // 8: benchmarks.google_message3.Enum4152 (Enum6025)(0), // 9: benchmarks.google_message3.Enum6025 (Enum6065)(0), // 10: benchmarks.google_message3.Enum6065 (Enum6579)(0), // 11: benchmarks.google_message3.Enum6579 (Enum6588)(0), // 12: benchmarks.google_message3.Enum6588 (Enum6769)(0), // 13: benchmarks.google_message3.Enum6769 (Enum6774)(0), // 14: benchmarks.google_message3.Enum6774 (Enum6782)(0), // 15: benchmarks.google_message3.Enum6782 (Enum6858)(0), // 16: benchmarks.google_message3.Enum6858 (Enum6815)(0), // 17: benchmarks.google_message3.Enum6815 (Enum6822)(0), // 18: benchmarks.google_message3.Enum6822 (Enum7654)(0), // 19: benchmarks.google_message3.Enum7654 (Enum8292)(0), // 20: benchmarks.google_message3.Enum8292 (Enum8450)(0), // 21: benchmarks.google_message3.Enum8450 (Enum8900)(0), // 22: benchmarks.google_message3.Enum8900 (Enum8945)(0), // 23: benchmarks.google_message3.Enum8945 (Enum8951)(0), // 24: benchmarks.google_message3.Enum8951 (Enum9243)(0), // 25: benchmarks.google_message3.Enum9243 (Enum10157)(0), // 26: benchmarks.google_message3.Enum10157 (Enum10167)(0), // 27: benchmarks.google_message3.Enum10167 (Enum8862)(0), // 28: benchmarks.google_message3.Enum8862 (Enum10325)(0), // 29: benchmarks.google_message3.Enum10325 (Enum10335)(0), // 30: benchmarks.google_message3.Enum10335 (Enum10337)(0), // 31: benchmarks.google_message3.Enum10337 (Enum10392)(0), // 32: benchmarks.google_message3.Enum10392 (Enum11107)(0), // 33: benchmarks.google_message3.Enum11107 (Enum11541)(0), // 34: benchmarks.google_message3.Enum11541 (Enum11468)(0), // 35: benchmarks.google_message3.Enum11468 (Enum11022)(0), // 36: benchmarks.google_message3.Enum11022 (Enum12670)(0), // 37: benchmarks.google_message3.Enum12670 (Enum12871)(0), // 38: benchmarks.google_message3.Enum12871 (Enum13092)(0), // 39: benchmarks.google_message3.Enum13092 (Enum13146)(0), // 40: benchmarks.google_message3.Enum13146 (Enum16042)(0), // 41: benchmarks.google_message3.Enum16042 (Enum16553)(0), // 42: benchmarks.google_message3.Enum16553 (Enum16728)(0), // 43: benchmarks.google_message3.Enum16728 (Enum16732)(0), // 44: benchmarks.google_message3.Enum16732 (Enum16738)(0), // 45: benchmarks.google_message3.Enum16738 (Enum16698)(0), // 46: benchmarks.google_message3.Enum16698 (Enum16819)(0), // 47: benchmarks.google_message3.Enum16819 (Enum16925)(0), // 48: benchmarks.google_message3.Enum16925 (Enum22854)(0), // 49: benchmarks.google_message3.Enum22854 (Enum24361)(0), // 50: benchmarks.google_message3.Enum24361 (Enum16891)(0), // 51: benchmarks.google_message3.Enum16891 (Enum27361)(0), // 52: benchmarks.google_message3.Enum27361 (Enum33960)(0), // 53: benchmarks.google_message3.Enum33960 (Enum34388)(0), // 54: benchmarks.google_message3.Enum34388 (Enum35477)(0), // 55: benchmarks.google_message3.Enum35477 (Enum35507)(0), // 56: benchmarks.google_message3.Enum35507 (Enum36860)(0), // 57: benchmarks.google_message3.Enum36860 (Enum36890)(0), // 58: benchmarks.google_message3.Enum36890 } var file_datasets_google_message3_benchmark_message3_8_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_datasets_google_message3_benchmark_message3_8_proto_init() } func file_datasets_google_message3_benchmark_message3_8_proto_init() { if File_datasets_google_message3_benchmark_message3_8_proto != nil { return } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_datasets_google_message3_benchmark_message3_8_proto_rawDesc, NumEnums: 59, NumMessages: 0, NumExtensions: 0, NumServices: 0, }, GoTypes: file_datasets_google_message3_benchmark_message3_8_proto_goTypes, DependencyIndexes: file_datasets_google_message3_benchmark_message3_8_proto_depIdxs, EnumInfos: file_datasets_google_message3_benchmark_message3_8_proto_enumTypes, }.Build() File_datasets_google_message3_benchmark_message3_8_proto = out.File file_datasets_google_message3_benchmark_message3_8_proto_rawDesc = nil file_datasets_google_message3_benchmark_message3_8_proto_goTypes = nil file_datasets_google_message3_benchmark_message3_8_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/datasets/google_message4/000077500000000000000000000000001411250152500312105ustar00rootroot00000000000000benchmark_message4.pb.go000066400000000000000000007723141411250152500356200ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/datasets/google_message4// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // LINT: ALLOW_GROUPS // Code generated by protoc-gen-go. DO NOT EDIT. // source: datasets/google_message4/benchmark_message4.proto package google_message4 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type GoogleMessage4 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field37503 *int32 `protobuf:"varint,1,opt,name=field37503" json:"field37503,omitempty"` Field37504 *UnusedEmptyMessage `protobuf:"bytes,2,opt,name=field37504" json:"field37504,omitempty"` Field37505 *UnusedEmptyMessage `protobuf:"bytes,3,opt,name=field37505" json:"field37505,omitempty"` Field37506 *UnusedEmptyMessage `protobuf:"bytes,4,opt,name=field37506" json:"field37506,omitempty"` Field37507 *UnusedEmptyMessage `protobuf:"bytes,5,opt,name=field37507" json:"field37507,omitempty"` Field37508 *Message37489 `protobuf:"bytes,6,opt,name=field37508" json:"field37508,omitempty"` Field37509 *UnusedEmptyMessage `protobuf:"bytes,7,opt,name=field37509" json:"field37509,omitempty"` Field37510 *UnusedEmptyMessage `protobuf:"bytes,8,opt,name=field37510" json:"field37510,omitempty"` Field37511 *UnusedEmptyMessage `protobuf:"bytes,9,opt,name=field37511" json:"field37511,omitempty"` Field37512 *UnusedEmptyMessage `protobuf:"bytes,10,opt,name=field37512" json:"field37512,omitempty"` Field37513 *UnusedEmptyMessage `protobuf:"bytes,11,opt,name=field37513" json:"field37513,omitempty"` Field37514 *UnusedEmptyMessage `protobuf:"bytes,12,opt,name=field37514" json:"field37514,omitempty"` Field37515 *UnusedEmptyMessage `protobuf:"bytes,13,opt,name=field37515" json:"field37515,omitempty"` Field37516 *UnusedEmptyMessage `protobuf:"bytes,14,opt,name=field37516" json:"field37516,omitempty"` Field37517 *UnusedEmptyMessage `protobuf:"bytes,15,opt,name=field37517" json:"field37517,omitempty"` Field37518 *UnusedEmptyMessage `protobuf:"bytes,16,opt,name=field37518" json:"field37518,omitempty"` } func (x *GoogleMessage4) Reset() { *x = GoogleMessage4{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GoogleMessage4) String() string { return protoimpl.X.MessageStringOf(x) } func (*GoogleMessage4) ProtoMessage() {} func (x *GoogleMessage4) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GoogleMessage4.ProtoReflect.Descriptor instead. func (*GoogleMessage4) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{0} } func (x *GoogleMessage4) GetField37503() int32 { if x != nil && x.Field37503 != nil { return *x.Field37503 } return 0 } func (x *GoogleMessage4) GetField37504() *UnusedEmptyMessage { if x != nil { return x.Field37504 } return nil } func (x *GoogleMessage4) GetField37505() *UnusedEmptyMessage { if x != nil { return x.Field37505 } return nil } func (x *GoogleMessage4) GetField37506() *UnusedEmptyMessage { if x != nil { return x.Field37506 } return nil } func (x *GoogleMessage4) GetField37507() *UnusedEmptyMessage { if x != nil { return x.Field37507 } return nil } func (x *GoogleMessage4) GetField37508() *Message37489 { if x != nil { return x.Field37508 } return nil } func (x *GoogleMessage4) GetField37509() *UnusedEmptyMessage { if x != nil { return x.Field37509 } return nil } func (x *GoogleMessage4) GetField37510() *UnusedEmptyMessage { if x != nil { return x.Field37510 } return nil } func (x *GoogleMessage4) GetField37511() *UnusedEmptyMessage { if x != nil { return x.Field37511 } return nil } func (x *GoogleMessage4) GetField37512() *UnusedEmptyMessage { if x != nil { return x.Field37512 } return nil } func (x *GoogleMessage4) GetField37513() *UnusedEmptyMessage { if x != nil { return x.Field37513 } return nil } func (x *GoogleMessage4) GetField37514() *UnusedEmptyMessage { if x != nil { return x.Field37514 } return nil } func (x *GoogleMessage4) GetField37515() *UnusedEmptyMessage { if x != nil { return x.Field37515 } return nil } func (x *GoogleMessage4) GetField37516() *UnusedEmptyMessage { if x != nil { return x.Field37516 } return nil } func (x *GoogleMessage4) GetField37517() *UnusedEmptyMessage { if x != nil { return x.Field37517 } return nil } func (x *GoogleMessage4) GetField37518() *UnusedEmptyMessage { if x != nil { return x.Field37518 } return nil } type Message37489 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field37534 *Message2517 `protobuf:"bytes,3,opt,name=field37534" json:"field37534,omitempty"` Field37535 *Message7330 `protobuf:"bytes,4,opt,name=field37535" json:"field37535,omitempty"` Field37536 *Message8815 `protobuf:"bytes,6,opt,name=field37536" json:"field37536,omitempty"` Field37537 *Message8817 `protobuf:"bytes,7,opt,name=field37537" json:"field37537,omitempty"` Field37538 *Message8835 `protobuf:"bytes,8,opt,name=field37538" json:"field37538,omitempty"` Field37539 *Message8848 `protobuf:"bytes,9,opt,name=field37539" json:"field37539,omitempty"` Field37540 *Message8856 `protobuf:"bytes,11,opt,name=field37540" json:"field37540,omitempty"` Field37541 *Message12717 `protobuf:"bytes,15,opt,name=field37541" json:"field37541,omitempty"` Field37542 *Message12748 `protobuf:"bytes,20,opt,name=field37542" json:"field37542,omitempty"` Field37543 *Message7319 `protobuf:"bytes,22,opt,name=field37543" json:"field37543,omitempty"` Field37544 *Message12908 `protobuf:"bytes,24,opt,name=field37544" json:"field37544,omitempty"` Field37545 *Message12910 `protobuf:"bytes,25,opt,name=field37545" json:"field37545,omitempty"` Field37546 *Message12960 `protobuf:"bytes,30,opt,name=field37546" json:"field37546,omitempty"` Field37547 *Message176 `protobuf:"bytes,33,opt,name=field37547" json:"field37547,omitempty"` Field37548 *Message13000 `protobuf:"bytes,34,opt,name=field37548" json:"field37548,omitempty"` Field37549 *Message13035 `protobuf:"bytes,35,opt,name=field37549" json:"field37549,omitempty"` Field37550 *Message37331 `protobuf:"bytes,36,opt,name=field37550" json:"field37550,omitempty"` Field37551 *Message37329 `protobuf:"bytes,37,opt,name=field37551" json:"field37551,omitempty"` Field37552 *Message37327 `protobuf:"bytes,38,opt,name=field37552" json:"field37552,omitempty"` Field37553 *Message37333 `protobuf:"bytes,39,opt,name=field37553" json:"field37553,omitempty"` Field37554 *Message37335 `protobuf:"bytes,40,opt,name=field37554" json:"field37554,omitempty"` } func (x *Message37489) Reset() { *x = Message37489{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message37489) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message37489) ProtoMessage() {} func (x *Message37489) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message37489.ProtoReflect.Descriptor instead. func (*Message37489) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{1} } func (x *Message37489) GetField37534() *Message2517 { if x != nil { return x.Field37534 } return nil } func (x *Message37489) GetField37535() *Message7330 { if x != nil { return x.Field37535 } return nil } func (x *Message37489) GetField37536() *Message8815 { if x != nil { return x.Field37536 } return nil } func (x *Message37489) GetField37537() *Message8817 { if x != nil { return x.Field37537 } return nil } func (x *Message37489) GetField37538() *Message8835 { if x != nil { return x.Field37538 } return nil } func (x *Message37489) GetField37539() *Message8848 { if x != nil { return x.Field37539 } return nil } func (x *Message37489) GetField37540() *Message8856 { if x != nil { return x.Field37540 } return nil } func (x *Message37489) GetField37541() *Message12717 { if x != nil { return x.Field37541 } return nil } func (x *Message37489) GetField37542() *Message12748 { if x != nil { return x.Field37542 } return nil } func (x *Message37489) GetField37543() *Message7319 { if x != nil { return x.Field37543 } return nil } func (x *Message37489) GetField37544() *Message12908 { if x != nil { return x.Field37544 } return nil } func (x *Message37489) GetField37545() *Message12910 { if x != nil { return x.Field37545 } return nil } func (x *Message37489) GetField37546() *Message12960 { if x != nil { return x.Field37546 } return nil } func (x *Message37489) GetField37547() *Message176 { if x != nil { return x.Field37547 } return nil } func (x *Message37489) GetField37548() *Message13000 { if x != nil { return x.Field37548 } return nil } func (x *Message37489) GetField37549() *Message13035 { if x != nil { return x.Field37549 } return nil } func (x *Message37489) GetField37550() *Message37331 { if x != nil { return x.Field37550 } return nil } func (x *Message37489) GetField37551() *Message37329 { if x != nil { return x.Field37551 } return nil } func (x *Message37489) GetField37552() *Message37327 { if x != nil { return x.Field37552 } return nil } func (x *Message37489) GetField37553() *Message37333 { if x != nil { return x.Field37553 } return nil } func (x *Message37489) GetField37554() *Message37335 { if x != nil { return x.Field37554 } return nil } type Message7319 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7321 *UnusedEmptyMessage `protobuf:"bytes,1,opt,name=field7321" json:"field7321,omitempty"` Field7322 *UnusedEmptyMessage `protobuf:"bytes,7,opt,name=field7322" json:"field7322,omitempty"` } func (x *Message7319) Reset() { *x = Message7319{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7319) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7319) ProtoMessage() {} func (x *Message7319) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7319.ProtoReflect.Descriptor instead. func (*Message7319) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{2} } func (x *Message7319) GetField7321() *UnusedEmptyMessage { if x != nil { return x.Field7321 } return nil } func (x *Message7319) GetField7322() *UnusedEmptyMessage { if x != nil { return x.Field7322 } return nil } type Message12717 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12719 *UnusedEmptyMessage `protobuf:"bytes,1,opt,name=field12719" json:"field12719,omitempty"` Field12720 *string `protobuf:"bytes,2,opt,name=field12720" json:"field12720,omitempty"` Field12721 *uint32 `protobuf:"varint,3,opt,name=field12721" json:"field12721,omitempty"` Field12722 *Message11976 `protobuf:"bytes,4,opt,name=field12722" json:"field12722,omitempty"` Field12723 []*Message11948 `protobuf:"bytes,5,rep,name=field12723" json:"field12723,omitempty"` Field12724 *Message11947 `protobuf:"bytes,6,opt,name=field12724" json:"field12724,omitempty"` Field12725 *Message12687 `protobuf:"bytes,7,opt,name=field12725" json:"field12725,omitempty"` Field12726 []*Message11948 `protobuf:"bytes,8,rep,name=field12726" json:"field12726,omitempty"` Field12727 *int64 `protobuf:"varint,9,opt,name=field12727" json:"field12727,omitempty"` } func (x *Message12717) Reset() { *x = Message12717{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12717) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12717) ProtoMessage() {} func (x *Message12717) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12717.ProtoReflect.Descriptor instead. func (*Message12717) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{3} } func (x *Message12717) GetField12719() *UnusedEmptyMessage { if x != nil { return x.Field12719 } return nil } func (x *Message12717) GetField12720() string { if x != nil && x.Field12720 != nil { return *x.Field12720 } return "" } func (x *Message12717) GetField12721() uint32 { if x != nil && x.Field12721 != nil { return *x.Field12721 } return 0 } func (x *Message12717) GetField12722() *Message11976 { if x != nil { return x.Field12722 } return nil } func (x *Message12717) GetField12723() []*Message11948 { if x != nil { return x.Field12723 } return nil } func (x *Message12717) GetField12724() *Message11947 { if x != nil { return x.Field12724 } return nil } func (x *Message12717) GetField12725() *Message12687 { if x != nil { return x.Field12725 } return nil } func (x *Message12717) GetField12726() []*Message11948 { if x != nil { return x.Field12726 } return nil } func (x *Message12717) GetField12727() int64 { if x != nil && x.Field12727 != nil { return *x.Field12727 } return 0 } type Message37331 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field37367 *UnusedEmptyMessage `protobuf:"bytes,4,opt,name=field37367" json:"field37367,omitempty"` Field37368 *Message37326 `protobuf:"bytes,1,req,name=field37368" json:"field37368,omitempty"` Field37369 *int64 `protobuf:"varint,2,req,name=field37369" json:"field37369,omitempty"` Field37370 []byte `protobuf:"bytes,3,req,name=field37370" json:"field37370,omitempty"` } func (x *Message37331) Reset() { *x = Message37331{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message37331) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message37331) ProtoMessage() {} func (x *Message37331) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message37331.ProtoReflect.Descriptor instead. func (*Message37331) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{4} } func (x *Message37331) GetField37367() *UnusedEmptyMessage { if x != nil { return x.Field37367 } return nil } func (x *Message37331) GetField37368() *Message37326 { if x != nil { return x.Field37368 } return nil } func (x *Message37331) GetField37369() int64 { if x != nil && x.Field37369 != nil { return *x.Field37369 } return 0 } func (x *Message37331) GetField37370() []byte { if x != nil { return x.Field37370 } return nil } type Message8815 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8819 *UnusedEmptyMessage `protobuf:"bytes,1,opt,name=field8819" json:"field8819,omitempty"` Field8820 []*Message8768 `protobuf:"bytes,2,rep,name=field8820" json:"field8820,omitempty"` Field8821 *bool `protobuf:"varint,3,opt,name=field8821" json:"field8821,omitempty"` } func (x *Message8815) Reset() { *x = Message8815{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8815) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8815) ProtoMessage() {} func (x *Message8815) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8815.ProtoReflect.Descriptor instead. func (*Message8815) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{5} } func (x *Message8815) GetField8819() *UnusedEmptyMessage { if x != nil { return x.Field8819 } return nil } func (x *Message8815) GetField8820() []*Message8768 { if x != nil { return x.Field8820 } return nil } func (x *Message8815) GetField8821() bool { if x != nil && x.Field8821 != nil { return *x.Field8821 } return false } type Message7330 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7332 *UnusedEmptyMessage `protobuf:"bytes,1,opt,name=field7332" json:"field7332,omitempty"` Field7333 *Message3069 `protobuf:"bytes,2,opt,name=field7333" json:"field7333,omitempty"` Field7334 *Message7320 `protobuf:"bytes,3,opt,name=field7334" json:"field7334,omitempty"` Field7335 *UnusedEmptyMessage `protobuf:"bytes,4,opt,name=field7335" json:"field7335,omitempty"` Field7336 *bool `protobuf:"varint,5,opt,name=field7336" json:"field7336,omitempty"` Field7337 *int64 `protobuf:"varint,6,opt,name=field7337" json:"field7337,omitempty"` } func (x *Message7330) Reset() { *x = Message7330{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7330) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7330) ProtoMessage() {} func (x *Message7330) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7330.ProtoReflect.Descriptor instead. func (*Message7330) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{6} } func (x *Message7330) GetField7332() *UnusedEmptyMessage { if x != nil { return x.Field7332 } return nil } func (x *Message7330) GetField7333() *Message3069 { if x != nil { return x.Field7333 } return nil } func (x *Message7330) GetField7334() *Message7320 { if x != nil { return x.Field7334 } return nil } func (x *Message7330) GetField7335() *UnusedEmptyMessage { if x != nil { return x.Field7335 } return nil } func (x *Message7330) GetField7336() bool { if x != nil && x.Field7336 != nil { return *x.Field7336 } return false } func (x *Message7330) GetField7337() int64 { if x != nil && x.Field7337 != nil { return *x.Field7337 } return 0 } type Message12960 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12962 *UnusedEmptyMessage `protobuf:"bytes,1,opt,name=field12962" json:"field12962,omitempty"` Field12963 *Message12948 `protobuf:"bytes,2,opt,name=field12963" json:"field12963,omitempty"` } func (x *Message12960) Reset() { *x = Message12960{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12960) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12960) ProtoMessage() {} func (x *Message12960) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12960.ProtoReflect.Descriptor instead. func (*Message12960) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{7} } func (x *Message12960) GetField12962() *UnusedEmptyMessage { if x != nil { return x.Field12962 } return nil } func (x *Message12960) GetField12963() *Message12948 { if x != nil { return x.Field12963 } return nil } type Message176 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field408 *string `protobuf:"bytes,1,req,name=field408" json:"field408,omitempty"` Field409 *int32 `protobuf:"varint,4,opt,name=field409" json:"field409,omitempty"` Field410 *string `protobuf:"bytes,50,opt,name=field410" json:"field410,omitempty"` Field411 *int32 `protobuf:"varint,2,opt,name=field411" json:"field411,omitempty"` Field412 *uint64 `protobuf:"varint,47,opt,name=field412" json:"field412,omitempty"` Field413 *string `protobuf:"bytes,56,opt,name=field413" json:"field413,omitempty"` Field414 *int32 `protobuf:"varint,24,opt,name=field414" json:"field414,omitempty"` Field415 *string `protobuf:"bytes,21,opt,name=field415" json:"field415,omitempty"` Field416 []byte `protobuf:"bytes,3,opt,name=field416" json:"field416,omitempty"` Field417 *string `protobuf:"bytes,57,opt,name=field417" json:"field417,omitempty"` Field418 *int32 `protobuf:"varint,51,opt,name=field418" json:"field418,omitempty"` Field419 *float32 `protobuf:"fixed32,7,opt,name=field419" json:"field419,omitempty"` Field420 *bool `protobuf:"varint,5,opt,name=field420" json:"field420,omitempty"` Field421 *bool `protobuf:"varint,28,opt,name=field421" json:"field421,omitempty"` Field422 *int32 `protobuf:"varint,6,opt,name=field422" json:"field422,omitempty"` Field423 []int32 `protobuf:"varint,40,rep,name=field423" json:"field423,omitempty"` Field424 *UnusedEmptyMessage `protobuf:"bytes,41,opt,name=field424" json:"field424,omitempty"` Field425 *bool `protobuf:"varint,25,opt,name=field425" json:"field425,omitempty"` Field426 *uint64 `protobuf:"varint,26,opt,name=field426" json:"field426,omitempty"` Field427 *int32 `protobuf:"varint,38,opt,name=field427" json:"field427,omitempty"` Field428 []byte `protobuf:"bytes,15,opt,name=field428" json:"field428,omitempty"` Field429 []byte `protobuf:"bytes,55,opt,name=field429" json:"field429,omitempty"` Field430 []byte `protobuf:"bytes,16,opt,name=field430" json:"field430,omitempty"` Field431 []byte `protobuf:"bytes,23,opt,name=field431" json:"field431,omitempty"` Field432 *bool `protobuf:"varint,33,opt,name=field432" json:"field432,omitempty"` Field433 []byte `protobuf:"bytes,31,opt,name=field433" json:"field433,omitempty"` Field434 []byte `protobuf:"bytes,32,opt,name=field434" json:"field434,omitempty"` Field435 *int32 `protobuf:"varint,36,opt,name=field435" json:"field435,omitempty"` Field436 *uint64 `protobuf:"varint,17,opt,name=field436" json:"field436,omitempty"` Field437 *int32 `protobuf:"varint,45,opt,name=field437" json:"field437,omitempty"` Field438 *uint64 `protobuf:"varint,18,opt,name=field438" json:"field438,omitempty"` Field439 *string `protobuf:"bytes,46,opt,name=field439" json:"field439,omitempty"` Field440 *UnusedEmptyMessage `protobuf:"bytes,64,opt,name=field440" json:"field440,omitempty"` Field441 *int32 `protobuf:"varint,39,opt,name=field441" json:"field441,omitempty"` Field442 *uint64 `protobuf:"varint,48,opt,name=field442" json:"field442,omitempty"` Field443 []byte `protobuf:"bytes,19,opt,name=field443" json:"field443,omitempty"` Field444 []byte `protobuf:"bytes,42,opt,name=field444" json:"field444,omitempty"` Field445 []byte `protobuf:"bytes,43,opt,name=field445" json:"field445,omitempty"` Field446 *string `protobuf:"bytes,44,opt,name=field446" json:"field446,omitempty"` Field447 *string `protobuf:"bytes,49,opt,name=field447" json:"field447,omitempty"` Field448 *int64 `protobuf:"varint,20,opt,name=field448" json:"field448,omitempty"` Field449 *bool `protobuf:"varint,53,opt,name=field449" json:"field449,omitempty"` Field450 *UnusedEmptyMessage `protobuf:"bytes,54,opt,name=field450" json:"field450,omitempty"` Field451 []*UnusedEmptyMessage `protobuf:"bytes,22,rep,name=field451" json:"field451,omitempty"` Field452 *UnusedEnum `protobuf:"varint,27,opt,name=field452,enum=benchmarks.google_message4.UnusedEnum" json:"field452,omitempty"` Field453 *int32 `protobuf:"varint,29,opt,name=field453" json:"field453,omitempty"` Field454 *int32 `protobuf:"varint,30,opt,name=field454" json:"field454,omitempty"` Field455 *UnusedEnum `protobuf:"varint,37,opt,name=field455,enum=benchmarks.google_message4.UnusedEnum" json:"field455,omitempty"` Field456 *UnusedEnum `protobuf:"varint,34,opt,name=field456,enum=benchmarks.google_message4.UnusedEnum" json:"field456,omitempty"` Field457 *int32 `protobuf:"varint,35,opt,name=field457" json:"field457,omitempty"` Message178 []*Message176_Message178 `protobuf:"group,101,rep,name=Message178,json=message178" json:"message178,omitempty"` Field459 *bool `protobuf:"varint,52,opt,name=field459" json:"field459,omitempty"` Field460 *uint64 `protobuf:"varint,58,opt,name=field460" json:"field460,omitempty"` Field461 *uint64 `protobuf:"varint,59,opt,name=field461" json:"field461,omitempty"` Field462 *UnusedEmptyMessage `protobuf:"bytes,60,opt,name=field462" json:"field462,omitempty"` Field463 *UnusedEmptyMessage `protobuf:"bytes,61,opt,name=field463" json:"field463,omitempty"` Field464 *UnusedEnum `protobuf:"varint,62,opt,name=field464,enum=benchmarks.google_message4.UnusedEnum" json:"field464,omitempty"` Field465 []string `protobuf:"bytes,63,rep,name=field465" json:"field465,omitempty"` Field466 *UnusedEmptyMessage `protobuf:"bytes,65,opt,name=field466" json:"field466,omitempty"` } func (x *Message176) Reset() { *x = Message176{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message176) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message176) ProtoMessage() {} func (x *Message176) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message176.ProtoReflect.Descriptor instead. func (*Message176) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{8} } func (x *Message176) GetField408() string { if x != nil && x.Field408 != nil { return *x.Field408 } return "" } func (x *Message176) GetField409() int32 { if x != nil && x.Field409 != nil { return *x.Field409 } return 0 } func (x *Message176) GetField410() string { if x != nil && x.Field410 != nil { return *x.Field410 } return "" } func (x *Message176) GetField411() int32 { if x != nil && x.Field411 != nil { return *x.Field411 } return 0 } func (x *Message176) GetField412() uint64 { if x != nil && x.Field412 != nil { return *x.Field412 } return 0 } func (x *Message176) GetField413() string { if x != nil && x.Field413 != nil { return *x.Field413 } return "" } func (x *Message176) GetField414() int32 { if x != nil && x.Field414 != nil { return *x.Field414 } return 0 } func (x *Message176) GetField415() string { if x != nil && x.Field415 != nil { return *x.Field415 } return "" } func (x *Message176) GetField416() []byte { if x != nil { return x.Field416 } return nil } func (x *Message176) GetField417() string { if x != nil && x.Field417 != nil { return *x.Field417 } return "" } func (x *Message176) GetField418() int32 { if x != nil && x.Field418 != nil { return *x.Field418 } return 0 } func (x *Message176) GetField419() float32 { if x != nil && x.Field419 != nil { return *x.Field419 } return 0 } func (x *Message176) GetField420() bool { if x != nil && x.Field420 != nil { return *x.Field420 } return false } func (x *Message176) GetField421() bool { if x != nil && x.Field421 != nil { return *x.Field421 } return false } func (x *Message176) GetField422() int32 { if x != nil && x.Field422 != nil { return *x.Field422 } return 0 } func (x *Message176) GetField423() []int32 { if x != nil { return x.Field423 } return nil } func (x *Message176) GetField424() *UnusedEmptyMessage { if x != nil { return x.Field424 } return nil } func (x *Message176) GetField425() bool { if x != nil && x.Field425 != nil { return *x.Field425 } return false } func (x *Message176) GetField426() uint64 { if x != nil && x.Field426 != nil { return *x.Field426 } return 0 } func (x *Message176) GetField427() int32 { if x != nil && x.Field427 != nil { return *x.Field427 } return 0 } func (x *Message176) GetField428() []byte { if x != nil { return x.Field428 } return nil } func (x *Message176) GetField429() []byte { if x != nil { return x.Field429 } return nil } func (x *Message176) GetField430() []byte { if x != nil { return x.Field430 } return nil } func (x *Message176) GetField431() []byte { if x != nil { return x.Field431 } return nil } func (x *Message176) GetField432() bool { if x != nil && x.Field432 != nil { return *x.Field432 } return false } func (x *Message176) GetField433() []byte { if x != nil { return x.Field433 } return nil } func (x *Message176) GetField434() []byte { if x != nil { return x.Field434 } return nil } func (x *Message176) GetField435() int32 { if x != nil && x.Field435 != nil { return *x.Field435 } return 0 } func (x *Message176) GetField436() uint64 { if x != nil && x.Field436 != nil { return *x.Field436 } return 0 } func (x *Message176) GetField437() int32 { if x != nil && x.Field437 != nil { return *x.Field437 } return 0 } func (x *Message176) GetField438() uint64 { if x != nil && x.Field438 != nil { return *x.Field438 } return 0 } func (x *Message176) GetField439() string { if x != nil && x.Field439 != nil { return *x.Field439 } return "" } func (x *Message176) GetField440() *UnusedEmptyMessage { if x != nil { return x.Field440 } return nil } func (x *Message176) GetField441() int32 { if x != nil && x.Field441 != nil { return *x.Field441 } return 0 } func (x *Message176) GetField442() uint64 { if x != nil && x.Field442 != nil { return *x.Field442 } return 0 } func (x *Message176) GetField443() []byte { if x != nil { return x.Field443 } return nil } func (x *Message176) GetField444() []byte { if x != nil { return x.Field444 } return nil } func (x *Message176) GetField445() []byte { if x != nil { return x.Field445 } return nil } func (x *Message176) GetField446() string { if x != nil && x.Field446 != nil { return *x.Field446 } return "" } func (x *Message176) GetField447() string { if x != nil && x.Field447 != nil { return *x.Field447 } return "" } func (x *Message176) GetField448() int64 { if x != nil && x.Field448 != nil { return *x.Field448 } return 0 } func (x *Message176) GetField449() bool { if x != nil && x.Field449 != nil { return *x.Field449 } return false } func (x *Message176) GetField450() *UnusedEmptyMessage { if x != nil { return x.Field450 } return nil } func (x *Message176) GetField451() []*UnusedEmptyMessage { if x != nil { return x.Field451 } return nil } func (x *Message176) GetField452() UnusedEnum { if x != nil && x.Field452 != nil { return *x.Field452 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message176) GetField453() int32 { if x != nil && x.Field453 != nil { return *x.Field453 } return 0 } func (x *Message176) GetField454() int32 { if x != nil && x.Field454 != nil { return *x.Field454 } return 0 } func (x *Message176) GetField455() UnusedEnum { if x != nil && x.Field455 != nil { return *x.Field455 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message176) GetField456() UnusedEnum { if x != nil && x.Field456 != nil { return *x.Field456 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message176) GetField457() int32 { if x != nil && x.Field457 != nil { return *x.Field457 } return 0 } func (x *Message176) GetMessage178() []*Message176_Message178 { if x != nil { return x.Message178 } return nil } func (x *Message176) GetField459() bool { if x != nil && x.Field459 != nil { return *x.Field459 } return false } func (x *Message176) GetField460() uint64 { if x != nil && x.Field460 != nil { return *x.Field460 } return 0 } func (x *Message176) GetField461() uint64 { if x != nil && x.Field461 != nil { return *x.Field461 } return 0 } func (x *Message176) GetField462() *UnusedEmptyMessage { if x != nil { return x.Field462 } return nil } func (x *Message176) GetField463() *UnusedEmptyMessage { if x != nil { return x.Field463 } return nil } func (x *Message176) GetField464() UnusedEnum { if x != nil && x.Field464 != nil { return *x.Field464 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message176) GetField465() []string { if x != nil { return x.Field465 } return nil } func (x *Message176) GetField466() *UnusedEmptyMessage { if x != nil { return x.Field466 } return nil } type Message8817 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8825 *UnusedEmptyMessage `protobuf:"bytes,1,opt,name=field8825" json:"field8825,omitempty"` Field8826 []*Message8768 `protobuf:"bytes,2,rep,name=field8826" json:"field8826,omitempty"` Field8827 *string `protobuf:"bytes,3,opt,name=field8827" json:"field8827,omitempty"` } func (x *Message8817) Reset() { *x = Message8817{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8817) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8817) ProtoMessage() {} func (x *Message8817) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8817.ProtoReflect.Descriptor instead. func (*Message8817) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{9} } func (x *Message8817) GetField8825() *UnusedEmptyMessage { if x != nil { return x.Field8825 } return nil } func (x *Message8817) GetField8826() []*Message8768 { if x != nil { return x.Field8826 } return nil } func (x *Message8817) GetField8827() string { if x != nil && x.Field8827 != nil { return *x.Field8827 } return "" } type Message8835 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8837 *UnusedEmptyMessage `protobuf:"bytes,1,opt,name=field8837" json:"field8837,omitempty"` Field8838 []string `protobuf:"bytes,2,rep,name=field8838" json:"field8838,omitempty"` Field8839 *UnusedEnum `protobuf:"varint,3,opt,name=field8839,enum=benchmarks.google_message4.UnusedEnum" json:"field8839,omitempty"` } func (x *Message8835) Reset() { *x = Message8835{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8835) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8835) ProtoMessage() {} func (x *Message8835) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8835.ProtoReflect.Descriptor instead. func (*Message8835) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{10} } func (x *Message8835) GetField8837() *UnusedEmptyMessage { if x != nil { return x.Field8837 } return nil } func (x *Message8835) GetField8838() []string { if x != nil { return x.Field8838 } return nil } func (x *Message8835) GetField8839() UnusedEnum { if x != nil && x.Field8839 != nil { return *x.Field8839 } return UnusedEnum_UNUSED_ENUM_VALUE1 } type Message37333 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field37372 *UnusedEmptyMessage `protobuf:"bytes,3,opt,name=field37372" json:"field37372,omitempty"` Field37373 *Message37326 `protobuf:"bytes,1,req,name=field37373" json:"field37373,omitempty"` Field37374 *uint64 `protobuf:"varint,2,opt,name=field37374" json:"field37374,omitempty"` } func (x *Message37333) Reset() { *x = Message37333{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message37333) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message37333) ProtoMessage() {} func (x *Message37333) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message37333.ProtoReflect.Descriptor instead. func (*Message37333) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{11} } func (x *Message37333) GetField37372() *UnusedEmptyMessage { if x != nil { return x.Field37372 } return nil } func (x *Message37333) GetField37373() *Message37326 { if x != nil { return x.Field37373 } return nil } func (x *Message37333) GetField37374() uint64 { if x != nil && x.Field37374 != nil { return *x.Field37374 } return 0 } type Message13000 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field13015 *int64 `protobuf:"varint,1,opt,name=field13015" json:"field13015,omitempty"` Field13016 []*Message12979 `protobuf:"bytes,2,rep,name=field13016" json:"field13016,omitempty"` } func (x *Message13000) Reset() { *x = Message13000{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message13000) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message13000) ProtoMessage() {} func (x *Message13000) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message13000.ProtoReflect.Descriptor instead. func (*Message13000) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{12} } func (x *Message13000) GetField13015() int64 { if x != nil && x.Field13015 != nil { return *x.Field13015 } return 0 } func (x *Message13000) GetField13016() []*Message12979 { if x != nil { return x.Field13016 } return nil } type Message37335 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field37376 *UnusedEmptyMessage `protobuf:"bytes,4,opt,name=field37376" json:"field37376,omitempty"` Field37377 *Message37326 `protobuf:"bytes,1,req,name=field37377" json:"field37377,omitempty"` Field37378 *Message37173 `protobuf:"bytes,2,req,name=field37378" json:"field37378,omitempty"` Field37379 *uint64 `protobuf:"varint,3,opt,name=field37379" json:"field37379,omitempty"` } func (x *Message37335) Reset() { *x = Message37335{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message37335) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message37335) ProtoMessage() {} func (x *Message37335) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message37335.ProtoReflect.Descriptor instead. func (*Message37335) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{13} } func (x *Message37335) GetField37376() *UnusedEmptyMessage { if x != nil { return x.Field37376 } return nil } func (x *Message37335) GetField37377() *Message37326 { if x != nil { return x.Field37377 } return nil } func (x *Message37335) GetField37378() *Message37173 { if x != nil { return x.Field37378 } return nil } func (x *Message37335) GetField37379() uint64 { if x != nil && x.Field37379 != nil { return *x.Field37379 } return 0 } type Message8848 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8850 *UnusedEmptyMessage `protobuf:"bytes,1,opt,name=field8850" json:"field8850,omitempty"` Field8851 *string `protobuf:"bytes,2,opt,name=field8851" json:"field8851,omitempty"` Field8852 []byte `protobuf:"bytes,3,opt,name=field8852" json:"field8852,omitempty"` } func (x *Message8848) Reset() { *x = Message8848{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8848) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8848) ProtoMessage() {} func (x *Message8848) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8848.ProtoReflect.Descriptor instead. func (*Message8848) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{14} } func (x *Message8848) GetField8850() *UnusedEmptyMessage { if x != nil { return x.Field8850 } return nil } func (x *Message8848) GetField8851() string { if x != nil && x.Field8851 != nil { return *x.Field8851 } return "" } func (x *Message8848) GetField8852() []byte { if x != nil { return x.Field8852 } return nil } type Message13035 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field13058 *int64 `protobuf:"varint,1,opt,name=field13058" json:"field13058,omitempty"` Field13059 []int64 `protobuf:"varint,2,rep,name=field13059" json:"field13059,omitempty"` } func (x *Message13035) Reset() { *x = Message13035{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message13035) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message13035) ProtoMessage() {} func (x *Message13035) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message13035.ProtoReflect.Descriptor instead. func (*Message13035) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{15} } func (x *Message13035) GetField13058() int64 { if x != nil && x.Field13058 != nil { return *x.Field13058 } return 0 } func (x *Message13035) GetField13059() []int64 { if x != nil { return x.Field13059 } return nil } type Message8856 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8858 *UnusedEmptyMessage `protobuf:"bytes,1,opt,name=field8858" json:"field8858,omitempty"` Field8859 *string `protobuf:"bytes,2,opt,name=field8859" json:"field8859,omitempty"` } func (x *Message8856) Reset() { *x = Message8856{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8856) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8856) ProtoMessage() {} func (x *Message8856) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8856.ProtoReflect.Descriptor instead. func (*Message8856) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{16} } func (x *Message8856) GetField8858() *UnusedEmptyMessage { if x != nil { return x.Field8858 } return nil } func (x *Message8856) GetField8859() string { if x != nil && x.Field8859 != nil { return *x.Field8859 } return "" } type Message12908 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12912 *UnusedEmptyMessage `protobuf:"bytes,1,opt,name=field12912" json:"field12912,omitempty"` Field12913 *string `protobuf:"bytes,2,opt,name=field12913" json:"field12913,omitempty"` Field12914 *Message12799 `protobuf:"bytes,3,opt,name=field12914" json:"field12914,omitempty"` Field12915 *int64 `protobuf:"varint,4,opt,name=field12915" json:"field12915,omitempty"` Field12916 *Message3804 `protobuf:"bytes,5,opt,name=field12916" json:"field12916,omitempty"` Field12917 *Message12870 `protobuf:"bytes,6,opt,name=field12917" json:"field12917,omitempty"` } func (x *Message12908) Reset() { *x = Message12908{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12908) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12908) ProtoMessage() {} func (x *Message12908) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12908.ProtoReflect.Descriptor instead. func (*Message12908) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{17} } func (x *Message12908) GetField12912() *UnusedEmptyMessage { if x != nil { return x.Field12912 } return nil } func (x *Message12908) GetField12913() string { if x != nil && x.Field12913 != nil { return *x.Field12913 } return "" } func (x *Message12908) GetField12914() *Message12799 { if x != nil { return x.Field12914 } return nil } func (x *Message12908) GetField12915() int64 { if x != nil && x.Field12915 != nil { return *x.Field12915 } return 0 } func (x *Message12908) GetField12916() *Message3804 { if x != nil { return x.Field12916 } return nil } func (x *Message12908) GetField12917() *Message12870 { if x != nil { return x.Field12917 } return nil } type Message12910 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12920 *UnusedEmptyMessage `protobuf:"bytes,1,opt,name=field12920" json:"field12920,omitempty"` Field12921 *Message12818 `protobuf:"bytes,2,opt,name=field12921" json:"field12921,omitempty"` Field12922 []*Message12903 `protobuf:"bytes,3,rep,name=field12922" json:"field12922,omitempty"` } func (x *Message12910) Reset() { *x = Message12910{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12910) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12910) ProtoMessage() {} func (x *Message12910) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12910.ProtoReflect.Descriptor instead. func (*Message12910) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{18} } func (x *Message12910) GetField12920() *UnusedEmptyMessage { if x != nil { return x.Field12920 } return nil } func (x *Message12910) GetField12921() *Message12818 { if x != nil { return x.Field12921 } return nil } func (x *Message12910) GetField12922() []*Message12903 { if x != nil { return x.Field12922 } return nil } type Message37327 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field37347 *UnusedEmptyMessage `protobuf:"bytes,11,opt,name=field37347" json:"field37347,omitempty"` Field37348 *Message37326 `protobuf:"bytes,1,req,name=field37348" json:"field37348,omitempty"` Field37349 *bool `protobuf:"varint,2,opt,name=field37349" json:"field37349,omitempty"` Field37350 *bool `protobuf:"varint,3,opt,name=field37350" json:"field37350,omitempty"` Field37351 *bool `protobuf:"varint,4,opt,name=field37351" json:"field37351,omitempty"` Field37352 *bool `protobuf:"varint,5,opt,name=field37352" json:"field37352,omitempty"` Field37353 *bool `protobuf:"varint,6,opt,name=field37353" json:"field37353,omitempty"` Field37354 *UnusedEmptyMessage `protobuf:"bytes,7,opt,name=field37354" json:"field37354,omitempty"` Field37355 *uint64 `protobuf:"varint,8,opt,name=field37355" json:"field37355,omitempty"` Field37356 *bool `protobuf:"varint,9,opt,name=field37356" json:"field37356,omitempty"` Field37357 *bool `protobuf:"varint,10,opt,name=field37357" json:"field37357,omitempty"` } func (x *Message37327) Reset() { *x = Message37327{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message37327) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message37327) ProtoMessage() {} func (x *Message37327) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message37327.ProtoReflect.Descriptor instead. func (*Message37327) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{19} } func (x *Message37327) GetField37347() *UnusedEmptyMessage { if x != nil { return x.Field37347 } return nil } func (x *Message37327) GetField37348() *Message37326 { if x != nil { return x.Field37348 } return nil } func (x *Message37327) GetField37349() bool { if x != nil && x.Field37349 != nil { return *x.Field37349 } return false } func (x *Message37327) GetField37350() bool { if x != nil && x.Field37350 != nil { return *x.Field37350 } return false } func (x *Message37327) GetField37351() bool { if x != nil && x.Field37351 != nil { return *x.Field37351 } return false } func (x *Message37327) GetField37352() bool { if x != nil && x.Field37352 != nil { return *x.Field37352 } return false } func (x *Message37327) GetField37353() bool { if x != nil && x.Field37353 != nil { return *x.Field37353 } return false } func (x *Message37327) GetField37354() *UnusedEmptyMessage { if x != nil { return x.Field37354 } return nil } func (x *Message37327) GetField37355() uint64 { if x != nil && x.Field37355 != nil { return *x.Field37355 } return 0 } func (x *Message37327) GetField37356() bool { if x != nil && x.Field37356 != nil { return *x.Field37356 } return false } func (x *Message37327) GetField37357() bool { if x != nil && x.Field37357 != nil { return *x.Field37357 } return false } type Message37329 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field37359 *UnusedEmptyMessage `protobuf:"bytes,6,opt,name=field37359" json:"field37359,omitempty"` Field37360 *Message37326 `protobuf:"bytes,1,req,name=field37360" json:"field37360,omitempty"` Field37361 *int64 `protobuf:"varint,2,req,name=field37361" json:"field37361,omitempty"` Field37362 *int64 `protobuf:"varint,3,req,name=field37362" json:"field37362,omitempty"` Field37363 *bool `protobuf:"varint,4,opt,name=field37363" json:"field37363,omitempty"` } func (x *Message37329) Reset() { *x = Message37329{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message37329) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message37329) ProtoMessage() {} func (x *Message37329) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message37329.ProtoReflect.Descriptor instead. func (*Message37329) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{20} } func (x *Message37329) GetField37359() *UnusedEmptyMessage { if x != nil { return x.Field37359 } return nil } func (x *Message37329) GetField37360() *Message37326 { if x != nil { return x.Field37360 } return nil } func (x *Message37329) GetField37361() int64 { if x != nil && x.Field37361 != nil { return *x.Field37361 } return 0 } func (x *Message37329) GetField37362() int64 { if x != nil && x.Field37362 != nil { return *x.Field37362 } return 0 } func (x *Message37329) GetField37363() bool { if x != nil && x.Field37363 != nil { return *x.Field37363 } return false } type Message2517 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field2519 *UnusedEmptyMessage `protobuf:"bytes,1,opt,name=field2519" json:"field2519,omitempty"` Field2520 *Message2356 `protobuf:"bytes,2,opt,name=field2520" json:"field2520,omitempty"` Field2521 *Message0 `protobuf:"bytes,3,opt,name=field2521" json:"field2521,omitempty"` Field2522 *Message2463 `protobuf:"bytes,4,opt,name=field2522" json:"field2522,omitempty"` Field2523 []*Message971 `protobuf:"bytes,5,rep,name=field2523" json:"field2523,omitempty"` } func (x *Message2517) Reset() { *x = Message2517{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message2517) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message2517) ProtoMessage() {} func (x *Message2517) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message2517.ProtoReflect.Descriptor instead. func (*Message2517) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{21} } func (x *Message2517) GetField2519() *UnusedEmptyMessage { if x != nil { return x.Field2519 } return nil } func (x *Message2517) GetField2520() *Message2356 { if x != nil { return x.Field2520 } return nil } func (x *Message2517) GetField2521() *Message0 { if x != nil { return x.Field2521 } return nil } func (x *Message2517) GetField2522() *Message2463 { if x != nil { return x.Field2522 } return nil } func (x *Message2517) GetField2523() []*Message971 { if x != nil { return x.Field2523 } return nil } type Message12748 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12754 *UnusedEmptyMessage `protobuf:"bytes,1,opt,name=field12754" json:"field12754,omitempty"` Field12755 *string `protobuf:"bytes,2,opt,name=field12755" json:"field12755,omitempty"` Field12756 *string `protobuf:"bytes,3,opt,name=field12756" json:"field12756,omitempty"` Field12757 *Enum12735 `protobuf:"varint,4,opt,name=field12757,enum=benchmarks.google_message4.Enum12735" json:"field12757,omitempty"` } func (x *Message12748) Reset() { *x = Message12748{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12748) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12748) ProtoMessage() {} func (x *Message12748) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12748.ProtoReflect.Descriptor instead. func (*Message12748) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{22} } func (x *Message12748) GetField12754() *UnusedEmptyMessage { if x != nil { return x.Field12754 } return nil } func (x *Message12748) GetField12755() string { if x != nil && x.Field12755 != nil { return *x.Field12755 } return "" } func (x *Message12748) GetField12756() string { if x != nil && x.Field12756 != nil { return *x.Field12756 } return "" } func (x *Message12748) GetField12757() Enum12735 { if x != nil && x.Field12757 != nil { return *x.Field12757 } return Enum12735_ENUM_VALUE12736 } type Message12687 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12701 []*Message12686 `protobuf:"bytes,1,rep,name=field12701" json:"field12701,omitempty"` } func (x *Message12687) Reset() { *x = Message12687{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12687) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12687) ProtoMessage() {} func (x *Message12687) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12687.ProtoReflect.Descriptor instead. func (*Message12687) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{23} } func (x *Message12687) GetField12701() []*Message12686 { if x != nil { return x.Field12701 } return nil } type Message11948 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field11954 *string `protobuf:"bytes,1,opt,name=field11954" json:"field11954,omitempty"` Field11955 []*Message11949 `protobuf:"bytes,2,rep,name=field11955" json:"field11955,omitempty"` Field11956 *bool `protobuf:"varint,3,opt,name=field11956" json:"field11956,omitempty"` } func (x *Message11948) Reset() { *x = Message11948{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message11948) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message11948) ProtoMessage() {} func (x *Message11948) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message11948.ProtoReflect.Descriptor instead. func (*Message11948) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{24} } func (x *Message11948) GetField11954() string { if x != nil && x.Field11954 != nil { return *x.Field11954 } return "" } func (x *Message11948) GetField11955() []*Message11949 { if x != nil { return x.Field11955 } return nil } func (x *Message11948) GetField11956() bool { if x != nil && x.Field11956 != nil { return *x.Field11956 } return false } type Message11976 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12002 []*Message11975 `protobuf:"bytes,1,rep,name=field12002" json:"field12002,omitempty"` } func (x *Message11976) Reset() { *x = Message11976{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message11976) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message11976) ProtoMessage() {} func (x *Message11976) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message11976.ProtoReflect.Descriptor instead. func (*Message11976) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{25} } func (x *Message11976) GetField12002() []*Message11975 { if x != nil { return x.Field12002 } return nil } type Message7320 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7323 *UnusedEmptyMessage `protobuf:"bytes,1,opt,name=field7323" json:"field7323,omitempty"` Field7324 *Message7287 `protobuf:"bytes,8,opt,name=field7324" json:"field7324,omitempty"` } func (x *Message7320) Reset() { *x = Message7320{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7320) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7320) ProtoMessage() {} func (x *Message7320) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7320.ProtoReflect.Descriptor instead. func (*Message7320) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{26} } func (x *Message7320) GetField7323() *UnusedEmptyMessage { if x != nil { return x.Field7323 } return nil } func (x *Message7320) GetField7324() *Message7287 { if x != nil { return x.Field7324 } return nil } type Message3069 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields Field3374 *Message3061 `protobuf:"bytes,1,opt,name=field3374" json:"field3374,omitempty"` Field3375 []byte `protobuf:"bytes,2,opt,name=field3375" json:"field3375,omitempty"` Message3070 []*Message3069_Message3070 `protobuf:"group,3,rep,name=Message3070,json=message3070" json:"message3070,omitempty"` } func (x *Message3069) Reset() { *x = Message3069{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3069) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3069) ProtoMessage() {} func (x *Message3069) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3069.ProtoReflect.Descriptor instead. func (*Message3069) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{27} } func (x *Message3069) GetField3374() *Message3061 { if x != nil { return x.Field3374 } return nil } func (x *Message3069) GetField3375() []byte { if x != nil { return x.Field3375 } return nil } func (x *Message3069) GetMessage3070() []*Message3069_Message3070 { if x != nil { return x.Message3070 } return nil } type Message12948 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12958 []*Message12949 `protobuf:"bytes,1,rep,name=field12958" json:"field12958,omitempty"` } func (x *Message12948) Reset() { *x = Message12948{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12948) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12948) ProtoMessage() {} func (x *Message12948) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12948.ProtoReflect.Descriptor instead. func (*Message12948) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{28} } func (x *Message12948) GetField12958() []*Message12949 { if x != nil { return x.Field12958 } return nil } type Message8768 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8782 *string `protobuf:"bytes,1,opt,name=field8782" json:"field8782,omitempty"` Field8783 *Message8572 `protobuf:"bytes,2,opt,name=field8783" json:"field8783,omitempty"` Field8784 *bool `protobuf:"varint,3,opt,name=field8784" json:"field8784,omitempty"` Field8785 []*Message8774 `protobuf:"bytes,4,rep,name=field8785" json:"field8785,omitempty"` Field8786 *int64 `protobuf:"varint,5,opt,name=field8786" json:"field8786,omitempty"` Field8787 *UnusedEmptyMessage `protobuf:"bytes,6,opt,name=field8787" json:"field8787,omitempty"` Field8788 *string `protobuf:"bytes,7,opt,name=field8788" json:"field8788,omitempty"` } func (x *Message8768) Reset() { *x = Message8768{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8768) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8768) ProtoMessage() {} func (x *Message8768) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8768.ProtoReflect.Descriptor instead. func (*Message8768) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{29} } func (x *Message8768) GetField8782() string { if x != nil && x.Field8782 != nil { return *x.Field8782 } return "" } func (x *Message8768) GetField8783() *Message8572 { if x != nil { return x.Field8783 } return nil } func (x *Message8768) GetField8784() bool { if x != nil && x.Field8784 != nil { return *x.Field8784 } return false } func (x *Message8768) GetField8785() []*Message8774 { if x != nil { return x.Field8785 } return nil } func (x *Message8768) GetField8786() int64 { if x != nil && x.Field8786 != nil { return *x.Field8786 } return 0 } func (x *Message8768) GetField8787() *UnusedEmptyMessage { if x != nil { return x.Field8787 } return nil } func (x *Message8768) GetField8788() string { if x != nil && x.Field8788 != nil { return *x.Field8788 } return "" } type Message12979 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12981 []byte `protobuf:"bytes,1,req,name=field12981" json:"field12981,omitempty"` Field12982 []string `protobuf:"bytes,2,rep,name=field12982" json:"field12982,omitempty"` Field12983 *UnusedEmptyMessage `protobuf:"bytes,3,opt,name=field12983" json:"field12983,omitempty"` Field12984 *int64 `protobuf:"varint,4,opt,name=field12984" json:"field12984,omitempty"` Field12985 *string `protobuf:"bytes,5,opt,name=field12985" json:"field12985,omitempty"` Field12986 *int32 `protobuf:"varint,6,opt,name=field12986" json:"field12986,omitempty"` Field12987 *UnusedEmptyMessage `protobuf:"bytes,7,opt,name=field12987" json:"field12987,omitempty"` } func (x *Message12979) Reset() { *x = Message12979{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12979) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12979) ProtoMessage() {} func (x *Message12979) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12979.ProtoReflect.Descriptor instead. func (*Message12979) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{30} } func (x *Message12979) GetField12981() []byte { if x != nil { return x.Field12981 } return nil } func (x *Message12979) GetField12982() []string { if x != nil { return x.Field12982 } return nil } func (x *Message12979) GetField12983() *UnusedEmptyMessage { if x != nil { return x.Field12983 } return nil } func (x *Message12979) GetField12984() int64 { if x != nil && x.Field12984 != nil { return *x.Field12984 } return 0 } func (x *Message12979) GetField12985() string { if x != nil && x.Field12985 != nil { return *x.Field12985 } return "" } func (x *Message12979) GetField12986() int32 { if x != nil && x.Field12986 != nil { return *x.Field12986 } return 0 } func (x *Message12979) GetField12987() *UnusedEmptyMessage { if x != nil { return x.Field12987 } return nil } type Message37173 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field37252 *string `protobuf:"bytes,1,opt,name=field37252" json:"field37252,omitempty"` Field37253 *int64 `protobuf:"varint,2,opt,name=field37253" json:"field37253,omitempty"` Field37254 *UnusedEnum `protobuf:"varint,4,opt,name=field37254,enum=benchmarks.google_message4.UnusedEnum" json:"field37254,omitempty"` Field37255 *bool `protobuf:"varint,5,opt,name=field37255" json:"field37255,omitempty"` Field37256 *bool `protobuf:"varint,6,opt,name=field37256" json:"field37256,omitempty"` Field37257 *bool `protobuf:"varint,7,opt,name=field37257" json:"field37257,omitempty"` Field37258 *string `protobuf:"bytes,8,opt,name=field37258" json:"field37258,omitempty"` Field37259 *string `protobuf:"bytes,9,opt,name=field37259" json:"field37259,omitempty"` Field37260 *uint32 `protobuf:"varint,10,opt,name=field37260" json:"field37260,omitempty"` Field37261 *uint32 `protobuf:"fixed32,11,opt,name=field37261" json:"field37261,omitempty"` Field37262 *string `protobuf:"bytes,12,opt,name=field37262" json:"field37262,omitempty"` Field37263 *string `protobuf:"bytes,13,opt,name=field37263" json:"field37263,omitempty"` Field37264 *string `protobuf:"bytes,14,opt,name=field37264" json:"field37264,omitempty"` Field37265 *int32 `protobuf:"varint,15,opt,name=field37265" json:"field37265,omitempty"` Field37266 *int64 `protobuf:"varint,16,opt,name=field37266" json:"field37266,omitempty"` Field37267 *int64 `protobuf:"varint,17,opt,name=field37267" json:"field37267,omitempty"` Field37268 *int32 `protobuf:"varint,18,opt,name=field37268" json:"field37268,omitempty"` Field37269 *int32 `protobuf:"varint,19,opt,name=field37269" json:"field37269,omitempty"` Field37270 *UnusedEmptyMessage `protobuf:"bytes,20,opt,name=field37270" json:"field37270,omitempty"` Field37271 *UnusedEmptyMessage `protobuf:"bytes,21,opt,name=field37271" json:"field37271,omitempty"` Field37272 *UnusedEmptyMessage `protobuf:"bytes,22,opt,name=field37272" json:"field37272,omitempty"` Field37273 *UnusedEmptyMessage `protobuf:"bytes,23,opt,name=field37273" json:"field37273,omitempty"` Field37274 *UnusedEmptyMessage `protobuf:"bytes,24,opt,name=field37274" json:"field37274,omitempty"` Field37275 *string `protobuf:"bytes,25,opt,name=field37275" json:"field37275,omitempty"` Field37276 *bool `protobuf:"varint,26,opt,name=field37276" json:"field37276,omitempty"` } func (x *Message37173) Reset() { *x = Message37173{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message37173) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message37173) ProtoMessage() {} func (x *Message37173) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message37173.ProtoReflect.Descriptor instead. func (*Message37173) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{31} } func (x *Message37173) GetField37252() string { if x != nil && x.Field37252 != nil { return *x.Field37252 } return "" } func (x *Message37173) GetField37253() int64 { if x != nil && x.Field37253 != nil { return *x.Field37253 } return 0 } func (x *Message37173) GetField37254() UnusedEnum { if x != nil && x.Field37254 != nil { return *x.Field37254 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message37173) GetField37255() bool { if x != nil && x.Field37255 != nil { return *x.Field37255 } return false } func (x *Message37173) GetField37256() bool { if x != nil && x.Field37256 != nil { return *x.Field37256 } return false } func (x *Message37173) GetField37257() bool { if x != nil && x.Field37257 != nil { return *x.Field37257 } return false } func (x *Message37173) GetField37258() string { if x != nil && x.Field37258 != nil { return *x.Field37258 } return "" } func (x *Message37173) GetField37259() string { if x != nil && x.Field37259 != nil { return *x.Field37259 } return "" } func (x *Message37173) GetField37260() uint32 { if x != nil && x.Field37260 != nil { return *x.Field37260 } return 0 } func (x *Message37173) GetField37261() uint32 { if x != nil && x.Field37261 != nil { return *x.Field37261 } return 0 } func (x *Message37173) GetField37262() string { if x != nil && x.Field37262 != nil { return *x.Field37262 } return "" } func (x *Message37173) GetField37263() string { if x != nil && x.Field37263 != nil { return *x.Field37263 } return "" } func (x *Message37173) GetField37264() string { if x != nil && x.Field37264 != nil { return *x.Field37264 } return "" } func (x *Message37173) GetField37265() int32 { if x != nil && x.Field37265 != nil { return *x.Field37265 } return 0 } func (x *Message37173) GetField37266() int64 { if x != nil && x.Field37266 != nil { return *x.Field37266 } return 0 } func (x *Message37173) GetField37267() int64 { if x != nil && x.Field37267 != nil { return *x.Field37267 } return 0 } func (x *Message37173) GetField37268() int32 { if x != nil && x.Field37268 != nil { return *x.Field37268 } return 0 } func (x *Message37173) GetField37269() int32 { if x != nil && x.Field37269 != nil { return *x.Field37269 } return 0 } func (x *Message37173) GetField37270() *UnusedEmptyMessage { if x != nil { return x.Field37270 } return nil } func (x *Message37173) GetField37271() *UnusedEmptyMessage { if x != nil { return x.Field37271 } return nil } func (x *Message37173) GetField37272() *UnusedEmptyMessage { if x != nil { return x.Field37272 } return nil } func (x *Message37173) GetField37273() *UnusedEmptyMessage { if x != nil { return x.Field37273 } return nil } func (x *Message37173) GetField37274() *UnusedEmptyMessage { if x != nil { return x.Field37274 } return nil } func (x *Message37173) GetField37275() string { if x != nil && x.Field37275 != nil { return *x.Field37275 } return "" } func (x *Message37173) GetField37276() bool { if x != nil && x.Field37276 != nil { return *x.Field37276 } return false } type Message12799 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12809 *string `protobuf:"bytes,1,req,name=field12809" json:"field12809,omitempty"` Field12810 []uint64 `protobuf:"fixed64,2,rep,name=field12810" json:"field12810,omitempty"` Field12811 []*Message12776 `protobuf:"bytes,8,rep,name=field12811" json:"field12811,omitempty"` Field12812 []int32 `protobuf:"varint,4,rep,name=field12812" json:"field12812,omitempty"` Field12813 []*Message12798 `protobuf:"bytes,5,rep,name=field12813" json:"field12813,omitempty"` Field12814 *int32 `protobuf:"varint,3,req,name=field12814" json:"field12814,omitempty"` Field12815 *int32 `protobuf:"varint,6,opt,name=field12815" json:"field12815,omitempty"` Field12816 *Message12797 `protobuf:"bytes,7,opt,name=field12816" json:"field12816,omitempty"` } func (x *Message12799) Reset() { *x = Message12799{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12799) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12799) ProtoMessage() {} func (x *Message12799) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12799.ProtoReflect.Descriptor instead. func (*Message12799) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{32} } func (x *Message12799) GetField12809() string { if x != nil && x.Field12809 != nil { return *x.Field12809 } return "" } func (x *Message12799) GetField12810() []uint64 { if x != nil { return x.Field12810 } return nil } func (x *Message12799) GetField12811() []*Message12776 { if x != nil { return x.Field12811 } return nil } func (x *Message12799) GetField12812() []int32 { if x != nil { return x.Field12812 } return nil } func (x *Message12799) GetField12813() []*Message12798 { if x != nil { return x.Field12813 } return nil } func (x *Message12799) GetField12814() int32 { if x != nil && x.Field12814 != nil { return *x.Field12814 } return 0 } func (x *Message12799) GetField12815() int32 { if x != nil && x.Field12815 != nil { return *x.Field12815 } return 0 } func (x *Message12799) GetField12816() *Message12797 { if x != nil { return x.Field12816 } return nil } type Message12870 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12879 *int32 `protobuf:"varint,1,req,name=field12879" json:"field12879,omitempty"` Field12880 *int32 `protobuf:"varint,7,opt,name=field12880" json:"field12880,omitempty"` Field12881 *int32 `protobuf:"varint,2,req,name=field12881" json:"field12881,omitempty"` Field12882 *uint64 `protobuf:"varint,3,opt,name=field12882" json:"field12882,omitempty"` Field12883 *string `protobuf:"bytes,2001,opt,name=field12883" json:"field12883,omitempty"` Field12884 *uint64 `protobuf:"fixed64,4,opt,name=field12884" json:"field12884,omitempty"` Field12885 []uint64 `protobuf:"fixed64,14,rep,name=field12885" json:"field12885,omitempty"` Field12886 *int32 `protobuf:"varint,9,opt,name=field12886" json:"field12886,omitempty"` Field12887 *int64 `protobuf:"varint,18,opt,name=field12887" json:"field12887,omitempty"` Field12888 []*Message12870 `protobuf:"bytes,8,rep,name=field12888" json:"field12888,omitempty"` Field12889 *int32 `protobuf:"varint,5,opt,name=field12889" json:"field12889,omitempty"` Field12890 *uint64 `protobuf:"varint,6,opt,name=field12890" json:"field12890,omitempty"` Field12891 *int32 `protobuf:"varint,10,opt,name=field12891" json:"field12891,omitempty"` Field12892 *int32 `protobuf:"varint,11,opt,name=field12892" json:"field12892,omitempty"` Field12893 *float64 `protobuf:"fixed64,12,opt,name=field12893" json:"field12893,omitempty"` Field12894 *Message12825 `protobuf:"bytes,13,opt,name=field12894" json:"field12894,omitempty"` Field12895 *float64 `protobuf:"fixed64,15,opt,name=field12895" json:"field12895,omitempty"` Field12896 *string `protobuf:"bytes,16,opt,name=field12896" json:"field12896,omitempty"` Field12897 *Enum12871 `protobuf:"varint,17,opt,name=field12897,enum=benchmarks.google_message4.Enum12871" json:"field12897,omitempty"` Field12898 *int32 `protobuf:"varint,19,opt,name=field12898" json:"field12898,omitempty"` } func (x *Message12870) Reset() { *x = Message12870{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12870) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12870) ProtoMessage() {} func (x *Message12870) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12870.ProtoReflect.Descriptor instead. func (*Message12870) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{33} } func (x *Message12870) GetField12879() int32 { if x != nil && x.Field12879 != nil { return *x.Field12879 } return 0 } func (x *Message12870) GetField12880() int32 { if x != nil && x.Field12880 != nil { return *x.Field12880 } return 0 } func (x *Message12870) GetField12881() int32 { if x != nil && x.Field12881 != nil { return *x.Field12881 } return 0 } func (x *Message12870) GetField12882() uint64 { if x != nil && x.Field12882 != nil { return *x.Field12882 } return 0 } func (x *Message12870) GetField12883() string { if x != nil && x.Field12883 != nil { return *x.Field12883 } return "" } func (x *Message12870) GetField12884() uint64 { if x != nil && x.Field12884 != nil { return *x.Field12884 } return 0 } func (x *Message12870) GetField12885() []uint64 { if x != nil { return x.Field12885 } return nil } func (x *Message12870) GetField12886() int32 { if x != nil && x.Field12886 != nil { return *x.Field12886 } return 0 } func (x *Message12870) GetField12887() int64 { if x != nil && x.Field12887 != nil { return *x.Field12887 } return 0 } func (x *Message12870) GetField12888() []*Message12870 { if x != nil { return x.Field12888 } return nil } func (x *Message12870) GetField12889() int32 { if x != nil && x.Field12889 != nil { return *x.Field12889 } return 0 } func (x *Message12870) GetField12890() uint64 { if x != nil && x.Field12890 != nil { return *x.Field12890 } return 0 } func (x *Message12870) GetField12891() int32 { if x != nil && x.Field12891 != nil { return *x.Field12891 } return 0 } func (x *Message12870) GetField12892() int32 { if x != nil && x.Field12892 != nil { return *x.Field12892 } return 0 } func (x *Message12870) GetField12893() float64 { if x != nil && x.Field12893 != nil { return *x.Field12893 } return 0 } func (x *Message12870) GetField12894() *Message12825 { if x != nil { return x.Field12894 } return nil } func (x *Message12870) GetField12895() float64 { if x != nil && x.Field12895 != nil { return *x.Field12895 } return 0 } func (x *Message12870) GetField12896() string { if x != nil && x.Field12896 != nil { return *x.Field12896 } return "" } func (x *Message12870) GetField12897() Enum12871 { if x != nil && x.Field12897 != nil { return *x.Field12897 } return Enum12871_ENUM_VALUE12872 } func (x *Message12870) GetField12898() int32 { if x != nil && x.Field12898 != nil { return *x.Field12898 } return 0 } type Message3804 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field3818 *int64 `protobuf:"varint,1,req,name=field3818" json:"field3818,omitempty"` Field3819 *bool `protobuf:"varint,2,req,name=field3819" json:"field3819,omitempty"` Field3820 []Enum3805 `protobuf:"varint,4,rep,name=field3820,enum=benchmarks.google_message4.Enum3805" json:"field3820,omitempty"` Field3821 *int32 `protobuf:"varint,5,opt,name=field3821" json:"field3821,omitempty"` Field3822 *bool `protobuf:"varint,6,opt,name=field3822" json:"field3822,omitempty"` Field3823 *int64 `protobuf:"varint,7,opt,name=field3823" json:"field3823,omitempty"` Field3824 *Enum3783 `protobuf:"varint,8,opt,name=field3824,enum=benchmarks.google_message4.Enum3783" json:"field3824,omitempty"` } func (x *Message3804) Reset() { *x = Message3804{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3804) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3804) ProtoMessage() {} func (x *Message3804) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3804.ProtoReflect.Descriptor instead. func (*Message3804) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{34} } func (x *Message3804) GetField3818() int64 { if x != nil && x.Field3818 != nil { return *x.Field3818 } return 0 } func (x *Message3804) GetField3819() bool { if x != nil && x.Field3819 != nil { return *x.Field3819 } return false } func (x *Message3804) GetField3820() []Enum3805 { if x != nil { return x.Field3820 } return nil } func (x *Message3804) GetField3821() int32 { if x != nil && x.Field3821 != nil { return *x.Field3821 } return 0 } func (x *Message3804) GetField3822() bool { if x != nil && x.Field3822 != nil { return *x.Field3822 } return false } func (x *Message3804) GetField3823() int64 { if x != nil && x.Field3823 != nil { return *x.Field3823 } return 0 } func (x *Message3804) GetField3824() Enum3783 { if x != nil && x.Field3824 != nil { return *x.Field3824 } return Enum3783_ENUM_VALUE3784 } type Message12903 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12905 *string `protobuf:"bytes,1,opt,name=field12905" json:"field12905,omitempty"` Field12906 *Message8587 `protobuf:"bytes,2,opt,name=field12906" json:"field12906,omitempty"` Field12907 []*Message8590 `protobuf:"bytes,3,rep,name=field12907" json:"field12907,omitempty"` } func (x *Message12903) Reset() { *x = Message12903{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12903) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12903) ProtoMessage() {} func (x *Message12903) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12903.ProtoReflect.Descriptor instead. func (*Message12903) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{35} } func (x *Message12903) GetField12905() string { if x != nil && x.Field12905 != nil { return *x.Field12905 } return "" } func (x *Message12903) GetField12906() *Message8587 { if x != nil { return x.Field12906 } return nil } func (x *Message12903) GetField12907() []*Message8590 { if x != nil { return x.Field12907 } return nil } type Message37326 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field37345 *string `protobuf:"bytes,1,req,name=field37345" json:"field37345,omitempty"` Field37346 *string `protobuf:"bytes,2,opt,name=field37346" json:"field37346,omitempty"` } func (x *Message37326) Reset() { *x = Message37326{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message37326) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message37326) ProtoMessage() {} func (x *Message37326) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message37326.ProtoReflect.Descriptor instead. func (*Message37326) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{36} } func (x *Message37326) GetField37345() string { if x != nil && x.Field37345 != nil { return *x.Field37345 } return "" } func (x *Message37326) GetField37346() string { if x != nil && x.Field37346 != nil { return *x.Field37346 } return "" } type Message2356 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field2368 *Message1374 `protobuf:"bytes,121,opt,name=field2368" json:"field2368,omitempty"` Field2369 *uint64 `protobuf:"varint,1,opt,name=field2369" json:"field2369,omitempty"` Field2370 *int32 `protobuf:"varint,2,opt,name=field2370" json:"field2370,omitempty"` Field2371 *int32 `protobuf:"varint,17,opt,name=field2371" json:"field2371,omitempty"` Field2372 *string `protobuf:"bytes,3,req,name=field2372" json:"field2372,omitempty"` Field2373 *int32 `protobuf:"varint,7,opt,name=field2373" json:"field2373,omitempty"` Field2374 []byte `protobuf:"bytes,8,opt,name=field2374" json:"field2374,omitempty"` Field2375 *string `protobuf:"bytes,4,opt,name=field2375" json:"field2375,omitempty"` Field2376 *string `protobuf:"bytes,101,opt,name=field2376" json:"field2376,omitempty"` Field2377 *int32 `protobuf:"varint,102,opt,name=field2377" json:"field2377,omitempty"` Field2378 *int32 `protobuf:"varint,103,opt,name=field2378" json:"field2378,omitempty"` Field2379 *int32 `protobuf:"varint,104,opt,name=field2379" json:"field2379,omitempty"` Field2380 *int32 `protobuf:"varint,113,opt,name=field2380" json:"field2380,omitempty"` Field2381 *int32 `protobuf:"varint,114,opt,name=field2381" json:"field2381,omitempty"` Field2382 *int32 `protobuf:"varint,115,opt,name=field2382" json:"field2382,omitempty"` Field2383 *int32 `protobuf:"varint,117,opt,name=field2383" json:"field2383,omitempty"` Field2384 *int32 `protobuf:"varint,118,opt,name=field2384" json:"field2384,omitempty"` Field2385 *int32 `protobuf:"varint,119,opt,name=field2385" json:"field2385,omitempty"` Field2386 *int32 `protobuf:"varint,105,opt,name=field2386" json:"field2386,omitempty"` Field2387 []byte `protobuf:"bytes,5,opt,name=field2387" json:"field2387,omitempty"` Message2357 *Message2356_Message2357 `protobuf:"group,6,opt,name=Message2357,json=message2357" json:"message2357,omitempty"` Field2389 *string `protobuf:"bytes,120,opt,name=field2389" json:"field2389,omitempty"` Message2358 *Message2356_Message2358 `protobuf:"group,107,opt,name=Message2358,json=message2358" json:"message2358,omitempty"` Message2359 []*Message2356_Message2359 `protobuf:"group,40,rep,name=Message2359,json=message2359" json:"message2359,omitempty"` Field2392 *int32 `protobuf:"varint,50,opt,name=field2392" json:"field2392,omitempty"` Field2393 *UnusedEmptyMessage `protobuf:"bytes,60,opt,name=field2393" json:"field2393,omitempty"` Field2394 *UnusedEmptyMessage `protobuf:"bytes,70,opt,name=field2394" json:"field2394,omitempty"` Field2395 *UnusedEmptyMessage `protobuf:"bytes,80,opt,name=field2395" json:"field2395,omitempty"` Field2396 *UnusedEmptyMessage `protobuf:"bytes,90,opt,name=field2396" json:"field2396,omitempty"` Field2397 *string `protobuf:"bytes,100,opt,name=field2397" json:"field2397,omitempty"` Field2398 *string `protobuf:"bytes,123,opt,name=field2398" json:"field2398,omitempty"` } func (x *Message2356) Reset() { *x = Message2356{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message2356) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message2356) ProtoMessage() {} func (x *Message2356) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message2356.ProtoReflect.Descriptor instead. func (*Message2356) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{37} } func (x *Message2356) GetField2368() *Message1374 { if x != nil { return x.Field2368 } return nil } func (x *Message2356) GetField2369() uint64 { if x != nil && x.Field2369 != nil { return *x.Field2369 } return 0 } func (x *Message2356) GetField2370() int32 { if x != nil && x.Field2370 != nil { return *x.Field2370 } return 0 } func (x *Message2356) GetField2371() int32 { if x != nil && x.Field2371 != nil { return *x.Field2371 } return 0 } func (x *Message2356) GetField2372() string { if x != nil && x.Field2372 != nil { return *x.Field2372 } return "" } func (x *Message2356) GetField2373() int32 { if x != nil && x.Field2373 != nil { return *x.Field2373 } return 0 } func (x *Message2356) GetField2374() []byte { if x != nil { return x.Field2374 } return nil } func (x *Message2356) GetField2375() string { if x != nil && x.Field2375 != nil { return *x.Field2375 } return "" } func (x *Message2356) GetField2376() string { if x != nil && x.Field2376 != nil { return *x.Field2376 } return "" } func (x *Message2356) GetField2377() int32 { if x != nil && x.Field2377 != nil { return *x.Field2377 } return 0 } func (x *Message2356) GetField2378() int32 { if x != nil && x.Field2378 != nil { return *x.Field2378 } return 0 } func (x *Message2356) GetField2379() int32 { if x != nil && x.Field2379 != nil { return *x.Field2379 } return 0 } func (x *Message2356) GetField2380() int32 { if x != nil && x.Field2380 != nil { return *x.Field2380 } return 0 } func (x *Message2356) GetField2381() int32 { if x != nil && x.Field2381 != nil { return *x.Field2381 } return 0 } func (x *Message2356) GetField2382() int32 { if x != nil && x.Field2382 != nil { return *x.Field2382 } return 0 } func (x *Message2356) GetField2383() int32 { if x != nil && x.Field2383 != nil { return *x.Field2383 } return 0 } func (x *Message2356) GetField2384() int32 { if x != nil && x.Field2384 != nil { return *x.Field2384 } return 0 } func (x *Message2356) GetField2385() int32 { if x != nil && x.Field2385 != nil { return *x.Field2385 } return 0 } func (x *Message2356) GetField2386() int32 { if x != nil && x.Field2386 != nil { return *x.Field2386 } return 0 } func (x *Message2356) GetField2387() []byte { if x != nil { return x.Field2387 } return nil } func (x *Message2356) GetMessage2357() *Message2356_Message2357 { if x != nil { return x.Message2357 } return nil } func (x *Message2356) GetField2389() string { if x != nil && x.Field2389 != nil { return *x.Field2389 } return "" } func (x *Message2356) GetMessage2358() *Message2356_Message2358 { if x != nil { return x.Message2358 } return nil } func (x *Message2356) GetMessage2359() []*Message2356_Message2359 { if x != nil { return x.Message2359 } return nil } func (x *Message2356) GetField2392() int32 { if x != nil && x.Field2392 != nil { return *x.Field2392 } return 0 } func (x *Message2356) GetField2393() *UnusedEmptyMessage { if x != nil { return x.Field2393 } return nil } func (x *Message2356) GetField2394() *UnusedEmptyMessage { if x != nil { return x.Field2394 } return nil } func (x *Message2356) GetField2395() *UnusedEmptyMessage { if x != nil { return x.Field2395 } return nil } func (x *Message2356) GetField2396() *UnusedEmptyMessage { if x != nil { return x.Field2396 } return nil } func (x *Message2356) GetField2397() string { if x != nil && x.Field2397 != nil { return *x.Field2397 } return "" } func (x *Message2356) GetField2398() string { if x != nil && x.Field2398 != nil { return *x.Field2398 } return "" } type Message0 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields } func (x *Message0) Reset() { *x = Message0{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message0) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message0) ProtoMessage() {} func (x *Message0) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message0.ProtoReflect.Descriptor instead. func (*Message0) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{38} } type Message971 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field972 *string `protobuf:"bytes,1,opt,name=field972" json:"field972,omitempty"` Field973 *int32 `protobuf:"varint,2,opt,name=field973" json:"field973,omitempty"` Field974 *bool `protobuf:"varint,3,opt,name=field974" json:"field974,omitempty"` } func (x *Message971) Reset() { *x = Message971{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message971) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message971) ProtoMessage() {} func (x *Message971) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message971.ProtoReflect.Descriptor instead. func (*Message971) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{39} } func (x *Message971) GetField972() string { if x != nil && x.Field972 != nil { return *x.Field972 } return "" } func (x *Message971) GetField973() int32 { if x != nil && x.Field973 != nil { return *x.Field973 } return 0 } func (x *Message971) GetField974() bool { if x != nil && x.Field974 != nil { return *x.Field974 } return false } type Message176_Message178 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message176_Message178) Reset() { *x = Message176_Message178{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message176_Message178) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message176_Message178) ProtoMessage() {} func (x *Message176_Message178) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message176_Message178.ProtoReflect.Descriptor instead. func (*Message176_Message178) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{8, 0} } type Message3069_Message3070 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field3378 *Enum3071 `protobuf:"varint,4,req,name=field3378,enum=benchmarks.google_message4.Enum3071" json:"field3378,omitempty"` Field3379 []byte `protobuf:"bytes,5,req,name=field3379" json:"field3379,omitempty"` } func (x *Message3069_Message3070) Reset() { *x = Message3069_Message3070{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3069_Message3070) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3069_Message3070) ProtoMessage() {} func (x *Message3069_Message3070) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3069_Message3070.ProtoReflect.Descriptor instead. func (*Message3069_Message3070) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{27, 0} } func (x *Message3069_Message3070) GetField3378() Enum3071 { if x != nil && x.Field3378 != nil { return *x.Field3378 } return Enum3071_ENUM_VALUE3072 } func (x *Message3069_Message3070) GetField3379() []byte { if x != nil { return x.Field3379 } return nil } type Message2356_Message2357 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field2399 *int64 `protobuf:"varint,9,opt,name=field2399" json:"field2399,omitempty"` Field2400 *int32 `protobuf:"varint,10,opt,name=field2400" json:"field2400,omitempty"` Field2401 *int32 `protobuf:"varint,11,opt,name=field2401" json:"field2401,omitempty"` Field2402 *int32 `protobuf:"varint,12,opt,name=field2402" json:"field2402,omitempty"` Field2403 *int32 `protobuf:"varint,13,opt,name=field2403" json:"field2403,omitempty"` Field2404 *int32 `protobuf:"varint,116,opt,name=field2404" json:"field2404,omitempty"` Field2405 *int32 `protobuf:"varint,106,opt,name=field2405" json:"field2405,omitempty"` Field2406 []byte `protobuf:"bytes,14,req,name=field2406" json:"field2406,omitempty"` Field2407 *int32 `protobuf:"varint,45,opt,name=field2407" json:"field2407,omitempty"` Field2408 *int32 `protobuf:"varint,112,opt,name=field2408" json:"field2408,omitempty"` Field2409 *bool `protobuf:"varint,122,opt,name=field2409" json:"field2409,omitempty"` Field2410 []byte `protobuf:"bytes,124,opt,name=field2410" json:"field2410,omitempty"` } func (x *Message2356_Message2357) Reset() { *x = Message2356_Message2357{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message2356_Message2357) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message2356_Message2357) ProtoMessage() {} func (x *Message2356_Message2357) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message2356_Message2357.ProtoReflect.Descriptor instead. func (*Message2356_Message2357) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{37, 0} } func (x *Message2356_Message2357) GetField2399() int64 { if x != nil && x.Field2399 != nil { return *x.Field2399 } return 0 } func (x *Message2356_Message2357) GetField2400() int32 { if x != nil && x.Field2400 != nil { return *x.Field2400 } return 0 } func (x *Message2356_Message2357) GetField2401() int32 { if x != nil && x.Field2401 != nil { return *x.Field2401 } return 0 } func (x *Message2356_Message2357) GetField2402() int32 { if x != nil && x.Field2402 != nil { return *x.Field2402 } return 0 } func (x *Message2356_Message2357) GetField2403() int32 { if x != nil && x.Field2403 != nil { return *x.Field2403 } return 0 } func (x *Message2356_Message2357) GetField2404() int32 { if x != nil && x.Field2404 != nil { return *x.Field2404 } return 0 } func (x *Message2356_Message2357) GetField2405() int32 { if x != nil && x.Field2405 != nil { return *x.Field2405 } return 0 } func (x *Message2356_Message2357) GetField2406() []byte { if x != nil { return x.Field2406 } return nil } func (x *Message2356_Message2357) GetField2407() int32 { if x != nil && x.Field2407 != nil { return *x.Field2407 } return 0 } func (x *Message2356_Message2357) GetField2408() int32 { if x != nil && x.Field2408 != nil { return *x.Field2408 } return 0 } func (x *Message2356_Message2357) GetField2409() bool { if x != nil && x.Field2409 != nil { return *x.Field2409 } return false } func (x *Message2356_Message2357) GetField2410() []byte { if x != nil { return x.Field2410 } return nil } type Message2356_Message2358 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message2356_Message2358) Reset() { *x = Message2356_Message2358{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message2356_Message2358) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message2356_Message2358) ProtoMessage() {} func (x *Message2356_Message2358) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message2356_Message2358.ProtoReflect.Descriptor instead. func (*Message2356_Message2358) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{37, 1} } type Message2356_Message2359 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message2356_Message2359) Reset() { *x = Message2356_Message2359{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message2356_Message2359) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message2356_Message2359) ProtoMessage() {} func (x *Message2356_Message2359) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message2356_Message2359.ProtoReflect.Descriptor instead. func (*Message2356_Message2359) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP(), []int{37, 2} } var File_datasets_google_message4_benchmark_message4_proto protoreflect.FileDescriptor var file_datasets_google_message4_benchmark_message4_proto_rawDesc = []byte{ 0x0a, 0x31, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x5f, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x5f, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x5f, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xda, 0x09, 0x0a, 0x0e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x30, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x30, 0x33, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x30, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x30, 0x34, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x30, 0x35, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x30, 0x35, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x30, 0x36, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x30, 0x36, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x30, 0x37, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x30, 0x37, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x30, 0x38, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x37, 0x34, 0x38, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x30, 0x38, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x30, 0x39, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x30, 0x39, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x31, 0x30, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x31, 0x30, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x31, 0x31, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x31, 0x31, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x31, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x31, 0x32, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x31, 0x33, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x31, 0x33, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x31, 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x31, 0x34, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x31, 0x35, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x31, 0x35, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x31, 0x36, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x31, 0x36, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x31, 0x37, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x31, 0x37, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x31, 0x38, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x31, 0x38, 0x22, 0x96, 0x0c, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x37, 0x34, 0x38, 0x39, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x33, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x35, 0x31, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x33, 0x34, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x33, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x33, 0x33, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x33, 0x35, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x33, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x38, 0x31, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x33, 0x36, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x33, 0x37, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x38, 0x31, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x33, 0x37, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x33, 0x38, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x38, 0x33, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x33, 0x38, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x33, 0x39, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x38, 0x34, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x33, 0x39, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x34, 0x30, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x38, 0x35, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x34, 0x30, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x34, 0x31, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x37, 0x31, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x34, 0x31, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x34, 0x32, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x37, 0x34, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x34, 0x32, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x34, 0x33, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x33, 0x31, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x34, 0x33, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x34, 0x34, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x39, 0x30, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x34, 0x34, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x34, 0x35, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x39, 0x31, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x34, 0x35, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x34, 0x36, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x39, 0x36, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x34, 0x36, 0x12, 0x46, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x34, 0x37, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x34, 0x37, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x34, 0x38, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x30, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x34, 0x38, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x34, 0x39, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x33, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x34, 0x39, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x35, 0x30, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x37, 0x33, 0x33, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x35, 0x30, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x35, 0x31, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x37, 0x33, 0x32, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x35, 0x31, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x35, 0x32, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x37, 0x33, 0x32, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x35, 0x32, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x35, 0x33, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x37, 0x33, 0x33, 0x33, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x35, 0x33, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x35, 0x34, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x37, 0x33, 0x33, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x35, 0x35, 0x34, 0x22, 0xa9, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x33, 0x31, 0x39, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x32, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x32, 0x31, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x32, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x32, 0x32, 0x22, 0xb0, 0x04, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x37, 0x31, 0x37, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x31, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x31, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x32, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x32, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x32, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x32, 0x31, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x32, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x39, 0x37, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x32, 0x32, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x32, 0x33, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x39, 0x34, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x32, 0x33, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x32, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x39, 0x34, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x32, 0x34, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x32, 0x35, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x36, 0x38, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x32, 0x35, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x32, 0x36, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x39, 0x34, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x32, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x32, 0x37, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x32, 0x37, 0x22, 0xe8, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x37, 0x33, 0x33, 0x31, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x36, 0x37, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x36, 0x37, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x36, 0x38, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x37, 0x33, 0x32, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x36, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x36, 0x39, 0x18, 0x02, 0x20, 0x02, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x36, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x37, 0x30, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x37, 0x30, 0x22, 0xc0, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x38, 0x31, 0x35, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x31, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x31, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x32, 0x30, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x37, 0x36, 0x38, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x32, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x32, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x32, 0x31, 0x22, 0xf3, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x33, 0x33, 0x30, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x33, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x33, 0x32, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x33, 0x33, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x39, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x33, 0x33, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x33, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x33, 0x32, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x33, 0x34, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x33, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x33, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x33, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x33, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x33, 0x37, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x33, 0x37, 0x22, 0xa8, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x39, 0x36, 0x30, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x36, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x36, 0x32, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x36, 0x33, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x39, 0x34, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x36, 0x33, 0x22, 0xb5, 0x11, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x36, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x38, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x38, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x39, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x30, 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x32, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x33, 0x18, 0x38, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x34, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x35, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x36, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x37, 0x18, 0x39, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x37, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x38, 0x18, 0x33, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x38, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x39, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x31, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x32, 0x30, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x32, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x32, 0x31, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x32, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x32, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x32, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x32, 0x33, 0x18, 0x28, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x32, 0x33, 0x12, 0x4a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x32, 0x34, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x32, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x32, 0x35, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x32, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x32, 0x36, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x32, 0x36, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x32, 0x37, 0x18, 0x26, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x32, 0x37, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x32, 0x38, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x32, 0x38, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x32, 0x39, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x32, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x33, 0x30, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x33, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x33, 0x31, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x33, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x33, 0x32, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x33, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x33, 0x33, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x33, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x33, 0x34, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x33, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x33, 0x35, 0x18, 0x24, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x33, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x33, 0x36, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x33, 0x36, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x33, 0x37, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x33, 0x37, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x33, 0x38, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x33, 0x38, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x33, 0x39, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x33, 0x39, 0x12, 0x4a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x34, 0x30, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x34, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x34, 0x31, 0x18, 0x27, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x34, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x34, 0x32, 0x18, 0x30, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x34, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x34, 0x33, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x34, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x34, 0x34, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x34, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x34, 0x35, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x34, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x34, 0x36, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x34, 0x36, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x34, 0x37, 0x18, 0x31, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x34, 0x37, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x34, 0x38, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x34, 0x38, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x34, 0x39, 0x18, 0x35, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x34, 0x39, 0x12, 0x4a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x35, 0x30, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x35, 0x30, 0x12, 0x4a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x35, 0x31, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x35, 0x31, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x35, 0x32, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x35, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x35, 0x33, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x35, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x35, 0x34, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x35, 0x34, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x35, 0x35, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x35, 0x35, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x35, 0x36, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x35, 0x36, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x35, 0x37, 0x18, 0x23, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x35, 0x37, 0x12, 0x51, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x38, 0x18, 0x65, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x31, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x38, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x38, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x35, 0x39, 0x18, 0x34, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x35, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x36, 0x30, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x36, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x36, 0x31, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x36, 0x31, 0x12, 0x4a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x36, 0x32, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x36, 0x32, 0x12, 0x4a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x36, 0x33, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x36, 0x33, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x36, 0x34, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x36, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x36, 0x35, 0x18, 0x3f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x36, 0x35, 0x12, 0x4a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x36, 0x36, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x36, 0x36, 0x1a, 0x0c, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x37, 0x38, 0x22, 0xc0, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x38, 0x31, 0x37, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x32, 0x35, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x32, 0x35, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x32, 0x36, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x37, 0x36, 0x38, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x32, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x32, 0x37, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x32, 0x37, 0x22, 0xbf, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x38, 0x33, 0x35, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x33, 0x37, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x33, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x33, 0x38, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x33, 0x38, 0x12, 0x44, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x33, 0x39, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x33, 0x39, 0x22, 0xc8, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x37, 0x33, 0x33, 0x33, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x37, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x37, 0x32, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x37, 0x33, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x37, 0x33, 0x32, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x37, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x37, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x37, 0x34, 0x22, 0x78, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x30, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x31, 0x35, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x31, 0x35, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x31, 0x36, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x39, 0x37, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x31, 0x36, 0x22, 0x92, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x37, 0x33, 0x33, 0x35, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x37, 0x36, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x37, 0x36, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x37, 0x37, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x37, 0x33, 0x32, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x37, 0x37, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x37, 0x38, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x37, 0x31, 0x37, 0x33, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x37, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x37, 0x39, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x37, 0x39, 0x22, 0x97, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x38, 0x34, 0x38, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x35, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x35, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x35, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x35, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x35, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x35, 0x32, 0x22, 0x4e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x30, 0x33, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x35, 0x38, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x35, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x35, 0x39, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x30, 0x35, 0x39, 0x22, 0x79, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x38, 0x35, 0x36, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x35, 0x38, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x35, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x35, 0x39, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x35, 0x39, 0x22, 0xfb, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x39, 0x30, 0x38, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x31, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x31, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x31, 0x33, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x31, 0x33, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x31, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x37, 0x39, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x31, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x31, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x31, 0x35, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x31, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x38, 0x30, 0x34, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x31, 0x36, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x31, 0x37, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x37, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x31, 0x37, 0x22, 0xf2, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x39, 0x31, 0x30, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x32, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x32, 0x30, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x32, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x31, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x32, 0x31, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x32, 0x32, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x39, 0x30, 0x33, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x32, 0x32, 0x22, 0xf8, 0x03, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x37, 0x33, 0x32, 0x37, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x34, 0x37, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x34, 0x37, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x34, 0x38, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x37, 0x33, 0x32, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x34, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x34, 0x39, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x34, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x35, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x35, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x35, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x35, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x35, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x35, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x35, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x35, 0x33, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x35, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x35, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x35, 0x35, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x35, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x35, 0x36, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x35, 0x37, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x35, 0x37, 0x22, 0x88, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x37, 0x33, 0x32, 0x39, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x35, 0x39, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x35, 0x39, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x36, 0x30, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x37, 0x33, 0x32, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x36, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x36, 0x31, 0x18, 0x02, 0x20, 0x02, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x36, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x36, 0x32, 0x18, 0x03, 0x20, 0x02, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x36, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x36, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x36, 0x33, 0x22, 0xf3, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x35, 0x31, 0x37, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x35, 0x31, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x35, 0x31, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x35, 0x32, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x35, 0x32, 0x30, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x35, 0x32, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x35, 0x32, 0x31, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x35, 0x32, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x36, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x35, 0x32, 0x32, 0x12, 0x44, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x35, 0x32, 0x33, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x37, 0x31, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x35, 0x32, 0x33, 0x22, 0xe5, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x37, 0x34, 0x38, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x35, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x35, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x35, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x35, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x35, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x35, 0x36, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x35, 0x37, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x32, 0x37, 0x33, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x35, 0x37, 0x22, 0x58, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x36, 0x38, 0x37, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x30, 0x31, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x36, 0x38, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x30, 0x31, 0x22, 0x98, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x39, 0x34, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x35, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x35, 0x34, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x35, 0x35, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x39, 0x34, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x35, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x35, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x35, 0x36, 0x22, 0x58, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x39, 0x37, 0x36, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x30, 0x30, 0x32, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x39, 0x37, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x30, 0x30, 0x32, 0x22, 0xa2, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x33, 0x32, 0x30, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x32, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x32, 0x33, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x32, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x32, 0x38, 0x37, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x32, 0x34, 0x22, 0xc5, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x37, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x31, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x37, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x37, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x37, 0x35, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x37, 0x30, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x33, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x39, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x37, 0x30, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x37, 0x30, 0x1a, 0x6f, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x37, 0x30, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x37, 0x38, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x30, 0x37, 0x31, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x37, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x37, 0x39, 0x18, 0x05, 0x20, 0x02, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x37, 0x39, 0x2a, 0x09, 0x08, 0x90, 0x4e, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x58, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x39, 0x34, 0x38, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x35, 0x38, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x39, 0x34, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x35, 0x38, 0x22, 0xe1, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x37, 0x36, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x38, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x38, 0x32, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x38, 0x33, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x35, 0x37, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x38, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x38, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x38, 0x34, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x38, 0x35, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x37, 0x37, 0x34, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x38, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x38, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x38, 0x36, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x38, 0x37, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x38, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x38, 0x38, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x37, 0x38, 0x38, 0x22, 0xce, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x39, 0x37, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x38, 0x31, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x38, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x38, 0x32, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x38, 0x32, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x38, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x38, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x38, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x38, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x38, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x38, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x38, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x38, 0x36, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x38, 0x37, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x38, 0x37, 0x22, 0xc6, 0x08, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x37, 0x31, 0x37, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x35, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x35, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x35, 0x33, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x35, 0x33, 0x12, 0x46, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x35, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x35, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x35, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x35, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x35, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x35, 0x37, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x35, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x35, 0x38, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x35, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x35, 0x39, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x35, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x36, 0x30, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x36, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x36, 0x31, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x36, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x36, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x36, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x36, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x36, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x36, 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x36, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x36, 0x35, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x36, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x36, 0x36, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x36, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x36, 0x37, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x36, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x36, 0x38, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x36, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x36, 0x39, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x36, 0x39, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x37, 0x30, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x37, 0x30, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x37, 0x31, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x37, 0x31, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x37, 0x32, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x37, 0x32, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x37, 0x33, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x37, 0x33, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x37, 0x34, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x37, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x37, 0x35, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x37, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x37, 0x36, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x32, 0x37, 0x36, 0x22, 0x8c, 0x03, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x37, 0x39, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x39, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x31, 0x30, 0x18, 0x02, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x31, 0x30, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x31, 0x31, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x37, 0x37, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x31, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x31, 0x32, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x31, 0x32, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x31, 0x33, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x37, 0x39, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x31, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x31, 0x34, 0x18, 0x03, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x31, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x31, 0x35, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x31, 0x35, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x31, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x37, 0x39, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x31, 0x36, 0x22, 0x8a, 0x06, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x37, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x37, 0x39, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x37, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x31, 0x18, 0x02, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x32, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x33, 0x18, 0xd1, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x35, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x36, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x37, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x37, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x38, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x37, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x39, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x38, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x30, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x31, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x33, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x33, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x34, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x32, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x35, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x36, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x36, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x37, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x32, 0x38, 0x37, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x38, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x39, 0x38, 0x22, 0xab, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x38, 0x30, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x31, 0x38, 0x18, 0x01, 0x20, 0x02, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x31, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x31, 0x39, 0x18, 0x02, 0x20, 0x02, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x31, 0x39, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x32, 0x30, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x38, 0x30, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x32, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x32, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x32, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x32, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x32, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x32, 0x33, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x32, 0x33, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x32, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x37, 0x38, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x38, 0x32, 0x34, 0x22, 0xc0, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x39, 0x30, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x30, 0x35, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x30, 0x35, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x30, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x35, 0x38, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x30, 0x36, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x30, 0x37, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x35, 0x39, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x39, 0x30, 0x37, 0x22, 0x4e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x37, 0x33, 0x32, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x34, 0x35, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x34, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x34, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x37, 0x33, 0x34, 0x36, 0x22, 0xd9, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x36, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x36, 0x38, 0x18, 0x79, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x37, 0x34, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x36, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x36, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x36, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x31, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x32, 0x18, 0x03, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x33, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x36, 0x18, 0x65, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x37, 0x18, 0x66, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x38, 0x18, 0x67, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x39, 0x18, 0x68, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x37, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x30, 0x18, 0x71, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x31, 0x18, 0x72, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x32, 0x18, 0x73, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x33, 0x18, 0x75, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x34, 0x18, 0x76, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x35, 0x18, 0x77, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x36, 0x18, 0x69, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x37, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x37, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x37, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x33, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x37, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x39, 0x18, 0x78, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x38, 0x39, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x38, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x33, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x38, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x38, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x39, 0x18, 0x28, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x33, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x39, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x32, 0x18, 0x32, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x32, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x33, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x33, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x34, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x34, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x35, 0x18, 0x50, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x35, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x36, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x37, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x38, 0x18, 0x7b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x38, 0x1a, 0xf5, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x39, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x33, 0x39, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x30, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x31, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x34, 0x18, 0x74, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x35, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x36, 0x18, 0x0e, 0x20, 0x02, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x37, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x38, 0x18, 0x70, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x39, 0x18, 0x7a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x30, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x31, 0x30, 0x18, 0x7c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x31, 0x30, 0x1a, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x38, 0x1a, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x33, 0x35, 0x39, 0x22, 0x18, 0x0a, 0x08, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x2a, 0x08, 0x08, 0x04, 0x10, 0xff, 0xff, 0xff, 0xff, 0x07, 0x3a, 0x02, 0x08, 0x01, 0x22, 0x60, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x39, 0x37, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x37, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x37, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x37, 0x33, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x37, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x37, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x39, 0x37, 0x34, 0x42, 0x23, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0xf8, 0x01, 0x01, } var ( file_datasets_google_message4_benchmark_message4_proto_rawDescOnce sync.Once file_datasets_google_message4_benchmark_message4_proto_rawDescData = file_datasets_google_message4_benchmark_message4_proto_rawDesc ) func file_datasets_google_message4_benchmark_message4_proto_rawDescGZIP() []byte { file_datasets_google_message4_benchmark_message4_proto_rawDescOnce.Do(func() { file_datasets_google_message4_benchmark_message4_proto_rawDescData = protoimpl.X.CompressGZIP(file_datasets_google_message4_benchmark_message4_proto_rawDescData) }) return file_datasets_google_message4_benchmark_message4_proto_rawDescData } var file_datasets_google_message4_benchmark_message4_proto_msgTypes = make([]protoimpl.MessageInfo, 45) var file_datasets_google_message4_benchmark_message4_proto_goTypes = []interface{}{ (*GoogleMessage4)(nil), // 0: benchmarks.google_message4.GoogleMessage4 (*Message37489)(nil), // 1: benchmarks.google_message4.Message37489 (*Message7319)(nil), // 2: benchmarks.google_message4.Message7319 (*Message12717)(nil), // 3: benchmarks.google_message4.Message12717 (*Message37331)(nil), // 4: benchmarks.google_message4.Message37331 (*Message8815)(nil), // 5: benchmarks.google_message4.Message8815 (*Message7330)(nil), // 6: benchmarks.google_message4.Message7330 (*Message12960)(nil), // 7: benchmarks.google_message4.Message12960 (*Message176)(nil), // 8: benchmarks.google_message4.Message176 (*Message8817)(nil), // 9: benchmarks.google_message4.Message8817 (*Message8835)(nil), // 10: benchmarks.google_message4.Message8835 (*Message37333)(nil), // 11: benchmarks.google_message4.Message37333 (*Message13000)(nil), // 12: benchmarks.google_message4.Message13000 (*Message37335)(nil), // 13: benchmarks.google_message4.Message37335 (*Message8848)(nil), // 14: benchmarks.google_message4.Message8848 (*Message13035)(nil), // 15: benchmarks.google_message4.Message13035 (*Message8856)(nil), // 16: benchmarks.google_message4.Message8856 (*Message12908)(nil), // 17: benchmarks.google_message4.Message12908 (*Message12910)(nil), // 18: benchmarks.google_message4.Message12910 (*Message37327)(nil), // 19: benchmarks.google_message4.Message37327 (*Message37329)(nil), // 20: benchmarks.google_message4.Message37329 (*Message2517)(nil), // 21: benchmarks.google_message4.Message2517 (*Message12748)(nil), // 22: benchmarks.google_message4.Message12748 (*Message12687)(nil), // 23: benchmarks.google_message4.Message12687 (*Message11948)(nil), // 24: benchmarks.google_message4.Message11948 (*Message11976)(nil), // 25: benchmarks.google_message4.Message11976 (*Message7320)(nil), // 26: benchmarks.google_message4.Message7320 (*Message3069)(nil), // 27: benchmarks.google_message4.Message3069 (*Message12948)(nil), // 28: benchmarks.google_message4.Message12948 (*Message8768)(nil), // 29: benchmarks.google_message4.Message8768 (*Message12979)(nil), // 30: benchmarks.google_message4.Message12979 (*Message37173)(nil), // 31: benchmarks.google_message4.Message37173 (*Message12799)(nil), // 32: benchmarks.google_message4.Message12799 (*Message12870)(nil), // 33: benchmarks.google_message4.Message12870 (*Message3804)(nil), // 34: benchmarks.google_message4.Message3804 (*Message12903)(nil), // 35: benchmarks.google_message4.Message12903 (*Message37326)(nil), // 36: benchmarks.google_message4.Message37326 (*Message2356)(nil), // 37: benchmarks.google_message4.Message2356 (*Message0)(nil), // 38: benchmarks.google_message4.Message0 (*Message971)(nil), // 39: benchmarks.google_message4.Message971 (*Message176_Message178)(nil), // 40: benchmarks.google_message4.Message176.Message178 (*Message3069_Message3070)(nil), // 41: benchmarks.google_message4.Message3069.Message3070 (*Message2356_Message2357)(nil), // 42: benchmarks.google_message4.Message2356.Message2357 (*Message2356_Message2358)(nil), // 43: benchmarks.google_message4.Message2356.Message2358 (*Message2356_Message2359)(nil), // 44: benchmarks.google_message4.Message2356.Message2359 (*UnusedEmptyMessage)(nil), // 45: benchmarks.google_message4.UnusedEmptyMessage (*Message11947)(nil), // 46: benchmarks.google_message4.Message11947 (UnusedEnum)(0), // 47: benchmarks.google_message4.UnusedEnum (*Message12818)(nil), // 48: benchmarks.google_message4.Message12818 (*Message2463)(nil), // 49: benchmarks.google_message4.Message2463 (Enum12735)(0), // 50: benchmarks.google_message4.Enum12735 (*Message12686)(nil), // 51: benchmarks.google_message4.Message12686 (*Message11949)(nil), // 52: benchmarks.google_message4.Message11949 (*Message11975)(nil), // 53: benchmarks.google_message4.Message11975 (*Message7287)(nil), // 54: benchmarks.google_message4.Message7287 (*Message3061)(nil), // 55: benchmarks.google_message4.Message3061 (*Message12949)(nil), // 56: benchmarks.google_message4.Message12949 (*Message8572)(nil), // 57: benchmarks.google_message4.Message8572 (*Message8774)(nil), // 58: benchmarks.google_message4.Message8774 (*Message12776)(nil), // 59: benchmarks.google_message4.Message12776 (*Message12798)(nil), // 60: benchmarks.google_message4.Message12798 (*Message12797)(nil), // 61: benchmarks.google_message4.Message12797 (*Message12825)(nil), // 62: benchmarks.google_message4.Message12825 (Enum12871)(0), // 63: benchmarks.google_message4.Enum12871 (Enum3805)(0), // 64: benchmarks.google_message4.Enum3805 (Enum3783)(0), // 65: benchmarks.google_message4.Enum3783 (*Message8587)(nil), // 66: benchmarks.google_message4.Message8587 (*Message8590)(nil), // 67: benchmarks.google_message4.Message8590 (*Message1374)(nil), // 68: benchmarks.google_message4.Message1374 (Enum3071)(0), // 69: benchmarks.google_message4.Enum3071 } var file_datasets_google_message4_benchmark_message4_proto_depIdxs = []int32{ 45, // 0: benchmarks.google_message4.GoogleMessage4.field37504:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 1: benchmarks.google_message4.GoogleMessage4.field37505:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 2: benchmarks.google_message4.GoogleMessage4.field37506:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 3: benchmarks.google_message4.GoogleMessage4.field37507:type_name -> benchmarks.google_message4.UnusedEmptyMessage 1, // 4: benchmarks.google_message4.GoogleMessage4.field37508:type_name -> benchmarks.google_message4.Message37489 45, // 5: benchmarks.google_message4.GoogleMessage4.field37509:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 6: benchmarks.google_message4.GoogleMessage4.field37510:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 7: benchmarks.google_message4.GoogleMessage4.field37511:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 8: benchmarks.google_message4.GoogleMessage4.field37512:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 9: benchmarks.google_message4.GoogleMessage4.field37513:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 10: benchmarks.google_message4.GoogleMessage4.field37514:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 11: benchmarks.google_message4.GoogleMessage4.field37515:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 12: benchmarks.google_message4.GoogleMessage4.field37516:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 13: benchmarks.google_message4.GoogleMessage4.field37517:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 14: benchmarks.google_message4.GoogleMessage4.field37518:type_name -> benchmarks.google_message4.UnusedEmptyMessage 21, // 15: benchmarks.google_message4.Message37489.field37534:type_name -> benchmarks.google_message4.Message2517 6, // 16: benchmarks.google_message4.Message37489.field37535:type_name -> benchmarks.google_message4.Message7330 5, // 17: benchmarks.google_message4.Message37489.field37536:type_name -> benchmarks.google_message4.Message8815 9, // 18: benchmarks.google_message4.Message37489.field37537:type_name -> benchmarks.google_message4.Message8817 10, // 19: benchmarks.google_message4.Message37489.field37538:type_name -> benchmarks.google_message4.Message8835 14, // 20: benchmarks.google_message4.Message37489.field37539:type_name -> benchmarks.google_message4.Message8848 16, // 21: benchmarks.google_message4.Message37489.field37540:type_name -> benchmarks.google_message4.Message8856 3, // 22: benchmarks.google_message4.Message37489.field37541:type_name -> benchmarks.google_message4.Message12717 22, // 23: benchmarks.google_message4.Message37489.field37542:type_name -> benchmarks.google_message4.Message12748 2, // 24: benchmarks.google_message4.Message37489.field37543:type_name -> benchmarks.google_message4.Message7319 17, // 25: benchmarks.google_message4.Message37489.field37544:type_name -> benchmarks.google_message4.Message12908 18, // 26: benchmarks.google_message4.Message37489.field37545:type_name -> benchmarks.google_message4.Message12910 7, // 27: benchmarks.google_message4.Message37489.field37546:type_name -> benchmarks.google_message4.Message12960 8, // 28: benchmarks.google_message4.Message37489.field37547:type_name -> benchmarks.google_message4.Message176 12, // 29: benchmarks.google_message4.Message37489.field37548:type_name -> benchmarks.google_message4.Message13000 15, // 30: benchmarks.google_message4.Message37489.field37549:type_name -> benchmarks.google_message4.Message13035 4, // 31: benchmarks.google_message4.Message37489.field37550:type_name -> benchmarks.google_message4.Message37331 20, // 32: benchmarks.google_message4.Message37489.field37551:type_name -> benchmarks.google_message4.Message37329 19, // 33: benchmarks.google_message4.Message37489.field37552:type_name -> benchmarks.google_message4.Message37327 11, // 34: benchmarks.google_message4.Message37489.field37553:type_name -> benchmarks.google_message4.Message37333 13, // 35: benchmarks.google_message4.Message37489.field37554:type_name -> benchmarks.google_message4.Message37335 45, // 36: benchmarks.google_message4.Message7319.field7321:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 37: benchmarks.google_message4.Message7319.field7322:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 38: benchmarks.google_message4.Message12717.field12719:type_name -> benchmarks.google_message4.UnusedEmptyMessage 25, // 39: benchmarks.google_message4.Message12717.field12722:type_name -> benchmarks.google_message4.Message11976 24, // 40: benchmarks.google_message4.Message12717.field12723:type_name -> benchmarks.google_message4.Message11948 46, // 41: benchmarks.google_message4.Message12717.field12724:type_name -> benchmarks.google_message4.Message11947 23, // 42: benchmarks.google_message4.Message12717.field12725:type_name -> benchmarks.google_message4.Message12687 24, // 43: benchmarks.google_message4.Message12717.field12726:type_name -> benchmarks.google_message4.Message11948 45, // 44: benchmarks.google_message4.Message37331.field37367:type_name -> benchmarks.google_message4.UnusedEmptyMessage 36, // 45: benchmarks.google_message4.Message37331.field37368:type_name -> benchmarks.google_message4.Message37326 45, // 46: benchmarks.google_message4.Message8815.field8819:type_name -> benchmarks.google_message4.UnusedEmptyMessage 29, // 47: benchmarks.google_message4.Message8815.field8820:type_name -> benchmarks.google_message4.Message8768 45, // 48: benchmarks.google_message4.Message7330.field7332:type_name -> benchmarks.google_message4.UnusedEmptyMessage 27, // 49: benchmarks.google_message4.Message7330.field7333:type_name -> benchmarks.google_message4.Message3069 26, // 50: benchmarks.google_message4.Message7330.field7334:type_name -> benchmarks.google_message4.Message7320 45, // 51: benchmarks.google_message4.Message7330.field7335:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 52: benchmarks.google_message4.Message12960.field12962:type_name -> benchmarks.google_message4.UnusedEmptyMessage 28, // 53: benchmarks.google_message4.Message12960.field12963:type_name -> benchmarks.google_message4.Message12948 45, // 54: benchmarks.google_message4.Message176.field424:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 55: benchmarks.google_message4.Message176.field440:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 56: benchmarks.google_message4.Message176.field450:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 57: benchmarks.google_message4.Message176.field451:type_name -> benchmarks.google_message4.UnusedEmptyMessage 47, // 58: benchmarks.google_message4.Message176.field452:type_name -> benchmarks.google_message4.UnusedEnum 47, // 59: benchmarks.google_message4.Message176.field455:type_name -> benchmarks.google_message4.UnusedEnum 47, // 60: benchmarks.google_message4.Message176.field456:type_name -> benchmarks.google_message4.UnusedEnum 40, // 61: benchmarks.google_message4.Message176.message178:type_name -> benchmarks.google_message4.Message176.Message178 45, // 62: benchmarks.google_message4.Message176.field462:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 63: benchmarks.google_message4.Message176.field463:type_name -> benchmarks.google_message4.UnusedEmptyMessage 47, // 64: benchmarks.google_message4.Message176.field464:type_name -> benchmarks.google_message4.UnusedEnum 45, // 65: benchmarks.google_message4.Message176.field466:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 66: benchmarks.google_message4.Message8817.field8825:type_name -> benchmarks.google_message4.UnusedEmptyMessage 29, // 67: benchmarks.google_message4.Message8817.field8826:type_name -> benchmarks.google_message4.Message8768 45, // 68: benchmarks.google_message4.Message8835.field8837:type_name -> benchmarks.google_message4.UnusedEmptyMessage 47, // 69: benchmarks.google_message4.Message8835.field8839:type_name -> benchmarks.google_message4.UnusedEnum 45, // 70: benchmarks.google_message4.Message37333.field37372:type_name -> benchmarks.google_message4.UnusedEmptyMessage 36, // 71: benchmarks.google_message4.Message37333.field37373:type_name -> benchmarks.google_message4.Message37326 30, // 72: benchmarks.google_message4.Message13000.field13016:type_name -> benchmarks.google_message4.Message12979 45, // 73: benchmarks.google_message4.Message37335.field37376:type_name -> benchmarks.google_message4.UnusedEmptyMessage 36, // 74: benchmarks.google_message4.Message37335.field37377:type_name -> benchmarks.google_message4.Message37326 31, // 75: benchmarks.google_message4.Message37335.field37378:type_name -> benchmarks.google_message4.Message37173 45, // 76: benchmarks.google_message4.Message8848.field8850:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 77: benchmarks.google_message4.Message8856.field8858:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 78: benchmarks.google_message4.Message12908.field12912:type_name -> benchmarks.google_message4.UnusedEmptyMessage 32, // 79: benchmarks.google_message4.Message12908.field12914:type_name -> benchmarks.google_message4.Message12799 34, // 80: benchmarks.google_message4.Message12908.field12916:type_name -> benchmarks.google_message4.Message3804 33, // 81: benchmarks.google_message4.Message12908.field12917:type_name -> benchmarks.google_message4.Message12870 45, // 82: benchmarks.google_message4.Message12910.field12920:type_name -> benchmarks.google_message4.UnusedEmptyMessage 48, // 83: benchmarks.google_message4.Message12910.field12921:type_name -> benchmarks.google_message4.Message12818 35, // 84: benchmarks.google_message4.Message12910.field12922:type_name -> benchmarks.google_message4.Message12903 45, // 85: benchmarks.google_message4.Message37327.field37347:type_name -> benchmarks.google_message4.UnusedEmptyMessage 36, // 86: benchmarks.google_message4.Message37327.field37348:type_name -> benchmarks.google_message4.Message37326 45, // 87: benchmarks.google_message4.Message37327.field37354:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 88: benchmarks.google_message4.Message37329.field37359:type_name -> benchmarks.google_message4.UnusedEmptyMessage 36, // 89: benchmarks.google_message4.Message37329.field37360:type_name -> benchmarks.google_message4.Message37326 45, // 90: benchmarks.google_message4.Message2517.field2519:type_name -> benchmarks.google_message4.UnusedEmptyMessage 37, // 91: benchmarks.google_message4.Message2517.field2520:type_name -> benchmarks.google_message4.Message2356 38, // 92: benchmarks.google_message4.Message2517.field2521:type_name -> benchmarks.google_message4.Message0 49, // 93: benchmarks.google_message4.Message2517.field2522:type_name -> benchmarks.google_message4.Message2463 39, // 94: benchmarks.google_message4.Message2517.field2523:type_name -> benchmarks.google_message4.Message971 45, // 95: benchmarks.google_message4.Message12748.field12754:type_name -> benchmarks.google_message4.UnusedEmptyMessage 50, // 96: benchmarks.google_message4.Message12748.field12757:type_name -> benchmarks.google_message4.Enum12735 51, // 97: benchmarks.google_message4.Message12687.field12701:type_name -> benchmarks.google_message4.Message12686 52, // 98: benchmarks.google_message4.Message11948.field11955:type_name -> benchmarks.google_message4.Message11949 53, // 99: benchmarks.google_message4.Message11976.field12002:type_name -> benchmarks.google_message4.Message11975 45, // 100: benchmarks.google_message4.Message7320.field7323:type_name -> benchmarks.google_message4.UnusedEmptyMessage 54, // 101: benchmarks.google_message4.Message7320.field7324:type_name -> benchmarks.google_message4.Message7287 55, // 102: benchmarks.google_message4.Message3069.field3374:type_name -> benchmarks.google_message4.Message3061 41, // 103: benchmarks.google_message4.Message3069.message3070:type_name -> benchmarks.google_message4.Message3069.Message3070 56, // 104: benchmarks.google_message4.Message12948.field12958:type_name -> benchmarks.google_message4.Message12949 57, // 105: benchmarks.google_message4.Message8768.field8783:type_name -> benchmarks.google_message4.Message8572 58, // 106: benchmarks.google_message4.Message8768.field8785:type_name -> benchmarks.google_message4.Message8774 45, // 107: benchmarks.google_message4.Message8768.field8787:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 108: benchmarks.google_message4.Message12979.field12983:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 109: benchmarks.google_message4.Message12979.field12987:type_name -> benchmarks.google_message4.UnusedEmptyMessage 47, // 110: benchmarks.google_message4.Message37173.field37254:type_name -> benchmarks.google_message4.UnusedEnum 45, // 111: benchmarks.google_message4.Message37173.field37270:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 112: benchmarks.google_message4.Message37173.field37271:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 113: benchmarks.google_message4.Message37173.field37272:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 114: benchmarks.google_message4.Message37173.field37273:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 115: benchmarks.google_message4.Message37173.field37274:type_name -> benchmarks.google_message4.UnusedEmptyMessage 59, // 116: benchmarks.google_message4.Message12799.field12811:type_name -> benchmarks.google_message4.Message12776 60, // 117: benchmarks.google_message4.Message12799.field12813:type_name -> benchmarks.google_message4.Message12798 61, // 118: benchmarks.google_message4.Message12799.field12816:type_name -> benchmarks.google_message4.Message12797 33, // 119: benchmarks.google_message4.Message12870.field12888:type_name -> benchmarks.google_message4.Message12870 62, // 120: benchmarks.google_message4.Message12870.field12894:type_name -> benchmarks.google_message4.Message12825 63, // 121: benchmarks.google_message4.Message12870.field12897:type_name -> benchmarks.google_message4.Enum12871 64, // 122: benchmarks.google_message4.Message3804.field3820:type_name -> benchmarks.google_message4.Enum3805 65, // 123: benchmarks.google_message4.Message3804.field3824:type_name -> benchmarks.google_message4.Enum3783 66, // 124: benchmarks.google_message4.Message12903.field12906:type_name -> benchmarks.google_message4.Message8587 67, // 125: benchmarks.google_message4.Message12903.field12907:type_name -> benchmarks.google_message4.Message8590 68, // 126: benchmarks.google_message4.Message2356.field2368:type_name -> benchmarks.google_message4.Message1374 42, // 127: benchmarks.google_message4.Message2356.message2357:type_name -> benchmarks.google_message4.Message2356.Message2357 43, // 128: benchmarks.google_message4.Message2356.message2358:type_name -> benchmarks.google_message4.Message2356.Message2358 44, // 129: benchmarks.google_message4.Message2356.message2359:type_name -> benchmarks.google_message4.Message2356.Message2359 45, // 130: benchmarks.google_message4.Message2356.field2393:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 131: benchmarks.google_message4.Message2356.field2394:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 132: benchmarks.google_message4.Message2356.field2395:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 133: benchmarks.google_message4.Message2356.field2396:type_name -> benchmarks.google_message4.UnusedEmptyMessage 69, // 134: benchmarks.google_message4.Message3069.Message3070.field3378:type_name -> benchmarks.google_message4.Enum3071 135, // [135:135] is the sub-list for method output_type 135, // [135:135] is the sub-list for method input_type 135, // [135:135] is the sub-list for extension type_name 135, // [135:135] is the sub-list for extension extendee 0, // [0:135] is the sub-list for field type_name } func init() { file_datasets_google_message4_benchmark_message4_proto_init() } func file_datasets_google_message4_benchmark_message4_proto_init() { if File_datasets_google_message4_benchmark_message4_proto != nil { return } file_datasets_google_message4_benchmark_message4_1_proto_init() file_datasets_google_message4_benchmark_message4_2_proto_init() file_datasets_google_message4_benchmark_message4_3_proto_init() if !protoimpl.UnsafeEnabled { file_datasets_google_message4_benchmark_message4_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GoogleMessage4); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message37489); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7319); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12717); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message37331); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8815); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7330); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12960); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message176); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8817); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8835); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message37333); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message13000); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message37335); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8848); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message13035); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8856); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12908); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12910); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message37327); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message37329); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message2517); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12748); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12687); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message11948); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message11976); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7320); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3069); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12948); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8768); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12979); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message37173); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12799); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12870); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3804); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12903); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message37326); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message2356); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message0); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message971); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message176_Message178); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3069_Message3070); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message2356_Message2357); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message2356_Message2358); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message2356_Message2359); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_datasets_google_message4_benchmark_message4_proto_rawDesc, NumEnums: 0, NumMessages: 45, NumExtensions: 0, NumServices: 0, }, GoTypes: file_datasets_google_message4_benchmark_message4_proto_goTypes, DependencyIndexes: file_datasets_google_message4_benchmark_message4_proto_depIdxs, MessageInfos: file_datasets_google_message4_benchmark_message4_proto_msgTypes, }.Build() File_datasets_google_message4_benchmark_message4_proto = out.File file_datasets_google_message4_benchmark_message4_proto_rawDesc = nil file_datasets_google_message4_benchmark_message4_proto_goTypes = nil file_datasets_google_message4_benchmark_message4_proto_depIdxs = nil } benchmark_message4_1.pb.go000066400000000000000000007724251411250152500360430ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/datasets/google_message4// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // LINT: ALLOW_GROUPS // Code generated by protoc-gen-go. DO NOT EDIT. // source: datasets/google_message4/benchmark_message4_1.proto package google_message4 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Message2463 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field2498 []*Message2462 `protobuf:"bytes,1,rep,name=field2498" json:"field2498,omitempty"` } func (x *Message2463) Reset() { *x = Message2463{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message2463) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message2463) ProtoMessage() {} func (x *Message2463) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message2463.ProtoReflect.Descriptor instead. func (*Message2463) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{0} } func (x *Message2463) GetField2498() []*Message2462 { if x != nil { return x.Field2498 } return nil } type Message12686 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12699 *string `protobuf:"bytes,1,opt,name=field12699" json:"field12699,omitempty"` Field12700 *Message12685 `protobuf:"bytes,2,opt,name=field12700" json:"field12700,omitempty"` } func (x *Message12686) Reset() { *x = Message12686{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12686) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12686) ProtoMessage() {} func (x *Message12686) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12686.ProtoReflect.Descriptor instead. func (*Message12686) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{1} } func (x *Message12686) GetField12699() string { if x != nil && x.Field12699 != nil { return *x.Field12699 } return "" } func (x *Message12686) GetField12700() *Message12685 { if x != nil { return x.Field12700 } return nil } type Message11949 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message11949) Reset() { *x = Message11949{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message11949) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message11949) ProtoMessage() {} func (x *Message11949) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message11949.ProtoReflect.Descriptor instead. func (*Message11949) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{2} } type Message11975 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field11992 *string `protobuf:"bytes,1,opt,name=field11992" json:"field11992,omitempty"` Field11993 *int32 `protobuf:"varint,2,opt,name=field11993" json:"field11993,omitempty"` Field11994 []*Message10320 `protobuf:"bytes,3,rep,name=field11994" json:"field11994,omitempty"` Field11995 *Message11947 `protobuf:"bytes,4,opt,name=field11995" json:"field11995,omitempty"` Field11996 *Message11920 `protobuf:"bytes,5,opt,name=field11996" json:"field11996,omitempty"` Field11997 *bool `protobuf:"varint,6,opt,name=field11997" json:"field11997,omitempty"` Field11998 []string `protobuf:"bytes,7,rep,name=field11998" json:"field11998,omitempty"` Field11999 *float32 `protobuf:"fixed32,8,opt,name=field11999" json:"field11999,omitempty"` Field12000 []UnusedEnum `protobuf:"varint,9,rep,name=field12000,enum=benchmarks.google_message4.UnusedEnum" json:"field12000,omitempty"` Field12001 *int32 `protobuf:"varint,11,opt,name=field12001" json:"field12001,omitempty"` } func (x *Message11975) Reset() { *x = Message11975{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message11975) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message11975) ProtoMessage() {} func (x *Message11975) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message11975.ProtoReflect.Descriptor instead. func (*Message11975) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{3} } func (x *Message11975) GetField11992() string { if x != nil && x.Field11992 != nil { return *x.Field11992 } return "" } func (x *Message11975) GetField11993() int32 { if x != nil && x.Field11993 != nil { return *x.Field11993 } return 0 } func (x *Message11975) GetField11994() []*Message10320 { if x != nil { return x.Field11994 } return nil } func (x *Message11975) GetField11995() *Message11947 { if x != nil { return x.Field11995 } return nil } func (x *Message11975) GetField11996() *Message11920 { if x != nil { return x.Field11996 } return nil } func (x *Message11975) GetField11997() bool { if x != nil && x.Field11997 != nil { return *x.Field11997 } return false } func (x *Message11975) GetField11998() []string { if x != nil { return x.Field11998 } return nil } func (x *Message11975) GetField11999() float32 { if x != nil && x.Field11999 != nil { return *x.Field11999 } return 0 } func (x *Message11975) GetField12000() []UnusedEnum { if x != nil { return x.Field12000 } return nil } func (x *Message11975) GetField12001() int32 { if x != nil && x.Field12001 != nil { return *x.Field12001 } return 0 } type Message7287 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7311 *Message6133 `protobuf:"bytes,1,opt,name=field7311" json:"field7311,omitempty"` Field7312 *UnusedEmptyMessage `protobuf:"bytes,8,opt,name=field7312" json:"field7312,omitempty"` Field7313 *string `protobuf:"bytes,3,opt,name=field7313" json:"field7313,omitempty"` Field7314 *Message6643 `protobuf:"bytes,4,opt,name=field7314" json:"field7314,omitempty"` Field7315 *Enum7288 `protobuf:"varint,5,opt,name=field7315,enum=benchmarks.google_message4.Enum7288" json:"field7315,omitempty"` Field7316 []byte `protobuf:"bytes,6,opt,name=field7316" json:"field7316,omitempty"` Field7317 *UnusedEmptyMessage `protobuf:"bytes,7,opt,name=field7317" json:"field7317,omitempty"` Field7318 *UnusedEmptyMessage `protobuf:"bytes,9,opt,name=field7318" json:"field7318,omitempty"` } func (x *Message7287) Reset() { *x = Message7287{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7287) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7287) ProtoMessage() {} func (x *Message7287) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7287.ProtoReflect.Descriptor instead. func (*Message7287) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{4} } func (x *Message7287) GetField7311() *Message6133 { if x != nil { return x.Field7311 } return nil } func (x *Message7287) GetField7312() *UnusedEmptyMessage { if x != nil { return x.Field7312 } return nil } func (x *Message7287) GetField7313() string { if x != nil && x.Field7313 != nil { return *x.Field7313 } return "" } func (x *Message7287) GetField7314() *Message6643 { if x != nil { return x.Field7314 } return nil } func (x *Message7287) GetField7315() Enum7288 { if x != nil && x.Field7315 != nil { return *x.Field7315 } return Enum7288_ENUM_VALUE7289 } func (x *Message7287) GetField7316() []byte { if x != nil { return x.Field7316 } return nil } func (x *Message7287) GetField7317() *UnusedEmptyMessage { if x != nil { return x.Field7317 } return nil } func (x *Message7287) GetField7318() *UnusedEmptyMessage { if x != nil { return x.Field7318 } return nil } type Message3061 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field3286 *string `protobuf:"bytes,2,opt,name=field3286" json:"field3286,omitempty"` Field3287 *int32 `protobuf:"varint,77,opt,name=field3287" json:"field3287,omitempty"` Field3288 *string `protobuf:"bytes,49,opt,name=field3288" json:"field3288,omitempty"` Field3289 *Message3046 `protobuf:"bytes,3,req,name=field3289" json:"field3289,omitempty"` Field3290 *Message3046 `protobuf:"bytes,58,opt,name=field3290" json:"field3290,omitempty"` Message3062 *Message3061_Message3062 `protobuf:"group,4,opt,name=Message3062,json=message3062" json:"message3062,omitempty"` Field3292 *Message3060 `protobuf:"bytes,104,opt,name=field3292" json:"field3292,omitempty"` Field3293 *int64 `protobuf:"varint,32,opt,name=field3293" json:"field3293,omitempty"` Field3294 *int32 `protobuf:"varint,41,opt,name=field3294" json:"field3294,omitempty"` Message3063 *Message3061_Message3063 `protobuf:"group,13,opt,name=Message3063,json=message3063" json:"message3063,omitempty"` Field3296 *Enum2834 `protobuf:"varint,94,opt,name=field3296,enum=benchmarks.google_message4.Enum2834" json:"field3296,omitempty"` Field3297 *bool `protobuf:"varint,25,opt,name=field3297" json:"field3297,omitempty"` Field3298 *bool `protobuf:"varint,50,opt,name=field3298" json:"field3298,omitempty"` Field3299 *string `protobuf:"bytes,89,opt,name=field3299" json:"field3299,omitempty"` Field3300 *string `protobuf:"bytes,91,opt,name=field3300" json:"field3300,omitempty"` Field3301 *string `protobuf:"bytes,105,opt,name=field3301" json:"field3301,omitempty"` Field3302 *Message3050 `protobuf:"bytes,53,opt,name=field3302" json:"field3302,omitempty"` Field3303 *uint64 `protobuf:"fixed64,51,opt,name=field3303" json:"field3303,omitempty"` Field3304 *uint64 `protobuf:"fixed64,106,opt,name=field3304" json:"field3304,omitempty"` Field3305 *int32 `protobuf:"varint,60,opt,name=field3305" json:"field3305,omitempty"` Field3306 *string `protobuf:"bytes,44,opt,name=field3306" json:"field3306,omitempty"` Field3307 []byte `protobuf:"bytes,81,opt,name=field3307" json:"field3307,omitempty"` Field3308 *string `protobuf:"bytes,70,opt,name=field3308" json:"field3308,omitempty"` Field3309 []byte `protobuf:"bytes,45,opt,name=field3309" json:"field3309,omitempty"` Field3310 *Enum2806 `protobuf:"varint,71,opt,name=field3310,enum=benchmarks.google_message4.Enum2806" json:"field3310,omitempty"` Field3311 *int32 `protobuf:"varint,72,opt,name=field3311" json:"field3311,omitempty"` Field3312 []byte `protobuf:"bytes,78,opt,name=field3312" json:"field3312,omitempty"` Field3313 *int32 `protobuf:"varint,20,opt,name=field3313" json:"field3313,omitempty"` Message3064 []*Message3061_Message3064 `protobuf:"group,8,rep,name=Message3064,json=message3064" json:"message3064,omitempty"` Field3315 *UnusedEmptyMessage `protobuf:"bytes,39,opt,name=field3315" json:"field3315,omitempty"` Field3316 *int32 `protobuf:"varint,76,opt,name=field3316" json:"field3316,omitempty"` Message3065 *Message3061_Message3065 `protobuf:"group,63,opt,name=Message3065,json=message3065" json:"message3065,omitempty"` Field3318 *Enum2806 `protobuf:"varint,54,opt,name=field3318,enum=benchmarks.google_message4.Enum2806" json:"field3318,omitempty"` Field3319 *int32 `protobuf:"varint,46,opt,name=field3319" json:"field3319,omitempty"` Field3320 []string `protobuf:"bytes,24,rep,name=field3320" json:"field3320,omitempty"` Field3321 *uint32 `protobuf:"fixed32,38,opt,name=field3321" json:"field3321,omitempty"` Field3322 []byte `protobuf:"bytes,99,opt,name=field3322" json:"field3322,omitempty"` Field3323 *uint64 `protobuf:"fixed64,1,opt,name=field3323" json:"field3323,omitempty"` Field3324 *uint64 `protobuf:"fixed64,97,opt,name=field3324" json:"field3324,omitempty"` Field3325 []*Message3040 `protobuf:"bytes,16,rep,name=field3325" json:"field3325,omitempty"` Field3326 []*Message3041 `protobuf:"bytes,61,rep,name=field3326" json:"field3326,omitempty"` Message3066 *Message3061_Message3066 `protobuf:"group,21,opt,name=Message3066,json=message3066" json:"message3066,omitempty"` Field3328 *UnusedEmptyMessage `protobuf:"bytes,47,opt,name=field3328" json:"field3328,omitempty"` Field3329 *UnusedEmptyMessage `protobuf:"bytes,48,opt,name=field3329" json:"field3329,omitempty"` Field3330 *uint64 `protobuf:"fixed64,40,opt,name=field3330" json:"field3330,omitempty"` Field3331 *UnusedEmptyMessage `protobuf:"bytes,86,opt,name=field3331" json:"field3331,omitempty"` Field3332 *UnusedEmptyMessage `protobuf:"bytes,59,opt,name=field3332" json:"field3332,omitempty"` Field3333 *int32 `protobuf:"varint,17,opt,name=field3333" json:"field3333,omitempty"` } func (x *Message3061) Reset() { *x = Message3061{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3061) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3061) ProtoMessage() {} func (x *Message3061) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3061.ProtoReflect.Descriptor instead. func (*Message3061) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{5} } func (x *Message3061) GetField3286() string { if x != nil && x.Field3286 != nil { return *x.Field3286 } return "" } func (x *Message3061) GetField3287() int32 { if x != nil && x.Field3287 != nil { return *x.Field3287 } return 0 } func (x *Message3061) GetField3288() string { if x != nil && x.Field3288 != nil { return *x.Field3288 } return "" } func (x *Message3061) GetField3289() *Message3046 { if x != nil { return x.Field3289 } return nil } func (x *Message3061) GetField3290() *Message3046 { if x != nil { return x.Field3290 } return nil } func (x *Message3061) GetMessage3062() *Message3061_Message3062 { if x != nil { return x.Message3062 } return nil } func (x *Message3061) GetField3292() *Message3060 { if x != nil { return x.Field3292 } return nil } func (x *Message3061) GetField3293() int64 { if x != nil && x.Field3293 != nil { return *x.Field3293 } return 0 } func (x *Message3061) GetField3294() int32 { if x != nil && x.Field3294 != nil { return *x.Field3294 } return 0 } func (x *Message3061) GetMessage3063() *Message3061_Message3063 { if x != nil { return x.Message3063 } return nil } func (x *Message3061) GetField3296() Enum2834 { if x != nil && x.Field3296 != nil { return *x.Field3296 } return Enum2834_ENUM_VALUE2835 } func (x *Message3061) GetField3297() bool { if x != nil && x.Field3297 != nil { return *x.Field3297 } return false } func (x *Message3061) GetField3298() bool { if x != nil && x.Field3298 != nil { return *x.Field3298 } return false } func (x *Message3061) GetField3299() string { if x != nil && x.Field3299 != nil { return *x.Field3299 } return "" } func (x *Message3061) GetField3300() string { if x != nil && x.Field3300 != nil { return *x.Field3300 } return "" } func (x *Message3061) GetField3301() string { if x != nil && x.Field3301 != nil { return *x.Field3301 } return "" } func (x *Message3061) GetField3302() *Message3050 { if x != nil { return x.Field3302 } return nil } func (x *Message3061) GetField3303() uint64 { if x != nil && x.Field3303 != nil { return *x.Field3303 } return 0 } func (x *Message3061) GetField3304() uint64 { if x != nil && x.Field3304 != nil { return *x.Field3304 } return 0 } func (x *Message3061) GetField3305() int32 { if x != nil && x.Field3305 != nil { return *x.Field3305 } return 0 } func (x *Message3061) GetField3306() string { if x != nil && x.Field3306 != nil { return *x.Field3306 } return "" } func (x *Message3061) GetField3307() []byte { if x != nil { return x.Field3307 } return nil } func (x *Message3061) GetField3308() string { if x != nil && x.Field3308 != nil { return *x.Field3308 } return "" } func (x *Message3061) GetField3309() []byte { if x != nil { return x.Field3309 } return nil } func (x *Message3061) GetField3310() Enum2806 { if x != nil && x.Field3310 != nil { return *x.Field3310 } return Enum2806_ENUM_VALUE2807 } func (x *Message3061) GetField3311() int32 { if x != nil && x.Field3311 != nil { return *x.Field3311 } return 0 } func (x *Message3061) GetField3312() []byte { if x != nil { return x.Field3312 } return nil } func (x *Message3061) GetField3313() int32 { if x != nil && x.Field3313 != nil { return *x.Field3313 } return 0 } func (x *Message3061) GetMessage3064() []*Message3061_Message3064 { if x != nil { return x.Message3064 } return nil } func (x *Message3061) GetField3315() *UnusedEmptyMessage { if x != nil { return x.Field3315 } return nil } func (x *Message3061) GetField3316() int32 { if x != nil && x.Field3316 != nil { return *x.Field3316 } return 0 } func (x *Message3061) GetMessage3065() *Message3061_Message3065 { if x != nil { return x.Message3065 } return nil } func (x *Message3061) GetField3318() Enum2806 { if x != nil && x.Field3318 != nil { return *x.Field3318 } return Enum2806_ENUM_VALUE2807 } func (x *Message3061) GetField3319() int32 { if x != nil && x.Field3319 != nil { return *x.Field3319 } return 0 } func (x *Message3061) GetField3320() []string { if x != nil { return x.Field3320 } return nil } func (x *Message3061) GetField3321() uint32 { if x != nil && x.Field3321 != nil { return *x.Field3321 } return 0 } func (x *Message3061) GetField3322() []byte { if x != nil { return x.Field3322 } return nil } func (x *Message3061) GetField3323() uint64 { if x != nil && x.Field3323 != nil { return *x.Field3323 } return 0 } func (x *Message3061) GetField3324() uint64 { if x != nil && x.Field3324 != nil { return *x.Field3324 } return 0 } func (x *Message3061) GetField3325() []*Message3040 { if x != nil { return x.Field3325 } return nil } func (x *Message3061) GetField3326() []*Message3041 { if x != nil { return x.Field3326 } return nil } func (x *Message3061) GetMessage3066() *Message3061_Message3066 { if x != nil { return x.Message3066 } return nil } func (x *Message3061) GetField3328() *UnusedEmptyMessage { if x != nil { return x.Field3328 } return nil } func (x *Message3061) GetField3329() *UnusedEmptyMessage { if x != nil { return x.Field3329 } return nil } func (x *Message3061) GetField3330() uint64 { if x != nil && x.Field3330 != nil { return *x.Field3330 } return 0 } func (x *Message3061) GetField3331() *UnusedEmptyMessage { if x != nil { return x.Field3331 } return nil } func (x *Message3061) GetField3332() *UnusedEmptyMessage { if x != nil { return x.Field3332 } return nil } func (x *Message3061) GetField3333() int32 { if x != nil && x.Field3333 != nil { return *x.Field3333 } return 0 } type Message12949 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message12949) Reset() { *x = Message12949{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12949) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12949) ProtoMessage() {} func (x *Message12949) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12949.ProtoReflect.Descriptor instead. func (*Message12949) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{6} } type Message8572 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8647 []byte `protobuf:"bytes,1,opt,name=field8647" json:"field8647,omitempty"` Field8648 []byte `protobuf:"bytes,3,opt,name=field8648" json:"field8648,omitempty"` Field8649 *Message3886 `protobuf:"bytes,4,opt,name=field8649" json:"field8649,omitempty"` Field8650 *Message3919 `protobuf:"bytes,57,opt,name=field8650" json:"field8650,omitempty"` Field8651 *bool `protobuf:"varint,5,opt,name=field8651" json:"field8651,omitempty"` Field8652 *int32 `protobuf:"varint,6,opt,name=field8652" json:"field8652,omitempty"` Field8653 *int32 `protobuf:"varint,49,opt,name=field8653" json:"field8653,omitempty"` Field8654 *Message7905 `protobuf:"bytes,7,opt,name=field8654" json:"field8654,omitempty"` Field8655 *int32 `protobuf:"varint,10,opt,name=field8655" json:"field8655,omitempty"` Field8656 *UnusedEmptyMessage `protobuf:"bytes,11,opt,name=field8656" json:"field8656,omitempty"` Field8657 *bool `protobuf:"varint,35,opt,name=field8657" json:"field8657,omitempty"` Field8658 []byte `protobuf:"bytes,12,opt,name=field8658" json:"field8658,omitempty"` Field8659 *string `protobuf:"bytes,14,opt,name=field8659" json:"field8659,omitempty"` Field8660 *UnusedEmptyMessage `protobuf:"bytes,13,opt,name=field8660" json:"field8660,omitempty"` Field8661 []byte `protobuf:"bytes,15,opt,name=field8661" json:"field8661,omitempty"` Field8662 *UnusedEmptyMessage `protobuf:"bytes,17,opt,name=field8662" json:"field8662,omitempty"` Field8663 *int32 `protobuf:"varint,18,opt,name=field8663" json:"field8663,omitempty"` Field8664 *int32 `protobuf:"varint,19,opt,name=field8664" json:"field8664,omitempty"` Field8665 *bool `protobuf:"varint,20,opt,name=field8665" json:"field8665,omitempty"` Field8666 *Enum3476 `protobuf:"varint,31,opt,name=field8666,enum=benchmarks.google_message4.Enum3476" json:"field8666,omitempty"` Field8667 *bool `protobuf:"varint,36,opt,name=field8667" json:"field8667,omitempty"` Field8668 *UnusedEmptyMessage `protobuf:"bytes,39,opt,name=field8668" json:"field8668,omitempty"` Field8669 []byte `protobuf:"bytes,22,opt,name=field8669" json:"field8669,omitempty"` Field8670 *int32 `protobuf:"varint,24,opt,name=field8670" json:"field8670,omitempty"` Field8671 *Message3052 `protobuf:"bytes,25,opt,name=field8671" json:"field8671,omitempty"` Field8672 []byte `protobuf:"bytes,26,opt,name=field8672" json:"field8672,omitempty"` Field8673 []byte `protobuf:"bytes,28,opt,name=field8673" json:"field8673,omitempty"` Field8674 *int32 `protobuf:"varint,29,opt,name=field8674" json:"field8674,omitempty"` Field8675 []byte `protobuf:"bytes,30,opt,name=field8675" json:"field8675,omitempty"` Field8676 []byte `protobuf:"bytes,32,opt,name=field8676" json:"field8676,omitempty"` Field8677 *string `protobuf:"bytes,33,opt,name=field8677" json:"field8677,omitempty"` Field8678 *int32 `protobuf:"varint,34,opt,name=field8678" json:"field8678,omitempty"` Field8679 *int32 `protobuf:"varint,37,opt,name=field8679" json:"field8679,omitempty"` Field8680 *float64 `protobuf:"fixed64,38,opt,name=field8680" json:"field8680,omitempty"` Field8681 *float64 `protobuf:"fixed64,42,opt,name=field8681" json:"field8681,omitempty"` Field8682 *Message3922 `protobuf:"bytes,40,opt,name=field8682" json:"field8682,omitempty"` Field8683 *UnusedEmptyMessage `protobuf:"bytes,43,opt,name=field8683" json:"field8683,omitempty"` Field8684 *int64 `protobuf:"varint,44,opt,name=field8684" json:"field8684,omitempty"` Field8685 *Message7929 `protobuf:"bytes,45,opt,name=field8685" json:"field8685,omitempty"` Field8686 *uint64 `protobuf:"varint,46,opt,name=field8686" json:"field8686,omitempty"` Field8687 *uint32 `protobuf:"varint,48,opt,name=field8687" json:"field8687,omitempty"` Field8688 *Message7843 `protobuf:"bytes,47,opt,name=field8688" json:"field8688,omitempty"` Field8689 *Message7864 `protobuf:"bytes,50,opt,name=field8689" json:"field8689,omitempty"` Field8690 *UnusedEmptyMessage `protobuf:"bytes,52,opt,name=field8690" json:"field8690,omitempty"` Field8691 *bool `protobuf:"varint,58,opt,name=field8691" json:"field8691,omitempty"` Field8692 *bool `protobuf:"varint,54,opt,name=field8692" json:"field8692,omitempty"` Field8693 *string `protobuf:"bytes,55,opt,name=field8693" json:"field8693,omitempty"` Field8694 *UnusedEmptyMessage `protobuf:"bytes,41,opt,name=field8694" json:"field8694,omitempty"` Field8695 *UnusedEmptyMessage `protobuf:"bytes,53,opt,name=field8695" json:"field8695,omitempty"` Field8696 *Message8575 `protobuf:"bytes,61,opt,name=field8696" json:"field8696,omitempty"` } func (x *Message8572) Reset() { *x = Message8572{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8572) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8572) ProtoMessage() {} func (x *Message8572) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8572.ProtoReflect.Descriptor instead. func (*Message8572) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{7} } func (x *Message8572) GetField8647() []byte { if x != nil { return x.Field8647 } return nil } func (x *Message8572) GetField8648() []byte { if x != nil { return x.Field8648 } return nil } func (x *Message8572) GetField8649() *Message3886 { if x != nil { return x.Field8649 } return nil } func (x *Message8572) GetField8650() *Message3919 { if x != nil { return x.Field8650 } return nil } func (x *Message8572) GetField8651() bool { if x != nil && x.Field8651 != nil { return *x.Field8651 } return false } func (x *Message8572) GetField8652() int32 { if x != nil && x.Field8652 != nil { return *x.Field8652 } return 0 } func (x *Message8572) GetField8653() int32 { if x != nil && x.Field8653 != nil { return *x.Field8653 } return 0 } func (x *Message8572) GetField8654() *Message7905 { if x != nil { return x.Field8654 } return nil } func (x *Message8572) GetField8655() int32 { if x != nil && x.Field8655 != nil { return *x.Field8655 } return 0 } func (x *Message8572) GetField8656() *UnusedEmptyMessage { if x != nil { return x.Field8656 } return nil } func (x *Message8572) GetField8657() bool { if x != nil && x.Field8657 != nil { return *x.Field8657 } return false } func (x *Message8572) GetField8658() []byte { if x != nil { return x.Field8658 } return nil } func (x *Message8572) GetField8659() string { if x != nil && x.Field8659 != nil { return *x.Field8659 } return "" } func (x *Message8572) GetField8660() *UnusedEmptyMessage { if x != nil { return x.Field8660 } return nil } func (x *Message8572) GetField8661() []byte { if x != nil { return x.Field8661 } return nil } func (x *Message8572) GetField8662() *UnusedEmptyMessage { if x != nil { return x.Field8662 } return nil } func (x *Message8572) GetField8663() int32 { if x != nil && x.Field8663 != nil { return *x.Field8663 } return 0 } func (x *Message8572) GetField8664() int32 { if x != nil && x.Field8664 != nil { return *x.Field8664 } return 0 } func (x *Message8572) GetField8665() bool { if x != nil && x.Field8665 != nil { return *x.Field8665 } return false } func (x *Message8572) GetField8666() Enum3476 { if x != nil && x.Field8666 != nil { return *x.Field8666 } return Enum3476_ENUM_VALUE3477 } func (x *Message8572) GetField8667() bool { if x != nil && x.Field8667 != nil { return *x.Field8667 } return false } func (x *Message8572) GetField8668() *UnusedEmptyMessage { if x != nil { return x.Field8668 } return nil } func (x *Message8572) GetField8669() []byte { if x != nil { return x.Field8669 } return nil } func (x *Message8572) GetField8670() int32 { if x != nil && x.Field8670 != nil { return *x.Field8670 } return 0 } func (x *Message8572) GetField8671() *Message3052 { if x != nil { return x.Field8671 } return nil } func (x *Message8572) GetField8672() []byte { if x != nil { return x.Field8672 } return nil } func (x *Message8572) GetField8673() []byte { if x != nil { return x.Field8673 } return nil } func (x *Message8572) GetField8674() int32 { if x != nil && x.Field8674 != nil { return *x.Field8674 } return 0 } func (x *Message8572) GetField8675() []byte { if x != nil { return x.Field8675 } return nil } func (x *Message8572) GetField8676() []byte { if x != nil { return x.Field8676 } return nil } func (x *Message8572) GetField8677() string { if x != nil && x.Field8677 != nil { return *x.Field8677 } return "" } func (x *Message8572) GetField8678() int32 { if x != nil && x.Field8678 != nil { return *x.Field8678 } return 0 } func (x *Message8572) GetField8679() int32 { if x != nil && x.Field8679 != nil { return *x.Field8679 } return 0 } func (x *Message8572) GetField8680() float64 { if x != nil && x.Field8680 != nil { return *x.Field8680 } return 0 } func (x *Message8572) GetField8681() float64 { if x != nil && x.Field8681 != nil { return *x.Field8681 } return 0 } func (x *Message8572) GetField8682() *Message3922 { if x != nil { return x.Field8682 } return nil } func (x *Message8572) GetField8683() *UnusedEmptyMessage { if x != nil { return x.Field8683 } return nil } func (x *Message8572) GetField8684() int64 { if x != nil && x.Field8684 != nil { return *x.Field8684 } return 0 } func (x *Message8572) GetField8685() *Message7929 { if x != nil { return x.Field8685 } return nil } func (x *Message8572) GetField8686() uint64 { if x != nil && x.Field8686 != nil { return *x.Field8686 } return 0 } func (x *Message8572) GetField8687() uint32 { if x != nil && x.Field8687 != nil { return *x.Field8687 } return 0 } func (x *Message8572) GetField8688() *Message7843 { if x != nil { return x.Field8688 } return nil } func (x *Message8572) GetField8689() *Message7864 { if x != nil { return x.Field8689 } return nil } func (x *Message8572) GetField8690() *UnusedEmptyMessage { if x != nil { return x.Field8690 } return nil } func (x *Message8572) GetField8691() bool { if x != nil && x.Field8691 != nil { return *x.Field8691 } return false } func (x *Message8572) GetField8692() bool { if x != nil && x.Field8692 != nil { return *x.Field8692 } return false } func (x *Message8572) GetField8693() string { if x != nil && x.Field8693 != nil { return *x.Field8693 } return "" } func (x *Message8572) GetField8694() *UnusedEmptyMessage { if x != nil { return x.Field8694 } return nil } func (x *Message8572) GetField8695() *UnusedEmptyMessage { if x != nil { return x.Field8695 } return nil } func (x *Message8572) GetField8696() *Message8575 { if x != nil { return x.Field8696 } return nil } type Message8774 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field8810 *string `protobuf:"bytes,1,opt,name=field8810" json:"field8810,omitempty"` Field8811 *string `protobuf:"bytes,2,opt,name=field8811" json:"field8811,omitempty"` Field8812 *string `protobuf:"bytes,3,opt,name=field8812" json:"field8812,omitempty"` Field8813 *string `protobuf:"bytes,4,opt,name=field8813" json:"field8813,omitempty"` Field8814 *string `protobuf:"bytes,5,opt,name=field8814" json:"field8814,omitempty"` } func (x *Message8774) Reset() { *x = Message8774{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8774) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8774) ProtoMessage() {} func (x *Message8774) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8774.ProtoReflect.Descriptor instead. func (*Message8774) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{8} } func (x *Message8774) GetField8810() string { if x != nil && x.Field8810 != nil { return *x.Field8810 } return "" } func (x *Message8774) GetField8811() string { if x != nil && x.Field8811 != nil { return *x.Field8811 } return "" } func (x *Message8774) GetField8812() string { if x != nil && x.Field8812 != nil { return *x.Field8812 } return "" } func (x *Message8774) GetField8813() string { if x != nil && x.Field8813 != nil { return *x.Field8813 } return "" } func (x *Message8774) GetField8814() string { if x != nil && x.Field8814 != nil { return *x.Field8814 } return "" } type Message12776 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields Field12786 *string `protobuf:"bytes,1,opt,name=field12786" json:"field12786,omitempty"` Field12787 *uint64 `protobuf:"fixed64,11,opt,name=field12787" json:"field12787,omitempty"` Field12788 *int32 `protobuf:"varint,6,opt,name=field12788" json:"field12788,omitempty"` Field12789 *int32 `protobuf:"varint,13,opt,name=field12789" json:"field12789,omitempty"` Field12790 *int32 `protobuf:"varint,14,opt,name=field12790" json:"field12790,omitempty"` Field12791 *int32 `protobuf:"varint,15,opt,name=field12791" json:"field12791,omitempty"` Field12792 *int32 `protobuf:"varint,16,opt,name=field12792" json:"field12792,omitempty"` Field12793 *UnusedEmptyMessage `protobuf:"bytes,8,opt,name=field12793" json:"field12793,omitempty"` Field12794 *Message12774 `protobuf:"bytes,10,opt,name=field12794" json:"field12794,omitempty"` Field12795 *UnusedEmptyMessage `protobuf:"bytes,12,opt,name=field12795" json:"field12795,omitempty"` } func (x *Message12776) Reset() { *x = Message12776{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12776) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12776) ProtoMessage() {} func (x *Message12776) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12776.ProtoReflect.Descriptor instead. func (*Message12776) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{9} } func (x *Message12776) GetField12786() string { if x != nil && x.Field12786 != nil { return *x.Field12786 } return "" } func (x *Message12776) GetField12787() uint64 { if x != nil && x.Field12787 != nil { return *x.Field12787 } return 0 } func (x *Message12776) GetField12788() int32 { if x != nil && x.Field12788 != nil { return *x.Field12788 } return 0 } func (x *Message12776) GetField12789() int32 { if x != nil && x.Field12789 != nil { return *x.Field12789 } return 0 } func (x *Message12776) GetField12790() int32 { if x != nil && x.Field12790 != nil { return *x.Field12790 } return 0 } func (x *Message12776) GetField12791() int32 { if x != nil && x.Field12791 != nil { return *x.Field12791 } return 0 } func (x *Message12776) GetField12792() int32 { if x != nil && x.Field12792 != nil { return *x.Field12792 } return 0 } func (x *Message12776) GetField12793() *UnusedEmptyMessage { if x != nil { return x.Field12793 } return nil } func (x *Message12776) GetField12794() *Message12774 { if x != nil { return x.Field12794 } return nil } func (x *Message12776) GetField12795() *UnusedEmptyMessage { if x != nil { return x.Field12795 } return nil } type Message12798 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12805 *int32 `protobuf:"varint,1,opt,name=field12805" json:"field12805,omitempty"` Field12806 *int32 `protobuf:"varint,2,opt,name=field12806" json:"field12806,omitempty"` Field12807 *Message12774 `protobuf:"bytes,6,opt,name=field12807" json:"field12807,omitempty"` Field12808 *bool `protobuf:"varint,7,opt,name=field12808" json:"field12808,omitempty"` } func (x *Message12798) Reset() { *x = Message12798{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12798) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12798) ProtoMessage() {} func (x *Message12798) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12798.ProtoReflect.Descriptor instead. func (*Message12798) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{10} } func (x *Message12798) GetField12805() int32 { if x != nil && x.Field12805 != nil { return *x.Field12805 } return 0 } func (x *Message12798) GetField12806() int32 { if x != nil && x.Field12806 != nil { return *x.Field12806 } return 0 } func (x *Message12798) GetField12807() *Message12774 { if x != nil { return x.Field12807 } return nil } func (x *Message12798) GetField12808() bool { if x != nil && x.Field12808 != nil { return *x.Field12808 } return false } type Message12797 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12802 *Message12796 `protobuf:"bytes,1,opt,name=field12802" json:"field12802,omitempty"` Field12803 []*Message12796 `protobuf:"bytes,2,rep,name=field12803" json:"field12803,omitempty"` Field12804 *string `protobuf:"bytes,3,opt,name=field12804" json:"field12804,omitempty"` } func (x *Message12797) Reset() { *x = Message12797{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12797) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12797) ProtoMessage() {} func (x *Message12797) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12797.ProtoReflect.Descriptor instead. func (*Message12797) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{11} } func (x *Message12797) GetField12802() *Message12796 { if x != nil { return x.Field12802 } return nil } func (x *Message12797) GetField12803() []*Message12796 { if x != nil { return x.Field12803 } return nil } func (x *Message12797) GetField12804() string { if x != nil && x.Field12804 != nil { return *x.Field12804 } return "" } type Message12825 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12862 []*Message12818 `protobuf:"bytes,1,rep,name=field12862" json:"field12862,omitempty"` Field12863 *int32 `protobuf:"varint,2,opt,name=field12863" json:"field12863,omitempty"` Field12864 *Message12819 `protobuf:"bytes,3,opt,name=field12864" json:"field12864,omitempty"` Field12865 *Message12820 `protobuf:"bytes,4,opt,name=field12865" json:"field12865,omitempty"` Field12866 *int32 `protobuf:"varint,5,opt,name=field12866" json:"field12866,omitempty"` Field12867 []*Message12821 `protobuf:"bytes,6,rep,name=field12867" json:"field12867,omitempty"` Field12868 []*UnusedEmptyMessage `protobuf:"bytes,7,rep,name=field12868" json:"field12868,omitempty"` } func (x *Message12825) Reset() { *x = Message12825{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12825) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12825) ProtoMessage() {} func (x *Message12825) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12825.ProtoReflect.Descriptor instead. func (*Message12825) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{12} } func (x *Message12825) GetField12862() []*Message12818 { if x != nil { return x.Field12862 } return nil } func (x *Message12825) GetField12863() int32 { if x != nil && x.Field12863 != nil { return *x.Field12863 } return 0 } func (x *Message12825) GetField12864() *Message12819 { if x != nil { return x.Field12864 } return nil } func (x *Message12825) GetField12865() *Message12820 { if x != nil { return x.Field12865 } return nil } func (x *Message12825) GetField12866() int32 { if x != nil && x.Field12866 != nil { return *x.Field12866 } return 0 } func (x *Message12825) GetField12867() []*Message12821 { if x != nil { return x.Field12867 } return nil } func (x *Message12825) GetField12868() []*UnusedEmptyMessage { if x != nil { return x.Field12868 } return nil } type Message8590 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message8590) Reset() { *x = Message8590{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8590) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8590) ProtoMessage() {} func (x *Message8590) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8590.ProtoReflect.Descriptor instead. func (*Message8590) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{13} } type Message8587 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message8587) Reset() { *x = Message8587{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8587) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8587) ProtoMessage() {} func (x *Message8587) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8587.ProtoReflect.Descriptor instead. func (*Message8587) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{14} } type Message1374 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field1375 *string `protobuf:"bytes,1,req,name=field1375" json:"field1375,omitempty"` Field1376 *string `protobuf:"bytes,2,opt,name=field1376" json:"field1376,omitempty"` } func (x *Message1374) Reset() { *x = Message1374{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message1374) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message1374) ProtoMessage() {} func (x *Message1374) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message1374.ProtoReflect.Descriptor instead. func (*Message1374) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{15} } func (x *Message1374) GetField1375() string { if x != nil && x.Field1375 != nil { return *x.Field1375 } return "" } func (x *Message1374) GetField1376() string { if x != nil && x.Field1376 != nil { return *x.Field1376 } return "" } type Message2462 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field2496 []byte `protobuf:"bytes,1,req,name=field2496" json:"field2496,omitempty"` Field2497 *float64 `protobuf:"fixed64,2,req,name=field2497" json:"field2497,omitempty"` } func (x *Message2462) Reset() { *x = Message2462{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message2462) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message2462) ProtoMessage() {} func (x *Message2462) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message2462.ProtoReflect.Descriptor instead. func (*Message2462) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{16} } func (x *Message2462) GetField2496() []byte { if x != nil { return x.Field2496 } return nil } func (x *Message2462) GetField2497() float64 { if x != nil && x.Field2497 != nil { return *x.Field2497 } return 0 } type Message12685 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12692 []string `protobuf:"bytes,1,rep,name=field12692" json:"field12692,omitempty"` Field12693 []string `protobuf:"bytes,2,rep,name=field12693" json:"field12693,omitempty"` Field12694 *int64 `protobuf:"varint,3,opt,name=field12694" json:"field12694,omitempty"` Field12695 *uint32 `protobuf:"varint,4,opt,name=field12695" json:"field12695,omitempty"` Field12696 []string `protobuf:"bytes,5,rep,name=field12696" json:"field12696,omitempty"` Field12697 *string `protobuf:"bytes,6,opt,name=field12697" json:"field12697,omitempty"` Field12698 *string `protobuf:"bytes,7,opt,name=field12698" json:"field12698,omitempty"` } func (x *Message12685) Reset() { *x = Message12685{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12685) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12685) ProtoMessage() {} func (x *Message12685) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12685.ProtoReflect.Descriptor instead. func (*Message12685) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{17} } func (x *Message12685) GetField12692() []string { if x != nil { return x.Field12692 } return nil } func (x *Message12685) GetField12693() []string { if x != nil { return x.Field12693 } return nil } func (x *Message12685) GetField12694() int64 { if x != nil && x.Field12694 != nil { return *x.Field12694 } return 0 } func (x *Message12685) GetField12695() uint32 { if x != nil && x.Field12695 != nil { return *x.Field12695 } return 0 } func (x *Message12685) GetField12696() []string { if x != nil { return x.Field12696 } return nil } func (x *Message12685) GetField12697() string { if x != nil && x.Field12697 != nil { return *x.Field12697 } return "" } func (x *Message12685) GetField12698() string { if x != nil && x.Field12698 != nil { return *x.Field12698 } return "" } type Message10320 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field10347 *Enum10335 `protobuf:"varint,1,opt,name=field10347,enum=benchmarks.google_message4.Enum10335" json:"field10347,omitempty"` Field10348 []*Message10319 `protobuf:"bytes,2,rep,name=field10348" json:"field10348,omitempty"` Field10349 *int32 `protobuf:"varint,3,opt,name=field10349" json:"field10349,omitempty"` Field10350 *int32 `protobuf:"varint,4,opt,name=field10350" json:"field10350,omitempty"` Field10351 *int32 `protobuf:"varint,5,opt,name=field10351" json:"field10351,omitempty"` Field10352 *int32 `protobuf:"varint,6,opt,name=field10352" json:"field10352,omitempty"` Field10353 *Enum10337 `protobuf:"varint,7,opt,name=field10353,enum=benchmarks.google_message4.Enum10337" json:"field10353,omitempty"` } func (x *Message10320) Reset() { *x = Message10320{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10320) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10320) ProtoMessage() {} func (x *Message10320) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10320.ProtoReflect.Descriptor instead. func (*Message10320) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{18} } func (x *Message10320) GetField10347() Enum10335 { if x != nil && x.Field10347 != nil { return *x.Field10347 } return Enum10335_ENUM_VALUE10336 } func (x *Message10320) GetField10348() []*Message10319 { if x != nil { return x.Field10348 } return nil } func (x *Message10320) GetField10349() int32 { if x != nil && x.Field10349 != nil { return *x.Field10349 } return 0 } func (x *Message10320) GetField10350() int32 { if x != nil && x.Field10350 != nil { return *x.Field10350 } return 0 } func (x *Message10320) GetField10351() int32 { if x != nil && x.Field10351 != nil { return *x.Field10351 } return 0 } func (x *Message10320) GetField10352() int32 { if x != nil && x.Field10352 != nil { return *x.Field10352 } return 0 } func (x *Message10320) GetField10353() Enum10337 { if x != nil && x.Field10353 != nil { return *x.Field10353 } return Enum10337_ENUM_VALUE10338 } type Message11947 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field11951 *uint32 `protobuf:"varint,1,opt,name=field11951" json:"field11951,omitempty"` Field11952 *bool `protobuf:"varint,2,opt,name=field11952" json:"field11952,omitempty"` Field11953 *int32 `protobuf:"varint,3,opt,name=field11953" json:"field11953,omitempty"` } func (x *Message11947) Reset() { *x = Message11947{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message11947) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message11947) ProtoMessage() {} func (x *Message11947) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message11947.ProtoReflect.Descriptor instead. func (*Message11947) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{19} } func (x *Message11947) GetField11951() uint32 { if x != nil && x.Field11951 != nil { return *x.Field11951 } return 0 } func (x *Message11947) GetField11952() bool { if x != nil && x.Field11952 != nil { return *x.Field11952 } return false } func (x *Message11947) GetField11953() int32 { if x != nil && x.Field11953 != nil { return *x.Field11953 } return 0 } type Message11920 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field11945 *Enum11901 `protobuf:"varint,1,opt,name=field11945,enum=benchmarks.google_message4.Enum11901" json:"field11945,omitempty"` Field11946 *UnusedEnum `protobuf:"varint,2,opt,name=field11946,enum=benchmarks.google_message4.UnusedEnum" json:"field11946,omitempty"` } func (x *Message11920) Reset() { *x = Message11920{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message11920) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message11920) ProtoMessage() {} func (x *Message11920) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message11920.ProtoReflect.Descriptor instead. func (*Message11920) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{20} } func (x *Message11920) GetField11945() Enum11901 { if x != nil && x.Field11945 != nil { return *x.Field11945 } return Enum11901_ENUM_VALUE11902 } func (x *Message11920) GetField11946() UnusedEnum { if x != nil && x.Field11946 != nil { return *x.Field11946 } return UnusedEnum_UNUSED_ENUM_VALUE1 } type Message6643 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6683 *UnusedEmptyMessage `protobuf:"bytes,3,opt,name=field6683" json:"field6683,omitempty"` Field6684 *UnusedEmptyMessage `protobuf:"bytes,4,opt,name=field6684" json:"field6684,omitempty"` Field6685 *float64 `protobuf:"fixed64,5,opt,name=field6685" json:"field6685,omitempty"` Field6686 *float64 `protobuf:"fixed64,6,opt,name=field6686" json:"field6686,omitempty"` Field6687 *int32 `protobuf:"varint,1,opt,name=field6687" json:"field6687,omitempty"` Field6688 *int32 `protobuf:"varint,2,opt,name=field6688" json:"field6688,omitempty"` Field6689 *float64 `protobuf:"fixed64,9,opt,name=field6689" json:"field6689,omitempty"` Field6690 []byte `protobuf:"bytes,10,opt,name=field6690" json:"field6690,omitempty"` Field6691 *int32 `protobuf:"varint,11,opt,name=field6691" json:"field6691,omitempty"` Field6692 *bool `protobuf:"varint,12,opt,name=field6692" json:"field6692,omitempty"` Field6693 *bool `protobuf:"varint,13,opt,name=field6693" json:"field6693,omitempty"` Field6694 *Message6578 `protobuf:"bytes,15,opt,name=field6694" json:"field6694,omitempty"` Field6695 *UnusedEnum `protobuf:"varint,16,opt,name=field6695,enum=benchmarks.google_message4.UnusedEnum" json:"field6695,omitempty"` Field6696 *int64 `protobuf:"varint,17,opt,name=field6696" json:"field6696,omitempty"` Field6697 []*UnusedEmptyMessage `protobuf:"bytes,22,rep,name=field6697" json:"field6697,omitempty"` Field6698 *UnusedEmptyMessage `protobuf:"bytes,19,opt,name=field6698" json:"field6698,omitempty"` Field6699 *UnusedEmptyMessage `protobuf:"bytes,20,opt,name=field6699" json:"field6699,omitempty"` Field6700 *int32 `protobuf:"varint,21,opt,name=field6700" json:"field6700,omitempty"` } func (x *Message6643) Reset() { *x = Message6643{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6643) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6643) ProtoMessage() {} func (x *Message6643) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6643.ProtoReflect.Descriptor instead. func (*Message6643) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{21} } func (x *Message6643) GetField6683() *UnusedEmptyMessage { if x != nil { return x.Field6683 } return nil } func (x *Message6643) GetField6684() *UnusedEmptyMessage { if x != nil { return x.Field6684 } return nil } func (x *Message6643) GetField6685() float64 { if x != nil && x.Field6685 != nil { return *x.Field6685 } return 0 } func (x *Message6643) GetField6686() float64 { if x != nil && x.Field6686 != nil { return *x.Field6686 } return 0 } func (x *Message6643) GetField6687() int32 { if x != nil && x.Field6687 != nil { return *x.Field6687 } return 0 } func (x *Message6643) GetField6688() int32 { if x != nil && x.Field6688 != nil { return *x.Field6688 } return 0 } func (x *Message6643) GetField6689() float64 { if x != nil && x.Field6689 != nil { return *x.Field6689 } return 0 } func (x *Message6643) GetField6690() []byte { if x != nil { return x.Field6690 } return nil } func (x *Message6643) GetField6691() int32 { if x != nil && x.Field6691 != nil { return *x.Field6691 } return 0 } func (x *Message6643) GetField6692() bool { if x != nil && x.Field6692 != nil { return *x.Field6692 } return false } func (x *Message6643) GetField6693() bool { if x != nil && x.Field6693 != nil { return *x.Field6693 } return false } func (x *Message6643) GetField6694() *Message6578 { if x != nil { return x.Field6694 } return nil } func (x *Message6643) GetField6695() UnusedEnum { if x != nil && x.Field6695 != nil { return *x.Field6695 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message6643) GetField6696() int64 { if x != nil && x.Field6696 != nil { return *x.Field6696 } return 0 } func (x *Message6643) GetField6697() []*UnusedEmptyMessage { if x != nil { return x.Field6697 } return nil } func (x *Message6643) GetField6698() *UnusedEmptyMessage { if x != nil { return x.Field6698 } return nil } func (x *Message6643) GetField6699() *UnusedEmptyMessage { if x != nil { return x.Field6699 } return nil } func (x *Message6643) GetField6700() int32 { if x != nil && x.Field6700 != nil { return *x.Field6700 } return 0 } type Message6133 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6173 *Message4016 `protobuf:"bytes,12,opt,name=field6173" json:"field6173,omitempty"` Field6174 *float64 `protobuf:"fixed64,16,opt,name=field6174" json:"field6174,omitempty"` Field6175 *string `protobuf:"bytes,1,req,name=field6175" json:"field6175,omitempty"` Field6176 *string `protobuf:"bytes,2,req,name=field6176" json:"field6176,omitempty"` Field6177 *string `protobuf:"bytes,3,req,name=field6177" json:"field6177,omitempty"` Field6178 *string `protobuf:"bytes,4,opt,name=field6178" json:"field6178,omitempty"` Field6179 *string `protobuf:"bytes,8,opt,name=field6179" json:"field6179,omitempty"` Field6180 []*Message6109 `protobuf:"bytes,5,rep,name=field6180" json:"field6180,omitempty"` Field6181 []*Message5908 `protobuf:"bytes,13,rep,name=field6181" json:"field6181,omitempty"` Field6182 []*Message6107 `protobuf:"bytes,7,rep,name=field6182" json:"field6182,omitempty"` Field6183 []*Message6126 `protobuf:"bytes,9,rep,name=field6183" json:"field6183,omitempty"` Field6184 []*Message6129 `protobuf:"bytes,15,rep,name=field6184" json:"field6184,omitempty"` Field6185 *int32 `protobuf:"varint,10,opt,name=field6185" json:"field6185,omitempty"` Field6186 *int32 `protobuf:"varint,11,opt,name=field6186" json:"field6186,omitempty"` Field6187 *Message4016 `protobuf:"bytes,17,opt,name=field6187" json:"field6187,omitempty"` Field6188 *float64 `protobuf:"fixed64,14,opt,name=field6188" json:"field6188,omitempty"` Field6189 *float64 `protobuf:"fixed64,18,opt,name=field6189" json:"field6189,omitempty"` Field6190 *string `protobuf:"bytes,19,opt,name=field6190" json:"field6190,omitempty"` Field6191 *string `protobuf:"bytes,20,opt,name=field6191" json:"field6191,omitempty"` Field6192 []*Message5881 `protobuf:"bytes,21,rep,name=field6192" json:"field6192,omitempty"` } func (x *Message6133) Reset() { *x = Message6133{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6133) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6133) ProtoMessage() {} func (x *Message6133) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6133.ProtoReflect.Descriptor instead. func (*Message6133) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{22} } func (x *Message6133) GetField6173() *Message4016 { if x != nil { return x.Field6173 } return nil } func (x *Message6133) GetField6174() float64 { if x != nil && x.Field6174 != nil { return *x.Field6174 } return 0 } func (x *Message6133) GetField6175() string { if x != nil && x.Field6175 != nil { return *x.Field6175 } return "" } func (x *Message6133) GetField6176() string { if x != nil && x.Field6176 != nil { return *x.Field6176 } return "" } func (x *Message6133) GetField6177() string { if x != nil && x.Field6177 != nil { return *x.Field6177 } return "" } func (x *Message6133) GetField6178() string { if x != nil && x.Field6178 != nil { return *x.Field6178 } return "" } func (x *Message6133) GetField6179() string { if x != nil && x.Field6179 != nil { return *x.Field6179 } return "" } func (x *Message6133) GetField6180() []*Message6109 { if x != nil { return x.Field6180 } return nil } func (x *Message6133) GetField6181() []*Message5908 { if x != nil { return x.Field6181 } return nil } func (x *Message6133) GetField6182() []*Message6107 { if x != nil { return x.Field6182 } return nil } func (x *Message6133) GetField6183() []*Message6126 { if x != nil { return x.Field6183 } return nil } func (x *Message6133) GetField6184() []*Message6129 { if x != nil { return x.Field6184 } return nil } func (x *Message6133) GetField6185() int32 { if x != nil && x.Field6185 != nil { return *x.Field6185 } return 0 } func (x *Message6133) GetField6186() int32 { if x != nil && x.Field6186 != nil { return *x.Field6186 } return 0 } func (x *Message6133) GetField6187() *Message4016 { if x != nil { return x.Field6187 } return nil } func (x *Message6133) GetField6188() float64 { if x != nil && x.Field6188 != nil { return *x.Field6188 } return 0 } func (x *Message6133) GetField6189() float64 { if x != nil && x.Field6189 != nil { return *x.Field6189 } return 0 } func (x *Message6133) GetField6190() string { if x != nil && x.Field6190 != nil { return *x.Field6190 } return "" } func (x *Message6133) GetField6191() string { if x != nil && x.Field6191 != nil { return *x.Field6191 } return "" } func (x *Message6133) GetField6192() []*Message5881 { if x != nil { return x.Field6192 } return nil } type Message6109 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields Field6140 *string `protobuf:"bytes,1,opt,name=field6140" json:"field6140,omitempty"` Field6141 *Enum6111 `protobuf:"varint,2,req,name=field6141,enum=benchmarks.google_message4.Enum6111" json:"field6141,omitempty"` Field6142 *int32 `protobuf:"varint,9,opt,name=field6142" json:"field6142,omitempty"` Field6143 *string `protobuf:"bytes,3,opt,name=field6143" json:"field6143,omitempty"` Field6144 []*Message6110 `protobuf:"bytes,4,rep,name=field6144" json:"field6144,omitempty"` Field6145 []int32 `protobuf:"varint,7,rep,name=field6145" json:"field6145,omitempty"` Field6146 []int32 `protobuf:"varint,8,rep,name=field6146" json:"field6146,omitempty"` Field6147 *Message6133 `protobuf:"bytes,10,opt,name=field6147" json:"field6147,omitempty"` Field6148 []int32 `protobuf:"varint,11,rep,name=field6148" json:"field6148,omitempty"` Field6149 *string `protobuf:"bytes,12,opt,name=field6149" json:"field6149,omitempty"` Field6150 *string `protobuf:"bytes,13,opt,name=field6150" json:"field6150,omitempty"` Field6151 *bool `protobuf:"varint,14,opt,name=field6151" json:"field6151,omitempty"` } func (x *Message6109) Reset() { *x = Message6109{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6109) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6109) ProtoMessage() {} func (x *Message6109) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6109.ProtoReflect.Descriptor instead. func (*Message6109) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{23} } func (x *Message6109) GetField6140() string { if x != nil && x.Field6140 != nil { return *x.Field6140 } return "" } func (x *Message6109) GetField6141() Enum6111 { if x != nil && x.Field6141 != nil { return *x.Field6141 } return Enum6111_ENUM_VALUE6112 } func (x *Message6109) GetField6142() int32 { if x != nil && x.Field6142 != nil { return *x.Field6142 } return 0 } func (x *Message6109) GetField6143() string { if x != nil && x.Field6143 != nil { return *x.Field6143 } return "" } func (x *Message6109) GetField6144() []*Message6110 { if x != nil { return x.Field6144 } return nil } func (x *Message6109) GetField6145() []int32 { if x != nil { return x.Field6145 } return nil } func (x *Message6109) GetField6146() []int32 { if x != nil { return x.Field6146 } return nil } func (x *Message6109) GetField6147() *Message6133 { if x != nil { return x.Field6147 } return nil } func (x *Message6109) GetField6148() []int32 { if x != nil { return x.Field6148 } return nil } func (x *Message6109) GetField6149() string { if x != nil && x.Field6149 != nil { return *x.Field6149 } return "" } func (x *Message6109) GetField6150() string { if x != nil && x.Field6150 != nil { return *x.Field6150 } return "" } func (x *Message6109) GetField6151() bool { if x != nil && x.Field6151 != nil { return *x.Field6151 } return false } type Message3046 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field3222 *Enum2593 `protobuf:"varint,1,req,name=field3222,enum=benchmarks.google_message4.Enum2593" json:"field3222,omitempty"` Field3223 *int32 `protobuf:"varint,4,opt,name=field3223" json:"field3223,omitempty"` } func (x *Message3046) Reset() { *x = Message3046{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3046) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3046) ProtoMessage() {} func (x *Message3046) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3046.ProtoReflect.Descriptor instead. func (*Message3046) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{24} } func (x *Message3046) GetField3222() Enum2593 { if x != nil && x.Field3222 != nil { return *x.Field3222 } return Enum2593_ENUM_VALUE2594 } func (x *Message3046) GetField3223() int32 { if x != nil && x.Field3223 != nil { return *x.Field3223 } return 0 } type Message3060 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field3283 *int64 `protobuf:"varint,1,opt,name=field3283" json:"field3283,omitempty"` Field3284 *int64 `protobuf:"varint,2,opt,name=field3284" json:"field3284,omitempty"` Field3285 *int64 `protobuf:"varint,3,opt,name=field3285" json:"field3285,omitempty"` } func (x *Message3060) Reset() { *x = Message3060{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3060) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3060) ProtoMessage() {} func (x *Message3060) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3060.ProtoReflect.Descriptor instead. func (*Message3060) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{25} } func (x *Message3060) GetField3283() int64 { if x != nil && x.Field3283 != nil { return *x.Field3283 } return 0 } func (x *Message3060) GetField3284() int64 { if x != nil && x.Field3284 != nil { return *x.Field3284 } return 0 } func (x *Message3060) GetField3285() int64 { if x != nil && x.Field3285 != nil { return *x.Field3285 } return 0 } type Message3041 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field3214 *string `protobuf:"bytes,1,opt,name=field3214" json:"field3214,omitempty"` Field3215 *int32 `protobuf:"varint,2,opt,name=field3215" json:"field3215,omitempty"` } func (x *Message3041) Reset() { *x = Message3041{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3041) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3041) ProtoMessage() {} func (x *Message3041) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3041.ProtoReflect.Descriptor instead. func (*Message3041) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{26} } func (x *Message3041) GetField3214() string { if x != nil && x.Field3214 != nil { return *x.Field3214 } return "" } func (x *Message3041) GetField3215() int32 { if x != nil && x.Field3215 != nil { return *x.Field3215 } return 0 } type Message3040 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field3209 *uint64 `protobuf:"fixed64,1,req,name=field3209" json:"field3209,omitempty"` Field3210 []uint64 `protobuf:"fixed64,4,rep,name=field3210" json:"field3210,omitempty"` Field3211 *int32 `protobuf:"varint,5,opt,name=field3211" json:"field3211,omitempty"` Field3212 *uint64 `protobuf:"fixed64,2,opt,name=field3212" json:"field3212,omitempty"` Field3213 *string `protobuf:"bytes,3,req,name=field3213" json:"field3213,omitempty"` } func (x *Message3040) Reset() { *x = Message3040{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3040) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3040) ProtoMessage() {} func (x *Message3040) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3040.ProtoReflect.Descriptor instead. func (*Message3040) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{27} } func (x *Message3040) GetField3209() uint64 { if x != nil && x.Field3209 != nil { return *x.Field3209 } return 0 } func (x *Message3040) GetField3210() []uint64 { if x != nil { return x.Field3210 } return nil } func (x *Message3040) GetField3211() int32 { if x != nil && x.Field3211 != nil { return *x.Field3211 } return 0 } func (x *Message3040) GetField3212() uint64 { if x != nil && x.Field3212 != nil { return *x.Field3212 } return 0 } func (x *Message3040) GetField3213() string { if x != nil && x.Field3213 != nil { return *x.Field3213 } return "" } type Message3050 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field3245 []byte `protobuf:"bytes,5,opt,name=field3245" json:"field3245,omitempty"` Field3246 *int32 `protobuf:"varint,2,opt,name=field3246" json:"field3246,omitempty"` Field3247 []byte `protobuf:"bytes,6,opt,name=field3247" json:"field3247,omitempty"` Field3248 *int32 `protobuf:"varint,4,opt,name=field3248" json:"field3248,omitempty"` Field3249 *uint32 `protobuf:"fixed32,1,opt,name=field3249" json:"field3249,omitempty"` Field3250 *uint32 `protobuf:"fixed32,3,opt,name=field3250" json:"field3250,omitempty"` } func (x *Message3050) Reset() { *x = Message3050{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3050) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3050) ProtoMessage() {} func (x *Message3050) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3050.ProtoReflect.Descriptor instead. func (*Message3050) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{28} } func (x *Message3050) GetField3245() []byte { if x != nil { return x.Field3245 } return nil } func (x *Message3050) GetField3246() int32 { if x != nil && x.Field3246 != nil { return *x.Field3246 } return 0 } func (x *Message3050) GetField3247() []byte { if x != nil { return x.Field3247 } return nil } func (x *Message3050) GetField3248() int32 { if x != nil && x.Field3248 != nil { return *x.Field3248 } return 0 } func (x *Message3050) GetField3249() uint32 { if x != nil && x.Field3249 != nil { return *x.Field3249 } return 0 } func (x *Message3050) GetField3250() uint32 { if x != nil && x.Field3250 != nil { return *x.Field3250 } return 0 } type Message7905 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7911 *int32 `protobuf:"varint,1,opt,name=field7911" json:"field7911,omitempty"` Field7912 *bool `protobuf:"varint,2,opt,name=field7912" json:"field7912,omitempty"` Field7913 []byte `protobuf:"bytes,3,opt,name=field7913" json:"field7913,omitempty"` Field7914 *int32 `protobuf:"varint,4,opt,name=field7914" json:"field7914,omitempty"` Field7915 *int32 `protobuf:"varint,5,opt,name=field7915" json:"field7915,omitempty"` Field7916 []byte `protobuf:"bytes,6,opt,name=field7916" json:"field7916,omitempty"` Field7917 *int32 `protobuf:"varint,7,opt,name=field7917" json:"field7917,omitempty"` } func (x *Message7905) Reset() { *x = Message7905{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7905) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7905) ProtoMessage() {} func (x *Message7905) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7905.ProtoReflect.Descriptor instead. func (*Message7905) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{29} } func (x *Message7905) GetField7911() int32 { if x != nil && x.Field7911 != nil { return *x.Field7911 } return 0 } func (x *Message7905) GetField7912() bool { if x != nil && x.Field7912 != nil { return *x.Field7912 } return false } func (x *Message7905) GetField7913() []byte { if x != nil { return x.Field7913 } return nil } func (x *Message7905) GetField7914() int32 { if x != nil && x.Field7914 != nil { return *x.Field7914 } return 0 } func (x *Message7905) GetField7915() int32 { if x != nil && x.Field7915 != nil { return *x.Field7915 } return 0 } func (x *Message7905) GetField7916() []byte { if x != nil { return x.Field7916 } return nil } func (x *Message7905) GetField7917() int32 { if x != nil && x.Field7917 != nil { return *x.Field7917 } return 0 } type Message3886 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Message3887 []*Message3886_Message3887 `protobuf:"group,1,rep,name=Message3887,json=message3887" json:"message3887,omitempty"` } func (x *Message3886) Reset() { *x = Message3886{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3886) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3886) ProtoMessage() {} func (x *Message3886) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3886.ProtoReflect.Descriptor instead. func (*Message3886) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{30} } func (x *Message3886) GetMessage3887() []*Message3886_Message3887 { if x != nil { return x.Message3887 } return nil } type Message7864 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7866 *string `protobuf:"bytes,1,opt,name=field7866" json:"field7866,omitempty"` Field7867 *string `protobuf:"bytes,2,opt,name=field7867" json:"field7867,omitempty"` Field7868 []*Message7865 `protobuf:"bytes,5,rep,name=field7868" json:"field7868,omitempty"` Field7869 []*Message7865 `protobuf:"bytes,6,rep,name=field7869" json:"field7869,omitempty"` Field7870 []*Message7865 `protobuf:"bytes,7,rep,name=field7870" json:"field7870,omitempty"` Field7871 []*UnusedEmptyMessage `protobuf:"bytes,8,rep,name=field7871" json:"field7871,omitempty"` } func (x *Message7864) Reset() { *x = Message7864{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7864) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7864) ProtoMessage() {} func (x *Message7864) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7864.ProtoReflect.Descriptor instead. func (*Message7864) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{31} } func (x *Message7864) GetField7866() string { if x != nil && x.Field7866 != nil { return *x.Field7866 } return "" } func (x *Message7864) GetField7867() string { if x != nil && x.Field7867 != nil { return *x.Field7867 } return "" } func (x *Message7864) GetField7868() []*Message7865 { if x != nil { return x.Field7868 } return nil } func (x *Message7864) GetField7869() []*Message7865 { if x != nil { return x.Field7869 } return nil } func (x *Message7864) GetField7870() []*Message7865 { if x != nil { return x.Field7870 } return nil } func (x *Message7864) GetField7871() []*UnusedEmptyMessage { if x != nil { return x.Field7871 } return nil } type Message3922 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field4012 *uint64 `protobuf:"varint,1,opt,name=field4012" json:"field4012,omitempty"` } func (x *Message3922) Reset() { *x = Message3922{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3922) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3922) ProtoMessage() {} func (x *Message3922) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3922.ProtoReflect.Descriptor instead. func (*Message3922) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{32} } func (x *Message3922) GetField4012() uint64 { if x != nil && x.Field4012 != nil { return *x.Field4012 } return 0 } type Message3052 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field3254 []string `protobuf:"bytes,1,rep,name=field3254" json:"field3254,omitempty"` Field3255 []string `protobuf:"bytes,2,rep,name=field3255" json:"field3255,omitempty"` Field3256 [][]byte `protobuf:"bytes,3,rep,name=field3256" json:"field3256,omitempty"` Field3257 []string `protobuf:"bytes,4,rep,name=field3257" json:"field3257,omitempty"` Field3258 *bool `protobuf:"varint,5,opt,name=field3258" json:"field3258,omitempty"` Field3259 *int32 `protobuf:"varint,6,opt,name=field3259" json:"field3259,omitempty"` Field3260 *int32 `protobuf:"varint,7,opt,name=field3260" json:"field3260,omitempty"` Field3261 *string `protobuf:"bytes,8,opt,name=field3261" json:"field3261,omitempty"` Field3262 *string `protobuf:"bytes,9,opt,name=field3262" json:"field3262,omitempty"` } func (x *Message3052) Reset() { *x = Message3052{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3052) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3052) ProtoMessage() {} func (x *Message3052) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3052.ProtoReflect.Descriptor instead. func (*Message3052) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{33} } func (x *Message3052) GetField3254() []string { if x != nil { return x.Field3254 } return nil } func (x *Message3052) GetField3255() []string { if x != nil { return x.Field3255 } return nil } func (x *Message3052) GetField3256() [][]byte { if x != nil { return x.Field3256 } return nil } func (x *Message3052) GetField3257() []string { if x != nil { return x.Field3257 } return nil } func (x *Message3052) GetField3258() bool { if x != nil && x.Field3258 != nil { return *x.Field3258 } return false } func (x *Message3052) GetField3259() int32 { if x != nil && x.Field3259 != nil { return *x.Field3259 } return 0 } func (x *Message3052) GetField3260() int32 { if x != nil && x.Field3260 != nil { return *x.Field3260 } return 0 } func (x *Message3052) GetField3261() string { if x != nil && x.Field3261 != nil { return *x.Field3261 } return "" } func (x *Message3052) GetField3262() string { if x != nil && x.Field3262 != nil { return *x.Field3262 } return "" } type Message8575 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message8575) Reset() { *x = Message8575{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message8575) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message8575) ProtoMessage() {} func (x *Message8575) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message8575.ProtoReflect.Descriptor instead. func (*Message8575) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{34} } type Message7843 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7844 *bool `protobuf:"varint,5,opt,name=field7844" json:"field7844,omitempty"` Field7845 *int32 `protobuf:"varint,1,opt,name=field7845" json:"field7845,omitempty"` Field7846 *UnusedEmptyMessage `protobuf:"bytes,22,opt,name=field7846" json:"field7846,omitempty"` Field7847 []int32 `protobuf:"varint,3,rep,name=field7847" json:"field7847,omitempty"` Field7848 []string `protobuf:"bytes,11,rep,name=field7848" json:"field7848,omitempty"` Field7849 *UnusedEnum `protobuf:"varint,15,opt,name=field7849,enum=benchmarks.google_message4.UnusedEnum" json:"field7849,omitempty"` Field7850 *UnusedEmptyMessage `protobuf:"bytes,6,opt,name=field7850" json:"field7850,omitempty"` Field7851 *UnusedEmptyMessage `protobuf:"bytes,14,opt,name=field7851" json:"field7851,omitempty"` Field7852 *UnusedEmptyMessage `protobuf:"bytes,10,opt,name=field7852" json:"field7852,omitempty"` Field7853 *Message7511 `protobuf:"bytes,13,opt,name=field7853" json:"field7853,omitempty"` Field7854 *UnusedEmptyMessage `protobuf:"bytes,16,opt,name=field7854" json:"field7854,omitempty"` Field7855 *UnusedEmptyMessage `protobuf:"bytes,17,opt,name=field7855" json:"field7855,omitempty"` Field7856 *UnusedEmptyMessage `protobuf:"bytes,19,opt,name=field7856" json:"field7856,omitempty"` Field7857 *UnusedEmptyMessage `protobuf:"bytes,18,opt,name=field7857" json:"field7857,omitempty"` Field7858 *UnusedEnum `protobuf:"varint,20,opt,name=field7858,enum=benchmarks.google_message4.UnusedEnum" json:"field7858,omitempty"` Field7859 *int32 `protobuf:"varint,2,opt,name=field7859" json:"field7859,omitempty"` } func (x *Message7843) Reset() { *x = Message7843{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7843) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7843) ProtoMessage() {} func (x *Message7843) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7843.ProtoReflect.Descriptor instead. func (*Message7843) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{35} } func (x *Message7843) GetField7844() bool { if x != nil && x.Field7844 != nil { return *x.Field7844 } return false } func (x *Message7843) GetField7845() int32 { if x != nil && x.Field7845 != nil { return *x.Field7845 } return 0 } func (x *Message7843) GetField7846() *UnusedEmptyMessage { if x != nil { return x.Field7846 } return nil } func (x *Message7843) GetField7847() []int32 { if x != nil { return x.Field7847 } return nil } func (x *Message7843) GetField7848() []string { if x != nil { return x.Field7848 } return nil } func (x *Message7843) GetField7849() UnusedEnum { if x != nil && x.Field7849 != nil { return *x.Field7849 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message7843) GetField7850() *UnusedEmptyMessage { if x != nil { return x.Field7850 } return nil } func (x *Message7843) GetField7851() *UnusedEmptyMessage { if x != nil { return x.Field7851 } return nil } func (x *Message7843) GetField7852() *UnusedEmptyMessage { if x != nil { return x.Field7852 } return nil } func (x *Message7843) GetField7853() *Message7511 { if x != nil { return x.Field7853 } return nil } func (x *Message7843) GetField7854() *UnusedEmptyMessage { if x != nil { return x.Field7854 } return nil } func (x *Message7843) GetField7855() *UnusedEmptyMessage { if x != nil { return x.Field7855 } return nil } func (x *Message7843) GetField7856() *UnusedEmptyMessage { if x != nil { return x.Field7856 } return nil } func (x *Message7843) GetField7857() *UnusedEmptyMessage { if x != nil { return x.Field7857 } return nil } func (x *Message7843) GetField7858() UnusedEnum { if x != nil && x.Field7858 != nil { return *x.Field7858 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message7843) GetField7859() int32 { if x != nil && x.Field7859 != nil { return *x.Field7859 } return 0 } type Message3919 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field4009 []*Message3920 `protobuf:"bytes,1,rep,name=field4009" json:"field4009,omitempty"` } func (x *Message3919) Reset() { *x = Message3919{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3919) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3919) ProtoMessage() {} func (x *Message3919) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3919.ProtoReflect.Descriptor instead. func (*Message3919) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{36} } func (x *Message3919) GetField4009() []*Message3920 { if x != nil { return x.Field4009 } return nil } type Message7929 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7942 *int64 `protobuf:"varint,1,opt,name=field7942" json:"field7942,omitempty"` Field7943 *int64 `protobuf:"varint,4,opt,name=field7943" json:"field7943,omitempty"` Field7944 *int64 `protobuf:"varint,5,opt,name=field7944" json:"field7944,omitempty"` Field7945 *int64 `protobuf:"varint,12,opt,name=field7945" json:"field7945,omitempty"` Field7946 *int64 `protobuf:"varint,13,opt,name=field7946" json:"field7946,omitempty"` Field7947 *int64 `protobuf:"varint,18,opt,name=field7947" json:"field7947,omitempty"` Field7948 *int64 `protobuf:"varint,6,opt,name=field7948" json:"field7948,omitempty"` Field7949 *int64 `protobuf:"varint,7,opt,name=field7949" json:"field7949,omitempty"` Field7950 []*Message7919 `protobuf:"bytes,8,rep,name=field7950" json:"field7950,omitempty"` Field7951 []*UnusedEmptyMessage `protobuf:"bytes,20,rep,name=field7951" json:"field7951,omitempty"` Field7952 []*Message7920 `protobuf:"bytes,14,rep,name=field7952" json:"field7952,omitempty"` Field7953 []*Message7921 `protobuf:"bytes,15,rep,name=field7953" json:"field7953,omitempty"` Field7954 []*Message7928 `protobuf:"bytes,17,rep,name=field7954" json:"field7954,omitempty"` Field7955 *int64 `protobuf:"varint,19,opt,name=field7955" json:"field7955,omitempty"` Field7956 *bool `protobuf:"varint,2,opt,name=field7956" json:"field7956,omitempty"` Field7957 *int64 `protobuf:"varint,3,opt,name=field7957" json:"field7957,omitempty"` Field7958 *int64 `protobuf:"varint,9,opt,name=field7958" json:"field7958,omitempty"` Field7959 []*UnusedEmptyMessage `protobuf:"bytes,10,rep,name=field7959" json:"field7959,omitempty"` Field7960 [][]byte `protobuf:"bytes,11,rep,name=field7960" json:"field7960,omitempty"` Field7961 *int64 `protobuf:"varint,16,opt,name=field7961" json:"field7961,omitempty"` } func (x *Message7929) Reset() { *x = Message7929{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7929) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7929) ProtoMessage() {} func (x *Message7929) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7929.ProtoReflect.Descriptor instead. func (*Message7929) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{37} } func (x *Message7929) GetField7942() int64 { if x != nil && x.Field7942 != nil { return *x.Field7942 } return 0 } func (x *Message7929) GetField7943() int64 { if x != nil && x.Field7943 != nil { return *x.Field7943 } return 0 } func (x *Message7929) GetField7944() int64 { if x != nil && x.Field7944 != nil { return *x.Field7944 } return 0 } func (x *Message7929) GetField7945() int64 { if x != nil && x.Field7945 != nil { return *x.Field7945 } return 0 } func (x *Message7929) GetField7946() int64 { if x != nil && x.Field7946 != nil { return *x.Field7946 } return 0 } func (x *Message7929) GetField7947() int64 { if x != nil && x.Field7947 != nil { return *x.Field7947 } return 0 } func (x *Message7929) GetField7948() int64 { if x != nil && x.Field7948 != nil { return *x.Field7948 } return 0 } func (x *Message7929) GetField7949() int64 { if x != nil && x.Field7949 != nil { return *x.Field7949 } return 0 } func (x *Message7929) GetField7950() []*Message7919 { if x != nil { return x.Field7950 } return nil } func (x *Message7929) GetField7951() []*UnusedEmptyMessage { if x != nil { return x.Field7951 } return nil } func (x *Message7929) GetField7952() []*Message7920 { if x != nil { return x.Field7952 } return nil } func (x *Message7929) GetField7953() []*Message7921 { if x != nil { return x.Field7953 } return nil } func (x *Message7929) GetField7954() []*Message7928 { if x != nil { return x.Field7954 } return nil } func (x *Message7929) GetField7955() int64 { if x != nil && x.Field7955 != nil { return *x.Field7955 } return 0 } func (x *Message7929) GetField7956() bool { if x != nil && x.Field7956 != nil { return *x.Field7956 } return false } func (x *Message7929) GetField7957() int64 { if x != nil && x.Field7957 != nil { return *x.Field7957 } return 0 } func (x *Message7929) GetField7958() int64 { if x != nil && x.Field7958 != nil { return *x.Field7958 } return 0 } func (x *Message7929) GetField7959() []*UnusedEmptyMessage { if x != nil { return x.Field7959 } return nil } func (x *Message7929) GetField7960() [][]byte { if x != nil { return x.Field7960 } return nil } func (x *Message7929) GetField7961() int64 { if x != nil && x.Field7961 != nil { return *x.Field7961 } return 0 } type Message3061_Message3062 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field3335 *int32 `protobuf:"varint,5,req,name=field3335" json:"field3335,omitempty"` Field3336 *int32 `protobuf:"varint,6,opt,name=field3336" json:"field3336,omitempty"` Field3337 *int32 `protobuf:"varint,7,opt,name=field3337" json:"field3337,omitempty"` } func (x *Message3061_Message3062) Reset() { *x = Message3061_Message3062{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3061_Message3062) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3061_Message3062) ProtoMessage() {} func (x *Message3061_Message3062) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3061_Message3062.ProtoReflect.Descriptor instead. func (*Message3061_Message3062) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{5, 0} } func (x *Message3061_Message3062) GetField3335() int32 { if x != nil && x.Field3335 != nil { return *x.Field3335 } return 0 } func (x *Message3061_Message3062) GetField3336() int32 { if x != nil && x.Field3336 != nil { return *x.Field3336 } return 0 } func (x *Message3061_Message3062) GetField3337() int32 { if x != nil && x.Field3337 != nil { return *x.Field3337 } return 0 } type Message3061_Message3063 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field3338 *int32 `protobuf:"varint,14,req,name=field3338" json:"field3338,omitempty"` Field3339 *Enum2851 `protobuf:"varint,18,opt,name=field3339,enum=benchmarks.google_message4.Enum2851" json:"field3339,omitempty"` Field3340 *int64 `protobuf:"varint,15,opt,name=field3340" json:"field3340,omitempty"` Field3341 *int64 `protobuf:"varint,23,opt,name=field3341" json:"field3341,omitempty"` } func (x *Message3061_Message3063) Reset() { *x = Message3061_Message3063{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3061_Message3063) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3061_Message3063) ProtoMessage() {} func (x *Message3061_Message3063) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3061_Message3063.ProtoReflect.Descriptor instead. func (*Message3061_Message3063) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{5, 1} } func (x *Message3061_Message3063) GetField3338() int32 { if x != nil && x.Field3338 != nil { return *x.Field3338 } return 0 } func (x *Message3061_Message3063) GetField3339() Enum2851 { if x != nil && x.Field3339 != nil { return *x.Field3339 } return Enum2851_ENUM_VALUE2852 } func (x *Message3061_Message3063) GetField3340() int64 { if x != nil && x.Field3340 != nil { return *x.Field3340 } return 0 } func (x *Message3061_Message3063) GetField3341() int64 { if x != nil && x.Field3341 != nil { return *x.Field3341 } return 0 } type Message3061_Message3064 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field3342 *Enum2602 `protobuf:"varint,9,req,name=field3342,enum=benchmarks.google_message4.Enum2602" json:"field3342,omitempty"` Field3343 *int32 `protobuf:"varint,92,opt,name=field3343" json:"field3343,omitempty"` Field3344 *string `protobuf:"bytes,10,opt,name=field3344" json:"field3344,omitempty"` Field3345 []byte `protobuf:"bytes,11,opt,name=field3345" json:"field3345,omitempty"` Field3346 *int32 `protobuf:"varint,12,opt,name=field3346" json:"field3346,omitempty"` Field3347 *Message3060 `protobuf:"bytes,98,opt,name=field3347" json:"field3347,omitempty"` Field3348 *UnusedEmptyMessage `protobuf:"bytes,82,opt,name=field3348" json:"field3348,omitempty"` Field3349 *Message3050 `protobuf:"bytes,80,opt,name=field3349" json:"field3349,omitempty"` Field3350 *uint64 `protobuf:"fixed64,52,opt,name=field3350" json:"field3350,omitempty"` Field3351 *int32 `protobuf:"varint,33,opt,name=field3351" json:"field3351,omitempty"` Field3352 *string `protobuf:"bytes,42,opt,name=field3352" json:"field3352,omitempty"` Field3353 *string `protobuf:"bytes,69,opt,name=field3353" json:"field3353,omitempty"` Field3354 []byte `protobuf:"bytes,43,opt,name=field3354" json:"field3354,omitempty"` Field3355 *Enum2806 `protobuf:"varint,73,opt,name=field3355,enum=benchmarks.google_message4.Enum2806" json:"field3355,omitempty"` Field3356 *int32 `protobuf:"varint,74,opt,name=field3356" json:"field3356,omitempty"` Field3357 *int32 `protobuf:"varint,90,opt,name=field3357" json:"field3357,omitempty"` Field3358 []byte `protobuf:"bytes,79,opt,name=field3358" json:"field3358,omitempty"` Field3359 *int32 `protobuf:"varint,19,opt,name=field3359" json:"field3359,omitempty"` Field3360 *Enum2834 `protobuf:"varint,95,opt,name=field3360,enum=benchmarks.google_message4.Enum2834" json:"field3360,omitempty"` } func (x *Message3061_Message3064) Reset() { *x = Message3061_Message3064{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3061_Message3064) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3061_Message3064) ProtoMessage() {} func (x *Message3061_Message3064) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3061_Message3064.ProtoReflect.Descriptor instead. func (*Message3061_Message3064) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{5, 2} } func (x *Message3061_Message3064) GetField3342() Enum2602 { if x != nil && x.Field3342 != nil { return *x.Field3342 } return Enum2602_ENUM_VALUE2603 } func (x *Message3061_Message3064) GetField3343() int32 { if x != nil && x.Field3343 != nil { return *x.Field3343 } return 0 } func (x *Message3061_Message3064) GetField3344() string { if x != nil && x.Field3344 != nil { return *x.Field3344 } return "" } func (x *Message3061_Message3064) GetField3345() []byte { if x != nil { return x.Field3345 } return nil } func (x *Message3061_Message3064) GetField3346() int32 { if x != nil && x.Field3346 != nil { return *x.Field3346 } return 0 } func (x *Message3061_Message3064) GetField3347() *Message3060 { if x != nil { return x.Field3347 } return nil } func (x *Message3061_Message3064) GetField3348() *UnusedEmptyMessage { if x != nil { return x.Field3348 } return nil } func (x *Message3061_Message3064) GetField3349() *Message3050 { if x != nil { return x.Field3349 } return nil } func (x *Message3061_Message3064) GetField3350() uint64 { if x != nil && x.Field3350 != nil { return *x.Field3350 } return 0 } func (x *Message3061_Message3064) GetField3351() int32 { if x != nil && x.Field3351 != nil { return *x.Field3351 } return 0 } func (x *Message3061_Message3064) GetField3352() string { if x != nil && x.Field3352 != nil { return *x.Field3352 } return "" } func (x *Message3061_Message3064) GetField3353() string { if x != nil && x.Field3353 != nil { return *x.Field3353 } return "" } func (x *Message3061_Message3064) GetField3354() []byte { if x != nil { return x.Field3354 } return nil } func (x *Message3061_Message3064) GetField3355() Enum2806 { if x != nil && x.Field3355 != nil { return *x.Field3355 } return Enum2806_ENUM_VALUE2807 } func (x *Message3061_Message3064) GetField3356() int32 { if x != nil && x.Field3356 != nil { return *x.Field3356 } return 0 } func (x *Message3061_Message3064) GetField3357() int32 { if x != nil && x.Field3357 != nil { return *x.Field3357 } return 0 } func (x *Message3061_Message3064) GetField3358() []byte { if x != nil { return x.Field3358 } return nil } func (x *Message3061_Message3064) GetField3359() int32 { if x != nil && x.Field3359 != nil { return *x.Field3359 } return 0 } func (x *Message3061_Message3064) GetField3360() Enum2834 { if x != nil && x.Field3360 != nil { return *x.Field3360 } return Enum2834_ENUM_VALUE2835 } type Message3061_Message3065 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message3061_Message3065) Reset() { *x = Message3061_Message3065{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3061_Message3065) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3061_Message3065) ProtoMessage() {} func (x *Message3061_Message3065) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3061_Message3065.ProtoReflect.Descriptor instead. func (*Message3061_Message3065) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{5, 3} } type Message3061_Message3066 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field3366 *int32 `protobuf:"varint,22,opt,name=field3366" json:"field3366,omitempty"` Field3367 *int32 `protobuf:"varint,55,opt,name=field3367" json:"field3367,omitempty"` Field3368 *int32 `protobuf:"varint,88,opt,name=field3368" json:"field3368,omitempty"` Field3369 *int32 `protobuf:"varint,56,opt,name=field3369" json:"field3369,omitempty"` Field3370 *int32 `protobuf:"varint,75,opt,name=field3370" json:"field3370,omitempty"` Field3371 *int32 `protobuf:"varint,57,opt,name=field3371" json:"field3371,omitempty"` Field3372 *UnusedEmptyMessage `protobuf:"bytes,85,opt,name=field3372" json:"field3372,omitempty"` Field3373 *UnusedEmptyMessage `protobuf:"bytes,96,opt,name=field3373" json:"field3373,omitempty"` } func (x *Message3061_Message3066) Reset() { *x = Message3061_Message3066{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3061_Message3066) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3061_Message3066) ProtoMessage() {} func (x *Message3061_Message3066) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3061_Message3066.ProtoReflect.Descriptor instead. func (*Message3061_Message3066) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{5, 4} } func (x *Message3061_Message3066) GetField3366() int32 { if x != nil && x.Field3366 != nil { return *x.Field3366 } return 0 } func (x *Message3061_Message3066) GetField3367() int32 { if x != nil && x.Field3367 != nil { return *x.Field3367 } return 0 } func (x *Message3061_Message3066) GetField3368() int32 { if x != nil && x.Field3368 != nil { return *x.Field3368 } return 0 } func (x *Message3061_Message3066) GetField3369() int32 { if x != nil && x.Field3369 != nil { return *x.Field3369 } return 0 } func (x *Message3061_Message3066) GetField3370() int32 { if x != nil && x.Field3370 != nil { return *x.Field3370 } return 0 } func (x *Message3061_Message3066) GetField3371() int32 { if x != nil && x.Field3371 != nil { return *x.Field3371 } return 0 } func (x *Message3061_Message3066) GetField3372() *UnusedEmptyMessage { if x != nil { return x.Field3372 } return nil } func (x *Message3061_Message3066) GetField3373() *UnusedEmptyMessage { if x != nil { return x.Field3373 } return nil } type Message3886_Message3887 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field3932 *string `protobuf:"bytes,2,req,name=field3932" json:"field3932,omitempty"` Field3933 *string `protobuf:"bytes,9,opt,name=field3933" json:"field3933,omitempty"` Field3934 *Message3850 `protobuf:"bytes,3,opt,name=field3934" json:"field3934,omitempty"` Field3935 []byte `protobuf:"bytes,8,opt,name=field3935" json:"field3935,omitempty"` } func (x *Message3886_Message3887) Reset() { *x = Message3886_Message3887{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3886_Message3887) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3886_Message3887) ProtoMessage() {} func (x *Message3886_Message3887) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3886_Message3887.ProtoReflect.Descriptor instead. func (*Message3886_Message3887) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP(), []int{30, 0} } func (x *Message3886_Message3887) GetField3932() string { if x != nil && x.Field3932 != nil { return *x.Field3932 } return "" } func (x *Message3886_Message3887) GetField3933() string { if x != nil && x.Field3933 != nil { return *x.Field3933 } return "" } func (x *Message3886_Message3887) GetField3934() *Message3850 { if x != nil { return x.Field3934 } return nil } func (x *Message3886_Message3887) GetField3935() []byte { if x != nil { return x.Field3935 } return nil } var File_datasets_google_message4_benchmark_message4_1_proto protoreflect.FileDescriptor var file_datasets_google_message4_benchmark_message4_1_proto_rawDesc = []byte{ 0x0a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x5f, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x5f, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x5f, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x54, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x36, 0x33, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x39, 0x38, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x36, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x39, 0x38, 0x22, 0x78, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x36, 0x38, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x39, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x39, 0x39, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x30, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x36, 0x38, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x30, 0x30, 0x22, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x39, 0x34, 0x39, 0x22, 0xf4, 0x03, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x39, 0x37, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x39, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x39, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x39, 0x33, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x39, 0x33, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x39, 0x34, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x33, 0x32, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x39, 0x34, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x39, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x39, 0x34, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x39, 0x35, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x39, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x39, 0x32, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x39, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x39, 0x37, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x39, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x39, 0x38, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x39, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x39, 0x39, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x39, 0x39, 0x12, 0x46, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x30, 0x30, 0x30, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x30, 0x30, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x30, 0x30, 0x31, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x30, 0x30, 0x31, 0x22, 0x85, 0x04, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x32, 0x38, 0x37, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x31, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x31, 0x33, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x31, 0x31, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x31, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x31, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x31, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x31, 0x33, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x31, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x36, 0x34, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x31, 0x34, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x31, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x37, 0x32, 0x38, 0x38, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x31, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x31, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x31, 0x36, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x31, 0x37, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x31, 0x37, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x31, 0x38, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x33, 0x31, 0x38, 0x22, 0xe6, 0x1d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x38, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x38, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x38, 0x37, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x38, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x38, 0x38, 0x18, 0x31, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x38, 0x38, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x38, 0x39, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x34, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x38, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x39, 0x30, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x34, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x39, 0x30, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x33, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x32, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x32, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x39, 0x32, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x39, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x39, 0x33, 0x18, 0x20, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x39, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x39, 0x34, 0x18, 0x29, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x39, 0x34, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x33, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x33, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x33, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x39, 0x36, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x32, 0x38, 0x33, 0x34, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x39, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x39, 0x37, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x39, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x39, 0x38, 0x18, 0x32, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x39, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x39, 0x39, 0x18, 0x59, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x39, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x30, 0x30, 0x18, 0x5b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x30, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x30, 0x31, 0x18, 0x69, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x30, 0x31, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x30, 0x32, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x35, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x30, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x30, 0x33, 0x18, 0x33, 0x20, 0x01, 0x28, 0x06, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x30, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x30, 0x34, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x06, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x30, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x30, 0x35, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x30, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x30, 0x36, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x30, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x30, 0x37, 0x18, 0x51, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x30, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x30, 0x38, 0x18, 0x46, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x30, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x30, 0x39, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x30, 0x39, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x31, 0x30, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x32, 0x38, 0x30, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x31, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x31, 0x31, 0x18, 0x48, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x31, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x31, 0x32, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x31, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x31, 0x33, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x31, 0x33, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x34, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x33, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x34, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x34, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x31, 0x35, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x31, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x31, 0x36, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x31, 0x36, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x35, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x33, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x35, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x35, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x31, 0x38, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x32, 0x38, 0x30, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x31, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x31, 0x39, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x31, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x32, 0x30, 0x18, 0x18, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x32, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x32, 0x31, 0x18, 0x26, 0x20, 0x01, 0x28, 0x07, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x32, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x32, 0x32, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x32, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x32, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x32, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x32, 0x34, 0x18, 0x61, 0x20, 0x01, 0x28, 0x06, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x32, 0x34, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x32, 0x35, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x34, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x32, 0x35, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x32, 0x36, 0x18, 0x3d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x34, 0x31, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x32, 0x36, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x36, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x33, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x36, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x36, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x32, 0x38, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x32, 0x38, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x32, 0x39, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x32, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x33, 0x30, 0x18, 0x28, 0x20, 0x01, 0x28, 0x06, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x33, 0x30, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x33, 0x31, 0x18, 0x56, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x33, 0x31, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x33, 0x32, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x33, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x33, 0x33, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x33, 0x33, 0x1a, 0x67, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x33, 0x35, 0x18, 0x05, 0x20, 0x02, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x33, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x33, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x33, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x33, 0x37, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x33, 0x37, 0x1a, 0xab, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x33, 0x38, 0x18, 0x0e, 0x20, 0x02, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x33, 0x38, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x33, 0x39, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x32, 0x38, 0x35, 0x31, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x33, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x34, 0x30, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x34, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x34, 0x31, 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x34, 0x31, 0x1a, 0xbb, 0x06, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x34, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x34, 0x32, 0x18, 0x09, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x32, 0x36, 0x30, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x34, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x34, 0x33, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x34, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x34, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x34, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x34, 0x35, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x34, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x34, 0x36, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x34, 0x36, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x34, 0x37, 0x18, 0x62, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x34, 0x37, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x34, 0x38, 0x18, 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x34, 0x38, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x34, 0x39, 0x18, 0x50, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x35, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x34, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x35, 0x30, 0x18, 0x34, 0x20, 0x01, 0x28, 0x06, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x35, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x35, 0x31, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x35, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x35, 0x32, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x35, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x35, 0x33, 0x18, 0x45, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x35, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x35, 0x34, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x35, 0x34, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x35, 0x35, 0x18, 0x49, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x32, 0x38, 0x30, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x35, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x35, 0x36, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x35, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x35, 0x37, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x35, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x35, 0x38, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x35, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x35, 0x39, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x35, 0x39, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x36, 0x30, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x32, 0x38, 0x33, 0x34, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x36, 0x30, 0x1a, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x35, 0x1a, 0xdd, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x36, 0x36, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x36, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x36, 0x37, 0x18, 0x37, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x36, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x36, 0x38, 0x18, 0x58, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x36, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x36, 0x39, 0x18, 0x38, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x36, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x37, 0x30, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x37, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x37, 0x31, 0x18, 0x39, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x37, 0x31, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x37, 0x32, 0x18, 0x55, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x37, 0x32, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x37, 0x33, 0x18, 0x60, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x33, 0x37, 0x33, 0x22, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x39, 0x34, 0x39, 0x22, 0x80, 0x12, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x35, 0x37, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x34, 0x37, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x34, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x34, 0x38, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x34, 0x38, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x34, 0x39, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x38, 0x38, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x34, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x35, 0x30, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x39, 0x31, 0x39, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x35, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x35, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x35, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x35, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x35, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x35, 0x33, 0x18, 0x31, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x35, 0x33, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x35, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x30, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x35, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x35, 0x35, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x35, 0x35, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x35, 0x36, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x35, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x35, 0x37, 0x18, 0x23, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x35, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x35, 0x38, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x35, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x35, 0x39, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x35, 0x39, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x36, 0x30, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x36, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x36, 0x31, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x36, 0x31, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x36, 0x32, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x36, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x36, 0x33, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x36, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x36, 0x34, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x36, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x36, 0x35, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x36, 0x35, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x36, 0x36, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x34, 0x37, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x36, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x36, 0x37, 0x18, 0x24, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x36, 0x37, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x36, 0x38, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x36, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x36, 0x39, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x36, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x37, 0x30, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x37, 0x30, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x37, 0x31, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x35, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x37, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x37, 0x32, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x37, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x37, 0x33, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x37, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x37, 0x34, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x37, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x37, 0x35, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x37, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x37, 0x36, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x37, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x37, 0x37, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x37, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x37, 0x38, 0x18, 0x22, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x37, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x37, 0x39, 0x18, 0x25, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x37, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x38, 0x30, 0x18, 0x26, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x38, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x38, 0x31, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x38, 0x31, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x38, 0x32, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x39, 0x32, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x38, 0x32, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x38, 0x33, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x38, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x38, 0x34, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x38, 0x34, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x38, 0x35, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x32, 0x39, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x38, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x38, 0x36, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x38, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x38, 0x37, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x38, 0x37, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x38, 0x38, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x38, 0x34, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x38, 0x38, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x38, 0x39, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x38, 0x36, 0x34, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x38, 0x39, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x39, 0x30, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x39, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x39, 0x31, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x39, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x39, 0x32, 0x18, 0x36, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x39, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x39, 0x33, 0x18, 0x37, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x39, 0x33, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x39, 0x34, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x39, 0x34, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x39, 0x35, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x39, 0x35, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x39, 0x36, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x35, 0x37, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x36, 0x39, 0x36, 0x22, 0xa3, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x37, 0x37, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x31, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x31, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x31, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x31, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x31, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x31, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x31, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x31, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x31, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x38, 0x38, 0x31, 0x34, 0x22, 0xfc, 0x03, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x37, 0x37, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x38, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x38, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x38, 0x37, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x38, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x38, 0x38, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x38, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x38, 0x39, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x38, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x39, 0x30, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x39, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x39, 0x31, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x39, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x39, 0x32, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x39, 0x32, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x39, 0x33, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x39, 0x33, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x39, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x37, 0x37, 0x34, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x39, 0x34, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x39, 0x35, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x39, 0x35, 0x2a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x2a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x2a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x2a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x2a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x2a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0xb8, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x37, 0x39, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x35, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x36, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x37, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x37, 0x37, 0x34, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x38, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x38, 0x22, 0xc2, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x37, 0x39, 0x37, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x37, 0x39, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x32, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x33, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x37, 0x39, 0x36, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x34, 0x22, 0xc6, 0x03, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x32, 0x35, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x32, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x31, 0x38, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x33, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x33, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x31, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x34, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x32, 0x30, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x36, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x37, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x32, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x37, 0x12, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x38, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x36, 0x38, 0x22, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x35, 0x39, 0x30, 0x22, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x35, 0x38, 0x37, 0x22, 0x49, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x33, 0x37, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x37, 0x35, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x37, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x37, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x33, 0x37, 0x36, 0x22, 0x49, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x34, 0x36, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x39, 0x36, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x39, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x39, 0x37, 0x18, 0x02, 0x20, 0x02, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x34, 0x39, 0x37, 0x22, 0xee, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x36, 0x38, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x39, 0x32, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x39, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x39, 0x33, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x39, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x39, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x39, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x39, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x39, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x39, 0x36, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x39, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x39, 0x37, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x39, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x39, 0x38, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x36, 0x39, 0x38, 0x22, 0xe6, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x33, 0x32, 0x30, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x37, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x30, 0x33, 0x33, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x37, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x38, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x33, 0x31, 0x39, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x39, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x30, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x32, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x33, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x30, 0x33, 0x33, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x35, 0x33, 0x22, 0x6e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x39, 0x34, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x35, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x35, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x35, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x35, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x35, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x35, 0x33, 0x22, 0x9d, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x31, 0x39, 0x32, 0x30, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x34, 0x35, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x31, 0x39, 0x30, 0x31, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x34, 0x35, 0x12, 0x46, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x34, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x31, 0x39, 0x34, 0x36, 0x22, 0xea, 0x06, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x36, 0x34, 0x33, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x33, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x37, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x38, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x39, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x38, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x30, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x31, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x33, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x34, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x35, 0x37, 0x38, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x34, 0x12, 0x44, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x35, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x36, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x36, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x37, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x37, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x38, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x38, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x39, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x39, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x30, 0x30, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x37, 0x30, 0x30, 0x22, 0xad, 0x07, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x31, 0x33, 0x33, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x37, 0x33, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x30, 0x31, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x37, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x37, 0x34, 0x18, 0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x37, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x37, 0x35, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x37, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x37, 0x36, 0x18, 0x02, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x37, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x37, 0x37, 0x18, 0x03, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x37, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x37, 0x38, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x37, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x37, 0x39, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x37, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x38, 0x30, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x31, 0x30, 0x39, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x38, 0x30, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x38, 0x31, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x39, 0x30, 0x38, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x38, 0x31, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x38, 0x32, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x31, 0x30, 0x37, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x38, 0x32, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x38, 0x33, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x31, 0x32, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x38, 0x33, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x38, 0x34, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x31, 0x32, 0x39, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x38, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x38, 0x35, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x38, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x38, 0x36, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x38, 0x36, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x38, 0x37, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x30, 0x31, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x38, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x38, 0x38, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x38, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x38, 0x39, 0x18, 0x12, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x38, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x39, 0x30, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x39, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x39, 0x31, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x39, 0x31, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x39, 0x32, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x38, 0x38, 0x31, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x39, 0x32, 0x22, 0xf8, 0x03, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x31, 0x30, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x34, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x34, 0x30, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x34, 0x31, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x31, 0x31, 0x31, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x34, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x34, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x34, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x34, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x34, 0x33, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x34, 0x34, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x31, 0x31, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x34, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x34, 0x35, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x34, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x34, 0x36, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x34, 0x36, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x34, 0x37, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x31, 0x33, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x34, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x34, 0x38, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x34, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x34, 0x39, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x34, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x30, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x31, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x6f, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x34, 0x36, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x32, 0x32, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x32, 0x35, 0x39, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x32, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x32, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x32, 0x33, 0x22, 0x67, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x36, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x38, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x38, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x38, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x38, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x38, 0x35, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x38, 0x35, 0x22, 0x49, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x34, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x31, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x31, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x31, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x31, 0x35, 0x22, 0xa3, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x34, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x30, 0x39, 0x18, 0x01, 0x20, 0x02, 0x28, 0x06, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x30, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x31, 0x30, 0x18, 0x04, 0x20, 0x03, 0x28, 0x06, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x31, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x31, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x31, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x31, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x31, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x31, 0x33, 0x18, 0x03, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x31, 0x33, 0x22, 0xc1, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x35, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x34, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x34, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x34, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x34, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x34, 0x37, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x34, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x34, 0x38, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x34, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x34, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x34, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x35, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x07, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x35, 0x30, 0x22, 0xdf, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x30, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x31, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x31, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x31, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x31, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x31, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x31, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x31, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x31, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x31, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x31, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x31, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x31, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x31, 0x37, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x31, 0x37, 0x22, 0x95, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x38, 0x38, 0x36, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x38, 0x38, 0x37, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x33, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x38, 0x38, 0x36, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x38, 0x38, 0x37, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x38, 0x38, 0x37, 0x1a, 0xae, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x38, 0x38, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x33, 0x32, 0x18, 0x02, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x33, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x33, 0x33, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x33, 0x33, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x33, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x38, 0x35, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x33, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x33, 0x35, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x33, 0x35, 0x22, 0xec, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x38, 0x36, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x36, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x36, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x36, 0x37, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x36, 0x37, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x36, 0x38, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x38, 0x36, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x36, 0x38, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x36, 0x39, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x38, 0x36, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x36, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x37, 0x30, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x38, 0x36, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x37, 0x30, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x37, 0x31, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x37, 0x31, 0x22, 0x2b, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x39, 0x32, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x31, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x31, 0x32, 0x22, 0x9b, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x30, 0x35, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x35, 0x34, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x35, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x35, 0x35, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x35, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x35, 0x36, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x35, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x35, 0x37, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x35, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x35, 0x38, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x35, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x35, 0x39, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x35, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x36, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x36, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x36, 0x31, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x36, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x36, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x36, 0x32, 0x22, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x38, 0x35, 0x37, 0x35, 0x22, 0xe6, 0x07, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x38, 0x34, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x34, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x34, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x34, 0x35, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x34, 0x35, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x34, 0x36, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x34, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x34, 0x37, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x34, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x34, 0x38, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x34, 0x38, 0x12, 0x44, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x34, 0x39, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x34, 0x39, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x35, 0x30, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x35, 0x30, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x35, 0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x35, 0x31, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x35, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x35, 0x32, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x35, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x35, 0x31, 0x31, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x35, 0x33, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x35, 0x34, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x35, 0x34, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x35, 0x35, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x35, 0x35, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x35, 0x36, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x35, 0x36, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x35, 0x37, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x35, 0x37, 0x12, 0x44, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x35, 0x38, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x35, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x35, 0x39, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x38, 0x35, 0x39, 0x22, 0x54, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x39, 0x31, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x30, 0x39, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x39, 0x32, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x30, 0x39, 0x22, 0xe9, 0x06, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x32, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x35, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x36, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x37, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x38, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x39, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x30, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x31, 0x39, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x30, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x31, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x31, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x32, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x32, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x32, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x33, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x32, 0x31, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x33, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x34, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x32, 0x38, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x35, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x37, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x38, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x38, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x39, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x35, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x36, 0x30, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x36, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x36, 0x31, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x36, 0x31, 0x42, 0x23, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0xf8, 0x01, 0x01, } var ( file_datasets_google_message4_benchmark_message4_1_proto_rawDescOnce sync.Once file_datasets_google_message4_benchmark_message4_1_proto_rawDescData = file_datasets_google_message4_benchmark_message4_1_proto_rawDesc ) func file_datasets_google_message4_benchmark_message4_1_proto_rawDescGZIP() []byte { file_datasets_google_message4_benchmark_message4_1_proto_rawDescOnce.Do(func() { file_datasets_google_message4_benchmark_message4_1_proto_rawDescData = protoimpl.X.CompressGZIP(file_datasets_google_message4_benchmark_message4_1_proto_rawDescData) }) return file_datasets_google_message4_benchmark_message4_1_proto_rawDescData } var file_datasets_google_message4_benchmark_message4_1_proto_msgTypes = make([]protoimpl.MessageInfo, 44) var file_datasets_google_message4_benchmark_message4_1_proto_goTypes = []interface{}{ (*Message2463)(nil), // 0: benchmarks.google_message4.Message2463 (*Message12686)(nil), // 1: benchmarks.google_message4.Message12686 (*Message11949)(nil), // 2: benchmarks.google_message4.Message11949 (*Message11975)(nil), // 3: benchmarks.google_message4.Message11975 (*Message7287)(nil), // 4: benchmarks.google_message4.Message7287 (*Message3061)(nil), // 5: benchmarks.google_message4.Message3061 (*Message12949)(nil), // 6: benchmarks.google_message4.Message12949 (*Message8572)(nil), // 7: benchmarks.google_message4.Message8572 (*Message8774)(nil), // 8: benchmarks.google_message4.Message8774 (*Message12776)(nil), // 9: benchmarks.google_message4.Message12776 (*Message12798)(nil), // 10: benchmarks.google_message4.Message12798 (*Message12797)(nil), // 11: benchmarks.google_message4.Message12797 (*Message12825)(nil), // 12: benchmarks.google_message4.Message12825 (*Message8590)(nil), // 13: benchmarks.google_message4.Message8590 (*Message8587)(nil), // 14: benchmarks.google_message4.Message8587 (*Message1374)(nil), // 15: benchmarks.google_message4.Message1374 (*Message2462)(nil), // 16: benchmarks.google_message4.Message2462 (*Message12685)(nil), // 17: benchmarks.google_message4.Message12685 (*Message10320)(nil), // 18: benchmarks.google_message4.Message10320 (*Message11947)(nil), // 19: benchmarks.google_message4.Message11947 (*Message11920)(nil), // 20: benchmarks.google_message4.Message11920 (*Message6643)(nil), // 21: benchmarks.google_message4.Message6643 (*Message6133)(nil), // 22: benchmarks.google_message4.Message6133 (*Message6109)(nil), // 23: benchmarks.google_message4.Message6109 (*Message3046)(nil), // 24: benchmarks.google_message4.Message3046 (*Message3060)(nil), // 25: benchmarks.google_message4.Message3060 (*Message3041)(nil), // 26: benchmarks.google_message4.Message3041 (*Message3040)(nil), // 27: benchmarks.google_message4.Message3040 (*Message3050)(nil), // 28: benchmarks.google_message4.Message3050 (*Message7905)(nil), // 29: benchmarks.google_message4.Message7905 (*Message3886)(nil), // 30: benchmarks.google_message4.Message3886 (*Message7864)(nil), // 31: benchmarks.google_message4.Message7864 (*Message3922)(nil), // 32: benchmarks.google_message4.Message3922 (*Message3052)(nil), // 33: benchmarks.google_message4.Message3052 (*Message8575)(nil), // 34: benchmarks.google_message4.Message8575 (*Message7843)(nil), // 35: benchmarks.google_message4.Message7843 (*Message3919)(nil), // 36: benchmarks.google_message4.Message3919 (*Message7929)(nil), // 37: benchmarks.google_message4.Message7929 (*Message3061_Message3062)(nil), // 38: benchmarks.google_message4.Message3061.Message3062 (*Message3061_Message3063)(nil), // 39: benchmarks.google_message4.Message3061.Message3063 (*Message3061_Message3064)(nil), // 40: benchmarks.google_message4.Message3061.Message3064 (*Message3061_Message3065)(nil), // 41: benchmarks.google_message4.Message3061.Message3065 (*Message3061_Message3066)(nil), // 42: benchmarks.google_message4.Message3061.Message3066 (*Message3886_Message3887)(nil), // 43: benchmarks.google_message4.Message3886.Message3887 (UnusedEnum)(0), // 44: benchmarks.google_message4.UnusedEnum (*UnusedEmptyMessage)(nil), // 45: benchmarks.google_message4.UnusedEmptyMessage (Enum7288)(0), // 46: benchmarks.google_message4.Enum7288 (Enum2834)(0), // 47: benchmarks.google_message4.Enum2834 (Enum2806)(0), // 48: benchmarks.google_message4.Enum2806 (Enum3476)(0), // 49: benchmarks.google_message4.Enum3476 (*Message12774)(nil), // 50: benchmarks.google_message4.Message12774 (*Message12796)(nil), // 51: benchmarks.google_message4.Message12796 (*Message12818)(nil), // 52: benchmarks.google_message4.Message12818 (*Message12819)(nil), // 53: benchmarks.google_message4.Message12819 (*Message12820)(nil), // 54: benchmarks.google_message4.Message12820 (*Message12821)(nil), // 55: benchmarks.google_message4.Message12821 (Enum10335)(0), // 56: benchmarks.google_message4.Enum10335 (*Message10319)(nil), // 57: benchmarks.google_message4.Message10319 (Enum10337)(0), // 58: benchmarks.google_message4.Enum10337 (Enum11901)(0), // 59: benchmarks.google_message4.Enum11901 (*Message6578)(nil), // 60: benchmarks.google_message4.Message6578 (*Message4016)(nil), // 61: benchmarks.google_message4.Message4016 (*Message5908)(nil), // 62: benchmarks.google_message4.Message5908 (*Message6107)(nil), // 63: benchmarks.google_message4.Message6107 (*Message6126)(nil), // 64: benchmarks.google_message4.Message6126 (*Message6129)(nil), // 65: benchmarks.google_message4.Message6129 (*Message5881)(nil), // 66: benchmarks.google_message4.Message5881 (Enum6111)(0), // 67: benchmarks.google_message4.Enum6111 (*Message6110)(nil), // 68: benchmarks.google_message4.Message6110 (Enum2593)(0), // 69: benchmarks.google_message4.Enum2593 (*Message7865)(nil), // 70: benchmarks.google_message4.Message7865 (*Message7511)(nil), // 71: benchmarks.google_message4.Message7511 (*Message3920)(nil), // 72: benchmarks.google_message4.Message3920 (*Message7919)(nil), // 73: benchmarks.google_message4.Message7919 (*Message7920)(nil), // 74: benchmarks.google_message4.Message7920 (*Message7921)(nil), // 75: benchmarks.google_message4.Message7921 (*Message7928)(nil), // 76: benchmarks.google_message4.Message7928 (Enum2851)(0), // 77: benchmarks.google_message4.Enum2851 (Enum2602)(0), // 78: benchmarks.google_message4.Enum2602 (*Message3850)(nil), // 79: benchmarks.google_message4.Message3850 } var file_datasets_google_message4_benchmark_message4_1_proto_depIdxs = []int32{ 16, // 0: benchmarks.google_message4.Message2463.field2498:type_name -> benchmarks.google_message4.Message2462 17, // 1: benchmarks.google_message4.Message12686.field12700:type_name -> benchmarks.google_message4.Message12685 18, // 2: benchmarks.google_message4.Message11975.field11994:type_name -> benchmarks.google_message4.Message10320 19, // 3: benchmarks.google_message4.Message11975.field11995:type_name -> benchmarks.google_message4.Message11947 20, // 4: benchmarks.google_message4.Message11975.field11996:type_name -> benchmarks.google_message4.Message11920 44, // 5: benchmarks.google_message4.Message11975.field12000:type_name -> benchmarks.google_message4.UnusedEnum 22, // 6: benchmarks.google_message4.Message7287.field7311:type_name -> benchmarks.google_message4.Message6133 45, // 7: benchmarks.google_message4.Message7287.field7312:type_name -> benchmarks.google_message4.UnusedEmptyMessage 21, // 8: benchmarks.google_message4.Message7287.field7314:type_name -> benchmarks.google_message4.Message6643 46, // 9: benchmarks.google_message4.Message7287.field7315:type_name -> benchmarks.google_message4.Enum7288 45, // 10: benchmarks.google_message4.Message7287.field7317:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 11: benchmarks.google_message4.Message7287.field7318:type_name -> benchmarks.google_message4.UnusedEmptyMessage 24, // 12: benchmarks.google_message4.Message3061.field3289:type_name -> benchmarks.google_message4.Message3046 24, // 13: benchmarks.google_message4.Message3061.field3290:type_name -> benchmarks.google_message4.Message3046 38, // 14: benchmarks.google_message4.Message3061.message3062:type_name -> benchmarks.google_message4.Message3061.Message3062 25, // 15: benchmarks.google_message4.Message3061.field3292:type_name -> benchmarks.google_message4.Message3060 39, // 16: benchmarks.google_message4.Message3061.message3063:type_name -> benchmarks.google_message4.Message3061.Message3063 47, // 17: benchmarks.google_message4.Message3061.field3296:type_name -> benchmarks.google_message4.Enum2834 28, // 18: benchmarks.google_message4.Message3061.field3302:type_name -> benchmarks.google_message4.Message3050 48, // 19: benchmarks.google_message4.Message3061.field3310:type_name -> benchmarks.google_message4.Enum2806 40, // 20: benchmarks.google_message4.Message3061.message3064:type_name -> benchmarks.google_message4.Message3061.Message3064 45, // 21: benchmarks.google_message4.Message3061.field3315:type_name -> benchmarks.google_message4.UnusedEmptyMessage 41, // 22: benchmarks.google_message4.Message3061.message3065:type_name -> benchmarks.google_message4.Message3061.Message3065 48, // 23: benchmarks.google_message4.Message3061.field3318:type_name -> benchmarks.google_message4.Enum2806 27, // 24: benchmarks.google_message4.Message3061.field3325:type_name -> benchmarks.google_message4.Message3040 26, // 25: benchmarks.google_message4.Message3061.field3326:type_name -> benchmarks.google_message4.Message3041 42, // 26: benchmarks.google_message4.Message3061.message3066:type_name -> benchmarks.google_message4.Message3061.Message3066 45, // 27: benchmarks.google_message4.Message3061.field3328:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 28: benchmarks.google_message4.Message3061.field3329:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 29: benchmarks.google_message4.Message3061.field3331:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 30: benchmarks.google_message4.Message3061.field3332:type_name -> benchmarks.google_message4.UnusedEmptyMessage 30, // 31: benchmarks.google_message4.Message8572.field8649:type_name -> benchmarks.google_message4.Message3886 36, // 32: benchmarks.google_message4.Message8572.field8650:type_name -> benchmarks.google_message4.Message3919 29, // 33: benchmarks.google_message4.Message8572.field8654:type_name -> benchmarks.google_message4.Message7905 45, // 34: benchmarks.google_message4.Message8572.field8656:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 35: benchmarks.google_message4.Message8572.field8660:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 36: benchmarks.google_message4.Message8572.field8662:type_name -> benchmarks.google_message4.UnusedEmptyMessage 49, // 37: benchmarks.google_message4.Message8572.field8666:type_name -> benchmarks.google_message4.Enum3476 45, // 38: benchmarks.google_message4.Message8572.field8668:type_name -> benchmarks.google_message4.UnusedEmptyMessage 33, // 39: benchmarks.google_message4.Message8572.field8671:type_name -> benchmarks.google_message4.Message3052 32, // 40: benchmarks.google_message4.Message8572.field8682:type_name -> benchmarks.google_message4.Message3922 45, // 41: benchmarks.google_message4.Message8572.field8683:type_name -> benchmarks.google_message4.UnusedEmptyMessage 37, // 42: benchmarks.google_message4.Message8572.field8685:type_name -> benchmarks.google_message4.Message7929 35, // 43: benchmarks.google_message4.Message8572.field8688:type_name -> benchmarks.google_message4.Message7843 31, // 44: benchmarks.google_message4.Message8572.field8689:type_name -> benchmarks.google_message4.Message7864 45, // 45: benchmarks.google_message4.Message8572.field8690:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 46: benchmarks.google_message4.Message8572.field8694:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 47: benchmarks.google_message4.Message8572.field8695:type_name -> benchmarks.google_message4.UnusedEmptyMessage 34, // 48: benchmarks.google_message4.Message8572.field8696:type_name -> benchmarks.google_message4.Message8575 45, // 49: benchmarks.google_message4.Message12776.field12793:type_name -> benchmarks.google_message4.UnusedEmptyMessage 50, // 50: benchmarks.google_message4.Message12776.field12794:type_name -> benchmarks.google_message4.Message12774 45, // 51: benchmarks.google_message4.Message12776.field12795:type_name -> benchmarks.google_message4.UnusedEmptyMessage 50, // 52: benchmarks.google_message4.Message12798.field12807:type_name -> benchmarks.google_message4.Message12774 51, // 53: benchmarks.google_message4.Message12797.field12802:type_name -> benchmarks.google_message4.Message12796 51, // 54: benchmarks.google_message4.Message12797.field12803:type_name -> benchmarks.google_message4.Message12796 52, // 55: benchmarks.google_message4.Message12825.field12862:type_name -> benchmarks.google_message4.Message12818 53, // 56: benchmarks.google_message4.Message12825.field12864:type_name -> benchmarks.google_message4.Message12819 54, // 57: benchmarks.google_message4.Message12825.field12865:type_name -> benchmarks.google_message4.Message12820 55, // 58: benchmarks.google_message4.Message12825.field12867:type_name -> benchmarks.google_message4.Message12821 45, // 59: benchmarks.google_message4.Message12825.field12868:type_name -> benchmarks.google_message4.UnusedEmptyMessage 56, // 60: benchmarks.google_message4.Message10320.field10347:type_name -> benchmarks.google_message4.Enum10335 57, // 61: benchmarks.google_message4.Message10320.field10348:type_name -> benchmarks.google_message4.Message10319 58, // 62: benchmarks.google_message4.Message10320.field10353:type_name -> benchmarks.google_message4.Enum10337 59, // 63: benchmarks.google_message4.Message11920.field11945:type_name -> benchmarks.google_message4.Enum11901 44, // 64: benchmarks.google_message4.Message11920.field11946:type_name -> benchmarks.google_message4.UnusedEnum 45, // 65: benchmarks.google_message4.Message6643.field6683:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 66: benchmarks.google_message4.Message6643.field6684:type_name -> benchmarks.google_message4.UnusedEmptyMessage 60, // 67: benchmarks.google_message4.Message6643.field6694:type_name -> benchmarks.google_message4.Message6578 44, // 68: benchmarks.google_message4.Message6643.field6695:type_name -> benchmarks.google_message4.UnusedEnum 45, // 69: benchmarks.google_message4.Message6643.field6697:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 70: benchmarks.google_message4.Message6643.field6698:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 71: benchmarks.google_message4.Message6643.field6699:type_name -> benchmarks.google_message4.UnusedEmptyMessage 61, // 72: benchmarks.google_message4.Message6133.field6173:type_name -> benchmarks.google_message4.Message4016 23, // 73: benchmarks.google_message4.Message6133.field6180:type_name -> benchmarks.google_message4.Message6109 62, // 74: benchmarks.google_message4.Message6133.field6181:type_name -> benchmarks.google_message4.Message5908 63, // 75: benchmarks.google_message4.Message6133.field6182:type_name -> benchmarks.google_message4.Message6107 64, // 76: benchmarks.google_message4.Message6133.field6183:type_name -> benchmarks.google_message4.Message6126 65, // 77: benchmarks.google_message4.Message6133.field6184:type_name -> benchmarks.google_message4.Message6129 61, // 78: benchmarks.google_message4.Message6133.field6187:type_name -> benchmarks.google_message4.Message4016 66, // 79: benchmarks.google_message4.Message6133.field6192:type_name -> benchmarks.google_message4.Message5881 67, // 80: benchmarks.google_message4.Message6109.field6141:type_name -> benchmarks.google_message4.Enum6111 68, // 81: benchmarks.google_message4.Message6109.field6144:type_name -> benchmarks.google_message4.Message6110 22, // 82: benchmarks.google_message4.Message6109.field6147:type_name -> benchmarks.google_message4.Message6133 69, // 83: benchmarks.google_message4.Message3046.field3222:type_name -> benchmarks.google_message4.Enum2593 43, // 84: benchmarks.google_message4.Message3886.message3887:type_name -> benchmarks.google_message4.Message3886.Message3887 70, // 85: benchmarks.google_message4.Message7864.field7868:type_name -> benchmarks.google_message4.Message7865 70, // 86: benchmarks.google_message4.Message7864.field7869:type_name -> benchmarks.google_message4.Message7865 70, // 87: benchmarks.google_message4.Message7864.field7870:type_name -> benchmarks.google_message4.Message7865 45, // 88: benchmarks.google_message4.Message7864.field7871:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 89: benchmarks.google_message4.Message7843.field7846:type_name -> benchmarks.google_message4.UnusedEmptyMessage 44, // 90: benchmarks.google_message4.Message7843.field7849:type_name -> benchmarks.google_message4.UnusedEnum 45, // 91: benchmarks.google_message4.Message7843.field7850:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 92: benchmarks.google_message4.Message7843.field7851:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 93: benchmarks.google_message4.Message7843.field7852:type_name -> benchmarks.google_message4.UnusedEmptyMessage 71, // 94: benchmarks.google_message4.Message7843.field7853:type_name -> benchmarks.google_message4.Message7511 45, // 95: benchmarks.google_message4.Message7843.field7854:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 96: benchmarks.google_message4.Message7843.field7855:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 97: benchmarks.google_message4.Message7843.field7856:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 98: benchmarks.google_message4.Message7843.field7857:type_name -> benchmarks.google_message4.UnusedEmptyMessage 44, // 99: benchmarks.google_message4.Message7843.field7858:type_name -> benchmarks.google_message4.UnusedEnum 72, // 100: benchmarks.google_message4.Message3919.field4009:type_name -> benchmarks.google_message4.Message3920 73, // 101: benchmarks.google_message4.Message7929.field7950:type_name -> benchmarks.google_message4.Message7919 45, // 102: benchmarks.google_message4.Message7929.field7951:type_name -> benchmarks.google_message4.UnusedEmptyMessage 74, // 103: benchmarks.google_message4.Message7929.field7952:type_name -> benchmarks.google_message4.Message7920 75, // 104: benchmarks.google_message4.Message7929.field7953:type_name -> benchmarks.google_message4.Message7921 76, // 105: benchmarks.google_message4.Message7929.field7954:type_name -> benchmarks.google_message4.Message7928 45, // 106: benchmarks.google_message4.Message7929.field7959:type_name -> benchmarks.google_message4.UnusedEmptyMessage 77, // 107: benchmarks.google_message4.Message3061.Message3063.field3339:type_name -> benchmarks.google_message4.Enum2851 78, // 108: benchmarks.google_message4.Message3061.Message3064.field3342:type_name -> benchmarks.google_message4.Enum2602 25, // 109: benchmarks.google_message4.Message3061.Message3064.field3347:type_name -> benchmarks.google_message4.Message3060 45, // 110: benchmarks.google_message4.Message3061.Message3064.field3348:type_name -> benchmarks.google_message4.UnusedEmptyMessage 28, // 111: benchmarks.google_message4.Message3061.Message3064.field3349:type_name -> benchmarks.google_message4.Message3050 48, // 112: benchmarks.google_message4.Message3061.Message3064.field3355:type_name -> benchmarks.google_message4.Enum2806 47, // 113: benchmarks.google_message4.Message3061.Message3064.field3360:type_name -> benchmarks.google_message4.Enum2834 45, // 114: benchmarks.google_message4.Message3061.Message3066.field3372:type_name -> benchmarks.google_message4.UnusedEmptyMessage 45, // 115: benchmarks.google_message4.Message3061.Message3066.field3373:type_name -> benchmarks.google_message4.UnusedEmptyMessage 79, // 116: benchmarks.google_message4.Message3886.Message3887.field3934:type_name -> benchmarks.google_message4.Message3850 117, // [117:117] is the sub-list for method output_type 117, // [117:117] is the sub-list for method input_type 117, // [117:117] is the sub-list for extension type_name 117, // [117:117] is the sub-list for extension extendee 0, // [0:117] is the sub-list for field type_name } func init() { file_datasets_google_message4_benchmark_message4_1_proto_init() } func file_datasets_google_message4_benchmark_message4_1_proto_init() { if File_datasets_google_message4_benchmark_message4_1_proto != nil { return } file_datasets_google_message4_benchmark_message4_2_proto_init() file_datasets_google_message4_benchmark_message4_3_proto_init() if !protoimpl.UnsafeEnabled { file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message2463); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12686); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message11949); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message11975); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7287); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3061); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12949); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8572); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8774); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12776); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12798); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12797); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12825); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8590); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8587); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message1374); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message2462); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12685); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10320); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message11947); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message11920); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6643); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6133); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6109); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3046); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3060); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3041); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3040); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3050); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7905); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3886); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7864); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3922); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3052); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message8575); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7843); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3919); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7929); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3061_Message3062); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3061_Message3063); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3061_Message3064); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3061_Message3065); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3061_Message3066); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_1_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3886_Message3887); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_datasets_google_message4_benchmark_message4_1_proto_rawDesc, NumEnums: 0, NumMessages: 44, NumExtensions: 0, NumServices: 0, }, GoTypes: file_datasets_google_message4_benchmark_message4_1_proto_goTypes, DependencyIndexes: file_datasets_google_message4_benchmark_message4_1_proto_depIdxs, MessageInfos: file_datasets_google_message4_benchmark_message4_1_proto_msgTypes, }.Build() File_datasets_google_message4_benchmark_message4_1_proto = out.File file_datasets_google_message4_benchmark_message4_1_proto_rawDesc = nil file_datasets_google_message4_benchmark_message4_1_proto_goTypes = nil file_datasets_google_message4_benchmark_message4_1_proto_depIdxs = nil } benchmark_message4_2.pb.go000066400000000000000000004601741411250152500360370ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/datasets/google_message4// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Code generated by protoc-gen-go. DO NOT EDIT. // source: datasets/google_message4/benchmark_message4_2.proto package google_message4 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Message12774 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12777 *uint32 `protobuf:"varint,1,opt,name=field12777" json:"field12777,omitempty"` Field12778 *uint32 `protobuf:"varint,2,opt,name=field12778" json:"field12778,omitempty"` Field12779 *uint32 `protobuf:"varint,3,opt,name=field12779" json:"field12779,omitempty"` Field12780 *uint32 `protobuf:"varint,4,opt,name=field12780" json:"field12780,omitempty"` Field12781 *uint32 `protobuf:"varint,5,opt,name=field12781" json:"field12781,omitempty"` Field12782 *bool `protobuf:"varint,6,opt,name=field12782" json:"field12782,omitempty"` } func (x *Message12774) Reset() { *x = Message12774{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12774) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12774) ProtoMessage() {} func (x *Message12774) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12774.ProtoReflect.Descriptor instead. func (*Message12774) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{0} } func (x *Message12774) GetField12777() uint32 { if x != nil && x.Field12777 != nil { return *x.Field12777 } return 0 } func (x *Message12774) GetField12778() uint32 { if x != nil && x.Field12778 != nil { return *x.Field12778 } return 0 } func (x *Message12774) GetField12779() uint32 { if x != nil && x.Field12779 != nil { return *x.Field12779 } return 0 } func (x *Message12774) GetField12780() uint32 { if x != nil && x.Field12780 != nil { return *x.Field12780 } return 0 } func (x *Message12774) GetField12781() uint32 { if x != nil && x.Field12781 != nil { return *x.Field12781 } return 0 } func (x *Message12774) GetField12782() bool { if x != nil && x.Field12782 != nil { return *x.Field12782 } return false } type Message12796 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12800 []uint64 `protobuf:"fixed64,1,rep,name=field12800" json:"field12800,omitempty"` Field12801 *uint64 `protobuf:"varint,2,opt,name=field12801" json:"field12801,omitempty"` } func (x *Message12796) Reset() { *x = Message12796{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12796) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12796) ProtoMessage() {} func (x *Message12796) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12796.ProtoReflect.Descriptor instead. func (*Message12796) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{1} } func (x *Message12796) GetField12800() []uint64 { if x != nil { return x.Field12800 } return nil } func (x *Message12796) GetField12801() uint64 { if x != nil && x.Field12801 != nil { return *x.Field12801 } return 0 } type Message12821 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12848 *int32 `protobuf:"varint,1,opt,name=field12848" json:"field12848,omitempty"` Field12849 *int32 `protobuf:"varint,2,opt,name=field12849" json:"field12849,omitempty"` Field12850 *int32 `protobuf:"varint,3,opt,name=field12850" json:"field12850,omitempty"` Field12851 *int32 `protobuf:"varint,4,opt,name=field12851" json:"field12851,omitempty"` Field12852 *int32 `protobuf:"varint,5,opt,name=field12852" json:"field12852,omitempty"` } func (x *Message12821) Reset() { *x = Message12821{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12821) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12821) ProtoMessage() {} func (x *Message12821) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12821.ProtoReflect.Descriptor instead. func (*Message12821) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{2} } func (x *Message12821) GetField12848() int32 { if x != nil && x.Field12848 != nil { return *x.Field12848 } return 0 } func (x *Message12821) GetField12849() int32 { if x != nil && x.Field12849 != nil { return *x.Field12849 } return 0 } func (x *Message12821) GetField12850() int32 { if x != nil && x.Field12850 != nil { return *x.Field12850 } return 0 } func (x *Message12821) GetField12851() int32 { if x != nil && x.Field12851 != nil { return *x.Field12851 } return 0 } func (x *Message12821) GetField12852() int32 { if x != nil && x.Field12852 != nil { return *x.Field12852 } return 0 } type Message12820 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12840 *int32 `protobuf:"varint,1,opt,name=field12840" json:"field12840,omitempty"` Field12841 *int32 `protobuf:"varint,2,opt,name=field12841" json:"field12841,omitempty"` Field12842 *int32 `protobuf:"varint,3,opt,name=field12842" json:"field12842,omitempty"` Field12843 *int32 `protobuf:"varint,8,opt,name=field12843" json:"field12843,omitempty"` Field12844 *int32 `protobuf:"varint,4,opt,name=field12844" json:"field12844,omitempty"` Field12845 *int32 `protobuf:"varint,5,opt,name=field12845" json:"field12845,omitempty"` Field12846 *int32 `protobuf:"varint,6,opt,name=field12846" json:"field12846,omitempty"` Field12847 *int32 `protobuf:"varint,7,opt,name=field12847" json:"field12847,omitempty"` } func (x *Message12820) Reset() { *x = Message12820{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12820) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12820) ProtoMessage() {} func (x *Message12820) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12820.ProtoReflect.Descriptor instead. func (*Message12820) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{3} } func (x *Message12820) GetField12840() int32 { if x != nil && x.Field12840 != nil { return *x.Field12840 } return 0 } func (x *Message12820) GetField12841() int32 { if x != nil && x.Field12841 != nil { return *x.Field12841 } return 0 } func (x *Message12820) GetField12842() int32 { if x != nil && x.Field12842 != nil { return *x.Field12842 } return 0 } func (x *Message12820) GetField12843() int32 { if x != nil && x.Field12843 != nil { return *x.Field12843 } return 0 } func (x *Message12820) GetField12844() int32 { if x != nil && x.Field12844 != nil { return *x.Field12844 } return 0 } func (x *Message12820) GetField12845() int32 { if x != nil && x.Field12845 != nil { return *x.Field12845 } return 0 } func (x *Message12820) GetField12846() int32 { if x != nil && x.Field12846 != nil { return *x.Field12846 } return 0 } func (x *Message12820) GetField12847() int32 { if x != nil && x.Field12847 != nil { return *x.Field12847 } return 0 } type Message12819 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12834 *float64 `protobuf:"fixed64,1,opt,name=field12834" json:"field12834,omitempty"` Field12835 *float64 `protobuf:"fixed64,2,opt,name=field12835" json:"field12835,omitempty"` Field12836 *float64 `protobuf:"fixed64,3,opt,name=field12836" json:"field12836,omitempty"` Field12837 *float64 `protobuf:"fixed64,4,opt,name=field12837" json:"field12837,omitempty"` Field12838 *float64 `protobuf:"fixed64,5,opt,name=field12838" json:"field12838,omitempty"` Field12839 *float64 `protobuf:"fixed64,6,opt,name=field12839" json:"field12839,omitempty"` } func (x *Message12819) Reset() { *x = Message12819{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12819) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12819) ProtoMessage() {} func (x *Message12819) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12819.ProtoReflect.Descriptor instead. func (*Message12819) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{4} } func (x *Message12819) GetField12834() float64 { if x != nil && x.Field12834 != nil { return *x.Field12834 } return 0 } func (x *Message12819) GetField12835() float64 { if x != nil && x.Field12835 != nil { return *x.Field12835 } return 0 } func (x *Message12819) GetField12836() float64 { if x != nil && x.Field12836 != nil { return *x.Field12836 } return 0 } func (x *Message12819) GetField12837() float64 { if x != nil && x.Field12837 != nil { return *x.Field12837 } return 0 } func (x *Message12819) GetField12838() float64 { if x != nil && x.Field12838 != nil { return *x.Field12838 } return 0 } func (x *Message12819) GetField12839() float64 { if x != nil && x.Field12839 != nil { return *x.Field12839 } return 0 } type Message12818 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12829 *uint64 `protobuf:"varint,1,opt,name=field12829" json:"field12829,omitempty"` Field12830 *int32 `protobuf:"varint,2,opt,name=field12830" json:"field12830,omitempty"` Field12831 *int32 `protobuf:"varint,3,opt,name=field12831" json:"field12831,omitempty"` Field12832 *int32 `protobuf:"varint,5,opt,name=field12832" json:"field12832,omitempty"` Field12833 []*Message12817 `protobuf:"bytes,4,rep,name=field12833" json:"field12833,omitempty"` } func (x *Message12818) Reset() { *x = Message12818{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12818) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12818) ProtoMessage() {} func (x *Message12818) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12818.ProtoReflect.Descriptor instead. func (*Message12818) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{5} } func (x *Message12818) GetField12829() uint64 { if x != nil && x.Field12829 != nil { return *x.Field12829 } return 0 } func (x *Message12818) GetField12830() int32 { if x != nil && x.Field12830 != nil { return *x.Field12830 } return 0 } func (x *Message12818) GetField12831() int32 { if x != nil && x.Field12831 != nil { return *x.Field12831 } return 0 } func (x *Message12818) GetField12832() int32 { if x != nil && x.Field12832 != nil { return *x.Field12832 } return 0 } func (x *Message12818) GetField12833() []*Message12817 { if x != nil { return x.Field12833 } return nil } type Message10319 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field10340 *Enum10325 `protobuf:"varint,1,opt,name=field10340,enum=benchmarks.google_message4.Enum10325" json:"field10340,omitempty"` Field10341 *int32 `protobuf:"varint,4,opt,name=field10341" json:"field10341,omitempty"` Field10342 *int32 `protobuf:"varint,5,opt,name=field10342" json:"field10342,omitempty"` Field10343 []byte `protobuf:"bytes,3,opt,name=field10343" json:"field10343,omitempty"` Field10344 *string `protobuf:"bytes,2,opt,name=field10344" json:"field10344,omitempty"` Field10345 *string `protobuf:"bytes,6,opt,name=field10345" json:"field10345,omitempty"` Field10346 *string `protobuf:"bytes,7,opt,name=field10346" json:"field10346,omitempty"` } func (x *Message10319) Reset() { *x = Message10319{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message10319) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message10319) ProtoMessage() {} func (x *Message10319) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message10319.ProtoReflect.Descriptor instead. func (*Message10319) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{6} } func (x *Message10319) GetField10340() Enum10325 { if x != nil && x.Field10340 != nil { return *x.Field10340 } return Enum10325_ENUM_VALUE10326 } func (x *Message10319) GetField10341() int32 { if x != nil && x.Field10341 != nil { return *x.Field10341 } return 0 } func (x *Message10319) GetField10342() int32 { if x != nil && x.Field10342 != nil { return *x.Field10342 } return 0 } func (x *Message10319) GetField10343() []byte { if x != nil { return x.Field10343 } return nil } func (x *Message10319) GetField10344() string { if x != nil && x.Field10344 != nil { return *x.Field10344 } return "" } func (x *Message10319) GetField10345() string { if x != nil && x.Field10345 != nil { return *x.Field10345 } return "" } func (x *Message10319) GetField10346() string { if x != nil && x.Field10346 != nil { return *x.Field10346 } return "" } type Message6578 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6632 *Enum6579 `protobuf:"varint,1,opt,name=field6632,enum=benchmarks.google_message4.Enum6579" json:"field6632,omitempty"` Field6633 *Enum6588 `protobuf:"varint,2,opt,name=field6633,enum=benchmarks.google_message4.Enum6588" json:"field6633,omitempty"` } func (x *Message6578) Reset() { *x = Message6578{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6578) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6578) ProtoMessage() {} func (x *Message6578) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6578.ProtoReflect.Descriptor instead. func (*Message6578) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{7} } func (x *Message6578) GetField6632() Enum6579 { if x != nil && x.Field6632 != nil { return *x.Field6632 } return Enum6579_ENUM_VALUE6580 } func (x *Message6578) GetField6633() Enum6588 { if x != nil && x.Field6633 != nil { return *x.Field6633 } return Enum6588_ENUM_VALUE6589 } type Message6126 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6152 *string `protobuf:"bytes,1,req,name=field6152" json:"field6152,omitempty"` Field6153 []*Message6127 `protobuf:"bytes,9,rep,name=field6153" json:"field6153,omitempty"` Field6154 *int32 `protobuf:"varint,14,opt,name=field6154" json:"field6154,omitempty"` Field6155 []byte `protobuf:"bytes,10,opt,name=field6155" json:"field6155,omitempty"` Field6156 *Message6024 `protobuf:"bytes,12,opt,name=field6156" json:"field6156,omitempty"` Field6157 *int32 `protobuf:"varint,4,opt,name=field6157" json:"field6157,omitempty"` Field6158 *string `protobuf:"bytes,5,opt,name=field6158" json:"field6158,omitempty"` Field6159 *int32 `protobuf:"varint,6,opt,name=field6159" json:"field6159,omitempty"` Field6160 []int32 `protobuf:"varint,2,rep,name=field6160" json:"field6160,omitempty"` Field6161 []int32 `protobuf:"varint,3,rep,name=field6161" json:"field6161,omitempty"` Field6162 []*Message6052 `protobuf:"bytes,7,rep,name=field6162" json:"field6162,omitempty"` Field6163 []*UnusedEmptyMessage `protobuf:"bytes,11,rep,name=field6163" json:"field6163,omitempty"` Field6164 *Enum6065 `protobuf:"varint,15,opt,name=field6164,enum=benchmarks.google_message4.Enum6065" json:"field6164,omitempty"` Field6165 []*Message6127 `protobuf:"bytes,8,rep,name=field6165" json:"field6165,omitempty"` Field6166 *bool `protobuf:"varint,13,opt,name=field6166" json:"field6166,omitempty"` Field6167 *bool `protobuf:"varint,16,opt,name=field6167" json:"field6167,omitempty"` Field6168 *bool `protobuf:"varint,18,opt,name=field6168" json:"field6168,omitempty"` Field6169 []*Message6054 `protobuf:"bytes,17,rep,name=field6169" json:"field6169,omitempty"` Field6170 *int32 `protobuf:"varint,19,opt,name=field6170" json:"field6170,omitempty"` } func (x *Message6126) Reset() { *x = Message6126{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6126) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6126) ProtoMessage() {} func (x *Message6126) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6126.ProtoReflect.Descriptor instead. func (*Message6126) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{8} } func (x *Message6126) GetField6152() string { if x != nil && x.Field6152 != nil { return *x.Field6152 } return "" } func (x *Message6126) GetField6153() []*Message6127 { if x != nil { return x.Field6153 } return nil } func (x *Message6126) GetField6154() int32 { if x != nil && x.Field6154 != nil { return *x.Field6154 } return 0 } func (x *Message6126) GetField6155() []byte { if x != nil { return x.Field6155 } return nil } func (x *Message6126) GetField6156() *Message6024 { if x != nil { return x.Field6156 } return nil } func (x *Message6126) GetField6157() int32 { if x != nil && x.Field6157 != nil { return *x.Field6157 } return 0 } func (x *Message6126) GetField6158() string { if x != nil && x.Field6158 != nil { return *x.Field6158 } return "" } func (x *Message6126) GetField6159() int32 { if x != nil && x.Field6159 != nil { return *x.Field6159 } return 0 } func (x *Message6126) GetField6160() []int32 { if x != nil { return x.Field6160 } return nil } func (x *Message6126) GetField6161() []int32 { if x != nil { return x.Field6161 } return nil } func (x *Message6126) GetField6162() []*Message6052 { if x != nil { return x.Field6162 } return nil } func (x *Message6126) GetField6163() []*UnusedEmptyMessage { if x != nil { return x.Field6163 } return nil } func (x *Message6126) GetField6164() Enum6065 { if x != nil && x.Field6164 != nil { return *x.Field6164 } return Enum6065_ENUM_VALUE6066 } func (x *Message6126) GetField6165() []*Message6127 { if x != nil { return x.Field6165 } return nil } func (x *Message6126) GetField6166() bool { if x != nil && x.Field6166 != nil { return *x.Field6166 } return false } func (x *Message6126) GetField6167() bool { if x != nil && x.Field6167 != nil { return *x.Field6167 } return false } func (x *Message6126) GetField6168() bool { if x != nil && x.Field6168 != nil { return *x.Field6168 } return false } func (x *Message6126) GetField6169() []*Message6054 { if x != nil { return x.Field6169 } return nil } func (x *Message6126) GetField6170() int32 { if x != nil && x.Field6170 != nil { return *x.Field6170 } return 0 } type Message5881 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field5897 *float64 `protobuf:"fixed64,1,req,name=field5897" json:"field5897,omitempty"` Field5898 *string `protobuf:"bytes,5,opt,name=field5898" json:"field5898,omitempty"` Field5899 *Message5861 `protobuf:"bytes,2,opt,name=field5899" json:"field5899,omitempty"` Field5900 *UnusedEmptyMessage `protobuf:"bytes,3,opt,name=field5900" json:"field5900,omitempty"` Field5901 *Message5867 `protobuf:"bytes,4,opt,name=field5901" json:"field5901,omitempty"` Field5902 *Message5880 `protobuf:"bytes,6,opt,name=field5902" json:"field5902,omitempty"` } func (x *Message5881) Reset() { *x = Message5881{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message5881) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message5881) ProtoMessage() {} func (x *Message5881) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message5881.ProtoReflect.Descriptor instead. func (*Message5881) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{9} } func (x *Message5881) GetField5897() float64 { if x != nil && x.Field5897 != nil { return *x.Field5897 } return 0 } func (x *Message5881) GetField5898() string { if x != nil && x.Field5898 != nil { return *x.Field5898 } return "" } func (x *Message5881) GetField5899() *Message5861 { if x != nil { return x.Field5899 } return nil } func (x *Message5881) GetField5900() *UnusedEmptyMessage { if x != nil { return x.Field5900 } return nil } func (x *Message5881) GetField5901() *Message5867 { if x != nil { return x.Field5901 } return nil } func (x *Message5881) GetField5902() *Message5880 { if x != nil { return x.Field5902 } return nil } type Message6110 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message6110) Reset() { *x = Message6110{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6110) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6110) ProtoMessage() {} func (x *Message6110) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6110.ProtoReflect.Descriptor instead. func (*Message6110) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{10} } type Message6107 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6134 *Message4016 `protobuf:"bytes,1,opt,name=field6134" json:"field6134,omitempty"` Field6135 *int32 `protobuf:"varint,2,opt,name=field6135" json:"field6135,omitempty"` Field6136 *string `protobuf:"bytes,3,opt,name=field6136" json:"field6136,omitempty"` Field6137 []int32 `protobuf:"varint,4,rep,name=field6137" json:"field6137,omitempty"` Field6138 *int32 `protobuf:"varint,5,opt,name=field6138" json:"field6138,omitempty"` Field6139 []*Message6108 `protobuf:"bytes,6,rep,name=field6139" json:"field6139,omitempty"` } func (x *Message6107) Reset() { *x = Message6107{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6107) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6107) ProtoMessage() {} func (x *Message6107) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6107.ProtoReflect.Descriptor instead. func (*Message6107) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{11} } func (x *Message6107) GetField6134() *Message4016 { if x != nil { return x.Field6134 } return nil } func (x *Message6107) GetField6135() int32 { if x != nil && x.Field6135 != nil { return *x.Field6135 } return 0 } func (x *Message6107) GetField6136() string { if x != nil && x.Field6136 != nil { return *x.Field6136 } return "" } func (x *Message6107) GetField6137() []int32 { if x != nil { return x.Field6137 } return nil } func (x *Message6107) GetField6138() int32 { if x != nil && x.Field6138 != nil { return *x.Field6138 } return 0 } func (x *Message6107) GetField6139() []*Message6108 { if x != nil { return x.Field6139 } return nil } type Message6129 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6171 *Enum6130 `protobuf:"varint,1,req,name=field6171,enum=benchmarks.google_message4.Enum6130" json:"field6171,omitempty"` Field6172 *string `protobuf:"bytes,2,req,name=field6172" json:"field6172,omitempty"` } func (x *Message6129) Reset() { *x = Message6129{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6129) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6129) ProtoMessage() {} func (x *Message6129) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6129.ProtoReflect.Descriptor instead. func (*Message6129) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{12} } func (x *Message6129) GetField6171() Enum6130 { if x != nil && x.Field6171 != nil { return *x.Field6171 } return Enum6130_ENUM_VALUE6131 } func (x *Message6129) GetField6172() string { if x != nil && x.Field6172 != nil { return *x.Field6172 } return "" } type Message5908 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field5971 *string `protobuf:"bytes,1,opt,name=field5971" json:"field5971,omitempty"` Field5972 *int32 `protobuf:"varint,2,opt,name=field5972" json:"field5972,omitempty"` Field5973 *int32 `protobuf:"varint,3,opt,name=field5973" json:"field5973,omitempty"` Field5974 *Enum5909 `protobuf:"varint,45,opt,name=field5974,enum=benchmarks.google_message4.Enum5909" json:"field5974,omitempty"` Field5975 *Enum5912 `protobuf:"varint,4,opt,name=field5975,enum=benchmarks.google_message4.Enum5912" json:"field5975,omitempty"` Field5976 *uint32 `protobuf:"fixed32,50,opt,name=field5976" json:"field5976,omitempty"` Field5977 *uint32 `protobuf:"fixed32,5,opt,name=field5977" json:"field5977,omitempty"` Field5978 *uint32 `protobuf:"fixed32,6,opt,name=field5978" json:"field5978,omitempty"` Field5979 *string `protobuf:"bytes,7,opt,name=field5979" json:"field5979,omitempty"` Field5980 *Enum5915 `protobuf:"varint,8,opt,name=field5980,enum=benchmarks.google_message4.Enum5915" json:"field5980,omitempty"` Field5981 *Message5903 `protobuf:"bytes,9,opt,name=field5981" json:"field5981,omitempty"` Field5982 *Message5903 `protobuf:"bytes,10,opt,name=field5982" json:"field5982,omitempty"` Field5983 *Enum5920 `protobuf:"varint,11,opt,name=field5983,enum=benchmarks.google_message4.Enum5920" json:"field5983,omitempty"` Field5984 *Enum5923 `protobuf:"varint,40,opt,name=field5984,enum=benchmarks.google_message4.Enum5923" json:"field5984,omitempty"` Field5985 *Message5903 `protobuf:"bytes,41,opt,name=field5985" json:"field5985,omitempty"` Field5986 *Message5903 `protobuf:"bytes,42,opt,name=field5986" json:"field5986,omitempty"` Field5987 *Enum5928 `protobuf:"varint,47,opt,name=field5987,enum=benchmarks.google_message4.Enum5928" json:"field5987,omitempty"` Field5988 *bool `protobuf:"varint,48,opt,name=field5988" json:"field5988,omitempty"` Field5989 []uint32 `protobuf:"fixed32,49,rep,name=field5989" json:"field5989,omitempty"` Field5990 *string `protobuf:"bytes,12,opt,name=field5990" json:"field5990,omitempty"` Field5991 *Message5903 `protobuf:"bytes,13,opt,name=field5991" json:"field5991,omitempty"` Field5992 *Message5903 `protobuf:"bytes,14,opt,name=field5992" json:"field5992,omitempty"` Field5993 *Message5903 `protobuf:"bytes,15,opt,name=field5993" json:"field5993,omitempty"` Field5994 *Message5903 `protobuf:"bytes,16,opt,name=field5994" json:"field5994,omitempty"` Field5995 *Message5903 `protobuf:"bytes,32,opt,name=field5995" json:"field5995,omitempty"` Field5996 *Message5903 `protobuf:"bytes,33,opt,name=field5996" json:"field5996,omitempty"` Field5997 *Message5903 `protobuf:"bytes,34,opt,name=field5997" json:"field5997,omitempty"` Field5998 *Message5903 `protobuf:"bytes,35,opt,name=field5998" json:"field5998,omitempty"` Field5999 *Enum5931 `protobuf:"varint,17,opt,name=field5999,enum=benchmarks.google_message4.Enum5931" json:"field5999,omitempty"` Field6000 *Enum5935 `protobuf:"varint,18,opt,name=field6000,enum=benchmarks.google_message4.Enum5935" json:"field6000,omitempty"` Field6001 *Enum5939 `protobuf:"varint,36,opt,name=field6001,enum=benchmarks.google_message4.Enum5939" json:"field6001,omitempty"` Field6002 *Enum5939 `protobuf:"varint,37,opt,name=field6002,enum=benchmarks.google_message4.Enum5939" json:"field6002,omitempty"` Field6003 []int32 `protobuf:"varint,19,rep,name=field6003" json:"field6003,omitempty"` Field6004 *uint32 `protobuf:"varint,20,opt,name=field6004" json:"field6004,omitempty"` Field6005 *uint32 `protobuf:"varint,21,opt,name=field6005" json:"field6005,omitempty"` Field6006 *uint32 `protobuf:"varint,22,opt,name=field6006" json:"field6006,omitempty"` Field6007 *uint32 `protobuf:"varint,23,opt,name=field6007" json:"field6007,omitempty"` Field6008 *Enum5946 `protobuf:"varint,24,opt,name=field6008,enum=benchmarks.google_message4.Enum5946" json:"field6008,omitempty"` Field6009 *Enum5946 `protobuf:"varint,25,opt,name=field6009,enum=benchmarks.google_message4.Enum5946" json:"field6009,omitempty"` Field6010 *Enum5946 `protobuf:"varint,26,opt,name=field6010,enum=benchmarks.google_message4.Enum5946" json:"field6010,omitempty"` Field6011 *Enum5946 `protobuf:"varint,27,opt,name=field6011,enum=benchmarks.google_message4.Enum5946" json:"field6011,omitempty"` Field6012 *uint32 `protobuf:"fixed32,28,opt,name=field6012" json:"field6012,omitempty"` Field6013 *uint32 `protobuf:"fixed32,29,opt,name=field6013" json:"field6013,omitempty"` Field6014 *uint32 `protobuf:"fixed32,30,opt,name=field6014" json:"field6014,omitempty"` Field6015 *uint32 `protobuf:"fixed32,31,opt,name=field6015" json:"field6015,omitempty"` Field6016 *int32 `protobuf:"varint,38,opt,name=field6016" json:"field6016,omitempty"` Field6017 *float32 `protobuf:"fixed32,39,opt,name=field6017" json:"field6017,omitempty"` Field6018 *Enum5957 `protobuf:"varint,43,opt,name=field6018,enum=benchmarks.google_message4.Enum5957" json:"field6018,omitempty"` Field6019 *Message5907 `protobuf:"bytes,44,opt,name=field6019" json:"field6019,omitempty"` Field6020 *Enum5962 `protobuf:"varint,46,opt,name=field6020,enum=benchmarks.google_message4.Enum5962" json:"field6020,omitempty"` } func (x *Message5908) Reset() { *x = Message5908{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message5908) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message5908) ProtoMessage() {} func (x *Message5908) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message5908.ProtoReflect.Descriptor instead. func (*Message5908) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{13} } func (x *Message5908) GetField5971() string { if x != nil && x.Field5971 != nil { return *x.Field5971 } return "" } func (x *Message5908) GetField5972() int32 { if x != nil && x.Field5972 != nil { return *x.Field5972 } return 0 } func (x *Message5908) GetField5973() int32 { if x != nil && x.Field5973 != nil { return *x.Field5973 } return 0 } func (x *Message5908) GetField5974() Enum5909 { if x != nil && x.Field5974 != nil { return *x.Field5974 } return Enum5909_ENUM_VALUE5910 } func (x *Message5908) GetField5975() Enum5912 { if x != nil && x.Field5975 != nil { return *x.Field5975 } return Enum5912_ENUM_VALUE5913 } func (x *Message5908) GetField5976() uint32 { if x != nil && x.Field5976 != nil { return *x.Field5976 } return 0 } func (x *Message5908) GetField5977() uint32 { if x != nil && x.Field5977 != nil { return *x.Field5977 } return 0 } func (x *Message5908) GetField5978() uint32 { if x != nil && x.Field5978 != nil { return *x.Field5978 } return 0 } func (x *Message5908) GetField5979() string { if x != nil && x.Field5979 != nil { return *x.Field5979 } return "" } func (x *Message5908) GetField5980() Enum5915 { if x != nil && x.Field5980 != nil { return *x.Field5980 } return Enum5915_ENUM_VALUE5916 } func (x *Message5908) GetField5981() *Message5903 { if x != nil { return x.Field5981 } return nil } func (x *Message5908) GetField5982() *Message5903 { if x != nil { return x.Field5982 } return nil } func (x *Message5908) GetField5983() Enum5920 { if x != nil && x.Field5983 != nil { return *x.Field5983 } return Enum5920_ENUM_VALUE5921 } func (x *Message5908) GetField5984() Enum5923 { if x != nil && x.Field5984 != nil { return *x.Field5984 } return Enum5923_ENUM_VALUE5924 } func (x *Message5908) GetField5985() *Message5903 { if x != nil { return x.Field5985 } return nil } func (x *Message5908) GetField5986() *Message5903 { if x != nil { return x.Field5986 } return nil } func (x *Message5908) GetField5987() Enum5928 { if x != nil && x.Field5987 != nil { return *x.Field5987 } return Enum5928_ENUM_VALUE5929 } func (x *Message5908) GetField5988() bool { if x != nil && x.Field5988 != nil { return *x.Field5988 } return false } func (x *Message5908) GetField5989() []uint32 { if x != nil { return x.Field5989 } return nil } func (x *Message5908) GetField5990() string { if x != nil && x.Field5990 != nil { return *x.Field5990 } return "" } func (x *Message5908) GetField5991() *Message5903 { if x != nil { return x.Field5991 } return nil } func (x *Message5908) GetField5992() *Message5903 { if x != nil { return x.Field5992 } return nil } func (x *Message5908) GetField5993() *Message5903 { if x != nil { return x.Field5993 } return nil } func (x *Message5908) GetField5994() *Message5903 { if x != nil { return x.Field5994 } return nil } func (x *Message5908) GetField5995() *Message5903 { if x != nil { return x.Field5995 } return nil } func (x *Message5908) GetField5996() *Message5903 { if x != nil { return x.Field5996 } return nil } func (x *Message5908) GetField5997() *Message5903 { if x != nil { return x.Field5997 } return nil } func (x *Message5908) GetField5998() *Message5903 { if x != nil { return x.Field5998 } return nil } func (x *Message5908) GetField5999() Enum5931 { if x != nil && x.Field5999 != nil { return *x.Field5999 } return Enum5931_ENUM_VALUE5932 } func (x *Message5908) GetField6000() Enum5935 { if x != nil && x.Field6000 != nil { return *x.Field6000 } return Enum5935_ENUM_VALUE5936 } func (x *Message5908) GetField6001() Enum5939 { if x != nil && x.Field6001 != nil { return *x.Field6001 } return Enum5939_ENUM_VALUE5940 } func (x *Message5908) GetField6002() Enum5939 { if x != nil && x.Field6002 != nil { return *x.Field6002 } return Enum5939_ENUM_VALUE5940 } func (x *Message5908) GetField6003() []int32 { if x != nil { return x.Field6003 } return nil } func (x *Message5908) GetField6004() uint32 { if x != nil && x.Field6004 != nil { return *x.Field6004 } return 0 } func (x *Message5908) GetField6005() uint32 { if x != nil && x.Field6005 != nil { return *x.Field6005 } return 0 } func (x *Message5908) GetField6006() uint32 { if x != nil && x.Field6006 != nil { return *x.Field6006 } return 0 } func (x *Message5908) GetField6007() uint32 { if x != nil && x.Field6007 != nil { return *x.Field6007 } return 0 } func (x *Message5908) GetField6008() Enum5946 { if x != nil && x.Field6008 != nil { return *x.Field6008 } return Enum5946_ENUM_VALUE5947 } func (x *Message5908) GetField6009() Enum5946 { if x != nil && x.Field6009 != nil { return *x.Field6009 } return Enum5946_ENUM_VALUE5947 } func (x *Message5908) GetField6010() Enum5946 { if x != nil && x.Field6010 != nil { return *x.Field6010 } return Enum5946_ENUM_VALUE5947 } func (x *Message5908) GetField6011() Enum5946 { if x != nil && x.Field6011 != nil { return *x.Field6011 } return Enum5946_ENUM_VALUE5947 } func (x *Message5908) GetField6012() uint32 { if x != nil && x.Field6012 != nil { return *x.Field6012 } return 0 } func (x *Message5908) GetField6013() uint32 { if x != nil && x.Field6013 != nil { return *x.Field6013 } return 0 } func (x *Message5908) GetField6014() uint32 { if x != nil && x.Field6014 != nil { return *x.Field6014 } return 0 } func (x *Message5908) GetField6015() uint32 { if x != nil && x.Field6015 != nil { return *x.Field6015 } return 0 } func (x *Message5908) GetField6016() int32 { if x != nil && x.Field6016 != nil { return *x.Field6016 } return 0 } func (x *Message5908) GetField6017() float32 { if x != nil && x.Field6017 != nil { return *x.Field6017 } return 0 } func (x *Message5908) GetField6018() Enum5957 { if x != nil && x.Field6018 != nil { return *x.Field6018 } return Enum5957_ENUM_VALUE5958 } func (x *Message5908) GetField6019() *Message5907 { if x != nil { return x.Field6019 } return nil } func (x *Message5908) GetField6020() Enum5962 { if x != nil && x.Field6020 != nil { return *x.Field6020 } return Enum5962_ENUM_VALUE5963 } type Message3850 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field3924 *Enum3851 `protobuf:"varint,2,opt,name=field3924,enum=benchmarks.google_message4.Enum3851" json:"field3924,omitempty"` Field3925 *bool `protobuf:"varint,12,opt,name=field3925" json:"field3925,omitempty"` Field3926 *int32 `protobuf:"varint,4,opt,name=field3926" json:"field3926,omitempty"` Field3927 *bool `protobuf:"varint,10,opt,name=field3927" json:"field3927,omitempty"` Field3928 *bool `protobuf:"varint,13,opt,name=field3928" json:"field3928,omitempty"` Field3929 *bool `protobuf:"varint,14,opt,name=field3929" json:"field3929,omitempty"` } func (x *Message3850) Reset() { *x = Message3850{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3850) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3850) ProtoMessage() {} func (x *Message3850) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3850.ProtoReflect.Descriptor instead. func (*Message3850) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{14} } func (x *Message3850) GetField3924() Enum3851 { if x != nil && x.Field3924 != nil { return *x.Field3924 } return Enum3851_ENUM_VALUE3852 } func (x *Message3850) GetField3925() bool { if x != nil && x.Field3925 != nil { return *x.Field3925 } return false } func (x *Message3850) GetField3926() int32 { if x != nil && x.Field3926 != nil { return *x.Field3926 } return 0 } func (x *Message3850) GetField3927() bool { if x != nil && x.Field3927 != nil { return *x.Field3927 } return false } func (x *Message3850) GetField3928() bool { if x != nil && x.Field3928 != nil { return *x.Field3928 } return false } func (x *Message3850) GetField3929() bool { if x != nil && x.Field3929 != nil { return *x.Field3929 } return false } type Message7865 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message7865) Reset() { *x = Message7865{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7865) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7865) ProtoMessage() {} func (x *Message7865) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7865.ProtoReflect.Descriptor instead. func (*Message7865) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{15} } type Message7511 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7523 *bool `protobuf:"varint,1,opt,name=field7523" json:"field7523,omitempty"` Field7524 *Enum7512 `protobuf:"varint,2,opt,name=field7524,enum=benchmarks.google_message4.Enum7512" json:"field7524,omitempty"` Field7525 *int32 `protobuf:"varint,3,opt,name=field7525" json:"field7525,omitempty"` Field7526 *int32 `protobuf:"varint,4,opt,name=field7526" json:"field7526,omitempty"` Field7527 *bool `protobuf:"varint,5,opt,name=field7527" json:"field7527,omitempty"` Field7528 *int32 `protobuf:"varint,6,opt,name=field7528" json:"field7528,omitempty"` Field7529 *int32 `protobuf:"varint,7,opt,name=field7529" json:"field7529,omitempty"` } func (x *Message7511) Reset() { *x = Message7511{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7511) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7511) ProtoMessage() {} func (x *Message7511) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7511.ProtoReflect.Descriptor instead. func (*Message7511) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{16} } func (x *Message7511) GetField7523() bool { if x != nil && x.Field7523 != nil { return *x.Field7523 } return false } func (x *Message7511) GetField7524() Enum7512 { if x != nil && x.Field7524 != nil { return *x.Field7524 } return Enum7512_ENUM_VALUE7513 } func (x *Message7511) GetField7525() int32 { if x != nil && x.Field7525 != nil { return *x.Field7525 } return 0 } func (x *Message7511) GetField7526() int32 { if x != nil && x.Field7526 != nil { return *x.Field7526 } return 0 } func (x *Message7511) GetField7527() bool { if x != nil && x.Field7527 != nil { return *x.Field7527 } return false } func (x *Message7511) GetField7528() int32 { if x != nil && x.Field7528 != nil { return *x.Field7528 } return 0 } func (x *Message7511) GetField7529() int32 { if x != nil && x.Field7529 != nil { return *x.Field7529 } return 0 } type Message3920 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message3920) Reset() { *x = Message3920{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3920) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3920) ProtoMessage() {} func (x *Message3920) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3920.ProtoReflect.Descriptor instead. func (*Message3920) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{17} } type Message7928 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7940 *string `protobuf:"bytes,1,opt,name=field7940" json:"field7940,omitempty"` Field7941 *int64 `protobuf:"varint,2,opt,name=field7941" json:"field7941,omitempty"` } func (x *Message7928) Reset() { *x = Message7928{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7928) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7928) ProtoMessage() {} func (x *Message7928) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7928.ProtoReflect.Descriptor instead. func (*Message7928) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{18} } func (x *Message7928) GetField7940() string { if x != nil && x.Field7940 != nil { return *x.Field7940 } return "" } func (x *Message7928) GetField7941() int64 { if x != nil && x.Field7941 != nil { return *x.Field7941 } return 0 } type Message7921 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7936 *int32 `protobuf:"varint,1,opt,name=field7936" json:"field7936,omitempty"` Field7937 *int64 `protobuf:"varint,2,opt,name=field7937" json:"field7937,omitempty"` Field7938 *float32 `protobuf:"fixed32,3,opt,name=field7938" json:"field7938,omitempty"` Field7939 *Enum7922 `protobuf:"varint,4,opt,name=field7939,enum=benchmarks.google_message4.Enum7922" json:"field7939,omitempty"` } func (x *Message7921) Reset() { *x = Message7921{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7921) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7921) ProtoMessage() {} func (x *Message7921) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7921.ProtoReflect.Descriptor instead. func (*Message7921) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{19} } func (x *Message7921) GetField7936() int32 { if x != nil && x.Field7936 != nil { return *x.Field7936 } return 0 } func (x *Message7921) GetField7937() int64 { if x != nil && x.Field7937 != nil { return *x.Field7937 } return 0 } func (x *Message7921) GetField7938() float32 { if x != nil && x.Field7938 != nil { return *x.Field7938 } return 0 } func (x *Message7921) GetField7939() Enum7922 { if x != nil && x.Field7939 != nil { return *x.Field7939 } return Enum7922_ENUM_VALUE7923 } type Message7920 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7934 *int64 `protobuf:"varint,1,opt,name=field7934" json:"field7934,omitempty"` Field7935 *int64 `protobuf:"varint,2,opt,name=field7935" json:"field7935,omitempty"` } func (x *Message7920) Reset() { *x = Message7920{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7920) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7920) ProtoMessage() {} func (x *Message7920) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7920.ProtoReflect.Descriptor instead. func (*Message7920) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{20} } func (x *Message7920) GetField7934() int64 { if x != nil && x.Field7934 != nil { return *x.Field7934 } return 0 } func (x *Message7920) GetField7935() int64 { if x != nil && x.Field7935 != nil { return *x.Field7935 } return 0 } type Message7919 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field7931 *uint64 `protobuf:"fixed64,1,opt,name=field7931" json:"field7931,omitempty"` Field7932 *int64 `protobuf:"varint,2,opt,name=field7932" json:"field7932,omitempty"` Field7933 []byte `protobuf:"bytes,3,opt,name=field7933" json:"field7933,omitempty"` } func (x *Message7919) Reset() { *x = Message7919{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message7919) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message7919) ProtoMessage() {} func (x *Message7919) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message7919.ProtoReflect.Descriptor instead. func (*Message7919) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{21} } func (x *Message7919) GetField7931() uint64 { if x != nil && x.Field7931 != nil { return *x.Field7931 } return 0 } func (x *Message7919) GetField7932() int64 { if x != nil && x.Field7932 != nil { return *x.Field7932 } return 0 } func (x *Message7919) GetField7933() []byte { if x != nil { return x.Field7933 } return nil } type Message12817 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field12826 *int32 `protobuf:"varint,1,opt,name=field12826" json:"field12826,omitempty"` Field12827 *int32 `protobuf:"varint,2,opt,name=field12827" json:"field12827,omitempty"` Field12828 *int32 `protobuf:"varint,3,opt,name=field12828" json:"field12828,omitempty"` } func (x *Message12817) Reset() { *x = Message12817{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message12817) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message12817) ProtoMessage() {} func (x *Message12817) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message12817.ProtoReflect.Descriptor instead. func (*Message12817) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{22} } func (x *Message12817) GetField12826() int32 { if x != nil && x.Field12826 != nil { return *x.Field12826 } return 0 } func (x *Message12817) GetField12827() int32 { if x != nil && x.Field12827 != nil { return *x.Field12827 } return 0 } func (x *Message12817) GetField12828() int32 { if x != nil && x.Field12828 != nil { return *x.Field12828 } return 0 } type Message6054 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6089 *string `protobuf:"bytes,1,req,name=field6089" json:"field6089,omitempty"` Field6090 *string `protobuf:"bytes,2,opt,name=field6090" json:"field6090,omitempty"` } func (x *Message6054) Reset() { *x = Message6054{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6054) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6054) ProtoMessage() {} func (x *Message6054) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6054.ProtoReflect.Descriptor instead. func (*Message6054) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{23} } func (x *Message6054) GetField6089() string { if x != nil && x.Field6089 != nil { return *x.Field6089 } return "" } func (x *Message6054) GetField6090() string { if x != nil && x.Field6090 != nil { return *x.Field6090 } return "" } type Message6127 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message6127) Reset() { *x = Message6127{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6127) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6127) ProtoMessage() {} func (x *Message6127) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6127.ProtoReflect.Descriptor instead. func (*Message6127) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{24} } type Message6052 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6084 *string `protobuf:"bytes,1,req,name=field6084" json:"field6084,omitempty"` Field6085 []byte `protobuf:"bytes,2,req,name=field6085" json:"field6085,omitempty"` } func (x *Message6052) Reset() { *x = Message6052{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6052) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6052) ProtoMessage() {} func (x *Message6052) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6052.ProtoReflect.Descriptor instead. func (*Message6052) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{25} } func (x *Message6052) GetField6084() string { if x != nil && x.Field6084 != nil { return *x.Field6084 } return "" } func (x *Message6052) GetField6085() []byte { if x != nil { return x.Field6085 } return nil } type Message6024 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field6048 *Enum6025 `protobuf:"varint,1,opt,name=field6048,enum=benchmarks.google_message4.Enum6025" json:"field6048,omitempty"` Field6049 *string `protobuf:"bytes,2,opt,name=field6049" json:"field6049,omitempty"` Field6050 *UnusedEmptyMessage `protobuf:"bytes,3,opt,name=field6050" json:"field6050,omitempty"` } func (x *Message6024) Reset() { *x = Message6024{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6024) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6024) ProtoMessage() {} func (x *Message6024) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6024.ProtoReflect.Descriptor instead. func (*Message6024) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{26} } func (x *Message6024) GetField6048() Enum6025 { if x != nil && x.Field6048 != nil { return *x.Field6048 } return Enum6025_ENUM_VALUE6026 } func (x *Message6024) GetField6049() string { if x != nil && x.Field6049 != nil { return *x.Field6049 } return "" } func (x *Message6024) GetField6050() *UnusedEmptyMessage { if x != nil { return x.Field6050 } return nil } type Message5861 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field5882 *Enum5862 `protobuf:"varint,1,req,name=field5882,enum=benchmarks.google_message4.Enum5862" json:"field5882,omitempty"` Field5883 *string `protobuf:"bytes,2,req,name=field5883" json:"field5883,omitempty"` Field5884 *bool `protobuf:"varint,3,opt,name=field5884" json:"field5884,omitempty"` Field5885 *string `protobuf:"bytes,4,opt,name=field5885" json:"field5885,omitempty"` } func (x *Message5861) Reset() { *x = Message5861{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message5861) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message5861) ProtoMessage() {} func (x *Message5861) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message5861.ProtoReflect.Descriptor instead. func (*Message5861) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{27} } func (x *Message5861) GetField5882() Enum5862 { if x != nil && x.Field5882 != nil { return *x.Field5882 } return Enum5862_ENUM_VALUE5863 } func (x *Message5861) GetField5883() string { if x != nil && x.Field5883 != nil { return *x.Field5883 } return "" } func (x *Message5861) GetField5884() bool { if x != nil && x.Field5884 != nil { return *x.Field5884 } return false } func (x *Message5861) GetField5885() string { if x != nil && x.Field5885 != nil { return *x.Field5885 } return "" } type Message5880 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field5896 *string `protobuf:"bytes,1,opt,name=field5896" json:"field5896,omitempty"` } func (x *Message5880) Reset() { *x = Message5880{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message5880) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message5880) ProtoMessage() {} func (x *Message5880) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message5880.ProtoReflect.Descriptor instead. func (*Message5880) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{28} } func (x *Message5880) GetField5896() string { if x != nil && x.Field5896 != nil { return *x.Field5896 } return "" } type Message5867 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field5890 *Enum5868 `protobuf:"varint,1,opt,name=field5890,enum=benchmarks.google_message4.Enum5868" json:"field5890,omitempty"` Field5891 *string `protobuf:"bytes,2,opt,name=field5891" json:"field5891,omitempty"` Field5892 *Enum5873 `protobuf:"varint,3,opt,name=field5892,enum=benchmarks.google_message4.Enum5873" json:"field5892,omitempty"` Field5893 *int32 `protobuf:"varint,4,opt,name=field5893" json:"field5893,omitempty"` Field5894 *UnusedEnum `protobuf:"varint,5,opt,name=field5894,enum=benchmarks.google_message4.UnusedEnum" json:"field5894,omitempty"` Field5895 *bool `protobuf:"varint,6,opt,name=field5895" json:"field5895,omitempty"` } func (x *Message5867) Reset() { *x = Message5867{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message5867) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message5867) ProtoMessage() {} func (x *Message5867) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message5867.ProtoReflect.Descriptor instead. func (*Message5867) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{29} } func (x *Message5867) GetField5890() Enum5868 { if x != nil && x.Field5890 != nil { return *x.Field5890 } return Enum5868_ENUM_VALUE5869 } func (x *Message5867) GetField5891() string { if x != nil && x.Field5891 != nil { return *x.Field5891 } return "" } func (x *Message5867) GetField5892() Enum5873 { if x != nil && x.Field5892 != nil { return *x.Field5892 } return Enum5873_ENUM_VALUE5874 } func (x *Message5867) GetField5893() int32 { if x != nil && x.Field5893 != nil { return *x.Field5893 } return 0 } func (x *Message5867) GetField5894() UnusedEnum { if x != nil && x.Field5894 != nil { return *x.Field5894 } return UnusedEnum_UNUSED_ENUM_VALUE1 } func (x *Message5867) GetField5895() bool { if x != nil && x.Field5895 != nil { return *x.Field5895 } return false } type Message4016 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field4017 *int32 `protobuf:"varint,1,req,name=field4017" json:"field4017,omitempty"` Field4018 *int32 `protobuf:"varint,2,req,name=field4018" json:"field4018,omitempty"` Field4019 *int32 `protobuf:"varint,3,req,name=field4019" json:"field4019,omitempty"` Field4020 *int32 `protobuf:"varint,4,req,name=field4020" json:"field4020,omitempty"` } func (x *Message4016) Reset() { *x = Message4016{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message4016) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message4016) ProtoMessage() {} func (x *Message4016) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message4016.ProtoReflect.Descriptor instead. func (*Message4016) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{30} } func (x *Message4016) GetField4017() int32 { if x != nil && x.Field4017 != nil { return *x.Field4017 } return 0 } func (x *Message4016) GetField4018() int32 { if x != nil && x.Field4018 != nil { return *x.Field4018 } return 0 } func (x *Message4016) GetField4019() int32 { if x != nil && x.Field4019 != nil { return *x.Field4019 } return 0 } func (x *Message4016) GetField4020() int32 { if x != nil && x.Field4020 != nil { return *x.Field4020 } return 0 } type Message6108 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message6108) Reset() { *x = Message6108{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message6108) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message6108) ProtoMessage() {} func (x *Message6108) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message6108.ProtoReflect.Descriptor instead. func (*Message6108) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{31} } type Message5907 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field5967 *Message5903 `protobuf:"bytes,1,opt,name=field5967" json:"field5967,omitempty"` Field5968 *Message5903 `protobuf:"bytes,2,opt,name=field5968" json:"field5968,omitempty"` Field5969 *Message5903 `protobuf:"bytes,3,opt,name=field5969" json:"field5969,omitempty"` Field5970 *Message5903 `protobuf:"bytes,4,opt,name=field5970" json:"field5970,omitempty"` } func (x *Message5907) Reset() { *x = Message5907{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message5907) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message5907) ProtoMessage() {} func (x *Message5907) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message5907.ProtoReflect.Descriptor instead. func (*Message5907) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{32} } func (x *Message5907) GetField5967() *Message5903 { if x != nil { return x.Field5967 } return nil } func (x *Message5907) GetField5968() *Message5903 { if x != nil { return x.Field5968 } return nil } func (x *Message5907) GetField5969() *Message5903 { if x != nil { return x.Field5969 } return nil } func (x *Message5907) GetField5970() *Message5903 { if x != nil { return x.Field5970 } return nil } type UnusedEmptyMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *UnusedEmptyMessage) Reset() { *x = UnusedEmptyMessage{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UnusedEmptyMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*UnusedEmptyMessage) ProtoMessage() {} func (x *UnusedEmptyMessage) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UnusedEmptyMessage.ProtoReflect.Descriptor instead. func (*UnusedEmptyMessage) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{33} } type Message5903 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field5965 *int32 `protobuf:"varint,1,req,name=field5965" json:"field5965,omitempty"` Field5966 *Enum5904 `protobuf:"varint,2,opt,name=field5966,enum=benchmarks.google_message4.Enum5904" json:"field5966,omitempty"` } func (x *Message5903) Reset() { *x = Message5903{} if protoimpl.UnsafeEnabled { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message5903) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message5903) ProtoMessage() {} func (x *Message5903) ProtoReflect() protoreflect.Message { mi := &file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message5903.ProtoReflect.Descriptor instead. func (*Message5903) Descriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP(), []int{34} } func (x *Message5903) GetField5965() int32 { if x != nil && x.Field5965 != nil { return *x.Field5965 } return 0 } func (x *Message5903) GetField5966() Enum5904 { if x != nil && x.Field5966 != nil { return *x.Field5966 } return Enum5904_ENUM_VALUE5905 } var File_datasets_google_message4_benchmark_message4_2_proto protoreflect.FileDescriptor var file_datasets_google_message4_benchmark_message4_2_proto_rawDesc = []byte{ 0x0a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x5f, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x1a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x5f, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xce, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x37, 0x37, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x37, 0x37, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x37, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x37, 0x38, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x37, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x37, 0x39, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x37, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x38, 0x30, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x38, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x38, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x38, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x38, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x37, 0x38, 0x32, 0x22, 0x4e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x37, 0x39, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x30, 0x18, 0x01, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x30, 0x31, 0x22, 0xae, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x32, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x38, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x39, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x35, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x35, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x35, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x35, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x35, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x35, 0x32, 0x22, 0x8e, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x32, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x33, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x37, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x34, 0x37, 0x22, 0xce, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x31, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x37, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x38, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x39, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x39, 0x22, 0xd8, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x31, 0x38, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x32, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x32, 0x39, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x32, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x33, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x31, 0x37, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x33, 0x33, 0x22, 0x95, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x30, 0x33, 0x31, 0x39, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x30, 0x33, 0x32, 0x35, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x35, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x33, 0x34, 0x36, 0x22, 0x95, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x35, 0x37, 0x38, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x33, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x35, 0x37, 0x39, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x33, 0x32, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x33, 0x33, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x35, 0x38, 0x38, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x36, 0x33, 0x33, 0x22, 0xea, 0x06, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x31, 0x32, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x32, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x32, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x33, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x31, 0x32, 0x37, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x35, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x35, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x36, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x30, 0x32, 0x34, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x37, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x38, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x39, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x35, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x30, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x31, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x31, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x32, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x30, 0x35, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x32, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x33, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x33, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x34, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x30, 0x36, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x34, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x35, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x31, 0x32, 0x37, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x36, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x37, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x38, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x38, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x39, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x30, 0x35, 0x34, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x36, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x37, 0x30, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x37, 0x30, 0x22, 0xec, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x38, 0x38, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x39, 0x37, 0x18, 0x01, 0x20, 0x02, 0x28, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x39, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x39, 0x38, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x39, 0x38, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x39, 0x39, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x38, 0x36, 0x31, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x39, 0x39, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x30, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x30, 0x30, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x30, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x38, 0x36, 0x37, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x30, 0x31, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x30, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x38, 0x38, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x30, 0x32, 0x22, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x31, 0x31, 0x30, 0x22, 0x93, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x31, 0x30, 0x37, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x33, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x30, 0x31, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x33, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x33, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x33, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x33, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x33, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x33, 0x37, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x33, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x33, 0x38, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x33, 0x38, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x33, 0x39, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x31, 0x30, 0x38, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x33, 0x39, 0x22, 0x6f, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x31, 0x32, 0x39, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x37, 0x31, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x31, 0x33, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x37, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x37, 0x32, 0x18, 0x02, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x31, 0x37, 0x32, 0x22, 0xde, 0x14, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x39, 0x30, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x37, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x37, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x37, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x37, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x37, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x37, 0x33, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x37, 0x34, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x30, 0x39, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x37, 0x34, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x37, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x31, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x37, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x37, 0x36, 0x18, 0x32, 0x20, 0x01, 0x28, 0x07, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x37, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x37, 0x37, 0x18, 0x05, 0x20, 0x01, 0x28, 0x07, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x37, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x37, 0x38, 0x18, 0x06, 0x20, 0x01, 0x28, 0x07, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x37, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x37, 0x39, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x37, 0x39, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x38, 0x30, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x31, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x38, 0x30, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x38, 0x31, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x39, 0x30, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x38, 0x31, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x38, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x39, 0x30, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x38, 0x32, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x38, 0x33, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x32, 0x30, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x38, 0x33, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x38, 0x34, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x32, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x38, 0x34, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x38, 0x35, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x39, 0x30, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x38, 0x35, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x38, 0x36, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x39, 0x30, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x38, 0x36, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x38, 0x37, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x32, 0x38, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x38, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x38, 0x38, 0x18, 0x30, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x38, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x38, 0x39, 0x18, 0x31, 0x20, 0x03, 0x28, 0x07, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x38, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x39, 0x30, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x39, 0x30, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x39, 0x31, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x39, 0x30, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x39, 0x31, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x39, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x39, 0x30, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x39, 0x32, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x39, 0x33, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x39, 0x30, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x39, 0x33, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x39, 0x34, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x39, 0x30, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x39, 0x34, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x39, 0x35, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x39, 0x30, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x39, 0x35, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x39, 0x36, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x39, 0x30, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x39, 0x36, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x39, 0x37, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x39, 0x30, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x39, 0x37, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x39, 0x38, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x39, 0x30, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x39, 0x38, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x39, 0x39, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x33, 0x31, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x39, 0x39, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x30, 0x30, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x33, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x30, 0x30, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x30, 0x31, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x33, 0x39, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x30, 0x31, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x30, 0x32, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x33, 0x39, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x30, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x30, 0x33, 0x18, 0x13, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x30, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x30, 0x34, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x30, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x30, 0x35, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x30, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x30, 0x36, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x30, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x30, 0x37, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x30, 0x37, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x30, 0x38, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x34, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x30, 0x38, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x30, 0x39, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x34, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x30, 0x39, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x31, 0x30, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x34, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x31, 0x30, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x31, 0x31, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x34, 0x36, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x31, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x31, 0x32, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x07, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x31, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x31, 0x33, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x07, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x31, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x31, 0x34, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x07, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x31, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x31, 0x35, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x07, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x31, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x31, 0x36, 0x18, 0x26, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x31, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x31, 0x37, 0x18, 0x27, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x31, 0x37, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x31, 0x38, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x35, 0x37, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x31, 0x38, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x31, 0x39, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x39, 0x30, 0x37, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x31, 0x39, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x32, 0x30, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x36, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x32, 0x30, 0x22, 0xe7, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x38, 0x35, 0x30, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x38, 0x35, 0x31, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x35, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x36, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x37, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x38, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x39, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x39, 0x32, 0x39, 0x22, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x38, 0x36, 0x35, 0x22, 0x85, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x35, 0x31, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x32, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x32, 0x33, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x32, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x37, 0x35, 0x31, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x32, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x32, 0x35, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x32, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x32, 0x36, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x32, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x32, 0x37, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x32, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x32, 0x38, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x32, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x32, 0x39, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x35, 0x32, 0x39, 0x22, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x39, 0x32, 0x30, 0x22, 0x49, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x32, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x34, 0x31, 0x22, 0xab, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x32, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x37, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x38, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x38, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x39, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x37, 0x39, 0x32, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x39, 0x22, 0x49, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x32, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x35, 0x22, 0x67, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x37, 0x39, 0x31, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x37, 0x39, 0x33, 0x33, 0x22, 0x6e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x32, 0x38, 0x31, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x32, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x32, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x32, 0x37, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x32, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x32, 0x38, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x38, 0x32, 0x38, 0x22, 0x49, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x30, 0x35, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x38, 0x39, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x38, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x39, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x39, 0x30, 0x22, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x31, 0x32, 0x37, 0x22, 0x49, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x30, 0x35, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x38, 0x34, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x38, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x38, 0x35, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x38, 0x35, 0x22, 0xbd, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x30, 0x32, 0x34, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x34, 0x38, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x30, 0x32, 0x35, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x34, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x34, 0x39, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x34, 0x39, 0x12, 0x4c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x35, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x36, 0x30, 0x35, 0x30, 0x22, 0xab, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x38, 0x36, 0x31, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x38, 0x32, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x38, 0x36, 0x32, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x38, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x38, 0x33, 0x18, 0x02, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x38, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x38, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x38, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x38, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x38, 0x35, 0x22, 0x2b, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x38, 0x38, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x39, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x39, 0x36, 0x22, 0xb5, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x38, 0x36, 0x37, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x39, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x38, 0x36, 0x38, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x39, 0x30, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x39, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x39, 0x31, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x39, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x38, 0x37, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x39, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x39, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x39, 0x33, 0x12, 0x44, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x39, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x39, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x39, 0x35, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x38, 0x39, 0x35, 0x22, 0x85, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x30, 0x31, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x31, 0x37, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x31, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x31, 0x38, 0x18, 0x02, 0x20, 0x02, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x31, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x31, 0x39, 0x18, 0x03, 0x20, 0x02, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x31, 0x39, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x32, 0x30, 0x18, 0x04, 0x20, 0x02, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x30, 0x32, 0x30, 0x22, 0x0d, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x36, 0x31, 0x30, 0x38, 0x22, 0xa9, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x39, 0x30, 0x37, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x36, 0x37, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x39, 0x30, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x36, 0x37, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x36, 0x38, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x39, 0x30, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x36, 0x38, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x36, 0x39, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x39, 0x30, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x36, 0x39, 0x12, 0x45, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x37, 0x30, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x39, 0x30, 0x33, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x37, 0x30, 0x22, 0x14, 0x0a, 0x12, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x6f, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x35, 0x39, 0x30, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x36, 0x35, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x36, 0x35, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x36, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x30, 0x34, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x39, 0x36, 0x36, 0x42, 0x23, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0xf8, 0x01, 0x01, } var ( file_datasets_google_message4_benchmark_message4_2_proto_rawDescOnce sync.Once file_datasets_google_message4_benchmark_message4_2_proto_rawDescData = file_datasets_google_message4_benchmark_message4_2_proto_rawDesc ) func file_datasets_google_message4_benchmark_message4_2_proto_rawDescGZIP() []byte { file_datasets_google_message4_benchmark_message4_2_proto_rawDescOnce.Do(func() { file_datasets_google_message4_benchmark_message4_2_proto_rawDescData = protoimpl.X.CompressGZIP(file_datasets_google_message4_benchmark_message4_2_proto_rawDescData) }) return file_datasets_google_message4_benchmark_message4_2_proto_rawDescData } var file_datasets_google_message4_benchmark_message4_2_proto_msgTypes = make([]protoimpl.MessageInfo, 35) var file_datasets_google_message4_benchmark_message4_2_proto_goTypes = []interface{}{ (*Message12774)(nil), // 0: benchmarks.google_message4.Message12774 (*Message12796)(nil), // 1: benchmarks.google_message4.Message12796 (*Message12821)(nil), // 2: benchmarks.google_message4.Message12821 (*Message12820)(nil), // 3: benchmarks.google_message4.Message12820 (*Message12819)(nil), // 4: benchmarks.google_message4.Message12819 (*Message12818)(nil), // 5: benchmarks.google_message4.Message12818 (*Message10319)(nil), // 6: benchmarks.google_message4.Message10319 (*Message6578)(nil), // 7: benchmarks.google_message4.Message6578 (*Message6126)(nil), // 8: benchmarks.google_message4.Message6126 (*Message5881)(nil), // 9: benchmarks.google_message4.Message5881 (*Message6110)(nil), // 10: benchmarks.google_message4.Message6110 (*Message6107)(nil), // 11: benchmarks.google_message4.Message6107 (*Message6129)(nil), // 12: benchmarks.google_message4.Message6129 (*Message5908)(nil), // 13: benchmarks.google_message4.Message5908 (*Message3850)(nil), // 14: benchmarks.google_message4.Message3850 (*Message7865)(nil), // 15: benchmarks.google_message4.Message7865 (*Message7511)(nil), // 16: benchmarks.google_message4.Message7511 (*Message3920)(nil), // 17: benchmarks.google_message4.Message3920 (*Message7928)(nil), // 18: benchmarks.google_message4.Message7928 (*Message7921)(nil), // 19: benchmarks.google_message4.Message7921 (*Message7920)(nil), // 20: benchmarks.google_message4.Message7920 (*Message7919)(nil), // 21: benchmarks.google_message4.Message7919 (*Message12817)(nil), // 22: benchmarks.google_message4.Message12817 (*Message6054)(nil), // 23: benchmarks.google_message4.Message6054 (*Message6127)(nil), // 24: benchmarks.google_message4.Message6127 (*Message6052)(nil), // 25: benchmarks.google_message4.Message6052 (*Message6024)(nil), // 26: benchmarks.google_message4.Message6024 (*Message5861)(nil), // 27: benchmarks.google_message4.Message5861 (*Message5880)(nil), // 28: benchmarks.google_message4.Message5880 (*Message5867)(nil), // 29: benchmarks.google_message4.Message5867 (*Message4016)(nil), // 30: benchmarks.google_message4.Message4016 (*Message6108)(nil), // 31: benchmarks.google_message4.Message6108 (*Message5907)(nil), // 32: benchmarks.google_message4.Message5907 (*UnusedEmptyMessage)(nil), // 33: benchmarks.google_message4.UnusedEmptyMessage (*Message5903)(nil), // 34: benchmarks.google_message4.Message5903 (Enum10325)(0), // 35: benchmarks.google_message4.Enum10325 (Enum6579)(0), // 36: benchmarks.google_message4.Enum6579 (Enum6588)(0), // 37: benchmarks.google_message4.Enum6588 (Enum6065)(0), // 38: benchmarks.google_message4.Enum6065 (Enum6130)(0), // 39: benchmarks.google_message4.Enum6130 (Enum5909)(0), // 40: benchmarks.google_message4.Enum5909 (Enum5912)(0), // 41: benchmarks.google_message4.Enum5912 (Enum5915)(0), // 42: benchmarks.google_message4.Enum5915 (Enum5920)(0), // 43: benchmarks.google_message4.Enum5920 (Enum5923)(0), // 44: benchmarks.google_message4.Enum5923 (Enum5928)(0), // 45: benchmarks.google_message4.Enum5928 (Enum5931)(0), // 46: benchmarks.google_message4.Enum5931 (Enum5935)(0), // 47: benchmarks.google_message4.Enum5935 (Enum5939)(0), // 48: benchmarks.google_message4.Enum5939 (Enum5946)(0), // 49: benchmarks.google_message4.Enum5946 (Enum5957)(0), // 50: benchmarks.google_message4.Enum5957 (Enum5962)(0), // 51: benchmarks.google_message4.Enum5962 (Enum3851)(0), // 52: benchmarks.google_message4.Enum3851 (Enum7512)(0), // 53: benchmarks.google_message4.Enum7512 (Enum7922)(0), // 54: benchmarks.google_message4.Enum7922 (Enum6025)(0), // 55: benchmarks.google_message4.Enum6025 (Enum5862)(0), // 56: benchmarks.google_message4.Enum5862 (Enum5868)(0), // 57: benchmarks.google_message4.Enum5868 (Enum5873)(0), // 58: benchmarks.google_message4.Enum5873 (UnusedEnum)(0), // 59: benchmarks.google_message4.UnusedEnum (Enum5904)(0), // 60: benchmarks.google_message4.Enum5904 } var file_datasets_google_message4_benchmark_message4_2_proto_depIdxs = []int32{ 22, // 0: benchmarks.google_message4.Message12818.field12833:type_name -> benchmarks.google_message4.Message12817 35, // 1: benchmarks.google_message4.Message10319.field10340:type_name -> benchmarks.google_message4.Enum10325 36, // 2: benchmarks.google_message4.Message6578.field6632:type_name -> benchmarks.google_message4.Enum6579 37, // 3: benchmarks.google_message4.Message6578.field6633:type_name -> benchmarks.google_message4.Enum6588 24, // 4: benchmarks.google_message4.Message6126.field6153:type_name -> benchmarks.google_message4.Message6127 26, // 5: benchmarks.google_message4.Message6126.field6156:type_name -> benchmarks.google_message4.Message6024 25, // 6: benchmarks.google_message4.Message6126.field6162:type_name -> benchmarks.google_message4.Message6052 33, // 7: benchmarks.google_message4.Message6126.field6163:type_name -> benchmarks.google_message4.UnusedEmptyMessage 38, // 8: benchmarks.google_message4.Message6126.field6164:type_name -> benchmarks.google_message4.Enum6065 24, // 9: benchmarks.google_message4.Message6126.field6165:type_name -> benchmarks.google_message4.Message6127 23, // 10: benchmarks.google_message4.Message6126.field6169:type_name -> benchmarks.google_message4.Message6054 27, // 11: benchmarks.google_message4.Message5881.field5899:type_name -> benchmarks.google_message4.Message5861 33, // 12: benchmarks.google_message4.Message5881.field5900:type_name -> benchmarks.google_message4.UnusedEmptyMessage 29, // 13: benchmarks.google_message4.Message5881.field5901:type_name -> benchmarks.google_message4.Message5867 28, // 14: benchmarks.google_message4.Message5881.field5902:type_name -> benchmarks.google_message4.Message5880 30, // 15: benchmarks.google_message4.Message6107.field6134:type_name -> benchmarks.google_message4.Message4016 31, // 16: benchmarks.google_message4.Message6107.field6139:type_name -> benchmarks.google_message4.Message6108 39, // 17: benchmarks.google_message4.Message6129.field6171:type_name -> benchmarks.google_message4.Enum6130 40, // 18: benchmarks.google_message4.Message5908.field5974:type_name -> benchmarks.google_message4.Enum5909 41, // 19: benchmarks.google_message4.Message5908.field5975:type_name -> benchmarks.google_message4.Enum5912 42, // 20: benchmarks.google_message4.Message5908.field5980:type_name -> benchmarks.google_message4.Enum5915 34, // 21: benchmarks.google_message4.Message5908.field5981:type_name -> benchmarks.google_message4.Message5903 34, // 22: benchmarks.google_message4.Message5908.field5982:type_name -> benchmarks.google_message4.Message5903 43, // 23: benchmarks.google_message4.Message5908.field5983:type_name -> benchmarks.google_message4.Enum5920 44, // 24: benchmarks.google_message4.Message5908.field5984:type_name -> benchmarks.google_message4.Enum5923 34, // 25: benchmarks.google_message4.Message5908.field5985:type_name -> benchmarks.google_message4.Message5903 34, // 26: benchmarks.google_message4.Message5908.field5986:type_name -> benchmarks.google_message4.Message5903 45, // 27: benchmarks.google_message4.Message5908.field5987:type_name -> benchmarks.google_message4.Enum5928 34, // 28: benchmarks.google_message4.Message5908.field5991:type_name -> benchmarks.google_message4.Message5903 34, // 29: benchmarks.google_message4.Message5908.field5992:type_name -> benchmarks.google_message4.Message5903 34, // 30: benchmarks.google_message4.Message5908.field5993:type_name -> benchmarks.google_message4.Message5903 34, // 31: benchmarks.google_message4.Message5908.field5994:type_name -> benchmarks.google_message4.Message5903 34, // 32: benchmarks.google_message4.Message5908.field5995:type_name -> benchmarks.google_message4.Message5903 34, // 33: benchmarks.google_message4.Message5908.field5996:type_name -> benchmarks.google_message4.Message5903 34, // 34: benchmarks.google_message4.Message5908.field5997:type_name -> benchmarks.google_message4.Message5903 34, // 35: benchmarks.google_message4.Message5908.field5998:type_name -> benchmarks.google_message4.Message5903 46, // 36: benchmarks.google_message4.Message5908.field5999:type_name -> benchmarks.google_message4.Enum5931 47, // 37: benchmarks.google_message4.Message5908.field6000:type_name -> benchmarks.google_message4.Enum5935 48, // 38: benchmarks.google_message4.Message5908.field6001:type_name -> benchmarks.google_message4.Enum5939 48, // 39: benchmarks.google_message4.Message5908.field6002:type_name -> benchmarks.google_message4.Enum5939 49, // 40: benchmarks.google_message4.Message5908.field6008:type_name -> benchmarks.google_message4.Enum5946 49, // 41: benchmarks.google_message4.Message5908.field6009:type_name -> benchmarks.google_message4.Enum5946 49, // 42: benchmarks.google_message4.Message5908.field6010:type_name -> benchmarks.google_message4.Enum5946 49, // 43: benchmarks.google_message4.Message5908.field6011:type_name -> benchmarks.google_message4.Enum5946 50, // 44: benchmarks.google_message4.Message5908.field6018:type_name -> benchmarks.google_message4.Enum5957 32, // 45: benchmarks.google_message4.Message5908.field6019:type_name -> benchmarks.google_message4.Message5907 51, // 46: benchmarks.google_message4.Message5908.field6020:type_name -> benchmarks.google_message4.Enum5962 52, // 47: benchmarks.google_message4.Message3850.field3924:type_name -> benchmarks.google_message4.Enum3851 53, // 48: benchmarks.google_message4.Message7511.field7524:type_name -> benchmarks.google_message4.Enum7512 54, // 49: benchmarks.google_message4.Message7921.field7939:type_name -> benchmarks.google_message4.Enum7922 55, // 50: benchmarks.google_message4.Message6024.field6048:type_name -> benchmarks.google_message4.Enum6025 33, // 51: benchmarks.google_message4.Message6024.field6050:type_name -> benchmarks.google_message4.UnusedEmptyMessage 56, // 52: benchmarks.google_message4.Message5861.field5882:type_name -> benchmarks.google_message4.Enum5862 57, // 53: benchmarks.google_message4.Message5867.field5890:type_name -> benchmarks.google_message4.Enum5868 58, // 54: benchmarks.google_message4.Message5867.field5892:type_name -> benchmarks.google_message4.Enum5873 59, // 55: benchmarks.google_message4.Message5867.field5894:type_name -> benchmarks.google_message4.UnusedEnum 34, // 56: benchmarks.google_message4.Message5907.field5967:type_name -> benchmarks.google_message4.Message5903 34, // 57: benchmarks.google_message4.Message5907.field5968:type_name -> benchmarks.google_message4.Message5903 34, // 58: benchmarks.google_message4.Message5907.field5969:type_name -> benchmarks.google_message4.Message5903 34, // 59: benchmarks.google_message4.Message5907.field5970:type_name -> benchmarks.google_message4.Message5903 60, // 60: benchmarks.google_message4.Message5903.field5966:type_name -> benchmarks.google_message4.Enum5904 61, // [61:61] is the sub-list for method output_type 61, // [61:61] is the sub-list for method input_type 61, // [61:61] is the sub-list for extension type_name 61, // [61:61] is the sub-list for extension extendee 0, // [0:61] is the sub-list for field type_name } func init() { file_datasets_google_message4_benchmark_message4_2_proto_init() } func file_datasets_google_message4_benchmark_message4_2_proto_init() { if File_datasets_google_message4_benchmark_message4_2_proto != nil { return } file_datasets_google_message4_benchmark_message4_3_proto_init() if !protoimpl.UnsafeEnabled { file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12774); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12796); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12821); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12820); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12819); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12818); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message10319); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6578); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6126); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message5881); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6110); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6107); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6129); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message5908); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3850); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7865); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7511); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3920); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7928); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7921); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7920); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message7919); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message12817); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6054); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6127); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6052); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6024); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message5861); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message5880); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message5867); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message4016); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message6108); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message5907); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UnusedEmptyMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_datasets_google_message4_benchmark_message4_2_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message5903); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_datasets_google_message4_benchmark_message4_2_proto_rawDesc, NumEnums: 0, NumMessages: 35, NumExtensions: 0, NumServices: 0, }, GoTypes: file_datasets_google_message4_benchmark_message4_2_proto_goTypes, DependencyIndexes: file_datasets_google_message4_benchmark_message4_2_proto_depIdxs, MessageInfos: file_datasets_google_message4_benchmark_message4_2_proto_msgTypes, }.Build() File_datasets_google_message4_benchmark_message4_2_proto = out.File file_datasets_google_message4_benchmark_message4_2_proto_rawDesc = nil file_datasets_google_message4_benchmark_message4_2_proto_goTypes = nil file_datasets_google_message4_benchmark_message4_2_proto_depIdxs = nil } benchmark_message4_3.pb.go000066400000000000000000005554751411250152500360510ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/datasets/google_message4// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Code generated by protoc-gen-go. DO NOT EDIT. // source: datasets/google_message4/benchmark_message4_3.proto package google_message4 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type UnusedEnum int32 const ( UnusedEnum_UNUSED_ENUM_VALUE1 UnusedEnum = 0 UnusedEnum_UNUSED_ENUM_VALUE2 UnusedEnum = 1 ) // Enum value maps for UnusedEnum. var ( UnusedEnum_name = map[int32]string{ 0: "UNUSED_ENUM_VALUE1", 1: "UNUSED_ENUM_VALUE2", } UnusedEnum_value = map[string]int32{ "UNUSED_ENUM_VALUE1": 0, "UNUSED_ENUM_VALUE2": 1, } ) func (x UnusedEnum) Enum() *UnusedEnum { p := new(UnusedEnum) *p = x return p } func (x UnusedEnum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (UnusedEnum) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[0].Descriptor() } func (UnusedEnum) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[0] } func (x UnusedEnum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *UnusedEnum) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = UnusedEnum(num) return nil } // Deprecated: Use UnusedEnum.Descriptor instead. func (UnusedEnum) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{0} } type Enum2593 int32 const ( Enum2593_ENUM_VALUE2594 Enum2593 = 0 Enum2593_ENUM_VALUE2595 Enum2593 = 1 Enum2593_ENUM_VALUE2596 Enum2593 = 2 Enum2593_ENUM_VALUE2597 Enum2593 = 3 Enum2593_ENUM_VALUE2598 Enum2593 = 4 Enum2593_ENUM_VALUE2599 Enum2593 = 5 Enum2593_ENUM_VALUE2600 Enum2593 = 6 Enum2593_ENUM_VALUE2601 Enum2593 = 7 ) // Enum value maps for Enum2593. var ( Enum2593_name = map[int32]string{ 0: "ENUM_VALUE2594", 1: "ENUM_VALUE2595", 2: "ENUM_VALUE2596", 3: "ENUM_VALUE2597", 4: "ENUM_VALUE2598", 5: "ENUM_VALUE2599", 6: "ENUM_VALUE2600", 7: "ENUM_VALUE2601", } Enum2593_value = map[string]int32{ "ENUM_VALUE2594": 0, "ENUM_VALUE2595": 1, "ENUM_VALUE2596": 2, "ENUM_VALUE2597": 3, "ENUM_VALUE2598": 4, "ENUM_VALUE2599": 5, "ENUM_VALUE2600": 6, "ENUM_VALUE2601": 7, } ) func (x Enum2593) Enum() *Enum2593 { p := new(Enum2593) *p = x return p } func (x Enum2593) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum2593) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[1].Descriptor() } func (Enum2593) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[1] } func (x Enum2593) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum2593) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum2593(num) return nil } // Deprecated: Use Enum2593.Descriptor instead. func (Enum2593) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{1} } type Enum2834 int32 const ( Enum2834_ENUM_VALUE2835 Enum2834 = 0 Enum2834_ENUM_VALUE2836 Enum2834 = 1 Enum2834_ENUM_VALUE2837 Enum2834 = 2 ) // Enum value maps for Enum2834. var ( Enum2834_name = map[int32]string{ 0: "ENUM_VALUE2835", 1: "ENUM_VALUE2836", 2: "ENUM_VALUE2837", } Enum2834_value = map[string]int32{ "ENUM_VALUE2835": 0, "ENUM_VALUE2836": 1, "ENUM_VALUE2837": 2, } ) func (x Enum2834) Enum() *Enum2834 { p := new(Enum2834) *p = x return p } func (x Enum2834) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum2834) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[2].Descriptor() } func (Enum2834) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[2] } func (x Enum2834) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum2834) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum2834(num) return nil } // Deprecated: Use Enum2834.Descriptor instead. func (Enum2834) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{2} } type Enum2806 int32 const ( Enum2806_ENUM_VALUE2807 Enum2806 = 0 Enum2806_ENUM_VALUE2808 Enum2806 = 1 Enum2806_ENUM_VALUE2809 Enum2806 = 2 Enum2806_ENUM_VALUE2810 Enum2806 = 3 Enum2806_ENUM_VALUE2811 Enum2806 = 4 Enum2806_ENUM_VALUE2812 Enum2806 = 5 Enum2806_ENUM_VALUE2813 Enum2806 = 6 Enum2806_ENUM_VALUE2814 Enum2806 = 7 Enum2806_ENUM_VALUE2815 Enum2806 = 8 Enum2806_ENUM_VALUE2816 Enum2806 = 9 Enum2806_ENUM_VALUE2817 Enum2806 = 10 Enum2806_ENUM_VALUE2818 Enum2806 = 11 Enum2806_ENUM_VALUE2819 Enum2806 = 12 Enum2806_ENUM_VALUE2820 Enum2806 = 13 Enum2806_ENUM_VALUE2821 Enum2806 = 14 ) // Enum value maps for Enum2806. var ( Enum2806_name = map[int32]string{ 0: "ENUM_VALUE2807", 1: "ENUM_VALUE2808", 2: "ENUM_VALUE2809", 3: "ENUM_VALUE2810", 4: "ENUM_VALUE2811", 5: "ENUM_VALUE2812", 6: "ENUM_VALUE2813", 7: "ENUM_VALUE2814", 8: "ENUM_VALUE2815", 9: "ENUM_VALUE2816", 10: "ENUM_VALUE2817", 11: "ENUM_VALUE2818", 12: "ENUM_VALUE2819", 13: "ENUM_VALUE2820", 14: "ENUM_VALUE2821", } Enum2806_value = map[string]int32{ "ENUM_VALUE2807": 0, "ENUM_VALUE2808": 1, "ENUM_VALUE2809": 2, "ENUM_VALUE2810": 3, "ENUM_VALUE2811": 4, "ENUM_VALUE2812": 5, "ENUM_VALUE2813": 6, "ENUM_VALUE2814": 7, "ENUM_VALUE2815": 8, "ENUM_VALUE2816": 9, "ENUM_VALUE2817": 10, "ENUM_VALUE2818": 11, "ENUM_VALUE2819": 12, "ENUM_VALUE2820": 13, "ENUM_VALUE2821": 14, } ) func (x Enum2806) Enum() *Enum2806 { p := new(Enum2806) *p = x return p } func (x Enum2806) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum2806) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[3].Descriptor() } func (Enum2806) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[3] } func (x Enum2806) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum2806) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum2806(num) return nil } // Deprecated: Use Enum2806.Descriptor instead. func (Enum2806) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{3} } type Enum2851 int32 const ( Enum2851_ENUM_VALUE2852 Enum2851 = 0 Enum2851_ENUM_VALUE2853 Enum2851 = 0 Enum2851_ENUM_VALUE2854 Enum2851 = 1 Enum2851_ENUM_VALUE2855 Enum2851 = 2 Enum2851_ENUM_VALUE2856 Enum2851 = 3 Enum2851_ENUM_VALUE2857 Enum2851 = 4 Enum2851_ENUM_VALUE2858 Enum2851 = 5 Enum2851_ENUM_VALUE2859 Enum2851 = 6 Enum2851_ENUM_VALUE2860 Enum2851 = 7 Enum2851_ENUM_VALUE2861 Enum2851 = 8 Enum2851_ENUM_VALUE2862 Enum2851 = 9 Enum2851_ENUM_VALUE2863 Enum2851 = 10 Enum2851_ENUM_VALUE2864 Enum2851 = 11 Enum2851_ENUM_VALUE2865 Enum2851 = 12 Enum2851_ENUM_VALUE2866 Enum2851 = 13 Enum2851_ENUM_VALUE2867 Enum2851 = 14 Enum2851_ENUM_VALUE2868 Enum2851 = 15 Enum2851_ENUM_VALUE2869 Enum2851 = 16 Enum2851_ENUM_VALUE2870 Enum2851 = 17 Enum2851_ENUM_VALUE2871 Enum2851 = 18 Enum2851_ENUM_VALUE2872 Enum2851 = 19 Enum2851_ENUM_VALUE2873 Enum2851 = 20 Enum2851_ENUM_VALUE2874 Enum2851 = 21 Enum2851_ENUM_VALUE2875 Enum2851 = 22 Enum2851_ENUM_VALUE2876 Enum2851 = 23 Enum2851_ENUM_VALUE2877 Enum2851 = 24 Enum2851_ENUM_VALUE2878 Enum2851 = 25 Enum2851_ENUM_VALUE2879 Enum2851 = 26 Enum2851_ENUM_VALUE2880 Enum2851 = 27 Enum2851_ENUM_VALUE2881 Enum2851 = 28 Enum2851_ENUM_VALUE2882 Enum2851 = 29 Enum2851_ENUM_VALUE2883 Enum2851 = 30 Enum2851_ENUM_VALUE2884 Enum2851 = 31 Enum2851_ENUM_VALUE2885 Enum2851 = 32 Enum2851_ENUM_VALUE2886 Enum2851 = 33 Enum2851_ENUM_VALUE2887 Enum2851 = 34 Enum2851_ENUM_VALUE2888 Enum2851 = 35 Enum2851_ENUM_VALUE2889 Enum2851 = 36 Enum2851_ENUM_VALUE2890 Enum2851 = 37 Enum2851_ENUM_VALUE2891 Enum2851 = 38 Enum2851_ENUM_VALUE2892 Enum2851 = 39 Enum2851_ENUM_VALUE2893 Enum2851 = 40 Enum2851_ENUM_VALUE2894 Enum2851 = 41 Enum2851_ENUM_VALUE2895 Enum2851 = 42 Enum2851_ENUM_VALUE2896 Enum2851 = 43 Enum2851_ENUM_VALUE2897 Enum2851 = 44 Enum2851_ENUM_VALUE2898 Enum2851 = 45 Enum2851_ENUM_VALUE2899 Enum2851 = 46 Enum2851_ENUM_VALUE2900 Enum2851 = 47 Enum2851_ENUM_VALUE2901 Enum2851 = 48 Enum2851_ENUM_VALUE2902 Enum2851 = 49 Enum2851_ENUM_VALUE2903 Enum2851 = 50 Enum2851_ENUM_VALUE2904 Enum2851 = 51 Enum2851_ENUM_VALUE2905 Enum2851 = 52 Enum2851_ENUM_VALUE2906 Enum2851 = 53 Enum2851_ENUM_VALUE2907 Enum2851 = 54 Enum2851_ENUM_VALUE2908 Enum2851 = 55 Enum2851_ENUM_VALUE2909 Enum2851 = 56 Enum2851_ENUM_VALUE2910 Enum2851 = 57 Enum2851_ENUM_VALUE2911 Enum2851 = 58 Enum2851_ENUM_VALUE2912 Enum2851 = 59 Enum2851_ENUM_VALUE2913 Enum2851 = 60 Enum2851_ENUM_VALUE2914 Enum2851 = 61 Enum2851_ENUM_VALUE2915 Enum2851 = 62 Enum2851_ENUM_VALUE2916 Enum2851 = 63 Enum2851_ENUM_VALUE2917 Enum2851 = 64 Enum2851_ENUM_VALUE2918 Enum2851 = 65 Enum2851_ENUM_VALUE2919 Enum2851 = 66 Enum2851_ENUM_VALUE2920 Enum2851 = 67 Enum2851_ENUM_VALUE2921 Enum2851 = 68 Enum2851_ENUM_VALUE2922 Enum2851 = 69 Enum2851_ENUM_VALUE2923 Enum2851 = 70 Enum2851_ENUM_VALUE2924 Enum2851 = 71 Enum2851_ENUM_VALUE2925 Enum2851 = 72 Enum2851_ENUM_VALUE2926 Enum2851 = 73 Enum2851_ENUM_VALUE2927 Enum2851 = 74 Enum2851_ENUM_VALUE2928 Enum2851 = 75 Enum2851_ENUM_VALUE2929 Enum2851 = 76 Enum2851_ENUM_VALUE2930 Enum2851 = 77 Enum2851_ENUM_VALUE2931 Enum2851 = 78 Enum2851_ENUM_VALUE2932 Enum2851 = 79 Enum2851_ENUM_VALUE2933 Enum2851 = 80 Enum2851_ENUM_VALUE2934 Enum2851 = 81 Enum2851_ENUM_VALUE2935 Enum2851 = 82 Enum2851_ENUM_VALUE2936 Enum2851 = 83 Enum2851_ENUM_VALUE2937 Enum2851 = 84 Enum2851_ENUM_VALUE2938 Enum2851 = 85 Enum2851_ENUM_VALUE2939 Enum2851 = 86 Enum2851_ENUM_VALUE2940 Enum2851 = 87 Enum2851_ENUM_VALUE2941 Enum2851 = 88 Enum2851_ENUM_VALUE2942 Enum2851 = 89 Enum2851_ENUM_VALUE2943 Enum2851 = 90 Enum2851_ENUM_VALUE2944 Enum2851 = 91 Enum2851_ENUM_VALUE2945 Enum2851 = 92 Enum2851_ENUM_VALUE2946 Enum2851 = 93 Enum2851_ENUM_VALUE2947 Enum2851 = 94 Enum2851_ENUM_VALUE2948 Enum2851 = 95 Enum2851_ENUM_VALUE2949 Enum2851 = 96 Enum2851_ENUM_VALUE2950 Enum2851 = 97 Enum2851_ENUM_VALUE2951 Enum2851 = 98 Enum2851_ENUM_VALUE2952 Enum2851 = 99 Enum2851_ENUM_VALUE2953 Enum2851 = 100 Enum2851_ENUM_VALUE2954 Enum2851 = 101 Enum2851_ENUM_VALUE2955 Enum2851 = 102 Enum2851_ENUM_VALUE2956 Enum2851 = 103 Enum2851_ENUM_VALUE2957 Enum2851 = 104 Enum2851_ENUM_VALUE2958 Enum2851 = 105 Enum2851_ENUM_VALUE2959 Enum2851 = 106 Enum2851_ENUM_VALUE2960 Enum2851 = 107 Enum2851_ENUM_VALUE2961 Enum2851 = 108 Enum2851_ENUM_VALUE2962 Enum2851 = 109 Enum2851_ENUM_VALUE2963 Enum2851 = 110 Enum2851_ENUM_VALUE2964 Enum2851 = 111 Enum2851_ENUM_VALUE2965 Enum2851 = 112 Enum2851_ENUM_VALUE2966 Enum2851 = 113 Enum2851_ENUM_VALUE2967 Enum2851 = 114 Enum2851_ENUM_VALUE2968 Enum2851 = 115 Enum2851_ENUM_VALUE2969 Enum2851 = 116 Enum2851_ENUM_VALUE2970 Enum2851 = 117 Enum2851_ENUM_VALUE2971 Enum2851 = 118 Enum2851_ENUM_VALUE2972 Enum2851 = 119 ) // Enum value maps for Enum2851. var ( Enum2851_name = map[int32]string{ 0: "ENUM_VALUE2852", // Duplicate value: 0: "ENUM_VALUE2853", 1: "ENUM_VALUE2854", 2: "ENUM_VALUE2855", 3: "ENUM_VALUE2856", 4: "ENUM_VALUE2857", 5: "ENUM_VALUE2858", 6: "ENUM_VALUE2859", 7: "ENUM_VALUE2860", 8: "ENUM_VALUE2861", 9: "ENUM_VALUE2862", 10: "ENUM_VALUE2863", 11: "ENUM_VALUE2864", 12: "ENUM_VALUE2865", 13: "ENUM_VALUE2866", 14: "ENUM_VALUE2867", 15: "ENUM_VALUE2868", 16: "ENUM_VALUE2869", 17: "ENUM_VALUE2870", 18: "ENUM_VALUE2871", 19: "ENUM_VALUE2872", 20: "ENUM_VALUE2873", 21: "ENUM_VALUE2874", 22: "ENUM_VALUE2875", 23: "ENUM_VALUE2876", 24: "ENUM_VALUE2877", 25: "ENUM_VALUE2878", 26: "ENUM_VALUE2879", 27: "ENUM_VALUE2880", 28: "ENUM_VALUE2881", 29: "ENUM_VALUE2882", 30: "ENUM_VALUE2883", 31: "ENUM_VALUE2884", 32: "ENUM_VALUE2885", 33: "ENUM_VALUE2886", 34: "ENUM_VALUE2887", 35: "ENUM_VALUE2888", 36: "ENUM_VALUE2889", 37: "ENUM_VALUE2890", 38: "ENUM_VALUE2891", 39: "ENUM_VALUE2892", 40: "ENUM_VALUE2893", 41: "ENUM_VALUE2894", 42: "ENUM_VALUE2895", 43: "ENUM_VALUE2896", 44: "ENUM_VALUE2897", 45: "ENUM_VALUE2898", 46: "ENUM_VALUE2899", 47: "ENUM_VALUE2900", 48: "ENUM_VALUE2901", 49: "ENUM_VALUE2902", 50: "ENUM_VALUE2903", 51: "ENUM_VALUE2904", 52: "ENUM_VALUE2905", 53: "ENUM_VALUE2906", 54: "ENUM_VALUE2907", 55: "ENUM_VALUE2908", 56: "ENUM_VALUE2909", 57: "ENUM_VALUE2910", 58: "ENUM_VALUE2911", 59: "ENUM_VALUE2912", 60: "ENUM_VALUE2913", 61: "ENUM_VALUE2914", 62: "ENUM_VALUE2915", 63: "ENUM_VALUE2916", 64: "ENUM_VALUE2917", 65: "ENUM_VALUE2918", 66: "ENUM_VALUE2919", 67: "ENUM_VALUE2920", 68: "ENUM_VALUE2921", 69: "ENUM_VALUE2922", 70: "ENUM_VALUE2923", 71: "ENUM_VALUE2924", 72: "ENUM_VALUE2925", 73: "ENUM_VALUE2926", 74: "ENUM_VALUE2927", 75: "ENUM_VALUE2928", 76: "ENUM_VALUE2929", 77: "ENUM_VALUE2930", 78: "ENUM_VALUE2931", 79: "ENUM_VALUE2932", 80: "ENUM_VALUE2933", 81: "ENUM_VALUE2934", 82: "ENUM_VALUE2935", 83: "ENUM_VALUE2936", 84: "ENUM_VALUE2937", 85: "ENUM_VALUE2938", 86: "ENUM_VALUE2939", 87: "ENUM_VALUE2940", 88: "ENUM_VALUE2941", 89: "ENUM_VALUE2942", 90: "ENUM_VALUE2943", 91: "ENUM_VALUE2944", 92: "ENUM_VALUE2945", 93: "ENUM_VALUE2946", 94: "ENUM_VALUE2947", 95: "ENUM_VALUE2948", 96: "ENUM_VALUE2949", 97: "ENUM_VALUE2950", 98: "ENUM_VALUE2951", 99: "ENUM_VALUE2952", 100: "ENUM_VALUE2953", 101: "ENUM_VALUE2954", 102: "ENUM_VALUE2955", 103: "ENUM_VALUE2956", 104: "ENUM_VALUE2957", 105: "ENUM_VALUE2958", 106: "ENUM_VALUE2959", 107: "ENUM_VALUE2960", 108: "ENUM_VALUE2961", 109: "ENUM_VALUE2962", 110: "ENUM_VALUE2963", 111: "ENUM_VALUE2964", 112: "ENUM_VALUE2965", 113: "ENUM_VALUE2966", 114: "ENUM_VALUE2967", 115: "ENUM_VALUE2968", 116: "ENUM_VALUE2969", 117: "ENUM_VALUE2970", 118: "ENUM_VALUE2971", 119: "ENUM_VALUE2972", } Enum2851_value = map[string]int32{ "ENUM_VALUE2852": 0, "ENUM_VALUE2853": 0, "ENUM_VALUE2854": 1, "ENUM_VALUE2855": 2, "ENUM_VALUE2856": 3, "ENUM_VALUE2857": 4, "ENUM_VALUE2858": 5, "ENUM_VALUE2859": 6, "ENUM_VALUE2860": 7, "ENUM_VALUE2861": 8, "ENUM_VALUE2862": 9, "ENUM_VALUE2863": 10, "ENUM_VALUE2864": 11, "ENUM_VALUE2865": 12, "ENUM_VALUE2866": 13, "ENUM_VALUE2867": 14, "ENUM_VALUE2868": 15, "ENUM_VALUE2869": 16, "ENUM_VALUE2870": 17, "ENUM_VALUE2871": 18, "ENUM_VALUE2872": 19, "ENUM_VALUE2873": 20, "ENUM_VALUE2874": 21, "ENUM_VALUE2875": 22, "ENUM_VALUE2876": 23, "ENUM_VALUE2877": 24, "ENUM_VALUE2878": 25, "ENUM_VALUE2879": 26, "ENUM_VALUE2880": 27, "ENUM_VALUE2881": 28, "ENUM_VALUE2882": 29, "ENUM_VALUE2883": 30, "ENUM_VALUE2884": 31, "ENUM_VALUE2885": 32, "ENUM_VALUE2886": 33, "ENUM_VALUE2887": 34, "ENUM_VALUE2888": 35, "ENUM_VALUE2889": 36, "ENUM_VALUE2890": 37, "ENUM_VALUE2891": 38, "ENUM_VALUE2892": 39, "ENUM_VALUE2893": 40, "ENUM_VALUE2894": 41, "ENUM_VALUE2895": 42, "ENUM_VALUE2896": 43, "ENUM_VALUE2897": 44, "ENUM_VALUE2898": 45, "ENUM_VALUE2899": 46, "ENUM_VALUE2900": 47, "ENUM_VALUE2901": 48, "ENUM_VALUE2902": 49, "ENUM_VALUE2903": 50, "ENUM_VALUE2904": 51, "ENUM_VALUE2905": 52, "ENUM_VALUE2906": 53, "ENUM_VALUE2907": 54, "ENUM_VALUE2908": 55, "ENUM_VALUE2909": 56, "ENUM_VALUE2910": 57, "ENUM_VALUE2911": 58, "ENUM_VALUE2912": 59, "ENUM_VALUE2913": 60, "ENUM_VALUE2914": 61, "ENUM_VALUE2915": 62, "ENUM_VALUE2916": 63, "ENUM_VALUE2917": 64, "ENUM_VALUE2918": 65, "ENUM_VALUE2919": 66, "ENUM_VALUE2920": 67, "ENUM_VALUE2921": 68, "ENUM_VALUE2922": 69, "ENUM_VALUE2923": 70, "ENUM_VALUE2924": 71, "ENUM_VALUE2925": 72, "ENUM_VALUE2926": 73, "ENUM_VALUE2927": 74, "ENUM_VALUE2928": 75, "ENUM_VALUE2929": 76, "ENUM_VALUE2930": 77, "ENUM_VALUE2931": 78, "ENUM_VALUE2932": 79, "ENUM_VALUE2933": 80, "ENUM_VALUE2934": 81, "ENUM_VALUE2935": 82, "ENUM_VALUE2936": 83, "ENUM_VALUE2937": 84, "ENUM_VALUE2938": 85, "ENUM_VALUE2939": 86, "ENUM_VALUE2940": 87, "ENUM_VALUE2941": 88, "ENUM_VALUE2942": 89, "ENUM_VALUE2943": 90, "ENUM_VALUE2944": 91, "ENUM_VALUE2945": 92, "ENUM_VALUE2946": 93, "ENUM_VALUE2947": 94, "ENUM_VALUE2948": 95, "ENUM_VALUE2949": 96, "ENUM_VALUE2950": 97, "ENUM_VALUE2951": 98, "ENUM_VALUE2952": 99, "ENUM_VALUE2953": 100, "ENUM_VALUE2954": 101, "ENUM_VALUE2955": 102, "ENUM_VALUE2956": 103, "ENUM_VALUE2957": 104, "ENUM_VALUE2958": 105, "ENUM_VALUE2959": 106, "ENUM_VALUE2960": 107, "ENUM_VALUE2961": 108, "ENUM_VALUE2962": 109, "ENUM_VALUE2963": 110, "ENUM_VALUE2964": 111, "ENUM_VALUE2965": 112, "ENUM_VALUE2966": 113, "ENUM_VALUE2967": 114, "ENUM_VALUE2968": 115, "ENUM_VALUE2969": 116, "ENUM_VALUE2970": 117, "ENUM_VALUE2971": 118, "ENUM_VALUE2972": 119, } ) func (x Enum2851) Enum() *Enum2851 { p := new(Enum2851) *p = x return p } func (x Enum2851) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum2851) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[4].Descriptor() } func (Enum2851) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[4] } func (x Enum2851) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum2851) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum2851(num) return nil } // Deprecated: Use Enum2851.Descriptor instead. func (Enum2851) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{4} } type Enum2602 int32 const ( Enum2602_ENUM_VALUE2603 Enum2602 = 0 Enum2602_ENUM_VALUE2604 Enum2602 = 1 Enum2602_ENUM_VALUE2605 Enum2602 = 2 Enum2602_ENUM_VALUE2606 Enum2602 = 3 Enum2602_ENUM_VALUE2607 Enum2602 = 4 Enum2602_ENUM_VALUE2608 Enum2602 = 5 Enum2602_ENUM_VALUE2609 Enum2602 = 6 Enum2602_ENUM_VALUE2610 Enum2602 = 7 Enum2602_ENUM_VALUE2611 Enum2602 = 8 Enum2602_ENUM_VALUE2612 Enum2602 = 9 Enum2602_ENUM_VALUE2613 Enum2602 = 10 Enum2602_ENUM_VALUE2614 Enum2602 = 11 ) // Enum value maps for Enum2602. var ( Enum2602_name = map[int32]string{ 0: "ENUM_VALUE2603", 1: "ENUM_VALUE2604", 2: "ENUM_VALUE2605", 3: "ENUM_VALUE2606", 4: "ENUM_VALUE2607", 5: "ENUM_VALUE2608", 6: "ENUM_VALUE2609", 7: "ENUM_VALUE2610", 8: "ENUM_VALUE2611", 9: "ENUM_VALUE2612", 10: "ENUM_VALUE2613", 11: "ENUM_VALUE2614", } Enum2602_value = map[string]int32{ "ENUM_VALUE2603": 0, "ENUM_VALUE2604": 1, "ENUM_VALUE2605": 2, "ENUM_VALUE2606": 3, "ENUM_VALUE2607": 4, "ENUM_VALUE2608": 5, "ENUM_VALUE2609": 6, "ENUM_VALUE2610": 7, "ENUM_VALUE2611": 8, "ENUM_VALUE2612": 9, "ENUM_VALUE2613": 10, "ENUM_VALUE2614": 11, } ) func (x Enum2602) Enum() *Enum2602 { p := new(Enum2602) *p = x return p } func (x Enum2602) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum2602) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[5].Descriptor() } func (Enum2602) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[5] } func (x Enum2602) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum2602) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum2602(num) return nil } // Deprecated: Use Enum2602.Descriptor instead. func (Enum2602) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{5} } type Enum3071 int32 const ( Enum3071_ENUM_VALUE3072 Enum3071 = 1 Enum3071_ENUM_VALUE3073 Enum3071 = 2 Enum3071_ENUM_VALUE3074 Enum3071 = 3 Enum3071_ENUM_VALUE3075 Enum3071 = 4 Enum3071_ENUM_VALUE3076 Enum3071 = 5 Enum3071_ENUM_VALUE3077 Enum3071 = 6 Enum3071_ENUM_VALUE3078 Enum3071 = 7 Enum3071_ENUM_VALUE3079 Enum3071 = 8 Enum3071_ENUM_VALUE3080 Enum3071 = 9 Enum3071_ENUM_VALUE3081 Enum3071 = 10 Enum3071_ENUM_VALUE3082 Enum3071 = 11 Enum3071_ENUM_VALUE3083 Enum3071 = 12 Enum3071_ENUM_VALUE3084 Enum3071 = 13 Enum3071_ENUM_VALUE3085 Enum3071 = 14 Enum3071_ENUM_VALUE3086 Enum3071 = 15 Enum3071_ENUM_VALUE3087 Enum3071 = 16 Enum3071_ENUM_VALUE3088 Enum3071 = 17 Enum3071_ENUM_VALUE3089 Enum3071 = 18 Enum3071_ENUM_VALUE3090 Enum3071 = 19 Enum3071_ENUM_VALUE3091 Enum3071 = 20 Enum3071_ENUM_VALUE3092 Enum3071 = 21 Enum3071_ENUM_VALUE3093 Enum3071 = 22 Enum3071_ENUM_VALUE3094 Enum3071 = 23 Enum3071_ENUM_VALUE3095 Enum3071 = 24 Enum3071_ENUM_VALUE3096 Enum3071 = 25 Enum3071_ENUM_VALUE3097 Enum3071 = 26 Enum3071_ENUM_VALUE3098 Enum3071 = 27 Enum3071_ENUM_VALUE3099 Enum3071 = 28 ) // Enum value maps for Enum3071. var ( Enum3071_name = map[int32]string{ 1: "ENUM_VALUE3072", 2: "ENUM_VALUE3073", 3: "ENUM_VALUE3074", 4: "ENUM_VALUE3075", 5: "ENUM_VALUE3076", 6: "ENUM_VALUE3077", 7: "ENUM_VALUE3078", 8: "ENUM_VALUE3079", 9: "ENUM_VALUE3080", 10: "ENUM_VALUE3081", 11: "ENUM_VALUE3082", 12: "ENUM_VALUE3083", 13: "ENUM_VALUE3084", 14: "ENUM_VALUE3085", 15: "ENUM_VALUE3086", 16: "ENUM_VALUE3087", 17: "ENUM_VALUE3088", 18: "ENUM_VALUE3089", 19: "ENUM_VALUE3090", 20: "ENUM_VALUE3091", 21: "ENUM_VALUE3092", 22: "ENUM_VALUE3093", 23: "ENUM_VALUE3094", 24: "ENUM_VALUE3095", 25: "ENUM_VALUE3096", 26: "ENUM_VALUE3097", 27: "ENUM_VALUE3098", 28: "ENUM_VALUE3099", } Enum3071_value = map[string]int32{ "ENUM_VALUE3072": 1, "ENUM_VALUE3073": 2, "ENUM_VALUE3074": 3, "ENUM_VALUE3075": 4, "ENUM_VALUE3076": 5, "ENUM_VALUE3077": 6, "ENUM_VALUE3078": 7, "ENUM_VALUE3079": 8, "ENUM_VALUE3080": 9, "ENUM_VALUE3081": 10, "ENUM_VALUE3082": 11, "ENUM_VALUE3083": 12, "ENUM_VALUE3084": 13, "ENUM_VALUE3085": 14, "ENUM_VALUE3086": 15, "ENUM_VALUE3087": 16, "ENUM_VALUE3088": 17, "ENUM_VALUE3089": 18, "ENUM_VALUE3090": 19, "ENUM_VALUE3091": 20, "ENUM_VALUE3092": 21, "ENUM_VALUE3093": 22, "ENUM_VALUE3094": 23, "ENUM_VALUE3095": 24, "ENUM_VALUE3096": 25, "ENUM_VALUE3097": 26, "ENUM_VALUE3098": 27, "ENUM_VALUE3099": 28, } ) func (x Enum3071) Enum() *Enum3071 { p := new(Enum3071) *p = x return p } func (x Enum3071) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum3071) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[6].Descriptor() } func (Enum3071) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[6] } func (x Enum3071) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum3071) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum3071(num) return nil } // Deprecated: Use Enum3071.Descriptor instead. func (Enum3071) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{6} } type Enum3805 int32 const ( Enum3805_ENUM_VALUE3806 Enum3805 = 0 Enum3805_ENUM_VALUE3807 Enum3805 = 1 Enum3805_ENUM_VALUE3808 Enum3805 = 2 Enum3805_ENUM_VALUE3809 Enum3805 = 3 Enum3805_ENUM_VALUE3810 Enum3805 = 4 Enum3805_ENUM_VALUE3811 Enum3805 = 5 Enum3805_ENUM_VALUE3812 Enum3805 = 6 Enum3805_ENUM_VALUE3813 Enum3805 = 7 Enum3805_ENUM_VALUE3814 Enum3805 = 8 Enum3805_ENUM_VALUE3815 Enum3805 = 9 Enum3805_ENUM_VALUE3816 Enum3805 = 11 Enum3805_ENUM_VALUE3817 Enum3805 = 10 ) // Enum value maps for Enum3805. var ( Enum3805_name = map[int32]string{ 0: "ENUM_VALUE3806", 1: "ENUM_VALUE3807", 2: "ENUM_VALUE3808", 3: "ENUM_VALUE3809", 4: "ENUM_VALUE3810", 5: "ENUM_VALUE3811", 6: "ENUM_VALUE3812", 7: "ENUM_VALUE3813", 8: "ENUM_VALUE3814", 9: "ENUM_VALUE3815", 11: "ENUM_VALUE3816", 10: "ENUM_VALUE3817", } Enum3805_value = map[string]int32{ "ENUM_VALUE3806": 0, "ENUM_VALUE3807": 1, "ENUM_VALUE3808": 2, "ENUM_VALUE3809": 3, "ENUM_VALUE3810": 4, "ENUM_VALUE3811": 5, "ENUM_VALUE3812": 6, "ENUM_VALUE3813": 7, "ENUM_VALUE3814": 8, "ENUM_VALUE3815": 9, "ENUM_VALUE3816": 11, "ENUM_VALUE3817": 10, } ) func (x Enum3805) Enum() *Enum3805 { p := new(Enum3805) *p = x return p } func (x Enum3805) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum3805) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[7].Descriptor() } func (Enum3805) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[7] } func (x Enum3805) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum3805) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum3805(num) return nil } // Deprecated: Use Enum3805.Descriptor instead. func (Enum3805) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{7} } type Enum3783 int32 const ( Enum3783_ENUM_VALUE3784 Enum3783 = 0 Enum3783_ENUM_VALUE3785 Enum3783 = 1 Enum3783_ENUM_VALUE3786 Enum3783 = 2 Enum3783_ENUM_VALUE3787 Enum3783 = 3 Enum3783_ENUM_VALUE3788 Enum3783 = 4 Enum3783_ENUM_VALUE3789 Enum3783 = 5 Enum3783_ENUM_VALUE3790 Enum3783 = 6 Enum3783_ENUM_VALUE3791 Enum3783 = 7 Enum3783_ENUM_VALUE3792 Enum3783 = 8 Enum3783_ENUM_VALUE3793 Enum3783 = 9 Enum3783_ENUM_VALUE3794 Enum3783 = 10 Enum3783_ENUM_VALUE3795 Enum3783 = 11 Enum3783_ENUM_VALUE3796 Enum3783 = 12 Enum3783_ENUM_VALUE3797 Enum3783 = 13 Enum3783_ENUM_VALUE3798 Enum3783 = 14 Enum3783_ENUM_VALUE3799 Enum3783 = 15 Enum3783_ENUM_VALUE3800 Enum3783 = 16 Enum3783_ENUM_VALUE3801 Enum3783 = 20 Enum3783_ENUM_VALUE3802 Enum3783 = 21 Enum3783_ENUM_VALUE3803 Enum3783 = 50 ) // Enum value maps for Enum3783. var ( Enum3783_name = map[int32]string{ 0: "ENUM_VALUE3784", 1: "ENUM_VALUE3785", 2: "ENUM_VALUE3786", 3: "ENUM_VALUE3787", 4: "ENUM_VALUE3788", 5: "ENUM_VALUE3789", 6: "ENUM_VALUE3790", 7: "ENUM_VALUE3791", 8: "ENUM_VALUE3792", 9: "ENUM_VALUE3793", 10: "ENUM_VALUE3794", 11: "ENUM_VALUE3795", 12: "ENUM_VALUE3796", 13: "ENUM_VALUE3797", 14: "ENUM_VALUE3798", 15: "ENUM_VALUE3799", 16: "ENUM_VALUE3800", 20: "ENUM_VALUE3801", 21: "ENUM_VALUE3802", 50: "ENUM_VALUE3803", } Enum3783_value = map[string]int32{ "ENUM_VALUE3784": 0, "ENUM_VALUE3785": 1, "ENUM_VALUE3786": 2, "ENUM_VALUE3787": 3, "ENUM_VALUE3788": 4, "ENUM_VALUE3789": 5, "ENUM_VALUE3790": 6, "ENUM_VALUE3791": 7, "ENUM_VALUE3792": 8, "ENUM_VALUE3793": 9, "ENUM_VALUE3794": 10, "ENUM_VALUE3795": 11, "ENUM_VALUE3796": 12, "ENUM_VALUE3797": 13, "ENUM_VALUE3798": 14, "ENUM_VALUE3799": 15, "ENUM_VALUE3800": 16, "ENUM_VALUE3801": 20, "ENUM_VALUE3802": 21, "ENUM_VALUE3803": 50, } ) func (x Enum3783) Enum() *Enum3783 { p := new(Enum3783) *p = x return p } func (x Enum3783) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum3783) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[8].Descriptor() } func (Enum3783) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[8] } func (x Enum3783) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum3783) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum3783(num) return nil } // Deprecated: Use Enum3783.Descriptor instead. func (Enum3783) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{8} } type Enum3851 int32 const ( Enum3851_ENUM_VALUE3852 Enum3851 = 0 Enum3851_ENUM_VALUE3853 Enum3851 = 1 Enum3851_ENUM_VALUE3854 Enum3851 = 2 Enum3851_ENUM_VALUE3855 Enum3851 = 3 Enum3851_ENUM_VALUE3856 Enum3851 = 4 Enum3851_ENUM_VALUE3857 Enum3851 = 5 Enum3851_ENUM_VALUE3858 Enum3851 = 6 Enum3851_ENUM_VALUE3859 Enum3851 = 7 Enum3851_ENUM_VALUE3860 Enum3851 = 8 Enum3851_ENUM_VALUE3861 Enum3851 = 9 Enum3851_ENUM_VALUE3862 Enum3851 = 10 Enum3851_ENUM_VALUE3863 Enum3851 = 11 Enum3851_ENUM_VALUE3864 Enum3851 = 12 Enum3851_ENUM_VALUE3865 Enum3851 = 13 Enum3851_ENUM_VALUE3866 Enum3851 = 14 Enum3851_ENUM_VALUE3867 Enum3851 = 15 Enum3851_ENUM_VALUE3868 Enum3851 = 16 Enum3851_ENUM_VALUE3869 Enum3851 = 17 ) // Enum value maps for Enum3851. var ( Enum3851_name = map[int32]string{ 0: "ENUM_VALUE3852", 1: "ENUM_VALUE3853", 2: "ENUM_VALUE3854", 3: "ENUM_VALUE3855", 4: "ENUM_VALUE3856", 5: "ENUM_VALUE3857", 6: "ENUM_VALUE3858", 7: "ENUM_VALUE3859", 8: "ENUM_VALUE3860", 9: "ENUM_VALUE3861", 10: "ENUM_VALUE3862", 11: "ENUM_VALUE3863", 12: "ENUM_VALUE3864", 13: "ENUM_VALUE3865", 14: "ENUM_VALUE3866", 15: "ENUM_VALUE3867", 16: "ENUM_VALUE3868", 17: "ENUM_VALUE3869", } Enum3851_value = map[string]int32{ "ENUM_VALUE3852": 0, "ENUM_VALUE3853": 1, "ENUM_VALUE3854": 2, "ENUM_VALUE3855": 3, "ENUM_VALUE3856": 4, "ENUM_VALUE3857": 5, "ENUM_VALUE3858": 6, "ENUM_VALUE3859": 7, "ENUM_VALUE3860": 8, "ENUM_VALUE3861": 9, "ENUM_VALUE3862": 10, "ENUM_VALUE3863": 11, "ENUM_VALUE3864": 12, "ENUM_VALUE3865": 13, "ENUM_VALUE3866": 14, "ENUM_VALUE3867": 15, "ENUM_VALUE3868": 16, "ENUM_VALUE3869": 17, } ) func (x Enum3851) Enum() *Enum3851 { p := new(Enum3851) *p = x return p } func (x Enum3851) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum3851) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[9].Descriptor() } func (Enum3851) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[9] } func (x Enum3851) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum3851) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum3851(num) return nil } // Deprecated: Use Enum3851.Descriptor instead. func (Enum3851) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{9} } type Enum5862 int32 const ( Enum5862_ENUM_VALUE5863 Enum5862 = 1 Enum5862_ENUM_VALUE5864 Enum5862 = 2 Enum5862_ENUM_VALUE5865 Enum5862 = 3 ) // Enum value maps for Enum5862. var ( Enum5862_name = map[int32]string{ 1: "ENUM_VALUE5863", 2: "ENUM_VALUE5864", 3: "ENUM_VALUE5865", } Enum5862_value = map[string]int32{ "ENUM_VALUE5863": 1, "ENUM_VALUE5864": 2, "ENUM_VALUE5865": 3, } ) func (x Enum5862) Enum() *Enum5862 { p := new(Enum5862) *p = x return p } func (x Enum5862) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum5862) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[10].Descriptor() } func (Enum5862) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[10] } func (x Enum5862) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum5862) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum5862(num) return nil } // Deprecated: Use Enum5862.Descriptor instead. func (Enum5862) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{10} } type Enum5868 int32 const ( Enum5868_ENUM_VALUE5869 Enum5868 = 0 Enum5868_ENUM_VALUE5870 Enum5868 = 1 Enum5868_ENUM_VALUE5871 Enum5868 = 2 Enum5868_ENUM_VALUE5872 Enum5868 = 3 ) // Enum value maps for Enum5868. var ( Enum5868_name = map[int32]string{ 0: "ENUM_VALUE5869", 1: "ENUM_VALUE5870", 2: "ENUM_VALUE5871", 3: "ENUM_VALUE5872", } Enum5868_value = map[string]int32{ "ENUM_VALUE5869": 0, "ENUM_VALUE5870": 1, "ENUM_VALUE5871": 2, "ENUM_VALUE5872": 3, } ) func (x Enum5868) Enum() *Enum5868 { p := new(Enum5868) *p = x return p } func (x Enum5868) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum5868) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[11].Descriptor() } func (Enum5868) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[11] } func (x Enum5868) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum5868) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum5868(num) return nil } // Deprecated: Use Enum5868.Descriptor instead. func (Enum5868) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{11} } type Enum5873 int32 const ( Enum5873_ENUM_VALUE5874 Enum5873 = 0 Enum5873_ENUM_VALUE5875 Enum5873 = 1 Enum5873_ENUM_VALUE5876 Enum5873 = 2 ) // Enum value maps for Enum5873. var ( Enum5873_name = map[int32]string{ 0: "ENUM_VALUE5874", 1: "ENUM_VALUE5875", 2: "ENUM_VALUE5876", } Enum5873_value = map[string]int32{ "ENUM_VALUE5874": 0, "ENUM_VALUE5875": 1, "ENUM_VALUE5876": 2, } ) func (x Enum5873) Enum() *Enum5873 { p := new(Enum5873) *p = x return p } func (x Enum5873) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum5873) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[12].Descriptor() } func (Enum5873) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[12] } func (x Enum5873) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum5873) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum5873(num) return nil } // Deprecated: Use Enum5873.Descriptor instead. func (Enum5873) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{12} } type Enum5904 int32 const ( Enum5904_ENUM_VALUE5905 Enum5904 = 0 Enum5904_ENUM_VALUE5906 Enum5904 = 1 ) // Enum value maps for Enum5904. var ( Enum5904_name = map[int32]string{ 0: "ENUM_VALUE5905", 1: "ENUM_VALUE5906", } Enum5904_value = map[string]int32{ "ENUM_VALUE5905": 0, "ENUM_VALUE5906": 1, } ) func (x Enum5904) Enum() *Enum5904 { p := new(Enum5904) *p = x return p } func (x Enum5904) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum5904) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[13].Descriptor() } func (Enum5904) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[13] } func (x Enum5904) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum5904) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum5904(num) return nil } // Deprecated: Use Enum5904.Descriptor instead. func (Enum5904) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{13} } type Enum5909 int32 const ( Enum5909_ENUM_VALUE5910 Enum5909 = 0 Enum5909_ENUM_VALUE5911 Enum5909 = 1 ) // Enum value maps for Enum5909. var ( Enum5909_name = map[int32]string{ 0: "ENUM_VALUE5910", 1: "ENUM_VALUE5911", } Enum5909_value = map[string]int32{ "ENUM_VALUE5910": 0, "ENUM_VALUE5911": 1, } ) func (x Enum5909) Enum() *Enum5909 { p := new(Enum5909) *p = x return p } func (x Enum5909) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum5909) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[14].Descriptor() } func (Enum5909) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[14] } func (x Enum5909) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum5909) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum5909(num) return nil } // Deprecated: Use Enum5909.Descriptor instead. func (Enum5909) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{14} } type Enum5912 int32 const ( Enum5912_ENUM_VALUE5913 Enum5912 = 0 Enum5912_ENUM_VALUE5914 Enum5912 = 1 ) // Enum value maps for Enum5912. var ( Enum5912_name = map[int32]string{ 0: "ENUM_VALUE5913", 1: "ENUM_VALUE5914", } Enum5912_value = map[string]int32{ "ENUM_VALUE5913": 0, "ENUM_VALUE5914": 1, } ) func (x Enum5912) Enum() *Enum5912 { p := new(Enum5912) *p = x return p } func (x Enum5912) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum5912) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[15].Descriptor() } func (Enum5912) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[15] } func (x Enum5912) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum5912) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum5912(num) return nil } // Deprecated: Use Enum5912.Descriptor instead. func (Enum5912) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{15} } type Enum5915 int32 const ( Enum5915_ENUM_VALUE5916 Enum5915 = 0 Enum5915_ENUM_VALUE5917 Enum5915 = 1 Enum5915_ENUM_VALUE5918 Enum5915 = 2 Enum5915_ENUM_VALUE5919 Enum5915 = 3 ) // Enum value maps for Enum5915. var ( Enum5915_name = map[int32]string{ 0: "ENUM_VALUE5916", 1: "ENUM_VALUE5917", 2: "ENUM_VALUE5918", 3: "ENUM_VALUE5919", } Enum5915_value = map[string]int32{ "ENUM_VALUE5916": 0, "ENUM_VALUE5917": 1, "ENUM_VALUE5918": 2, "ENUM_VALUE5919": 3, } ) func (x Enum5915) Enum() *Enum5915 { p := new(Enum5915) *p = x return p } func (x Enum5915) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum5915) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[16].Descriptor() } func (Enum5915) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[16] } func (x Enum5915) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum5915) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum5915(num) return nil } // Deprecated: Use Enum5915.Descriptor instead. func (Enum5915) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{16} } type Enum5920 int32 const ( Enum5920_ENUM_VALUE5921 Enum5920 = 0 Enum5920_ENUM_VALUE5922 Enum5920 = 1 ) // Enum value maps for Enum5920. var ( Enum5920_name = map[int32]string{ 0: "ENUM_VALUE5921", 1: "ENUM_VALUE5922", } Enum5920_value = map[string]int32{ "ENUM_VALUE5921": 0, "ENUM_VALUE5922": 1, } ) func (x Enum5920) Enum() *Enum5920 { p := new(Enum5920) *p = x return p } func (x Enum5920) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum5920) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[17].Descriptor() } func (Enum5920) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[17] } func (x Enum5920) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum5920) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum5920(num) return nil } // Deprecated: Use Enum5920.Descriptor instead. func (Enum5920) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{17} } type Enum5923 int32 const ( Enum5923_ENUM_VALUE5924 Enum5923 = 0 Enum5923_ENUM_VALUE5925 Enum5923 = 1 Enum5923_ENUM_VALUE5926 Enum5923 = 2 Enum5923_ENUM_VALUE5927 Enum5923 = 3 ) // Enum value maps for Enum5923. var ( Enum5923_name = map[int32]string{ 0: "ENUM_VALUE5924", 1: "ENUM_VALUE5925", 2: "ENUM_VALUE5926", 3: "ENUM_VALUE5927", } Enum5923_value = map[string]int32{ "ENUM_VALUE5924": 0, "ENUM_VALUE5925": 1, "ENUM_VALUE5926": 2, "ENUM_VALUE5927": 3, } ) func (x Enum5923) Enum() *Enum5923 { p := new(Enum5923) *p = x return p } func (x Enum5923) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum5923) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[18].Descriptor() } func (Enum5923) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[18] } func (x Enum5923) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum5923) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum5923(num) return nil } // Deprecated: Use Enum5923.Descriptor instead. func (Enum5923) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{18} } type Enum5928 int32 const ( Enum5928_ENUM_VALUE5929 Enum5928 = 0 Enum5928_ENUM_VALUE5930 Enum5928 = 1 ) // Enum value maps for Enum5928. var ( Enum5928_name = map[int32]string{ 0: "ENUM_VALUE5929", 1: "ENUM_VALUE5930", } Enum5928_value = map[string]int32{ "ENUM_VALUE5929": 0, "ENUM_VALUE5930": 1, } ) func (x Enum5928) Enum() *Enum5928 { p := new(Enum5928) *p = x return p } func (x Enum5928) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum5928) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[19].Descriptor() } func (Enum5928) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[19] } func (x Enum5928) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum5928) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum5928(num) return nil } // Deprecated: Use Enum5928.Descriptor instead. func (Enum5928) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{19} } type Enum5931 int32 const ( Enum5931_ENUM_VALUE5932 Enum5931 = 0 Enum5931_ENUM_VALUE5933 Enum5931 = 1 Enum5931_ENUM_VALUE5934 Enum5931 = 2 ) // Enum value maps for Enum5931. var ( Enum5931_name = map[int32]string{ 0: "ENUM_VALUE5932", 1: "ENUM_VALUE5933", 2: "ENUM_VALUE5934", } Enum5931_value = map[string]int32{ "ENUM_VALUE5932": 0, "ENUM_VALUE5933": 1, "ENUM_VALUE5934": 2, } ) func (x Enum5931) Enum() *Enum5931 { p := new(Enum5931) *p = x return p } func (x Enum5931) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum5931) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[20].Descriptor() } func (Enum5931) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[20] } func (x Enum5931) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum5931) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum5931(num) return nil } // Deprecated: Use Enum5931.Descriptor instead. func (Enum5931) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{20} } type Enum5935 int32 const ( Enum5935_ENUM_VALUE5936 Enum5935 = 0 Enum5935_ENUM_VALUE5937 Enum5935 = 1 Enum5935_ENUM_VALUE5938 Enum5935 = 2 ) // Enum value maps for Enum5935. var ( Enum5935_name = map[int32]string{ 0: "ENUM_VALUE5936", 1: "ENUM_VALUE5937", 2: "ENUM_VALUE5938", } Enum5935_value = map[string]int32{ "ENUM_VALUE5936": 0, "ENUM_VALUE5937": 1, "ENUM_VALUE5938": 2, } ) func (x Enum5935) Enum() *Enum5935 { p := new(Enum5935) *p = x return p } func (x Enum5935) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum5935) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[21].Descriptor() } func (Enum5935) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[21] } func (x Enum5935) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum5935) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum5935(num) return nil } // Deprecated: Use Enum5935.Descriptor instead. func (Enum5935) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{21} } type Enum5939 int32 const ( Enum5939_ENUM_VALUE5940 Enum5939 = 0 Enum5939_ENUM_VALUE5941 Enum5939 = 1 Enum5939_ENUM_VALUE5942 Enum5939 = 2 Enum5939_ENUM_VALUE5943 Enum5939 = 3 Enum5939_ENUM_VALUE5944 Enum5939 = 4 Enum5939_ENUM_VALUE5945 Enum5939 = 5 ) // Enum value maps for Enum5939. var ( Enum5939_name = map[int32]string{ 0: "ENUM_VALUE5940", 1: "ENUM_VALUE5941", 2: "ENUM_VALUE5942", 3: "ENUM_VALUE5943", 4: "ENUM_VALUE5944", 5: "ENUM_VALUE5945", } Enum5939_value = map[string]int32{ "ENUM_VALUE5940": 0, "ENUM_VALUE5941": 1, "ENUM_VALUE5942": 2, "ENUM_VALUE5943": 3, "ENUM_VALUE5944": 4, "ENUM_VALUE5945": 5, } ) func (x Enum5939) Enum() *Enum5939 { p := new(Enum5939) *p = x return p } func (x Enum5939) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum5939) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[22].Descriptor() } func (Enum5939) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[22] } func (x Enum5939) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum5939) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum5939(num) return nil } // Deprecated: Use Enum5939.Descriptor instead. func (Enum5939) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{22} } type Enum5946 int32 const ( Enum5946_ENUM_VALUE5947 Enum5946 = 0 Enum5946_ENUM_VALUE5948 Enum5946 = 1 Enum5946_ENUM_VALUE5949 Enum5946 = 2 Enum5946_ENUM_VALUE5950 Enum5946 = 3 Enum5946_ENUM_VALUE5951 Enum5946 = 4 Enum5946_ENUM_VALUE5952 Enum5946 = 5 Enum5946_ENUM_VALUE5953 Enum5946 = 6 Enum5946_ENUM_VALUE5954 Enum5946 = 7 Enum5946_ENUM_VALUE5955 Enum5946 = 8 Enum5946_ENUM_VALUE5956 Enum5946 = 9 ) // Enum value maps for Enum5946. var ( Enum5946_name = map[int32]string{ 0: "ENUM_VALUE5947", 1: "ENUM_VALUE5948", 2: "ENUM_VALUE5949", 3: "ENUM_VALUE5950", 4: "ENUM_VALUE5951", 5: "ENUM_VALUE5952", 6: "ENUM_VALUE5953", 7: "ENUM_VALUE5954", 8: "ENUM_VALUE5955", 9: "ENUM_VALUE5956", } Enum5946_value = map[string]int32{ "ENUM_VALUE5947": 0, "ENUM_VALUE5948": 1, "ENUM_VALUE5949": 2, "ENUM_VALUE5950": 3, "ENUM_VALUE5951": 4, "ENUM_VALUE5952": 5, "ENUM_VALUE5953": 6, "ENUM_VALUE5954": 7, "ENUM_VALUE5955": 8, "ENUM_VALUE5956": 9, } ) func (x Enum5946) Enum() *Enum5946 { p := new(Enum5946) *p = x return p } func (x Enum5946) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum5946) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[23].Descriptor() } func (Enum5946) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[23] } func (x Enum5946) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum5946) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum5946(num) return nil } // Deprecated: Use Enum5946.Descriptor instead. func (Enum5946) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{23} } type Enum5957 int32 const ( Enum5957_ENUM_VALUE5958 Enum5957 = 0 Enum5957_ENUM_VALUE5959 Enum5957 = 1 Enum5957_ENUM_VALUE5960 Enum5957 = 2 Enum5957_ENUM_VALUE5961 Enum5957 = 3 ) // Enum value maps for Enum5957. var ( Enum5957_name = map[int32]string{ 0: "ENUM_VALUE5958", 1: "ENUM_VALUE5959", 2: "ENUM_VALUE5960", 3: "ENUM_VALUE5961", } Enum5957_value = map[string]int32{ "ENUM_VALUE5958": 0, "ENUM_VALUE5959": 1, "ENUM_VALUE5960": 2, "ENUM_VALUE5961": 3, } ) func (x Enum5957) Enum() *Enum5957 { p := new(Enum5957) *p = x return p } func (x Enum5957) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum5957) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[24].Descriptor() } func (Enum5957) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[24] } func (x Enum5957) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum5957) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum5957(num) return nil } // Deprecated: Use Enum5957.Descriptor instead. func (Enum5957) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{24} } type Enum5962 int32 const ( Enum5962_ENUM_VALUE5963 Enum5962 = 0 Enum5962_ENUM_VALUE5964 Enum5962 = 1 ) // Enum value maps for Enum5962. var ( Enum5962_name = map[int32]string{ 0: "ENUM_VALUE5963", 1: "ENUM_VALUE5964", } Enum5962_value = map[string]int32{ "ENUM_VALUE5963": 0, "ENUM_VALUE5964": 1, } ) func (x Enum5962) Enum() *Enum5962 { p := new(Enum5962) *p = x return p } func (x Enum5962) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum5962) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[25].Descriptor() } func (Enum5962) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[25] } func (x Enum5962) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum5962) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum5962(num) return nil } // Deprecated: Use Enum5962.Descriptor instead. func (Enum5962) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{25} } type Enum6025 int32 const ( Enum6025_ENUM_VALUE6026 Enum6025 = 0 Enum6025_ENUM_VALUE6027 Enum6025 = 1 Enum6025_ENUM_VALUE6028 Enum6025 = 2 Enum6025_ENUM_VALUE6029 Enum6025 = 3 Enum6025_ENUM_VALUE6030 Enum6025 = 4 Enum6025_ENUM_VALUE6031 Enum6025 = 5 Enum6025_ENUM_VALUE6032 Enum6025 = 6 Enum6025_ENUM_VALUE6033 Enum6025 = 7 Enum6025_ENUM_VALUE6034 Enum6025 = 8 Enum6025_ENUM_VALUE6035 Enum6025 = 9 Enum6025_ENUM_VALUE6036 Enum6025 = 10 Enum6025_ENUM_VALUE6037 Enum6025 = 11 Enum6025_ENUM_VALUE6038 Enum6025 = 12 Enum6025_ENUM_VALUE6039 Enum6025 = 13 Enum6025_ENUM_VALUE6040 Enum6025 = 14 Enum6025_ENUM_VALUE6041 Enum6025 = 15 Enum6025_ENUM_VALUE6042 Enum6025 = 16 Enum6025_ENUM_VALUE6043 Enum6025 = 17 Enum6025_ENUM_VALUE6044 Enum6025 = 18 Enum6025_ENUM_VALUE6045 Enum6025 = 19 Enum6025_ENUM_VALUE6046 Enum6025 = 20 Enum6025_ENUM_VALUE6047 Enum6025 = 21 ) // Enum value maps for Enum6025. var ( Enum6025_name = map[int32]string{ 0: "ENUM_VALUE6026", 1: "ENUM_VALUE6027", 2: "ENUM_VALUE6028", 3: "ENUM_VALUE6029", 4: "ENUM_VALUE6030", 5: "ENUM_VALUE6031", 6: "ENUM_VALUE6032", 7: "ENUM_VALUE6033", 8: "ENUM_VALUE6034", 9: "ENUM_VALUE6035", 10: "ENUM_VALUE6036", 11: "ENUM_VALUE6037", 12: "ENUM_VALUE6038", 13: "ENUM_VALUE6039", 14: "ENUM_VALUE6040", 15: "ENUM_VALUE6041", 16: "ENUM_VALUE6042", 17: "ENUM_VALUE6043", 18: "ENUM_VALUE6044", 19: "ENUM_VALUE6045", 20: "ENUM_VALUE6046", 21: "ENUM_VALUE6047", } Enum6025_value = map[string]int32{ "ENUM_VALUE6026": 0, "ENUM_VALUE6027": 1, "ENUM_VALUE6028": 2, "ENUM_VALUE6029": 3, "ENUM_VALUE6030": 4, "ENUM_VALUE6031": 5, "ENUM_VALUE6032": 6, "ENUM_VALUE6033": 7, "ENUM_VALUE6034": 8, "ENUM_VALUE6035": 9, "ENUM_VALUE6036": 10, "ENUM_VALUE6037": 11, "ENUM_VALUE6038": 12, "ENUM_VALUE6039": 13, "ENUM_VALUE6040": 14, "ENUM_VALUE6041": 15, "ENUM_VALUE6042": 16, "ENUM_VALUE6043": 17, "ENUM_VALUE6044": 18, "ENUM_VALUE6045": 19, "ENUM_VALUE6046": 20, "ENUM_VALUE6047": 21, } ) func (x Enum6025) Enum() *Enum6025 { p := new(Enum6025) *p = x return p } func (x Enum6025) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum6025) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[26].Descriptor() } func (Enum6025) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[26] } func (x Enum6025) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum6025) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum6025(num) return nil } // Deprecated: Use Enum6025.Descriptor instead. func (Enum6025) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{26} } type Enum6111 int32 const ( Enum6111_ENUM_VALUE6112 Enum6111 = 1 Enum6111_ENUM_VALUE6113 Enum6111 = 2 Enum6111_ENUM_VALUE6114 Enum6111 = 3 Enum6111_ENUM_VALUE6115 Enum6111 = 4 Enum6111_ENUM_VALUE6116 Enum6111 = 5 Enum6111_ENUM_VALUE6117 Enum6111 = 6 Enum6111_ENUM_VALUE6118 Enum6111 = 7 Enum6111_ENUM_VALUE6119 Enum6111 = 8 Enum6111_ENUM_VALUE6120 Enum6111 = 9 Enum6111_ENUM_VALUE6121 Enum6111 = 10 Enum6111_ENUM_VALUE6122 Enum6111 = 11 Enum6111_ENUM_VALUE6123 Enum6111 = 12 Enum6111_ENUM_VALUE6124 Enum6111 = 13 Enum6111_ENUM_VALUE6125 Enum6111 = 14 ) // Enum value maps for Enum6111. var ( Enum6111_name = map[int32]string{ 1: "ENUM_VALUE6112", 2: "ENUM_VALUE6113", 3: "ENUM_VALUE6114", 4: "ENUM_VALUE6115", 5: "ENUM_VALUE6116", 6: "ENUM_VALUE6117", 7: "ENUM_VALUE6118", 8: "ENUM_VALUE6119", 9: "ENUM_VALUE6120", 10: "ENUM_VALUE6121", 11: "ENUM_VALUE6122", 12: "ENUM_VALUE6123", 13: "ENUM_VALUE6124", 14: "ENUM_VALUE6125", } Enum6111_value = map[string]int32{ "ENUM_VALUE6112": 1, "ENUM_VALUE6113": 2, "ENUM_VALUE6114": 3, "ENUM_VALUE6115": 4, "ENUM_VALUE6116": 5, "ENUM_VALUE6117": 6, "ENUM_VALUE6118": 7, "ENUM_VALUE6119": 8, "ENUM_VALUE6120": 9, "ENUM_VALUE6121": 10, "ENUM_VALUE6122": 11, "ENUM_VALUE6123": 12, "ENUM_VALUE6124": 13, "ENUM_VALUE6125": 14, } ) func (x Enum6111) Enum() *Enum6111 { p := new(Enum6111) *p = x return p } func (x Enum6111) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum6111) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[27].Descriptor() } func (Enum6111) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[27] } func (x Enum6111) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum6111) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum6111(num) return nil } // Deprecated: Use Enum6111.Descriptor instead. func (Enum6111) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{27} } type Enum6065 int32 const ( Enum6065_ENUM_VALUE6066 Enum6065 = 0 Enum6065_ENUM_VALUE6067 Enum6065 = 1 Enum6065_ENUM_VALUE6068 Enum6065 = 2 Enum6065_ENUM_VALUE6069 Enum6065 = 3 Enum6065_ENUM_VALUE6070 Enum6065 = 4 Enum6065_ENUM_VALUE6071 Enum6065 = 5 Enum6065_ENUM_VALUE6072 Enum6065 = 6 Enum6065_ENUM_VALUE6073 Enum6065 = 7 Enum6065_ENUM_VALUE6074 Enum6065 = 8 Enum6065_ENUM_VALUE6075 Enum6065 = 9 Enum6065_ENUM_VALUE6076 Enum6065 = 10 Enum6065_ENUM_VALUE6077 Enum6065 = 11 Enum6065_ENUM_VALUE6078 Enum6065 = 12 Enum6065_ENUM_VALUE6079 Enum6065 = 13 Enum6065_ENUM_VALUE6080 Enum6065 = 14 ) // Enum value maps for Enum6065. var ( Enum6065_name = map[int32]string{ 0: "ENUM_VALUE6066", 1: "ENUM_VALUE6067", 2: "ENUM_VALUE6068", 3: "ENUM_VALUE6069", 4: "ENUM_VALUE6070", 5: "ENUM_VALUE6071", 6: "ENUM_VALUE6072", 7: "ENUM_VALUE6073", 8: "ENUM_VALUE6074", 9: "ENUM_VALUE6075", 10: "ENUM_VALUE6076", 11: "ENUM_VALUE6077", 12: "ENUM_VALUE6078", 13: "ENUM_VALUE6079", 14: "ENUM_VALUE6080", } Enum6065_value = map[string]int32{ "ENUM_VALUE6066": 0, "ENUM_VALUE6067": 1, "ENUM_VALUE6068": 2, "ENUM_VALUE6069": 3, "ENUM_VALUE6070": 4, "ENUM_VALUE6071": 5, "ENUM_VALUE6072": 6, "ENUM_VALUE6073": 7, "ENUM_VALUE6074": 8, "ENUM_VALUE6075": 9, "ENUM_VALUE6076": 10, "ENUM_VALUE6077": 11, "ENUM_VALUE6078": 12, "ENUM_VALUE6079": 13, "ENUM_VALUE6080": 14, } ) func (x Enum6065) Enum() *Enum6065 { p := new(Enum6065) *p = x return p } func (x Enum6065) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum6065) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[28].Descriptor() } func (Enum6065) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[28] } func (x Enum6065) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum6065) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum6065(num) return nil } // Deprecated: Use Enum6065.Descriptor instead. func (Enum6065) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{28} } type Enum6130 int32 const ( Enum6130_ENUM_VALUE6131 Enum6130 = 0 Enum6130_ENUM_VALUE6132 Enum6130 = 1 ) // Enum value maps for Enum6130. var ( Enum6130_name = map[int32]string{ 0: "ENUM_VALUE6131", 1: "ENUM_VALUE6132", } Enum6130_value = map[string]int32{ "ENUM_VALUE6131": 0, "ENUM_VALUE6132": 1, } ) func (x Enum6130) Enum() *Enum6130 { p := new(Enum6130) *p = x return p } func (x Enum6130) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum6130) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[29].Descriptor() } func (Enum6130) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[29] } func (x Enum6130) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum6130) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum6130(num) return nil } // Deprecated: Use Enum6130.Descriptor instead. func (Enum6130) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{29} } type Enum6579 int32 const ( Enum6579_ENUM_VALUE6580 Enum6579 = 0 Enum6579_ENUM_VALUE6581 Enum6579 = 2 Enum6579_ENUM_VALUE6582 Enum6579 = 3 Enum6579_ENUM_VALUE6583 Enum6579 = 5 Enum6579_ENUM_VALUE6584 Enum6579 = 10 Enum6579_ENUM_VALUE6585 Enum6579 = 15 Enum6579_ENUM_VALUE6586 Enum6579 = 25 Enum6579_ENUM_VALUE6587 Enum6579 = 30 ) // Enum value maps for Enum6579. var ( Enum6579_name = map[int32]string{ 0: "ENUM_VALUE6580", 2: "ENUM_VALUE6581", 3: "ENUM_VALUE6582", 5: "ENUM_VALUE6583", 10: "ENUM_VALUE6584", 15: "ENUM_VALUE6585", 25: "ENUM_VALUE6586", 30: "ENUM_VALUE6587", } Enum6579_value = map[string]int32{ "ENUM_VALUE6580": 0, "ENUM_VALUE6581": 2, "ENUM_VALUE6582": 3, "ENUM_VALUE6583": 5, "ENUM_VALUE6584": 10, "ENUM_VALUE6585": 15, "ENUM_VALUE6586": 25, "ENUM_VALUE6587": 30, } ) func (x Enum6579) Enum() *Enum6579 { p := new(Enum6579) *p = x return p } func (x Enum6579) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum6579) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[30].Descriptor() } func (Enum6579) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[30] } func (x Enum6579) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum6579) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum6579(num) return nil } // Deprecated: Use Enum6579.Descriptor instead. func (Enum6579) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{30} } type Enum6588 int32 const ( Enum6588_ENUM_VALUE6589 Enum6588 = 0 Enum6588_ENUM_VALUE6590 Enum6588 = 1 Enum6588_ENUM_VALUE6591 Enum6588 = 2 Enum6588_ENUM_VALUE6592 Enum6588 = 3 Enum6588_ENUM_VALUE6593 Enum6588 = 4 Enum6588_ENUM_VALUE6594 Enum6588 = 5 Enum6588_ENUM_VALUE6595 Enum6588 = 6 Enum6588_ENUM_VALUE6596 Enum6588 = 7 Enum6588_ENUM_VALUE6597 Enum6588 = 8 Enum6588_ENUM_VALUE6598 Enum6588 = 9 Enum6588_ENUM_VALUE6599 Enum6588 = 10 Enum6588_ENUM_VALUE6600 Enum6588 = 11 Enum6588_ENUM_VALUE6601 Enum6588 = 12 Enum6588_ENUM_VALUE6602 Enum6588 = 13 Enum6588_ENUM_VALUE6603 Enum6588 = 14 Enum6588_ENUM_VALUE6604 Enum6588 = 15 Enum6588_ENUM_VALUE6605 Enum6588 = 16 Enum6588_ENUM_VALUE6606 Enum6588 = 17 Enum6588_ENUM_VALUE6607 Enum6588 = 19 Enum6588_ENUM_VALUE6608 Enum6588 = 20 Enum6588_ENUM_VALUE6609 Enum6588 = 21 Enum6588_ENUM_VALUE6610 Enum6588 = 22 Enum6588_ENUM_VALUE6611 Enum6588 = 23 Enum6588_ENUM_VALUE6612 Enum6588 = 24 Enum6588_ENUM_VALUE6613 Enum6588 = 25 Enum6588_ENUM_VALUE6614 Enum6588 = 26 Enum6588_ENUM_VALUE6615 Enum6588 = 27 Enum6588_ENUM_VALUE6616 Enum6588 = 28 Enum6588_ENUM_VALUE6617 Enum6588 = 29 Enum6588_ENUM_VALUE6618 Enum6588 = 30 Enum6588_ENUM_VALUE6619 Enum6588 = 31 Enum6588_ENUM_VALUE6620 Enum6588 = 32 Enum6588_ENUM_VALUE6621 Enum6588 = 33 Enum6588_ENUM_VALUE6622 Enum6588 = 34 ) // Enum value maps for Enum6588. var ( Enum6588_name = map[int32]string{ 0: "ENUM_VALUE6589", 1: "ENUM_VALUE6590", 2: "ENUM_VALUE6591", 3: "ENUM_VALUE6592", 4: "ENUM_VALUE6593", 5: "ENUM_VALUE6594", 6: "ENUM_VALUE6595", 7: "ENUM_VALUE6596", 8: "ENUM_VALUE6597", 9: "ENUM_VALUE6598", 10: "ENUM_VALUE6599", 11: "ENUM_VALUE6600", 12: "ENUM_VALUE6601", 13: "ENUM_VALUE6602", 14: "ENUM_VALUE6603", 15: "ENUM_VALUE6604", 16: "ENUM_VALUE6605", 17: "ENUM_VALUE6606", 19: "ENUM_VALUE6607", 20: "ENUM_VALUE6608", 21: "ENUM_VALUE6609", 22: "ENUM_VALUE6610", 23: "ENUM_VALUE6611", 24: "ENUM_VALUE6612", 25: "ENUM_VALUE6613", 26: "ENUM_VALUE6614", 27: "ENUM_VALUE6615", 28: "ENUM_VALUE6616", 29: "ENUM_VALUE6617", 30: "ENUM_VALUE6618", 31: "ENUM_VALUE6619", 32: "ENUM_VALUE6620", 33: "ENUM_VALUE6621", 34: "ENUM_VALUE6622", } Enum6588_value = map[string]int32{ "ENUM_VALUE6589": 0, "ENUM_VALUE6590": 1, "ENUM_VALUE6591": 2, "ENUM_VALUE6592": 3, "ENUM_VALUE6593": 4, "ENUM_VALUE6594": 5, "ENUM_VALUE6595": 6, "ENUM_VALUE6596": 7, "ENUM_VALUE6597": 8, "ENUM_VALUE6598": 9, "ENUM_VALUE6599": 10, "ENUM_VALUE6600": 11, "ENUM_VALUE6601": 12, "ENUM_VALUE6602": 13, "ENUM_VALUE6603": 14, "ENUM_VALUE6604": 15, "ENUM_VALUE6605": 16, "ENUM_VALUE6606": 17, "ENUM_VALUE6607": 19, "ENUM_VALUE6608": 20, "ENUM_VALUE6609": 21, "ENUM_VALUE6610": 22, "ENUM_VALUE6611": 23, "ENUM_VALUE6612": 24, "ENUM_VALUE6613": 25, "ENUM_VALUE6614": 26, "ENUM_VALUE6615": 27, "ENUM_VALUE6616": 28, "ENUM_VALUE6617": 29, "ENUM_VALUE6618": 30, "ENUM_VALUE6619": 31, "ENUM_VALUE6620": 32, "ENUM_VALUE6621": 33, "ENUM_VALUE6622": 34, } ) func (x Enum6588) Enum() *Enum6588 { p := new(Enum6588) *p = x return p } func (x Enum6588) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum6588) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[31].Descriptor() } func (Enum6588) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[31] } func (x Enum6588) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum6588) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum6588(num) return nil } // Deprecated: Use Enum6588.Descriptor instead. func (Enum6588) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{31} } type Enum7288 int32 const ( Enum7288_ENUM_VALUE7289 Enum7288 = 0 Enum7288_ENUM_VALUE7290 Enum7288 = 1 Enum7288_ENUM_VALUE7291 Enum7288 = 2 Enum7288_ENUM_VALUE7292 Enum7288 = 3 ) // Enum value maps for Enum7288. var ( Enum7288_name = map[int32]string{ 0: "ENUM_VALUE7289", 1: "ENUM_VALUE7290", 2: "ENUM_VALUE7291", 3: "ENUM_VALUE7292", } Enum7288_value = map[string]int32{ "ENUM_VALUE7289": 0, "ENUM_VALUE7290": 1, "ENUM_VALUE7291": 2, "ENUM_VALUE7292": 3, } ) func (x Enum7288) Enum() *Enum7288 { p := new(Enum7288) *p = x return p } func (x Enum7288) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum7288) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[32].Descriptor() } func (Enum7288) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[32] } func (x Enum7288) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum7288) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum7288(num) return nil } // Deprecated: Use Enum7288.Descriptor instead. func (Enum7288) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{32} } type Enum7512 int32 const ( Enum7512_ENUM_VALUE7513 Enum7512 = 0 Enum7512_ENUM_VALUE7514 Enum7512 = 1 Enum7512_ENUM_VALUE7515 Enum7512 = 2 Enum7512_ENUM_VALUE7516 Enum7512 = 3 Enum7512_ENUM_VALUE7517 Enum7512 = 4 Enum7512_ENUM_VALUE7518 Enum7512 = 5 Enum7512_ENUM_VALUE7519 Enum7512 = 6 Enum7512_ENUM_VALUE7520 Enum7512 = 7 ) // Enum value maps for Enum7512. var ( Enum7512_name = map[int32]string{ 0: "ENUM_VALUE7513", 1: "ENUM_VALUE7514", 2: "ENUM_VALUE7515", 3: "ENUM_VALUE7516", 4: "ENUM_VALUE7517", 5: "ENUM_VALUE7518", 6: "ENUM_VALUE7519", 7: "ENUM_VALUE7520", } Enum7512_value = map[string]int32{ "ENUM_VALUE7513": 0, "ENUM_VALUE7514": 1, "ENUM_VALUE7515": 2, "ENUM_VALUE7516": 3, "ENUM_VALUE7517": 4, "ENUM_VALUE7518": 5, "ENUM_VALUE7519": 6, "ENUM_VALUE7520": 7, } ) func (x Enum7512) Enum() *Enum7512 { p := new(Enum7512) *p = x return p } func (x Enum7512) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum7512) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[33].Descriptor() } func (Enum7512) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[33] } func (x Enum7512) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum7512) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum7512(num) return nil } // Deprecated: Use Enum7512.Descriptor instead. func (Enum7512) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{33} } type Enum7922 int32 const ( Enum7922_ENUM_VALUE7923 Enum7922 = 1 Enum7922_ENUM_VALUE7924 Enum7922 = 2 Enum7922_ENUM_VALUE7925 Enum7922 = 3 Enum7922_ENUM_VALUE7926 Enum7922 = 4 Enum7922_ENUM_VALUE7927 Enum7922 = 5 ) // Enum value maps for Enum7922. var ( Enum7922_name = map[int32]string{ 1: "ENUM_VALUE7923", 2: "ENUM_VALUE7924", 3: "ENUM_VALUE7925", 4: "ENUM_VALUE7926", 5: "ENUM_VALUE7927", } Enum7922_value = map[string]int32{ "ENUM_VALUE7923": 1, "ENUM_VALUE7924": 2, "ENUM_VALUE7925": 3, "ENUM_VALUE7926": 4, "ENUM_VALUE7927": 5, } ) func (x Enum7922) Enum() *Enum7922 { p := new(Enum7922) *p = x return p } func (x Enum7922) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum7922) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[34].Descriptor() } func (Enum7922) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[34] } func (x Enum7922) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum7922) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum7922(num) return nil } // Deprecated: Use Enum7922.Descriptor instead. func (Enum7922) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{34} } type Enum3476 int32 const ( Enum3476_ENUM_VALUE3477 Enum3476 = 0 Enum3476_ENUM_VALUE3478 Enum3476 = 1 Enum3476_ENUM_VALUE3479 Enum3476 = 2 Enum3476_ENUM_VALUE3480 Enum3476 = 3 Enum3476_ENUM_VALUE3481 Enum3476 = 4 Enum3476_ENUM_VALUE3482 Enum3476 = 5 Enum3476_ENUM_VALUE3483 Enum3476 = 6 Enum3476_ENUM_VALUE3484 Enum3476 = 7 Enum3476_ENUM_VALUE3485 Enum3476 = 8 Enum3476_ENUM_VALUE3486 Enum3476 = 9 Enum3476_ENUM_VALUE3487 Enum3476 = 10 Enum3476_ENUM_VALUE3488 Enum3476 = 11 Enum3476_ENUM_VALUE3489 Enum3476 = 12 Enum3476_ENUM_VALUE3490 Enum3476 = 13 Enum3476_ENUM_VALUE3491 Enum3476 = 14 Enum3476_ENUM_VALUE3492 Enum3476 = 15 Enum3476_ENUM_VALUE3493 Enum3476 = 16 Enum3476_ENUM_VALUE3494 Enum3476 = 17 Enum3476_ENUM_VALUE3495 Enum3476 = 18 Enum3476_ENUM_VALUE3496 Enum3476 = 19 Enum3476_ENUM_VALUE3497 Enum3476 = 20 Enum3476_ENUM_VALUE3498 Enum3476 = 21 Enum3476_ENUM_VALUE3499 Enum3476 = 22 Enum3476_ENUM_VALUE3500 Enum3476 = 23 Enum3476_ENUM_VALUE3501 Enum3476 = 24 Enum3476_ENUM_VALUE3502 Enum3476 = 25 Enum3476_ENUM_VALUE3503 Enum3476 = 26 Enum3476_ENUM_VALUE3504 Enum3476 = 27 Enum3476_ENUM_VALUE3505 Enum3476 = 28 Enum3476_ENUM_VALUE3506 Enum3476 = 29 Enum3476_ENUM_VALUE3507 Enum3476 = 30 Enum3476_ENUM_VALUE3508 Enum3476 = 31 Enum3476_ENUM_VALUE3509 Enum3476 = 32 Enum3476_ENUM_VALUE3510 Enum3476 = 33 Enum3476_ENUM_VALUE3511 Enum3476 = 34 Enum3476_ENUM_VALUE3512 Enum3476 = 35 Enum3476_ENUM_VALUE3513 Enum3476 = 36 Enum3476_ENUM_VALUE3514 Enum3476 = 37 Enum3476_ENUM_VALUE3515 Enum3476 = 38 Enum3476_ENUM_VALUE3516 Enum3476 = 39 Enum3476_ENUM_VALUE3517 Enum3476 = 40 Enum3476_ENUM_VALUE3518 Enum3476 = 41 Enum3476_ENUM_VALUE3519 Enum3476 = 42 Enum3476_ENUM_VALUE3520 Enum3476 = 43 Enum3476_ENUM_VALUE3521 Enum3476 = 44 Enum3476_ENUM_VALUE3522 Enum3476 = 45 Enum3476_ENUM_VALUE3523 Enum3476 = 46 Enum3476_ENUM_VALUE3524 Enum3476 = 47 Enum3476_ENUM_VALUE3525 Enum3476 = 48 Enum3476_ENUM_VALUE3526 Enum3476 = 49 Enum3476_ENUM_VALUE3527 Enum3476 = 50 Enum3476_ENUM_VALUE3528 Enum3476 = 51 Enum3476_ENUM_VALUE3529 Enum3476 = 52 Enum3476_ENUM_VALUE3530 Enum3476 = 53 Enum3476_ENUM_VALUE3531 Enum3476 = 54 Enum3476_ENUM_VALUE3532 Enum3476 = 55 Enum3476_ENUM_VALUE3533 Enum3476 = 56 Enum3476_ENUM_VALUE3534 Enum3476 = 57 Enum3476_ENUM_VALUE3535 Enum3476 = 58 Enum3476_ENUM_VALUE3536 Enum3476 = 59 Enum3476_ENUM_VALUE3537 Enum3476 = 60 Enum3476_ENUM_VALUE3538 Enum3476 = 61 Enum3476_ENUM_VALUE3539 Enum3476 = 62 Enum3476_ENUM_VALUE3540 Enum3476 = 63 Enum3476_ENUM_VALUE3541 Enum3476 = 64 Enum3476_ENUM_VALUE3542 Enum3476 = 65 Enum3476_ENUM_VALUE3543 Enum3476 = 66 Enum3476_ENUM_VALUE3544 Enum3476 = 67 Enum3476_ENUM_VALUE3545 Enum3476 = 68 Enum3476_ENUM_VALUE3546 Enum3476 = 69 Enum3476_ENUM_VALUE3547 Enum3476 = 70 Enum3476_ENUM_VALUE3548 Enum3476 = 71 Enum3476_ENUM_VALUE3549 Enum3476 = 72 Enum3476_ENUM_VALUE3550 Enum3476 = 73 Enum3476_ENUM_VALUE3551 Enum3476 = 74 Enum3476_ENUM_VALUE3552 Enum3476 = 75 Enum3476_ENUM_VALUE3553 Enum3476 = 76 Enum3476_ENUM_VALUE3554 Enum3476 = 77 Enum3476_ENUM_VALUE3555 Enum3476 = 78 Enum3476_ENUM_VALUE3556 Enum3476 = 79 Enum3476_ENUM_VALUE3557 Enum3476 = 80 Enum3476_ENUM_VALUE3558 Enum3476 = 81 Enum3476_ENUM_VALUE3559 Enum3476 = 82 Enum3476_ENUM_VALUE3560 Enum3476 = 83 Enum3476_ENUM_VALUE3561 Enum3476 = 84 Enum3476_ENUM_VALUE3562 Enum3476 = 85 Enum3476_ENUM_VALUE3563 Enum3476 = 86 Enum3476_ENUM_VALUE3564 Enum3476 = 87 Enum3476_ENUM_VALUE3565 Enum3476 = 88 Enum3476_ENUM_VALUE3566 Enum3476 = 89 Enum3476_ENUM_VALUE3567 Enum3476 = 90 Enum3476_ENUM_VALUE3568 Enum3476 = 91 Enum3476_ENUM_VALUE3569 Enum3476 = 92 Enum3476_ENUM_VALUE3570 Enum3476 = 93 Enum3476_ENUM_VALUE3571 Enum3476 = 94 Enum3476_ENUM_VALUE3572 Enum3476 = 95 Enum3476_ENUM_VALUE3573 Enum3476 = 96 Enum3476_ENUM_VALUE3574 Enum3476 = 97 Enum3476_ENUM_VALUE3575 Enum3476 = 98 Enum3476_ENUM_VALUE3576 Enum3476 = 99 Enum3476_ENUM_VALUE3577 Enum3476 = 100 Enum3476_ENUM_VALUE3578 Enum3476 = 101 Enum3476_ENUM_VALUE3579 Enum3476 = 102 Enum3476_ENUM_VALUE3580 Enum3476 = 103 Enum3476_ENUM_VALUE3581 Enum3476 = 104 Enum3476_ENUM_VALUE3582 Enum3476 = 105 Enum3476_ENUM_VALUE3583 Enum3476 = 106 Enum3476_ENUM_VALUE3584 Enum3476 = 107 Enum3476_ENUM_VALUE3585 Enum3476 = 108 Enum3476_ENUM_VALUE3586 Enum3476 = 109 Enum3476_ENUM_VALUE3587 Enum3476 = 110 Enum3476_ENUM_VALUE3588 Enum3476 = 111 Enum3476_ENUM_VALUE3589 Enum3476 = 112 Enum3476_ENUM_VALUE3590 Enum3476 = 113 Enum3476_ENUM_VALUE3591 Enum3476 = 114 Enum3476_ENUM_VALUE3592 Enum3476 = 115 Enum3476_ENUM_VALUE3593 Enum3476 = 116 Enum3476_ENUM_VALUE3594 Enum3476 = 117 Enum3476_ENUM_VALUE3595 Enum3476 = 118 Enum3476_ENUM_VALUE3596 Enum3476 = 119 Enum3476_ENUM_VALUE3597 Enum3476 = 120 Enum3476_ENUM_VALUE3598 Enum3476 = 121 Enum3476_ENUM_VALUE3599 Enum3476 = 122 Enum3476_ENUM_VALUE3600 Enum3476 = 123 Enum3476_ENUM_VALUE3601 Enum3476 = 124 Enum3476_ENUM_VALUE3602 Enum3476 = 125 Enum3476_ENUM_VALUE3603 Enum3476 = 126 Enum3476_ENUM_VALUE3604 Enum3476 = 127 Enum3476_ENUM_VALUE3605 Enum3476 = 128 Enum3476_ENUM_VALUE3606 Enum3476 = 129 Enum3476_ENUM_VALUE3607 Enum3476 = 130 Enum3476_ENUM_VALUE3608 Enum3476 = 131 Enum3476_ENUM_VALUE3609 Enum3476 = 132 Enum3476_ENUM_VALUE3610 Enum3476 = 133 Enum3476_ENUM_VALUE3611 Enum3476 = 134 Enum3476_ENUM_VALUE3612 Enum3476 = 135 Enum3476_ENUM_VALUE3613 Enum3476 = 136 Enum3476_ENUM_VALUE3614 Enum3476 = 137 Enum3476_ENUM_VALUE3615 Enum3476 = 138 Enum3476_ENUM_VALUE3616 Enum3476 = 139 Enum3476_ENUM_VALUE3617 Enum3476 = 140 Enum3476_ENUM_VALUE3618 Enum3476 = 141 Enum3476_ENUM_VALUE3619 Enum3476 = 142 Enum3476_ENUM_VALUE3620 Enum3476 = 143 Enum3476_ENUM_VALUE3621 Enum3476 = 144 Enum3476_ENUM_VALUE3622 Enum3476 = 145 Enum3476_ENUM_VALUE3623 Enum3476 = 146 Enum3476_ENUM_VALUE3624 Enum3476 = 147 Enum3476_ENUM_VALUE3625 Enum3476 = 148 Enum3476_ENUM_VALUE3626 Enum3476 = 149 Enum3476_ENUM_VALUE3627 Enum3476 = 150 Enum3476_ENUM_VALUE3628 Enum3476 = 151 Enum3476_ENUM_VALUE3629 Enum3476 = 152 Enum3476_ENUM_VALUE3630 Enum3476 = 153 Enum3476_ENUM_VALUE3631 Enum3476 = 154 Enum3476_ENUM_VALUE3632 Enum3476 = 155 Enum3476_ENUM_VALUE3633 Enum3476 = 156 Enum3476_ENUM_VALUE3634 Enum3476 = 157 Enum3476_ENUM_VALUE3635 Enum3476 = 158 Enum3476_ENUM_VALUE3636 Enum3476 = 159 Enum3476_ENUM_VALUE3637 Enum3476 = 160 Enum3476_ENUM_VALUE3638 Enum3476 = 161 Enum3476_ENUM_VALUE3639 Enum3476 = 162 Enum3476_ENUM_VALUE3640 Enum3476 = 163 Enum3476_ENUM_VALUE3641 Enum3476 = 164 Enum3476_ENUM_VALUE3642 Enum3476 = 165 Enum3476_ENUM_VALUE3643 Enum3476 = 166 Enum3476_ENUM_VALUE3644 Enum3476 = 167 Enum3476_ENUM_VALUE3645 Enum3476 = 168 Enum3476_ENUM_VALUE3646 Enum3476 = 169 Enum3476_ENUM_VALUE3647 Enum3476 = 170 Enum3476_ENUM_VALUE3648 Enum3476 = 171 Enum3476_ENUM_VALUE3649 Enum3476 = 172 Enum3476_ENUM_VALUE3650 Enum3476 = 173 Enum3476_ENUM_VALUE3651 Enum3476 = 174 Enum3476_ENUM_VALUE3652 Enum3476 = 175 Enum3476_ENUM_VALUE3653 Enum3476 = 176 Enum3476_ENUM_VALUE3654 Enum3476 = 177 Enum3476_ENUM_VALUE3655 Enum3476 = 178 Enum3476_ENUM_VALUE3656 Enum3476 = 179 Enum3476_ENUM_VALUE3657 Enum3476 = 180 Enum3476_ENUM_VALUE3658 Enum3476 = 181 Enum3476_ENUM_VALUE3659 Enum3476 = 182 Enum3476_ENUM_VALUE3660 Enum3476 = 183 ) // Enum value maps for Enum3476. var ( Enum3476_name = map[int32]string{ 0: "ENUM_VALUE3477", 1: "ENUM_VALUE3478", 2: "ENUM_VALUE3479", 3: "ENUM_VALUE3480", 4: "ENUM_VALUE3481", 5: "ENUM_VALUE3482", 6: "ENUM_VALUE3483", 7: "ENUM_VALUE3484", 8: "ENUM_VALUE3485", 9: "ENUM_VALUE3486", 10: "ENUM_VALUE3487", 11: "ENUM_VALUE3488", 12: "ENUM_VALUE3489", 13: "ENUM_VALUE3490", 14: "ENUM_VALUE3491", 15: "ENUM_VALUE3492", 16: "ENUM_VALUE3493", 17: "ENUM_VALUE3494", 18: "ENUM_VALUE3495", 19: "ENUM_VALUE3496", 20: "ENUM_VALUE3497", 21: "ENUM_VALUE3498", 22: "ENUM_VALUE3499", 23: "ENUM_VALUE3500", 24: "ENUM_VALUE3501", 25: "ENUM_VALUE3502", 26: "ENUM_VALUE3503", 27: "ENUM_VALUE3504", 28: "ENUM_VALUE3505", 29: "ENUM_VALUE3506", 30: "ENUM_VALUE3507", 31: "ENUM_VALUE3508", 32: "ENUM_VALUE3509", 33: "ENUM_VALUE3510", 34: "ENUM_VALUE3511", 35: "ENUM_VALUE3512", 36: "ENUM_VALUE3513", 37: "ENUM_VALUE3514", 38: "ENUM_VALUE3515", 39: "ENUM_VALUE3516", 40: "ENUM_VALUE3517", 41: "ENUM_VALUE3518", 42: "ENUM_VALUE3519", 43: "ENUM_VALUE3520", 44: "ENUM_VALUE3521", 45: "ENUM_VALUE3522", 46: "ENUM_VALUE3523", 47: "ENUM_VALUE3524", 48: "ENUM_VALUE3525", 49: "ENUM_VALUE3526", 50: "ENUM_VALUE3527", 51: "ENUM_VALUE3528", 52: "ENUM_VALUE3529", 53: "ENUM_VALUE3530", 54: "ENUM_VALUE3531", 55: "ENUM_VALUE3532", 56: "ENUM_VALUE3533", 57: "ENUM_VALUE3534", 58: "ENUM_VALUE3535", 59: "ENUM_VALUE3536", 60: "ENUM_VALUE3537", 61: "ENUM_VALUE3538", 62: "ENUM_VALUE3539", 63: "ENUM_VALUE3540", 64: "ENUM_VALUE3541", 65: "ENUM_VALUE3542", 66: "ENUM_VALUE3543", 67: "ENUM_VALUE3544", 68: "ENUM_VALUE3545", 69: "ENUM_VALUE3546", 70: "ENUM_VALUE3547", 71: "ENUM_VALUE3548", 72: "ENUM_VALUE3549", 73: "ENUM_VALUE3550", 74: "ENUM_VALUE3551", 75: "ENUM_VALUE3552", 76: "ENUM_VALUE3553", 77: "ENUM_VALUE3554", 78: "ENUM_VALUE3555", 79: "ENUM_VALUE3556", 80: "ENUM_VALUE3557", 81: "ENUM_VALUE3558", 82: "ENUM_VALUE3559", 83: "ENUM_VALUE3560", 84: "ENUM_VALUE3561", 85: "ENUM_VALUE3562", 86: "ENUM_VALUE3563", 87: "ENUM_VALUE3564", 88: "ENUM_VALUE3565", 89: "ENUM_VALUE3566", 90: "ENUM_VALUE3567", 91: "ENUM_VALUE3568", 92: "ENUM_VALUE3569", 93: "ENUM_VALUE3570", 94: "ENUM_VALUE3571", 95: "ENUM_VALUE3572", 96: "ENUM_VALUE3573", 97: "ENUM_VALUE3574", 98: "ENUM_VALUE3575", 99: "ENUM_VALUE3576", 100: "ENUM_VALUE3577", 101: "ENUM_VALUE3578", 102: "ENUM_VALUE3579", 103: "ENUM_VALUE3580", 104: "ENUM_VALUE3581", 105: "ENUM_VALUE3582", 106: "ENUM_VALUE3583", 107: "ENUM_VALUE3584", 108: "ENUM_VALUE3585", 109: "ENUM_VALUE3586", 110: "ENUM_VALUE3587", 111: "ENUM_VALUE3588", 112: "ENUM_VALUE3589", 113: "ENUM_VALUE3590", 114: "ENUM_VALUE3591", 115: "ENUM_VALUE3592", 116: "ENUM_VALUE3593", 117: "ENUM_VALUE3594", 118: "ENUM_VALUE3595", 119: "ENUM_VALUE3596", 120: "ENUM_VALUE3597", 121: "ENUM_VALUE3598", 122: "ENUM_VALUE3599", 123: "ENUM_VALUE3600", 124: "ENUM_VALUE3601", 125: "ENUM_VALUE3602", 126: "ENUM_VALUE3603", 127: "ENUM_VALUE3604", 128: "ENUM_VALUE3605", 129: "ENUM_VALUE3606", 130: "ENUM_VALUE3607", 131: "ENUM_VALUE3608", 132: "ENUM_VALUE3609", 133: "ENUM_VALUE3610", 134: "ENUM_VALUE3611", 135: "ENUM_VALUE3612", 136: "ENUM_VALUE3613", 137: "ENUM_VALUE3614", 138: "ENUM_VALUE3615", 139: "ENUM_VALUE3616", 140: "ENUM_VALUE3617", 141: "ENUM_VALUE3618", 142: "ENUM_VALUE3619", 143: "ENUM_VALUE3620", 144: "ENUM_VALUE3621", 145: "ENUM_VALUE3622", 146: "ENUM_VALUE3623", 147: "ENUM_VALUE3624", 148: "ENUM_VALUE3625", 149: "ENUM_VALUE3626", 150: "ENUM_VALUE3627", 151: "ENUM_VALUE3628", 152: "ENUM_VALUE3629", 153: "ENUM_VALUE3630", 154: "ENUM_VALUE3631", 155: "ENUM_VALUE3632", 156: "ENUM_VALUE3633", 157: "ENUM_VALUE3634", 158: "ENUM_VALUE3635", 159: "ENUM_VALUE3636", 160: "ENUM_VALUE3637", 161: "ENUM_VALUE3638", 162: "ENUM_VALUE3639", 163: "ENUM_VALUE3640", 164: "ENUM_VALUE3641", 165: "ENUM_VALUE3642", 166: "ENUM_VALUE3643", 167: "ENUM_VALUE3644", 168: "ENUM_VALUE3645", 169: "ENUM_VALUE3646", 170: "ENUM_VALUE3647", 171: "ENUM_VALUE3648", 172: "ENUM_VALUE3649", 173: "ENUM_VALUE3650", 174: "ENUM_VALUE3651", 175: "ENUM_VALUE3652", 176: "ENUM_VALUE3653", 177: "ENUM_VALUE3654", 178: "ENUM_VALUE3655", 179: "ENUM_VALUE3656", 180: "ENUM_VALUE3657", 181: "ENUM_VALUE3658", 182: "ENUM_VALUE3659", 183: "ENUM_VALUE3660", } Enum3476_value = map[string]int32{ "ENUM_VALUE3477": 0, "ENUM_VALUE3478": 1, "ENUM_VALUE3479": 2, "ENUM_VALUE3480": 3, "ENUM_VALUE3481": 4, "ENUM_VALUE3482": 5, "ENUM_VALUE3483": 6, "ENUM_VALUE3484": 7, "ENUM_VALUE3485": 8, "ENUM_VALUE3486": 9, "ENUM_VALUE3487": 10, "ENUM_VALUE3488": 11, "ENUM_VALUE3489": 12, "ENUM_VALUE3490": 13, "ENUM_VALUE3491": 14, "ENUM_VALUE3492": 15, "ENUM_VALUE3493": 16, "ENUM_VALUE3494": 17, "ENUM_VALUE3495": 18, "ENUM_VALUE3496": 19, "ENUM_VALUE3497": 20, "ENUM_VALUE3498": 21, "ENUM_VALUE3499": 22, "ENUM_VALUE3500": 23, "ENUM_VALUE3501": 24, "ENUM_VALUE3502": 25, "ENUM_VALUE3503": 26, "ENUM_VALUE3504": 27, "ENUM_VALUE3505": 28, "ENUM_VALUE3506": 29, "ENUM_VALUE3507": 30, "ENUM_VALUE3508": 31, "ENUM_VALUE3509": 32, "ENUM_VALUE3510": 33, "ENUM_VALUE3511": 34, "ENUM_VALUE3512": 35, "ENUM_VALUE3513": 36, "ENUM_VALUE3514": 37, "ENUM_VALUE3515": 38, "ENUM_VALUE3516": 39, "ENUM_VALUE3517": 40, "ENUM_VALUE3518": 41, "ENUM_VALUE3519": 42, "ENUM_VALUE3520": 43, "ENUM_VALUE3521": 44, "ENUM_VALUE3522": 45, "ENUM_VALUE3523": 46, "ENUM_VALUE3524": 47, "ENUM_VALUE3525": 48, "ENUM_VALUE3526": 49, "ENUM_VALUE3527": 50, "ENUM_VALUE3528": 51, "ENUM_VALUE3529": 52, "ENUM_VALUE3530": 53, "ENUM_VALUE3531": 54, "ENUM_VALUE3532": 55, "ENUM_VALUE3533": 56, "ENUM_VALUE3534": 57, "ENUM_VALUE3535": 58, "ENUM_VALUE3536": 59, "ENUM_VALUE3537": 60, "ENUM_VALUE3538": 61, "ENUM_VALUE3539": 62, "ENUM_VALUE3540": 63, "ENUM_VALUE3541": 64, "ENUM_VALUE3542": 65, "ENUM_VALUE3543": 66, "ENUM_VALUE3544": 67, "ENUM_VALUE3545": 68, "ENUM_VALUE3546": 69, "ENUM_VALUE3547": 70, "ENUM_VALUE3548": 71, "ENUM_VALUE3549": 72, "ENUM_VALUE3550": 73, "ENUM_VALUE3551": 74, "ENUM_VALUE3552": 75, "ENUM_VALUE3553": 76, "ENUM_VALUE3554": 77, "ENUM_VALUE3555": 78, "ENUM_VALUE3556": 79, "ENUM_VALUE3557": 80, "ENUM_VALUE3558": 81, "ENUM_VALUE3559": 82, "ENUM_VALUE3560": 83, "ENUM_VALUE3561": 84, "ENUM_VALUE3562": 85, "ENUM_VALUE3563": 86, "ENUM_VALUE3564": 87, "ENUM_VALUE3565": 88, "ENUM_VALUE3566": 89, "ENUM_VALUE3567": 90, "ENUM_VALUE3568": 91, "ENUM_VALUE3569": 92, "ENUM_VALUE3570": 93, "ENUM_VALUE3571": 94, "ENUM_VALUE3572": 95, "ENUM_VALUE3573": 96, "ENUM_VALUE3574": 97, "ENUM_VALUE3575": 98, "ENUM_VALUE3576": 99, "ENUM_VALUE3577": 100, "ENUM_VALUE3578": 101, "ENUM_VALUE3579": 102, "ENUM_VALUE3580": 103, "ENUM_VALUE3581": 104, "ENUM_VALUE3582": 105, "ENUM_VALUE3583": 106, "ENUM_VALUE3584": 107, "ENUM_VALUE3585": 108, "ENUM_VALUE3586": 109, "ENUM_VALUE3587": 110, "ENUM_VALUE3588": 111, "ENUM_VALUE3589": 112, "ENUM_VALUE3590": 113, "ENUM_VALUE3591": 114, "ENUM_VALUE3592": 115, "ENUM_VALUE3593": 116, "ENUM_VALUE3594": 117, "ENUM_VALUE3595": 118, "ENUM_VALUE3596": 119, "ENUM_VALUE3597": 120, "ENUM_VALUE3598": 121, "ENUM_VALUE3599": 122, "ENUM_VALUE3600": 123, "ENUM_VALUE3601": 124, "ENUM_VALUE3602": 125, "ENUM_VALUE3603": 126, "ENUM_VALUE3604": 127, "ENUM_VALUE3605": 128, "ENUM_VALUE3606": 129, "ENUM_VALUE3607": 130, "ENUM_VALUE3608": 131, "ENUM_VALUE3609": 132, "ENUM_VALUE3610": 133, "ENUM_VALUE3611": 134, "ENUM_VALUE3612": 135, "ENUM_VALUE3613": 136, "ENUM_VALUE3614": 137, "ENUM_VALUE3615": 138, "ENUM_VALUE3616": 139, "ENUM_VALUE3617": 140, "ENUM_VALUE3618": 141, "ENUM_VALUE3619": 142, "ENUM_VALUE3620": 143, "ENUM_VALUE3621": 144, "ENUM_VALUE3622": 145, "ENUM_VALUE3623": 146, "ENUM_VALUE3624": 147, "ENUM_VALUE3625": 148, "ENUM_VALUE3626": 149, "ENUM_VALUE3627": 150, "ENUM_VALUE3628": 151, "ENUM_VALUE3629": 152, "ENUM_VALUE3630": 153, "ENUM_VALUE3631": 154, "ENUM_VALUE3632": 155, "ENUM_VALUE3633": 156, "ENUM_VALUE3634": 157, "ENUM_VALUE3635": 158, "ENUM_VALUE3636": 159, "ENUM_VALUE3637": 160, "ENUM_VALUE3638": 161, "ENUM_VALUE3639": 162, "ENUM_VALUE3640": 163, "ENUM_VALUE3641": 164, "ENUM_VALUE3642": 165, "ENUM_VALUE3643": 166, "ENUM_VALUE3644": 167, "ENUM_VALUE3645": 168, "ENUM_VALUE3646": 169, "ENUM_VALUE3647": 170, "ENUM_VALUE3648": 171, "ENUM_VALUE3649": 172, "ENUM_VALUE3650": 173, "ENUM_VALUE3651": 174, "ENUM_VALUE3652": 175, "ENUM_VALUE3653": 176, "ENUM_VALUE3654": 177, "ENUM_VALUE3655": 178, "ENUM_VALUE3656": 179, "ENUM_VALUE3657": 180, "ENUM_VALUE3658": 181, "ENUM_VALUE3659": 182, "ENUM_VALUE3660": 183, } ) func (x Enum3476) Enum() *Enum3476 { p := new(Enum3476) *p = x return p } func (x Enum3476) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum3476) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[35].Descriptor() } func (Enum3476) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[35] } func (x Enum3476) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum3476) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum3476(num) return nil } // Deprecated: Use Enum3476.Descriptor instead. func (Enum3476) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{35} } type Enum10325 int32 const ( Enum10325_ENUM_VALUE10326 Enum10325 = 0 Enum10325_ENUM_VALUE10327 Enum10325 = 1 Enum10325_ENUM_VALUE10328 Enum10325 = 2 Enum10325_ENUM_VALUE10329 Enum10325 = 3 Enum10325_ENUM_VALUE10330 Enum10325 = 4 Enum10325_ENUM_VALUE10331 Enum10325 = 5 Enum10325_ENUM_VALUE10332 Enum10325 = 6 Enum10325_ENUM_VALUE10333 Enum10325 = 7 Enum10325_ENUM_VALUE10334 Enum10325 = 8 ) // Enum value maps for Enum10325. var ( Enum10325_name = map[int32]string{ 0: "ENUM_VALUE10326", 1: "ENUM_VALUE10327", 2: "ENUM_VALUE10328", 3: "ENUM_VALUE10329", 4: "ENUM_VALUE10330", 5: "ENUM_VALUE10331", 6: "ENUM_VALUE10332", 7: "ENUM_VALUE10333", 8: "ENUM_VALUE10334", } Enum10325_value = map[string]int32{ "ENUM_VALUE10326": 0, "ENUM_VALUE10327": 1, "ENUM_VALUE10328": 2, "ENUM_VALUE10329": 3, "ENUM_VALUE10330": 4, "ENUM_VALUE10331": 5, "ENUM_VALUE10332": 6, "ENUM_VALUE10333": 7, "ENUM_VALUE10334": 8, } ) func (x Enum10325) Enum() *Enum10325 { p := new(Enum10325) *p = x return p } func (x Enum10325) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum10325) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[36].Descriptor() } func (Enum10325) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[36] } func (x Enum10325) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum10325) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum10325(num) return nil } // Deprecated: Use Enum10325.Descriptor instead. func (Enum10325) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{36} } type Enum10335 int32 const ( Enum10335_ENUM_VALUE10336 Enum10335 = 0 ) // Enum value maps for Enum10335. var ( Enum10335_name = map[int32]string{ 0: "ENUM_VALUE10336", } Enum10335_value = map[string]int32{ "ENUM_VALUE10336": 0, } ) func (x Enum10335) Enum() *Enum10335 { p := new(Enum10335) *p = x return p } func (x Enum10335) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum10335) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[37].Descriptor() } func (Enum10335) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[37] } func (x Enum10335) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum10335) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum10335(num) return nil } // Deprecated: Use Enum10335.Descriptor instead. func (Enum10335) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{37} } type Enum10337 int32 const ( Enum10337_ENUM_VALUE10338 Enum10337 = 0 Enum10337_ENUM_VALUE10339 Enum10337 = 1 ) // Enum value maps for Enum10337. var ( Enum10337_name = map[int32]string{ 0: "ENUM_VALUE10338", 1: "ENUM_VALUE10339", } Enum10337_value = map[string]int32{ "ENUM_VALUE10338": 0, "ENUM_VALUE10339": 1, } ) func (x Enum10337) Enum() *Enum10337 { p := new(Enum10337) *p = x return p } func (x Enum10337) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum10337) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[38].Descriptor() } func (Enum10337) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[38] } func (x Enum10337) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum10337) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum10337(num) return nil } // Deprecated: Use Enum10337.Descriptor instead. func (Enum10337) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{38} } type Enum11901 int32 const ( Enum11901_ENUM_VALUE11902 Enum11901 = 0 Enum11901_ENUM_VALUE11903 Enum11901 = 1 Enum11901_ENUM_VALUE11904 Enum11901 = 2 Enum11901_ENUM_VALUE11905 Enum11901 = 3 ) // Enum value maps for Enum11901. var ( Enum11901_name = map[int32]string{ 0: "ENUM_VALUE11902", 1: "ENUM_VALUE11903", 2: "ENUM_VALUE11904", 3: "ENUM_VALUE11905", } Enum11901_value = map[string]int32{ "ENUM_VALUE11902": 0, "ENUM_VALUE11903": 1, "ENUM_VALUE11904": 2, "ENUM_VALUE11905": 3, } ) func (x Enum11901) Enum() *Enum11901 { p := new(Enum11901) *p = x return p } func (x Enum11901) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum11901) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[39].Descriptor() } func (Enum11901) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[39] } func (x Enum11901) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum11901) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum11901(num) return nil } // Deprecated: Use Enum11901.Descriptor instead. func (Enum11901) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{39} } type Enum12735 int32 const ( Enum12735_ENUM_VALUE12736 Enum12735 = 0 Enum12735_ENUM_VALUE12737 Enum12735 = 1 Enum12735_ENUM_VALUE12738 Enum12735 = 2 Enum12735_ENUM_VALUE12739 Enum12735 = 3 ) // Enum value maps for Enum12735. var ( Enum12735_name = map[int32]string{ 0: "ENUM_VALUE12736", 1: "ENUM_VALUE12737", 2: "ENUM_VALUE12738", 3: "ENUM_VALUE12739", } Enum12735_value = map[string]int32{ "ENUM_VALUE12736": 0, "ENUM_VALUE12737": 1, "ENUM_VALUE12738": 2, "ENUM_VALUE12739": 3, } ) func (x Enum12735) Enum() *Enum12735 { p := new(Enum12735) *p = x return p } func (x Enum12735) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum12735) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[40].Descriptor() } func (Enum12735) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[40] } func (x Enum12735) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum12735) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum12735(num) return nil } // Deprecated: Use Enum12735.Descriptor instead. func (Enum12735) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{40} } type Enum12871 int32 const ( Enum12871_ENUM_VALUE12872 Enum12871 = 1 Enum12871_ENUM_VALUE12873 Enum12871 = 2 Enum12871_ENUM_VALUE12874 Enum12871 = 3 Enum12871_ENUM_VALUE12875 Enum12871 = 4 Enum12871_ENUM_VALUE12876 Enum12871 = 5 Enum12871_ENUM_VALUE12877 Enum12871 = 6 ) // Enum value maps for Enum12871. var ( Enum12871_name = map[int32]string{ 1: "ENUM_VALUE12872", 2: "ENUM_VALUE12873", 3: "ENUM_VALUE12874", 4: "ENUM_VALUE12875", 5: "ENUM_VALUE12876", 6: "ENUM_VALUE12877", } Enum12871_value = map[string]int32{ "ENUM_VALUE12872": 1, "ENUM_VALUE12873": 2, "ENUM_VALUE12874": 3, "ENUM_VALUE12875": 4, "ENUM_VALUE12876": 5, "ENUM_VALUE12877": 6, } ) func (x Enum12871) Enum() *Enum12871 { p := new(Enum12871) *p = x return p } func (x Enum12871) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum12871) Descriptor() protoreflect.EnumDescriptor { return file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[41].Descriptor() } func (Enum12871) Type() protoreflect.EnumType { return &file_datasets_google_message4_benchmark_message4_3_proto_enumTypes[41] } func (x Enum12871) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum12871) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum12871(num) return nil } // Deprecated: Use Enum12871.Descriptor instead. func (Enum12871) EnumDescriptor() ([]byte, []int) { return file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP(), []int{41} } var File_datasets_google_message4_benchmark_message4_3_proto protoreflect.FileDescriptor var file_datasets_google_message4_benchmark_message4_3_proto_rawDesc = []byte{ 0x0a, 0x33, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x5f, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x2a, 0x3c, 0x0a, 0x0a, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x4e, 0x55, 0x53, 0x45, 0x44, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x4e, 0x55, 0x53, 0x45, 0x44, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x10, 0x01, 0x2a, 0xaa, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x32, 0x35, 0x39, 0x33, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x35, 0x39, 0x34, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x35, 0x39, 0x35, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x35, 0x39, 0x36, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x35, 0x39, 0x37, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x35, 0x39, 0x38, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x35, 0x39, 0x39, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x36, 0x30, 0x30, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x36, 0x30, 0x31, 0x10, 0x07, 0x2a, 0x46, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x32, 0x38, 0x33, 0x34, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x33, 0x35, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x33, 0x36, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x33, 0x37, 0x10, 0x02, 0x2a, 0xb6, 0x02, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x32, 0x38, 0x30, 0x36, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x30, 0x37, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x30, 0x38, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x30, 0x39, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x31, 0x30, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x31, 0x31, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x31, 0x32, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x31, 0x33, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x31, 0x34, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x31, 0x35, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x31, 0x36, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x31, 0x37, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x31, 0x38, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x31, 0x39, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x32, 0x30, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x32, 0x31, 0x10, 0x0e, 0x2a, 0x82, 0x13, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x32, 0x38, 0x35, 0x31, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x35, 0x32, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x35, 0x33, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x35, 0x34, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x35, 0x35, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x35, 0x36, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x35, 0x37, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x35, 0x38, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x35, 0x39, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x36, 0x30, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x36, 0x31, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x36, 0x32, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x36, 0x33, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x36, 0x34, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x36, 0x35, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x36, 0x36, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x36, 0x37, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x36, 0x38, 0x10, 0x0f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x36, 0x39, 0x10, 0x10, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x37, 0x30, 0x10, 0x11, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x37, 0x31, 0x10, 0x12, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x37, 0x32, 0x10, 0x13, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x37, 0x33, 0x10, 0x14, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x37, 0x34, 0x10, 0x15, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x37, 0x35, 0x10, 0x16, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x37, 0x36, 0x10, 0x17, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x37, 0x37, 0x10, 0x18, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x37, 0x38, 0x10, 0x19, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x37, 0x39, 0x10, 0x1a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x38, 0x30, 0x10, 0x1b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x38, 0x31, 0x10, 0x1c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x38, 0x32, 0x10, 0x1d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x38, 0x33, 0x10, 0x1e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x38, 0x34, 0x10, 0x1f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x38, 0x35, 0x10, 0x20, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x38, 0x36, 0x10, 0x21, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x38, 0x37, 0x10, 0x22, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x38, 0x38, 0x10, 0x23, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x38, 0x39, 0x10, 0x24, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x39, 0x30, 0x10, 0x25, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x39, 0x31, 0x10, 0x26, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x39, 0x32, 0x10, 0x27, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x39, 0x33, 0x10, 0x28, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x39, 0x34, 0x10, 0x29, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x39, 0x35, 0x10, 0x2a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x39, 0x36, 0x10, 0x2b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x39, 0x37, 0x10, 0x2c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x39, 0x38, 0x10, 0x2d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x38, 0x39, 0x39, 0x10, 0x2e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x30, 0x30, 0x10, 0x2f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x30, 0x31, 0x10, 0x30, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x30, 0x32, 0x10, 0x31, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x30, 0x33, 0x10, 0x32, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x30, 0x34, 0x10, 0x33, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x30, 0x35, 0x10, 0x34, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x30, 0x36, 0x10, 0x35, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x30, 0x37, 0x10, 0x36, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x30, 0x38, 0x10, 0x37, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x30, 0x39, 0x10, 0x38, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x31, 0x30, 0x10, 0x39, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x31, 0x31, 0x10, 0x3a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x31, 0x32, 0x10, 0x3b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x31, 0x33, 0x10, 0x3c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x31, 0x34, 0x10, 0x3d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x31, 0x35, 0x10, 0x3e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x31, 0x36, 0x10, 0x3f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x31, 0x37, 0x10, 0x40, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x31, 0x38, 0x10, 0x41, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x31, 0x39, 0x10, 0x42, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x32, 0x30, 0x10, 0x43, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x32, 0x31, 0x10, 0x44, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x32, 0x32, 0x10, 0x45, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x32, 0x33, 0x10, 0x46, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x32, 0x34, 0x10, 0x47, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x32, 0x35, 0x10, 0x48, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x32, 0x36, 0x10, 0x49, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x32, 0x37, 0x10, 0x4a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x32, 0x38, 0x10, 0x4b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x32, 0x39, 0x10, 0x4c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x33, 0x30, 0x10, 0x4d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x33, 0x31, 0x10, 0x4e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x33, 0x32, 0x10, 0x4f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x33, 0x33, 0x10, 0x50, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x33, 0x34, 0x10, 0x51, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x33, 0x35, 0x10, 0x52, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x33, 0x36, 0x10, 0x53, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x33, 0x37, 0x10, 0x54, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x33, 0x38, 0x10, 0x55, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x33, 0x39, 0x10, 0x56, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x34, 0x30, 0x10, 0x57, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x34, 0x31, 0x10, 0x58, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x34, 0x32, 0x10, 0x59, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x34, 0x33, 0x10, 0x5a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x34, 0x34, 0x10, 0x5b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x34, 0x35, 0x10, 0x5c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x34, 0x36, 0x10, 0x5d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x34, 0x37, 0x10, 0x5e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x34, 0x38, 0x10, 0x5f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x34, 0x39, 0x10, 0x60, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x35, 0x30, 0x10, 0x61, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x35, 0x31, 0x10, 0x62, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x35, 0x32, 0x10, 0x63, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x35, 0x33, 0x10, 0x64, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x35, 0x34, 0x10, 0x65, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x35, 0x35, 0x10, 0x66, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x35, 0x36, 0x10, 0x67, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x35, 0x37, 0x10, 0x68, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x35, 0x38, 0x10, 0x69, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x35, 0x39, 0x10, 0x6a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x36, 0x30, 0x10, 0x6b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x36, 0x31, 0x10, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x36, 0x32, 0x10, 0x6d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x36, 0x33, 0x10, 0x6e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x36, 0x34, 0x10, 0x6f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x36, 0x35, 0x10, 0x70, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x36, 0x36, 0x10, 0x71, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x36, 0x37, 0x10, 0x72, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x36, 0x38, 0x10, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x36, 0x39, 0x10, 0x74, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x37, 0x30, 0x10, 0x75, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x37, 0x31, 0x10, 0x76, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x39, 0x37, 0x32, 0x10, 0x77, 0x1a, 0x02, 0x10, 0x01, 0x2a, 0xfa, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x32, 0x36, 0x30, 0x32, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x36, 0x30, 0x33, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x36, 0x30, 0x34, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x36, 0x30, 0x35, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x36, 0x30, 0x36, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x36, 0x30, 0x37, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x36, 0x30, 0x38, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x36, 0x30, 0x39, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x36, 0x31, 0x30, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x36, 0x31, 0x31, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x36, 0x31, 0x32, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x36, 0x31, 0x33, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x36, 0x31, 0x34, 0x10, 0x0b, 0x2a, 0xba, 0x04, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x30, 0x37, 0x31, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x37, 0x32, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x37, 0x33, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x37, 0x34, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x37, 0x35, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x37, 0x36, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x37, 0x37, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x37, 0x38, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x37, 0x39, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x38, 0x30, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x38, 0x31, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x38, 0x32, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x38, 0x33, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x38, 0x34, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x38, 0x35, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x38, 0x36, 0x10, 0x0f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x38, 0x37, 0x10, 0x10, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x38, 0x38, 0x10, 0x11, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x38, 0x39, 0x10, 0x12, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x39, 0x30, 0x10, 0x13, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x39, 0x31, 0x10, 0x14, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x39, 0x32, 0x10, 0x15, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x39, 0x33, 0x10, 0x16, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x39, 0x34, 0x10, 0x17, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x39, 0x35, 0x10, 0x18, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x39, 0x36, 0x10, 0x19, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x39, 0x37, 0x10, 0x1a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x39, 0x38, 0x10, 0x1b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x30, 0x39, 0x39, 0x10, 0x1c, 0x2a, 0xfa, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x38, 0x30, 0x35, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x30, 0x36, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x30, 0x37, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x30, 0x38, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x30, 0x39, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x31, 0x30, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x31, 0x31, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x31, 0x32, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x31, 0x33, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x31, 0x34, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x31, 0x35, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x31, 0x36, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x31, 0x37, 0x10, 0x0a, 0x2a, 0x9a, 0x03, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x37, 0x38, 0x33, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x38, 0x34, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x38, 0x35, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x38, 0x36, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x38, 0x37, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x38, 0x38, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x38, 0x39, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x39, 0x30, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x39, 0x31, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x39, 0x32, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x39, 0x33, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x39, 0x34, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x39, 0x35, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x39, 0x36, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x39, 0x37, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x39, 0x38, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x37, 0x39, 0x39, 0x10, 0x0f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x30, 0x30, 0x10, 0x10, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x30, 0x31, 0x10, 0x14, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x30, 0x32, 0x10, 0x15, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x30, 0x33, 0x10, 0x32, 0x2a, 0xf2, 0x02, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x38, 0x35, 0x31, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x35, 0x32, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x35, 0x33, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x35, 0x34, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x35, 0x35, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x35, 0x36, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x35, 0x37, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x35, 0x38, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x35, 0x39, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x36, 0x30, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x36, 0x31, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x36, 0x32, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x36, 0x33, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x36, 0x34, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x36, 0x35, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x36, 0x36, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x36, 0x37, 0x10, 0x0f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x36, 0x38, 0x10, 0x10, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x38, 0x36, 0x39, 0x10, 0x11, 0x2a, 0x46, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x38, 0x36, 0x32, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x38, 0x36, 0x33, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x38, 0x36, 0x34, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x38, 0x36, 0x35, 0x10, 0x03, 0x2a, 0x5a, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x38, 0x36, 0x38, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x38, 0x36, 0x39, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x38, 0x37, 0x30, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x38, 0x37, 0x31, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x38, 0x37, 0x32, 0x10, 0x03, 0x2a, 0x46, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x38, 0x37, 0x33, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x38, 0x37, 0x34, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x38, 0x37, 0x35, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x38, 0x37, 0x36, 0x10, 0x02, 0x2a, 0x32, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x30, 0x34, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x30, 0x35, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x30, 0x36, 0x10, 0x01, 0x2a, 0x32, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x30, 0x39, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x31, 0x30, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x31, 0x31, 0x10, 0x01, 0x2a, 0x32, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x31, 0x32, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x31, 0x33, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x31, 0x34, 0x10, 0x01, 0x2a, 0x5a, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x31, 0x35, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x31, 0x36, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x31, 0x37, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x31, 0x38, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x31, 0x39, 0x10, 0x03, 0x2a, 0x32, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x32, 0x30, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x32, 0x31, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x32, 0x32, 0x10, 0x01, 0x2a, 0x5a, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x32, 0x33, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x32, 0x34, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x32, 0x35, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x32, 0x36, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x32, 0x37, 0x10, 0x03, 0x2a, 0x32, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x32, 0x38, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x32, 0x39, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x33, 0x30, 0x10, 0x01, 0x2a, 0x46, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x33, 0x31, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x33, 0x32, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x33, 0x33, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x33, 0x34, 0x10, 0x02, 0x2a, 0x46, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x33, 0x35, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x33, 0x36, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x33, 0x37, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x33, 0x38, 0x10, 0x02, 0x2a, 0x82, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x33, 0x39, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x34, 0x30, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x34, 0x31, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x34, 0x32, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x34, 0x33, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x34, 0x34, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x34, 0x35, 0x10, 0x05, 0x2a, 0xd2, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x34, 0x36, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x34, 0x37, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x34, 0x38, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x34, 0x39, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x35, 0x30, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x35, 0x31, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x35, 0x32, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x35, 0x33, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x35, 0x34, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x35, 0x35, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x35, 0x36, 0x10, 0x09, 0x2a, 0x5a, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x35, 0x37, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x35, 0x38, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x35, 0x39, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x36, 0x30, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x36, 0x31, 0x10, 0x03, 0x2a, 0x32, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x35, 0x39, 0x36, 0x32, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x36, 0x33, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x35, 0x39, 0x36, 0x34, 0x10, 0x01, 0x2a, 0xc2, 0x03, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x30, 0x32, 0x35, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x32, 0x36, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x32, 0x37, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x32, 0x38, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x32, 0x39, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x33, 0x30, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x33, 0x31, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x33, 0x32, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x33, 0x33, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x33, 0x34, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x33, 0x35, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x33, 0x36, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x33, 0x37, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x33, 0x38, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x33, 0x39, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x34, 0x30, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x34, 0x31, 0x10, 0x0f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x34, 0x32, 0x10, 0x10, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x34, 0x33, 0x10, 0x11, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x34, 0x34, 0x10, 0x12, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x34, 0x35, 0x10, 0x13, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x34, 0x36, 0x10, 0x14, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x34, 0x37, 0x10, 0x15, 0x2a, 0xa2, 0x02, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x31, 0x31, 0x31, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x31, 0x31, 0x32, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x31, 0x31, 0x33, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x31, 0x31, 0x34, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x31, 0x31, 0x35, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x31, 0x31, 0x36, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x31, 0x31, 0x37, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x31, 0x31, 0x38, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x31, 0x31, 0x39, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x31, 0x32, 0x30, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x31, 0x32, 0x31, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x31, 0x32, 0x32, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x31, 0x32, 0x33, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x31, 0x32, 0x34, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x31, 0x32, 0x35, 0x10, 0x0e, 0x2a, 0xb6, 0x02, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x30, 0x36, 0x35, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x36, 0x36, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x36, 0x37, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x36, 0x38, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x36, 0x39, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x37, 0x30, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x37, 0x31, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x37, 0x32, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x37, 0x33, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x37, 0x34, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x37, 0x35, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x37, 0x36, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x37, 0x37, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x37, 0x38, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x37, 0x39, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x30, 0x38, 0x30, 0x10, 0x0e, 0x2a, 0x32, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x31, 0x33, 0x30, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x31, 0x33, 0x31, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x31, 0x33, 0x32, 0x10, 0x01, 0x2a, 0xaa, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x35, 0x37, 0x39, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x38, 0x30, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x38, 0x31, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x38, 0x32, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x38, 0x33, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x38, 0x34, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x38, 0x35, 0x10, 0x0f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x38, 0x36, 0x10, 0x19, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x38, 0x37, 0x10, 0x1e, 0x2a, 0xb2, 0x05, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x36, 0x35, 0x38, 0x38, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x38, 0x39, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x39, 0x30, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x39, 0x31, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x39, 0x32, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x39, 0x33, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x39, 0x34, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x39, 0x35, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x39, 0x36, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x39, 0x37, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x39, 0x38, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x35, 0x39, 0x39, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x30, 0x30, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x30, 0x31, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x30, 0x32, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x30, 0x33, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x30, 0x34, 0x10, 0x0f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x30, 0x35, 0x10, 0x10, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x30, 0x36, 0x10, 0x11, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x30, 0x37, 0x10, 0x13, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x30, 0x38, 0x10, 0x14, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x30, 0x39, 0x10, 0x15, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x31, 0x30, 0x10, 0x16, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x31, 0x31, 0x10, 0x17, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x31, 0x32, 0x10, 0x18, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x31, 0x33, 0x10, 0x19, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x31, 0x34, 0x10, 0x1a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x31, 0x35, 0x10, 0x1b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x31, 0x36, 0x10, 0x1c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x31, 0x37, 0x10, 0x1d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x31, 0x38, 0x10, 0x1e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x31, 0x39, 0x10, 0x1f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x32, 0x30, 0x10, 0x20, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x32, 0x31, 0x10, 0x21, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x36, 0x36, 0x32, 0x32, 0x10, 0x22, 0x2a, 0x5a, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x37, 0x32, 0x38, 0x38, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x37, 0x32, 0x38, 0x39, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x37, 0x32, 0x39, 0x30, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x37, 0x32, 0x39, 0x31, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x37, 0x32, 0x39, 0x32, 0x10, 0x03, 0x2a, 0xaa, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x37, 0x35, 0x31, 0x32, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x37, 0x35, 0x31, 0x33, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x37, 0x35, 0x31, 0x34, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x37, 0x35, 0x31, 0x35, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x37, 0x35, 0x31, 0x36, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x37, 0x35, 0x31, 0x37, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x37, 0x35, 0x31, 0x38, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x37, 0x35, 0x31, 0x39, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x37, 0x35, 0x32, 0x30, 0x10, 0x07, 0x2a, 0x6e, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x37, 0x39, 0x32, 0x32, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x37, 0x39, 0x32, 0x33, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x37, 0x39, 0x32, 0x34, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x37, 0x39, 0x32, 0x35, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x37, 0x39, 0x32, 0x36, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x37, 0x39, 0x32, 0x37, 0x10, 0x05, 0x2a, 0xa2, 0x1d, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x34, 0x37, 0x36, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x37, 0x37, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x37, 0x38, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x37, 0x39, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x38, 0x30, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x38, 0x31, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x38, 0x32, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x38, 0x33, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x38, 0x34, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x38, 0x35, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x38, 0x36, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x38, 0x37, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x38, 0x38, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x38, 0x39, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x39, 0x30, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x39, 0x31, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x39, 0x32, 0x10, 0x0f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x39, 0x33, 0x10, 0x10, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x39, 0x34, 0x10, 0x11, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x39, 0x35, 0x10, 0x12, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x39, 0x36, 0x10, 0x13, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x39, 0x37, 0x10, 0x14, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x39, 0x38, 0x10, 0x15, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x34, 0x39, 0x39, 0x10, 0x16, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x30, 0x30, 0x10, 0x17, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x30, 0x31, 0x10, 0x18, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x30, 0x32, 0x10, 0x19, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x30, 0x33, 0x10, 0x1a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x30, 0x34, 0x10, 0x1b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x30, 0x35, 0x10, 0x1c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x30, 0x36, 0x10, 0x1d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x30, 0x37, 0x10, 0x1e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x30, 0x38, 0x10, 0x1f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x30, 0x39, 0x10, 0x20, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x31, 0x30, 0x10, 0x21, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x31, 0x31, 0x10, 0x22, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x31, 0x32, 0x10, 0x23, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x31, 0x33, 0x10, 0x24, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x31, 0x34, 0x10, 0x25, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x31, 0x35, 0x10, 0x26, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x31, 0x36, 0x10, 0x27, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x31, 0x37, 0x10, 0x28, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x31, 0x38, 0x10, 0x29, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x31, 0x39, 0x10, 0x2a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x32, 0x30, 0x10, 0x2b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x32, 0x31, 0x10, 0x2c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x32, 0x32, 0x10, 0x2d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x32, 0x33, 0x10, 0x2e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x32, 0x34, 0x10, 0x2f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x32, 0x35, 0x10, 0x30, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x32, 0x36, 0x10, 0x31, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x32, 0x37, 0x10, 0x32, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x32, 0x38, 0x10, 0x33, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x32, 0x39, 0x10, 0x34, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x33, 0x30, 0x10, 0x35, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x33, 0x31, 0x10, 0x36, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x33, 0x32, 0x10, 0x37, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x33, 0x33, 0x10, 0x38, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x33, 0x34, 0x10, 0x39, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x33, 0x35, 0x10, 0x3a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x33, 0x36, 0x10, 0x3b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x33, 0x37, 0x10, 0x3c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x33, 0x38, 0x10, 0x3d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x33, 0x39, 0x10, 0x3e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x30, 0x10, 0x3f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x31, 0x10, 0x40, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x32, 0x10, 0x41, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x33, 0x10, 0x42, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x34, 0x10, 0x43, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x35, 0x10, 0x44, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x36, 0x10, 0x45, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x37, 0x10, 0x46, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x38, 0x10, 0x47, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x34, 0x39, 0x10, 0x48, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x30, 0x10, 0x49, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x31, 0x10, 0x4a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x32, 0x10, 0x4b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x33, 0x10, 0x4c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x34, 0x10, 0x4d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x35, 0x10, 0x4e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x36, 0x10, 0x4f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x37, 0x10, 0x50, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x38, 0x10, 0x51, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x35, 0x39, 0x10, 0x52, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x36, 0x30, 0x10, 0x53, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x36, 0x31, 0x10, 0x54, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x36, 0x32, 0x10, 0x55, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x36, 0x33, 0x10, 0x56, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x36, 0x34, 0x10, 0x57, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x36, 0x35, 0x10, 0x58, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x36, 0x36, 0x10, 0x59, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x36, 0x37, 0x10, 0x5a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x36, 0x38, 0x10, 0x5b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x36, 0x39, 0x10, 0x5c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x37, 0x30, 0x10, 0x5d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x37, 0x31, 0x10, 0x5e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x37, 0x32, 0x10, 0x5f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x37, 0x33, 0x10, 0x60, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x37, 0x34, 0x10, 0x61, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x37, 0x35, 0x10, 0x62, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x37, 0x36, 0x10, 0x63, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x37, 0x37, 0x10, 0x64, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x37, 0x38, 0x10, 0x65, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x37, 0x39, 0x10, 0x66, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x38, 0x30, 0x10, 0x67, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x38, 0x31, 0x10, 0x68, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x38, 0x32, 0x10, 0x69, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x38, 0x33, 0x10, 0x6a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x38, 0x34, 0x10, 0x6b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x38, 0x35, 0x10, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x38, 0x36, 0x10, 0x6d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x38, 0x37, 0x10, 0x6e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x38, 0x38, 0x10, 0x6f, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x38, 0x39, 0x10, 0x70, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x39, 0x30, 0x10, 0x71, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x39, 0x31, 0x10, 0x72, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x39, 0x32, 0x10, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x39, 0x33, 0x10, 0x74, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x39, 0x34, 0x10, 0x75, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x39, 0x35, 0x10, 0x76, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x39, 0x36, 0x10, 0x77, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x39, 0x37, 0x10, 0x78, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x39, 0x38, 0x10, 0x79, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x35, 0x39, 0x39, 0x10, 0x7a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x30, 0x30, 0x10, 0x7b, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x30, 0x31, 0x10, 0x7c, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x30, 0x32, 0x10, 0x7d, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x30, 0x33, 0x10, 0x7e, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x30, 0x34, 0x10, 0x7f, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x30, 0x35, 0x10, 0x80, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x30, 0x36, 0x10, 0x81, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x30, 0x37, 0x10, 0x82, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x30, 0x38, 0x10, 0x83, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x30, 0x39, 0x10, 0x84, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x31, 0x30, 0x10, 0x85, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x31, 0x31, 0x10, 0x86, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x31, 0x32, 0x10, 0x87, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x31, 0x33, 0x10, 0x88, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x31, 0x34, 0x10, 0x89, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x31, 0x35, 0x10, 0x8a, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x31, 0x36, 0x10, 0x8b, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x31, 0x37, 0x10, 0x8c, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x31, 0x38, 0x10, 0x8d, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x31, 0x39, 0x10, 0x8e, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x32, 0x30, 0x10, 0x8f, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x32, 0x31, 0x10, 0x90, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x32, 0x32, 0x10, 0x91, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x32, 0x33, 0x10, 0x92, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x32, 0x34, 0x10, 0x93, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x32, 0x35, 0x10, 0x94, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x32, 0x36, 0x10, 0x95, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x32, 0x37, 0x10, 0x96, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x32, 0x38, 0x10, 0x97, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x32, 0x39, 0x10, 0x98, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x33, 0x30, 0x10, 0x99, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x33, 0x31, 0x10, 0x9a, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x33, 0x32, 0x10, 0x9b, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x33, 0x33, 0x10, 0x9c, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x33, 0x34, 0x10, 0x9d, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x33, 0x35, 0x10, 0x9e, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x33, 0x36, 0x10, 0x9f, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x33, 0x37, 0x10, 0xa0, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x33, 0x38, 0x10, 0xa1, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x33, 0x39, 0x10, 0xa2, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x34, 0x30, 0x10, 0xa3, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x34, 0x31, 0x10, 0xa4, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x34, 0x32, 0x10, 0xa5, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x34, 0x33, 0x10, 0xa6, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x34, 0x34, 0x10, 0xa7, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x34, 0x35, 0x10, 0xa8, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x34, 0x36, 0x10, 0xa9, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x34, 0x37, 0x10, 0xaa, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x34, 0x38, 0x10, 0xab, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x34, 0x39, 0x10, 0xac, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x35, 0x30, 0x10, 0xad, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x35, 0x31, 0x10, 0xae, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x35, 0x32, 0x10, 0xaf, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x35, 0x33, 0x10, 0xb0, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x35, 0x34, 0x10, 0xb1, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x35, 0x35, 0x10, 0xb2, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x35, 0x36, 0x10, 0xb3, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x35, 0x37, 0x10, 0xb4, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x35, 0x38, 0x10, 0xb5, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x35, 0x39, 0x10, 0xb6, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x33, 0x36, 0x36, 0x30, 0x10, 0xb7, 0x01, 0x2a, 0xc8, 0x01, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x30, 0x33, 0x32, 0x35, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x32, 0x36, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x32, 0x37, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x32, 0x38, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x32, 0x39, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x33, 0x30, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x33, 0x31, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x33, 0x32, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x33, 0x33, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x33, 0x34, 0x10, 0x08, 0x2a, 0x20, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x30, 0x33, 0x33, 0x35, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x33, 0x36, 0x10, 0x00, 0x2a, 0x35, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x30, 0x33, 0x33, 0x37, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x33, 0x38, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x30, 0x33, 0x33, 0x39, 0x10, 0x01, 0x2a, 0x5f, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x31, 0x39, 0x30, 0x31, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x39, 0x30, 0x32, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x39, 0x30, 0x33, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x39, 0x30, 0x34, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x31, 0x39, 0x30, 0x35, 0x10, 0x03, 0x2a, 0x5f, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x32, 0x37, 0x33, 0x35, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x32, 0x37, 0x33, 0x36, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x32, 0x37, 0x33, 0x37, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x32, 0x37, 0x33, 0x38, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x32, 0x37, 0x33, 0x39, 0x10, 0x03, 0x2a, 0x89, 0x01, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x32, 0x38, 0x37, 0x31, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x32, 0x38, 0x37, 0x32, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x32, 0x38, 0x37, 0x33, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x32, 0x38, 0x37, 0x34, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x32, 0x38, 0x37, 0x35, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x32, 0x38, 0x37, 0x36, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x32, 0x38, 0x37, 0x37, 0x10, 0x06, 0x42, 0x23, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0xf8, 0x01, 0x01, } var ( file_datasets_google_message4_benchmark_message4_3_proto_rawDescOnce sync.Once file_datasets_google_message4_benchmark_message4_3_proto_rawDescData = file_datasets_google_message4_benchmark_message4_3_proto_rawDesc ) func file_datasets_google_message4_benchmark_message4_3_proto_rawDescGZIP() []byte { file_datasets_google_message4_benchmark_message4_3_proto_rawDescOnce.Do(func() { file_datasets_google_message4_benchmark_message4_3_proto_rawDescData = protoimpl.X.CompressGZIP(file_datasets_google_message4_benchmark_message4_3_proto_rawDescData) }) return file_datasets_google_message4_benchmark_message4_3_proto_rawDescData } var file_datasets_google_message4_benchmark_message4_3_proto_enumTypes = make([]protoimpl.EnumInfo, 42) var file_datasets_google_message4_benchmark_message4_3_proto_goTypes = []interface{}{ (UnusedEnum)(0), // 0: benchmarks.google_message4.UnusedEnum (Enum2593)(0), // 1: benchmarks.google_message4.Enum2593 (Enum2834)(0), // 2: benchmarks.google_message4.Enum2834 (Enum2806)(0), // 3: benchmarks.google_message4.Enum2806 (Enum2851)(0), // 4: benchmarks.google_message4.Enum2851 (Enum2602)(0), // 5: benchmarks.google_message4.Enum2602 (Enum3071)(0), // 6: benchmarks.google_message4.Enum3071 (Enum3805)(0), // 7: benchmarks.google_message4.Enum3805 (Enum3783)(0), // 8: benchmarks.google_message4.Enum3783 (Enum3851)(0), // 9: benchmarks.google_message4.Enum3851 (Enum5862)(0), // 10: benchmarks.google_message4.Enum5862 (Enum5868)(0), // 11: benchmarks.google_message4.Enum5868 (Enum5873)(0), // 12: benchmarks.google_message4.Enum5873 (Enum5904)(0), // 13: benchmarks.google_message4.Enum5904 (Enum5909)(0), // 14: benchmarks.google_message4.Enum5909 (Enum5912)(0), // 15: benchmarks.google_message4.Enum5912 (Enum5915)(0), // 16: benchmarks.google_message4.Enum5915 (Enum5920)(0), // 17: benchmarks.google_message4.Enum5920 (Enum5923)(0), // 18: benchmarks.google_message4.Enum5923 (Enum5928)(0), // 19: benchmarks.google_message4.Enum5928 (Enum5931)(0), // 20: benchmarks.google_message4.Enum5931 (Enum5935)(0), // 21: benchmarks.google_message4.Enum5935 (Enum5939)(0), // 22: benchmarks.google_message4.Enum5939 (Enum5946)(0), // 23: benchmarks.google_message4.Enum5946 (Enum5957)(0), // 24: benchmarks.google_message4.Enum5957 (Enum5962)(0), // 25: benchmarks.google_message4.Enum5962 (Enum6025)(0), // 26: benchmarks.google_message4.Enum6025 (Enum6111)(0), // 27: benchmarks.google_message4.Enum6111 (Enum6065)(0), // 28: benchmarks.google_message4.Enum6065 (Enum6130)(0), // 29: benchmarks.google_message4.Enum6130 (Enum6579)(0), // 30: benchmarks.google_message4.Enum6579 (Enum6588)(0), // 31: benchmarks.google_message4.Enum6588 (Enum7288)(0), // 32: benchmarks.google_message4.Enum7288 (Enum7512)(0), // 33: benchmarks.google_message4.Enum7512 (Enum7922)(0), // 34: benchmarks.google_message4.Enum7922 (Enum3476)(0), // 35: benchmarks.google_message4.Enum3476 (Enum10325)(0), // 36: benchmarks.google_message4.Enum10325 (Enum10335)(0), // 37: benchmarks.google_message4.Enum10335 (Enum10337)(0), // 38: benchmarks.google_message4.Enum10337 (Enum11901)(0), // 39: benchmarks.google_message4.Enum11901 (Enum12735)(0), // 40: benchmarks.google_message4.Enum12735 (Enum12871)(0), // 41: benchmarks.google_message4.Enum12871 } var file_datasets_google_message4_benchmark_message4_3_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_datasets_google_message4_benchmark_message4_3_proto_init() } func file_datasets_google_message4_benchmark_message4_3_proto_init() { if File_datasets_google_message4_benchmark_message4_3_proto != nil { return } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_datasets_google_message4_benchmark_message4_3_proto_rawDesc, NumEnums: 42, NumMessages: 0, NumExtensions: 0, NumServices: 0, }, GoTypes: file_datasets_google_message4_benchmark_message4_3_proto_goTypes, DependencyIndexes: file_datasets_google_message4_benchmark_message4_3_proto_depIdxs, EnumInfos: file_datasets_google_message4_benchmark_message4_3_proto_enumTypes, }.Build() File_datasets_google_message4_benchmark_message4_3_proto = out.File file_datasets_google_message4_benchmark_message4_3_proto_rawDesc = nil file_datasets_google_message4_benchmark_message4_3_proto_goTypes = nil file_datasets_google_message4_benchmark_message4_3_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/micro/000077500000000000000000000000001411250152500254455ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/micro/micro.pb.go000066400000000000000000000230131411250152500275040ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/benchmarks/micro/micro.proto package micro import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type SixteenRequired struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields F1 *int32 `protobuf:"varint,1,req,name=f1" json:"f1,omitempty"` F2 *int32 `protobuf:"varint,2,req,name=f2" json:"f2,omitempty"` F3 *int32 `protobuf:"varint,3,req,name=f3" json:"f3,omitempty"` F4 *int32 `protobuf:"varint,4,req,name=f4" json:"f4,omitempty"` F5 *int32 `protobuf:"varint,5,req,name=f5" json:"f5,omitempty"` F6 *int32 `protobuf:"varint,6,req,name=f6" json:"f6,omitempty"` F7 *int32 `protobuf:"varint,7,req,name=f7" json:"f7,omitempty"` F8 *int32 `protobuf:"varint,8,req,name=f8" json:"f8,omitempty"` F9 *int32 `protobuf:"varint,9,req,name=f9" json:"f9,omitempty"` F10 *int32 `protobuf:"varint,10,req,name=f10" json:"f10,omitempty"` F11 *int32 `protobuf:"varint,11,req,name=f11" json:"f11,omitempty"` F12 *int32 `protobuf:"varint,12,req,name=f12" json:"f12,omitempty"` F13 *int32 `protobuf:"varint,13,req,name=f13" json:"f13,omitempty"` F14 *int32 `protobuf:"varint,14,req,name=f14" json:"f14,omitempty"` F15 *int32 `protobuf:"varint,15,req,name=f15" json:"f15,omitempty"` F16 *int32 `protobuf:"varint,16,req,name=f16" json:"f16,omitempty"` } func (x *SixteenRequired) Reset() { *x = SixteenRequired{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_benchmarks_micro_micro_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SixteenRequired) String() string { return protoimpl.X.MessageStringOf(x) } func (*SixteenRequired) ProtoMessage() {} func (x *SixteenRequired) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_benchmarks_micro_micro_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SixteenRequired.ProtoReflect.Descriptor instead. func (*SixteenRequired) Descriptor() ([]byte, []int) { return file_internal_testprotos_benchmarks_micro_micro_proto_rawDescGZIP(), []int{0} } func (x *SixteenRequired) GetF1() int32 { if x != nil && x.F1 != nil { return *x.F1 } return 0 } func (x *SixteenRequired) GetF2() int32 { if x != nil && x.F2 != nil { return *x.F2 } return 0 } func (x *SixteenRequired) GetF3() int32 { if x != nil && x.F3 != nil { return *x.F3 } return 0 } func (x *SixteenRequired) GetF4() int32 { if x != nil && x.F4 != nil { return *x.F4 } return 0 } func (x *SixteenRequired) GetF5() int32 { if x != nil && x.F5 != nil { return *x.F5 } return 0 } func (x *SixteenRequired) GetF6() int32 { if x != nil && x.F6 != nil { return *x.F6 } return 0 } func (x *SixteenRequired) GetF7() int32 { if x != nil && x.F7 != nil { return *x.F7 } return 0 } func (x *SixteenRequired) GetF8() int32 { if x != nil && x.F8 != nil { return *x.F8 } return 0 } func (x *SixteenRequired) GetF9() int32 { if x != nil && x.F9 != nil { return *x.F9 } return 0 } func (x *SixteenRequired) GetF10() int32 { if x != nil && x.F10 != nil { return *x.F10 } return 0 } func (x *SixteenRequired) GetF11() int32 { if x != nil && x.F11 != nil { return *x.F11 } return 0 } func (x *SixteenRequired) GetF12() int32 { if x != nil && x.F12 != nil { return *x.F12 } return 0 } func (x *SixteenRequired) GetF13() int32 { if x != nil && x.F13 != nil { return *x.F13 } return 0 } func (x *SixteenRequired) GetF14() int32 { if x != nil && x.F14 != nil { return *x.F14 } return 0 } func (x *SixteenRequired) GetF15() int32 { if x != nil && x.F15 != nil { return *x.F15 } return 0 } func (x *SixteenRequired) GetF16() int32 { if x != nil && x.F16 != nil { return *x.F16 } return 0 } var File_internal_testprotos_benchmarks_micro_micro_proto protoreflect.FileDescriptor var file_internal_testprotos_benchmarks_micro_micro_proto_rawDesc = []byte{ 0x0a, 0x30, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2e, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x74, 0x22, 0x9f, 0x02, 0x0a, 0x0f, 0x53, 0x69, 0x78, 0x74, 0x65, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x66, 0x31, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x02, 0x66, 0x31, 0x12, 0x0e, 0x0a, 0x02, 0x66, 0x32, 0x18, 0x02, 0x20, 0x02, 0x28, 0x05, 0x52, 0x02, 0x66, 0x32, 0x12, 0x0e, 0x0a, 0x02, 0x66, 0x33, 0x18, 0x03, 0x20, 0x02, 0x28, 0x05, 0x52, 0x02, 0x66, 0x33, 0x12, 0x0e, 0x0a, 0x02, 0x66, 0x34, 0x18, 0x04, 0x20, 0x02, 0x28, 0x05, 0x52, 0x02, 0x66, 0x34, 0x12, 0x0e, 0x0a, 0x02, 0x66, 0x35, 0x18, 0x05, 0x20, 0x02, 0x28, 0x05, 0x52, 0x02, 0x66, 0x35, 0x12, 0x0e, 0x0a, 0x02, 0x66, 0x36, 0x18, 0x06, 0x20, 0x02, 0x28, 0x05, 0x52, 0x02, 0x66, 0x36, 0x12, 0x0e, 0x0a, 0x02, 0x66, 0x37, 0x18, 0x07, 0x20, 0x02, 0x28, 0x05, 0x52, 0x02, 0x66, 0x37, 0x12, 0x0e, 0x0a, 0x02, 0x66, 0x38, 0x18, 0x08, 0x20, 0x02, 0x28, 0x05, 0x52, 0x02, 0x66, 0x38, 0x12, 0x0e, 0x0a, 0x02, 0x66, 0x39, 0x18, 0x09, 0x20, 0x02, 0x28, 0x05, 0x52, 0x02, 0x66, 0x39, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x31, 0x30, 0x18, 0x0a, 0x20, 0x02, 0x28, 0x05, 0x52, 0x03, 0x66, 0x31, 0x30, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x31, 0x31, 0x18, 0x0b, 0x20, 0x02, 0x28, 0x05, 0x52, 0x03, 0x66, 0x31, 0x31, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x31, 0x32, 0x18, 0x0c, 0x20, 0x02, 0x28, 0x05, 0x52, 0x03, 0x66, 0x31, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x31, 0x33, 0x18, 0x0d, 0x20, 0x02, 0x28, 0x05, 0x52, 0x03, 0x66, 0x31, 0x33, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x31, 0x34, 0x18, 0x0e, 0x20, 0x02, 0x28, 0x05, 0x52, 0x03, 0x66, 0x31, 0x34, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x31, 0x35, 0x18, 0x0f, 0x20, 0x02, 0x28, 0x05, 0x52, 0x03, 0x66, 0x31, 0x35, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x31, 0x36, 0x18, 0x10, 0x20, 0x02, 0x28, 0x05, 0x52, 0x03, 0x66, 0x31, 0x36, 0x42, 0x41, 0x5a, 0x3f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, } var ( file_internal_testprotos_benchmarks_micro_micro_proto_rawDescOnce sync.Once file_internal_testprotos_benchmarks_micro_micro_proto_rawDescData = file_internal_testprotos_benchmarks_micro_micro_proto_rawDesc ) func file_internal_testprotos_benchmarks_micro_micro_proto_rawDescGZIP() []byte { file_internal_testprotos_benchmarks_micro_micro_proto_rawDescOnce.Do(func() { file_internal_testprotos_benchmarks_micro_micro_proto_rawDescData = protoimpl.X.CompressGZIP(file_internal_testprotos_benchmarks_micro_micro_proto_rawDescData) }) return file_internal_testprotos_benchmarks_micro_micro_proto_rawDescData } var file_internal_testprotos_benchmarks_micro_micro_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_internal_testprotos_benchmarks_micro_micro_proto_goTypes = []interface{}{ (*SixteenRequired)(nil), // 0: goproto.proto.benchmarks.microt.SixteenRequired } var file_internal_testprotos_benchmarks_micro_micro_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_internal_testprotos_benchmarks_micro_micro_proto_init() } func file_internal_testprotos_benchmarks_micro_micro_proto_init() { if File_internal_testprotos_benchmarks_micro_micro_proto != nil { return } if !protoimpl.UnsafeEnabled { file_internal_testprotos_benchmarks_micro_micro_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SixteenRequired); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_benchmarks_micro_micro_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_internal_testprotos_benchmarks_micro_micro_proto_goTypes, DependencyIndexes: file_internal_testprotos_benchmarks_micro_micro_proto_depIdxs, MessageInfos: file_internal_testprotos_benchmarks_micro_micro_proto_msgTypes, }.Build() File_internal_testprotos_benchmarks_micro_micro_proto = out.File file_internal_testprotos_benchmarks_micro_micro_proto_rawDesc = nil file_internal_testprotos_benchmarks_micro_micro_proto_goTypes = nil file_internal_testprotos_benchmarks_micro_micro_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/benchmarks/micro/micro.proto000066400000000000000000000013601411250152500276430ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.proto.benchmarks.microt; option go_package = "google.golang.org/protobuf/internal/testprotos/benchmarks/micro"; message SixteenRequired { required int32 f1 = 1; required int32 f2 = 2; required int32 f3 = 3; required int32 f4 = 4; required int32 f5 = 5; required int32 f6 = 6; required int32 f7 = 7; required int32 f8 = 8; required int32 f9 = 9; required int32 f10 = 10; required int32 f11 = 11; required int32 f12 = 12; required int32 f13 = 13; required int32 f14 = 14; required int32 f15 = 15; required int32 f16 = 16; } golang-google-protobuf-1.27.1/internal/testprotos/conformance/000077500000000000000000000000001411250152500245115ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/conformance/conformance.pb.go000066400000000000000000000774251411250152500277510ustar00rootroot00000000000000// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Code generated by protoc-gen-go. DO NOT EDIT. // source: conformance/conformance.proto package conformance import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type WireFormat int32 const ( WireFormat_UNSPECIFIED WireFormat = 0 WireFormat_PROTOBUF WireFormat = 1 WireFormat_JSON WireFormat = 2 WireFormat_JSPB WireFormat = 3 // Google internal only. Opensource testees just skip it. WireFormat_TEXT_FORMAT WireFormat = 4 ) // Enum value maps for WireFormat. var ( WireFormat_name = map[int32]string{ 0: "UNSPECIFIED", 1: "PROTOBUF", 2: "JSON", 3: "JSPB", 4: "TEXT_FORMAT", } WireFormat_value = map[string]int32{ "UNSPECIFIED": 0, "PROTOBUF": 1, "JSON": 2, "JSPB": 3, "TEXT_FORMAT": 4, } ) func (x WireFormat) Enum() *WireFormat { p := new(WireFormat) *p = x return p } func (x WireFormat) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (WireFormat) Descriptor() protoreflect.EnumDescriptor { return file_conformance_conformance_proto_enumTypes[0].Descriptor() } func (WireFormat) Type() protoreflect.EnumType { return &file_conformance_conformance_proto_enumTypes[0] } func (x WireFormat) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use WireFormat.Descriptor instead. func (WireFormat) EnumDescriptor() ([]byte, []int) { return file_conformance_conformance_proto_rawDescGZIP(), []int{0} } type TestCategory int32 const ( TestCategory_UNSPECIFIED_TEST TestCategory = 0 TestCategory_BINARY_TEST TestCategory = 1 // Test binary wire format. TestCategory_JSON_TEST TestCategory = 2 // Test json wire format. // Similar to JSON_TEST. However, during parsing json, testee should ignore // unknown fields. This feature is optional. Each implementation can decide // whether to support it. See // https://developers.google.com/protocol-buffers/docs/proto3#json_options // for more detail. TestCategory_JSON_IGNORE_UNKNOWN_PARSING_TEST TestCategory = 3 // Test jspb wire format. Google internal only. Opensource testees just skip it. TestCategory_JSPB_TEST TestCategory = 4 // Test text format. For cpp, java and python, testees can already deal with // this type. Testees of other languages can simply skip it. TestCategory_TEXT_FORMAT_TEST TestCategory = 5 ) // Enum value maps for TestCategory. var ( TestCategory_name = map[int32]string{ 0: "UNSPECIFIED_TEST", 1: "BINARY_TEST", 2: "JSON_TEST", 3: "JSON_IGNORE_UNKNOWN_PARSING_TEST", 4: "JSPB_TEST", 5: "TEXT_FORMAT_TEST", } TestCategory_value = map[string]int32{ "UNSPECIFIED_TEST": 0, "BINARY_TEST": 1, "JSON_TEST": 2, "JSON_IGNORE_UNKNOWN_PARSING_TEST": 3, "JSPB_TEST": 4, "TEXT_FORMAT_TEST": 5, } ) func (x TestCategory) Enum() *TestCategory { p := new(TestCategory) *p = x return p } func (x TestCategory) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TestCategory) Descriptor() protoreflect.EnumDescriptor { return file_conformance_conformance_proto_enumTypes[1].Descriptor() } func (TestCategory) Type() protoreflect.EnumType { return &file_conformance_conformance_proto_enumTypes[1] } func (x TestCategory) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use TestCategory.Descriptor instead. func (TestCategory) EnumDescriptor() ([]byte, []int) { return file_conformance_conformance_proto_rawDescGZIP(), []int{1} } // The conformance runner will request a list of failures as the first request. // This will be known by message_type == "conformance.FailureSet", a conformance // test should return a serialized FailureSet in protobuf_payload. type FailureSet struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Failure []string `protobuf:"bytes,1,rep,name=failure,proto3" json:"failure,omitempty"` } func (x *FailureSet) Reset() { *x = FailureSet{} if protoimpl.UnsafeEnabled { mi := &file_conformance_conformance_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FailureSet) String() string { return protoimpl.X.MessageStringOf(x) } func (*FailureSet) ProtoMessage() {} func (x *FailureSet) ProtoReflect() protoreflect.Message { mi := &file_conformance_conformance_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FailureSet.ProtoReflect.Descriptor instead. func (*FailureSet) Descriptor() ([]byte, []int) { return file_conformance_conformance_proto_rawDescGZIP(), []int{0} } func (x *FailureSet) GetFailure() []string { if x != nil { return x.Failure } return nil } // Represents a single test case's input. The testee should: // // 1. parse this proto (which should always succeed) // 2. parse the protobuf or JSON payload in "payload" (which may fail) // 3. if the parse succeeded, serialize the message in the requested format. type ConformanceRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The payload (whether protobuf of JSON) is always for a // protobuf_test_messages.proto3.TestAllTypes proto (as defined in // src/google/protobuf/proto3_test_messages.proto). // // TODO(haberman): if/when we expand the conformance tests to support proto2, // we will want to include a field that lets the payload/response be a // protobuf_test_messages.proto2.TestAllTypes message instead. // // Types that are assignable to Payload: // *ConformanceRequest_ProtobufPayload // *ConformanceRequest_JsonPayload // *ConformanceRequest_JspbPayload // *ConformanceRequest_TextPayload Payload isConformanceRequest_Payload `protobuf_oneof:"payload"` // Which format should the testee serialize its message to? RequestedOutputFormat WireFormat `protobuf:"varint,3,opt,name=requested_output_format,json=requestedOutputFormat,proto3,enum=conformance.WireFormat" json:"requested_output_format,omitempty"` // The full name for the test message to use; for the moment, either: // protobuf_test_messages.proto3.TestAllTypesProto3 or // protobuf_test_messages.proto2.TestAllTypesProto2. MessageType string `protobuf:"bytes,4,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` // Each test is given a specific test category. Some category may need // specific support in testee programs. Refer to the definition of TestCategory // for more information. TestCategory TestCategory `protobuf:"varint,5,opt,name=test_category,json=testCategory,proto3,enum=conformance.TestCategory" json:"test_category,omitempty"` // Specify details for how to encode jspb. JspbEncodingOptions *JspbEncodingConfig `protobuf:"bytes,6,opt,name=jspb_encoding_options,json=jspbEncodingOptions,proto3" json:"jspb_encoding_options,omitempty"` // This can be used in json and text format. If true, testee should print // unknown fields instead of ignore. This feature is optional. PrintUnknownFields bool `protobuf:"varint,9,opt,name=print_unknown_fields,json=printUnknownFields,proto3" json:"print_unknown_fields,omitempty"` } func (x *ConformanceRequest) Reset() { *x = ConformanceRequest{} if protoimpl.UnsafeEnabled { mi := &file_conformance_conformance_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ConformanceRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ConformanceRequest) ProtoMessage() {} func (x *ConformanceRequest) ProtoReflect() protoreflect.Message { mi := &file_conformance_conformance_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ConformanceRequest.ProtoReflect.Descriptor instead. func (*ConformanceRequest) Descriptor() ([]byte, []int) { return file_conformance_conformance_proto_rawDescGZIP(), []int{1} } func (m *ConformanceRequest) GetPayload() isConformanceRequest_Payload { if m != nil { return m.Payload } return nil } func (x *ConformanceRequest) GetProtobufPayload() []byte { if x, ok := x.GetPayload().(*ConformanceRequest_ProtobufPayload); ok { return x.ProtobufPayload } return nil } func (x *ConformanceRequest) GetJsonPayload() string { if x, ok := x.GetPayload().(*ConformanceRequest_JsonPayload); ok { return x.JsonPayload } return "" } func (x *ConformanceRequest) GetJspbPayload() string { if x, ok := x.GetPayload().(*ConformanceRequest_JspbPayload); ok { return x.JspbPayload } return "" } func (x *ConformanceRequest) GetTextPayload() string { if x, ok := x.GetPayload().(*ConformanceRequest_TextPayload); ok { return x.TextPayload } return "" } func (x *ConformanceRequest) GetRequestedOutputFormat() WireFormat { if x != nil { return x.RequestedOutputFormat } return WireFormat_UNSPECIFIED } func (x *ConformanceRequest) GetMessageType() string { if x != nil { return x.MessageType } return "" } func (x *ConformanceRequest) GetTestCategory() TestCategory { if x != nil { return x.TestCategory } return TestCategory_UNSPECIFIED_TEST } func (x *ConformanceRequest) GetJspbEncodingOptions() *JspbEncodingConfig { if x != nil { return x.JspbEncodingOptions } return nil } func (x *ConformanceRequest) GetPrintUnknownFields() bool { if x != nil { return x.PrintUnknownFields } return false } type isConformanceRequest_Payload interface { isConformanceRequest_Payload() } type ConformanceRequest_ProtobufPayload struct { ProtobufPayload []byte `protobuf:"bytes,1,opt,name=protobuf_payload,json=protobufPayload,proto3,oneof"` } type ConformanceRequest_JsonPayload struct { JsonPayload string `protobuf:"bytes,2,opt,name=json_payload,json=jsonPayload,proto3,oneof"` } type ConformanceRequest_JspbPayload struct { // Google internal only. Opensource testees just skip it. JspbPayload string `protobuf:"bytes,7,opt,name=jspb_payload,json=jspbPayload,proto3,oneof"` } type ConformanceRequest_TextPayload struct { TextPayload string `protobuf:"bytes,8,opt,name=text_payload,json=textPayload,proto3,oneof"` } func (*ConformanceRequest_ProtobufPayload) isConformanceRequest_Payload() {} func (*ConformanceRequest_JsonPayload) isConformanceRequest_Payload() {} func (*ConformanceRequest_JspbPayload) isConformanceRequest_Payload() {} func (*ConformanceRequest_TextPayload) isConformanceRequest_Payload() {} // Represents a single test case's output. type ConformanceResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to Result: // *ConformanceResponse_ParseError // *ConformanceResponse_SerializeError // *ConformanceResponse_RuntimeError // *ConformanceResponse_ProtobufPayload // *ConformanceResponse_JsonPayload // *ConformanceResponse_Skipped // *ConformanceResponse_JspbPayload // *ConformanceResponse_TextPayload Result isConformanceResponse_Result `protobuf_oneof:"result"` } func (x *ConformanceResponse) Reset() { *x = ConformanceResponse{} if protoimpl.UnsafeEnabled { mi := &file_conformance_conformance_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ConformanceResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ConformanceResponse) ProtoMessage() {} func (x *ConformanceResponse) ProtoReflect() protoreflect.Message { mi := &file_conformance_conformance_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ConformanceResponse.ProtoReflect.Descriptor instead. func (*ConformanceResponse) Descriptor() ([]byte, []int) { return file_conformance_conformance_proto_rawDescGZIP(), []int{2} } func (m *ConformanceResponse) GetResult() isConformanceResponse_Result { if m != nil { return m.Result } return nil } func (x *ConformanceResponse) GetParseError() string { if x, ok := x.GetResult().(*ConformanceResponse_ParseError); ok { return x.ParseError } return "" } func (x *ConformanceResponse) GetSerializeError() string { if x, ok := x.GetResult().(*ConformanceResponse_SerializeError); ok { return x.SerializeError } return "" } func (x *ConformanceResponse) GetRuntimeError() string { if x, ok := x.GetResult().(*ConformanceResponse_RuntimeError); ok { return x.RuntimeError } return "" } func (x *ConformanceResponse) GetProtobufPayload() []byte { if x, ok := x.GetResult().(*ConformanceResponse_ProtobufPayload); ok { return x.ProtobufPayload } return nil } func (x *ConformanceResponse) GetJsonPayload() string { if x, ok := x.GetResult().(*ConformanceResponse_JsonPayload); ok { return x.JsonPayload } return "" } func (x *ConformanceResponse) GetSkipped() string { if x, ok := x.GetResult().(*ConformanceResponse_Skipped); ok { return x.Skipped } return "" } func (x *ConformanceResponse) GetJspbPayload() string { if x, ok := x.GetResult().(*ConformanceResponse_JspbPayload); ok { return x.JspbPayload } return "" } func (x *ConformanceResponse) GetTextPayload() string { if x, ok := x.GetResult().(*ConformanceResponse_TextPayload); ok { return x.TextPayload } return "" } type isConformanceResponse_Result interface { isConformanceResponse_Result() } type ConformanceResponse_ParseError struct { // This string should be set to indicate parsing failed. The string can // provide more information about the parse error if it is available. // // Setting this string does not necessarily mean the testee failed the // test. Some of the test cases are intentionally invalid input. ParseError string `protobuf:"bytes,1,opt,name=parse_error,json=parseError,proto3,oneof"` } type ConformanceResponse_SerializeError struct { // If the input was successfully parsed but errors occurred when // serializing it to the requested output format, set the error message in // this field. SerializeError string `protobuf:"bytes,6,opt,name=serialize_error,json=serializeError,proto3,oneof"` } type ConformanceResponse_RuntimeError struct { // This should be set if some other error occurred. This will always // indicate that the test failed. The string can provide more information // about the failure. RuntimeError string `protobuf:"bytes,2,opt,name=runtime_error,json=runtimeError,proto3,oneof"` } type ConformanceResponse_ProtobufPayload struct { // If the input was successfully parsed and the requested output was // protobuf, serialize it to protobuf and set it in this field. ProtobufPayload []byte `protobuf:"bytes,3,opt,name=protobuf_payload,json=protobufPayload,proto3,oneof"` } type ConformanceResponse_JsonPayload struct { // If the input was successfully parsed and the requested output was JSON, // serialize to JSON and set it in this field. JsonPayload string `protobuf:"bytes,4,opt,name=json_payload,json=jsonPayload,proto3,oneof"` } type ConformanceResponse_Skipped struct { // For when the testee skipped the test, likely because a certain feature // wasn't supported, like JSON input/output. Skipped string `protobuf:"bytes,5,opt,name=skipped,proto3,oneof"` } type ConformanceResponse_JspbPayload struct { // If the input was successfully parsed and the requested output was JSPB, // serialize to JSPB and set it in this field. JSPB is google internal only // format. Opensource testees can just skip it. JspbPayload string `protobuf:"bytes,7,opt,name=jspb_payload,json=jspbPayload,proto3,oneof"` } type ConformanceResponse_TextPayload struct { // If the input was successfully parsed and the requested output was // TEXT_FORMAT, serialize to TEXT_FORMAT and set it in this field. TextPayload string `protobuf:"bytes,8,opt,name=text_payload,json=textPayload,proto3,oneof"` } func (*ConformanceResponse_ParseError) isConformanceResponse_Result() {} func (*ConformanceResponse_SerializeError) isConformanceResponse_Result() {} func (*ConformanceResponse_RuntimeError) isConformanceResponse_Result() {} func (*ConformanceResponse_ProtobufPayload) isConformanceResponse_Result() {} func (*ConformanceResponse_JsonPayload) isConformanceResponse_Result() {} func (*ConformanceResponse_Skipped) isConformanceResponse_Result() {} func (*ConformanceResponse_JspbPayload) isConformanceResponse_Result() {} func (*ConformanceResponse_TextPayload) isConformanceResponse_Result() {} // Encoding options for jspb format. type JspbEncodingConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Encode the value field of Any as jspb array if true, otherwise binary. UseJspbArrayAnyFormat bool `protobuf:"varint,1,opt,name=use_jspb_array_any_format,json=useJspbArrayAnyFormat,proto3" json:"use_jspb_array_any_format,omitempty"` } func (x *JspbEncodingConfig) Reset() { *x = JspbEncodingConfig{} if protoimpl.UnsafeEnabled { mi := &file_conformance_conformance_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *JspbEncodingConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*JspbEncodingConfig) ProtoMessage() {} func (x *JspbEncodingConfig) ProtoReflect() protoreflect.Message { mi := &file_conformance_conformance_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use JspbEncodingConfig.ProtoReflect.Descriptor instead. func (*JspbEncodingConfig) Descriptor() ([]byte, []int) { return file_conformance_conformance_proto_rawDescGZIP(), []int{3} } func (x *JspbEncodingConfig) GetUseJspbArrayAnyFormat() bool { if x != nil { return x.UseJspbArrayAnyFormat } return false } var File_conformance_conformance_proto protoreflect.FileDescriptor var file_conformance_conformance_proto_rawDesc = []byte{ 0x0a, 0x1d, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x26, 0x0a, 0x0a, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x22, 0xf6, 0x03, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x23, 0x0a, 0x0c, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x6a, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x23, 0x0a, 0x0c, 0x6a, 0x73, 0x70, 0x62, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x6a, 0x73, 0x70, 0x62, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x23, 0x0a, 0x0c, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x78, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x4f, 0x0a, 0x17, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x15, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x53, 0x0a, 0x15, 0x6a, 0x73, 0x70, 0x62, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x4a, 0x73, 0x70, 0x62, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x13, 0x6a, 0x73, 0x70, 0x62, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xcc, 0x02, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x73, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x29, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0d, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x2b, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x23, 0x0a, 0x0c, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x6a, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1a, 0x0a, 0x07, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0c, 0x6a, 0x73, 0x70, 0x62, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x6a, 0x73, 0x70, 0x62, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x23, 0x0a, 0x0c, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x78, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x4e, 0x0a, 0x12, 0x4a, 0x73, 0x70, 0x62, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x38, 0x0a, 0x19, 0x75, 0x73, 0x65, 0x5f, 0x6a, 0x73, 0x70, 0x62, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x61, 0x6e, 0x79, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x75, 0x73, 0x65, 0x4a, 0x73, 0x70, 0x62, 0x41, 0x72, 0x72, 0x61, 0x79, 0x41, 0x6e, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2a, 0x50, 0x0a, 0x0a, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x42, 0x55, 0x46, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x53, 0x50, 0x42, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x10, 0x04, 0x2a, 0x8f, 0x01, 0x0a, 0x0c, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x50, 0x41, 0x52, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x50, 0x42, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x10, 0x05, 0x42, 0x21, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_conformance_conformance_proto_rawDescOnce sync.Once file_conformance_conformance_proto_rawDescData = file_conformance_conformance_proto_rawDesc ) func file_conformance_conformance_proto_rawDescGZIP() []byte { file_conformance_conformance_proto_rawDescOnce.Do(func() { file_conformance_conformance_proto_rawDescData = protoimpl.X.CompressGZIP(file_conformance_conformance_proto_rawDescData) }) return file_conformance_conformance_proto_rawDescData } var file_conformance_conformance_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_conformance_conformance_proto_msgTypes = make([]protoimpl.MessageInfo, 4) var file_conformance_conformance_proto_goTypes = []interface{}{ (WireFormat)(0), // 0: conformance.WireFormat (TestCategory)(0), // 1: conformance.TestCategory (*FailureSet)(nil), // 2: conformance.FailureSet (*ConformanceRequest)(nil), // 3: conformance.ConformanceRequest (*ConformanceResponse)(nil), // 4: conformance.ConformanceResponse (*JspbEncodingConfig)(nil), // 5: conformance.JspbEncodingConfig } var file_conformance_conformance_proto_depIdxs = []int32{ 0, // 0: conformance.ConformanceRequest.requested_output_format:type_name -> conformance.WireFormat 1, // 1: conformance.ConformanceRequest.test_category:type_name -> conformance.TestCategory 5, // 2: conformance.ConformanceRequest.jspb_encoding_options:type_name -> conformance.JspbEncodingConfig 3, // [3:3] is the sub-list for method output_type 3, // [3:3] is the sub-list for method input_type 3, // [3:3] is the sub-list for extension type_name 3, // [3:3] is the sub-list for extension extendee 0, // [0:3] is the sub-list for field type_name } func init() { file_conformance_conformance_proto_init() } func file_conformance_conformance_proto_init() { if File_conformance_conformance_proto != nil { return } if !protoimpl.UnsafeEnabled { file_conformance_conformance_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FailureSet); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conformance_conformance_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConformanceRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conformance_conformance_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConformanceResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conformance_conformance_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JspbEncodingConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_conformance_conformance_proto_msgTypes[1].OneofWrappers = []interface{}{ (*ConformanceRequest_ProtobufPayload)(nil), (*ConformanceRequest_JsonPayload)(nil), (*ConformanceRequest_JspbPayload)(nil), (*ConformanceRequest_TextPayload)(nil), } file_conformance_conformance_proto_msgTypes[2].OneofWrappers = []interface{}{ (*ConformanceResponse_ParseError)(nil), (*ConformanceResponse_SerializeError)(nil), (*ConformanceResponse_RuntimeError)(nil), (*ConformanceResponse_ProtobufPayload)(nil), (*ConformanceResponse_JsonPayload)(nil), (*ConformanceResponse_Skipped)(nil), (*ConformanceResponse_JspbPayload)(nil), (*ConformanceResponse_TextPayload)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_conformance_conformance_proto_rawDesc, NumEnums: 2, NumMessages: 4, NumExtensions: 0, NumServices: 0, }, GoTypes: file_conformance_conformance_proto_goTypes, DependencyIndexes: file_conformance_conformance_proto_depIdxs, EnumInfos: file_conformance_conformance_proto_enumTypes, MessageInfos: file_conformance_conformance_proto_msgTypes, }.Build() File_conformance_conformance_proto = out.File file_conformance_conformance_proto_rawDesc = nil file_conformance_conformance_proto_goTypes = nil file_conformance_conformance_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/conformance/test_messages_proto2.pb.go000066400000000000000000004176161411250152500316320ustar00rootroot00000000000000// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // // Test schema for proto2 messages. This test schema is used by: // // - conformance tests // // LINT: ALLOW_GROUPS // Code generated by protoc-gen-go. DO NOT EDIT. // source: google/protobuf/test_messages_proto2.proto package conformance import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type ForeignEnumProto2 int32 const ( ForeignEnumProto2_FOREIGN_FOO ForeignEnumProto2 = 0 ForeignEnumProto2_FOREIGN_BAR ForeignEnumProto2 = 1 ForeignEnumProto2_FOREIGN_BAZ ForeignEnumProto2 = 2 ) // Enum value maps for ForeignEnumProto2. var ( ForeignEnumProto2_name = map[int32]string{ 0: "FOREIGN_FOO", 1: "FOREIGN_BAR", 2: "FOREIGN_BAZ", } ForeignEnumProto2_value = map[string]int32{ "FOREIGN_FOO": 0, "FOREIGN_BAR": 1, "FOREIGN_BAZ": 2, } ) func (x ForeignEnumProto2) Enum() *ForeignEnumProto2 { p := new(ForeignEnumProto2) *p = x return p } func (x ForeignEnumProto2) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ForeignEnumProto2) Descriptor() protoreflect.EnumDescriptor { return file_google_protobuf_test_messages_proto2_proto_enumTypes[0].Descriptor() } func (ForeignEnumProto2) Type() protoreflect.EnumType { return &file_google_protobuf_test_messages_proto2_proto_enumTypes[0] } func (x ForeignEnumProto2) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *ForeignEnumProto2) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = ForeignEnumProto2(num) return nil } // Deprecated: Use ForeignEnumProto2.Descriptor instead. func (ForeignEnumProto2) EnumDescriptor() ([]byte, []int) { return file_google_protobuf_test_messages_proto2_proto_rawDescGZIP(), []int{0} } type TestAllTypesProto2_NestedEnum int32 const ( TestAllTypesProto2_FOO TestAllTypesProto2_NestedEnum = 0 TestAllTypesProto2_BAR TestAllTypesProto2_NestedEnum = 1 TestAllTypesProto2_BAZ TestAllTypesProto2_NestedEnum = 2 TestAllTypesProto2_NEG TestAllTypesProto2_NestedEnum = -1 // Intentionally negative. ) // Enum value maps for TestAllTypesProto2_NestedEnum. var ( TestAllTypesProto2_NestedEnum_name = map[int32]string{ 0: "FOO", 1: "BAR", 2: "BAZ", -1: "NEG", } TestAllTypesProto2_NestedEnum_value = map[string]int32{ "FOO": 0, "BAR": 1, "BAZ": 2, "NEG": -1, } ) func (x TestAllTypesProto2_NestedEnum) Enum() *TestAllTypesProto2_NestedEnum { p := new(TestAllTypesProto2_NestedEnum) *p = x return p } func (x TestAllTypesProto2_NestedEnum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TestAllTypesProto2_NestedEnum) Descriptor() protoreflect.EnumDescriptor { return file_google_protobuf_test_messages_proto2_proto_enumTypes[1].Descriptor() } func (TestAllTypesProto2_NestedEnum) Type() protoreflect.EnumType { return &file_google_protobuf_test_messages_proto2_proto_enumTypes[1] } func (x TestAllTypesProto2_NestedEnum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *TestAllTypesProto2_NestedEnum) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = TestAllTypesProto2_NestedEnum(num) return nil } // Deprecated: Use TestAllTypesProto2_NestedEnum.Descriptor instead. func (TestAllTypesProto2_NestedEnum) EnumDescriptor() ([]byte, []int) { return file_google_protobuf_test_messages_proto2_proto_rawDescGZIP(), []int{0, 0} } // This proto includes every type of field in both singular and repeated // forms. // // Also, crucially, all messages and enums in this file are eventually // submessages of this message. So for example, a fuzz test of TestAllTypes // could trigger bugs that occur in any message type in this file. We verify // this stays true in a unit test. type TestAllTypesProto2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields // Singular OptionalInt32 *int32 `protobuf:"varint,1,opt,name=optional_int32,json=optionalInt32" json:"optional_int32,omitempty"` OptionalInt64 *int64 `protobuf:"varint,2,opt,name=optional_int64,json=optionalInt64" json:"optional_int64,omitempty"` OptionalUint32 *uint32 `protobuf:"varint,3,opt,name=optional_uint32,json=optionalUint32" json:"optional_uint32,omitempty"` OptionalUint64 *uint64 `protobuf:"varint,4,opt,name=optional_uint64,json=optionalUint64" json:"optional_uint64,omitempty"` OptionalSint32 *int32 `protobuf:"zigzag32,5,opt,name=optional_sint32,json=optionalSint32" json:"optional_sint32,omitempty"` OptionalSint64 *int64 `protobuf:"zigzag64,6,opt,name=optional_sint64,json=optionalSint64" json:"optional_sint64,omitempty"` OptionalFixed32 *uint32 `protobuf:"fixed32,7,opt,name=optional_fixed32,json=optionalFixed32" json:"optional_fixed32,omitempty"` OptionalFixed64 *uint64 `protobuf:"fixed64,8,opt,name=optional_fixed64,json=optionalFixed64" json:"optional_fixed64,omitempty"` OptionalSfixed32 *int32 `protobuf:"fixed32,9,opt,name=optional_sfixed32,json=optionalSfixed32" json:"optional_sfixed32,omitempty"` OptionalSfixed64 *int64 `protobuf:"fixed64,10,opt,name=optional_sfixed64,json=optionalSfixed64" json:"optional_sfixed64,omitempty"` OptionalFloat *float32 `protobuf:"fixed32,11,opt,name=optional_float,json=optionalFloat" json:"optional_float,omitempty"` OptionalDouble *float64 `protobuf:"fixed64,12,opt,name=optional_double,json=optionalDouble" json:"optional_double,omitempty"` OptionalBool *bool `protobuf:"varint,13,opt,name=optional_bool,json=optionalBool" json:"optional_bool,omitempty"` OptionalString *string `protobuf:"bytes,14,opt,name=optional_string,json=optionalString" json:"optional_string,omitempty"` OptionalBytes []byte `protobuf:"bytes,15,opt,name=optional_bytes,json=optionalBytes" json:"optional_bytes,omitempty"` OptionalNestedMessage *TestAllTypesProto2_NestedMessage `protobuf:"bytes,18,opt,name=optional_nested_message,json=optionalNestedMessage" json:"optional_nested_message,omitempty"` OptionalForeignMessage *ForeignMessageProto2 `protobuf:"bytes,19,opt,name=optional_foreign_message,json=optionalForeignMessage" json:"optional_foreign_message,omitempty"` OptionalNestedEnum *TestAllTypesProto2_NestedEnum `protobuf:"varint,21,opt,name=optional_nested_enum,json=optionalNestedEnum,enum=protobuf_test_messages.proto2.TestAllTypesProto2_NestedEnum" json:"optional_nested_enum,omitempty"` OptionalForeignEnum *ForeignEnumProto2 `protobuf:"varint,22,opt,name=optional_foreign_enum,json=optionalForeignEnum,enum=protobuf_test_messages.proto2.ForeignEnumProto2" json:"optional_foreign_enum,omitempty"` OptionalStringPiece *string `protobuf:"bytes,24,opt,name=optional_string_piece,json=optionalStringPiece" json:"optional_string_piece,omitempty"` OptionalCord *string `protobuf:"bytes,25,opt,name=optional_cord,json=optionalCord" json:"optional_cord,omitempty"` RecursiveMessage *TestAllTypesProto2 `protobuf:"bytes,27,opt,name=recursive_message,json=recursiveMessage" json:"recursive_message,omitempty"` // Repeated RepeatedInt32 []int32 `protobuf:"varint,31,rep,name=repeated_int32,json=repeatedInt32" json:"repeated_int32,omitempty"` RepeatedInt64 []int64 `protobuf:"varint,32,rep,name=repeated_int64,json=repeatedInt64" json:"repeated_int64,omitempty"` RepeatedUint32 []uint32 `protobuf:"varint,33,rep,name=repeated_uint32,json=repeatedUint32" json:"repeated_uint32,omitempty"` RepeatedUint64 []uint64 `protobuf:"varint,34,rep,name=repeated_uint64,json=repeatedUint64" json:"repeated_uint64,omitempty"` RepeatedSint32 []int32 `protobuf:"zigzag32,35,rep,name=repeated_sint32,json=repeatedSint32" json:"repeated_sint32,omitempty"` RepeatedSint64 []int64 `protobuf:"zigzag64,36,rep,name=repeated_sint64,json=repeatedSint64" json:"repeated_sint64,omitempty"` RepeatedFixed32 []uint32 `protobuf:"fixed32,37,rep,name=repeated_fixed32,json=repeatedFixed32" json:"repeated_fixed32,omitempty"` RepeatedFixed64 []uint64 `protobuf:"fixed64,38,rep,name=repeated_fixed64,json=repeatedFixed64" json:"repeated_fixed64,omitempty"` RepeatedSfixed32 []int32 `protobuf:"fixed32,39,rep,name=repeated_sfixed32,json=repeatedSfixed32" json:"repeated_sfixed32,omitempty"` RepeatedSfixed64 []int64 `protobuf:"fixed64,40,rep,name=repeated_sfixed64,json=repeatedSfixed64" json:"repeated_sfixed64,omitempty"` RepeatedFloat []float32 `protobuf:"fixed32,41,rep,name=repeated_float,json=repeatedFloat" json:"repeated_float,omitempty"` RepeatedDouble []float64 `protobuf:"fixed64,42,rep,name=repeated_double,json=repeatedDouble" json:"repeated_double,omitempty"` RepeatedBool []bool `protobuf:"varint,43,rep,name=repeated_bool,json=repeatedBool" json:"repeated_bool,omitempty"` RepeatedString []string `protobuf:"bytes,44,rep,name=repeated_string,json=repeatedString" json:"repeated_string,omitempty"` RepeatedBytes [][]byte `protobuf:"bytes,45,rep,name=repeated_bytes,json=repeatedBytes" json:"repeated_bytes,omitempty"` RepeatedNestedMessage []*TestAllTypesProto2_NestedMessage `protobuf:"bytes,48,rep,name=repeated_nested_message,json=repeatedNestedMessage" json:"repeated_nested_message,omitempty"` RepeatedForeignMessage []*ForeignMessageProto2 `protobuf:"bytes,49,rep,name=repeated_foreign_message,json=repeatedForeignMessage" json:"repeated_foreign_message,omitempty"` RepeatedNestedEnum []TestAllTypesProto2_NestedEnum `protobuf:"varint,51,rep,name=repeated_nested_enum,json=repeatedNestedEnum,enum=protobuf_test_messages.proto2.TestAllTypesProto2_NestedEnum" json:"repeated_nested_enum,omitempty"` RepeatedForeignEnum []ForeignEnumProto2 `protobuf:"varint,52,rep,name=repeated_foreign_enum,json=repeatedForeignEnum,enum=protobuf_test_messages.proto2.ForeignEnumProto2" json:"repeated_foreign_enum,omitempty"` RepeatedStringPiece []string `protobuf:"bytes,54,rep,name=repeated_string_piece,json=repeatedStringPiece" json:"repeated_string_piece,omitempty"` RepeatedCord []string `protobuf:"bytes,55,rep,name=repeated_cord,json=repeatedCord" json:"repeated_cord,omitempty"` // Packed PackedInt32 []int32 `protobuf:"varint,75,rep,packed,name=packed_int32,json=packedInt32" json:"packed_int32,omitempty"` PackedInt64 []int64 `protobuf:"varint,76,rep,packed,name=packed_int64,json=packedInt64" json:"packed_int64,omitempty"` PackedUint32 []uint32 `protobuf:"varint,77,rep,packed,name=packed_uint32,json=packedUint32" json:"packed_uint32,omitempty"` PackedUint64 []uint64 `protobuf:"varint,78,rep,packed,name=packed_uint64,json=packedUint64" json:"packed_uint64,omitempty"` PackedSint32 []int32 `protobuf:"zigzag32,79,rep,packed,name=packed_sint32,json=packedSint32" json:"packed_sint32,omitempty"` PackedSint64 []int64 `protobuf:"zigzag64,80,rep,packed,name=packed_sint64,json=packedSint64" json:"packed_sint64,omitempty"` PackedFixed32 []uint32 `protobuf:"fixed32,81,rep,packed,name=packed_fixed32,json=packedFixed32" json:"packed_fixed32,omitempty"` PackedFixed64 []uint64 `protobuf:"fixed64,82,rep,packed,name=packed_fixed64,json=packedFixed64" json:"packed_fixed64,omitempty"` PackedSfixed32 []int32 `protobuf:"fixed32,83,rep,packed,name=packed_sfixed32,json=packedSfixed32" json:"packed_sfixed32,omitempty"` PackedSfixed64 []int64 `protobuf:"fixed64,84,rep,packed,name=packed_sfixed64,json=packedSfixed64" json:"packed_sfixed64,omitempty"` PackedFloat []float32 `protobuf:"fixed32,85,rep,packed,name=packed_float,json=packedFloat" json:"packed_float,omitempty"` PackedDouble []float64 `protobuf:"fixed64,86,rep,packed,name=packed_double,json=packedDouble" json:"packed_double,omitempty"` PackedBool []bool `protobuf:"varint,87,rep,packed,name=packed_bool,json=packedBool" json:"packed_bool,omitempty"` PackedNestedEnum []TestAllTypesProto2_NestedEnum `protobuf:"varint,88,rep,packed,name=packed_nested_enum,json=packedNestedEnum,enum=protobuf_test_messages.proto2.TestAllTypesProto2_NestedEnum" json:"packed_nested_enum,omitempty"` // Unpacked UnpackedInt32 []int32 `protobuf:"varint,89,rep,name=unpacked_int32,json=unpackedInt32" json:"unpacked_int32,omitempty"` UnpackedInt64 []int64 `protobuf:"varint,90,rep,name=unpacked_int64,json=unpackedInt64" json:"unpacked_int64,omitempty"` UnpackedUint32 []uint32 `protobuf:"varint,91,rep,name=unpacked_uint32,json=unpackedUint32" json:"unpacked_uint32,omitempty"` UnpackedUint64 []uint64 `protobuf:"varint,92,rep,name=unpacked_uint64,json=unpackedUint64" json:"unpacked_uint64,omitempty"` UnpackedSint32 []int32 `protobuf:"zigzag32,93,rep,name=unpacked_sint32,json=unpackedSint32" json:"unpacked_sint32,omitempty"` UnpackedSint64 []int64 `protobuf:"zigzag64,94,rep,name=unpacked_sint64,json=unpackedSint64" json:"unpacked_sint64,omitempty"` UnpackedFixed32 []uint32 `protobuf:"fixed32,95,rep,name=unpacked_fixed32,json=unpackedFixed32" json:"unpacked_fixed32,omitempty"` UnpackedFixed64 []uint64 `protobuf:"fixed64,96,rep,name=unpacked_fixed64,json=unpackedFixed64" json:"unpacked_fixed64,omitempty"` UnpackedSfixed32 []int32 `protobuf:"fixed32,97,rep,name=unpacked_sfixed32,json=unpackedSfixed32" json:"unpacked_sfixed32,omitempty"` UnpackedSfixed64 []int64 `protobuf:"fixed64,98,rep,name=unpacked_sfixed64,json=unpackedSfixed64" json:"unpacked_sfixed64,omitempty"` UnpackedFloat []float32 `protobuf:"fixed32,99,rep,name=unpacked_float,json=unpackedFloat" json:"unpacked_float,omitempty"` UnpackedDouble []float64 `protobuf:"fixed64,100,rep,name=unpacked_double,json=unpackedDouble" json:"unpacked_double,omitempty"` UnpackedBool []bool `protobuf:"varint,101,rep,name=unpacked_bool,json=unpackedBool" json:"unpacked_bool,omitempty"` UnpackedNestedEnum []TestAllTypesProto2_NestedEnum `protobuf:"varint,102,rep,name=unpacked_nested_enum,json=unpackedNestedEnum,enum=protobuf_test_messages.proto2.TestAllTypesProto2_NestedEnum" json:"unpacked_nested_enum,omitempty"` // Map MapInt32Int32 map[int32]int32 `protobuf:"bytes,56,rep,name=map_int32_int32,json=mapInt32Int32" json:"map_int32_int32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapInt64Int64 map[int64]int64 `protobuf:"bytes,57,rep,name=map_int64_int64,json=mapInt64Int64" json:"map_int64_int64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint32Uint32 map[uint32]uint32 `protobuf:"bytes,58,rep,name=map_uint32_uint32,json=mapUint32Uint32" json:"map_uint32_uint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint64Uint64 map[uint64]uint64 `protobuf:"bytes,59,rep,name=map_uint64_uint64,json=mapUint64Uint64" json:"map_uint64_uint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapSint32Sint32 map[int32]int32 `protobuf:"bytes,60,rep,name=map_sint32_sint32,json=mapSint32Sint32" json:"map_sint32_sint32,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` MapSint64Sint64 map[int64]int64 `protobuf:"bytes,61,rep,name=map_sint64_sint64,json=mapSint64Sint64" json:"map_sint64_sint64,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` MapFixed32Fixed32 map[uint32]uint32 `protobuf:"bytes,62,rep,name=map_fixed32_fixed32,json=mapFixed32Fixed32" json:"map_fixed32_fixed32,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapFixed64Fixed64 map[uint64]uint64 `protobuf:"bytes,63,rep,name=map_fixed64_fixed64,json=mapFixed64Fixed64" json:"map_fixed64_fixed64,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapSfixed32Sfixed32 map[int32]int32 `protobuf:"bytes,64,rep,name=map_sfixed32_sfixed32,json=mapSfixed32Sfixed32" json:"map_sfixed32_sfixed32,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapSfixed64Sfixed64 map[int64]int64 `protobuf:"bytes,65,rep,name=map_sfixed64_sfixed64,json=mapSfixed64Sfixed64" json:"map_sfixed64_sfixed64,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapInt32Float map[int32]float32 `protobuf:"bytes,66,rep,name=map_int32_float,json=mapInt32Float" json:"map_int32_float,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapInt32Double map[int32]float64 `protobuf:"bytes,67,rep,name=map_int32_double,json=mapInt32Double" json:"map_int32_double,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolBool map[bool]bool `protobuf:"bytes,68,rep,name=map_bool_bool,json=mapBoolBool" json:"map_bool_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapStringString map[string]string `protobuf:"bytes,69,rep,name=map_string_string,json=mapStringString" json:"map_string_string,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapStringBytes map[string][]byte `protobuf:"bytes,70,rep,name=map_string_bytes,json=mapStringBytes" json:"map_string_bytes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapStringNestedMessage map[string]*TestAllTypesProto2_NestedMessage `protobuf:"bytes,71,rep,name=map_string_nested_message,json=mapStringNestedMessage" json:"map_string_nested_message,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapStringForeignMessage map[string]*ForeignMessageProto2 `protobuf:"bytes,72,rep,name=map_string_foreign_message,json=mapStringForeignMessage" json:"map_string_foreign_message,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapStringNestedEnum map[string]TestAllTypesProto2_NestedEnum `protobuf:"bytes,73,rep,name=map_string_nested_enum,json=mapStringNestedEnum" json:"map_string_nested_enum,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=protobuf_test_messages.proto2.TestAllTypesProto2_NestedEnum"` MapStringForeignEnum map[string]ForeignEnumProto2 `protobuf:"bytes,74,rep,name=map_string_foreign_enum,json=mapStringForeignEnum" json:"map_string_foreign_enum,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=protobuf_test_messages.proto2.ForeignEnumProto2"` // Types that are assignable to OneofField: // *TestAllTypesProto2_OneofUint32 // *TestAllTypesProto2_OneofNestedMessage // *TestAllTypesProto2_OneofString // *TestAllTypesProto2_OneofBytes // *TestAllTypesProto2_OneofBool // *TestAllTypesProto2_OneofUint64 // *TestAllTypesProto2_OneofFloat // *TestAllTypesProto2_OneofDouble // *TestAllTypesProto2_OneofEnum OneofField isTestAllTypesProto2_OneofField `protobuf_oneof:"oneof_field"` Data *TestAllTypesProto2_Data `protobuf:"group,201,opt,name=Data,json=data" json:"data,omitempty"` // Test field-name-to-JSON-name convention. // (protobuf says names can be any valid C/C++ identifier.) Fieldname1 *int32 `protobuf:"varint,401,opt,name=fieldname1" json:"fieldname1,omitempty"` FieldName2 *int32 `protobuf:"varint,402,opt,name=field_name2,json=fieldName2" json:"field_name2,omitempty"` XFieldName3 *int32 `protobuf:"varint,403,opt,name=_field_name3,json=FieldName3" json:"_field_name3,omitempty"` Field_Name4_ *int32 `protobuf:"varint,404,opt,name=field__name4_,json=fieldName4" json:"field__name4_,omitempty"` Field0Name5 *int32 `protobuf:"varint,405,opt,name=field0name5" json:"field0name5,omitempty"` Field_0Name6 *int32 `protobuf:"varint,406,opt,name=field_0_name6,json=field0Name6" json:"field_0_name6,omitempty"` FieldName7 *int32 `protobuf:"varint,407,opt,name=fieldName7" json:"fieldName7,omitempty"` FieldName8 *int32 `protobuf:"varint,408,opt,name=FieldName8" json:"FieldName8,omitempty"` Field_Name9 *int32 `protobuf:"varint,409,opt,name=field_Name9,json=fieldName9" json:"field_Name9,omitempty"` Field_Name10 *int32 `protobuf:"varint,410,opt,name=Field_Name10,json=FieldName10" json:"Field_Name10,omitempty"` FIELD_NAME11 *int32 `protobuf:"varint,411,opt,name=FIELD_NAME11,json=FIELDNAME11" json:"FIELD_NAME11,omitempty"` FIELDName12 *int32 `protobuf:"varint,412,opt,name=FIELD_name12,json=FIELDName12" json:"FIELD_name12,omitempty"` XFieldName13 *int32 `protobuf:"varint,413,opt,name=__field_name13,json=FieldName13" json:"__field_name13,omitempty"` X_FieldName14 *int32 `protobuf:"varint,414,opt,name=__Field_name14,json=FieldName14" json:"__Field_name14,omitempty"` Field_Name15 *int32 `protobuf:"varint,415,opt,name=field__name15,json=fieldName15" json:"field__name15,omitempty"` Field__Name16 *int32 `protobuf:"varint,416,opt,name=field__Name16,json=fieldName16" json:"field__Name16,omitempty"` FieldName17__ *int32 `protobuf:"varint,417,opt,name=field_name17__,json=fieldName17" json:"field_name17__,omitempty"` FieldName18__ *int32 `protobuf:"varint,418,opt,name=Field_name18__,json=FieldName18" json:"Field_name18__,omitempty"` } func (x *TestAllTypesProto2) Reset() { *x = TestAllTypesProto2{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_test_messages_proto2_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestAllTypesProto2) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestAllTypesProto2) ProtoMessage() {} func (x *TestAllTypesProto2) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_test_messages_proto2_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestAllTypesProto2.ProtoReflect.Descriptor instead. func (*TestAllTypesProto2) Descriptor() ([]byte, []int) { return file_google_protobuf_test_messages_proto2_proto_rawDescGZIP(), []int{0} } func (x *TestAllTypesProto2) GetOptionalInt32() int32 { if x != nil && x.OptionalInt32 != nil { return *x.OptionalInt32 } return 0 } func (x *TestAllTypesProto2) GetOptionalInt64() int64 { if x != nil && x.OptionalInt64 != nil { return *x.OptionalInt64 } return 0 } func (x *TestAllTypesProto2) GetOptionalUint32() uint32 { if x != nil && x.OptionalUint32 != nil { return *x.OptionalUint32 } return 0 } func (x *TestAllTypesProto2) GetOptionalUint64() uint64 { if x != nil && x.OptionalUint64 != nil { return *x.OptionalUint64 } return 0 } func (x *TestAllTypesProto2) GetOptionalSint32() int32 { if x != nil && x.OptionalSint32 != nil { return *x.OptionalSint32 } return 0 } func (x *TestAllTypesProto2) GetOptionalSint64() int64 { if x != nil && x.OptionalSint64 != nil { return *x.OptionalSint64 } return 0 } func (x *TestAllTypesProto2) GetOptionalFixed32() uint32 { if x != nil && x.OptionalFixed32 != nil { return *x.OptionalFixed32 } return 0 } func (x *TestAllTypesProto2) GetOptionalFixed64() uint64 { if x != nil && x.OptionalFixed64 != nil { return *x.OptionalFixed64 } return 0 } func (x *TestAllTypesProto2) GetOptionalSfixed32() int32 { if x != nil && x.OptionalSfixed32 != nil { return *x.OptionalSfixed32 } return 0 } func (x *TestAllTypesProto2) GetOptionalSfixed64() int64 { if x != nil && x.OptionalSfixed64 != nil { return *x.OptionalSfixed64 } return 0 } func (x *TestAllTypesProto2) GetOptionalFloat() float32 { if x != nil && x.OptionalFloat != nil { return *x.OptionalFloat } return 0 } func (x *TestAllTypesProto2) GetOptionalDouble() float64 { if x != nil && x.OptionalDouble != nil { return *x.OptionalDouble } return 0 } func (x *TestAllTypesProto2) GetOptionalBool() bool { if x != nil && x.OptionalBool != nil { return *x.OptionalBool } return false } func (x *TestAllTypesProto2) GetOptionalString() string { if x != nil && x.OptionalString != nil { return *x.OptionalString } return "" } func (x *TestAllTypesProto2) GetOptionalBytes() []byte { if x != nil { return x.OptionalBytes } return nil } func (x *TestAllTypesProto2) GetOptionalNestedMessage() *TestAllTypesProto2_NestedMessage { if x != nil { return x.OptionalNestedMessage } return nil } func (x *TestAllTypesProto2) GetOptionalForeignMessage() *ForeignMessageProto2 { if x != nil { return x.OptionalForeignMessage } return nil } func (x *TestAllTypesProto2) GetOptionalNestedEnum() TestAllTypesProto2_NestedEnum { if x != nil && x.OptionalNestedEnum != nil { return *x.OptionalNestedEnum } return TestAllTypesProto2_FOO } func (x *TestAllTypesProto2) GetOptionalForeignEnum() ForeignEnumProto2 { if x != nil && x.OptionalForeignEnum != nil { return *x.OptionalForeignEnum } return ForeignEnumProto2_FOREIGN_FOO } func (x *TestAllTypesProto2) GetOptionalStringPiece() string { if x != nil && x.OptionalStringPiece != nil { return *x.OptionalStringPiece } return "" } func (x *TestAllTypesProto2) GetOptionalCord() string { if x != nil && x.OptionalCord != nil { return *x.OptionalCord } return "" } func (x *TestAllTypesProto2) GetRecursiveMessage() *TestAllTypesProto2 { if x != nil { return x.RecursiveMessage } return nil } func (x *TestAllTypesProto2) GetRepeatedInt32() []int32 { if x != nil { return x.RepeatedInt32 } return nil } func (x *TestAllTypesProto2) GetRepeatedInt64() []int64 { if x != nil { return x.RepeatedInt64 } return nil } func (x *TestAllTypesProto2) GetRepeatedUint32() []uint32 { if x != nil { return x.RepeatedUint32 } return nil } func (x *TestAllTypesProto2) GetRepeatedUint64() []uint64 { if x != nil { return x.RepeatedUint64 } return nil } func (x *TestAllTypesProto2) GetRepeatedSint32() []int32 { if x != nil { return x.RepeatedSint32 } return nil } func (x *TestAllTypesProto2) GetRepeatedSint64() []int64 { if x != nil { return x.RepeatedSint64 } return nil } func (x *TestAllTypesProto2) GetRepeatedFixed32() []uint32 { if x != nil { return x.RepeatedFixed32 } return nil } func (x *TestAllTypesProto2) GetRepeatedFixed64() []uint64 { if x != nil { return x.RepeatedFixed64 } return nil } func (x *TestAllTypesProto2) GetRepeatedSfixed32() []int32 { if x != nil { return x.RepeatedSfixed32 } return nil } func (x *TestAllTypesProto2) GetRepeatedSfixed64() []int64 { if x != nil { return x.RepeatedSfixed64 } return nil } func (x *TestAllTypesProto2) GetRepeatedFloat() []float32 { if x != nil { return x.RepeatedFloat } return nil } func (x *TestAllTypesProto2) GetRepeatedDouble() []float64 { if x != nil { return x.RepeatedDouble } return nil } func (x *TestAllTypesProto2) GetRepeatedBool() []bool { if x != nil { return x.RepeatedBool } return nil } func (x *TestAllTypesProto2) GetRepeatedString() []string { if x != nil { return x.RepeatedString } return nil } func (x *TestAllTypesProto2) GetRepeatedBytes() [][]byte { if x != nil { return x.RepeatedBytes } return nil } func (x *TestAllTypesProto2) GetRepeatedNestedMessage() []*TestAllTypesProto2_NestedMessage { if x != nil { return x.RepeatedNestedMessage } return nil } func (x *TestAllTypesProto2) GetRepeatedForeignMessage() []*ForeignMessageProto2 { if x != nil { return x.RepeatedForeignMessage } return nil } func (x *TestAllTypesProto2) GetRepeatedNestedEnum() []TestAllTypesProto2_NestedEnum { if x != nil { return x.RepeatedNestedEnum } return nil } func (x *TestAllTypesProto2) GetRepeatedForeignEnum() []ForeignEnumProto2 { if x != nil { return x.RepeatedForeignEnum } return nil } func (x *TestAllTypesProto2) GetRepeatedStringPiece() []string { if x != nil { return x.RepeatedStringPiece } return nil } func (x *TestAllTypesProto2) GetRepeatedCord() []string { if x != nil { return x.RepeatedCord } return nil } func (x *TestAllTypesProto2) GetPackedInt32() []int32 { if x != nil { return x.PackedInt32 } return nil } func (x *TestAllTypesProto2) GetPackedInt64() []int64 { if x != nil { return x.PackedInt64 } return nil } func (x *TestAllTypesProto2) GetPackedUint32() []uint32 { if x != nil { return x.PackedUint32 } return nil } func (x *TestAllTypesProto2) GetPackedUint64() []uint64 { if x != nil { return x.PackedUint64 } return nil } func (x *TestAllTypesProto2) GetPackedSint32() []int32 { if x != nil { return x.PackedSint32 } return nil } func (x *TestAllTypesProto2) GetPackedSint64() []int64 { if x != nil { return x.PackedSint64 } return nil } func (x *TestAllTypesProto2) GetPackedFixed32() []uint32 { if x != nil { return x.PackedFixed32 } return nil } func (x *TestAllTypesProto2) GetPackedFixed64() []uint64 { if x != nil { return x.PackedFixed64 } return nil } func (x *TestAllTypesProto2) GetPackedSfixed32() []int32 { if x != nil { return x.PackedSfixed32 } return nil } func (x *TestAllTypesProto2) GetPackedSfixed64() []int64 { if x != nil { return x.PackedSfixed64 } return nil } func (x *TestAllTypesProto2) GetPackedFloat() []float32 { if x != nil { return x.PackedFloat } return nil } func (x *TestAllTypesProto2) GetPackedDouble() []float64 { if x != nil { return x.PackedDouble } return nil } func (x *TestAllTypesProto2) GetPackedBool() []bool { if x != nil { return x.PackedBool } return nil } func (x *TestAllTypesProto2) GetPackedNestedEnum() []TestAllTypesProto2_NestedEnum { if x != nil { return x.PackedNestedEnum } return nil } func (x *TestAllTypesProto2) GetUnpackedInt32() []int32 { if x != nil { return x.UnpackedInt32 } return nil } func (x *TestAllTypesProto2) GetUnpackedInt64() []int64 { if x != nil { return x.UnpackedInt64 } return nil } func (x *TestAllTypesProto2) GetUnpackedUint32() []uint32 { if x != nil { return x.UnpackedUint32 } return nil } func (x *TestAllTypesProto2) GetUnpackedUint64() []uint64 { if x != nil { return x.UnpackedUint64 } return nil } func (x *TestAllTypesProto2) GetUnpackedSint32() []int32 { if x != nil { return x.UnpackedSint32 } return nil } func (x *TestAllTypesProto2) GetUnpackedSint64() []int64 { if x != nil { return x.UnpackedSint64 } return nil } func (x *TestAllTypesProto2) GetUnpackedFixed32() []uint32 { if x != nil { return x.UnpackedFixed32 } return nil } func (x *TestAllTypesProto2) GetUnpackedFixed64() []uint64 { if x != nil { return x.UnpackedFixed64 } return nil } func (x *TestAllTypesProto2) GetUnpackedSfixed32() []int32 { if x != nil { return x.UnpackedSfixed32 } return nil } func (x *TestAllTypesProto2) GetUnpackedSfixed64() []int64 { if x != nil { return x.UnpackedSfixed64 } return nil } func (x *TestAllTypesProto2) GetUnpackedFloat() []float32 { if x != nil { return x.UnpackedFloat } return nil } func (x *TestAllTypesProto2) GetUnpackedDouble() []float64 { if x != nil { return x.UnpackedDouble } return nil } func (x *TestAllTypesProto2) GetUnpackedBool() []bool { if x != nil { return x.UnpackedBool } return nil } func (x *TestAllTypesProto2) GetUnpackedNestedEnum() []TestAllTypesProto2_NestedEnum { if x != nil { return x.UnpackedNestedEnum } return nil } func (x *TestAllTypesProto2) GetMapInt32Int32() map[int32]int32 { if x != nil { return x.MapInt32Int32 } return nil } func (x *TestAllTypesProto2) GetMapInt64Int64() map[int64]int64 { if x != nil { return x.MapInt64Int64 } return nil } func (x *TestAllTypesProto2) GetMapUint32Uint32() map[uint32]uint32 { if x != nil { return x.MapUint32Uint32 } return nil } func (x *TestAllTypesProto2) GetMapUint64Uint64() map[uint64]uint64 { if x != nil { return x.MapUint64Uint64 } return nil } func (x *TestAllTypesProto2) GetMapSint32Sint32() map[int32]int32 { if x != nil { return x.MapSint32Sint32 } return nil } func (x *TestAllTypesProto2) GetMapSint64Sint64() map[int64]int64 { if x != nil { return x.MapSint64Sint64 } return nil } func (x *TestAllTypesProto2) GetMapFixed32Fixed32() map[uint32]uint32 { if x != nil { return x.MapFixed32Fixed32 } return nil } func (x *TestAllTypesProto2) GetMapFixed64Fixed64() map[uint64]uint64 { if x != nil { return x.MapFixed64Fixed64 } return nil } func (x *TestAllTypesProto2) GetMapSfixed32Sfixed32() map[int32]int32 { if x != nil { return x.MapSfixed32Sfixed32 } return nil } func (x *TestAllTypesProto2) GetMapSfixed64Sfixed64() map[int64]int64 { if x != nil { return x.MapSfixed64Sfixed64 } return nil } func (x *TestAllTypesProto2) GetMapInt32Float() map[int32]float32 { if x != nil { return x.MapInt32Float } return nil } func (x *TestAllTypesProto2) GetMapInt32Double() map[int32]float64 { if x != nil { return x.MapInt32Double } return nil } func (x *TestAllTypesProto2) GetMapBoolBool() map[bool]bool { if x != nil { return x.MapBoolBool } return nil } func (x *TestAllTypesProto2) GetMapStringString() map[string]string { if x != nil { return x.MapStringString } return nil } func (x *TestAllTypesProto2) GetMapStringBytes() map[string][]byte { if x != nil { return x.MapStringBytes } return nil } func (x *TestAllTypesProto2) GetMapStringNestedMessage() map[string]*TestAllTypesProto2_NestedMessage { if x != nil { return x.MapStringNestedMessage } return nil } func (x *TestAllTypesProto2) GetMapStringForeignMessage() map[string]*ForeignMessageProto2 { if x != nil { return x.MapStringForeignMessage } return nil } func (x *TestAllTypesProto2) GetMapStringNestedEnum() map[string]TestAllTypesProto2_NestedEnum { if x != nil { return x.MapStringNestedEnum } return nil } func (x *TestAllTypesProto2) GetMapStringForeignEnum() map[string]ForeignEnumProto2 { if x != nil { return x.MapStringForeignEnum } return nil } func (m *TestAllTypesProto2) GetOneofField() isTestAllTypesProto2_OneofField { if m != nil { return m.OneofField } return nil } func (x *TestAllTypesProto2) GetOneofUint32() uint32 { if x, ok := x.GetOneofField().(*TestAllTypesProto2_OneofUint32); ok { return x.OneofUint32 } return 0 } func (x *TestAllTypesProto2) GetOneofNestedMessage() *TestAllTypesProto2_NestedMessage { if x, ok := x.GetOneofField().(*TestAllTypesProto2_OneofNestedMessage); ok { return x.OneofNestedMessage } return nil } func (x *TestAllTypesProto2) GetOneofString() string { if x, ok := x.GetOneofField().(*TestAllTypesProto2_OneofString); ok { return x.OneofString } return "" } func (x *TestAllTypesProto2) GetOneofBytes() []byte { if x, ok := x.GetOneofField().(*TestAllTypesProto2_OneofBytes); ok { return x.OneofBytes } return nil } func (x *TestAllTypesProto2) GetOneofBool() bool { if x, ok := x.GetOneofField().(*TestAllTypesProto2_OneofBool); ok { return x.OneofBool } return false } func (x *TestAllTypesProto2) GetOneofUint64() uint64 { if x, ok := x.GetOneofField().(*TestAllTypesProto2_OneofUint64); ok { return x.OneofUint64 } return 0 } func (x *TestAllTypesProto2) GetOneofFloat() float32 { if x, ok := x.GetOneofField().(*TestAllTypesProto2_OneofFloat); ok { return x.OneofFloat } return 0 } func (x *TestAllTypesProto2) GetOneofDouble() float64 { if x, ok := x.GetOneofField().(*TestAllTypesProto2_OneofDouble); ok { return x.OneofDouble } return 0 } func (x *TestAllTypesProto2) GetOneofEnum() TestAllTypesProto2_NestedEnum { if x, ok := x.GetOneofField().(*TestAllTypesProto2_OneofEnum); ok { return x.OneofEnum } return TestAllTypesProto2_FOO } func (x *TestAllTypesProto2) GetData() *TestAllTypesProto2_Data { if x != nil { return x.Data } return nil } func (x *TestAllTypesProto2) GetFieldname1() int32 { if x != nil && x.Fieldname1 != nil { return *x.Fieldname1 } return 0 } func (x *TestAllTypesProto2) GetFieldName2() int32 { if x != nil && x.FieldName2 != nil { return *x.FieldName2 } return 0 } func (x *TestAllTypesProto2) GetXFieldName3() int32 { if x != nil && x.XFieldName3 != nil { return *x.XFieldName3 } return 0 } func (x *TestAllTypesProto2) GetField_Name4_() int32 { if x != nil && x.Field_Name4_ != nil { return *x.Field_Name4_ } return 0 } func (x *TestAllTypesProto2) GetField0Name5() int32 { if x != nil && x.Field0Name5 != nil { return *x.Field0Name5 } return 0 } func (x *TestAllTypesProto2) GetField_0Name6() int32 { if x != nil && x.Field_0Name6 != nil { return *x.Field_0Name6 } return 0 } func (x *TestAllTypesProto2) GetFieldName7() int32 { if x != nil && x.FieldName7 != nil { return *x.FieldName7 } return 0 } func (x *TestAllTypesProto2) GetFieldName8() int32 { if x != nil && x.FieldName8 != nil { return *x.FieldName8 } return 0 } func (x *TestAllTypesProto2) GetField_Name9() int32 { if x != nil && x.Field_Name9 != nil { return *x.Field_Name9 } return 0 } func (x *TestAllTypesProto2) GetField_Name10() int32 { if x != nil && x.Field_Name10 != nil { return *x.Field_Name10 } return 0 } func (x *TestAllTypesProto2) GetFIELD_NAME11() int32 { if x != nil && x.FIELD_NAME11 != nil { return *x.FIELD_NAME11 } return 0 } func (x *TestAllTypesProto2) GetFIELDName12() int32 { if x != nil && x.FIELDName12 != nil { return *x.FIELDName12 } return 0 } func (x *TestAllTypesProto2) GetXFieldName13() int32 { if x != nil && x.XFieldName13 != nil { return *x.XFieldName13 } return 0 } func (x *TestAllTypesProto2) GetX_FieldName14() int32 { if x != nil && x.X_FieldName14 != nil { return *x.X_FieldName14 } return 0 } func (x *TestAllTypesProto2) GetField_Name15() int32 { if x != nil && x.Field_Name15 != nil { return *x.Field_Name15 } return 0 } func (x *TestAllTypesProto2) GetField__Name16() int32 { if x != nil && x.Field__Name16 != nil { return *x.Field__Name16 } return 0 } func (x *TestAllTypesProto2) GetFieldName17__() int32 { if x != nil && x.FieldName17__ != nil { return *x.FieldName17__ } return 0 } func (x *TestAllTypesProto2) GetFieldName18__() int32 { if x != nil && x.FieldName18__ != nil { return *x.FieldName18__ } return 0 } type isTestAllTypesProto2_OneofField interface { isTestAllTypesProto2_OneofField() } type TestAllTypesProto2_OneofUint32 struct { OneofUint32 uint32 `protobuf:"varint,111,opt,name=oneof_uint32,json=oneofUint32,oneof"` } type TestAllTypesProto2_OneofNestedMessage struct { OneofNestedMessage *TestAllTypesProto2_NestedMessage `protobuf:"bytes,112,opt,name=oneof_nested_message,json=oneofNestedMessage,oneof"` } type TestAllTypesProto2_OneofString struct { OneofString string `protobuf:"bytes,113,opt,name=oneof_string,json=oneofString,oneof"` } type TestAllTypesProto2_OneofBytes struct { OneofBytes []byte `protobuf:"bytes,114,opt,name=oneof_bytes,json=oneofBytes,oneof"` } type TestAllTypesProto2_OneofBool struct { OneofBool bool `protobuf:"varint,115,opt,name=oneof_bool,json=oneofBool,oneof"` } type TestAllTypesProto2_OneofUint64 struct { OneofUint64 uint64 `protobuf:"varint,116,opt,name=oneof_uint64,json=oneofUint64,oneof"` } type TestAllTypesProto2_OneofFloat struct { OneofFloat float32 `protobuf:"fixed32,117,opt,name=oneof_float,json=oneofFloat,oneof"` } type TestAllTypesProto2_OneofDouble struct { OneofDouble float64 `protobuf:"fixed64,118,opt,name=oneof_double,json=oneofDouble,oneof"` } type TestAllTypesProto2_OneofEnum struct { OneofEnum TestAllTypesProto2_NestedEnum `protobuf:"varint,119,opt,name=oneof_enum,json=oneofEnum,enum=protobuf_test_messages.proto2.TestAllTypesProto2_NestedEnum,oneof"` } func (*TestAllTypesProto2_OneofUint32) isTestAllTypesProto2_OneofField() {} func (*TestAllTypesProto2_OneofNestedMessage) isTestAllTypesProto2_OneofField() {} func (*TestAllTypesProto2_OneofString) isTestAllTypesProto2_OneofField() {} func (*TestAllTypesProto2_OneofBytes) isTestAllTypesProto2_OneofField() {} func (*TestAllTypesProto2_OneofBool) isTestAllTypesProto2_OneofField() {} func (*TestAllTypesProto2_OneofUint64) isTestAllTypesProto2_OneofField() {} func (*TestAllTypesProto2_OneofFloat) isTestAllTypesProto2_OneofField() {} func (*TestAllTypesProto2_OneofDouble) isTestAllTypesProto2_OneofField() {} func (*TestAllTypesProto2_OneofEnum) isTestAllTypesProto2_OneofField() {} type ForeignMessageProto2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields C *int32 `protobuf:"varint,1,opt,name=c" json:"c,omitempty"` } func (x *ForeignMessageProto2) Reset() { *x = ForeignMessageProto2{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_test_messages_proto2_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ForeignMessageProto2) String() string { return protoimpl.X.MessageStringOf(x) } func (*ForeignMessageProto2) ProtoMessage() {} func (x *ForeignMessageProto2) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_test_messages_proto2_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ForeignMessageProto2.ProtoReflect.Descriptor instead. func (*ForeignMessageProto2) Descriptor() ([]byte, []int) { return file_google_protobuf_test_messages_proto2_proto_rawDescGZIP(), []int{1} } func (x *ForeignMessageProto2) GetC() int32 { if x != nil && x.C != nil { return *x.C } return 0 } type UnknownToTestAllTypes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OptionalInt32 *int32 `protobuf:"varint,1001,opt,name=optional_int32,json=optionalInt32" json:"optional_int32,omitempty"` OptionalString *string `protobuf:"bytes,1002,opt,name=optional_string,json=optionalString" json:"optional_string,omitempty"` NestedMessage *ForeignMessageProto2 `protobuf:"bytes,1003,opt,name=nested_message,json=nestedMessage" json:"nested_message,omitempty"` Optionalgroup *UnknownToTestAllTypes_OptionalGroup `protobuf:"group,1004,opt,name=OptionalGroup,json=optionalgroup" json:"optionalgroup,omitempty"` OptionalBool *bool `protobuf:"varint,1006,opt,name=optional_bool,json=optionalBool" json:"optional_bool,omitempty"` RepeatedInt32 []int32 `protobuf:"varint,1011,rep,name=repeated_int32,json=repeatedInt32" json:"repeated_int32,omitempty"` } func (x *UnknownToTestAllTypes) Reset() { *x = UnknownToTestAllTypes{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_test_messages_proto2_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UnknownToTestAllTypes) String() string { return protoimpl.X.MessageStringOf(x) } func (*UnknownToTestAllTypes) ProtoMessage() {} func (x *UnknownToTestAllTypes) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_test_messages_proto2_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UnknownToTestAllTypes.ProtoReflect.Descriptor instead. func (*UnknownToTestAllTypes) Descriptor() ([]byte, []int) { return file_google_protobuf_test_messages_proto2_proto_rawDescGZIP(), []int{2} } func (x *UnknownToTestAllTypes) GetOptionalInt32() int32 { if x != nil && x.OptionalInt32 != nil { return *x.OptionalInt32 } return 0 } func (x *UnknownToTestAllTypes) GetOptionalString() string { if x != nil && x.OptionalString != nil { return *x.OptionalString } return "" } func (x *UnknownToTestAllTypes) GetNestedMessage() *ForeignMessageProto2 { if x != nil { return x.NestedMessage } return nil } func (x *UnknownToTestAllTypes) GetOptionalgroup() *UnknownToTestAllTypes_OptionalGroup { if x != nil { return x.Optionalgroup } return nil } func (x *UnknownToTestAllTypes) GetOptionalBool() bool { if x != nil && x.OptionalBool != nil { return *x.OptionalBool } return false } func (x *UnknownToTestAllTypes) GetRepeatedInt32() []int32 { if x != nil { return x.RepeatedInt32 } return nil } type TestAllTypesProto2_NestedMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields A *int32 `protobuf:"varint,1,opt,name=a" json:"a,omitempty"` Corecursive *TestAllTypesProto2 `protobuf:"bytes,2,opt,name=corecursive" json:"corecursive,omitempty"` } func (x *TestAllTypesProto2_NestedMessage) Reset() { *x = TestAllTypesProto2_NestedMessage{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_test_messages_proto2_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestAllTypesProto2_NestedMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestAllTypesProto2_NestedMessage) ProtoMessage() {} func (x *TestAllTypesProto2_NestedMessage) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_test_messages_proto2_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestAllTypesProto2_NestedMessage.ProtoReflect.Descriptor instead. func (*TestAllTypesProto2_NestedMessage) Descriptor() ([]byte, []int) { return file_google_protobuf_test_messages_proto2_proto_rawDescGZIP(), []int{0, 0} } func (x *TestAllTypesProto2_NestedMessage) GetA() int32 { if x != nil && x.A != nil { return *x.A } return 0 } func (x *TestAllTypesProto2_NestedMessage) GetCorecursive() *TestAllTypesProto2 { if x != nil { return x.Corecursive } return nil } // groups type TestAllTypesProto2_Data struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GroupInt32 *int32 `protobuf:"varint,202,opt,name=group_int32,json=groupInt32" json:"group_int32,omitempty"` GroupUint32 *uint32 `protobuf:"varint,203,opt,name=group_uint32,json=groupUint32" json:"group_uint32,omitempty"` } func (x *TestAllTypesProto2_Data) Reset() { *x = TestAllTypesProto2_Data{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_test_messages_proto2_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestAllTypesProto2_Data) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestAllTypesProto2_Data) ProtoMessage() {} func (x *TestAllTypesProto2_Data) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_test_messages_proto2_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestAllTypesProto2_Data.ProtoReflect.Descriptor instead. func (*TestAllTypesProto2_Data) Descriptor() ([]byte, []int) { return file_google_protobuf_test_messages_proto2_proto_rawDescGZIP(), []int{0, 20} } func (x *TestAllTypesProto2_Data) GetGroupInt32() int32 { if x != nil && x.GroupInt32 != nil { return *x.GroupInt32 } return 0 } func (x *TestAllTypesProto2_Data) GetGroupUint32() uint32 { if x != nil && x.GroupUint32 != nil { return *x.GroupUint32 } return 0 } // message_set test case. type TestAllTypesProto2_MessageSetCorrect struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields } func (x *TestAllTypesProto2_MessageSetCorrect) Reset() { *x = TestAllTypesProto2_MessageSetCorrect{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_test_messages_proto2_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestAllTypesProto2_MessageSetCorrect) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestAllTypesProto2_MessageSetCorrect) ProtoMessage() {} func (x *TestAllTypesProto2_MessageSetCorrect) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_test_messages_proto2_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestAllTypesProto2_MessageSetCorrect.ProtoReflect.Descriptor instead. func (*TestAllTypesProto2_MessageSetCorrect) Descriptor() ([]byte, []int) { return file_google_protobuf_test_messages_proto2_proto_rawDescGZIP(), []int{0, 21} } type TestAllTypesProto2_MessageSetCorrectExtension1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Str *string `protobuf:"bytes,25,opt,name=str" json:"str,omitempty"` } func (x *TestAllTypesProto2_MessageSetCorrectExtension1) Reset() { *x = TestAllTypesProto2_MessageSetCorrectExtension1{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_test_messages_proto2_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestAllTypesProto2_MessageSetCorrectExtension1) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestAllTypesProto2_MessageSetCorrectExtension1) ProtoMessage() {} func (x *TestAllTypesProto2_MessageSetCorrectExtension1) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_test_messages_proto2_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestAllTypesProto2_MessageSetCorrectExtension1.ProtoReflect.Descriptor instead. func (*TestAllTypesProto2_MessageSetCorrectExtension1) Descriptor() ([]byte, []int) { return file_google_protobuf_test_messages_proto2_proto_rawDescGZIP(), []int{0, 22} } func (x *TestAllTypesProto2_MessageSetCorrectExtension1) GetStr() string { if x != nil && x.Str != nil { return *x.Str } return "" } type TestAllTypesProto2_MessageSetCorrectExtension2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields I *int32 `protobuf:"varint,9,opt,name=i" json:"i,omitempty"` } func (x *TestAllTypesProto2_MessageSetCorrectExtension2) Reset() { *x = TestAllTypesProto2_MessageSetCorrectExtension2{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_test_messages_proto2_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestAllTypesProto2_MessageSetCorrectExtension2) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestAllTypesProto2_MessageSetCorrectExtension2) ProtoMessage() {} func (x *TestAllTypesProto2_MessageSetCorrectExtension2) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_test_messages_proto2_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestAllTypesProto2_MessageSetCorrectExtension2.ProtoReflect.Descriptor instead. func (*TestAllTypesProto2_MessageSetCorrectExtension2) Descriptor() ([]byte, []int) { return file_google_protobuf_test_messages_proto2_proto_rawDescGZIP(), []int{0, 23} } func (x *TestAllTypesProto2_MessageSetCorrectExtension2) GetI() int32 { if x != nil && x.I != nil { return *x.I } return 0 } type UnknownToTestAllTypes_OptionalGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields A *int32 `protobuf:"varint,1,opt,name=a" json:"a,omitempty"` } func (x *UnknownToTestAllTypes_OptionalGroup) Reset() { *x = UnknownToTestAllTypes_OptionalGroup{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_test_messages_proto2_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UnknownToTestAllTypes_OptionalGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*UnknownToTestAllTypes_OptionalGroup) ProtoMessage() {} func (x *UnknownToTestAllTypes_OptionalGroup) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_test_messages_proto2_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UnknownToTestAllTypes_OptionalGroup.ProtoReflect.Descriptor instead. func (*UnknownToTestAllTypes_OptionalGroup) Descriptor() ([]byte, []int) { return file_google_protobuf_test_messages_proto2_proto_rawDescGZIP(), []int{2, 0} } func (x *UnknownToTestAllTypes_OptionalGroup) GetA() int32 { if x != nil && x.A != nil { return *x.A } return 0 } var file_google_protobuf_test_messages_proto2_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*TestAllTypesProto2)(nil), ExtensionType: (*int32)(nil), Field: 120, Name: "protobuf_test_messages.proto2.extension_int32", Tag: "varint,120,opt,name=extension_int32", Filename: "google/protobuf/test_messages_proto2.proto", }, { ExtendedType: (*TestAllTypesProto2_MessageSetCorrect)(nil), ExtensionType: (*TestAllTypesProto2_MessageSetCorrectExtension1)(nil), Field: 1547769, Name: "protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1.message_set_extension", Tag: "bytes,1547769,opt,name=message_set_extension", Filename: "google/protobuf/test_messages_proto2.proto", }, { ExtendedType: (*TestAllTypesProto2_MessageSetCorrect)(nil), ExtensionType: (*TestAllTypesProto2_MessageSetCorrectExtension2)(nil), Field: 4135312, Name: "protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2.message_set_extension", Tag: "bytes,4135312,opt,name=message_set_extension", Filename: "google/protobuf/test_messages_proto2.proto", }, } // Extension fields to TestAllTypesProto2. var ( // optional int32 extension_int32 = 120; E_ExtensionInt32 = &file_google_protobuf_test_messages_proto2_proto_extTypes[0] ) // Extension fields to TestAllTypesProto2_MessageSetCorrect. var ( // optional protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1 message_set_extension = 1547769; E_TestAllTypesProto2_MessageSetCorrectExtension1_MessageSetExtension = &file_google_protobuf_test_messages_proto2_proto_extTypes[1] // optional protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2 message_set_extension = 4135312; E_TestAllTypesProto2_MessageSetCorrectExtension2_MessageSetExtension = &file_google_protobuf_test_messages_proto2_proto_extTypes[2] ) var File_google_protobuf_test_messages_proto2_proto protoreflect.FileDescriptor var file_google_protobuf_test_messages_proto2_proto_rawDesc = []byte{ 0x0a, 0x2a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x22, 0x92, 0x4b, 0x0a, 0x12, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x10, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x77, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x6d, 0x0a, 0x18, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x52, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x6e, 0x0a, 0x14, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x12, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x64, 0x0a, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x52, 0x13, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x36, 0x0a, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x08, 0x02, 0x52, 0x13, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x65, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x08, 0x01, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x64, 0x12, 0x5e, 0x0a, 0x11, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x52, 0x10, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x20, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x21, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x22, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x23, 0x20, 0x03, 0x28, 0x11, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x24, 0x20, 0x03, 0x28, 0x12, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x25, 0x20, 0x03, 0x28, 0x07, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x26, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x27, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x28, 0x20, 0x03, 0x28, 0x10, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x29, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x2a, 0x20, 0x03, 0x28, 0x01, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x2c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x2d, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x77, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x30, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x6d, 0x0a, 0x18, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x31, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x52, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x6e, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x33, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x12, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x64, 0x0a, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x34, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x52, 0x13, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x36, 0x0a, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x18, 0x36, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x08, 0x02, 0x52, 0x13, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x65, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x37, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x08, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x72, 0x64, 0x12, 0x25, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x4b, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x4c, 0x20, 0x03, 0x28, 0x03, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x4d, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x4e, 0x20, 0x03, 0x28, 0x04, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x4f, 0x20, 0x03, 0x28, 0x11, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x50, 0x20, 0x03, 0x28, 0x12, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x51, 0x20, 0x03, 0x28, 0x07, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x52, 0x20, 0x03, 0x28, 0x06, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x53, 0x20, 0x03, 0x28, 0x0f, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x54, 0x20, 0x03, 0x28, 0x10, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x55, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x56, 0x20, 0x03, 0x28, 0x01, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x57, 0x20, 0x03, 0x28, 0x08, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x6e, 0x0a, 0x12, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x58, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x02, 0x10, 0x01, 0x52, 0x10, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x29, 0x0a, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x59, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x5a, 0x20, 0x03, 0x28, 0x03, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x5b, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x5c, 0x20, 0x03, 0x28, 0x04, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x5d, 0x20, 0x03, 0x28, 0x11, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x5e, 0x20, 0x03, 0x28, 0x12, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2d, 0x0a, 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x5f, 0x20, 0x03, 0x28, 0x07, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2d, 0x0a, 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x60, 0x20, 0x03, 0x28, 0x06, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2f, 0x0a, 0x11, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x61, 0x20, 0x03, 0x28, 0x0f, 0x42, 0x02, 0x10, 0x00, 0x52, 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2f, 0x0a, 0x11, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x62, 0x20, 0x03, 0x28, 0x10, 0x42, 0x02, 0x10, 0x00, 0x52, 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x63, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x64, 0x20, 0x03, 0x28, 0x01, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x65, 0x20, 0x03, 0x28, 0x08, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0c, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x72, 0x0a, 0x14, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x66, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x02, 0x10, 0x00, 0x52, 0x12, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x6c, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x38, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x6c, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x39, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x72, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x3a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x72, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x3b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x72, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x3c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x72, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x3d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x78, 0x0a, 0x13, 0x6d, 0x61, 0x70, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x3e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x6d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x78, 0x0a, 0x13, 0x6d, 0x61, 0x70, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x3f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x6d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x7e, 0x0a, 0x15, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x40, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x6d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x7e, 0x0a, 0x15, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x41, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x6d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x6c, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x42, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x6f, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x43, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x66, 0x0a, 0x0d, 0x6d, 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x44, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x72, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x45, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x6f, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x46, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x88, 0x01, 0x0a, 0x19, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x47, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x48, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x17, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x7f, 0x0a, 0x16, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x49, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x82, 0x01, 0x0a, 0x17, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x4a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x23, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x73, 0x0a, 0x14, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x70, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x12, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x71, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x21, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x72, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x73, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x23, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x74, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x21, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x75, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x23, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x76, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x5d, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x77, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0xc9, 0x01, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x36, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x31, 0x18, 0x91, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x31, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x32, 0x18, 0x92, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x32, 0x12, 0x21, 0x0a, 0x0c, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x33, 0x18, 0x93, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x33, 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x34, 0x5f, 0x18, 0x94, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x34, 0x12, 0x21, 0x0a, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x30, 0x6e, 0x61, 0x6d, 0x65, 0x35, 0x18, 0x95, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x30, 0x6e, 0x61, 0x6d, 0x65, 0x35, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x30, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x36, 0x18, 0x96, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x30, 0x4e, 0x61, 0x6d, 0x65, 0x36, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x37, 0x18, 0x97, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x37, 0x12, 0x1f, 0x0a, 0x0a, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x38, 0x18, 0x98, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x38, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x39, 0x18, 0x99, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x39, 0x12, 0x22, 0x0a, 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x30, 0x18, 0x9a, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x30, 0x12, 0x22, 0x0a, 0x0c, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x31, 0x31, 0x18, 0x9b, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x4e, 0x41, 0x4d, 0x45, 0x31, 0x31, 0x12, 0x22, 0x0a, 0x0c, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x31, 0x32, 0x18, 0x9c, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x32, 0x12, 0x24, 0x0a, 0x0e, 0x5f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x31, 0x33, 0x18, 0x9d, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x33, 0x12, 0x24, 0x0a, 0x0e, 0x5f, 0x5f, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x31, 0x34, 0x18, 0x9e, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x34, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x31, 0x35, 0x18, 0x9f, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x35, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x36, 0x18, 0xa0, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x36, 0x12, 0x24, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x31, 0x37, 0x5f, 0x5f, 0x18, 0xa1, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x37, 0x12, 0x24, 0x0a, 0x0e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x31, 0x38, 0x5f, 0x5f, 0x18, 0xa2, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x38, 0x1a, 0x72, 0x0a, 0x0d, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x61, 0x12, 0x53, 0x0a, 0x0b, 0x63, 0x6f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x52, 0x0b, 0x63, 0x6f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x46, 0x0a, 0x18, 0x4d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x46, 0x0a, 0x18, 0x4d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x10, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x10, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x8a, 0x01, 0x0a, 0x1b, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x55, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x7f, 0x0a, 0x1c, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x49, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x84, 0x01, 0x0a, 0x18, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x52, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x79, 0x0a, 0x19, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x46, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4c, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0xca, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0xcb, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x1a, 0x21, 0x0a, 0x11, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x2a, 0x08, 0x08, 0x04, 0x10, 0xff, 0xff, 0xff, 0xff, 0x07, 0x3a, 0x02, 0x08, 0x01, 0x1a, 0xfa, 0x01, 0x0a, 0x1b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x74, 0x72, 0x32, 0xc8, 0x01, 0x0a, 0x15, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x18, 0xf9, 0xbb, 0x5e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x52, 0x13, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0xf7, 0x01, 0x0a, 0x1b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0x12, 0x0c, 0x0a, 0x01, 0x69, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x69, 0x32, 0xc9, 0x01, 0x0a, 0x15, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x18, 0x90, 0xb3, 0xfc, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0x52, 0x13, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x39, 0x0a, 0x0a, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x07, 0x0a, 0x03, 0x46, 0x4f, 0x4f, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x41, 0x52, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x41, 0x5a, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x45, 0x47, 0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x2a, 0x05, 0x08, 0x78, 0x10, 0xc9, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4a, 0x06, 0x08, 0xe8, 0x07, 0x10, 0x90, 0x4e, 0x22, 0x24, 0x0a, 0x14, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x12, 0x0c, 0x0a, 0x01, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x63, 0x22, 0x9e, 0x03, 0x0a, 0x15, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x6f, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x28, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0xea, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x5b, 0x0a, 0x0e, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xeb, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x52, 0x0d, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x69, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0xec, 0x07, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x42, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x6f, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0xee, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0xf3, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x1a, 0x1d, 0x0a, 0x0d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x61, 0x2a, 0x46, 0x0a, 0x11, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x4f, 0x52, 0x45, 0x49, 0x47, 0x4e, 0x5f, 0x46, 0x4f, 0x4f, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x4f, 0x52, 0x45, 0x49, 0x47, 0x4e, 0x5f, 0x42, 0x41, 0x52, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x4f, 0x52, 0x45, 0x49, 0x47, 0x4e, 0x5f, 0x42, 0x41, 0x5a, 0x10, 0x02, 0x3a, 0x5a, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x18, 0x78, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x42, 0x2f, 0x0a, 0x28, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x48, 0x01, 0xf8, 0x01, 0x01, } var ( file_google_protobuf_test_messages_proto2_proto_rawDescOnce sync.Once file_google_protobuf_test_messages_proto2_proto_rawDescData = file_google_protobuf_test_messages_proto2_proto_rawDesc ) func file_google_protobuf_test_messages_proto2_proto_rawDescGZIP() []byte { file_google_protobuf_test_messages_proto2_proto_rawDescOnce.Do(func() { file_google_protobuf_test_messages_proto2_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_test_messages_proto2_proto_rawDescData) }) return file_google_protobuf_test_messages_proto2_proto_rawDescData } var file_google_protobuf_test_messages_proto2_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_google_protobuf_test_messages_proto2_proto_msgTypes = make([]protoimpl.MessageInfo, 28) var file_google_protobuf_test_messages_proto2_proto_goTypes = []interface{}{ (ForeignEnumProto2)(0), // 0: protobuf_test_messages.proto2.ForeignEnumProto2 (TestAllTypesProto2_NestedEnum)(0), // 1: protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum (*TestAllTypesProto2)(nil), // 2: protobuf_test_messages.proto2.TestAllTypesProto2 (*ForeignMessageProto2)(nil), // 3: protobuf_test_messages.proto2.ForeignMessageProto2 (*UnknownToTestAllTypes)(nil), // 4: protobuf_test_messages.proto2.UnknownToTestAllTypes (*TestAllTypesProto2_NestedMessage)(nil), // 5: protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage nil, // 6: protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32Int32Entry nil, // 7: protobuf_test_messages.proto2.TestAllTypesProto2.MapInt64Int64Entry nil, // 8: protobuf_test_messages.proto2.TestAllTypesProto2.MapUint32Uint32Entry nil, // 9: protobuf_test_messages.proto2.TestAllTypesProto2.MapUint64Uint64Entry nil, // 10: protobuf_test_messages.proto2.TestAllTypesProto2.MapSint32Sint32Entry nil, // 11: protobuf_test_messages.proto2.TestAllTypesProto2.MapSint64Sint64Entry nil, // 12: protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed32Fixed32Entry nil, // 13: protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed64Fixed64Entry nil, // 14: protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed32Sfixed32Entry nil, // 15: protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed64Sfixed64Entry nil, // 16: protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32FloatEntry nil, // 17: protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32DoubleEntry nil, // 18: protobuf_test_messages.proto2.TestAllTypesProto2.MapBoolBoolEntry nil, // 19: protobuf_test_messages.proto2.TestAllTypesProto2.MapStringStringEntry nil, // 20: protobuf_test_messages.proto2.TestAllTypesProto2.MapStringBytesEntry nil, // 21: protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedMessageEntry nil, // 22: protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignMessageEntry nil, // 23: protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedEnumEntry nil, // 24: protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignEnumEntry (*TestAllTypesProto2_Data)(nil), // 25: protobuf_test_messages.proto2.TestAllTypesProto2.Data (*TestAllTypesProto2_MessageSetCorrect)(nil), // 26: protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect (*TestAllTypesProto2_MessageSetCorrectExtension1)(nil), // 27: protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1 (*TestAllTypesProto2_MessageSetCorrectExtension2)(nil), // 28: protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2 (*UnknownToTestAllTypes_OptionalGroup)(nil), // 29: protobuf_test_messages.proto2.UnknownToTestAllTypes.OptionalGroup } var file_google_protobuf_test_messages_proto2_proto_depIdxs = []int32{ 5, // 0: protobuf_test_messages.proto2.TestAllTypesProto2.optional_nested_message:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage 3, // 1: protobuf_test_messages.proto2.TestAllTypesProto2.optional_foreign_message:type_name -> protobuf_test_messages.proto2.ForeignMessageProto2 1, // 2: protobuf_test_messages.proto2.TestAllTypesProto2.optional_nested_enum:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum 0, // 3: protobuf_test_messages.proto2.TestAllTypesProto2.optional_foreign_enum:type_name -> protobuf_test_messages.proto2.ForeignEnumProto2 2, // 4: protobuf_test_messages.proto2.TestAllTypesProto2.recursive_message:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2 5, // 5: protobuf_test_messages.proto2.TestAllTypesProto2.repeated_nested_message:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage 3, // 6: protobuf_test_messages.proto2.TestAllTypesProto2.repeated_foreign_message:type_name -> protobuf_test_messages.proto2.ForeignMessageProto2 1, // 7: protobuf_test_messages.proto2.TestAllTypesProto2.repeated_nested_enum:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum 0, // 8: protobuf_test_messages.proto2.TestAllTypesProto2.repeated_foreign_enum:type_name -> protobuf_test_messages.proto2.ForeignEnumProto2 1, // 9: protobuf_test_messages.proto2.TestAllTypesProto2.packed_nested_enum:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum 1, // 10: protobuf_test_messages.proto2.TestAllTypesProto2.unpacked_nested_enum:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum 6, // 11: protobuf_test_messages.proto2.TestAllTypesProto2.map_int32_int32:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32Int32Entry 7, // 12: protobuf_test_messages.proto2.TestAllTypesProto2.map_int64_int64:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapInt64Int64Entry 8, // 13: protobuf_test_messages.proto2.TestAllTypesProto2.map_uint32_uint32:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapUint32Uint32Entry 9, // 14: protobuf_test_messages.proto2.TestAllTypesProto2.map_uint64_uint64:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapUint64Uint64Entry 10, // 15: protobuf_test_messages.proto2.TestAllTypesProto2.map_sint32_sint32:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapSint32Sint32Entry 11, // 16: protobuf_test_messages.proto2.TestAllTypesProto2.map_sint64_sint64:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapSint64Sint64Entry 12, // 17: protobuf_test_messages.proto2.TestAllTypesProto2.map_fixed32_fixed32:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed32Fixed32Entry 13, // 18: protobuf_test_messages.proto2.TestAllTypesProto2.map_fixed64_fixed64:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed64Fixed64Entry 14, // 19: protobuf_test_messages.proto2.TestAllTypesProto2.map_sfixed32_sfixed32:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed32Sfixed32Entry 15, // 20: protobuf_test_messages.proto2.TestAllTypesProto2.map_sfixed64_sfixed64:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed64Sfixed64Entry 16, // 21: protobuf_test_messages.proto2.TestAllTypesProto2.map_int32_float:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32FloatEntry 17, // 22: protobuf_test_messages.proto2.TestAllTypesProto2.map_int32_double:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32DoubleEntry 18, // 23: protobuf_test_messages.proto2.TestAllTypesProto2.map_bool_bool:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapBoolBoolEntry 19, // 24: protobuf_test_messages.proto2.TestAllTypesProto2.map_string_string:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapStringStringEntry 20, // 25: protobuf_test_messages.proto2.TestAllTypesProto2.map_string_bytes:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapStringBytesEntry 21, // 26: protobuf_test_messages.proto2.TestAllTypesProto2.map_string_nested_message:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedMessageEntry 22, // 27: protobuf_test_messages.proto2.TestAllTypesProto2.map_string_foreign_message:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignMessageEntry 23, // 28: protobuf_test_messages.proto2.TestAllTypesProto2.map_string_nested_enum:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedEnumEntry 24, // 29: protobuf_test_messages.proto2.TestAllTypesProto2.map_string_foreign_enum:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignEnumEntry 5, // 30: protobuf_test_messages.proto2.TestAllTypesProto2.oneof_nested_message:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage 1, // 31: protobuf_test_messages.proto2.TestAllTypesProto2.oneof_enum:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum 25, // 32: protobuf_test_messages.proto2.TestAllTypesProto2.data:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.Data 3, // 33: protobuf_test_messages.proto2.UnknownToTestAllTypes.nested_message:type_name -> protobuf_test_messages.proto2.ForeignMessageProto2 29, // 34: protobuf_test_messages.proto2.UnknownToTestAllTypes.optionalgroup:type_name -> protobuf_test_messages.proto2.UnknownToTestAllTypes.OptionalGroup 2, // 35: protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage.corecursive:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2 5, // 36: protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedMessageEntry.value:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage 3, // 37: protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignMessageEntry.value:type_name -> protobuf_test_messages.proto2.ForeignMessageProto2 1, // 38: protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedEnumEntry.value:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum 0, // 39: protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignEnumEntry.value:type_name -> protobuf_test_messages.proto2.ForeignEnumProto2 2, // 40: protobuf_test_messages.proto2.extension_int32:extendee -> protobuf_test_messages.proto2.TestAllTypesProto2 26, // 41: protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1.message_set_extension:extendee -> protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect 26, // 42: protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2.message_set_extension:extendee -> protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect 27, // 43: protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1.message_set_extension:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1 28, // 44: protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2.message_set_extension:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2 45, // [45:45] is the sub-list for method output_type 45, // [45:45] is the sub-list for method input_type 43, // [43:45] is the sub-list for extension type_name 40, // [40:43] is the sub-list for extension extendee 0, // [0:40] is the sub-list for field type_name } func init() { file_google_protobuf_test_messages_proto2_proto_init() } func file_google_protobuf_test_messages_proto2_proto_init() { if File_google_protobuf_test_messages_proto2_proto != nil { return } if !protoimpl.UnsafeEnabled { file_google_protobuf_test_messages_proto2_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestAllTypesProto2); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_google_protobuf_test_messages_proto2_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ForeignMessageProto2); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_test_messages_proto2_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UnknownToTestAllTypes); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_test_messages_proto2_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestAllTypesProto2_NestedMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_test_messages_proto2_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestAllTypesProto2_Data); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_test_messages_proto2_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestAllTypesProto2_MessageSetCorrect); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_google_protobuf_test_messages_proto2_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestAllTypesProto2_MessageSetCorrectExtension1); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_test_messages_proto2_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestAllTypesProto2_MessageSetCorrectExtension2); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_test_messages_proto2_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UnknownToTestAllTypes_OptionalGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_google_protobuf_test_messages_proto2_proto_msgTypes[0].OneofWrappers = []interface{}{ (*TestAllTypesProto2_OneofUint32)(nil), (*TestAllTypesProto2_OneofNestedMessage)(nil), (*TestAllTypesProto2_OneofString)(nil), (*TestAllTypesProto2_OneofBytes)(nil), (*TestAllTypesProto2_OneofBool)(nil), (*TestAllTypesProto2_OneofUint64)(nil), (*TestAllTypesProto2_OneofFloat)(nil), (*TestAllTypesProto2_OneofDouble)(nil), (*TestAllTypesProto2_OneofEnum)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_protobuf_test_messages_proto2_proto_rawDesc, NumEnums: 2, NumMessages: 28, NumExtensions: 3, NumServices: 0, }, GoTypes: file_google_protobuf_test_messages_proto2_proto_goTypes, DependencyIndexes: file_google_protobuf_test_messages_proto2_proto_depIdxs, EnumInfos: file_google_protobuf_test_messages_proto2_proto_enumTypes, MessageInfos: file_google_protobuf_test_messages_proto2_proto_msgTypes, ExtensionInfos: file_google_protobuf_test_messages_proto2_proto_extTypes, }.Build() File_google_protobuf_test_messages_proto2_proto = out.File file_google_protobuf_test_messages_proto2_proto_rawDesc = nil file_google_protobuf_test_messages_proto2_proto_goTypes = nil file_google_protobuf_test_messages_proto2_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/conformance/test_messages_proto3.pb.go000066400000000000000000004472201411250152500316250ustar00rootroot00000000000000// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // // Test schema for proto3 messages. This test schema is used by: // // - benchmarks // - fuzz tests // - conformance tests // // Code generated by protoc-gen-go. DO NOT EDIT. // source: google/protobuf/test_messages_proto3.proto package conformance import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" anypb "google.golang.org/protobuf/types/known/anypb" durationpb "google.golang.org/protobuf/types/known/durationpb" fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" structpb "google.golang.org/protobuf/types/known/structpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" reflect "reflect" sync "sync" ) type ForeignEnum int32 const ( ForeignEnum_FOREIGN_FOO ForeignEnum = 0 ForeignEnum_FOREIGN_BAR ForeignEnum = 1 ForeignEnum_FOREIGN_BAZ ForeignEnum = 2 ) // Enum value maps for ForeignEnum. var ( ForeignEnum_name = map[int32]string{ 0: "FOREIGN_FOO", 1: "FOREIGN_BAR", 2: "FOREIGN_BAZ", } ForeignEnum_value = map[string]int32{ "FOREIGN_FOO": 0, "FOREIGN_BAR": 1, "FOREIGN_BAZ": 2, } ) func (x ForeignEnum) Enum() *ForeignEnum { p := new(ForeignEnum) *p = x return p } func (x ForeignEnum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ForeignEnum) Descriptor() protoreflect.EnumDescriptor { return file_google_protobuf_test_messages_proto3_proto_enumTypes[0].Descriptor() } func (ForeignEnum) Type() protoreflect.EnumType { return &file_google_protobuf_test_messages_proto3_proto_enumTypes[0] } func (x ForeignEnum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ForeignEnum.Descriptor instead. func (ForeignEnum) EnumDescriptor() ([]byte, []int) { return file_google_protobuf_test_messages_proto3_proto_rawDescGZIP(), []int{0} } type TestAllTypesProto3_NestedEnum int32 const ( TestAllTypesProto3_FOO TestAllTypesProto3_NestedEnum = 0 TestAllTypesProto3_BAR TestAllTypesProto3_NestedEnum = 1 TestAllTypesProto3_BAZ TestAllTypesProto3_NestedEnum = 2 TestAllTypesProto3_NEG TestAllTypesProto3_NestedEnum = -1 // Intentionally negative. ) // Enum value maps for TestAllTypesProto3_NestedEnum. var ( TestAllTypesProto3_NestedEnum_name = map[int32]string{ 0: "FOO", 1: "BAR", 2: "BAZ", -1: "NEG", } TestAllTypesProto3_NestedEnum_value = map[string]int32{ "FOO": 0, "BAR": 1, "BAZ": 2, "NEG": -1, } ) func (x TestAllTypesProto3_NestedEnum) Enum() *TestAllTypesProto3_NestedEnum { p := new(TestAllTypesProto3_NestedEnum) *p = x return p } func (x TestAllTypesProto3_NestedEnum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TestAllTypesProto3_NestedEnum) Descriptor() protoreflect.EnumDescriptor { return file_google_protobuf_test_messages_proto3_proto_enumTypes[1].Descriptor() } func (TestAllTypesProto3_NestedEnum) Type() protoreflect.EnumType { return &file_google_protobuf_test_messages_proto3_proto_enumTypes[1] } func (x TestAllTypesProto3_NestedEnum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use TestAllTypesProto3_NestedEnum.Descriptor instead. func (TestAllTypesProto3_NestedEnum) EnumDescriptor() ([]byte, []int) { return file_google_protobuf_test_messages_proto3_proto_rawDescGZIP(), []int{0, 0} } type TestAllTypesProto3_AliasedEnum int32 const ( TestAllTypesProto3_ALIAS_FOO TestAllTypesProto3_AliasedEnum = 0 TestAllTypesProto3_ALIAS_BAR TestAllTypesProto3_AliasedEnum = 1 TestAllTypesProto3_ALIAS_BAZ TestAllTypesProto3_AliasedEnum = 2 TestAllTypesProto3_QUX TestAllTypesProto3_AliasedEnum = 2 TestAllTypesProto3_qux TestAllTypesProto3_AliasedEnum = 2 TestAllTypesProto3_bAz TestAllTypesProto3_AliasedEnum = 2 ) // Enum value maps for TestAllTypesProto3_AliasedEnum. var ( TestAllTypesProto3_AliasedEnum_name = map[int32]string{ 0: "ALIAS_FOO", 1: "ALIAS_BAR", 2: "ALIAS_BAZ", // Duplicate value: 2: "QUX", // Duplicate value: 2: "qux", // Duplicate value: 2: "bAz", } TestAllTypesProto3_AliasedEnum_value = map[string]int32{ "ALIAS_FOO": 0, "ALIAS_BAR": 1, "ALIAS_BAZ": 2, "QUX": 2, "qux": 2, "bAz": 2, } ) func (x TestAllTypesProto3_AliasedEnum) Enum() *TestAllTypesProto3_AliasedEnum { p := new(TestAllTypesProto3_AliasedEnum) *p = x return p } func (x TestAllTypesProto3_AliasedEnum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TestAllTypesProto3_AliasedEnum) Descriptor() protoreflect.EnumDescriptor { return file_google_protobuf_test_messages_proto3_proto_enumTypes[2].Descriptor() } func (TestAllTypesProto3_AliasedEnum) Type() protoreflect.EnumType { return &file_google_protobuf_test_messages_proto3_proto_enumTypes[2] } func (x TestAllTypesProto3_AliasedEnum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use TestAllTypesProto3_AliasedEnum.Descriptor instead. func (TestAllTypesProto3_AliasedEnum) EnumDescriptor() ([]byte, []int) { return file_google_protobuf_test_messages_proto3_proto_rawDescGZIP(), []int{0, 1} } // This proto includes every type of field in both singular and repeated // forms. // // Also, crucially, all messages and enums in this file are eventually // submessages of this message. So for example, a fuzz test of TestAllTypes // could trigger bugs that occur in any message type in this file. We verify // this stays true in a unit test. type TestAllTypesProto3 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Singular OptionalInt32 int32 `protobuf:"varint,1,opt,name=optional_int32,json=optionalInt32,proto3" json:"optional_int32,omitempty"` OptionalInt64 int64 `protobuf:"varint,2,opt,name=optional_int64,json=optionalInt64,proto3" json:"optional_int64,omitempty"` OptionalUint32 uint32 `protobuf:"varint,3,opt,name=optional_uint32,json=optionalUint32,proto3" json:"optional_uint32,omitempty"` OptionalUint64 uint64 `protobuf:"varint,4,opt,name=optional_uint64,json=optionalUint64,proto3" json:"optional_uint64,omitempty"` OptionalSint32 int32 `protobuf:"zigzag32,5,opt,name=optional_sint32,json=optionalSint32,proto3" json:"optional_sint32,omitempty"` OptionalSint64 int64 `protobuf:"zigzag64,6,opt,name=optional_sint64,json=optionalSint64,proto3" json:"optional_sint64,omitempty"` OptionalFixed32 uint32 `protobuf:"fixed32,7,opt,name=optional_fixed32,json=optionalFixed32,proto3" json:"optional_fixed32,omitempty"` OptionalFixed64 uint64 `protobuf:"fixed64,8,opt,name=optional_fixed64,json=optionalFixed64,proto3" json:"optional_fixed64,omitempty"` OptionalSfixed32 int32 `protobuf:"fixed32,9,opt,name=optional_sfixed32,json=optionalSfixed32,proto3" json:"optional_sfixed32,omitempty"` OptionalSfixed64 int64 `protobuf:"fixed64,10,opt,name=optional_sfixed64,json=optionalSfixed64,proto3" json:"optional_sfixed64,omitempty"` OptionalFloat float32 `protobuf:"fixed32,11,opt,name=optional_float,json=optionalFloat,proto3" json:"optional_float,omitempty"` OptionalDouble float64 `protobuf:"fixed64,12,opt,name=optional_double,json=optionalDouble,proto3" json:"optional_double,omitempty"` OptionalBool bool `protobuf:"varint,13,opt,name=optional_bool,json=optionalBool,proto3" json:"optional_bool,omitempty"` OptionalString string `protobuf:"bytes,14,opt,name=optional_string,json=optionalString,proto3" json:"optional_string,omitempty"` OptionalBytes []byte `protobuf:"bytes,15,opt,name=optional_bytes,json=optionalBytes,proto3" json:"optional_bytes,omitempty"` OptionalNestedMessage *TestAllTypesProto3_NestedMessage `protobuf:"bytes,18,opt,name=optional_nested_message,json=optionalNestedMessage,proto3" json:"optional_nested_message,omitempty"` OptionalForeignMessage *ForeignMessage `protobuf:"bytes,19,opt,name=optional_foreign_message,json=optionalForeignMessage,proto3" json:"optional_foreign_message,omitempty"` OptionalNestedEnum TestAllTypesProto3_NestedEnum `protobuf:"varint,21,opt,name=optional_nested_enum,json=optionalNestedEnum,proto3,enum=protobuf_test_messages.proto3.TestAllTypesProto3_NestedEnum" json:"optional_nested_enum,omitempty"` OptionalForeignEnum ForeignEnum `protobuf:"varint,22,opt,name=optional_foreign_enum,json=optionalForeignEnum,proto3,enum=protobuf_test_messages.proto3.ForeignEnum" json:"optional_foreign_enum,omitempty"` OptionalAliasedEnum TestAllTypesProto3_AliasedEnum `protobuf:"varint,23,opt,name=optional_aliased_enum,json=optionalAliasedEnum,proto3,enum=protobuf_test_messages.proto3.TestAllTypesProto3_AliasedEnum" json:"optional_aliased_enum,omitempty"` OptionalStringPiece string `protobuf:"bytes,24,opt,name=optional_string_piece,json=optionalStringPiece,proto3" json:"optional_string_piece,omitempty"` OptionalCord string `protobuf:"bytes,25,opt,name=optional_cord,json=optionalCord,proto3" json:"optional_cord,omitempty"` RecursiveMessage *TestAllTypesProto3 `protobuf:"bytes,27,opt,name=recursive_message,json=recursiveMessage,proto3" json:"recursive_message,omitempty"` // Repeated RepeatedInt32 []int32 `protobuf:"varint,31,rep,packed,name=repeated_int32,json=repeatedInt32,proto3" json:"repeated_int32,omitempty"` RepeatedInt64 []int64 `protobuf:"varint,32,rep,packed,name=repeated_int64,json=repeatedInt64,proto3" json:"repeated_int64,omitempty"` RepeatedUint32 []uint32 `protobuf:"varint,33,rep,packed,name=repeated_uint32,json=repeatedUint32,proto3" json:"repeated_uint32,omitempty"` RepeatedUint64 []uint64 `protobuf:"varint,34,rep,packed,name=repeated_uint64,json=repeatedUint64,proto3" json:"repeated_uint64,omitempty"` RepeatedSint32 []int32 `protobuf:"zigzag32,35,rep,packed,name=repeated_sint32,json=repeatedSint32,proto3" json:"repeated_sint32,omitempty"` RepeatedSint64 []int64 `protobuf:"zigzag64,36,rep,packed,name=repeated_sint64,json=repeatedSint64,proto3" json:"repeated_sint64,omitempty"` RepeatedFixed32 []uint32 `protobuf:"fixed32,37,rep,packed,name=repeated_fixed32,json=repeatedFixed32,proto3" json:"repeated_fixed32,omitempty"` RepeatedFixed64 []uint64 `protobuf:"fixed64,38,rep,packed,name=repeated_fixed64,json=repeatedFixed64,proto3" json:"repeated_fixed64,omitempty"` RepeatedSfixed32 []int32 `protobuf:"fixed32,39,rep,packed,name=repeated_sfixed32,json=repeatedSfixed32,proto3" json:"repeated_sfixed32,omitempty"` RepeatedSfixed64 []int64 `protobuf:"fixed64,40,rep,packed,name=repeated_sfixed64,json=repeatedSfixed64,proto3" json:"repeated_sfixed64,omitempty"` RepeatedFloat []float32 `protobuf:"fixed32,41,rep,packed,name=repeated_float,json=repeatedFloat,proto3" json:"repeated_float,omitempty"` RepeatedDouble []float64 `protobuf:"fixed64,42,rep,packed,name=repeated_double,json=repeatedDouble,proto3" json:"repeated_double,omitempty"` RepeatedBool []bool `protobuf:"varint,43,rep,packed,name=repeated_bool,json=repeatedBool,proto3" json:"repeated_bool,omitempty"` RepeatedString []string `protobuf:"bytes,44,rep,name=repeated_string,json=repeatedString,proto3" json:"repeated_string,omitempty"` RepeatedBytes [][]byte `protobuf:"bytes,45,rep,name=repeated_bytes,json=repeatedBytes,proto3" json:"repeated_bytes,omitempty"` RepeatedNestedMessage []*TestAllTypesProto3_NestedMessage `protobuf:"bytes,48,rep,name=repeated_nested_message,json=repeatedNestedMessage,proto3" json:"repeated_nested_message,omitempty"` RepeatedForeignMessage []*ForeignMessage `protobuf:"bytes,49,rep,name=repeated_foreign_message,json=repeatedForeignMessage,proto3" json:"repeated_foreign_message,omitempty"` RepeatedNestedEnum []TestAllTypesProto3_NestedEnum `protobuf:"varint,51,rep,packed,name=repeated_nested_enum,json=repeatedNestedEnum,proto3,enum=protobuf_test_messages.proto3.TestAllTypesProto3_NestedEnum" json:"repeated_nested_enum,omitempty"` RepeatedForeignEnum []ForeignEnum `protobuf:"varint,52,rep,packed,name=repeated_foreign_enum,json=repeatedForeignEnum,proto3,enum=protobuf_test_messages.proto3.ForeignEnum" json:"repeated_foreign_enum,omitempty"` RepeatedStringPiece []string `protobuf:"bytes,54,rep,name=repeated_string_piece,json=repeatedStringPiece,proto3" json:"repeated_string_piece,omitempty"` RepeatedCord []string `protobuf:"bytes,55,rep,name=repeated_cord,json=repeatedCord,proto3" json:"repeated_cord,omitempty"` // Packed PackedInt32 []int32 `protobuf:"varint,75,rep,packed,name=packed_int32,json=packedInt32,proto3" json:"packed_int32,omitempty"` PackedInt64 []int64 `protobuf:"varint,76,rep,packed,name=packed_int64,json=packedInt64,proto3" json:"packed_int64,omitempty"` PackedUint32 []uint32 `protobuf:"varint,77,rep,packed,name=packed_uint32,json=packedUint32,proto3" json:"packed_uint32,omitempty"` PackedUint64 []uint64 `protobuf:"varint,78,rep,packed,name=packed_uint64,json=packedUint64,proto3" json:"packed_uint64,omitempty"` PackedSint32 []int32 `protobuf:"zigzag32,79,rep,packed,name=packed_sint32,json=packedSint32,proto3" json:"packed_sint32,omitempty"` PackedSint64 []int64 `protobuf:"zigzag64,80,rep,packed,name=packed_sint64,json=packedSint64,proto3" json:"packed_sint64,omitempty"` PackedFixed32 []uint32 `protobuf:"fixed32,81,rep,packed,name=packed_fixed32,json=packedFixed32,proto3" json:"packed_fixed32,omitempty"` PackedFixed64 []uint64 `protobuf:"fixed64,82,rep,packed,name=packed_fixed64,json=packedFixed64,proto3" json:"packed_fixed64,omitempty"` PackedSfixed32 []int32 `protobuf:"fixed32,83,rep,packed,name=packed_sfixed32,json=packedSfixed32,proto3" json:"packed_sfixed32,omitempty"` PackedSfixed64 []int64 `protobuf:"fixed64,84,rep,packed,name=packed_sfixed64,json=packedSfixed64,proto3" json:"packed_sfixed64,omitempty"` PackedFloat []float32 `protobuf:"fixed32,85,rep,packed,name=packed_float,json=packedFloat,proto3" json:"packed_float,omitempty"` PackedDouble []float64 `protobuf:"fixed64,86,rep,packed,name=packed_double,json=packedDouble,proto3" json:"packed_double,omitempty"` PackedBool []bool `protobuf:"varint,87,rep,packed,name=packed_bool,json=packedBool,proto3" json:"packed_bool,omitempty"` PackedNestedEnum []TestAllTypesProto3_NestedEnum `protobuf:"varint,88,rep,packed,name=packed_nested_enum,json=packedNestedEnum,proto3,enum=protobuf_test_messages.proto3.TestAllTypesProto3_NestedEnum" json:"packed_nested_enum,omitempty"` // Unpacked UnpackedInt32 []int32 `protobuf:"varint,89,rep,name=unpacked_int32,json=unpackedInt32,proto3" json:"unpacked_int32,omitempty"` UnpackedInt64 []int64 `protobuf:"varint,90,rep,name=unpacked_int64,json=unpackedInt64,proto3" json:"unpacked_int64,omitempty"` UnpackedUint32 []uint32 `protobuf:"varint,91,rep,name=unpacked_uint32,json=unpackedUint32,proto3" json:"unpacked_uint32,omitempty"` UnpackedUint64 []uint64 `protobuf:"varint,92,rep,name=unpacked_uint64,json=unpackedUint64,proto3" json:"unpacked_uint64,omitempty"` UnpackedSint32 []int32 `protobuf:"zigzag32,93,rep,name=unpacked_sint32,json=unpackedSint32,proto3" json:"unpacked_sint32,omitempty"` UnpackedSint64 []int64 `protobuf:"zigzag64,94,rep,name=unpacked_sint64,json=unpackedSint64,proto3" json:"unpacked_sint64,omitempty"` UnpackedFixed32 []uint32 `protobuf:"fixed32,95,rep,name=unpacked_fixed32,json=unpackedFixed32,proto3" json:"unpacked_fixed32,omitempty"` UnpackedFixed64 []uint64 `protobuf:"fixed64,96,rep,name=unpacked_fixed64,json=unpackedFixed64,proto3" json:"unpacked_fixed64,omitempty"` UnpackedSfixed32 []int32 `protobuf:"fixed32,97,rep,name=unpacked_sfixed32,json=unpackedSfixed32,proto3" json:"unpacked_sfixed32,omitempty"` UnpackedSfixed64 []int64 `protobuf:"fixed64,98,rep,name=unpacked_sfixed64,json=unpackedSfixed64,proto3" json:"unpacked_sfixed64,omitempty"` UnpackedFloat []float32 `protobuf:"fixed32,99,rep,name=unpacked_float,json=unpackedFloat,proto3" json:"unpacked_float,omitempty"` UnpackedDouble []float64 `protobuf:"fixed64,100,rep,name=unpacked_double,json=unpackedDouble,proto3" json:"unpacked_double,omitempty"` UnpackedBool []bool `protobuf:"varint,101,rep,name=unpacked_bool,json=unpackedBool,proto3" json:"unpacked_bool,omitempty"` UnpackedNestedEnum []TestAllTypesProto3_NestedEnum `protobuf:"varint,102,rep,name=unpacked_nested_enum,json=unpackedNestedEnum,proto3,enum=protobuf_test_messages.proto3.TestAllTypesProto3_NestedEnum" json:"unpacked_nested_enum,omitempty"` // Map MapInt32Int32 map[int32]int32 `protobuf:"bytes,56,rep,name=map_int32_int32,json=mapInt32Int32,proto3" json:"map_int32_int32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapInt64Int64 map[int64]int64 `protobuf:"bytes,57,rep,name=map_int64_int64,json=mapInt64Int64,proto3" json:"map_int64_int64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapUint32Uint32 map[uint32]uint32 `protobuf:"bytes,58,rep,name=map_uint32_uint32,json=mapUint32Uint32,proto3" json:"map_uint32_uint32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapUint64Uint64 map[uint64]uint64 `protobuf:"bytes,59,rep,name=map_uint64_uint64,json=mapUint64Uint64,proto3" json:"map_uint64_uint64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapSint32Sint32 map[int32]int32 `protobuf:"bytes,60,rep,name=map_sint32_sint32,json=mapSint32Sint32,proto3" json:"map_sint32_sint32,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` MapSint64Sint64 map[int64]int64 `protobuf:"bytes,61,rep,name=map_sint64_sint64,json=mapSint64Sint64,proto3" json:"map_sint64_sint64,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` MapFixed32Fixed32 map[uint32]uint32 `protobuf:"bytes,62,rep,name=map_fixed32_fixed32,json=mapFixed32Fixed32,proto3" json:"map_fixed32_fixed32,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` MapFixed64Fixed64 map[uint64]uint64 `protobuf:"bytes,63,rep,name=map_fixed64_fixed64,json=mapFixed64Fixed64,proto3" json:"map_fixed64_fixed64,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` MapSfixed32Sfixed32 map[int32]int32 `protobuf:"bytes,64,rep,name=map_sfixed32_sfixed32,json=mapSfixed32Sfixed32,proto3" json:"map_sfixed32_sfixed32,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` MapSfixed64Sfixed64 map[int64]int64 `protobuf:"bytes,65,rep,name=map_sfixed64_sfixed64,json=mapSfixed64Sfixed64,proto3" json:"map_sfixed64_sfixed64,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` MapInt32Float map[int32]float32 `protobuf:"bytes,66,rep,name=map_int32_float,json=mapInt32Float,proto3" json:"map_int32_float,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` MapInt32Double map[int32]float64 `protobuf:"bytes,67,rep,name=map_int32_double,json=mapInt32Double,proto3" json:"map_int32_double,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` MapBoolBool map[bool]bool `protobuf:"bytes,68,rep,name=map_bool_bool,json=mapBoolBool,proto3" json:"map_bool_bool,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapStringString map[string]string `protobuf:"bytes,69,rep,name=map_string_string,json=mapStringString,proto3" json:"map_string_string,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` MapStringBytes map[string][]byte `protobuf:"bytes,70,rep,name=map_string_bytes,json=mapStringBytes,proto3" json:"map_string_bytes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` MapStringNestedMessage map[string]*TestAllTypesProto3_NestedMessage `protobuf:"bytes,71,rep,name=map_string_nested_message,json=mapStringNestedMessage,proto3" json:"map_string_nested_message,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` MapStringForeignMessage map[string]*ForeignMessage `protobuf:"bytes,72,rep,name=map_string_foreign_message,json=mapStringForeignMessage,proto3" json:"map_string_foreign_message,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` MapStringNestedEnum map[string]TestAllTypesProto3_NestedEnum `protobuf:"bytes,73,rep,name=map_string_nested_enum,json=mapStringNestedEnum,proto3" json:"map_string_nested_enum,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=protobuf_test_messages.proto3.TestAllTypesProto3_NestedEnum"` MapStringForeignEnum map[string]ForeignEnum `protobuf:"bytes,74,rep,name=map_string_foreign_enum,json=mapStringForeignEnum,proto3" json:"map_string_foreign_enum,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=protobuf_test_messages.proto3.ForeignEnum"` // Types that are assignable to OneofField: // *TestAllTypesProto3_OneofUint32 // *TestAllTypesProto3_OneofNestedMessage // *TestAllTypesProto3_OneofString // *TestAllTypesProto3_OneofBytes // *TestAllTypesProto3_OneofBool // *TestAllTypesProto3_OneofUint64 // *TestAllTypesProto3_OneofFloat // *TestAllTypesProto3_OneofDouble // *TestAllTypesProto3_OneofEnum // *TestAllTypesProto3_OneofNullValue OneofField isTestAllTypesProto3_OneofField `protobuf_oneof:"oneof_field"` // Well-known types OptionalBoolWrapper *wrapperspb.BoolValue `protobuf:"bytes,201,opt,name=optional_bool_wrapper,json=optionalBoolWrapper,proto3" json:"optional_bool_wrapper,omitempty"` OptionalInt32Wrapper *wrapperspb.Int32Value `protobuf:"bytes,202,opt,name=optional_int32_wrapper,json=optionalInt32Wrapper,proto3" json:"optional_int32_wrapper,omitempty"` OptionalInt64Wrapper *wrapperspb.Int64Value `protobuf:"bytes,203,opt,name=optional_int64_wrapper,json=optionalInt64Wrapper,proto3" json:"optional_int64_wrapper,omitempty"` OptionalUint32Wrapper *wrapperspb.UInt32Value `protobuf:"bytes,204,opt,name=optional_uint32_wrapper,json=optionalUint32Wrapper,proto3" json:"optional_uint32_wrapper,omitempty"` OptionalUint64Wrapper *wrapperspb.UInt64Value `protobuf:"bytes,205,opt,name=optional_uint64_wrapper,json=optionalUint64Wrapper,proto3" json:"optional_uint64_wrapper,omitempty"` OptionalFloatWrapper *wrapperspb.FloatValue `protobuf:"bytes,206,opt,name=optional_float_wrapper,json=optionalFloatWrapper,proto3" json:"optional_float_wrapper,omitempty"` OptionalDoubleWrapper *wrapperspb.DoubleValue `protobuf:"bytes,207,opt,name=optional_double_wrapper,json=optionalDoubleWrapper,proto3" json:"optional_double_wrapper,omitempty"` OptionalStringWrapper *wrapperspb.StringValue `protobuf:"bytes,208,opt,name=optional_string_wrapper,json=optionalStringWrapper,proto3" json:"optional_string_wrapper,omitempty"` OptionalBytesWrapper *wrapperspb.BytesValue `protobuf:"bytes,209,opt,name=optional_bytes_wrapper,json=optionalBytesWrapper,proto3" json:"optional_bytes_wrapper,omitempty"` RepeatedBoolWrapper []*wrapperspb.BoolValue `protobuf:"bytes,211,rep,name=repeated_bool_wrapper,json=repeatedBoolWrapper,proto3" json:"repeated_bool_wrapper,omitempty"` RepeatedInt32Wrapper []*wrapperspb.Int32Value `protobuf:"bytes,212,rep,name=repeated_int32_wrapper,json=repeatedInt32Wrapper,proto3" json:"repeated_int32_wrapper,omitempty"` RepeatedInt64Wrapper []*wrapperspb.Int64Value `protobuf:"bytes,213,rep,name=repeated_int64_wrapper,json=repeatedInt64Wrapper,proto3" json:"repeated_int64_wrapper,omitempty"` RepeatedUint32Wrapper []*wrapperspb.UInt32Value `protobuf:"bytes,214,rep,name=repeated_uint32_wrapper,json=repeatedUint32Wrapper,proto3" json:"repeated_uint32_wrapper,omitempty"` RepeatedUint64Wrapper []*wrapperspb.UInt64Value `protobuf:"bytes,215,rep,name=repeated_uint64_wrapper,json=repeatedUint64Wrapper,proto3" json:"repeated_uint64_wrapper,omitempty"` RepeatedFloatWrapper []*wrapperspb.FloatValue `protobuf:"bytes,216,rep,name=repeated_float_wrapper,json=repeatedFloatWrapper,proto3" json:"repeated_float_wrapper,omitempty"` RepeatedDoubleWrapper []*wrapperspb.DoubleValue `protobuf:"bytes,217,rep,name=repeated_double_wrapper,json=repeatedDoubleWrapper,proto3" json:"repeated_double_wrapper,omitempty"` RepeatedStringWrapper []*wrapperspb.StringValue `protobuf:"bytes,218,rep,name=repeated_string_wrapper,json=repeatedStringWrapper,proto3" json:"repeated_string_wrapper,omitempty"` RepeatedBytesWrapper []*wrapperspb.BytesValue `protobuf:"bytes,219,rep,name=repeated_bytes_wrapper,json=repeatedBytesWrapper,proto3" json:"repeated_bytes_wrapper,omitempty"` OptionalDuration *durationpb.Duration `protobuf:"bytes,301,opt,name=optional_duration,json=optionalDuration,proto3" json:"optional_duration,omitempty"` OptionalTimestamp *timestamppb.Timestamp `protobuf:"bytes,302,opt,name=optional_timestamp,json=optionalTimestamp,proto3" json:"optional_timestamp,omitempty"` OptionalFieldMask *fieldmaskpb.FieldMask `protobuf:"bytes,303,opt,name=optional_field_mask,json=optionalFieldMask,proto3" json:"optional_field_mask,omitempty"` OptionalStruct *structpb.Struct `protobuf:"bytes,304,opt,name=optional_struct,json=optionalStruct,proto3" json:"optional_struct,omitempty"` OptionalAny *anypb.Any `protobuf:"bytes,305,opt,name=optional_any,json=optionalAny,proto3" json:"optional_any,omitempty"` OptionalValue *structpb.Value `protobuf:"bytes,306,opt,name=optional_value,json=optionalValue,proto3" json:"optional_value,omitempty"` OptionalNullValue structpb.NullValue `protobuf:"varint,307,opt,name=optional_null_value,json=optionalNullValue,proto3,enum=google.protobuf.NullValue" json:"optional_null_value,omitempty"` RepeatedDuration []*durationpb.Duration `protobuf:"bytes,311,rep,name=repeated_duration,json=repeatedDuration,proto3" json:"repeated_duration,omitempty"` RepeatedTimestamp []*timestamppb.Timestamp `protobuf:"bytes,312,rep,name=repeated_timestamp,json=repeatedTimestamp,proto3" json:"repeated_timestamp,omitempty"` RepeatedFieldmask []*fieldmaskpb.FieldMask `protobuf:"bytes,313,rep,name=repeated_fieldmask,json=repeatedFieldmask,proto3" json:"repeated_fieldmask,omitempty"` RepeatedStruct []*structpb.Struct `protobuf:"bytes,324,rep,name=repeated_struct,json=repeatedStruct,proto3" json:"repeated_struct,omitempty"` RepeatedAny []*anypb.Any `protobuf:"bytes,315,rep,name=repeated_any,json=repeatedAny,proto3" json:"repeated_any,omitempty"` RepeatedValue []*structpb.Value `protobuf:"bytes,316,rep,name=repeated_value,json=repeatedValue,proto3" json:"repeated_value,omitempty"` RepeatedListValue []*structpb.ListValue `protobuf:"bytes,317,rep,name=repeated_list_value,json=repeatedListValue,proto3" json:"repeated_list_value,omitempty"` // Test field-name-to-JSON-name convention. // (protobuf says names can be any valid C/C++ identifier.) Fieldname1 int32 `protobuf:"varint,401,opt,name=fieldname1,proto3" json:"fieldname1,omitempty"` FieldName2 int32 `protobuf:"varint,402,opt,name=field_name2,json=fieldName2,proto3" json:"field_name2,omitempty"` XFieldName3 int32 `protobuf:"varint,403,opt,name=_field_name3,json=FieldName3,proto3" json:"_field_name3,omitempty"` Field_Name4_ int32 `protobuf:"varint,404,opt,name=field__name4_,json=fieldName4,proto3" json:"field__name4_,omitempty"` Field0Name5 int32 `protobuf:"varint,405,opt,name=field0name5,proto3" json:"field0name5,omitempty"` Field_0Name6 int32 `protobuf:"varint,406,opt,name=field_0_name6,json=field0Name6,proto3" json:"field_0_name6,omitempty"` FieldName7 int32 `protobuf:"varint,407,opt,name=fieldName7,proto3" json:"fieldName7,omitempty"` FieldName8 int32 `protobuf:"varint,408,opt,name=FieldName8,proto3" json:"FieldName8,omitempty"` Field_Name9 int32 `protobuf:"varint,409,opt,name=field_Name9,json=fieldName9,proto3" json:"field_Name9,omitempty"` Field_Name10 int32 `protobuf:"varint,410,opt,name=Field_Name10,json=FieldName10,proto3" json:"Field_Name10,omitempty"` FIELD_NAME11 int32 `protobuf:"varint,411,opt,name=FIELD_NAME11,json=FIELDNAME11,proto3" json:"FIELD_NAME11,omitempty"` FIELDName12 int32 `protobuf:"varint,412,opt,name=FIELD_name12,json=FIELDName12,proto3" json:"FIELD_name12,omitempty"` XFieldName13 int32 `protobuf:"varint,413,opt,name=__field_name13,json=FieldName13,proto3" json:"__field_name13,omitempty"` X_FieldName14 int32 `protobuf:"varint,414,opt,name=__Field_name14,json=FieldName14,proto3" json:"__Field_name14,omitempty"` Field_Name15 int32 `protobuf:"varint,415,opt,name=field__name15,json=fieldName15,proto3" json:"field__name15,omitempty"` Field__Name16 int32 `protobuf:"varint,416,opt,name=field__Name16,json=fieldName16,proto3" json:"field__Name16,omitempty"` FieldName17__ int32 `protobuf:"varint,417,opt,name=field_name17__,json=fieldName17,proto3" json:"field_name17__,omitempty"` FieldName18__ int32 `protobuf:"varint,418,opt,name=Field_name18__,json=FieldName18,proto3" json:"Field_name18__,omitempty"` } func (x *TestAllTypesProto3) Reset() { *x = TestAllTypesProto3{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_test_messages_proto3_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestAllTypesProto3) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestAllTypesProto3) ProtoMessage() {} func (x *TestAllTypesProto3) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_test_messages_proto3_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestAllTypesProto3.ProtoReflect.Descriptor instead. func (*TestAllTypesProto3) Descriptor() ([]byte, []int) { return file_google_protobuf_test_messages_proto3_proto_rawDescGZIP(), []int{0} } func (x *TestAllTypesProto3) GetOptionalInt32() int32 { if x != nil { return x.OptionalInt32 } return 0 } func (x *TestAllTypesProto3) GetOptionalInt64() int64 { if x != nil { return x.OptionalInt64 } return 0 } func (x *TestAllTypesProto3) GetOptionalUint32() uint32 { if x != nil { return x.OptionalUint32 } return 0 } func (x *TestAllTypesProto3) GetOptionalUint64() uint64 { if x != nil { return x.OptionalUint64 } return 0 } func (x *TestAllTypesProto3) GetOptionalSint32() int32 { if x != nil { return x.OptionalSint32 } return 0 } func (x *TestAllTypesProto3) GetOptionalSint64() int64 { if x != nil { return x.OptionalSint64 } return 0 } func (x *TestAllTypesProto3) GetOptionalFixed32() uint32 { if x != nil { return x.OptionalFixed32 } return 0 } func (x *TestAllTypesProto3) GetOptionalFixed64() uint64 { if x != nil { return x.OptionalFixed64 } return 0 } func (x *TestAllTypesProto3) GetOptionalSfixed32() int32 { if x != nil { return x.OptionalSfixed32 } return 0 } func (x *TestAllTypesProto3) GetOptionalSfixed64() int64 { if x != nil { return x.OptionalSfixed64 } return 0 } func (x *TestAllTypesProto3) GetOptionalFloat() float32 { if x != nil { return x.OptionalFloat } return 0 } func (x *TestAllTypesProto3) GetOptionalDouble() float64 { if x != nil { return x.OptionalDouble } return 0 } func (x *TestAllTypesProto3) GetOptionalBool() bool { if x != nil { return x.OptionalBool } return false } func (x *TestAllTypesProto3) GetOptionalString() string { if x != nil { return x.OptionalString } return "" } func (x *TestAllTypesProto3) GetOptionalBytes() []byte { if x != nil { return x.OptionalBytes } return nil } func (x *TestAllTypesProto3) GetOptionalNestedMessage() *TestAllTypesProto3_NestedMessage { if x != nil { return x.OptionalNestedMessage } return nil } func (x *TestAllTypesProto3) GetOptionalForeignMessage() *ForeignMessage { if x != nil { return x.OptionalForeignMessage } return nil } func (x *TestAllTypesProto3) GetOptionalNestedEnum() TestAllTypesProto3_NestedEnum { if x != nil { return x.OptionalNestedEnum } return TestAllTypesProto3_FOO } func (x *TestAllTypesProto3) GetOptionalForeignEnum() ForeignEnum { if x != nil { return x.OptionalForeignEnum } return ForeignEnum_FOREIGN_FOO } func (x *TestAllTypesProto3) GetOptionalAliasedEnum() TestAllTypesProto3_AliasedEnum { if x != nil { return x.OptionalAliasedEnum } return TestAllTypesProto3_ALIAS_FOO } func (x *TestAllTypesProto3) GetOptionalStringPiece() string { if x != nil { return x.OptionalStringPiece } return "" } func (x *TestAllTypesProto3) GetOptionalCord() string { if x != nil { return x.OptionalCord } return "" } func (x *TestAllTypesProto3) GetRecursiveMessage() *TestAllTypesProto3 { if x != nil { return x.RecursiveMessage } return nil } func (x *TestAllTypesProto3) GetRepeatedInt32() []int32 { if x != nil { return x.RepeatedInt32 } return nil } func (x *TestAllTypesProto3) GetRepeatedInt64() []int64 { if x != nil { return x.RepeatedInt64 } return nil } func (x *TestAllTypesProto3) GetRepeatedUint32() []uint32 { if x != nil { return x.RepeatedUint32 } return nil } func (x *TestAllTypesProto3) GetRepeatedUint64() []uint64 { if x != nil { return x.RepeatedUint64 } return nil } func (x *TestAllTypesProto3) GetRepeatedSint32() []int32 { if x != nil { return x.RepeatedSint32 } return nil } func (x *TestAllTypesProto3) GetRepeatedSint64() []int64 { if x != nil { return x.RepeatedSint64 } return nil } func (x *TestAllTypesProto3) GetRepeatedFixed32() []uint32 { if x != nil { return x.RepeatedFixed32 } return nil } func (x *TestAllTypesProto3) GetRepeatedFixed64() []uint64 { if x != nil { return x.RepeatedFixed64 } return nil } func (x *TestAllTypesProto3) GetRepeatedSfixed32() []int32 { if x != nil { return x.RepeatedSfixed32 } return nil } func (x *TestAllTypesProto3) GetRepeatedSfixed64() []int64 { if x != nil { return x.RepeatedSfixed64 } return nil } func (x *TestAllTypesProto3) GetRepeatedFloat() []float32 { if x != nil { return x.RepeatedFloat } return nil } func (x *TestAllTypesProto3) GetRepeatedDouble() []float64 { if x != nil { return x.RepeatedDouble } return nil } func (x *TestAllTypesProto3) GetRepeatedBool() []bool { if x != nil { return x.RepeatedBool } return nil } func (x *TestAllTypesProto3) GetRepeatedString() []string { if x != nil { return x.RepeatedString } return nil } func (x *TestAllTypesProto3) GetRepeatedBytes() [][]byte { if x != nil { return x.RepeatedBytes } return nil } func (x *TestAllTypesProto3) GetRepeatedNestedMessage() []*TestAllTypesProto3_NestedMessage { if x != nil { return x.RepeatedNestedMessage } return nil } func (x *TestAllTypesProto3) GetRepeatedForeignMessage() []*ForeignMessage { if x != nil { return x.RepeatedForeignMessage } return nil } func (x *TestAllTypesProto3) GetRepeatedNestedEnum() []TestAllTypesProto3_NestedEnum { if x != nil { return x.RepeatedNestedEnum } return nil } func (x *TestAllTypesProto3) GetRepeatedForeignEnum() []ForeignEnum { if x != nil { return x.RepeatedForeignEnum } return nil } func (x *TestAllTypesProto3) GetRepeatedStringPiece() []string { if x != nil { return x.RepeatedStringPiece } return nil } func (x *TestAllTypesProto3) GetRepeatedCord() []string { if x != nil { return x.RepeatedCord } return nil } func (x *TestAllTypesProto3) GetPackedInt32() []int32 { if x != nil { return x.PackedInt32 } return nil } func (x *TestAllTypesProto3) GetPackedInt64() []int64 { if x != nil { return x.PackedInt64 } return nil } func (x *TestAllTypesProto3) GetPackedUint32() []uint32 { if x != nil { return x.PackedUint32 } return nil } func (x *TestAllTypesProto3) GetPackedUint64() []uint64 { if x != nil { return x.PackedUint64 } return nil } func (x *TestAllTypesProto3) GetPackedSint32() []int32 { if x != nil { return x.PackedSint32 } return nil } func (x *TestAllTypesProto3) GetPackedSint64() []int64 { if x != nil { return x.PackedSint64 } return nil } func (x *TestAllTypesProto3) GetPackedFixed32() []uint32 { if x != nil { return x.PackedFixed32 } return nil } func (x *TestAllTypesProto3) GetPackedFixed64() []uint64 { if x != nil { return x.PackedFixed64 } return nil } func (x *TestAllTypesProto3) GetPackedSfixed32() []int32 { if x != nil { return x.PackedSfixed32 } return nil } func (x *TestAllTypesProto3) GetPackedSfixed64() []int64 { if x != nil { return x.PackedSfixed64 } return nil } func (x *TestAllTypesProto3) GetPackedFloat() []float32 { if x != nil { return x.PackedFloat } return nil } func (x *TestAllTypesProto3) GetPackedDouble() []float64 { if x != nil { return x.PackedDouble } return nil } func (x *TestAllTypesProto3) GetPackedBool() []bool { if x != nil { return x.PackedBool } return nil } func (x *TestAllTypesProto3) GetPackedNestedEnum() []TestAllTypesProto3_NestedEnum { if x != nil { return x.PackedNestedEnum } return nil } func (x *TestAllTypesProto3) GetUnpackedInt32() []int32 { if x != nil { return x.UnpackedInt32 } return nil } func (x *TestAllTypesProto3) GetUnpackedInt64() []int64 { if x != nil { return x.UnpackedInt64 } return nil } func (x *TestAllTypesProto3) GetUnpackedUint32() []uint32 { if x != nil { return x.UnpackedUint32 } return nil } func (x *TestAllTypesProto3) GetUnpackedUint64() []uint64 { if x != nil { return x.UnpackedUint64 } return nil } func (x *TestAllTypesProto3) GetUnpackedSint32() []int32 { if x != nil { return x.UnpackedSint32 } return nil } func (x *TestAllTypesProto3) GetUnpackedSint64() []int64 { if x != nil { return x.UnpackedSint64 } return nil } func (x *TestAllTypesProto3) GetUnpackedFixed32() []uint32 { if x != nil { return x.UnpackedFixed32 } return nil } func (x *TestAllTypesProto3) GetUnpackedFixed64() []uint64 { if x != nil { return x.UnpackedFixed64 } return nil } func (x *TestAllTypesProto3) GetUnpackedSfixed32() []int32 { if x != nil { return x.UnpackedSfixed32 } return nil } func (x *TestAllTypesProto3) GetUnpackedSfixed64() []int64 { if x != nil { return x.UnpackedSfixed64 } return nil } func (x *TestAllTypesProto3) GetUnpackedFloat() []float32 { if x != nil { return x.UnpackedFloat } return nil } func (x *TestAllTypesProto3) GetUnpackedDouble() []float64 { if x != nil { return x.UnpackedDouble } return nil } func (x *TestAllTypesProto3) GetUnpackedBool() []bool { if x != nil { return x.UnpackedBool } return nil } func (x *TestAllTypesProto3) GetUnpackedNestedEnum() []TestAllTypesProto3_NestedEnum { if x != nil { return x.UnpackedNestedEnum } return nil } func (x *TestAllTypesProto3) GetMapInt32Int32() map[int32]int32 { if x != nil { return x.MapInt32Int32 } return nil } func (x *TestAllTypesProto3) GetMapInt64Int64() map[int64]int64 { if x != nil { return x.MapInt64Int64 } return nil } func (x *TestAllTypesProto3) GetMapUint32Uint32() map[uint32]uint32 { if x != nil { return x.MapUint32Uint32 } return nil } func (x *TestAllTypesProto3) GetMapUint64Uint64() map[uint64]uint64 { if x != nil { return x.MapUint64Uint64 } return nil } func (x *TestAllTypesProto3) GetMapSint32Sint32() map[int32]int32 { if x != nil { return x.MapSint32Sint32 } return nil } func (x *TestAllTypesProto3) GetMapSint64Sint64() map[int64]int64 { if x != nil { return x.MapSint64Sint64 } return nil } func (x *TestAllTypesProto3) GetMapFixed32Fixed32() map[uint32]uint32 { if x != nil { return x.MapFixed32Fixed32 } return nil } func (x *TestAllTypesProto3) GetMapFixed64Fixed64() map[uint64]uint64 { if x != nil { return x.MapFixed64Fixed64 } return nil } func (x *TestAllTypesProto3) GetMapSfixed32Sfixed32() map[int32]int32 { if x != nil { return x.MapSfixed32Sfixed32 } return nil } func (x *TestAllTypesProto3) GetMapSfixed64Sfixed64() map[int64]int64 { if x != nil { return x.MapSfixed64Sfixed64 } return nil } func (x *TestAllTypesProto3) GetMapInt32Float() map[int32]float32 { if x != nil { return x.MapInt32Float } return nil } func (x *TestAllTypesProto3) GetMapInt32Double() map[int32]float64 { if x != nil { return x.MapInt32Double } return nil } func (x *TestAllTypesProto3) GetMapBoolBool() map[bool]bool { if x != nil { return x.MapBoolBool } return nil } func (x *TestAllTypesProto3) GetMapStringString() map[string]string { if x != nil { return x.MapStringString } return nil } func (x *TestAllTypesProto3) GetMapStringBytes() map[string][]byte { if x != nil { return x.MapStringBytes } return nil } func (x *TestAllTypesProto3) GetMapStringNestedMessage() map[string]*TestAllTypesProto3_NestedMessage { if x != nil { return x.MapStringNestedMessage } return nil } func (x *TestAllTypesProto3) GetMapStringForeignMessage() map[string]*ForeignMessage { if x != nil { return x.MapStringForeignMessage } return nil } func (x *TestAllTypesProto3) GetMapStringNestedEnum() map[string]TestAllTypesProto3_NestedEnum { if x != nil { return x.MapStringNestedEnum } return nil } func (x *TestAllTypesProto3) GetMapStringForeignEnum() map[string]ForeignEnum { if x != nil { return x.MapStringForeignEnum } return nil } func (m *TestAllTypesProto3) GetOneofField() isTestAllTypesProto3_OneofField { if m != nil { return m.OneofField } return nil } func (x *TestAllTypesProto3) GetOneofUint32() uint32 { if x, ok := x.GetOneofField().(*TestAllTypesProto3_OneofUint32); ok { return x.OneofUint32 } return 0 } func (x *TestAllTypesProto3) GetOneofNestedMessage() *TestAllTypesProto3_NestedMessage { if x, ok := x.GetOneofField().(*TestAllTypesProto3_OneofNestedMessage); ok { return x.OneofNestedMessage } return nil } func (x *TestAllTypesProto3) GetOneofString() string { if x, ok := x.GetOneofField().(*TestAllTypesProto3_OneofString); ok { return x.OneofString } return "" } func (x *TestAllTypesProto3) GetOneofBytes() []byte { if x, ok := x.GetOneofField().(*TestAllTypesProto3_OneofBytes); ok { return x.OneofBytes } return nil } func (x *TestAllTypesProto3) GetOneofBool() bool { if x, ok := x.GetOneofField().(*TestAllTypesProto3_OneofBool); ok { return x.OneofBool } return false } func (x *TestAllTypesProto3) GetOneofUint64() uint64 { if x, ok := x.GetOneofField().(*TestAllTypesProto3_OneofUint64); ok { return x.OneofUint64 } return 0 } func (x *TestAllTypesProto3) GetOneofFloat() float32 { if x, ok := x.GetOneofField().(*TestAllTypesProto3_OneofFloat); ok { return x.OneofFloat } return 0 } func (x *TestAllTypesProto3) GetOneofDouble() float64 { if x, ok := x.GetOneofField().(*TestAllTypesProto3_OneofDouble); ok { return x.OneofDouble } return 0 } func (x *TestAllTypesProto3) GetOneofEnum() TestAllTypesProto3_NestedEnum { if x, ok := x.GetOneofField().(*TestAllTypesProto3_OneofEnum); ok { return x.OneofEnum } return TestAllTypesProto3_FOO } func (x *TestAllTypesProto3) GetOneofNullValue() structpb.NullValue { if x, ok := x.GetOneofField().(*TestAllTypesProto3_OneofNullValue); ok { return x.OneofNullValue } return structpb.NullValue(0) } func (x *TestAllTypesProto3) GetOptionalBoolWrapper() *wrapperspb.BoolValue { if x != nil { return x.OptionalBoolWrapper } return nil } func (x *TestAllTypesProto3) GetOptionalInt32Wrapper() *wrapperspb.Int32Value { if x != nil { return x.OptionalInt32Wrapper } return nil } func (x *TestAllTypesProto3) GetOptionalInt64Wrapper() *wrapperspb.Int64Value { if x != nil { return x.OptionalInt64Wrapper } return nil } func (x *TestAllTypesProto3) GetOptionalUint32Wrapper() *wrapperspb.UInt32Value { if x != nil { return x.OptionalUint32Wrapper } return nil } func (x *TestAllTypesProto3) GetOptionalUint64Wrapper() *wrapperspb.UInt64Value { if x != nil { return x.OptionalUint64Wrapper } return nil } func (x *TestAllTypesProto3) GetOptionalFloatWrapper() *wrapperspb.FloatValue { if x != nil { return x.OptionalFloatWrapper } return nil } func (x *TestAllTypesProto3) GetOptionalDoubleWrapper() *wrapperspb.DoubleValue { if x != nil { return x.OptionalDoubleWrapper } return nil } func (x *TestAllTypesProto3) GetOptionalStringWrapper() *wrapperspb.StringValue { if x != nil { return x.OptionalStringWrapper } return nil } func (x *TestAllTypesProto3) GetOptionalBytesWrapper() *wrapperspb.BytesValue { if x != nil { return x.OptionalBytesWrapper } return nil } func (x *TestAllTypesProto3) GetRepeatedBoolWrapper() []*wrapperspb.BoolValue { if x != nil { return x.RepeatedBoolWrapper } return nil } func (x *TestAllTypesProto3) GetRepeatedInt32Wrapper() []*wrapperspb.Int32Value { if x != nil { return x.RepeatedInt32Wrapper } return nil } func (x *TestAllTypesProto3) GetRepeatedInt64Wrapper() []*wrapperspb.Int64Value { if x != nil { return x.RepeatedInt64Wrapper } return nil } func (x *TestAllTypesProto3) GetRepeatedUint32Wrapper() []*wrapperspb.UInt32Value { if x != nil { return x.RepeatedUint32Wrapper } return nil } func (x *TestAllTypesProto3) GetRepeatedUint64Wrapper() []*wrapperspb.UInt64Value { if x != nil { return x.RepeatedUint64Wrapper } return nil } func (x *TestAllTypesProto3) GetRepeatedFloatWrapper() []*wrapperspb.FloatValue { if x != nil { return x.RepeatedFloatWrapper } return nil } func (x *TestAllTypesProto3) GetRepeatedDoubleWrapper() []*wrapperspb.DoubleValue { if x != nil { return x.RepeatedDoubleWrapper } return nil } func (x *TestAllTypesProto3) GetRepeatedStringWrapper() []*wrapperspb.StringValue { if x != nil { return x.RepeatedStringWrapper } return nil } func (x *TestAllTypesProto3) GetRepeatedBytesWrapper() []*wrapperspb.BytesValue { if x != nil { return x.RepeatedBytesWrapper } return nil } func (x *TestAllTypesProto3) GetOptionalDuration() *durationpb.Duration { if x != nil { return x.OptionalDuration } return nil } func (x *TestAllTypesProto3) GetOptionalTimestamp() *timestamppb.Timestamp { if x != nil { return x.OptionalTimestamp } return nil } func (x *TestAllTypesProto3) GetOptionalFieldMask() *fieldmaskpb.FieldMask { if x != nil { return x.OptionalFieldMask } return nil } func (x *TestAllTypesProto3) GetOptionalStruct() *structpb.Struct { if x != nil { return x.OptionalStruct } return nil } func (x *TestAllTypesProto3) GetOptionalAny() *anypb.Any { if x != nil { return x.OptionalAny } return nil } func (x *TestAllTypesProto3) GetOptionalValue() *structpb.Value { if x != nil { return x.OptionalValue } return nil } func (x *TestAllTypesProto3) GetOptionalNullValue() structpb.NullValue { if x != nil { return x.OptionalNullValue } return structpb.NullValue(0) } func (x *TestAllTypesProto3) GetRepeatedDuration() []*durationpb.Duration { if x != nil { return x.RepeatedDuration } return nil } func (x *TestAllTypesProto3) GetRepeatedTimestamp() []*timestamppb.Timestamp { if x != nil { return x.RepeatedTimestamp } return nil } func (x *TestAllTypesProto3) GetRepeatedFieldmask() []*fieldmaskpb.FieldMask { if x != nil { return x.RepeatedFieldmask } return nil } func (x *TestAllTypesProto3) GetRepeatedStruct() []*structpb.Struct { if x != nil { return x.RepeatedStruct } return nil } func (x *TestAllTypesProto3) GetRepeatedAny() []*anypb.Any { if x != nil { return x.RepeatedAny } return nil } func (x *TestAllTypesProto3) GetRepeatedValue() []*structpb.Value { if x != nil { return x.RepeatedValue } return nil } func (x *TestAllTypesProto3) GetRepeatedListValue() []*structpb.ListValue { if x != nil { return x.RepeatedListValue } return nil } func (x *TestAllTypesProto3) GetFieldname1() int32 { if x != nil { return x.Fieldname1 } return 0 } func (x *TestAllTypesProto3) GetFieldName2() int32 { if x != nil { return x.FieldName2 } return 0 } func (x *TestAllTypesProto3) GetXFieldName3() int32 { if x != nil { return x.XFieldName3 } return 0 } func (x *TestAllTypesProto3) GetField_Name4_() int32 { if x != nil { return x.Field_Name4_ } return 0 } func (x *TestAllTypesProto3) GetField0Name5() int32 { if x != nil { return x.Field0Name5 } return 0 } func (x *TestAllTypesProto3) GetField_0Name6() int32 { if x != nil { return x.Field_0Name6 } return 0 } func (x *TestAllTypesProto3) GetFieldName7() int32 { if x != nil { return x.FieldName7 } return 0 } func (x *TestAllTypesProto3) GetFieldName8() int32 { if x != nil { return x.FieldName8 } return 0 } func (x *TestAllTypesProto3) GetField_Name9() int32 { if x != nil { return x.Field_Name9 } return 0 } func (x *TestAllTypesProto3) GetField_Name10() int32 { if x != nil { return x.Field_Name10 } return 0 } func (x *TestAllTypesProto3) GetFIELD_NAME11() int32 { if x != nil { return x.FIELD_NAME11 } return 0 } func (x *TestAllTypesProto3) GetFIELDName12() int32 { if x != nil { return x.FIELDName12 } return 0 } func (x *TestAllTypesProto3) GetXFieldName13() int32 { if x != nil { return x.XFieldName13 } return 0 } func (x *TestAllTypesProto3) GetX_FieldName14() int32 { if x != nil { return x.X_FieldName14 } return 0 } func (x *TestAllTypesProto3) GetField_Name15() int32 { if x != nil { return x.Field_Name15 } return 0 } func (x *TestAllTypesProto3) GetField__Name16() int32 { if x != nil { return x.Field__Name16 } return 0 } func (x *TestAllTypesProto3) GetFieldName17__() int32 { if x != nil { return x.FieldName17__ } return 0 } func (x *TestAllTypesProto3) GetFieldName18__() int32 { if x != nil { return x.FieldName18__ } return 0 } type isTestAllTypesProto3_OneofField interface { isTestAllTypesProto3_OneofField() } type TestAllTypesProto3_OneofUint32 struct { OneofUint32 uint32 `protobuf:"varint,111,opt,name=oneof_uint32,json=oneofUint32,proto3,oneof"` } type TestAllTypesProto3_OneofNestedMessage struct { OneofNestedMessage *TestAllTypesProto3_NestedMessage `protobuf:"bytes,112,opt,name=oneof_nested_message,json=oneofNestedMessage,proto3,oneof"` } type TestAllTypesProto3_OneofString struct { OneofString string `protobuf:"bytes,113,opt,name=oneof_string,json=oneofString,proto3,oneof"` } type TestAllTypesProto3_OneofBytes struct { OneofBytes []byte `protobuf:"bytes,114,opt,name=oneof_bytes,json=oneofBytes,proto3,oneof"` } type TestAllTypesProto3_OneofBool struct { OneofBool bool `protobuf:"varint,115,opt,name=oneof_bool,json=oneofBool,proto3,oneof"` } type TestAllTypesProto3_OneofUint64 struct { OneofUint64 uint64 `protobuf:"varint,116,opt,name=oneof_uint64,json=oneofUint64,proto3,oneof"` } type TestAllTypesProto3_OneofFloat struct { OneofFloat float32 `protobuf:"fixed32,117,opt,name=oneof_float,json=oneofFloat,proto3,oneof"` } type TestAllTypesProto3_OneofDouble struct { OneofDouble float64 `protobuf:"fixed64,118,opt,name=oneof_double,json=oneofDouble,proto3,oneof"` } type TestAllTypesProto3_OneofEnum struct { OneofEnum TestAllTypesProto3_NestedEnum `protobuf:"varint,119,opt,name=oneof_enum,json=oneofEnum,proto3,enum=protobuf_test_messages.proto3.TestAllTypesProto3_NestedEnum,oneof"` } type TestAllTypesProto3_OneofNullValue struct { OneofNullValue structpb.NullValue `protobuf:"varint,120,opt,name=oneof_null_value,json=oneofNullValue,proto3,enum=google.protobuf.NullValue,oneof"` } func (*TestAllTypesProto3_OneofUint32) isTestAllTypesProto3_OneofField() {} func (*TestAllTypesProto3_OneofNestedMessage) isTestAllTypesProto3_OneofField() {} func (*TestAllTypesProto3_OneofString) isTestAllTypesProto3_OneofField() {} func (*TestAllTypesProto3_OneofBytes) isTestAllTypesProto3_OneofField() {} func (*TestAllTypesProto3_OneofBool) isTestAllTypesProto3_OneofField() {} func (*TestAllTypesProto3_OneofUint64) isTestAllTypesProto3_OneofField() {} func (*TestAllTypesProto3_OneofFloat) isTestAllTypesProto3_OneofField() {} func (*TestAllTypesProto3_OneofDouble) isTestAllTypesProto3_OneofField() {} func (*TestAllTypesProto3_OneofEnum) isTestAllTypesProto3_OneofField() {} func (*TestAllTypesProto3_OneofNullValue) isTestAllTypesProto3_OneofField() {} type ForeignMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields C int32 `protobuf:"varint,1,opt,name=c,proto3" json:"c,omitempty"` } func (x *ForeignMessage) Reset() { *x = ForeignMessage{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_test_messages_proto3_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ForeignMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*ForeignMessage) ProtoMessage() {} func (x *ForeignMessage) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_test_messages_proto3_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ForeignMessage.ProtoReflect.Descriptor instead. func (*ForeignMessage) Descriptor() ([]byte, []int) { return file_google_protobuf_test_messages_proto3_proto_rawDescGZIP(), []int{1} } func (x *ForeignMessage) GetC() int32 { if x != nil { return x.C } return 0 } type TestAllTypesProto3_NestedMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields A int32 `protobuf:"varint,1,opt,name=a,proto3" json:"a,omitempty"` Corecursive *TestAllTypesProto3 `protobuf:"bytes,2,opt,name=corecursive,proto3" json:"corecursive,omitempty"` } func (x *TestAllTypesProto3_NestedMessage) Reset() { *x = TestAllTypesProto3_NestedMessage{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_test_messages_proto3_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestAllTypesProto3_NestedMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestAllTypesProto3_NestedMessage) ProtoMessage() {} func (x *TestAllTypesProto3_NestedMessage) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_test_messages_proto3_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestAllTypesProto3_NestedMessage.ProtoReflect.Descriptor instead. func (*TestAllTypesProto3_NestedMessage) Descriptor() ([]byte, []int) { return file_google_protobuf_test_messages_proto3_proto_rawDescGZIP(), []int{0, 0} } func (x *TestAllTypesProto3_NestedMessage) GetA() int32 { if x != nil { return x.A } return 0 } func (x *TestAllTypesProto3_NestedMessage) GetCorecursive() *TestAllTypesProto3 { if x != nil { return x.Corecursive } return nil } var File_google_protobuf_test_messages_proto3_proto protoreflect.FileDescriptor var file_google_protobuf_test_messages_proto3_proto_rawDesc = []byte{ 0x0a, 0x2a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x99, 0x5b, 0x0a, 0x12, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x10, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x77, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x67, 0x0a, 0x18, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x6e, 0x0a, 0x14, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x12, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x5e, 0x0a, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x13, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x71, 0x0a, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x13, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x36, 0x0a, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x08, 0x02, 0x52, 0x13, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x65, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x08, 0x01, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x64, 0x12, 0x5e, 0x0a, 0x11, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x52, 0x10, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x20, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x21, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x22, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x23, 0x20, 0x03, 0x28, 0x11, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x24, 0x20, 0x03, 0x28, 0x12, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x25, 0x20, 0x03, 0x28, 0x07, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x26, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x27, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x28, 0x20, 0x03, 0x28, 0x10, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x29, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x2a, 0x20, 0x03, 0x28, 0x01, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x2c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x2d, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x77, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x30, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x67, 0x0a, 0x18, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x31, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x6e, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x33, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x12, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x5e, 0x0a, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x34, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x13, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x36, 0x0a, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x18, 0x36, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x08, 0x02, 0x52, 0x13, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x65, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x37, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x08, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x72, 0x64, 0x12, 0x25, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x4b, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x4c, 0x20, 0x03, 0x28, 0x03, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x4d, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x4e, 0x20, 0x03, 0x28, 0x04, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x4f, 0x20, 0x03, 0x28, 0x11, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x50, 0x20, 0x03, 0x28, 0x12, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x51, 0x20, 0x03, 0x28, 0x07, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x52, 0x20, 0x03, 0x28, 0x06, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x53, 0x20, 0x03, 0x28, 0x0f, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x54, 0x20, 0x03, 0x28, 0x10, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x55, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x56, 0x20, 0x03, 0x28, 0x01, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x57, 0x20, 0x03, 0x28, 0x08, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x6e, 0x0a, 0x12, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x58, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x02, 0x10, 0x01, 0x52, 0x10, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x29, 0x0a, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x59, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x5a, 0x20, 0x03, 0x28, 0x03, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x5b, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x5c, 0x20, 0x03, 0x28, 0x04, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x5d, 0x20, 0x03, 0x28, 0x11, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x5e, 0x20, 0x03, 0x28, 0x12, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2d, 0x0a, 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x5f, 0x20, 0x03, 0x28, 0x07, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2d, 0x0a, 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x60, 0x20, 0x03, 0x28, 0x06, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2f, 0x0a, 0x11, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x61, 0x20, 0x03, 0x28, 0x0f, 0x42, 0x02, 0x10, 0x00, 0x52, 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2f, 0x0a, 0x11, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x62, 0x20, 0x03, 0x28, 0x10, 0x42, 0x02, 0x10, 0x00, 0x52, 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x63, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x64, 0x20, 0x03, 0x28, 0x01, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x65, 0x20, 0x03, 0x28, 0x08, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0c, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x72, 0x0a, 0x14, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x66, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x02, 0x10, 0x00, 0x52, 0x12, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x6c, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x38, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x6c, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x39, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x72, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x3a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x72, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x3b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x72, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x3c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x72, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x3d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x78, 0x0a, 0x13, 0x6d, 0x61, 0x70, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x3e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x6d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x78, 0x0a, 0x13, 0x6d, 0x61, 0x70, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x3f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x6d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x7e, 0x0a, 0x15, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x40, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x6d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x7e, 0x0a, 0x15, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x41, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x6d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x6c, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x42, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x6f, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x43, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x66, 0x0a, 0x0d, 0x6d, 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x44, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x72, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x45, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x6f, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x46, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x88, 0x01, 0x0a, 0x19, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x47, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x48, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x17, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x7f, 0x0a, 0x16, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x49, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x82, 0x01, 0x0a, 0x17, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x4a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x23, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x73, 0x0a, 0x14, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x70, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x12, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x71, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x21, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x72, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x73, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x23, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x74, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x21, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x75, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x23, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x76, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x5d, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x77, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x46, 0x0a, 0x10, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x78, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4f, 0x0a, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xc9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xca, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xcb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xcc, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xcd, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xce, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xcf, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xd0, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xd1, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xd3, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xd4, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xd5, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xd6, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xd7, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xd8, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xd9, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xda, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xdb, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xad, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x12, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0xae, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4b, 0x0a, 0x13, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0xaf, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x41, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0xb0, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x38, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0xb1, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x6e, 0x79, 0x12, 0x3e, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0xb2, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4b, 0x0a, 0x13, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0xb3, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x47, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xb7, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0xb8, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4a, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0xb9, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0x41, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0xc4, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x38, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0xbb, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x12, 0x3e, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0xbc, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4b, 0x0a, 0x13, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0xbd, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x31, 0x18, 0x91, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x31, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x32, 0x18, 0x92, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x32, 0x12, 0x21, 0x0a, 0x0c, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x33, 0x18, 0x93, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x33, 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x34, 0x5f, 0x18, 0x94, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x34, 0x12, 0x21, 0x0a, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x30, 0x6e, 0x61, 0x6d, 0x65, 0x35, 0x18, 0x95, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x30, 0x6e, 0x61, 0x6d, 0x65, 0x35, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x30, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x36, 0x18, 0x96, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x30, 0x4e, 0x61, 0x6d, 0x65, 0x36, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x37, 0x18, 0x97, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x37, 0x12, 0x1f, 0x0a, 0x0a, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x38, 0x18, 0x98, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x38, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x39, 0x18, 0x99, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x39, 0x12, 0x22, 0x0a, 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x30, 0x18, 0x9a, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x30, 0x12, 0x22, 0x0a, 0x0c, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x31, 0x31, 0x18, 0x9b, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x4e, 0x41, 0x4d, 0x45, 0x31, 0x31, 0x12, 0x22, 0x0a, 0x0c, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x31, 0x32, 0x18, 0x9c, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x32, 0x12, 0x24, 0x0a, 0x0e, 0x5f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x31, 0x33, 0x18, 0x9d, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x33, 0x12, 0x24, 0x0a, 0x0e, 0x5f, 0x5f, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x31, 0x34, 0x18, 0x9e, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x34, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x31, 0x35, 0x18, 0x9f, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x35, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x36, 0x18, 0xa0, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x36, 0x12, 0x24, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x31, 0x37, 0x5f, 0x5f, 0x18, 0xa1, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x37, 0x12, 0x24, 0x0a, 0x0e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x31, 0x38, 0x5f, 0x5f, 0x18, 0xa2, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x38, 0x1a, 0x72, 0x0a, 0x0d, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x61, 0x12, 0x53, 0x0a, 0x0b, 0x63, 0x6f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x52, 0x0b, 0x63, 0x6f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x46, 0x0a, 0x18, 0x4d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x46, 0x0a, 0x18, 0x4d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x10, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x10, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x8a, 0x01, 0x0a, 0x1b, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x55, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x79, 0x0a, 0x1c, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x43, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x84, 0x01, 0x0a, 0x18, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x52, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x73, 0x0a, 0x19, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x40, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x39, 0x0a, 0x0a, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x07, 0x0a, 0x03, 0x46, 0x4f, 0x4f, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x41, 0x52, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x41, 0x5a, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x45, 0x47, 0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x59, 0x0a, 0x0b, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x4c, 0x49, 0x41, 0x53, 0x5f, 0x46, 0x4f, 0x4f, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x4c, 0x49, 0x41, 0x53, 0x5f, 0x42, 0x41, 0x52, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x4c, 0x49, 0x41, 0x53, 0x5f, 0x42, 0x41, 0x5a, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x51, 0x55, 0x58, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x71, 0x75, 0x78, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x41, 0x7a, 0x10, 0x02, 0x1a, 0x02, 0x10, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4a, 0x06, 0x08, 0xf5, 0x03, 0x10, 0xff, 0x03, 0x22, 0x1e, 0x0a, 0x0e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x63, 0x2a, 0x40, 0x0a, 0x0b, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x4f, 0x52, 0x45, 0x49, 0x47, 0x4e, 0x5f, 0x46, 0x4f, 0x4f, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x4f, 0x52, 0x45, 0x49, 0x47, 0x4e, 0x5f, 0x42, 0x41, 0x52, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x4f, 0x52, 0x45, 0x49, 0x47, 0x4e, 0x5f, 0x42, 0x41, 0x5a, 0x10, 0x02, 0x42, 0x38, 0x0a, 0x28, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x48, 0x01, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x06, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_google_protobuf_test_messages_proto3_proto_rawDescOnce sync.Once file_google_protobuf_test_messages_proto3_proto_rawDescData = file_google_protobuf_test_messages_proto3_proto_rawDesc ) func file_google_protobuf_test_messages_proto3_proto_rawDescGZIP() []byte { file_google_protobuf_test_messages_proto3_proto_rawDescOnce.Do(func() { file_google_protobuf_test_messages_proto3_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_test_messages_proto3_proto_rawDescData) }) return file_google_protobuf_test_messages_proto3_proto_rawDescData } var file_google_protobuf_test_messages_proto3_proto_enumTypes = make([]protoimpl.EnumInfo, 3) var file_google_protobuf_test_messages_proto3_proto_msgTypes = make([]protoimpl.MessageInfo, 22) var file_google_protobuf_test_messages_proto3_proto_goTypes = []interface{}{ (ForeignEnum)(0), // 0: protobuf_test_messages.proto3.ForeignEnum (TestAllTypesProto3_NestedEnum)(0), // 1: protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum (TestAllTypesProto3_AliasedEnum)(0), // 2: protobuf_test_messages.proto3.TestAllTypesProto3.AliasedEnum (*TestAllTypesProto3)(nil), // 3: protobuf_test_messages.proto3.TestAllTypesProto3 (*ForeignMessage)(nil), // 4: protobuf_test_messages.proto3.ForeignMessage (*TestAllTypesProto3_NestedMessage)(nil), // 5: protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage nil, // 6: protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32Int32Entry nil, // 7: protobuf_test_messages.proto3.TestAllTypesProto3.MapInt64Int64Entry nil, // 8: protobuf_test_messages.proto3.TestAllTypesProto3.MapUint32Uint32Entry nil, // 9: protobuf_test_messages.proto3.TestAllTypesProto3.MapUint64Uint64Entry nil, // 10: protobuf_test_messages.proto3.TestAllTypesProto3.MapSint32Sint32Entry nil, // 11: protobuf_test_messages.proto3.TestAllTypesProto3.MapSint64Sint64Entry nil, // 12: protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed32Fixed32Entry nil, // 13: protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed64Fixed64Entry nil, // 14: protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed32Sfixed32Entry nil, // 15: protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed64Sfixed64Entry nil, // 16: protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32FloatEntry nil, // 17: protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32DoubleEntry nil, // 18: protobuf_test_messages.proto3.TestAllTypesProto3.MapBoolBoolEntry nil, // 19: protobuf_test_messages.proto3.TestAllTypesProto3.MapStringStringEntry nil, // 20: protobuf_test_messages.proto3.TestAllTypesProto3.MapStringBytesEntry nil, // 21: protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntry nil, // 22: protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntry nil, // 23: protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntry nil, // 24: protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntry (structpb.NullValue)(0), // 25: google.protobuf.NullValue (*wrapperspb.BoolValue)(nil), // 26: google.protobuf.BoolValue (*wrapperspb.Int32Value)(nil), // 27: google.protobuf.Int32Value (*wrapperspb.Int64Value)(nil), // 28: google.protobuf.Int64Value (*wrapperspb.UInt32Value)(nil), // 29: google.protobuf.UInt32Value (*wrapperspb.UInt64Value)(nil), // 30: google.protobuf.UInt64Value (*wrapperspb.FloatValue)(nil), // 31: google.protobuf.FloatValue (*wrapperspb.DoubleValue)(nil), // 32: google.protobuf.DoubleValue (*wrapperspb.StringValue)(nil), // 33: google.protobuf.StringValue (*wrapperspb.BytesValue)(nil), // 34: google.protobuf.BytesValue (*durationpb.Duration)(nil), // 35: google.protobuf.Duration (*timestamppb.Timestamp)(nil), // 36: google.protobuf.Timestamp (*fieldmaskpb.FieldMask)(nil), // 37: google.protobuf.FieldMask (*structpb.Struct)(nil), // 38: google.protobuf.Struct (*anypb.Any)(nil), // 39: google.protobuf.Any (*structpb.Value)(nil), // 40: google.protobuf.Value (*structpb.ListValue)(nil), // 41: google.protobuf.ListValue } var file_google_protobuf_test_messages_proto3_proto_depIdxs = []int32{ 5, // 0: protobuf_test_messages.proto3.TestAllTypesProto3.optional_nested_message:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage 4, // 1: protobuf_test_messages.proto3.TestAllTypesProto3.optional_foreign_message:type_name -> protobuf_test_messages.proto3.ForeignMessage 1, // 2: protobuf_test_messages.proto3.TestAllTypesProto3.optional_nested_enum:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum 0, // 3: protobuf_test_messages.proto3.TestAllTypesProto3.optional_foreign_enum:type_name -> protobuf_test_messages.proto3.ForeignEnum 2, // 4: protobuf_test_messages.proto3.TestAllTypesProto3.optional_aliased_enum:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.AliasedEnum 3, // 5: protobuf_test_messages.proto3.TestAllTypesProto3.recursive_message:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3 5, // 6: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_nested_message:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage 4, // 7: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_foreign_message:type_name -> protobuf_test_messages.proto3.ForeignMessage 1, // 8: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_nested_enum:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum 0, // 9: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_foreign_enum:type_name -> protobuf_test_messages.proto3.ForeignEnum 1, // 10: protobuf_test_messages.proto3.TestAllTypesProto3.packed_nested_enum:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum 1, // 11: protobuf_test_messages.proto3.TestAllTypesProto3.unpacked_nested_enum:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum 6, // 12: protobuf_test_messages.proto3.TestAllTypesProto3.map_int32_int32:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32Int32Entry 7, // 13: protobuf_test_messages.proto3.TestAllTypesProto3.map_int64_int64:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapInt64Int64Entry 8, // 14: protobuf_test_messages.proto3.TestAllTypesProto3.map_uint32_uint32:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapUint32Uint32Entry 9, // 15: protobuf_test_messages.proto3.TestAllTypesProto3.map_uint64_uint64:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapUint64Uint64Entry 10, // 16: protobuf_test_messages.proto3.TestAllTypesProto3.map_sint32_sint32:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapSint32Sint32Entry 11, // 17: protobuf_test_messages.proto3.TestAllTypesProto3.map_sint64_sint64:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapSint64Sint64Entry 12, // 18: protobuf_test_messages.proto3.TestAllTypesProto3.map_fixed32_fixed32:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed32Fixed32Entry 13, // 19: protobuf_test_messages.proto3.TestAllTypesProto3.map_fixed64_fixed64:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed64Fixed64Entry 14, // 20: protobuf_test_messages.proto3.TestAllTypesProto3.map_sfixed32_sfixed32:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed32Sfixed32Entry 15, // 21: protobuf_test_messages.proto3.TestAllTypesProto3.map_sfixed64_sfixed64:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed64Sfixed64Entry 16, // 22: protobuf_test_messages.proto3.TestAllTypesProto3.map_int32_float:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32FloatEntry 17, // 23: protobuf_test_messages.proto3.TestAllTypesProto3.map_int32_double:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32DoubleEntry 18, // 24: protobuf_test_messages.proto3.TestAllTypesProto3.map_bool_bool:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapBoolBoolEntry 19, // 25: protobuf_test_messages.proto3.TestAllTypesProto3.map_string_string:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapStringStringEntry 20, // 26: protobuf_test_messages.proto3.TestAllTypesProto3.map_string_bytes:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapStringBytesEntry 21, // 27: protobuf_test_messages.proto3.TestAllTypesProto3.map_string_nested_message:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntry 22, // 28: protobuf_test_messages.proto3.TestAllTypesProto3.map_string_foreign_message:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntry 23, // 29: protobuf_test_messages.proto3.TestAllTypesProto3.map_string_nested_enum:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntry 24, // 30: protobuf_test_messages.proto3.TestAllTypesProto3.map_string_foreign_enum:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntry 5, // 31: protobuf_test_messages.proto3.TestAllTypesProto3.oneof_nested_message:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage 1, // 32: protobuf_test_messages.proto3.TestAllTypesProto3.oneof_enum:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum 25, // 33: protobuf_test_messages.proto3.TestAllTypesProto3.oneof_null_value:type_name -> google.protobuf.NullValue 26, // 34: protobuf_test_messages.proto3.TestAllTypesProto3.optional_bool_wrapper:type_name -> google.protobuf.BoolValue 27, // 35: protobuf_test_messages.proto3.TestAllTypesProto3.optional_int32_wrapper:type_name -> google.protobuf.Int32Value 28, // 36: protobuf_test_messages.proto3.TestAllTypesProto3.optional_int64_wrapper:type_name -> google.protobuf.Int64Value 29, // 37: protobuf_test_messages.proto3.TestAllTypesProto3.optional_uint32_wrapper:type_name -> google.protobuf.UInt32Value 30, // 38: protobuf_test_messages.proto3.TestAllTypesProto3.optional_uint64_wrapper:type_name -> google.protobuf.UInt64Value 31, // 39: protobuf_test_messages.proto3.TestAllTypesProto3.optional_float_wrapper:type_name -> google.protobuf.FloatValue 32, // 40: protobuf_test_messages.proto3.TestAllTypesProto3.optional_double_wrapper:type_name -> google.protobuf.DoubleValue 33, // 41: protobuf_test_messages.proto3.TestAllTypesProto3.optional_string_wrapper:type_name -> google.protobuf.StringValue 34, // 42: protobuf_test_messages.proto3.TestAllTypesProto3.optional_bytes_wrapper:type_name -> google.protobuf.BytesValue 26, // 43: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_bool_wrapper:type_name -> google.protobuf.BoolValue 27, // 44: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_int32_wrapper:type_name -> google.protobuf.Int32Value 28, // 45: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_int64_wrapper:type_name -> google.protobuf.Int64Value 29, // 46: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_uint32_wrapper:type_name -> google.protobuf.UInt32Value 30, // 47: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_uint64_wrapper:type_name -> google.protobuf.UInt64Value 31, // 48: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_float_wrapper:type_name -> google.protobuf.FloatValue 32, // 49: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_double_wrapper:type_name -> google.protobuf.DoubleValue 33, // 50: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_string_wrapper:type_name -> google.protobuf.StringValue 34, // 51: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_bytes_wrapper:type_name -> google.protobuf.BytesValue 35, // 52: protobuf_test_messages.proto3.TestAllTypesProto3.optional_duration:type_name -> google.protobuf.Duration 36, // 53: protobuf_test_messages.proto3.TestAllTypesProto3.optional_timestamp:type_name -> google.protobuf.Timestamp 37, // 54: protobuf_test_messages.proto3.TestAllTypesProto3.optional_field_mask:type_name -> google.protobuf.FieldMask 38, // 55: protobuf_test_messages.proto3.TestAllTypesProto3.optional_struct:type_name -> google.protobuf.Struct 39, // 56: protobuf_test_messages.proto3.TestAllTypesProto3.optional_any:type_name -> google.protobuf.Any 40, // 57: protobuf_test_messages.proto3.TestAllTypesProto3.optional_value:type_name -> google.protobuf.Value 25, // 58: protobuf_test_messages.proto3.TestAllTypesProto3.optional_null_value:type_name -> google.protobuf.NullValue 35, // 59: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_duration:type_name -> google.protobuf.Duration 36, // 60: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_timestamp:type_name -> google.protobuf.Timestamp 37, // 61: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_fieldmask:type_name -> google.protobuf.FieldMask 38, // 62: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_struct:type_name -> google.protobuf.Struct 39, // 63: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_any:type_name -> google.protobuf.Any 40, // 64: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_value:type_name -> google.protobuf.Value 41, // 65: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_list_value:type_name -> google.protobuf.ListValue 3, // 66: protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage.corecursive:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3 5, // 67: protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntry.value:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage 4, // 68: protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntry.value:type_name -> protobuf_test_messages.proto3.ForeignMessage 1, // 69: protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntry.value:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum 0, // 70: protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntry.value:type_name -> protobuf_test_messages.proto3.ForeignEnum 71, // [71:71] is the sub-list for method output_type 71, // [71:71] is the sub-list for method input_type 71, // [71:71] is the sub-list for extension type_name 71, // [71:71] is the sub-list for extension extendee 0, // [0:71] is the sub-list for field type_name } func init() { file_google_protobuf_test_messages_proto3_proto_init() } func file_google_protobuf_test_messages_proto3_proto_init() { if File_google_protobuf_test_messages_proto3_proto != nil { return } if !protoimpl.UnsafeEnabled { file_google_protobuf_test_messages_proto3_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestAllTypesProto3); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_test_messages_proto3_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ForeignMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_test_messages_proto3_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestAllTypesProto3_NestedMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_google_protobuf_test_messages_proto3_proto_msgTypes[0].OneofWrappers = []interface{}{ (*TestAllTypesProto3_OneofUint32)(nil), (*TestAllTypesProto3_OneofNestedMessage)(nil), (*TestAllTypesProto3_OneofString)(nil), (*TestAllTypesProto3_OneofBytes)(nil), (*TestAllTypesProto3_OneofBool)(nil), (*TestAllTypesProto3_OneofUint64)(nil), (*TestAllTypesProto3_OneofFloat)(nil), (*TestAllTypesProto3_OneofDouble)(nil), (*TestAllTypesProto3_OneofEnum)(nil), (*TestAllTypesProto3_OneofNullValue)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_protobuf_test_messages_proto3_proto_rawDesc, NumEnums: 3, NumMessages: 22, NumExtensions: 0, NumServices: 0, }, GoTypes: file_google_protobuf_test_messages_proto3_proto_goTypes, DependencyIndexes: file_google_protobuf_test_messages_proto3_proto_depIdxs, EnumInfos: file_google_protobuf_test_messages_proto3_proto_enumTypes, MessageInfos: file_google_protobuf_test_messages_proto3_proto_msgTypes, }.Build() File_google_protobuf_test_messages_proto3_proto = out.File file_google_protobuf_test_messages_proto3_proto_rawDesc = nil file_google_protobuf_test_messages_proto3_proto_goTypes = nil file_google_protobuf_test_messages_proto3_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/enums/000077500000000000000000000000001411250152500233465ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/enums/enums.pb.go000066400000000000000000000127561411250152500254370ustar00rootroot00000000000000// Copyright 2021 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/enums/enums.proto package enums import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Enum int32 const ( Enum_DEFAULT Enum = 1337 Enum_ZERO Enum = 0 Enum_ONE Enum = 1 Enum_ELEVENT Enum = 11 Enum_SEVENTEEN Enum = 17 Enum_THIRTYSEVEN Enum = 37 Enum_SIXTYSEVEN Enum = 67 Enum_NEGATIVE Enum = -1 ) // Enum value maps for Enum. var ( Enum_name = map[int32]string{ 1337: "DEFAULT", 0: "ZERO", 1: "ONE", 11: "ELEVENT", 17: "SEVENTEEN", 37: "THIRTYSEVEN", 67: "SIXTYSEVEN", -1: "NEGATIVE", } Enum_value = map[string]int32{ "DEFAULT": 1337, "ZERO": 0, "ONE": 1, "ELEVENT": 11, "SEVENTEEN": 17, "THIRTYSEVEN": 37, "SIXTYSEVEN": 67, "NEGATIVE": -1, } ) func (x Enum) Enum() *Enum { p := new(Enum) *p = x return p } func (x Enum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum) Descriptor() protoreflect.EnumDescriptor { return file_internal_testprotos_enums_enums_proto_enumTypes[0].Descriptor() } func (Enum) Type() protoreflect.EnumType { return &file_internal_testprotos_enums_enums_proto_enumTypes[0] } func (x Enum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum(num) return nil } // Deprecated: Use Enum.Descriptor instead. func (Enum) EnumDescriptor() ([]byte, []int) { return file_internal_testprotos_enums_enums_proto_rawDescGZIP(), []int{0} } var File_internal_testprotos_enums_enums_proto protoreflect.FileDescriptor var file_internal_testprotos_enums_enums_proto_rawDesc = []byte{ 0x0a, 0x25, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2f, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2a, 0x7b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0c, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0xb9, 0x0a, 0x12, 0x08, 0x0a, 0x04, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x4c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x0b, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x45, 0x45, 0x4e, 0x10, 0x11, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x48, 0x49, 0x52, 0x54, 0x59, 0x53, 0x45, 0x56, 0x45, 0x4e, 0x10, 0x25, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x49, 0x58, 0x54, 0x59, 0x53, 0x45, 0x56, 0x45, 0x4e, 0x10, 0x43, 0x12, 0x15, 0x0a, 0x08, 0x4e, 0x45, 0x47, 0x41, 0x54, 0x49, 0x56, 0x45, 0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x65, 0x6e, 0x75, 0x6d, 0x73, } var ( file_internal_testprotos_enums_enums_proto_rawDescOnce sync.Once file_internal_testprotos_enums_enums_proto_rawDescData = file_internal_testprotos_enums_enums_proto_rawDesc ) func file_internal_testprotos_enums_enums_proto_rawDescGZIP() []byte { file_internal_testprotos_enums_enums_proto_rawDescOnce.Do(func() { file_internal_testprotos_enums_enums_proto_rawDescData = protoimpl.X.CompressGZIP(file_internal_testprotos_enums_enums_proto_rawDescData) }) return file_internal_testprotos_enums_enums_proto_rawDescData } var file_internal_testprotos_enums_enums_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_internal_testprotos_enums_enums_proto_goTypes = []interface{}{ (Enum)(0), // 0: goproto.proto.enums.Enum } var file_internal_testprotos_enums_enums_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_internal_testprotos_enums_enums_proto_init() } func file_internal_testprotos_enums_enums_proto_init() { if File_internal_testprotos_enums_enums_proto != nil { return } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_enums_enums_proto_rawDesc, NumEnums: 1, NumMessages: 0, NumExtensions: 0, NumServices: 0, }, GoTypes: file_internal_testprotos_enums_enums_proto_goTypes, DependencyIndexes: file_internal_testprotos_enums_enums_proto_depIdxs, EnumInfos: file_internal_testprotos_enums_enums_proto_enumTypes, }.Build() File_internal_testprotos_enums_enums_proto = out.File file_internal_testprotos_enums_enums_proto_rawDesc = nil file_internal_testprotos_enums_enums_proto_goTypes = nil file_internal_testprotos_enums_enums_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/enums/enums.proto000066400000000000000000000006601411250152500255640ustar00rootroot00000000000000// Copyright 2021 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.proto.enums; option go_package = "google.golang.org/protobuf/internal/testprotos/enums"; enum Enum { DEFAULT = 1337; ZERO = 0; ONE = 1; ELEVENT = 11; SEVENTEEN = 17; THIRTYSEVEN = 37; SIXTYSEVEN = 67; NEGATIVE = -1; } golang-google-protobuf-1.27.1/internal/testprotos/fieldtrack/000077500000000000000000000000001411250152500243275ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/fieldtrack/fieldtrack.pb.go000066400000000000000000001644151411250152500274010ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/fieldtrack/fieldtrack.proto package fieldtrack import ( _ "google.golang.org/protobuf/internal/testprotos/annotation" test "google.golang.org/protobuf/internal/testprotos/test" proto "google.golang.org/protobuf/proto" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type TestFieldTrack struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache weakFields protoimpl.WeakFields unknownFields protoimpl.UnknownFields OptionalInt32 *int32 `protobuf:"varint,1,opt,name=optional_int32,json=optionalInt32" json:"optional_int32,omitempty" go:"track"` OptionalInt64 *int64 `protobuf:"varint,2,opt,name=optional_int64,json=optionalInt64" json:"optional_int64,omitempty" go:"track"` OptionalUint32 *uint32 `protobuf:"varint,3,opt,name=optional_uint32,json=optionalUint32" json:"optional_uint32,omitempty" go:"track"` OptionalUint64 *uint64 `protobuf:"varint,4,opt,name=optional_uint64,json=optionalUint64" json:"optional_uint64,omitempty" go:"track"` OptionalSint32 *int32 `protobuf:"zigzag32,5,opt,name=optional_sint32,json=optionalSint32" json:"optional_sint32,omitempty" go:"track"` OptionalSint64 *int64 `protobuf:"zigzag64,6,opt,name=optional_sint64,json=optionalSint64" json:"optional_sint64,omitempty" go:"track"` OptionalFixed32 *uint32 `protobuf:"fixed32,7,opt,name=optional_fixed32,json=optionalFixed32" json:"optional_fixed32,omitempty" go:"track"` OptionalFixed64 *uint64 `protobuf:"fixed64,8,opt,name=optional_fixed64,json=optionalFixed64" json:"optional_fixed64,omitempty" go:"track"` OptionalSfixed32 *int32 `protobuf:"fixed32,9,opt,name=optional_sfixed32,json=optionalSfixed32" json:"optional_sfixed32,omitempty" go:"track"` OptionalSfixed64 *int64 `protobuf:"fixed64,10,opt,name=optional_sfixed64,json=optionalSfixed64" json:"optional_sfixed64,omitempty" go:"track"` OptionalFloat *float32 `protobuf:"fixed32,11,opt,name=optional_float,json=optionalFloat" json:"optional_float,omitempty" go:"track"` OptionalDouble *float64 `protobuf:"fixed64,12,opt,name=optional_double,json=optionalDouble" json:"optional_double,omitempty" go:"track"` OptionalBool *bool `protobuf:"varint,13,opt,name=optional_bool,json=optionalBool" json:"optional_bool,omitempty" go:"track"` OptionalString *string `protobuf:"bytes,14,opt,name=optional_string,json=optionalString" json:"optional_string,omitempty" go:"track"` OptionalBytes []byte `protobuf:"bytes,15,opt,name=optional_bytes,json=optionalBytes" json:"optional_bytes,omitempty" go:"track"` OptionalEnum *test.TestAllTypes_NestedEnum `protobuf:"varint,16,opt,name=optional_enum,json=optionalEnum,enum=goproto.proto.test.TestAllTypes_NestedEnum" json:"optional_enum,omitempty" go:"track"` OptionalMessage *test.TestAllTypes_NestedMessage `protobuf:"bytes,17,opt,name=optional_message,json=optionalMessage" json:"optional_message,omitempty" go:"track"` RepeatedInt32 []int32 `protobuf:"varint,21,rep,name=repeated_int32,json=repeatedInt32" json:"repeated_int32,omitempty" go:"track"` RepeatedInt64 []int64 `protobuf:"varint,22,rep,name=repeated_int64,json=repeatedInt64" json:"repeated_int64,omitempty" go:"track"` RepeatedUint32 []uint32 `protobuf:"varint,23,rep,name=repeated_uint32,json=repeatedUint32" json:"repeated_uint32,omitempty" go:"track"` RepeatedUint64 []uint64 `protobuf:"varint,24,rep,name=repeated_uint64,json=repeatedUint64" json:"repeated_uint64,omitempty" go:"track"` RepeatedSint32 []int32 `protobuf:"zigzag32,25,rep,name=repeated_sint32,json=repeatedSint32" json:"repeated_sint32,omitempty" go:"track"` RepeatedSint64 []int64 `protobuf:"zigzag64,26,rep,name=repeated_sint64,json=repeatedSint64" json:"repeated_sint64,omitempty" go:"track"` RepeatedFixed32 []uint32 `protobuf:"fixed32,27,rep,name=repeated_fixed32,json=repeatedFixed32" json:"repeated_fixed32,omitempty" go:"track"` RepeatedFixed64 []uint64 `protobuf:"fixed64,28,rep,name=repeated_fixed64,json=repeatedFixed64" json:"repeated_fixed64,omitempty" go:"track"` RepeatedSfixed32 []int32 `protobuf:"fixed32,29,rep,name=repeated_sfixed32,json=repeatedSfixed32" json:"repeated_sfixed32,omitempty" go:"track"` RepeatedSfixed64 []int64 `protobuf:"fixed64,30,rep,name=repeated_sfixed64,json=repeatedSfixed64" json:"repeated_sfixed64,omitempty" go:"track"` RepeatedFloat []float32 `protobuf:"fixed32,31,rep,name=repeated_float,json=repeatedFloat" json:"repeated_float,omitempty" go:"track"` RepeatedDouble []float64 `protobuf:"fixed64,32,rep,name=repeated_double,json=repeatedDouble" json:"repeated_double,omitempty" go:"track"` RepeatedBool []bool `protobuf:"varint,33,rep,name=repeated_bool,json=repeatedBool" json:"repeated_bool,omitempty" go:"track"` RepeatedString []string `protobuf:"bytes,34,rep,name=repeated_string,json=repeatedString" json:"repeated_string,omitempty" go:"track"` RepeatedBytes [][]byte `protobuf:"bytes,35,rep,name=repeated_bytes,json=repeatedBytes" json:"repeated_bytes,omitempty" go:"track"` RepeatedEnum []test.TestAllTypes_NestedEnum `protobuf:"varint,36,rep,name=repeated_enum,json=repeatedEnum,enum=goproto.proto.test.TestAllTypes_NestedEnum" json:"repeated_enum,omitempty" go:"track"` RepeatedMessage []*test.TestAllTypes_NestedMessage `protobuf:"bytes,37,rep,name=repeated_message,json=repeatedMessage" json:"repeated_message,omitempty" go:"track"` MapStringInt32 map[string]int32 `protobuf:"bytes,41,rep,name=map_string_int32,json=mapStringInt32" json:"map_string_int32,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value" go:"track"` MapStringInt64 map[string]int64 `protobuf:"bytes,42,rep,name=map_string_int64,json=mapStringInt64" json:"map_string_int64,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value" go:"track"` MapStringUint32 map[string]uint32 `protobuf:"bytes,43,rep,name=map_string_uint32,json=mapStringUint32" json:"map_string_uint32,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value" go:"track"` MapStringUint64 map[string]uint64 `protobuf:"bytes,44,rep,name=map_string_uint64,json=mapStringUint64" json:"map_string_uint64,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value" go:"track"` MapStringSint32 map[string]int32 `protobuf:"bytes,45,rep,name=map_string_sint32,json=mapStringSint32" json:"map_string_sint32,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value" go:"track"` MapStringSint64 map[string]int64 `protobuf:"bytes,46,rep,name=map_string_sint64,json=mapStringSint64" json:"map_string_sint64,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value" go:"track"` MapStringFixed32 map[string]uint32 `protobuf:"bytes,47,rep,name=map_string_fixed32,json=mapStringFixed32" json:"map_string_fixed32,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value" go:"track"` MapStringFixed64 map[string]uint64 `protobuf:"bytes,48,rep,name=map_string_fixed64,json=mapStringFixed64" json:"map_string_fixed64,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value" go:"track"` MapStringSfixed32 map[string]int32 `protobuf:"bytes,49,rep,name=map_string_sfixed32,json=mapStringSfixed32" json:"map_string_sfixed32,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value" go:"track"` MapStringSfixed64 map[string]int64 `protobuf:"bytes,50,rep,name=map_string_sfixed64,json=mapStringSfixed64" json:"map_string_sfixed64,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value" go:"track"` MapStringFloat map[string]float32 `protobuf:"bytes,51,rep,name=map_string_float,json=mapStringFloat" json:"map_string_float,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value" go:"track"` MapStringDouble map[string]float64 `protobuf:"bytes,52,rep,name=map_string_double,json=mapStringDouble" json:"map_string_double,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value" go:"track"` MapStringBool map[string]bool `protobuf:"bytes,53,rep,name=map_string_bool,json=mapStringBool" json:"map_string_bool,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value" go:"track"` MapStringString map[string]string `protobuf:"bytes,54,rep,name=map_string_string,json=mapStringString" json:"map_string_string,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value" go:"track"` MapStringBytes map[string][]byte `protobuf:"bytes,55,rep,name=map_string_bytes,json=mapStringBytes" json:"map_string_bytes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value" go:"track"` MapStringEnum map[string]test.TestAllTypes_NestedEnum `protobuf:"bytes,56,rep,name=map_string_enum,json=mapStringEnum" json:"map_string_enum,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=goproto.proto.test.TestAllTypes_NestedEnum" go:"track"` MapStringMessage map[string]*test.TestAllTypes_NestedMessage `protobuf:"bytes,57,rep,name=map_string_message,json=mapStringMessage" json:"map_string_message,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value" go:"track"` XXX_weak_WeakMessage1 struct{} `protobuf:"bytes,100,opt,name=weak_message1,json=weakMessage1,weak=goproto.proto.test.weak.WeakImportMessage1" json:"weak_message1,omitempty" go:"track"` XXX_weak_WeakMessage2 struct{} `protobuf:"bytes,101,opt,name=weak_message2,json=weakMessage2,weak=goproto.proto.test.weak.WeakImportMessage2" json:"weak_message2,omitempty" go:"track"` } func (x *TestFieldTrack) Reset() { *x = TestFieldTrack{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_fieldtrack_fieldtrack_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestFieldTrack) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestFieldTrack) ProtoMessage() {} func (x *TestFieldTrack) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_fieldtrack_fieldtrack_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestFieldTrack.ProtoReflect.Descriptor instead. func (*TestFieldTrack) Descriptor() ([]byte, []int) { return file_internal_testprotos_fieldtrack_fieldtrack_proto_rawDescGZIP(), []int{0} } //go:nointerface func (x *TestFieldTrack) GetOptionalInt32() int32 { if x != nil && x.OptionalInt32 != nil { return *x.OptionalInt32 } return 0 } //go:nointerface func (x *TestFieldTrack) GetOptionalInt64() int64 { if x != nil && x.OptionalInt64 != nil { return *x.OptionalInt64 } return 0 } //go:nointerface func (x *TestFieldTrack) GetOptionalUint32() uint32 { if x != nil && x.OptionalUint32 != nil { return *x.OptionalUint32 } return 0 } //go:nointerface func (x *TestFieldTrack) GetOptionalUint64() uint64 { if x != nil && x.OptionalUint64 != nil { return *x.OptionalUint64 } return 0 } //go:nointerface func (x *TestFieldTrack) GetOptionalSint32() int32 { if x != nil && x.OptionalSint32 != nil { return *x.OptionalSint32 } return 0 } //go:nointerface func (x *TestFieldTrack) GetOptionalSint64() int64 { if x != nil && x.OptionalSint64 != nil { return *x.OptionalSint64 } return 0 } //go:nointerface func (x *TestFieldTrack) GetOptionalFixed32() uint32 { if x != nil && x.OptionalFixed32 != nil { return *x.OptionalFixed32 } return 0 } //go:nointerface func (x *TestFieldTrack) GetOptionalFixed64() uint64 { if x != nil && x.OptionalFixed64 != nil { return *x.OptionalFixed64 } return 0 } //go:nointerface func (x *TestFieldTrack) GetOptionalSfixed32() int32 { if x != nil && x.OptionalSfixed32 != nil { return *x.OptionalSfixed32 } return 0 } //go:nointerface func (x *TestFieldTrack) GetOptionalSfixed64() int64 { if x != nil && x.OptionalSfixed64 != nil { return *x.OptionalSfixed64 } return 0 } //go:nointerface func (x *TestFieldTrack) GetOptionalFloat() float32 { if x != nil && x.OptionalFloat != nil { return *x.OptionalFloat } return 0 } //go:nointerface func (x *TestFieldTrack) GetOptionalDouble() float64 { if x != nil && x.OptionalDouble != nil { return *x.OptionalDouble } return 0 } //go:nointerface func (x *TestFieldTrack) GetOptionalBool() bool { if x != nil && x.OptionalBool != nil { return *x.OptionalBool } return false } //go:nointerface func (x *TestFieldTrack) GetOptionalString() string { if x != nil && x.OptionalString != nil { return *x.OptionalString } return "" } //go:nointerface func (x *TestFieldTrack) GetOptionalBytes() []byte { if x != nil { return x.OptionalBytes } return nil } //go:nointerface func (x *TestFieldTrack) GetOptionalEnum() test.TestAllTypes_NestedEnum { if x != nil && x.OptionalEnum != nil { return *x.OptionalEnum } return test.TestAllTypes_NestedEnum(0) } //go:nointerface func (x *TestFieldTrack) GetOptionalMessage() *test.TestAllTypes_NestedMessage { if x != nil { return x.OptionalMessage } return nil } //go:nointerface func (x *TestFieldTrack) GetRepeatedInt32() []int32 { if x != nil { return x.RepeatedInt32 } return nil } //go:nointerface func (x *TestFieldTrack) GetRepeatedInt64() []int64 { if x != nil { return x.RepeatedInt64 } return nil } //go:nointerface func (x *TestFieldTrack) GetRepeatedUint32() []uint32 { if x != nil { return x.RepeatedUint32 } return nil } //go:nointerface func (x *TestFieldTrack) GetRepeatedUint64() []uint64 { if x != nil { return x.RepeatedUint64 } return nil } //go:nointerface func (x *TestFieldTrack) GetRepeatedSint32() []int32 { if x != nil { return x.RepeatedSint32 } return nil } //go:nointerface func (x *TestFieldTrack) GetRepeatedSint64() []int64 { if x != nil { return x.RepeatedSint64 } return nil } //go:nointerface func (x *TestFieldTrack) GetRepeatedFixed32() []uint32 { if x != nil { return x.RepeatedFixed32 } return nil } //go:nointerface func (x *TestFieldTrack) GetRepeatedFixed64() []uint64 { if x != nil { return x.RepeatedFixed64 } return nil } //go:nointerface func (x *TestFieldTrack) GetRepeatedSfixed32() []int32 { if x != nil { return x.RepeatedSfixed32 } return nil } //go:nointerface func (x *TestFieldTrack) GetRepeatedSfixed64() []int64 { if x != nil { return x.RepeatedSfixed64 } return nil } //go:nointerface func (x *TestFieldTrack) GetRepeatedFloat() []float32 { if x != nil { return x.RepeatedFloat } return nil } //go:nointerface func (x *TestFieldTrack) GetRepeatedDouble() []float64 { if x != nil { return x.RepeatedDouble } return nil } //go:nointerface func (x *TestFieldTrack) GetRepeatedBool() []bool { if x != nil { return x.RepeatedBool } return nil } //go:nointerface func (x *TestFieldTrack) GetRepeatedString() []string { if x != nil { return x.RepeatedString } return nil } //go:nointerface func (x *TestFieldTrack) GetRepeatedBytes() [][]byte { if x != nil { return x.RepeatedBytes } return nil } //go:nointerface func (x *TestFieldTrack) GetRepeatedEnum() []test.TestAllTypes_NestedEnum { if x != nil { return x.RepeatedEnum } return nil } //go:nointerface func (x *TestFieldTrack) GetRepeatedMessage() []*test.TestAllTypes_NestedMessage { if x != nil { return x.RepeatedMessage } return nil } //go:nointerface func (x *TestFieldTrack) GetMapStringInt32() map[string]int32 { if x != nil { return x.MapStringInt32 } return nil } //go:nointerface func (x *TestFieldTrack) GetMapStringInt64() map[string]int64 { if x != nil { return x.MapStringInt64 } return nil } //go:nointerface func (x *TestFieldTrack) GetMapStringUint32() map[string]uint32 { if x != nil { return x.MapStringUint32 } return nil } //go:nointerface func (x *TestFieldTrack) GetMapStringUint64() map[string]uint64 { if x != nil { return x.MapStringUint64 } return nil } //go:nointerface func (x *TestFieldTrack) GetMapStringSint32() map[string]int32 { if x != nil { return x.MapStringSint32 } return nil } //go:nointerface func (x *TestFieldTrack) GetMapStringSint64() map[string]int64 { if x != nil { return x.MapStringSint64 } return nil } //go:nointerface func (x *TestFieldTrack) GetMapStringFixed32() map[string]uint32 { if x != nil { return x.MapStringFixed32 } return nil } //go:nointerface func (x *TestFieldTrack) GetMapStringFixed64() map[string]uint64 { if x != nil { return x.MapStringFixed64 } return nil } //go:nointerface func (x *TestFieldTrack) GetMapStringSfixed32() map[string]int32 { if x != nil { return x.MapStringSfixed32 } return nil } //go:nointerface func (x *TestFieldTrack) GetMapStringSfixed64() map[string]int64 { if x != nil { return x.MapStringSfixed64 } return nil } //go:nointerface func (x *TestFieldTrack) GetMapStringFloat() map[string]float32 { if x != nil { return x.MapStringFloat } return nil } //go:nointerface func (x *TestFieldTrack) GetMapStringDouble() map[string]float64 { if x != nil { return x.MapStringDouble } return nil } //go:nointerface func (x *TestFieldTrack) GetMapStringBool() map[string]bool { if x != nil { return x.MapStringBool } return nil } //go:nointerface func (x *TestFieldTrack) GetMapStringString() map[string]string { if x != nil { return x.MapStringString } return nil } //go:nointerface func (x *TestFieldTrack) GetMapStringBytes() map[string][]byte { if x != nil { return x.MapStringBytes } return nil } //go:nointerface func (x *TestFieldTrack) GetMapStringEnum() map[string]test.TestAllTypes_NestedEnum { if x != nil { return x.MapStringEnum } return nil } //go:nointerface func (x *TestFieldTrack) GetMapStringMessage() map[string]*test.TestAllTypes_NestedMessage { if x != nil { return x.MapStringMessage } return nil } //go:nointerface func (x *TestFieldTrack) GetWeakMessage1() proto.Message { var w protoimpl.WeakFields if x != nil { w = x.weakFields _ = x.XXX_weak_WeakMessage1 } return protoimpl.X.GetWeak(w, 100, "goproto.proto.test.weak.WeakImportMessage1") } //go:nointerface func (x *TestFieldTrack) GetWeakMessage2() proto.Message { var w protoimpl.WeakFields if x != nil { w = x.weakFields _ = x.XXX_weak_WeakMessage2 } return protoimpl.X.GetWeak(w, 101, "goproto.proto.test.weak.WeakImportMessage2") } //go:nointerface func (x *TestFieldTrack) SetWeakMessage1(v proto.Message) { var w *protoimpl.WeakFields if x != nil { w = &x.weakFields _ = x.XXX_weak_WeakMessage1 } protoimpl.X.SetWeak(w, 100, "goproto.proto.test.weak.WeakImportMessage1", v) } //go:nointerface func (x *TestFieldTrack) SetWeakMessage2(v proto.Message) { var w *protoimpl.WeakFields if x != nil { w = &x.weakFields _ = x.XXX_weak_WeakMessage2 } protoimpl.X.SetWeak(w, 101, "goproto.proto.test.weak.WeakImportMessage2", v) } var File_internal_testprotos_fieldtrack_fieldtrack_proto protoreflect.FileDescriptor var file_internal_testprotos_fieldtrack_fieldtrack_proto_rawDesc = []byte{ 0x0a, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x77, 0x65, 0x61, 0x6b, 0x31, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x77, 0x65, 0x61, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x77, 0x65, 0x61, 0x6b, 0x32, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x77, 0x65, 0x61, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xfe, 0x24, 0x0a, 0x0e, 0x54, 0x65, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x10, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x59, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x15, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x16, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x18, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x19, 0x20, 0x03, 0x28, 0x11, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x12, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x07, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x10, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x20, 0x20, 0x03, 0x28, 0x01, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x21, 0x20, 0x03, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x22, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x23, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x59, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x25, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x60, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x29, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x60, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x2a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x63, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x63, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x2c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x63, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x2d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x63, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x2e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x66, 0x0a, 0x12, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x2f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x66, 0x0a, 0x12, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x30, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x69, 0x0a, 0x13, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x31, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x69, 0x0a, 0x13, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x32, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x60, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x33, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x63, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x34, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x5d, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x35, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x63, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x36, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x60, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x37, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x5d, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x38, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x66, 0x0a, 0x12, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x39, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x54, 0x0a, 0x0d, 0x77, 0x65, 0x61, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x77, 0x65, 0x61, 0x6b, 0x2e, 0x57, 0x65, 0x61, 0x6b, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x42, 0x02, 0x50, 0x01, 0x52, 0x0c, 0x77, 0x65, 0x61, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x12, 0x54, 0x0a, 0x0d, 0x77, 0x65, 0x61, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x77, 0x65, 0x61, 0x6b, 0x2e, 0x57, 0x65, 0x61, 0x6b, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x42, 0x02, 0x50, 0x01, 0x52, 0x0c, 0x77, 0x65, 0x61, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x43, 0x0a, 0x15, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x43, 0x0a, 0x15, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x10, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x6d, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x41, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x73, 0x0a, 0x15, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x44, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x06, 0xa8, 0xe0, 0xcd, 0x8e, 0x01, 0x01, 0x42, 0x3b, 0x5a, 0x39, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x58, 0x02, 0x58, 0x03, } var ( file_internal_testprotos_fieldtrack_fieldtrack_proto_rawDescOnce sync.Once file_internal_testprotos_fieldtrack_fieldtrack_proto_rawDescData = file_internal_testprotos_fieldtrack_fieldtrack_proto_rawDesc ) func file_internal_testprotos_fieldtrack_fieldtrack_proto_rawDescGZIP() []byte { file_internal_testprotos_fieldtrack_fieldtrack_proto_rawDescOnce.Do(func() { file_internal_testprotos_fieldtrack_fieldtrack_proto_rawDescData = protoimpl.X.CompressGZIP(file_internal_testprotos_fieldtrack_fieldtrack_proto_rawDescData) }) return file_internal_testprotos_fieldtrack_fieldtrack_proto_rawDescData } var file_internal_testprotos_fieldtrack_fieldtrack_proto_msgTypes = make([]protoimpl.MessageInfo, 18) var file_internal_testprotos_fieldtrack_fieldtrack_proto_goTypes = []interface{}{ (*TestFieldTrack)(nil), // 0: goproto.proto.test.TestFieldTrack nil, // 1: goproto.proto.test.TestFieldTrack.MapStringInt32Entry nil, // 2: goproto.proto.test.TestFieldTrack.MapStringInt64Entry nil, // 3: goproto.proto.test.TestFieldTrack.MapStringUint32Entry nil, // 4: goproto.proto.test.TestFieldTrack.MapStringUint64Entry nil, // 5: goproto.proto.test.TestFieldTrack.MapStringSint32Entry nil, // 6: goproto.proto.test.TestFieldTrack.MapStringSint64Entry nil, // 7: goproto.proto.test.TestFieldTrack.MapStringFixed32Entry nil, // 8: goproto.proto.test.TestFieldTrack.MapStringFixed64Entry nil, // 9: goproto.proto.test.TestFieldTrack.MapStringSfixed32Entry nil, // 10: goproto.proto.test.TestFieldTrack.MapStringSfixed64Entry nil, // 11: goproto.proto.test.TestFieldTrack.MapStringFloatEntry nil, // 12: goproto.proto.test.TestFieldTrack.MapStringDoubleEntry nil, // 13: goproto.proto.test.TestFieldTrack.MapStringBoolEntry nil, // 14: goproto.proto.test.TestFieldTrack.MapStringStringEntry nil, // 15: goproto.proto.test.TestFieldTrack.MapStringBytesEntry nil, // 16: goproto.proto.test.TestFieldTrack.MapStringEnumEntry nil, // 17: goproto.proto.test.TestFieldTrack.MapStringMessageEntry (test.TestAllTypes_NestedEnum)(0), // 18: goproto.proto.test.TestAllTypes.NestedEnum (*test.TestAllTypes_NestedMessage)(nil), // 19: goproto.proto.test.TestAllTypes.NestedMessage } var file_internal_testprotos_fieldtrack_fieldtrack_proto_depIdxs = []int32{ 18, // 0: goproto.proto.test.TestFieldTrack.optional_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum 19, // 1: goproto.proto.test.TestFieldTrack.optional_message:type_name -> goproto.proto.test.TestAllTypes.NestedMessage 18, // 2: goproto.proto.test.TestFieldTrack.repeated_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum 19, // 3: goproto.proto.test.TestFieldTrack.repeated_message:type_name -> goproto.proto.test.TestAllTypes.NestedMessage 1, // 4: goproto.proto.test.TestFieldTrack.map_string_int32:type_name -> goproto.proto.test.TestFieldTrack.MapStringInt32Entry 2, // 5: goproto.proto.test.TestFieldTrack.map_string_int64:type_name -> goproto.proto.test.TestFieldTrack.MapStringInt64Entry 3, // 6: goproto.proto.test.TestFieldTrack.map_string_uint32:type_name -> goproto.proto.test.TestFieldTrack.MapStringUint32Entry 4, // 7: goproto.proto.test.TestFieldTrack.map_string_uint64:type_name -> goproto.proto.test.TestFieldTrack.MapStringUint64Entry 5, // 8: goproto.proto.test.TestFieldTrack.map_string_sint32:type_name -> goproto.proto.test.TestFieldTrack.MapStringSint32Entry 6, // 9: goproto.proto.test.TestFieldTrack.map_string_sint64:type_name -> goproto.proto.test.TestFieldTrack.MapStringSint64Entry 7, // 10: goproto.proto.test.TestFieldTrack.map_string_fixed32:type_name -> goproto.proto.test.TestFieldTrack.MapStringFixed32Entry 8, // 11: goproto.proto.test.TestFieldTrack.map_string_fixed64:type_name -> goproto.proto.test.TestFieldTrack.MapStringFixed64Entry 9, // 12: goproto.proto.test.TestFieldTrack.map_string_sfixed32:type_name -> goproto.proto.test.TestFieldTrack.MapStringSfixed32Entry 10, // 13: goproto.proto.test.TestFieldTrack.map_string_sfixed64:type_name -> goproto.proto.test.TestFieldTrack.MapStringSfixed64Entry 11, // 14: goproto.proto.test.TestFieldTrack.map_string_float:type_name -> goproto.proto.test.TestFieldTrack.MapStringFloatEntry 12, // 15: goproto.proto.test.TestFieldTrack.map_string_double:type_name -> goproto.proto.test.TestFieldTrack.MapStringDoubleEntry 13, // 16: goproto.proto.test.TestFieldTrack.map_string_bool:type_name -> goproto.proto.test.TestFieldTrack.MapStringBoolEntry 14, // 17: goproto.proto.test.TestFieldTrack.map_string_string:type_name -> goproto.proto.test.TestFieldTrack.MapStringStringEntry 15, // 18: goproto.proto.test.TestFieldTrack.map_string_bytes:type_name -> goproto.proto.test.TestFieldTrack.MapStringBytesEntry 16, // 19: goproto.proto.test.TestFieldTrack.map_string_enum:type_name -> goproto.proto.test.TestFieldTrack.MapStringEnumEntry 17, // 20: goproto.proto.test.TestFieldTrack.map_string_message:type_name -> goproto.proto.test.TestFieldTrack.MapStringMessageEntry 18, // 21: goproto.proto.test.TestFieldTrack.MapStringEnumEntry.value:type_name -> goproto.proto.test.TestAllTypes.NestedEnum 19, // 22: goproto.proto.test.TestFieldTrack.MapStringMessageEntry.value:type_name -> goproto.proto.test.TestAllTypes.NestedMessage 23, // [23:23] is the sub-list for method output_type 23, // [23:23] is the sub-list for method input_type 23, // [23:23] is the sub-list for extension type_name 23, // [23:23] is the sub-list for extension extendee 0, // [0:23] is the sub-list for field type_name } func init() { file_internal_testprotos_fieldtrack_fieldtrack_proto_init() } func file_internal_testprotos_fieldtrack_fieldtrack_proto_init() { if File_internal_testprotos_fieldtrack_fieldtrack_proto != nil { return } if !protoimpl.UnsafeEnabled { file_internal_testprotos_fieldtrack_fieldtrack_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestFieldTrack); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.weakFields case 3: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_fieldtrack_fieldtrack_proto_rawDesc, NumEnums: 0, NumMessages: 18, NumExtensions: 0, NumServices: 0, }, GoTypes: file_internal_testprotos_fieldtrack_fieldtrack_proto_goTypes, DependencyIndexes: file_internal_testprotos_fieldtrack_fieldtrack_proto_depIdxs, MessageInfos: file_internal_testprotos_fieldtrack_fieldtrack_proto_msgTypes, }.Build() File_internal_testprotos_fieldtrack_fieldtrack_proto = out.File file_internal_testprotos_fieldtrack_fieldtrack_proto_rawDesc = nil file_internal_testprotos_fieldtrack_fieldtrack_proto_goTypes = nil file_internal_testprotos_fieldtrack_fieldtrack_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/fieldtrack/fieldtrack.proto000066400000000000000000000064311411250152500275300ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.proto.test; import "internal/testprotos/annotation/annotation.proto"; import "internal/testprotos/test/test.proto"; import weak "internal/testprotos/test/weak1/test_weak.proto"; import weak "internal/testprotos/test/weak2/test_weak.proto"; option go_package = "google.golang.org/protobuf/internal/testprotos/fieldtrack"; message TestFieldTrack { option (go_annotation.track_field_use) = true; optional int32 optional_int32 = 1; optional int64 optional_int64 = 2; optional uint32 optional_uint32 = 3; optional uint64 optional_uint64 = 4; optional sint32 optional_sint32 = 5; optional sint64 optional_sint64 = 6; optional fixed32 optional_fixed32 = 7; optional fixed64 optional_fixed64 = 8; optional sfixed32 optional_sfixed32 = 9; optional sfixed64 optional_sfixed64 = 10; optional float optional_float = 11; optional double optional_double = 12; optional bool optional_bool = 13; optional string optional_string = 14; optional bytes optional_bytes = 15; optional goproto.proto.test.TestAllTypes.NestedEnum optional_enum = 16; optional goproto.proto.test.TestAllTypes.NestedMessage optional_message = 17; repeated int32 repeated_int32 = 21; repeated int64 repeated_int64 = 22; repeated uint32 repeated_uint32 = 23; repeated uint64 repeated_uint64 = 24; repeated sint32 repeated_sint32 = 25; repeated sint64 repeated_sint64 = 26; repeated fixed32 repeated_fixed32 = 27; repeated fixed64 repeated_fixed64 = 28; repeated sfixed32 repeated_sfixed32 = 29; repeated sfixed64 repeated_sfixed64 = 30; repeated float repeated_float = 31; repeated double repeated_double = 32; repeated bool repeated_bool = 33; repeated string repeated_string = 34; repeated bytes repeated_bytes = 35; repeated goproto.proto.test.TestAllTypes.NestedEnum repeated_enum = 36; repeated goproto.proto.test.TestAllTypes.NestedMessage repeated_message = 37; map map_string_int32 = 41; map map_string_int64 = 42; map map_string_uint32 = 43; map map_string_uint64 = 44; map map_string_sint32 = 45; map map_string_sint64 = 46; map map_string_fixed32 = 47; map map_string_fixed64 = 48; map map_string_sfixed32 = 49; map map_string_sfixed64 = 50; map map_string_float = 51; map map_string_double = 52; map map_string_bool = 53; map map_string_string = 54; map map_string_bytes = 55; map map_string_enum = 56; map map_string_message = 57; optional goproto.proto.test.weak.WeakImportMessage1 weak_message1 = 100 [weak=true]; optional goproto.proto.test.weak.WeakImportMessage2 weak_message2 = 101 [weak=true]; } golang-google-protobuf-1.27.1/internal/testprotos/fuzz/000077500000000000000000000000001411250152500232155ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/fuzz/fuzz.pb.go000066400000000000000000000315111411250152500251430ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/fuzz/fuzz.proto package fuzz import ( test "google.golang.org/protobuf/internal/testprotos/test" test3 "google.golang.org/protobuf/internal/testprotos/test3" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) // Fuzz is a container for every message we want to make available to the fuzzer. type Fuzz struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TestAllTypes *test.TestAllTypes `protobuf:"bytes,1,opt,name=test_all_types,json=testAllTypes" json:"test_all_types,omitempty"` TestAllExtensions *test.TestAllExtensions `protobuf:"bytes,2,opt,name=test_all_extensions,json=testAllExtensions" json:"test_all_extensions,omitempty"` TestRequired *test.TestRequired `protobuf:"bytes,3,opt,name=test_required,json=testRequired" json:"test_required,omitempty"` TestRequiredForeign *test.TestRequiredForeign `protobuf:"bytes,4,opt,name=test_required_foreign,json=testRequiredForeign" json:"test_required_foreign,omitempty"` TestRequiredGroupFields *test.TestRequiredGroupFields `protobuf:"bytes,5,opt,name=test_required_group_fields,json=testRequiredGroupFields" json:"test_required_group_fields,omitempty"` TestPackedTypes *test.TestPackedTypes `protobuf:"bytes,6,opt,name=test_packed_types,json=testPackedTypes" json:"test_packed_types,omitempty"` TestPackedExtensions *test.TestPackedExtensions `protobuf:"bytes,7,opt,name=test_packed_extensions,json=testPackedExtensions" json:"test_packed_extensions,omitempty"` TestAllTypes3 *test3.TestAllTypes `protobuf:"bytes,8,opt,name=test_all_types3,json=testAllTypes3" json:"test_all_types3,omitempty"` } func (x *Fuzz) Reset() { *x = Fuzz{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_fuzz_fuzz_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Fuzz) String() string { return protoimpl.X.MessageStringOf(x) } func (*Fuzz) ProtoMessage() {} func (x *Fuzz) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_fuzz_fuzz_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Fuzz.ProtoReflect.Descriptor instead. func (*Fuzz) Descriptor() ([]byte, []int) { return file_internal_testprotos_fuzz_fuzz_proto_rawDescGZIP(), []int{0} } func (x *Fuzz) GetTestAllTypes() *test.TestAllTypes { if x != nil { return x.TestAllTypes } return nil } func (x *Fuzz) GetTestAllExtensions() *test.TestAllExtensions { if x != nil { return x.TestAllExtensions } return nil } func (x *Fuzz) GetTestRequired() *test.TestRequired { if x != nil { return x.TestRequired } return nil } func (x *Fuzz) GetTestRequiredForeign() *test.TestRequiredForeign { if x != nil { return x.TestRequiredForeign } return nil } func (x *Fuzz) GetTestRequiredGroupFields() *test.TestRequiredGroupFields { if x != nil { return x.TestRequiredGroupFields } return nil } func (x *Fuzz) GetTestPackedTypes() *test.TestPackedTypes { if x != nil { return x.TestPackedTypes } return nil } func (x *Fuzz) GetTestPackedExtensions() *test.TestPackedExtensions { if x != nil { return x.TestPackedExtensions } return nil } func (x *Fuzz) GetTestAllTypes3() *test3.TestAllTypes { if x != nil { return x.TestAllTypes3 } return nil } var File_internal_testprotos_fuzz_fuzz_proto protoreflect.FileDescriptor var file_internal_testprotos_fuzz_fuzz_proto_rawDesc = []byte{ 0x0a, 0x23, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x66, 0x75, 0x7a, 0x7a, 0x2f, 0x66, 0x75, 0x7a, 0x7a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x66, 0x75, 0x7a, 0x7a, 0x1a, 0x23, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xaf, 0x05, 0x0a, 0x04, 0x46, 0x75, 0x7a, 0x7a, 0x12, 0x46, 0x0a, 0x0e, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x55, 0x0a, 0x13, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x11, 0x74, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x45, 0x0a, 0x0d, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x52, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x5b, 0x0a, 0x15, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x52, 0x13, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x12, 0x68, 0x0a, 0x1a, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, 0x17, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x4f, 0x0a, 0x11, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x0f, 0x74, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x5e, 0x0a, 0x16, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x14, 0x74, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x49, 0x0a, 0x0f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x33, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x0d, 0x74, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x33, 0x42, 0x35, 0x5a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x66, 0x75, 0x7a, 0x7a, } var ( file_internal_testprotos_fuzz_fuzz_proto_rawDescOnce sync.Once file_internal_testprotos_fuzz_fuzz_proto_rawDescData = file_internal_testprotos_fuzz_fuzz_proto_rawDesc ) func file_internal_testprotos_fuzz_fuzz_proto_rawDescGZIP() []byte { file_internal_testprotos_fuzz_fuzz_proto_rawDescOnce.Do(func() { file_internal_testprotos_fuzz_fuzz_proto_rawDescData = protoimpl.X.CompressGZIP(file_internal_testprotos_fuzz_fuzz_proto_rawDescData) }) return file_internal_testprotos_fuzz_fuzz_proto_rawDescData } var file_internal_testprotos_fuzz_fuzz_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_internal_testprotos_fuzz_fuzz_proto_goTypes = []interface{}{ (*Fuzz)(nil), // 0: goproto.proto.fuzz.Fuzz (*test.TestAllTypes)(nil), // 1: goproto.proto.test.TestAllTypes (*test.TestAllExtensions)(nil), // 2: goproto.proto.test.TestAllExtensions (*test.TestRequired)(nil), // 3: goproto.proto.test.TestRequired (*test.TestRequiredForeign)(nil), // 4: goproto.proto.test.TestRequiredForeign (*test.TestRequiredGroupFields)(nil), // 5: goproto.proto.test.TestRequiredGroupFields (*test.TestPackedTypes)(nil), // 6: goproto.proto.test.TestPackedTypes (*test.TestPackedExtensions)(nil), // 7: goproto.proto.test.TestPackedExtensions (*test3.TestAllTypes)(nil), // 8: goproto.proto.test3.TestAllTypes } var file_internal_testprotos_fuzz_fuzz_proto_depIdxs = []int32{ 1, // 0: goproto.proto.fuzz.Fuzz.test_all_types:type_name -> goproto.proto.test.TestAllTypes 2, // 1: goproto.proto.fuzz.Fuzz.test_all_extensions:type_name -> goproto.proto.test.TestAllExtensions 3, // 2: goproto.proto.fuzz.Fuzz.test_required:type_name -> goproto.proto.test.TestRequired 4, // 3: goproto.proto.fuzz.Fuzz.test_required_foreign:type_name -> goproto.proto.test.TestRequiredForeign 5, // 4: goproto.proto.fuzz.Fuzz.test_required_group_fields:type_name -> goproto.proto.test.TestRequiredGroupFields 6, // 5: goproto.proto.fuzz.Fuzz.test_packed_types:type_name -> goproto.proto.test.TestPackedTypes 7, // 6: goproto.proto.fuzz.Fuzz.test_packed_extensions:type_name -> goproto.proto.test.TestPackedExtensions 8, // 7: goproto.proto.fuzz.Fuzz.test_all_types3:type_name -> goproto.proto.test3.TestAllTypes 8, // [8:8] is the sub-list for method output_type 8, // [8:8] is the sub-list for method input_type 8, // [8:8] is the sub-list for extension type_name 8, // [8:8] is the sub-list for extension extendee 0, // [0:8] is the sub-list for field type_name } func init() { file_internal_testprotos_fuzz_fuzz_proto_init() } func file_internal_testprotos_fuzz_fuzz_proto_init() { if File_internal_testprotos_fuzz_fuzz_proto != nil { return } if !protoimpl.UnsafeEnabled { file_internal_testprotos_fuzz_fuzz_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Fuzz); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_fuzz_fuzz_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_internal_testprotos_fuzz_fuzz_proto_goTypes, DependencyIndexes: file_internal_testprotos_fuzz_fuzz_proto_depIdxs, MessageInfos: file_internal_testprotos_fuzz_fuzz_proto_msgTypes, }.Build() File_internal_testprotos_fuzz_fuzz_proto = out.File file_internal_testprotos_fuzz_fuzz_proto_rawDesc = nil file_internal_testprotos_fuzz_fuzz_proto_goTypes = nil file_internal_testprotos_fuzz_fuzz_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/fuzz/fuzz.proto000066400000000000000000000020341411250152500252770ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.proto.fuzz; import "internal/testprotos/test/test.proto"; import "internal/testprotos/test3/test.proto"; option go_package = "google.golang.org/protobuf/internal/testprotos/fuzz"; // Fuzz is a container for every message we want to make available to the fuzzer. message Fuzz { optional goproto.proto.test.TestAllTypes test_all_types = 1; optional goproto.proto.test.TestAllExtensions test_all_extensions = 2; optional goproto.proto.test.TestRequired test_required = 3; optional goproto.proto.test.TestRequiredForeign test_required_foreign = 4; optional goproto.proto.test.TestRequiredGroupFields test_required_group_fields = 5; optional goproto.proto.test.TestPackedTypes test_packed_types = 6; optional goproto.proto.test.TestPackedExtensions test_packed_extensions = 7; optional goproto.proto.test3.TestAllTypes test_all_types3 = 8; } golang-google-protobuf-1.27.1/internal/testprotos/irregular/000077500000000000000000000000001411250152500242135ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/irregular/irregular.go000066400000000000000000000071151411250152500265420ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package irregular import ( "google.golang.org/protobuf/encoding/prototext" "google.golang.org/protobuf/reflect/protodesc" pref "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/runtime/protoiface" "google.golang.org/protobuf/types/descriptorpb" ) type IrregularMessage struct { set bool value string } func (m *IrregularMessage) ProtoReflect() pref.Message { return (*message)(m) } type message IrregularMessage type messageType struct{} func (messageType) New() pref.Message { return &message{} } func (messageType) Zero() pref.Message { return (*message)(nil) } func (messageType) Descriptor() pref.MessageDescriptor { return fileDesc.Messages().Get(0) } func (m *message) New() pref.Message { return &message{} } func (m *message) Descriptor() pref.MessageDescriptor { return fileDesc.Messages().Get(0) } func (m *message) Type() pref.MessageType { return messageType{} } func (m *message) Interface() pref.ProtoMessage { return (*IrregularMessage)(m) } func (m *message) ProtoMethods() *protoiface.Methods { return nil } var fieldDescS = fileDesc.Messages().Get(0).Fields().Get(0) func (m *message) Range(f func(pref.FieldDescriptor, pref.Value) bool) { if m.set { f(fieldDescS, pref.ValueOf(m.value)) } } func (m *message) Has(fd pref.FieldDescriptor) bool { if fd == fieldDescS { return m.set } panic("invalid field descriptor") } func (m *message) Clear(fd pref.FieldDescriptor) { if fd == fieldDescS { m.value = "" m.set = false return } panic("invalid field descriptor") } func (m *message) Get(fd pref.FieldDescriptor) pref.Value { if fd == fieldDescS { return pref.ValueOf(m.value) } panic("invalid field descriptor") } func (m *message) Set(fd pref.FieldDescriptor, v pref.Value) { if fd == fieldDescS { m.value = v.String() m.set = true return } panic("invalid field descriptor") } func (m *message) Mutable(pref.FieldDescriptor) pref.Value { panic("invalid field descriptor") } func (m *message) NewField(pref.FieldDescriptor) pref.Value { panic("invalid field descriptor") } func (m *message) WhichOneof(pref.OneofDescriptor) pref.FieldDescriptor { panic("invalid oneof descriptor") } func (m *message) GetUnknown() pref.RawFields { return nil } func (m *message) SetUnknown(pref.RawFields) { return } func (m *message) IsValid() bool { return m != nil } var fileDesc = func() pref.FileDescriptor { p := &descriptorpb.FileDescriptorProto{} if err := prototext.Unmarshal([]byte(descriptorText), p); err != nil { panic(err) } file, err := protodesc.NewFile(p, nil) if err != nil { panic(err) } return file }() func file_internal_testprotos_irregular_irregular_proto_init() { _ = fileDesc } const descriptorText = ` name: "internal/testprotos/irregular/irregular.proto" package: "goproto.proto.thirdparty" message_type { name: "IrregularMessage" field { name: "s" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "s" } } options { go_package: "google.golang.org/protobuf/internal/testprotos/irregular" } ` type AberrantMessage int func (m AberrantMessage) ProtoMessage() {} func (m AberrantMessage) Reset() {} func (m AberrantMessage) String() string { return "" } func (m AberrantMessage) Marshal() ([]byte, error) { return nil, nil } func (m AberrantMessage) Unmarshal([]byte) error { return nil } golang-google-protobuf-1.27.1/internal/testprotos/irregular/irregular.proto000066400000000000000000000011171411250152500272740ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.proto.irregular; option go_package = "google.golang.org/protobuf/internal/testprotos/irregular"; // IrregularMessage is a message with an implementation that does not match the // usual structure of a generated message. message IrregularMessage { optional string s = 1; } // AberrantMessage is a message with an implementation with a non-struct underlying type. message AberrantMessage { } golang-google-protobuf-1.27.1/internal/testprotos/irregular/test.pb.go000066400000000000000000000427331411250152500261320ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // This file contains a message which references a message that implements the // proto.Message interface but does not have the structure of a normal generated // message. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/irregular/test.proto package irregular import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Message struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OptionalMessage *IrregularMessage `protobuf:"bytes,1,opt,name=optional_message,json=optionalMessage" json:"optional_message,omitempty"` RepeatedMessage []*IrregularMessage `protobuf:"bytes,2,rep,name=repeated_message,json=repeatedMessage" json:"repeated_message,omitempty"` RequiredMessage *IrregularMessage `protobuf:"bytes,3,req,name=required_message,json=requiredMessage" json:"required_message,omitempty"` MapMessage map[string]*IrregularMessage `protobuf:"bytes,4,rep,name=map_message,json=mapMessage" json:"map_message,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // Types that are assignable to Union: // *Message_OneofMessage // *Message_OneofAberrantMessage Union isMessage_Union `protobuf_oneof:"union"` OptionalAberrantMessage *AberrantMessage `protobuf:"bytes,7,opt,name=optional_aberrant_message,json=optionalAberrantMessage" json:"optional_aberrant_message,omitempty"` RepeatedAberrantMessage []*AberrantMessage `protobuf:"bytes,8,rep,name=repeated_aberrant_message,json=repeatedAberrantMessage" json:"repeated_aberrant_message,omitempty"` RequiredAberrantMessage *AberrantMessage `protobuf:"bytes,9,req,name=required_aberrant_message,json=requiredAberrantMessage" json:"required_aberrant_message,omitempty"` MapAberrantMessage map[string]*AberrantMessage `protobuf:"bytes,10,rep,name=map_aberrant_message,json=mapAberrantMessage" json:"map_aberrant_message,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` } func (x *Message) Reset() { *x = Message{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_irregular_test_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message) ProtoMessage() {} func (x *Message) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_irregular_test_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message.ProtoReflect.Descriptor instead. func (*Message) Descriptor() ([]byte, []int) { return file_internal_testprotos_irregular_test_proto_rawDescGZIP(), []int{0} } func (x *Message) GetOptionalMessage() *IrregularMessage { if x != nil { return x.OptionalMessage } return nil } func (x *Message) GetRepeatedMessage() []*IrregularMessage { if x != nil { return x.RepeatedMessage } return nil } func (x *Message) GetRequiredMessage() *IrregularMessage { if x != nil { return x.RequiredMessage } return nil } func (x *Message) GetMapMessage() map[string]*IrregularMessage { if x != nil { return x.MapMessage } return nil } func (m *Message) GetUnion() isMessage_Union { if m != nil { return m.Union } return nil } func (x *Message) GetOneofMessage() *IrregularMessage { if x, ok := x.GetUnion().(*Message_OneofMessage); ok { return x.OneofMessage } return nil } func (x *Message) GetOneofAberrantMessage() *AberrantMessage { if x, ok := x.GetUnion().(*Message_OneofAberrantMessage); ok { return x.OneofAberrantMessage } return nil } func (x *Message) GetOptionalAberrantMessage() *AberrantMessage { if x != nil { return x.OptionalAberrantMessage } return nil } func (x *Message) GetRepeatedAberrantMessage() []*AberrantMessage { if x != nil { return x.RepeatedAberrantMessage } return nil } func (x *Message) GetRequiredAberrantMessage() *AberrantMessage { if x != nil { return x.RequiredAberrantMessage } return nil } func (x *Message) GetMapAberrantMessage() map[string]*AberrantMessage { if x != nil { return x.MapAberrantMessage } return nil } type isMessage_Union interface { isMessage_Union() } type Message_OneofMessage struct { OneofMessage *IrregularMessage `protobuf:"bytes,5,opt,name=oneof_message,json=oneofMessage,oneof"` } type Message_OneofAberrantMessage struct { OneofAberrantMessage *AberrantMessage `protobuf:"bytes,6,opt,name=oneof_aberrant_message,json=oneofAberrantMessage,oneof"` } func (*Message_OneofMessage) isMessage_Union() {} func (*Message_OneofAberrantMessage) isMessage_Union() {} var File_internal_testprotos_irregular_test_proto protoreflect.FileDescriptor var file_internal_testprotos_irregular_test_proto_rawDesc = []byte{ 0x0a, 0x28, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x69, 0x72, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x72, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x1a, 0x2d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x69, 0x72, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x2f, 0x69, 0x72, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x94, 0x09, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x54, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x72, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x2e, 0x49, 0x72, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x54, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x72, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x2e, 0x49, 0x72, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x54, 0x0a, 0x10, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x72, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x2e, 0x49, 0x72, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x51, 0x0a, 0x0b, 0x6d, 0x61, 0x70, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x72, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x61, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x50, 0x0a, 0x0d, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x72, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x2e, 0x49, 0x72, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x60, 0x0a, 0x16, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x61, 0x62, 0x65, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x72, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x2e, 0x41, 0x62, 0x65, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x14, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x41, 0x62, 0x65, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x64, 0x0a, 0x19, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x61, 0x62, 0x65, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x72, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x2e, 0x41, 0x62, 0x65, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x62, 0x65, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x64, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x62, 0x65, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x72, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x2e, 0x41, 0x62, 0x65, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x62, 0x65, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x64, 0x0a, 0x19, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x62, 0x65, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x72, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x2e, 0x41, 0x62, 0x65, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x17, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x41, 0x62, 0x65, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x6a, 0x0a, 0x14, 0x6d, 0x61, 0x70, 0x5f, 0x61, 0x62, 0x65, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x72, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x41, 0x62, 0x65, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x6d, 0x61, 0x70, 0x41, 0x62, 0x65, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x68, 0x0a, 0x0f, 0x4d, 0x61, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x72, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x2e, 0x49, 0x72, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x6f, 0x0a, 0x17, 0x4d, 0x61, 0x70, 0x41, 0x62, 0x65, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x72, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x2e, 0x41, 0x62, 0x65, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x69, 0x72, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, } var ( file_internal_testprotos_irregular_test_proto_rawDescOnce sync.Once file_internal_testprotos_irregular_test_proto_rawDescData = file_internal_testprotos_irregular_test_proto_rawDesc ) func file_internal_testprotos_irregular_test_proto_rawDescGZIP() []byte { file_internal_testprotos_irregular_test_proto_rawDescOnce.Do(func() { file_internal_testprotos_irregular_test_proto_rawDescData = protoimpl.X.CompressGZIP(file_internal_testprotos_irregular_test_proto_rawDescData) }) return file_internal_testprotos_irregular_test_proto_rawDescData } var file_internal_testprotos_irregular_test_proto_msgTypes = make([]protoimpl.MessageInfo, 3) var file_internal_testprotos_irregular_test_proto_goTypes = []interface{}{ (*Message)(nil), // 0: goproto.proto.irregular.Message nil, // 1: goproto.proto.irregular.Message.MapMessageEntry nil, // 2: goproto.proto.irregular.Message.MapAberrantMessageEntry (*IrregularMessage)(nil), // 3: goproto.proto.irregular.IrregularMessage (*AberrantMessage)(nil), // 4: goproto.proto.irregular.AberrantMessage } var file_internal_testprotos_irregular_test_proto_depIdxs = []int32{ 3, // 0: goproto.proto.irregular.Message.optional_message:type_name -> goproto.proto.irregular.IrregularMessage 3, // 1: goproto.proto.irregular.Message.repeated_message:type_name -> goproto.proto.irregular.IrregularMessage 3, // 2: goproto.proto.irregular.Message.required_message:type_name -> goproto.proto.irregular.IrregularMessage 1, // 3: goproto.proto.irregular.Message.map_message:type_name -> goproto.proto.irregular.Message.MapMessageEntry 3, // 4: goproto.proto.irregular.Message.oneof_message:type_name -> goproto.proto.irregular.IrregularMessage 4, // 5: goproto.proto.irregular.Message.oneof_aberrant_message:type_name -> goproto.proto.irregular.AberrantMessage 4, // 6: goproto.proto.irregular.Message.optional_aberrant_message:type_name -> goproto.proto.irregular.AberrantMessage 4, // 7: goproto.proto.irregular.Message.repeated_aberrant_message:type_name -> goproto.proto.irregular.AberrantMessage 4, // 8: goproto.proto.irregular.Message.required_aberrant_message:type_name -> goproto.proto.irregular.AberrantMessage 2, // 9: goproto.proto.irregular.Message.map_aberrant_message:type_name -> goproto.proto.irregular.Message.MapAberrantMessageEntry 3, // 10: goproto.proto.irregular.Message.MapMessageEntry.value:type_name -> goproto.proto.irregular.IrregularMessage 4, // 11: goproto.proto.irregular.Message.MapAberrantMessageEntry.value:type_name -> goproto.proto.irregular.AberrantMessage 12, // [12:12] is the sub-list for method output_type 12, // [12:12] is the sub-list for method input_type 12, // [12:12] is the sub-list for extension type_name 12, // [12:12] is the sub-list for extension extendee 0, // [0:12] is the sub-list for field type_name } func init() { file_internal_testprotos_irregular_test_proto_init() } func file_internal_testprotos_irregular_test_proto_init() { if File_internal_testprotos_irregular_test_proto != nil { return } file_internal_testprotos_irregular_irregular_proto_init() if !protoimpl.UnsafeEnabled { file_internal_testprotos_irregular_test_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_internal_testprotos_irregular_test_proto_msgTypes[0].OneofWrappers = []interface{}{ (*Message_OneofMessage)(nil), (*Message_OneofAberrantMessage)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_irregular_test_proto_rawDesc, NumEnums: 0, NumMessages: 3, NumExtensions: 0, NumServices: 0, }, GoTypes: file_internal_testprotos_irregular_test_proto_goTypes, DependencyIndexes: file_internal_testprotos_irregular_test_proto_depIdxs, MessageInfos: file_internal_testprotos_irregular_test_proto_msgTypes, }.Build() File_internal_testprotos_irregular_test_proto = out.File file_internal_testprotos_irregular_test_proto_rawDesc = nil file_internal_testprotos_irregular_test_proto_goTypes = nil file_internal_testprotos_irregular_test_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/irregular/test.proto000066400000000000000000000020731411250152500262610ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // This file contains a message which references a message that implements the // proto.Message interface but does not have the structure of a normal generated // message. syntax = "proto2"; package goproto.proto.irregular; import "internal/testprotos/irregular/irregular.proto"; option go_package = "google.golang.org/protobuf/internal/testprotos/irregular"; message Message { optional IrregularMessage optional_message = 1; repeated IrregularMessage repeated_message = 2; required IrregularMessage required_message = 3; map map_message = 4; oneof union { IrregularMessage oneof_message = 5; AberrantMessage oneof_aberrant_message = 6; } optional AberrantMessage optional_aberrant_message = 7; repeated AberrantMessage repeated_aberrant_message = 8; required AberrantMessage required_aberrant_message = 9; map map_aberrant_message = 10; } golang-google-protobuf-1.27.1/internal/testprotos/legacy/000077500000000000000000000000001411250152500234635ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/legacy/bug1052/000077500000000000000000000000001411250152500245505ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/legacy/bug1052/bug1052.pb.go000066400000000000000000000064711411250152500265740ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/legacy/bug1052/bug1052.proto package bug1052 import ( fmt "fmt" math "math" proto "google.golang.org/protobuf/internal/protolegacy" descriptor "google.golang.org/protobuf/types/descriptorpb" ) // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. // A compilation error at this line likely means your copy of the // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package type Enum int32 const ( Enum_ZERO Enum = 0 ) var Enum_name = map[int32]string{ 0: "ZERO", } var Enum_value = map[string]int32{ "ZERO": 0, } func (x Enum) Enum() *Enum { p := new(Enum) *p = x return p } func (x Enum) String() string { return proto.EnumName(Enum_name, int32(x)) } func (x *Enum) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(Enum_value, data, "Enum") if err != nil { return err } *x = Enum(value) return nil } func (Enum) EnumDescriptor() ([]byte, []int) { return fileDescriptor_2d34d4f47c51af27, []int{0} } var E_ExtensionEnum = &proto.ExtensionDesc{ ExtendedType: (*descriptor.MethodOptions)(nil), ExtensionType: (*Enum)(nil), Field: 5000, Name: "goproto.proto.legacy.extension_enum", Tag: "varint,5000,opt,name=extension_enum,enum=goproto.proto.legacy.Enum", Filename: "internal/testprotos/legacy/bug1052/bug1052.proto", } func init() { proto.RegisterEnum("goproto.proto.legacy.Enum", Enum_name, Enum_value) proto.RegisterExtension(E_ExtensionEnum) } func init() { proto.RegisterFile("internal/testprotos/legacy/bug1052/bug1052.proto", fileDescriptor_2d34d4f47c51af27) } var fileDescriptor_2d34d4f47c51af27 = []byte{ // 200 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0xc8, 0xcc, 0x2b, 0x49, 0x2d, 0xca, 0x4b, 0xcc, 0xd1, 0x2f, 0x49, 0x2d, 0x2e, 0x29, 0x28, 0xca, 0x2f, 0xc9, 0x2f, 0xd6, 0xcf, 0x49, 0x4d, 0x4f, 0x4c, 0xae, 0xd4, 0x4f, 0x2a, 0x4d, 0x37, 0x34, 0x30, 0x35, 0x82, 0xd1, 0x7a, 0x60, 0x59, 0x21, 0x91, 0xf4, 0x7c, 0x30, 0x03, 0xc2, 0xd5, 0x83, 0xa8, 0x95, 0x52, 0x48, 0xcf, 0xcf, 0x4f, 0xcf, 0x49, 0xd5, 0x07, 0x0b, 0x26, 0x95, 0xa6, 0xe9, 0xa7, 0xa4, 0x16, 0x27, 0x17, 0x65, 0x16, 0x94, 0xe4, 0x17, 0x41, 0x14, 0x6a, 0x09, 0x70, 0xb1, 0xb8, 0xe6, 0x95, 0xe6, 0x0a, 0x71, 0x70, 0xb1, 0x44, 0xb9, 0x06, 0xf9, 0x0b, 0x30, 0x58, 0x25, 0x71, 0xf1, 0xa5, 0x56, 0x94, 0xa4, 0xe6, 0x15, 0x67, 0xe6, 0xe7, 0xc5, 0xa7, 0x82, 0xe4, 0xe4, 0xf4, 0x20, 0xc6, 0xe8, 0xc1, 0x8c, 0xd1, 0xf3, 0x4d, 0x2d, 0xc9, 0xc8, 0x4f, 0xf1, 0x2f, 0x28, 0xc9, 0xcc, 0xcf, 0x2b, 0x96, 0xe8, 0x50, 0x57, 0x60, 0xd4, 0xe0, 0x33, 0x92, 0xd2, 0xc3, 0xe6, 0x06, 0x3d, 0x90, 0xf1, 0x41, 0xbc, 0x70, 0x23, 0x41, 0x5c, 0x27, 0xfb, 0x28, 0x5b, 0xa8, 0x91, 0xe9, 0xf9, 0x39, 0x89, 0x79, 0xe9, 0x7a, 0xf9, 0x45, 0xe9, 0x08, 0x47, 0x12, 0xf6, 0x3c, 0x20, 0x00, 0x00, 0xff, 0xff, 0x1d, 0x9e, 0x09, 0x6e, 0x21, 0x01, 0x00, 0x00, } golang-google-protobuf-1.27.1/internal/testprotos/legacy/bug1052/bug1052.proto000066400000000000000000000012341411250152500267220ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // This file exercises a deadlock in registation of legacy extensions: // https://github.com/golang/protobuf/issues/1052 // // The corresponding .pb.go file was generated with protoc 3.11.3 and // protoc-gen-go 1.3.3. syntax = "proto2"; package goproto.proto.legacy; import "google/protobuf/descriptor.proto"; option go_package = "google.golang.org/protobuf/internal/testprotos/legacy/bug1052"; enum Enum { ZERO = 0; } extend google.protobuf.MethodOptions { optional Enum extension_enum = 5000; } golang-google-protobuf-1.27.1/internal/testprotos/legacy/bug1052/bug1052_test.go000066400000000000000000000004041411250152500272210ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package bug1052_test import ( _ "google.golang.org/protobuf/internal/testprotos/legacy/bug1052" ) golang-google-protobuf-1.27.1/internal/testprotos/legacy/legacy.pb.go000066400000000000000000000466551411250152500256760ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/legacy/legacy.proto package legacy import ( proto2_20160225_2fc053c5 "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20160225_2fc053c5" proto2_20160519_a4ab9ec5 "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20160519_a4ab9ec5" proto2_20180125_92554152 "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20180125_92554152" proto2_20180430_b4deda09 "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20180430_b4deda09" proto2_20180814_aa810b61 "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20180814_aa810b61" proto2_20190205_c823c79e "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20190205_c823c79e" proto3_20160225_2fc053c5 "google.golang.org/protobuf/internal/testprotos/legacy/proto3_20160225_2fc053c5" proto3_20160519_a4ab9ec5 "google.golang.org/protobuf/internal/testprotos/legacy/proto3_20160519_a4ab9ec5" proto3_20180125_92554152 "google.golang.org/protobuf/internal/testprotos/legacy/proto3_20180125_92554152" proto3_20180430_b4deda09 "google.golang.org/protobuf/internal/testprotos/legacy/proto3_20180430_b4deda09" proto3_20180814_aa810b61 "google.golang.org/protobuf/internal/testprotos/legacy/proto3_20180814_aa810b61" proto3_20190205_c823c79e "google.golang.org/protobuf/internal/testprotos/legacy/proto3_20190205_c823c79e" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Legacy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields F1 *proto2_20160225_2fc053c5.Message `protobuf:"bytes,1,opt,name=f1,proto3" json:"f1,omitempty"` F2 *proto3_20160225_2fc053c5.Message `protobuf:"bytes,2,opt,name=f2,proto3" json:"f2,omitempty"` F3 *proto2_20160519_a4ab9ec5.Message `protobuf:"bytes,3,opt,name=f3,proto3" json:"f3,omitempty"` F4 *proto3_20160519_a4ab9ec5.Message `protobuf:"bytes,4,opt,name=f4,proto3" json:"f4,omitempty"` F5 *proto2_20180125_92554152.Message `protobuf:"bytes,5,opt,name=f5,proto3" json:"f5,omitempty"` F6 *proto3_20180125_92554152.Message `protobuf:"bytes,6,opt,name=f6,proto3" json:"f6,omitempty"` F7 *proto2_20180430_b4deda09.Message `protobuf:"bytes,7,opt,name=f7,proto3" json:"f7,omitempty"` F8 *proto3_20180430_b4deda09.Message `protobuf:"bytes,8,opt,name=f8,proto3" json:"f8,omitempty"` F9 *proto2_20180814_aa810b61.Message `protobuf:"bytes,9,opt,name=f9,proto3" json:"f9,omitempty"` F10 *proto3_20180814_aa810b61.Message `protobuf:"bytes,10,opt,name=f10,proto3" json:"f10,omitempty"` F11 *proto2_20190205_c823c79e.Message `protobuf:"bytes,11,opt,name=f11,proto3" json:"f11,omitempty"` F12 *proto3_20190205_c823c79e.Message `protobuf:"bytes,12,opt,name=f12,proto3" json:"f12,omitempty"` } func (x *Legacy) Reset() { *x = Legacy{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_legacy_legacy_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Legacy) String() string { return protoimpl.X.MessageStringOf(x) } func (*Legacy) ProtoMessage() {} func (x *Legacy) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_legacy_legacy_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Legacy.ProtoReflect.Descriptor instead. func (*Legacy) Descriptor() ([]byte, []int) { return file_internal_testprotos_legacy_legacy_proto_rawDescGZIP(), []int{0} } func (x *Legacy) GetF1() *proto2_20160225_2fc053c5.Message { if x != nil { return x.F1 } return nil } func (x *Legacy) GetF2() *proto3_20160225_2fc053c5.Message { if x != nil { return x.F2 } return nil } func (x *Legacy) GetF3() *proto2_20160519_a4ab9ec5.Message { if x != nil { return x.F3 } return nil } func (x *Legacy) GetF4() *proto3_20160519_a4ab9ec5.Message { if x != nil { return x.F4 } return nil } func (x *Legacy) GetF5() *proto2_20180125_92554152.Message { if x != nil { return x.F5 } return nil } func (x *Legacy) GetF6() *proto3_20180125_92554152.Message { if x != nil { return x.F6 } return nil } func (x *Legacy) GetF7() *proto2_20180430_b4deda09.Message { if x != nil { return x.F7 } return nil } func (x *Legacy) GetF8() *proto3_20180430_b4deda09.Message { if x != nil { return x.F8 } return nil } func (x *Legacy) GetF9() *proto2_20180814_aa810b61.Message { if x != nil { return x.F9 } return nil } func (x *Legacy) GetF10() *proto3_20180814_aa810b61.Message { if x != nil { return x.F10 } return nil } func (x *Legacy) GetF11() *proto2_20190205_c823c79e.Message { if x != nil { return x.F11 } return nil } func (x *Legacy) GetF12() *proto3_20190205_c823c79e.Message { if x != nil { return x.F12 } return nil } var File_internal_testprotos_legacy_legacy_proto protoreflect.FileDescriptor var file_internal_testprotos_legacy_legacy_proto_rawDesc = []byte{ 0x0a, 0x27, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x1a, 0x3e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x5f, 0x32, 0x30, 0x31, 0x36, 0x30, 0x32, 0x32, 0x35, 0x5f, 0x32, 0x66, 0x63, 0x30, 0x35, 0x33, 0x63, 0x35, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x32, 0x30, 0x31, 0x36, 0x30, 0x32, 0x32, 0x35, 0x5f, 0x32, 0x66, 0x63, 0x30, 0x35, 0x33, 0x63, 0x35, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x5f, 0x32, 0x30, 0x31, 0x36, 0x30, 0x35, 0x31, 0x39, 0x5f, 0x61, 0x34, 0x61, 0x62, 0x39, 0x65, 0x63, 0x35, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x32, 0x30, 0x31, 0x36, 0x30, 0x35, 0x31, 0x39, 0x5f, 0x61, 0x34, 0x61, 0x62, 0x39, 0x65, 0x63, 0x35, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x5f, 0x32, 0x30, 0x31, 0x38, 0x30, 0x31, 0x32, 0x35, 0x5f, 0x39, 0x32, 0x35, 0x35, 0x34, 0x31, 0x35, 0x32, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x32, 0x30, 0x31, 0x38, 0x30, 0x31, 0x32, 0x35, 0x5f, 0x39, 0x32, 0x35, 0x35, 0x34, 0x31, 0x35, 0x32, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x5f, 0x32, 0x30, 0x31, 0x38, 0x30, 0x34, 0x33, 0x30, 0x5f, 0x62, 0x34, 0x64, 0x65, 0x64, 0x61, 0x30, 0x39, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x32, 0x30, 0x31, 0x38, 0x30, 0x34, 0x33, 0x30, 0x5f, 0x62, 0x34, 0x64, 0x65, 0x64, 0x61, 0x30, 0x39, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x5f, 0x32, 0x30, 0x31, 0x38, 0x30, 0x38, 0x31, 0x34, 0x5f, 0x61, 0x61, 0x38, 0x31, 0x30, 0x62, 0x36, 0x31, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x32, 0x30, 0x31, 0x38, 0x30, 0x38, 0x31, 0x34, 0x5f, 0x61, 0x61, 0x38, 0x31, 0x30, 0x62, 0x36, 0x31, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x5f, 0x32, 0x30, 0x31, 0x39, 0x30, 0x32, 0x30, 0x35, 0x5f, 0x63, 0x38, 0x32, 0x33, 0x63, 0x37, 0x39, 0x65, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x32, 0x30, 0x31, 0x39, 0x30, 0x32, 0x30, 0x35, 0x5f, 0x63, 0x38, 0x32, 0x33, 0x63, 0x37, 0x39, 0x65, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xde, 0x05, 0x0a, 0x06, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x3a, 0x0a, 0x02, 0x66, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x5f, 0x32, 0x30, 0x31, 0x36, 0x30, 0x32, 0x32, 0x35, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x02, 0x66, 0x31, 0x12, 0x3a, 0x0a, 0x02, 0x66, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x32, 0x30, 0x31, 0x36, 0x30, 0x32, 0x32, 0x35, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x02, 0x66, 0x32, 0x12, 0x3a, 0x0a, 0x02, 0x66, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x5f, 0x32, 0x30, 0x31, 0x36, 0x30, 0x35, 0x31, 0x39, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x02, 0x66, 0x33, 0x12, 0x3a, 0x0a, 0x02, 0x66, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x32, 0x30, 0x31, 0x36, 0x30, 0x35, 0x31, 0x39, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x02, 0x66, 0x34, 0x12, 0x3a, 0x0a, 0x02, 0x66, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x5f, 0x32, 0x30, 0x31, 0x38, 0x30, 0x31, 0x32, 0x35, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x02, 0x66, 0x35, 0x12, 0x3a, 0x0a, 0x02, 0x66, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x32, 0x30, 0x31, 0x38, 0x30, 0x31, 0x32, 0x35, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x02, 0x66, 0x36, 0x12, 0x3a, 0x0a, 0x02, 0x66, 0x37, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x5f, 0x32, 0x30, 0x31, 0x38, 0x30, 0x34, 0x33, 0x30, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x02, 0x66, 0x37, 0x12, 0x3a, 0x0a, 0x02, 0x66, 0x38, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x32, 0x30, 0x31, 0x38, 0x30, 0x34, 0x33, 0x30, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x02, 0x66, 0x38, 0x12, 0x3a, 0x0a, 0x02, 0x66, 0x39, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x5f, 0x32, 0x30, 0x31, 0x38, 0x30, 0x38, 0x31, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x02, 0x66, 0x39, 0x12, 0x3c, 0x0a, 0x03, 0x66, 0x31, 0x30, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x32, 0x30, 0x31, 0x38, 0x30, 0x38, 0x31, 0x34, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, 0x66, 0x31, 0x30, 0x12, 0x3c, 0x0a, 0x03, 0x66, 0x31, 0x31, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x5f, 0x32, 0x30, 0x31, 0x39, 0x30, 0x32, 0x30, 0x35, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, 0x66, 0x31, 0x31, 0x12, 0x3c, 0x0a, 0x03, 0x66, 0x31, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x32, 0x30, 0x31, 0x39, 0x30, 0x32, 0x30, 0x35, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, 0x66, 0x31, 0x32, 0x42, 0x37, 0x5a, 0x35, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_internal_testprotos_legacy_legacy_proto_rawDescOnce sync.Once file_internal_testprotos_legacy_legacy_proto_rawDescData = file_internal_testprotos_legacy_legacy_proto_rawDesc ) func file_internal_testprotos_legacy_legacy_proto_rawDescGZIP() []byte { file_internal_testprotos_legacy_legacy_proto_rawDescOnce.Do(func() { file_internal_testprotos_legacy_legacy_proto_rawDescData = protoimpl.X.CompressGZIP(file_internal_testprotos_legacy_legacy_proto_rawDescData) }) return file_internal_testprotos_legacy_legacy_proto_rawDescData } var file_internal_testprotos_legacy_legacy_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_internal_testprotos_legacy_legacy_proto_goTypes = []interface{}{ (*Legacy)(nil), // 0: google.golang.org.Legacy (*proto2_20160225_2fc053c5.Message)(nil), // 1: google.golang.org.proto2_20160225.Message (*proto3_20160225_2fc053c5.Message)(nil), // 2: google.golang.org.proto3_20160225.Message (*proto2_20160519_a4ab9ec5.Message)(nil), // 3: google.golang.org.proto2_20160519.Message (*proto3_20160519_a4ab9ec5.Message)(nil), // 4: google.golang.org.proto3_20160519.Message (*proto2_20180125_92554152.Message)(nil), // 5: google.golang.org.proto2_20180125.Message (*proto3_20180125_92554152.Message)(nil), // 6: google.golang.org.proto3_20180125.Message (*proto2_20180430_b4deda09.Message)(nil), // 7: google.golang.org.proto2_20180430.Message (*proto3_20180430_b4deda09.Message)(nil), // 8: google.golang.org.proto3_20180430.Message (*proto2_20180814_aa810b61.Message)(nil), // 9: google.golang.org.proto2_20180814.Message (*proto3_20180814_aa810b61.Message)(nil), // 10: google.golang.org.proto3_20180814.Message (*proto2_20190205_c823c79e.Message)(nil), // 11: google.golang.org.proto2_20190205.Message (*proto3_20190205_c823c79e.Message)(nil), // 12: google.golang.org.proto3_20190205.Message } var file_internal_testprotos_legacy_legacy_proto_depIdxs = []int32{ 1, // 0: google.golang.org.Legacy.f1:type_name -> google.golang.org.proto2_20160225.Message 2, // 1: google.golang.org.Legacy.f2:type_name -> google.golang.org.proto3_20160225.Message 3, // 2: google.golang.org.Legacy.f3:type_name -> google.golang.org.proto2_20160519.Message 4, // 3: google.golang.org.Legacy.f4:type_name -> google.golang.org.proto3_20160519.Message 5, // 4: google.golang.org.Legacy.f5:type_name -> google.golang.org.proto2_20180125.Message 6, // 5: google.golang.org.Legacy.f6:type_name -> google.golang.org.proto3_20180125.Message 7, // 6: google.golang.org.Legacy.f7:type_name -> google.golang.org.proto2_20180430.Message 8, // 7: google.golang.org.Legacy.f8:type_name -> google.golang.org.proto3_20180430.Message 9, // 8: google.golang.org.Legacy.f9:type_name -> google.golang.org.proto2_20180814.Message 10, // 9: google.golang.org.Legacy.f10:type_name -> google.golang.org.proto3_20180814.Message 11, // 10: google.golang.org.Legacy.f11:type_name -> google.golang.org.proto2_20190205.Message 12, // 11: google.golang.org.Legacy.f12:type_name -> google.golang.org.proto3_20190205.Message 12, // [12:12] is the sub-list for method output_type 12, // [12:12] is the sub-list for method input_type 12, // [12:12] is the sub-list for extension type_name 12, // [12:12] is the sub-list for extension extendee 0, // [0:12] is the sub-list for field type_name } func init() { file_internal_testprotos_legacy_legacy_proto_init() } func file_internal_testprotos_legacy_legacy_proto_init() { if File_internal_testprotos_legacy_legacy_proto != nil { return } if !protoimpl.UnsafeEnabled { file_internal_testprotos_legacy_legacy_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Legacy); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_legacy_legacy_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_internal_testprotos_legacy_legacy_proto_goTypes, DependencyIndexes: file_internal_testprotos_legacy_legacy_proto_depIdxs, MessageInfos: file_internal_testprotos_legacy_legacy_proto_msgTypes, }.Build() File_internal_testprotos_legacy_legacy_proto = out.File file_internal_testprotos_legacy_legacy_proto_rawDesc = nil file_internal_testprotos_legacy_legacy_proto_goTypes = nil file_internal_testprotos_legacy_legacy_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/legacy/legacy.proto000066400000000000000000000076401411250152500260230ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package google.golang.org; option go_package = "google.golang.org/protobuf/internal/testprotos/legacy"; // This file imports other files generated from a build of protoc-gen-go // locked to a specific version. For all imports, they were built using // Go v1.13 and protoc v3.11.12. This package is used to test compatibility with // checked in generated code that cannot easily change. // As such, there should never be a need to update these generated files. // // The specific version of protoc-gen-go used is encoded in the file path: // ${NAME}_${COMMIT_DATE}_${COMMIT_HASH}/test.proto // // To avoid a dependency on the v1 module, we perform the following // import path replacement to all generated .pb.go files: // "github.com/golang/protobuf/proto" => "google.golang.org/protobuf/internal/protolegacy" // The oldest supported version of protoc-gen-go is 2fc053c5, // which finished adding descriptor methods to all protobuf types. import "internal/testprotos/legacy/proto2_20160225_2fc053c5/test.proto"; // v0.0.0 import "internal/testprotos/legacy/proto3_20160225_2fc053c5/test.proto"; // v0.0.0 // Changes from 20160225 to 20160519: // * Nothing noteworthy to generated code import "internal/testprotos/legacy/proto2_20160519_a4ab9ec5/test.proto"; // v0.0.0 import "internal/testprotos/legacy/proto3_20160519_a4ab9ec5/test.proto"; // v0.0.0 // Changes from 20160519 to 20180125: // * Removed ExtensionMap method and XXX_extensions field from messages // * Added embedded proto.XXX_InternalExtensions field to messages // * Added proto.ExtensionDesc.Filename field // * Added registration for file descriptor // * Added Get accessor methods for all fields in proto3 messages // * Proto3 repeated primitives are packed by default import "internal/testprotos/legacy/proto2_20180125_92554152/test.proto"; // v1.0.0 import "internal/testprotos/legacy/proto3_20180125_92554152/test.proto"; // v1.0.0 // Changes from 20180125 to 20180430: // * Added XXX_unrecognized field to proto3 messages // * Added XXX_NoUnkeyedLiteral field to messages // * Added XXX_sizecache field to messages // * Added XXX_Unmarshal method to messages // * Added XXX_Marshal method to messages // * Added XXX_Merge method to messages // * Added XXX_Size method to messages // * Added XXX_DiscardUnknown method to messages // * Added dependency on proto.InternalMessageInfo for table-driven logic // * Added registration for map types import "internal/testprotos/legacy/proto2_20180430_b4deda09/test.proto"; // v1.1.0 import "internal/testprotos/legacy/proto3_20180430_b4deda09/test.proto"; // v1.1.0 // Changes from 20180430 to 20180814: // * Added "proto3" struct tag to all fields in proto3 messages import "internal/testprotos/legacy/proto2_20180814_aa810b61/test.proto"; // v1.2.0 import "internal/testprotos/legacy/proto3_20180814_aa810b61/test.proto"; // v1.2.0 // Changes from 20180814 to 20190205: // * Changed the XXX_OneofFuncs method to XXX_OneofWrappers // * Various syntactical changes to make the output more consistent import "internal/testprotos/legacy/proto2_20190205_c823c79e/test.proto"; // v1.3.0 import "internal/testprotos/legacy/proto3_20190205_c823c79e/test.proto"; // v1.3.0 message Legacy { google.golang.org.proto2_20160225.Message f1 = 1; google.golang.org.proto3_20160225.Message f2 = 2; google.golang.org.proto2_20160519.Message f3 = 3; google.golang.org.proto3_20160519.Message f4 = 4; google.golang.org.proto2_20180125.Message f5 = 5; google.golang.org.proto3_20180125.Message f6 = 6; google.golang.org.proto2_20180430.Message f7 = 7; google.golang.org.proto3_20180430.Message f8 = 8; google.golang.org.proto2_20180814.Message f9 = 9; google.golang.org.proto3_20180814.Message f10 = 10; google.golang.org.proto2_20190205.Message f11 = 11; google.golang.org.proto3_20190205.Message f12 = 12; } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto2_20160225_2fc053c5/000077500000000000000000000000001411250152500271035ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto2_20160225_2fc053c5/test.pb.go000066400000000000000000004507111411250152500310210ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. // source: proto2_20160225_2fc053c5/test.proto // DO NOT EDIT! /* Package proto2_20160225_2fc053c5 is a generated protocol buffer package. It is generated from these files: proto2_20160225_2fc053c5/test.proto It has these top-level messages: SiblingMessage Message */ package proto2_20160225_2fc053c5 import proto "google.golang.org/protobuf/internal/protolegacy" import fmt "fmt" import math "math" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. const _ = proto.ProtoPackageIsVersion1 type SiblingEnum int32 const ( SiblingEnum_ALPHA SiblingEnum = 0 SiblingEnum_BRAVO SiblingEnum = 10 SiblingEnum_CHARLIE SiblingEnum = 200 ) var SiblingEnum_name = map[int32]string{ 0: "ALPHA", 10: "BRAVO", 200: "CHARLIE", } var SiblingEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 10, "CHARLIE": 200, } func (x SiblingEnum) Enum() *SiblingEnum { p := new(SiblingEnum) *p = x return p } func (x SiblingEnum) String() string { return proto.EnumName(SiblingEnum_name, int32(x)) } func (x *SiblingEnum) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(SiblingEnum_value, data, "SiblingEnum") if err != nil { return err } *x = SiblingEnum(value) return nil } func (SiblingEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } type Message_ChildEnum int32 const ( Message_ALPHA Message_ChildEnum = 0 Message_BRAVO Message_ChildEnum = 1 Message_CHARLIE Message_ChildEnum = 2 ) var Message_ChildEnum_name = map[int32]string{ 0: "ALPHA", 1: "BRAVO", 2: "CHARLIE", } var Message_ChildEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 1, "CHARLIE": 2, } func (x Message_ChildEnum) Enum() *Message_ChildEnum { p := new(Message_ChildEnum) *p = x return p } func (x Message_ChildEnum) String() string { return proto.EnumName(Message_ChildEnum_name, int32(x)) } func (x *Message_ChildEnum) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(Message_ChildEnum_value, data, "Message_ChildEnum") if err != nil { return err } *x = Message_ChildEnum(value) return nil } func (Message_ChildEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 0} } type SiblingMessage struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` F4 *Message `protobuf:"bytes,4,opt,name=f4" json:"f4,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *SiblingMessage) Reset() { *m = SiblingMessage{} } func (m *SiblingMessage) String() string { return proto.CompactTextString(m) } func (*SiblingMessage) ProtoMessage() {} func (*SiblingMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } func (m *SiblingMessage) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *SiblingMessage) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *SiblingMessage) GetF3() []string { if m != nil { return m.F3 } return nil } func (m *SiblingMessage) GetF4() *Message { if m != nil { return m.F4 } return nil } type Message struct { Namedgroup *Message_NamedGroup `protobuf:"group,1,opt,name=NamedGroup,json=namedgroup" json:"namedgroup,omitempty"` // Optional fields. OptionalBool *bool `protobuf:"varint,100,opt,name=optional_bool,json=optionalBool" json:"optional_bool,omitempty"` OptionalInt32 *int32 `protobuf:"varint,101,opt,name=optional_int32,json=optionalInt32" json:"optional_int32,omitempty"` OptionalSint32 *int32 `protobuf:"zigzag32,102,opt,name=optional_sint32,json=optionalSint32" json:"optional_sint32,omitempty"` OptionalUint32 *uint32 `protobuf:"varint,103,opt,name=optional_uint32,json=optionalUint32" json:"optional_uint32,omitempty"` OptionalInt64 *int64 `protobuf:"varint,104,opt,name=optional_int64,json=optionalInt64" json:"optional_int64,omitempty"` OptionalSint64 *int64 `protobuf:"zigzag64,105,opt,name=optional_sint64,json=optionalSint64" json:"optional_sint64,omitempty"` OptionalUint64 *uint64 `protobuf:"varint,106,opt,name=optional_uint64,json=optionalUint64" json:"optional_uint64,omitempty"` OptionalFixed32 *uint32 `protobuf:"fixed32,107,opt,name=optional_fixed32,json=optionalFixed32" json:"optional_fixed32,omitempty"` OptionalSfixed32 *int32 `protobuf:"fixed32,108,opt,name=optional_sfixed32,json=optionalSfixed32" json:"optional_sfixed32,omitempty"` OptionalFloat *float32 `protobuf:"fixed32,109,opt,name=optional_float,json=optionalFloat" json:"optional_float,omitempty"` OptionalFixed64 *uint64 `protobuf:"fixed64,110,opt,name=optional_fixed64,json=optionalFixed64" json:"optional_fixed64,omitempty"` OptionalSfixed64 *int64 `protobuf:"fixed64,111,opt,name=optional_sfixed64,json=optionalSfixed64" json:"optional_sfixed64,omitempty"` OptionalDouble *float64 `protobuf:"fixed64,112,opt,name=optional_double,json=optionalDouble" json:"optional_double,omitempty"` OptionalString *string `protobuf:"bytes,113,opt,name=optional_string,json=optionalString" json:"optional_string,omitempty"` OptionalBytes []byte `protobuf:"bytes,114,opt,name=optional_bytes,json=optionalBytes" json:"optional_bytes,omitempty"` OptionalChildEnum *Message_ChildEnum `protobuf:"varint,115,opt,name=optional_child_enum,json=optionalChildEnum,enum=google.golang.org.proto2_20160225.Message_ChildEnum" json:"optional_child_enum,omitempty"` OptionalChildMessage *Message_ChildMessage `protobuf:"bytes,116,opt,name=optional_child_message,json=optionalChildMessage" json:"optional_child_message,omitempty"` OptionalNamedGroup *Message_NamedGroup `protobuf:"bytes,117,opt,name=optional_named_group,json=optionalNamedGroup" json:"optional_named_group,omitempty"` OptionalSiblingEnum *SiblingEnum `protobuf:"varint,118,opt,name=optional_sibling_enum,json=optionalSiblingEnum,enum=google.golang.org.proto2_20160225.SiblingEnum" json:"optional_sibling_enum,omitempty"` OptionalSiblingMessage *SiblingMessage `protobuf:"bytes,119,opt,name=optional_sibling_message,json=optionalSiblingMessage" json:"optional_sibling_message,omitempty"` Optionalgroup *Message_OptionalGroup `protobuf:"group,120,opt,name=OptionalGroup,json=optionalgroup" json:"optionalgroup,omitempty"` // Optional default fields. DefaultedBool *bool `protobuf:"varint,200,opt,name=defaulted_bool,json=defaultedBool,def=1" json:"defaulted_bool,omitempty"` DefaultedInt32 *int32 `protobuf:"varint,201,opt,name=defaulted_int32,json=defaultedInt32,def=-12345" json:"defaulted_int32,omitempty"` DefaultedSint32 *int32 `protobuf:"zigzag32,202,opt,name=defaulted_sint32,json=defaultedSint32,def=-3200" json:"defaulted_sint32,omitempty"` DefaultedUint32 *uint32 `protobuf:"varint,203,opt,name=defaulted_uint32,json=defaultedUint32,def=3200" json:"defaulted_uint32,omitempty"` DefaultedInt64 *int64 `protobuf:"varint,204,opt,name=defaulted_int64,json=defaultedInt64,def=-123456789" json:"defaulted_int64,omitempty"` DefaultedSint64 *int64 `protobuf:"zigzag64,205,opt,name=defaulted_sint64,json=defaultedSint64,def=-6400" json:"defaulted_sint64,omitempty"` DefaultedUint64 *uint64 `protobuf:"varint,206,opt,name=defaulted_uint64,json=defaultedUint64,def=6400" json:"defaulted_uint64,omitempty"` DefaultedFixed32 *uint32 `protobuf:"fixed32,207,opt,name=defaulted_fixed32,json=defaultedFixed32,def=320000" json:"defaulted_fixed32,omitempty"` DefaultedSfixed32 *int32 `protobuf:"fixed32,208,opt,name=defaulted_sfixed32,json=defaultedSfixed32,def=-320000" json:"defaulted_sfixed32,omitempty"` DefaultedFloat *float32 `protobuf:"fixed32,209,opt,name=defaulted_float,json=defaultedFloat,def=3.14159" json:"defaulted_float,omitempty"` DefaultedFixed64 *uint64 `protobuf:"fixed64,210,opt,name=defaulted_fixed64,json=defaultedFixed64,def=640000" json:"defaulted_fixed64,omitempty"` DefaultedSfixed64 *int64 `protobuf:"fixed64,211,opt,name=defaulted_sfixed64,json=defaultedSfixed64,def=-640000" json:"defaulted_sfixed64,omitempty"` DefaultedDouble *float64 `protobuf:"fixed64,212,opt,name=defaulted_double,json=defaultedDouble,def=3.14159265359" json:"defaulted_double,omitempty"` DefaultedString *string `protobuf:"bytes,213,opt,name=defaulted_string,json=defaultedString,def=hello, \"world!\"\n" json:"defaulted_string,omitempty"` DefaultedBytes []byte `protobuf:"bytes,214,opt,name=defaulted_bytes,json=defaultedBytes,def=dead\\336\\255\\276\\357beef" json:"defaulted_bytes,omitempty"` DefaultedChildEnum *Message_ChildEnum `protobuf:"varint,215,opt,name=defaulted_child_enum,json=defaultedChildEnum,enum=google.golang.org.proto2_20160225.Message_ChildEnum,def=0" json:"defaulted_child_enum,omitempty"` DefaultedSiblingEnum *SiblingEnum `protobuf:"varint,216,opt,name=defaulted_sibling_enum,json=defaultedSiblingEnum,enum=google.golang.org.proto2_20160225.SiblingEnum,def=0" json:"defaulted_sibling_enum,omitempty"` // Required fields. RequiredBool *bool `protobuf:"varint,300,req,name=required_bool,json=requiredBool" json:"required_bool,omitempty"` RequiredInt32 *int32 `protobuf:"varint,301,req,name=required_int32,json=requiredInt32" json:"required_int32,omitempty"` RequiredSint32 *int32 `protobuf:"zigzag32,302,req,name=required_sint32,json=requiredSint32" json:"required_sint32,omitempty"` RequiredUint32 *uint32 `protobuf:"varint,303,req,name=required_uint32,json=requiredUint32" json:"required_uint32,omitempty"` RequiredInt64 *int64 `protobuf:"varint,304,req,name=required_int64,json=requiredInt64" json:"required_int64,omitempty"` RequiredSint64 *int64 `protobuf:"zigzag64,305,req,name=required_sint64,json=requiredSint64" json:"required_sint64,omitempty"` RequiredUint64 *uint64 `protobuf:"varint,306,req,name=required_uint64,json=requiredUint64" json:"required_uint64,omitempty"` RequiredFixed32 *uint32 `protobuf:"fixed32,307,req,name=required_fixed32,json=requiredFixed32" json:"required_fixed32,omitempty"` RequiredSfixed32 *int32 `protobuf:"fixed32,308,req,name=required_sfixed32,json=requiredSfixed32" json:"required_sfixed32,omitempty"` RequiredFloat *float32 `protobuf:"fixed32,309,req,name=required_float,json=requiredFloat" json:"required_float,omitempty"` RequiredFixed64 *uint64 `protobuf:"fixed64,310,req,name=required_fixed64,json=requiredFixed64" json:"required_fixed64,omitempty"` RequiredSfixed64 *int64 `protobuf:"fixed64,311,req,name=required_sfixed64,json=requiredSfixed64" json:"required_sfixed64,omitempty"` RequiredDouble *float64 `protobuf:"fixed64,312,req,name=required_double,json=requiredDouble" json:"required_double,omitempty"` RequiredString *string `protobuf:"bytes,313,req,name=required_string,json=requiredString" json:"required_string,omitempty"` RequiredBytes []byte `protobuf:"bytes,314,req,name=required_bytes,json=requiredBytes" json:"required_bytes,omitempty"` RequiredChildEnum *Message_ChildEnum `protobuf:"varint,315,req,name=required_child_enum,json=requiredChildEnum,enum=google.golang.org.proto2_20160225.Message_ChildEnum" json:"required_child_enum,omitempty"` RequiredChildMessage *Message_ChildMessage `protobuf:"bytes,316,req,name=required_child_message,json=requiredChildMessage" json:"required_child_message,omitempty"` RequiredNamedGroup *Message_NamedGroup `protobuf:"bytes,317,req,name=required_named_group,json=requiredNamedGroup" json:"required_named_group,omitempty"` RequiredSiblingEnum *SiblingEnum `protobuf:"varint,318,req,name=required_sibling_enum,json=requiredSiblingEnum,enum=google.golang.org.proto2_20160225.SiblingEnum" json:"required_sibling_enum,omitempty"` RequiredSiblingMessage *SiblingMessage `protobuf:"bytes,319,req,name=required_sibling_message,json=requiredSiblingMessage" json:"required_sibling_message,omitempty"` Requiredgroup *Message_RequiredGroup `protobuf:"group,320,req,name=RequiredGroup,json=requiredgroup" json:"requiredgroup,omitempty"` // Required default fields. RequiredDefaultedBool *bool `protobuf:"varint,400,req,name=required_defaulted_bool,json=requiredDefaultedBool,def=1" json:"required_defaulted_bool,omitempty"` RequiredDefaultedInt32 *int32 `protobuf:"varint,401,req,name=required_defaulted_int32,json=requiredDefaultedInt32,def=-12345" json:"required_defaulted_int32,omitempty"` RequiredDefaultedSint32 *int32 `protobuf:"zigzag32,402,req,name=required_defaulted_sint32,json=requiredDefaultedSint32,def=-3200" json:"required_defaulted_sint32,omitempty"` RequiredDefaultedUint32 *uint32 `protobuf:"varint,403,req,name=required_defaulted_uint32,json=requiredDefaultedUint32,def=3200" json:"required_defaulted_uint32,omitempty"` RequiredDefaultedInt64 *int64 `protobuf:"varint,404,req,name=required_defaulted_int64,json=requiredDefaultedInt64,def=-123456789" json:"required_defaulted_int64,omitempty"` RequiredDefaultedSint64 *int64 `protobuf:"zigzag64,405,req,name=required_defaulted_sint64,json=requiredDefaultedSint64,def=-6400" json:"required_defaulted_sint64,omitempty"` RequiredDefaultedUint64 *uint64 `protobuf:"varint,406,req,name=required_defaulted_uint64,json=requiredDefaultedUint64,def=6400" json:"required_defaulted_uint64,omitempty"` RequiredDefaultedFixed32 *uint32 `protobuf:"fixed32,407,req,name=required_defaulted_fixed32,json=requiredDefaultedFixed32,def=320000" json:"required_defaulted_fixed32,omitempty"` RequiredDefaultedSfixed32 *int32 `protobuf:"fixed32,408,req,name=required_defaulted_sfixed32,json=requiredDefaultedSfixed32,def=-320000" json:"required_defaulted_sfixed32,omitempty"` RequiredDefaultedFloat *float32 `protobuf:"fixed32,409,req,name=required_defaulted_float,json=requiredDefaultedFloat,def=3.14159" json:"required_defaulted_float,omitempty"` RequiredDefaultedFixed64 *uint64 `protobuf:"fixed64,410,req,name=required_defaulted_fixed64,json=requiredDefaultedFixed64,def=640000" json:"required_defaulted_fixed64,omitempty"` RequiredDefaultedSfixed64 *int64 `protobuf:"fixed64,411,req,name=required_defaulted_sfixed64,json=requiredDefaultedSfixed64,def=-640000" json:"required_defaulted_sfixed64,omitempty"` RequiredDefaultedDouble *float64 `protobuf:"fixed64,412,req,name=required_defaulted_double,json=requiredDefaultedDouble,def=3.14159265359" json:"required_defaulted_double,omitempty"` RequiredDefaultedString *string `protobuf:"bytes,413,req,name=required_defaulted_string,json=requiredDefaultedString,def=hello, \"world!\"\n" json:"required_defaulted_string,omitempty"` RequiredDefaultedBytes []byte `protobuf:"bytes,414,req,name=required_defaulted_bytes,json=requiredDefaultedBytes,def=dead\\336\\255\\276\\357beef" json:"required_defaulted_bytes,omitempty"` RequiredDefaultedChildEnum *Message_ChildEnum `protobuf:"varint,415,req,name=required_defaulted_child_enum,json=requiredDefaultedChildEnum,enum=google.golang.org.proto2_20160225.Message_ChildEnum,def=0" json:"required_defaulted_child_enum,omitempty"` RequiredDefaultedSiblingEnum *SiblingEnum `protobuf:"varint,416,req,name=required_defaulted_sibling_enum,json=requiredDefaultedSiblingEnum,enum=google.golang.org.proto2_20160225.SiblingEnum,def=0" json:"required_defaulted_sibling_enum,omitempty"` // Repeated fields. RepeatedBool []bool `protobuf:"varint,500,rep,name=repeated_bool,json=repeatedBool" json:"repeated_bool,omitempty"` RepeatedInt32 []int32 `protobuf:"varint,501,rep,name=repeated_int32,json=repeatedInt32" json:"repeated_int32,omitempty"` RepeatedSint32 []int32 `protobuf:"zigzag32,502,rep,name=repeated_sint32,json=repeatedSint32" json:"repeated_sint32,omitempty"` RepeatedUint32 []uint32 `protobuf:"varint,503,rep,name=repeated_uint32,json=repeatedUint32" json:"repeated_uint32,omitempty"` RepeatedInt64 []int64 `protobuf:"varint,504,rep,name=repeated_int64,json=repeatedInt64" json:"repeated_int64,omitempty"` RepeatedSint64 []int64 `protobuf:"zigzag64,505,rep,name=repeated_sint64,json=repeatedSint64" json:"repeated_sint64,omitempty"` RepeatedUint64 []uint64 `protobuf:"varint,506,rep,name=repeated_uint64,json=repeatedUint64" json:"repeated_uint64,omitempty"` RepeatedFixed32 []uint32 `protobuf:"fixed32,507,rep,name=repeated_fixed32,json=repeatedFixed32" json:"repeated_fixed32,omitempty"` RepeatedSfixed32 []int32 `protobuf:"fixed32,508,rep,name=repeated_sfixed32,json=repeatedSfixed32" json:"repeated_sfixed32,omitempty"` RepeatedFloat []float32 `protobuf:"fixed32,509,rep,name=repeated_float,json=repeatedFloat" json:"repeated_float,omitempty"` RepeatedFixed64 []uint64 `protobuf:"fixed64,510,rep,name=repeated_fixed64,json=repeatedFixed64" json:"repeated_fixed64,omitempty"` RepeatedSfixed64 []int64 `protobuf:"fixed64,511,rep,name=repeated_sfixed64,json=repeatedSfixed64" json:"repeated_sfixed64,omitempty"` RepeatedDouble []float64 `protobuf:"fixed64,512,rep,name=repeated_double,json=repeatedDouble" json:"repeated_double,omitempty"` RepeatedString []string `protobuf:"bytes,513,rep,name=repeated_string,json=repeatedString" json:"repeated_string,omitempty"` RepeatedBytes [][]byte `protobuf:"bytes,514,rep,name=repeated_bytes,json=repeatedBytes" json:"repeated_bytes,omitempty"` RepeatedChildEnum []Message_ChildEnum `protobuf:"varint,515,rep,name=repeated_child_enum,json=repeatedChildEnum,enum=google.golang.org.proto2_20160225.Message_ChildEnum" json:"repeated_child_enum,omitempty"` RepeatedChildMessage []*Message_ChildMessage `protobuf:"bytes,516,rep,name=repeated_child_message,json=repeatedChildMessage" json:"repeated_child_message,omitempty"` RepeatedNamedGroup []*Message_NamedGroup `protobuf:"bytes,517,rep,name=repeated_named_group,json=repeatedNamedGroup" json:"repeated_named_group,omitempty"` RepeatedSiblingEnum []SiblingEnum `protobuf:"varint,518,rep,name=repeated_sibling_enum,json=repeatedSiblingEnum,enum=google.golang.org.proto2_20160225.SiblingEnum" json:"repeated_sibling_enum,omitempty"` RepeatedSiblingMessage []*SiblingMessage `protobuf:"bytes,519,rep,name=repeated_sibling_message,json=repeatedSiblingMessage" json:"repeated_sibling_message,omitempty"` Repeatedgroup []*Message_RepeatedGroup `protobuf:"group,520,rep,name=RepeatedGroup,json=repeatedgroup" json:"repeatedgroup,omitempty"` // Map fields. MapBoolBool map[bool]bool `protobuf:"bytes,600,rep,name=map_bool_bool,json=mapBoolBool" json:"map_bool_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolInt32 map[bool]int32 `protobuf:"bytes,601,rep,name=map_bool_int32,json=mapBoolInt32" json:"map_bool_int32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolSint32 map[bool]int32 `protobuf:"bytes,602,rep,name=map_bool_sint32,json=mapBoolSint32" json:"map_bool_sint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` MapBoolUint32 map[bool]uint32 `protobuf:"bytes,603,rep,name=map_bool_uint32,json=mapBoolUint32" json:"map_bool_uint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolInt64 map[bool]int64 `protobuf:"bytes,604,rep,name=map_bool_int64,json=mapBoolInt64" json:"map_bool_int64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolSint64 map[bool]int64 `protobuf:"bytes,605,rep,name=map_bool_sint64,json=mapBoolSint64" json:"map_bool_sint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` MapBoolUint64 map[bool]uint64 `protobuf:"bytes,606,rep,name=map_bool_uint64,json=mapBoolUint64" json:"map_bool_uint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolFixed32 map[bool]uint32 `protobuf:"bytes,607,rep,name=map_bool_fixed32,json=mapBoolFixed32" json:"map_bool_fixed32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolSfixed32 map[bool]int32 `protobuf:"bytes,608,rep,name=map_bool_sfixed32,json=mapBoolSfixed32" json:"map_bool_sfixed32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolFloat map[bool]float32 `protobuf:"bytes,609,rep,name=map_bool_float,json=mapBoolFloat" json:"map_bool_float,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolFixed64 map[bool]uint64 `protobuf:"bytes,610,rep,name=map_bool_fixed64,json=mapBoolFixed64" json:"map_bool_fixed64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolSfixed64 map[bool]int64 `protobuf:"bytes,611,rep,name=map_bool_sfixed64,json=mapBoolSfixed64" json:"map_bool_sfixed64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolDouble map[bool]float64 `protobuf:"bytes,612,rep,name=map_bool_double,json=mapBoolDouble" json:"map_bool_double,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolString map[bool]string `protobuf:"bytes,613,rep,name=map_bool_string,json=mapBoolString" json:"map_bool_string,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolBytes map[bool][]byte `protobuf:"bytes,614,rep,name=map_bool_bytes,json=mapBoolBytes" json:"map_bool_bytes,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolChildEnum map[bool]Message_ChildEnum `protobuf:"bytes,615,rep,name=map_bool_child_enum,json=mapBoolChildEnum" json:"map_bool_child_enum,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.golang.org.proto2_20160225.Message_ChildEnum"` MapBoolChildMessage map[bool]*Message_ChildMessage `protobuf:"bytes,616,rep,name=map_bool_child_message,json=mapBoolChildMessage" json:"map_bool_child_message,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolNamedGroup map[bool]*Message_NamedGroup `protobuf:"bytes,617,rep,name=map_bool_named_group,json=mapBoolNamedGroup" json:"map_bool_named_group,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolSiblingEnum map[bool]SiblingEnum `protobuf:"bytes,618,rep,name=map_bool_sibling_enum,json=mapBoolSiblingEnum" json:"map_bool_sibling_enum,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.golang.org.proto2_20160225.SiblingEnum"` MapBoolSiblingMessage map[bool]*SiblingMessage `protobuf:"bytes,619,rep,name=map_bool_sibling_message,json=mapBoolSiblingMessage" json:"map_bool_sibling_message,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapInt32Bool map[int32]bool `protobuf:"bytes,620,rep,name=map_int32_bool,json=mapInt32Bool" json:"map_int32_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapSint32Bool map[int32]bool `protobuf:"bytes,621,rep,name=map_sint32_bool,json=mapSint32Bool" json:"map_sint32_bool,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint32Bool map[uint32]bool `protobuf:"bytes,622,rep,name=map_uint32_bool,json=mapUint32Bool" json:"map_uint32_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapInt64Bool map[int64]bool `protobuf:"bytes,623,rep,name=map_int64_bool,json=mapInt64Bool" json:"map_int64_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapSint64Bool map[int64]bool `protobuf:"bytes,624,rep,name=map_sint64_bool,json=mapSint64Bool" json:"map_sint64_bool,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint64Bool map[uint64]bool `protobuf:"bytes,625,rep,name=map_uint64_bool,json=mapUint64Bool" json:"map_uint64_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapFixed32Bool map[uint32]bool `protobuf:"bytes,626,rep,name=map_fixed32_bool,json=mapFixed32Bool" json:"map_fixed32_bool,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapStringBool map[string]bool `protobuf:"bytes,627,rep,name=map_string_bool,json=mapStringBool" json:"map_string_bool,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // Oneof fields. // // Types that are valid to be assigned to OneofUnion: // *Message_OneofBool // *Message_OneofInt32 // *Message_OneofSint32 // *Message_OneofUint32 // *Message_OneofInt64 // *Message_OneofSint64 // *Message_OneofUint64 // *Message_OneofFixed32 // *Message_OneofSfixed32 // *Message_OneofFloat // *Message_OneofFixed64 // *Message_OneofSfixed64 // *Message_OneofDouble // *Message_OneofString // *Message_OneofBytes // *Message_OneofChildEnum // *Message_OneofChildMessage // *Message_OneofNamedGroup // *Message_OneofSiblingEnum // *Message_OneofSiblingMessage // *Message_Oneofgroup // *Message_OneofString1 // *Message_OneofString2 // *Message_OneofString3 OneofUnion isMessage_OneofUnion `protobuf_oneof:"oneof_union"` // Oneof default fields. // // Types that are valid to be assigned to OneofDefaultedUnion: // *Message_OneofDefaultedBool // *Message_OneofDefaultedInt32 // *Message_OneofDefaultedSint32 // *Message_OneofDefaultedUint32 // *Message_OneofDefaultedInt64 // *Message_OneofDefaultedSint64 // *Message_OneofDefaultedUint64 // *Message_OneofDefaultedFixed32 // *Message_OneofDefaultedSfixed32 // *Message_OneofDefaultedFloat // *Message_OneofDefaultedFixed64 // *Message_OneofDefaultedSfixed64 // *Message_OneofDefaultedDouble // *Message_OneofDefaultedString // *Message_OneofDefaultedBytes // *Message_OneofDefaultedChildEnum // *Message_OneofDefaultedSiblingEnum OneofDefaultedUnion isMessage_OneofDefaultedUnion `protobuf_oneof:"oneof_defaulted_union"` XXX_extensions map[int32]proto.Extension `json:"-"` XXX_unrecognized []byte `json:"-"` } func (m *Message) Reset() { *m = Message{} } func (m *Message) String() string { return proto.CompactTextString(m) } func (*Message) ProtoMessage() {} func (*Message) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } var extRange_Message = []proto.ExtensionRange{ {10000, 536870911}, } func (*Message) ExtensionRangeArray() []proto.ExtensionRange { return extRange_Message } func (m *Message) ExtensionMap() map[int32]proto.Extension { if m.XXX_extensions == nil { m.XXX_extensions = make(map[int32]proto.Extension) } return m.XXX_extensions } const Default_Message_DefaultedBool bool = true const Default_Message_DefaultedInt32 int32 = -12345 const Default_Message_DefaultedSint32 int32 = -3200 const Default_Message_DefaultedUint32 uint32 = 3200 const Default_Message_DefaultedInt64 int64 = -123456789 const Default_Message_DefaultedSint64 int64 = -6400 const Default_Message_DefaultedUint64 uint64 = 6400 const Default_Message_DefaultedFixed32 uint32 = 320000 const Default_Message_DefaultedSfixed32 int32 = -320000 const Default_Message_DefaultedFloat float32 = 3.14159 const Default_Message_DefaultedFixed64 uint64 = 640000 const Default_Message_DefaultedSfixed64 int64 = -640000 const Default_Message_DefaultedDouble float64 = 3.14159265359 const Default_Message_DefaultedString string = "hello, \"world!\"\n" var Default_Message_DefaultedBytes []byte = []byte("dead\\336\\255\\276\\357beef") const Default_Message_DefaultedChildEnum Message_ChildEnum = Message_ALPHA const Default_Message_DefaultedSiblingEnum SiblingEnum = SiblingEnum_ALPHA const Default_Message_RequiredDefaultedBool bool = true const Default_Message_RequiredDefaultedInt32 int32 = -12345 const Default_Message_RequiredDefaultedSint32 int32 = -3200 const Default_Message_RequiredDefaultedUint32 uint32 = 3200 const Default_Message_RequiredDefaultedInt64 int64 = -123456789 const Default_Message_RequiredDefaultedSint64 int64 = -6400 const Default_Message_RequiredDefaultedUint64 uint64 = 6400 const Default_Message_RequiredDefaultedFixed32 uint32 = 320000 const Default_Message_RequiredDefaultedSfixed32 int32 = -320000 const Default_Message_RequiredDefaultedFloat float32 = 3.14159 const Default_Message_RequiredDefaultedFixed64 uint64 = 640000 const Default_Message_RequiredDefaultedSfixed64 int64 = -640000 const Default_Message_RequiredDefaultedDouble float64 = 3.14159265359 const Default_Message_RequiredDefaultedString string = "hello, \"world!\"\n" var Default_Message_RequiredDefaultedBytes []byte = []byte("dead\\336\\255\\276\\357beef") const Default_Message_RequiredDefaultedChildEnum Message_ChildEnum = Message_ALPHA const Default_Message_RequiredDefaultedSiblingEnum SiblingEnum = SiblingEnum_ALPHA const Default_Message_OneofDefaultedBool bool = true const Default_Message_OneofDefaultedInt32 int32 = -12345 const Default_Message_OneofDefaultedSint32 int32 = -3200 const Default_Message_OneofDefaultedUint32 uint32 = 3200 const Default_Message_OneofDefaultedInt64 int64 = -123456789 const Default_Message_OneofDefaultedSint64 int64 = -6400 const Default_Message_OneofDefaultedUint64 uint64 = 6400 const Default_Message_OneofDefaultedFixed32 uint32 = 320000 const Default_Message_OneofDefaultedSfixed32 int32 = -320000 const Default_Message_OneofDefaultedFloat float32 = 3.14159 const Default_Message_OneofDefaultedFixed64 uint64 = 640000 const Default_Message_OneofDefaultedSfixed64 int64 = -640000 const Default_Message_OneofDefaultedDouble float64 = 3.14159265359 const Default_Message_OneofDefaultedString string = "hello, \"world!\"\n" var Default_Message_OneofDefaultedBytes []byte = []byte("dead\\336\\255\\276\\357beef") const Default_Message_OneofDefaultedChildEnum Message_ChildEnum = Message_ALPHA const Default_Message_OneofDefaultedSiblingEnum SiblingEnum = SiblingEnum_ALPHA type isMessage_OneofUnion interface{ isMessage_OneofUnion() } type isMessage_OneofDefaultedUnion interface{ isMessage_OneofDefaultedUnion() } type Message_OneofBool struct { OneofBool bool `protobuf:"varint,700,opt,name=oneof_bool,json=oneofBool,oneof"` } type Message_OneofInt32 struct { OneofInt32 int32 `protobuf:"varint,701,opt,name=oneof_int32,json=oneofInt32,oneof"` } type Message_OneofSint32 struct { OneofSint32 int32 `protobuf:"zigzag32,702,opt,name=oneof_sint32,json=oneofSint32,oneof"` } type Message_OneofUint32 struct { OneofUint32 uint32 `protobuf:"varint,703,opt,name=oneof_uint32,json=oneofUint32,oneof"` } type Message_OneofInt64 struct { OneofInt64 int64 `protobuf:"varint,704,opt,name=oneof_int64,json=oneofInt64,oneof"` } type Message_OneofSint64 struct { OneofSint64 int64 `protobuf:"zigzag64,705,opt,name=oneof_sint64,json=oneofSint64,oneof"` } type Message_OneofUint64 struct { OneofUint64 uint64 `protobuf:"varint,706,opt,name=oneof_uint64,json=oneofUint64,oneof"` } type Message_OneofFixed32 struct { OneofFixed32 uint32 `protobuf:"fixed32,707,opt,name=oneof_fixed32,json=oneofFixed32,oneof"` } type Message_OneofSfixed32 struct { OneofSfixed32 int32 `protobuf:"fixed32,708,opt,name=oneof_sfixed32,json=oneofSfixed32,oneof"` } type Message_OneofFloat struct { OneofFloat float32 `protobuf:"fixed32,709,opt,name=oneof_float,json=oneofFloat,oneof"` } type Message_OneofFixed64 struct { OneofFixed64 uint64 `protobuf:"fixed64,710,opt,name=oneof_fixed64,json=oneofFixed64,oneof"` } type Message_OneofSfixed64 struct { OneofSfixed64 int64 `protobuf:"fixed64,711,opt,name=oneof_sfixed64,json=oneofSfixed64,oneof"` } type Message_OneofDouble struct { OneofDouble float64 `protobuf:"fixed64,712,opt,name=oneof_double,json=oneofDouble,oneof"` } type Message_OneofString struct { OneofString string `protobuf:"bytes,713,opt,name=oneof_string,json=oneofString,oneof"` } type Message_OneofBytes struct { OneofBytes []byte `protobuf:"bytes,714,opt,name=oneof_bytes,json=oneofBytes,oneof"` } type Message_OneofChildEnum struct { OneofChildEnum Message_ChildEnum `protobuf:"varint,715,opt,name=oneof_child_enum,json=oneofChildEnum,enum=google.golang.org.proto2_20160225.Message_ChildEnum,oneof"` } type Message_OneofChildMessage struct { OneofChildMessage *Message_ChildMessage `protobuf:"bytes,716,opt,name=oneof_child_message,json=oneofChildMessage,oneof"` } type Message_OneofNamedGroup struct { OneofNamedGroup *Message_NamedGroup `protobuf:"bytes,717,opt,name=oneof_named_group,json=oneofNamedGroup,oneof"` } type Message_OneofSiblingEnum struct { OneofSiblingEnum SiblingEnum `protobuf:"varint,718,opt,name=oneof_sibling_enum,json=oneofSiblingEnum,enum=google.golang.org.proto2_20160225.SiblingEnum,oneof"` } type Message_OneofSiblingMessage struct { OneofSiblingMessage *SiblingMessage `protobuf:"bytes,719,opt,name=oneof_sibling_message,json=oneofSiblingMessage,oneof"` } type Message_Oneofgroup struct { Oneofgroup *Message_OneofGroup `protobuf:"group,720,opt,name=OneofGroup,json=oneofgroup,oneof"` } type Message_OneofString1 struct { OneofString1 string `protobuf:"bytes,721,opt,name=oneof_string1,json=oneofString1,oneof"` } type Message_OneofString2 struct { OneofString2 string `protobuf:"bytes,722,opt,name=oneof_string2,json=oneofString2,oneof"` } type Message_OneofString3 struct { OneofString3 string `protobuf:"bytes,723,opt,name=oneof_string3,json=oneofString3,oneof"` } type Message_OneofDefaultedBool struct { OneofDefaultedBool bool `protobuf:"varint,800,opt,name=oneof_defaulted_bool,json=oneofDefaultedBool,oneof,def=1"` } type Message_OneofDefaultedInt32 struct { OneofDefaultedInt32 int32 `protobuf:"varint,801,opt,name=oneof_defaulted_int32,json=oneofDefaultedInt32,oneof,def=-12345"` } type Message_OneofDefaultedSint32 struct { OneofDefaultedSint32 int32 `protobuf:"zigzag32,802,opt,name=oneof_defaulted_sint32,json=oneofDefaultedSint32,oneof,def=-3200"` } type Message_OneofDefaultedUint32 struct { OneofDefaultedUint32 uint32 `protobuf:"varint,803,opt,name=oneof_defaulted_uint32,json=oneofDefaultedUint32,oneof,def=3200"` } type Message_OneofDefaultedInt64 struct { OneofDefaultedInt64 int64 `protobuf:"varint,804,opt,name=oneof_defaulted_int64,json=oneofDefaultedInt64,oneof,def=-123456789"` } type Message_OneofDefaultedSint64 struct { OneofDefaultedSint64 int64 `protobuf:"zigzag64,805,opt,name=oneof_defaulted_sint64,json=oneofDefaultedSint64,oneof,def=-6400"` } type Message_OneofDefaultedUint64 struct { OneofDefaultedUint64 uint64 `protobuf:"varint,806,opt,name=oneof_defaulted_uint64,json=oneofDefaultedUint64,oneof,def=6400"` } type Message_OneofDefaultedFixed32 struct { OneofDefaultedFixed32 uint32 `protobuf:"fixed32,807,opt,name=oneof_defaulted_fixed32,json=oneofDefaultedFixed32,oneof,def=320000"` } type Message_OneofDefaultedSfixed32 struct { OneofDefaultedSfixed32 int32 `protobuf:"fixed32,808,opt,name=oneof_defaulted_sfixed32,json=oneofDefaultedSfixed32,oneof,def=-320000"` } type Message_OneofDefaultedFloat struct { OneofDefaultedFloat float32 `protobuf:"fixed32,809,opt,name=oneof_defaulted_float,json=oneofDefaultedFloat,oneof,def=3.14159"` } type Message_OneofDefaultedFixed64 struct { OneofDefaultedFixed64 uint64 `protobuf:"fixed64,810,opt,name=oneof_defaulted_fixed64,json=oneofDefaultedFixed64,oneof,def=640000"` } type Message_OneofDefaultedSfixed64 struct { OneofDefaultedSfixed64 int64 `protobuf:"fixed64,811,opt,name=oneof_defaulted_sfixed64,json=oneofDefaultedSfixed64,oneof,def=-640000"` } type Message_OneofDefaultedDouble struct { OneofDefaultedDouble float64 `protobuf:"fixed64,812,opt,name=oneof_defaulted_double,json=oneofDefaultedDouble,oneof,def=3.14159265359"` } type Message_OneofDefaultedString struct { OneofDefaultedString string `protobuf:"bytes,813,opt,name=oneof_defaulted_string,json=oneofDefaultedString,oneof,def=hello, \"world!\"\n"` } type Message_OneofDefaultedBytes struct { OneofDefaultedBytes []byte `protobuf:"bytes,814,opt,name=oneof_defaulted_bytes,json=oneofDefaultedBytes,oneof,def=dead\\336\\255\\276\\357beef"` } type Message_OneofDefaultedChildEnum struct { OneofDefaultedChildEnum Message_ChildEnum `protobuf:"varint,815,opt,name=oneof_defaulted_child_enum,json=oneofDefaultedChildEnum,enum=google.golang.org.proto2_20160225.Message_ChildEnum,oneof,def=0"` } type Message_OneofDefaultedSiblingEnum struct { OneofDefaultedSiblingEnum SiblingEnum `protobuf:"varint,816,opt,name=oneof_defaulted_sibling_enum,json=oneofDefaultedSiblingEnum,enum=google.golang.org.proto2_20160225.SiblingEnum,oneof,def=0"` } func (*Message_OneofBool) isMessage_OneofUnion() {} func (*Message_OneofInt32) isMessage_OneofUnion() {} func (*Message_OneofSint32) isMessage_OneofUnion() {} func (*Message_OneofUint32) isMessage_OneofUnion() {} func (*Message_OneofInt64) isMessage_OneofUnion() {} func (*Message_OneofSint64) isMessage_OneofUnion() {} func (*Message_OneofUint64) isMessage_OneofUnion() {} func (*Message_OneofFixed32) isMessage_OneofUnion() {} func (*Message_OneofSfixed32) isMessage_OneofUnion() {} func (*Message_OneofFloat) isMessage_OneofUnion() {} func (*Message_OneofFixed64) isMessage_OneofUnion() {} func (*Message_OneofSfixed64) isMessage_OneofUnion() {} func (*Message_OneofDouble) isMessage_OneofUnion() {} func (*Message_OneofString) isMessage_OneofUnion() {} func (*Message_OneofBytes) isMessage_OneofUnion() {} func (*Message_OneofChildEnum) isMessage_OneofUnion() {} func (*Message_OneofChildMessage) isMessage_OneofUnion() {} func (*Message_OneofNamedGroup) isMessage_OneofUnion() {} func (*Message_OneofSiblingEnum) isMessage_OneofUnion() {} func (*Message_OneofSiblingMessage) isMessage_OneofUnion() {} func (*Message_Oneofgroup) isMessage_OneofUnion() {} func (*Message_OneofString1) isMessage_OneofUnion() {} func (*Message_OneofString2) isMessage_OneofUnion() {} func (*Message_OneofString3) isMessage_OneofUnion() {} func (*Message_OneofDefaultedBool) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedInt32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSint32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedUint32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedInt64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSint64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedUint64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedFixed32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSfixed32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedFloat) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedFixed64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSfixed64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedDouble) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedString) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedBytes) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedChildEnum) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSiblingEnum) isMessage_OneofDefaultedUnion() {} func (m *Message) GetOneofUnion() isMessage_OneofUnion { if m != nil { return m.OneofUnion } return nil } func (m *Message) GetOneofDefaultedUnion() isMessage_OneofDefaultedUnion { if m != nil { return m.OneofDefaultedUnion } return nil } func (m *Message) GetNamedgroup() *Message_NamedGroup { if m != nil { return m.Namedgroup } return nil } func (m *Message) GetOptionalBool() bool { if m != nil && m.OptionalBool != nil { return *m.OptionalBool } return false } func (m *Message) GetOptionalInt32() int32 { if m != nil && m.OptionalInt32 != nil { return *m.OptionalInt32 } return 0 } func (m *Message) GetOptionalSint32() int32 { if m != nil && m.OptionalSint32 != nil { return *m.OptionalSint32 } return 0 } func (m *Message) GetOptionalUint32() uint32 { if m != nil && m.OptionalUint32 != nil { return *m.OptionalUint32 } return 0 } func (m *Message) GetOptionalInt64() int64 { if m != nil && m.OptionalInt64 != nil { return *m.OptionalInt64 } return 0 } func (m *Message) GetOptionalSint64() int64 { if m != nil && m.OptionalSint64 != nil { return *m.OptionalSint64 } return 0 } func (m *Message) GetOptionalUint64() uint64 { if m != nil && m.OptionalUint64 != nil { return *m.OptionalUint64 } return 0 } func (m *Message) GetOptionalFixed32() uint32 { if m != nil && m.OptionalFixed32 != nil { return *m.OptionalFixed32 } return 0 } func (m *Message) GetOptionalSfixed32() int32 { if m != nil && m.OptionalSfixed32 != nil { return *m.OptionalSfixed32 } return 0 } func (m *Message) GetOptionalFloat() float32 { if m != nil && m.OptionalFloat != nil { return *m.OptionalFloat } return 0 } func (m *Message) GetOptionalFixed64() uint64 { if m != nil && m.OptionalFixed64 != nil { return *m.OptionalFixed64 } return 0 } func (m *Message) GetOptionalSfixed64() int64 { if m != nil && m.OptionalSfixed64 != nil { return *m.OptionalSfixed64 } return 0 } func (m *Message) GetOptionalDouble() float64 { if m != nil && m.OptionalDouble != nil { return *m.OptionalDouble } return 0 } func (m *Message) GetOptionalString() string { if m != nil && m.OptionalString != nil { return *m.OptionalString } return "" } func (m *Message) GetOptionalBytes() []byte { if m != nil { return m.OptionalBytes } return nil } func (m *Message) GetOptionalChildEnum() Message_ChildEnum { if m != nil && m.OptionalChildEnum != nil { return *m.OptionalChildEnum } return Message_ALPHA } func (m *Message) GetOptionalChildMessage() *Message_ChildMessage { if m != nil { return m.OptionalChildMessage } return nil } func (m *Message) GetOptionalNamedGroup() *Message_NamedGroup { if m != nil { return m.OptionalNamedGroup } return nil } func (m *Message) GetOptionalSiblingEnum() SiblingEnum { if m != nil && m.OptionalSiblingEnum != nil { return *m.OptionalSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetOptionalSiblingMessage() *SiblingMessage { if m != nil { return m.OptionalSiblingMessage } return nil } func (m *Message) GetOptionalgroup() *Message_OptionalGroup { if m != nil { return m.Optionalgroup } return nil } func (m *Message) GetDefaultedBool() bool { if m != nil && m.DefaultedBool != nil { return *m.DefaultedBool } return Default_Message_DefaultedBool } func (m *Message) GetDefaultedInt32() int32 { if m != nil && m.DefaultedInt32 != nil { return *m.DefaultedInt32 } return Default_Message_DefaultedInt32 } func (m *Message) GetDefaultedSint32() int32 { if m != nil && m.DefaultedSint32 != nil { return *m.DefaultedSint32 } return Default_Message_DefaultedSint32 } func (m *Message) GetDefaultedUint32() uint32 { if m != nil && m.DefaultedUint32 != nil { return *m.DefaultedUint32 } return Default_Message_DefaultedUint32 } func (m *Message) GetDefaultedInt64() int64 { if m != nil && m.DefaultedInt64 != nil { return *m.DefaultedInt64 } return Default_Message_DefaultedInt64 } func (m *Message) GetDefaultedSint64() int64 { if m != nil && m.DefaultedSint64 != nil { return *m.DefaultedSint64 } return Default_Message_DefaultedSint64 } func (m *Message) GetDefaultedUint64() uint64 { if m != nil && m.DefaultedUint64 != nil { return *m.DefaultedUint64 } return Default_Message_DefaultedUint64 } func (m *Message) GetDefaultedFixed32() uint32 { if m != nil && m.DefaultedFixed32 != nil { return *m.DefaultedFixed32 } return Default_Message_DefaultedFixed32 } func (m *Message) GetDefaultedSfixed32() int32 { if m != nil && m.DefaultedSfixed32 != nil { return *m.DefaultedSfixed32 } return Default_Message_DefaultedSfixed32 } func (m *Message) GetDefaultedFloat() float32 { if m != nil && m.DefaultedFloat != nil { return *m.DefaultedFloat } return Default_Message_DefaultedFloat } func (m *Message) GetDefaultedFixed64() uint64 { if m != nil && m.DefaultedFixed64 != nil { return *m.DefaultedFixed64 } return Default_Message_DefaultedFixed64 } func (m *Message) GetDefaultedSfixed64() int64 { if m != nil && m.DefaultedSfixed64 != nil { return *m.DefaultedSfixed64 } return Default_Message_DefaultedSfixed64 } func (m *Message) GetDefaultedDouble() float64 { if m != nil && m.DefaultedDouble != nil { return *m.DefaultedDouble } return Default_Message_DefaultedDouble } func (m *Message) GetDefaultedString() string { if m != nil && m.DefaultedString != nil { return *m.DefaultedString } return Default_Message_DefaultedString } func (m *Message) GetDefaultedBytes() []byte { if m != nil && m.DefaultedBytes != nil { return m.DefaultedBytes } return append([]byte(nil), Default_Message_DefaultedBytes...) } func (m *Message) GetDefaultedChildEnum() Message_ChildEnum { if m != nil && m.DefaultedChildEnum != nil { return *m.DefaultedChildEnum } return Default_Message_DefaultedChildEnum } func (m *Message) GetDefaultedSiblingEnum() SiblingEnum { if m != nil && m.DefaultedSiblingEnum != nil { return *m.DefaultedSiblingEnum } return Default_Message_DefaultedSiblingEnum } func (m *Message) GetRequiredBool() bool { if m != nil && m.RequiredBool != nil { return *m.RequiredBool } return false } func (m *Message) GetRequiredInt32() int32 { if m != nil && m.RequiredInt32 != nil { return *m.RequiredInt32 } return 0 } func (m *Message) GetRequiredSint32() int32 { if m != nil && m.RequiredSint32 != nil { return *m.RequiredSint32 } return 0 } func (m *Message) GetRequiredUint32() uint32 { if m != nil && m.RequiredUint32 != nil { return *m.RequiredUint32 } return 0 } func (m *Message) GetRequiredInt64() int64 { if m != nil && m.RequiredInt64 != nil { return *m.RequiredInt64 } return 0 } func (m *Message) GetRequiredSint64() int64 { if m != nil && m.RequiredSint64 != nil { return *m.RequiredSint64 } return 0 } func (m *Message) GetRequiredUint64() uint64 { if m != nil && m.RequiredUint64 != nil { return *m.RequiredUint64 } return 0 } func (m *Message) GetRequiredFixed32() uint32 { if m != nil && m.RequiredFixed32 != nil { return *m.RequiredFixed32 } return 0 } func (m *Message) GetRequiredSfixed32() int32 { if m != nil && m.RequiredSfixed32 != nil { return *m.RequiredSfixed32 } return 0 } func (m *Message) GetRequiredFloat() float32 { if m != nil && m.RequiredFloat != nil { return *m.RequiredFloat } return 0 } func (m *Message) GetRequiredFixed64() uint64 { if m != nil && m.RequiredFixed64 != nil { return *m.RequiredFixed64 } return 0 } func (m *Message) GetRequiredSfixed64() int64 { if m != nil && m.RequiredSfixed64 != nil { return *m.RequiredSfixed64 } return 0 } func (m *Message) GetRequiredDouble() float64 { if m != nil && m.RequiredDouble != nil { return *m.RequiredDouble } return 0 } func (m *Message) GetRequiredString() string { if m != nil && m.RequiredString != nil { return *m.RequiredString } return "" } func (m *Message) GetRequiredBytes() []byte { if m != nil { return m.RequiredBytes } return nil } func (m *Message) GetRequiredChildEnum() Message_ChildEnum { if m != nil && m.RequiredChildEnum != nil { return *m.RequiredChildEnum } return Message_ALPHA } func (m *Message) GetRequiredChildMessage() *Message_ChildMessage { if m != nil { return m.RequiredChildMessage } return nil } func (m *Message) GetRequiredNamedGroup() *Message_NamedGroup { if m != nil { return m.RequiredNamedGroup } return nil } func (m *Message) GetRequiredSiblingEnum() SiblingEnum { if m != nil && m.RequiredSiblingEnum != nil { return *m.RequiredSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetRequiredSiblingMessage() *SiblingMessage { if m != nil { return m.RequiredSiblingMessage } return nil } func (m *Message) GetRequiredgroup() *Message_RequiredGroup { if m != nil { return m.Requiredgroup } return nil } func (m *Message) GetRequiredDefaultedBool() bool { if m != nil && m.RequiredDefaultedBool != nil { return *m.RequiredDefaultedBool } return Default_Message_RequiredDefaultedBool } func (m *Message) GetRequiredDefaultedInt32() int32 { if m != nil && m.RequiredDefaultedInt32 != nil { return *m.RequiredDefaultedInt32 } return Default_Message_RequiredDefaultedInt32 } func (m *Message) GetRequiredDefaultedSint32() int32 { if m != nil && m.RequiredDefaultedSint32 != nil { return *m.RequiredDefaultedSint32 } return Default_Message_RequiredDefaultedSint32 } func (m *Message) GetRequiredDefaultedUint32() uint32 { if m != nil && m.RequiredDefaultedUint32 != nil { return *m.RequiredDefaultedUint32 } return Default_Message_RequiredDefaultedUint32 } func (m *Message) GetRequiredDefaultedInt64() int64 { if m != nil && m.RequiredDefaultedInt64 != nil { return *m.RequiredDefaultedInt64 } return Default_Message_RequiredDefaultedInt64 } func (m *Message) GetRequiredDefaultedSint64() int64 { if m != nil && m.RequiredDefaultedSint64 != nil { return *m.RequiredDefaultedSint64 } return Default_Message_RequiredDefaultedSint64 } func (m *Message) GetRequiredDefaultedUint64() uint64 { if m != nil && m.RequiredDefaultedUint64 != nil { return *m.RequiredDefaultedUint64 } return Default_Message_RequiredDefaultedUint64 } func (m *Message) GetRequiredDefaultedFixed32() uint32 { if m != nil && m.RequiredDefaultedFixed32 != nil { return *m.RequiredDefaultedFixed32 } return Default_Message_RequiredDefaultedFixed32 } func (m *Message) GetRequiredDefaultedSfixed32() int32 { if m != nil && m.RequiredDefaultedSfixed32 != nil { return *m.RequiredDefaultedSfixed32 } return Default_Message_RequiredDefaultedSfixed32 } func (m *Message) GetRequiredDefaultedFloat() float32 { if m != nil && m.RequiredDefaultedFloat != nil { return *m.RequiredDefaultedFloat } return Default_Message_RequiredDefaultedFloat } func (m *Message) GetRequiredDefaultedFixed64() uint64 { if m != nil && m.RequiredDefaultedFixed64 != nil { return *m.RequiredDefaultedFixed64 } return Default_Message_RequiredDefaultedFixed64 } func (m *Message) GetRequiredDefaultedSfixed64() int64 { if m != nil && m.RequiredDefaultedSfixed64 != nil { return *m.RequiredDefaultedSfixed64 } return Default_Message_RequiredDefaultedSfixed64 } func (m *Message) GetRequiredDefaultedDouble() float64 { if m != nil && m.RequiredDefaultedDouble != nil { return *m.RequiredDefaultedDouble } return Default_Message_RequiredDefaultedDouble } func (m *Message) GetRequiredDefaultedString() string { if m != nil && m.RequiredDefaultedString != nil { return *m.RequiredDefaultedString } return Default_Message_RequiredDefaultedString } func (m *Message) GetRequiredDefaultedBytes() []byte { if m != nil && m.RequiredDefaultedBytes != nil { return m.RequiredDefaultedBytes } return append([]byte(nil), Default_Message_RequiredDefaultedBytes...) } func (m *Message) GetRequiredDefaultedChildEnum() Message_ChildEnum { if m != nil && m.RequiredDefaultedChildEnum != nil { return *m.RequiredDefaultedChildEnum } return Default_Message_RequiredDefaultedChildEnum } func (m *Message) GetRequiredDefaultedSiblingEnum() SiblingEnum { if m != nil && m.RequiredDefaultedSiblingEnum != nil { return *m.RequiredDefaultedSiblingEnum } return Default_Message_RequiredDefaultedSiblingEnum } func (m *Message) GetRepeatedBool() []bool { if m != nil { return m.RepeatedBool } return nil } func (m *Message) GetRepeatedInt32() []int32 { if m != nil { return m.RepeatedInt32 } return nil } func (m *Message) GetRepeatedSint32() []int32 { if m != nil { return m.RepeatedSint32 } return nil } func (m *Message) GetRepeatedUint32() []uint32 { if m != nil { return m.RepeatedUint32 } return nil } func (m *Message) GetRepeatedInt64() []int64 { if m != nil { return m.RepeatedInt64 } return nil } func (m *Message) GetRepeatedSint64() []int64 { if m != nil { return m.RepeatedSint64 } return nil } func (m *Message) GetRepeatedUint64() []uint64 { if m != nil { return m.RepeatedUint64 } return nil } func (m *Message) GetRepeatedFixed32() []uint32 { if m != nil { return m.RepeatedFixed32 } return nil } func (m *Message) GetRepeatedSfixed32() []int32 { if m != nil { return m.RepeatedSfixed32 } return nil } func (m *Message) GetRepeatedFloat() []float32 { if m != nil { return m.RepeatedFloat } return nil } func (m *Message) GetRepeatedFixed64() []uint64 { if m != nil { return m.RepeatedFixed64 } return nil } func (m *Message) GetRepeatedSfixed64() []int64 { if m != nil { return m.RepeatedSfixed64 } return nil } func (m *Message) GetRepeatedDouble() []float64 { if m != nil { return m.RepeatedDouble } return nil } func (m *Message) GetRepeatedString() []string { if m != nil { return m.RepeatedString } return nil } func (m *Message) GetRepeatedBytes() [][]byte { if m != nil { return m.RepeatedBytes } return nil } func (m *Message) GetRepeatedChildEnum() []Message_ChildEnum { if m != nil { return m.RepeatedChildEnum } return nil } func (m *Message) GetRepeatedChildMessage() []*Message_ChildMessage { if m != nil { return m.RepeatedChildMessage } return nil } func (m *Message) GetRepeatedNamedGroup() []*Message_NamedGroup { if m != nil { return m.RepeatedNamedGroup } return nil } func (m *Message) GetRepeatedSiblingEnum() []SiblingEnum { if m != nil { return m.RepeatedSiblingEnum } return nil } func (m *Message) GetRepeatedSiblingMessage() []*SiblingMessage { if m != nil { return m.RepeatedSiblingMessage } return nil } func (m *Message) GetRepeatedgroup() []*Message_RepeatedGroup { if m != nil { return m.Repeatedgroup } return nil } func (m *Message) GetMapBoolBool() map[bool]bool { if m != nil { return m.MapBoolBool } return nil } func (m *Message) GetMapBoolInt32() map[bool]int32 { if m != nil { return m.MapBoolInt32 } return nil } func (m *Message) GetMapBoolSint32() map[bool]int32 { if m != nil { return m.MapBoolSint32 } return nil } func (m *Message) GetMapBoolUint32() map[bool]uint32 { if m != nil { return m.MapBoolUint32 } return nil } func (m *Message) GetMapBoolInt64() map[bool]int64 { if m != nil { return m.MapBoolInt64 } return nil } func (m *Message) GetMapBoolSint64() map[bool]int64 { if m != nil { return m.MapBoolSint64 } return nil } func (m *Message) GetMapBoolUint64() map[bool]uint64 { if m != nil { return m.MapBoolUint64 } return nil } func (m *Message) GetMapBoolFixed32() map[bool]uint32 { if m != nil { return m.MapBoolFixed32 } return nil } func (m *Message) GetMapBoolSfixed32() map[bool]int32 { if m != nil { return m.MapBoolSfixed32 } return nil } func (m *Message) GetMapBoolFloat() map[bool]float32 { if m != nil { return m.MapBoolFloat } return nil } func (m *Message) GetMapBoolFixed64() map[bool]uint64 { if m != nil { return m.MapBoolFixed64 } return nil } func (m *Message) GetMapBoolSfixed64() map[bool]int64 { if m != nil { return m.MapBoolSfixed64 } return nil } func (m *Message) GetMapBoolDouble() map[bool]float64 { if m != nil { return m.MapBoolDouble } return nil } func (m *Message) GetMapBoolString() map[bool]string { if m != nil { return m.MapBoolString } return nil } func (m *Message) GetMapBoolBytes() map[bool][]byte { if m != nil { return m.MapBoolBytes } return nil } func (m *Message) GetMapBoolChildEnum() map[bool]Message_ChildEnum { if m != nil { return m.MapBoolChildEnum } return nil } func (m *Message) GetMapBoolChildMessage() map[bool]*Message_ChildMessage { if m != nil { return m.MapBoolChildMessage } return nil } func (m *Message) GetMapBoolNamedGroup() map[bool]*Message_NamedGroup { if m != nil { return m.MapBoolNamedGroup } return nil } func (m *Message) GetMapBoolSiblingEnum() map[bool]SiblingEnum { if m != nil { return m.MapBoolSiblingEnum } return nil } func (m *Message) GetMapBoolSiblingMessage() map[bool]*SiblingMessage { if m != nil { return m.MapBoolSiblingMessage } return nil } func (m *Message) GetMapInt32Bool() map[int32]bool { if m != nil { return m.MapInt32Bool } return nil } func (m *Message) GetMapSint32Bool() map[int32]bool { if m != nil { return m.MapSint32Bool } return nil } func (m *Message) GetMapUint32Bool() map[uint32]bool { if m != nil { return m.MapUint32Bool } return nil } func (m *Message) GetMapInt64Bool() map[int64]bool { if m != nil { return m.MapInt64Bool } return nil } func (m *Message) GetMapSint64Bool() map[int64]bool { if m != nil { return m.MapSint64Bool } return nil } func (m *Message) GetMapUint64Bool() map[uint64]bool { if m != nil { return m.MapUint64Bool } return nil } func (m *Message) GetMapFixed32Bool() map[uint32]bool { if m != nil { return m.MapFixed32Bool } return nil } func (m *Message) GetMapStringBool() map[string]bool { if m != nil { return m.MapStringBool } return nil } func (m *Message) GetOneofBool() bool { if x, ok := m.GetOneofUnion().(*Message_OneofBool); ok { return x.OneofBool } return false } func (m *Message) GetOneofInt32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofInt32); ok { return x.OneofInt32 } return 0 } func (m *Message) GetOneofSint32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSint32); ok { return x.OneofSint32 } return 0 } func (m *Message) GetOneofUint32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofUint32); ok { return x.OneofUint32 } return 0 } func (m *Message) GetOneofInt64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofInt64); ok { return x.OneofInt64 } return 0 } func (m *Message) GetOneofSint64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSint64); ok { return x.OneofSint64 } return 0 } func (m *Message) GetOneofUint64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofUint64); ok { return x.OneofUint64 } return 0 } func (m *Message) GetOneofFixed32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed32); ok { return x.OneofFixed32 } return 0 } func (m *Message) GetOneofSfixed32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed32); ok { return x.OneofSfixed32 } return 0 } func (m *Message) GetOneofFloat() float32 { if x, ok := m.GetOneofUnion().(*Message_OneofFloat); ok { return x.OneofFloat } return 0 } func (m *Message) GetOneofFixed64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed64); ok { return x.OneofFixed64 } return 0 } func (m *Message) GetOneofSfixed64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed64); ok { return x.OneofSfixed64 } return 0 } func (m *Message) GetOneofDouble() float64 { if x, ok := m.GetOneofUnion().(*Message_OneofDouble); ok { return x.OneofDouble } return 0 } func (m *Message) GetOneofString() string { if x, ok := m.GetOneofUnion().(*Message_OneofString); ok { return x.OneofString } return "" } func (m *Message) GetOneofBytes() []byte { if x, ok := m.GetOneofUnion().(*Message_OneofBytes); ok { return x.OneofBytes } return nil } func (m *Message) GetOneofChildEnum() Message_ChildEnum { if x, ok := m.GetOneofUnion().(*Message_OneofChildEnum); ok { return x.OneofChildEnum } return Message_ALPHA } func (m *Message) GetOneofChildMessage() *Message_ChildMessage { if x, ok := m.GetOneofUnion().(*Message_OneofChildMessage); ok { return x.OneofChildMessage } return nil } func (m *Message) GetOneofNamedGroup() *Message_NamedGroup { if x, ok := m.GetOneofUnion().(*Message_OneofNamedGroup); ok { return x.OneofNamedGroup } return nil } func (m *Message) GetOneofSiblingEnum() SiblingEnum { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingEnum); ok { return x.OneofSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetOneofSiblingMessage() *SiblingMessage { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingMessage); ok { return x.OneofSiblingMessage } return nil } func (m *Message) GetOneofgroup() *Message_OneofGroup { if x, ok := m.GetOneofUnion().(*Message_Oneofgroup); ok { return x.Oneofgroup } return nil } func (m *Message) GetOneofString1() string { if x, ok := m.GetOneofUnion().(*Message_OneofString1); ok { return x.OneofString1 } return "" } func (m *Message) GetOneofString2() string { if x, ok := m.GetOneofUnion().(*Message_OneofString2); ok { return x.OneofString2 } return "" } func (m *Message) GetOneofString3() string { if x, ok := m.GetOneofUnion().(*Message_OneofString3); ok { return x.OneofString3 } return "" } func (m *Message) GetOneofDefaultedBool() bool { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedBool); ok { return x.OneofDefaultedBool } return Default_Message_OneofDefaultedBool } func (m *Message) GetOneofDefaultedInt32() int32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedInt32); ok { return x.OneofDefaultedInt32 } return Default_Message_OneofDefaultedInt32 } func (m *Message) GetOneofDefaultedSint32() int32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSint32); ok { return x.OneofDefaultedSint32 } return Default_Message_OneofDefaultedSint32 } func (m *Message) GetOneofDefaultedUint32() uint32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedUint32); ok { return x.OneofDefaultedUint32 } return Default_Message_OneofDefaultedUint32 } func (m *Message) GetOneofDefaultedInt64() int64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedInt64); ok { return x.OneofDefaultedInt64 } return Default_Message_OneofDefaultedInt64 } func (m *Message) GetOneofDefaultedSint64() int64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSint64); ok { return x.OneofDefaultedSint64 } return Default_Message_OneofDefaultedSint64 } func (m *Message) GetOneofDefaultedUint64() uint64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedUint64); ok { return x.OneofDefaultedUint64 } return Default_Message_OneofDefaultedUint64 } func (m *Message) GetOneofDefaultedFixed32() uint32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedFixed32); ok { return x.OneofDefaultedFixed32 } return Default_Message_OneofDefaultedFixed32 } func (m *Message) GetOneofDefaultedSfixed32() int32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSfixed32); ok { return x.OneofDefaultedSfixed32 } return Default_Message_OneofDefaultedSfixed32 } func (m *Message) GetOneofDefaultedFloat() float32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedFloat); ok { return x.OneofDefaultedFloat } return Default_Message_OneofDefaultedFloat } func (m *Message) GetOneofDefaultedFixed64() uint64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedFixed64); ok { return x.OneofDefaultedFixed64 } return Default_Message_OneofDefaultedFixed64 } func (m *Message) GetOneofDefaultedSfixed64() int64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSfixed64); ok { return x.OneofDefaultedSfixed64 } return Default_Message_OneofDefaultedSfixed64 } func (m *Message) GetOneofDefaultedDouble() float64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedDouble); ok { return x.OneofDefaultedDouble } return Default_Message_OneofDefaultedDouble } func (m *Message) GetOneofDefaultedString() string { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedString); ok { return x.OneofDefaultedString } return Default_Message_OneofDefaultedString } func (m *Message) GetOneofDefaultedBytes() []byte { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedBytes); ok { return x.OneofDefaultedBytes } return append([]byte(nil), Default_Message_OneofDefaultedBytes...) } func (m *Message) GetOneofDefaultedChildEnum() Message_ChildEnum { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedChildEnum); ok { return x.OneofDefaultedChildEnum } return Default_Message_OneofDefaultedChildEnum } func (m *Message) GetOneofDefaultedSiblingEnum() SiblingEnum { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSiblingEnum); ok { return x.OneofDefaultedSiblingEnum } return Default_Message_OneofDefaultedSiblingEnum } // XXX_OneofFuncs is for the internal use of the proto package. func (*Message) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { return _Message_OneofMarshaler, _Message_OneofUnmarshaler, _Message_OneofSizer, []interface{}{ (*Message_OneofBool)(nil), (*Message_OneofInt32)(nil), (*Message_OneofSint32)(nil), (*Message_OneofUint32)(nil), (*Message_OneofInt64)(nil), (*Message_OneofSint64)(nil), (*Message_OneofUint64)(nil), (*Message_OneofFixed32)(nil), (*Message_OneofSfixed32)(nil), (*Message_OneofFloat)(nil), (*Message_OneofFixed64)(nil), (*Message_OneofSfixed64)(nil), (*Message_OneofDouble)(nil), (*Message_OneofString)(nil), (*Message_OneofBytes)(nil), (*Message_OneofChildEnum)(nil), (*Message_OneofChildMessage)(nil), (*Message_OneofNamedGroup)(nil), (*Message_OneofSiblingEnum)(nil), (*Message_OneofSiblingMessage)(nil), (*Message_Oneofgroup)(nil), (*Message_OneofString1)(nil), (*Message_OneofString2)(nil), (*Message_OneofString3)(nil), (*Message_OneofDefaultedBool)(nil), (*Message_OneofDefaultedInt32)(nil), (*Message_OneofDefaultedSint32)(nil), (*Message_OneofDefaultedUint32)(nil), (*Message_OneofDefaultedInt64)(nil), (*Message_OneofDefaultedSint64)(nil), (*Message_OneofDefaultedUint64)(nil), (*Message_OneofDefaultedFixed32)(nil), (*Message_OneofDefaultedSfixed32)(nil), (*Message_OneofDefaultedFloat)(nil), (*Message_OneofDefaultedFixed64)(nil), (*Message_OneofDefaultedSfixed64)(nil), (*Message_OneofDefaultedDouble)(nil), (*Message_OneofDefaultedString)(nil), (*Message_OneofDefaultedBytes)(nil), (*Message_OneofDefaultedChildEnum)(nil), (*Message_OneofDefaultedSiblingEnum)(nil), } } func _Message_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { m := msg.(*Message) // oneof_union switch x := m.OneofUnion.(type) { case *Message_OneofBool: t := uint64(0) if x.OneofBool { t = 1 } b.EncodeVarint(700<<3 | proto.WireVarint) b.EncodeVarint(t) case *Message_OneofInt32: b.EncodeVarint(701<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofInt32)) case *Message_OneofSint32: b.EncodeVarint(702<<3 | proto.WireVarint) b.EncodeZigzag32(uint64(x.OneofSint32)) case *Message_OneofUint32: b.EncodeVarint(703<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofUint32)) case *Message_OneofInt64: b.EncodeVarint(704<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofInt64)) case *Message_OneofSint64: b.EncodeVarint(705<<3 | proto.WireVarint) b.EncodeZigzag64(uint64(x.OneofSint64)) case *Message_OneofUint64: b.EncodeVarint(706<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofUint64)) case *Message_OneofFixed32: b.EncodeVarint(707<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofFixed32)) case *Message_OneofSfixed32: b.EncodeVarint(708<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofSfixed32)) case *Message_OneofFloat: b.EncodeVarint(709<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(math.Float32bits(x.OneofFloat))) case *Message_OneofFixed64: b.EncodeVarint(710<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofFixed64)) case *Message_OneofSfixed64: b.EncodeVarint(711<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofSfixed64)) case *Message_OneofDouble: b.EncodeVarint(712<<3 | proto.WireFixed64) b.EncodeFixed64(math.Float64bits(x.OneofDouble)) case *Message_OneofString: b.EncodeVarint(713<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString) case *Message_OneofBytes: b.EncodeVarint(714<<3 | proto.WireBytes) b.EncodeRawBytes(x.OneofBytes) case *Message_OneofChildEnum: b.EncodeVarint(715<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofChildEnum)) case *Message_OneofChildMessage: b.EncodeVarint(716<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofChildMessage); err != nil { return err } case *Message_OneofNamedGroup: b.EncodeVarint(717<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofNamedGroup); err != nil { return err } case *Message_OneofSiblingEnum: b.EncodeVarint(718<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofSiblingEnum)) case *Message_OneofSiblingMessage: b.EncodeVarint(719<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofSiblingMessage); err != nil { return err } case *Message_Oneofgroup: b.EncodeVarint(720<<3 | proto.WireStartGroup) if err := b.Marshal(x.Oneofgroup); err != nil { return err } b.EncodeVarint(720<<3 | proto.WireEndGroup) case *Message_OneofString1: b.EncodeVarint(721<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString1) case *Message_OneofString2: b.EncodeVarint(722<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString2) case *Message_OneofString3: b.EncodeVarint(723<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString3) case nil: default: return fmt.Errorf("Message.OneofUnion has unexpected type %T", x) } // oneof_defaulted_union switch x := m.OneofDefaultedUnion.(type) { case *Message_OneofDefaultedBool: t := uint64(0) if x.OneofDefaultedBool { t = 1 } b.EncodeVarint(800<<3 | proto.WireVarint) b.EncodeVarint(t) case *Message_OneofDefaultedInt32: b.EncodeVarint(801<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedInt32)) case *Message_OneofDefaultedSint32: b.EncodeVarint(802<<3 | proto.WireVarint) b.EncodeZigzag32(uint64(x.OneofDefaultedSint32)) case *Message_OneofDefaultedUint32: b.EncodeVarint(803<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedUint32)) case *Message_OneofDefaultedInt64: b.EncodeVarint(804<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedInt64)) case *Message_OneofDefaultedSint64: b.EncodeVarint(805<<3 | proto.WireVarint) b.EncodeZigzag64(uint64(x.OneofDefaultedSint64)) case *Message_OneofDefaultedUint64: b.EncodeVarint(806<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedUint64)) case *Message_OneofDefaultedFixed32: b.EncodeVarint(807<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofDefaultedFixed32)) case *Message_OneofDefaultedSfixed32: b.EncodeVarint(808<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofDefaultedSfixed32)) case *Message_OneofDefaultedFloat: b.EncodeVarint(809<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(math.Float32bits(x.OneofDefaultedFloat))) case *Message_OneofDefaultedFixed64: b.EncodeVarint(810<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofDefaultedFixed64)) case *Message_OneofDefaultedSfixed64: b.EncodeVarint(811<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofDefaultedSfixed64)) case *Message_OneofDefaultedDouble: b.EncodeVarint(812<<3 | proto.WireFixed64) b.EncodeFixed64(math.Float64bits(x.OneofDefaultedDouble)) case *Message_OneofDefaultedString: b.EncodeVarint(813<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofDefaultedString) case *Message_OneofDefaultedBytes: b.EncodeVarint(814<<3 | proto.WireBytes) b.EncodeRawBytes(x.OneofDefaultedBytes) case *Message_OneofDefaultedChildEnum: b.EncodeVarint(815<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedChildEnum)) case *Message_OneofDefaultedSiblingEnum: b.EncodeVarint(816<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedSiblingEnum)) case nil: default: return fmt.Errorf("Message.OneofDefaultedUnion has unexpected type %T", x) } return nil } func _Message_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { m := msg.(*Message) switch tag { case 700: // oneof_union.oneof_bool if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofBool{x != 0} return true, err case 701: // oneof_union.oneof_int32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofInt32{int32(x)} return true, err case 702: // oneof_union.oneof_sint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag32() m.OneofUnion = &Message_OneofSint32{int32(x)} return true, err case 703: // oneof_union.oneof_uint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofUint32{uint32(x)} return true, err case 704: // oneof_union.oneof_int64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofInt64{int64(x)} return true, err case 705: // oneof_union.oneof_sint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag64() m.OneofUnion = &Message_OneofSint64{int64(x)} return true, err case 706: // oneof_union.oneof_uint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofUint64{x} return true, err case 707: // oneof_union.oneof_fixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofFixed32{uint32(x)} return true, err case 708: // oneof_union.oneof_sfixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofSfixed32{int32(x)} return true, err case 709: // oneof_union.oneof_float if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofFloat{math.Float32frombits(uint32(x))} return true, err case 710: // oneof_union.oneof_fixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofFixed64{x} return true, err case 711: // oneof_union.oneof_sfixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofSfixed64{int64(x)} return true, err case 712: // oneof_union.oneof_double if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofDouble{math.Float64frombits(x)} return true, err case 713: // oneof_union.oneof_string if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString{x} return true, err case 714: // oneof_union.oneof_bytes if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeRawBytes(true) m.OneofUnion = &Message_OneofBytes{x} return true, err case 715: // oneof_union.oneof_child_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofChildEnum{Message_ChildEnum(x)} return true, err case 716: // oneof_union.oneof_child_message if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(Message_ChildMessage) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofChildMessage{msg} return true, err case 717: // oneof_union.oneof_named_group if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(Message_NamedGroup) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofNamedGroup{msg} return true, err case 718: // oneof_union.oneof_sibling_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofSiblingEnum{SiblingEnum(x)} return true, err case 719: // oneof_union.oneof_sibling_message if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(SiblingMessage) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofSiblingMessage{msg} return true, err case 720: // oneof_union.oneofgroup if wire != proto.WireStartGroup { return true, proto.ErrInternalBadWireType } msg := new(Message_OneofGroup) err := b.DecodeGroup(msg) m.OneofUnion = &Message_Oneofgroup{msg} return true, err case 721: // oneof_union.oneof_string1 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString1{x} return true, err case 722: // oneof_union.oneof_string2 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString2{x} return true, err case 723: // oneof_union.oneof_string3 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString3{x} return true, err case 800: // oneof_defaulted_union.oneof_defaulted_bool if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedBool{x != 0} return true, err case 801: // oneof_defaulted_union.oneof_defaulted_int32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedInt32{int32(x)} return true, err case 802: // oneof_defaulted_union.oneof_defaulted_sint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag32() m.OneofDefaultedUnion = &Message_OneofDefaultedSint32{int32(x)} return true, err case 803: // oneof_defaulted_union.oneof_defaulted_uint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedUint32{uint32(x)} return true, err case 804: // oneof_defaulted_union.oneof_defaulted_int64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedInt64{int64(x)} return true, err case 805: // oneof_defaulted_union.oneof_defaulted_sint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag64() m.OneofDefaultedUnion = &Message_OneofDefaultedSint64{int64(x)} return true, err case 806: // oneof_defaulted_union.oneof_defaulted_uint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedUint64{x} return true, err case 807: // oneof_defaulted_union.oneof_defaulted_fixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofDefaultedUnion = &Message_OneofDefaultedFixed32{uint32(x)} return true, err case 808: // oneof_defaulted_union.oneof_defaulted_sfixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofDefaultedUnion = &Message_OneofDefaultedSfixed32{int32(x)} return true, err case 809: // oneof_defaulted_union.oneof_defaulted_float if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofDefaultedUnion = &Message_OneofDefaultedFloat{math.Float32frombits(uint32(x))} return true, err case 810: // oneof_defaulted_union.oneof_defaulted_fixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofDefaultedUnion = &Message_OneofDefaultedFixed64{x} return true, err case 811: // oneof_defaulted_union.oneof_defaulted_sfixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofDefaultedUnion = &Message_OneofDefaultedSfixed64{int64(x)} return true, err case 812: // oneof_defaulted_union.oneof_defaulted_double if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofDefaultedUnion = &Message_OneofDefaultedDouble{math.Float64frombits(x)} return true, err case 813: // oneof_defaulted_union.oneof_defaulted_string if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofDefaultedUnion = &Message_OneofDefaultedString{x} return true, err case 814: // oneof_defaulted_union.oneof_defaulted_bytes if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeRawBytes(true) m.OneofDefaultedUnion = &Message_OneofDefaultedBytes{x} return true, err case 815: // oneof_defaulted_union.oneof_defaulted_child_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedChildEnum{Message_ChildEnum(x)} return true, err case 816: // oneof_defaulted_union.oneof_defaulted_sibling_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedSiblingEnum{SiblingEnum(x)} return true, err default: return false, nil } } func _Message_OneofSizer(msg proto.Message) (n int) { m := msg.(*Message) // oneof_union switch x := m.OneofUnion.(type) { case *Message_OneofBool: n += proto.SizeVarint(700<<3 | proto.WireVarint) n += 1 case *Message_OneofInt32: n += proto.SizeVarint(701<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofInt32)) case *Message_OneofSint32: n += proto.SizeVarint(702<<3 | proto.WireVarint) n += proto.SizeVarint(uint64((uint32(x.OneofSint32) << 1) ^ uint32((int32(x.OneofSint32) >> 31)))) case *Message_OneofUint32: n += proto.SizeVarint(703<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofUint32)) case *Message_OneofInt64: n += proto.SizeVarint(704<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofInt64)) case *Message_OneofSint64: n += proto.SizeVarint(705<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(uint64(x.OneofSint64<<1) ^ uint64((int64(x.OneofSint64) >> 63)))) case *Message_OneofUint64: n += proto.SizeVarint(706<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofUint64)) case *Message_OneofFixed32: n += proto.SizeVarint(707<<3 | proto.WireFixed32) n += 4 case *Message_OneofSfixed32: n += proto.SizeVarint(708<<3 | proto.WireFixed32) n += 4 case *Message_OneofFloat: n += proto.SizeVarint(709<<3 | proto.WireFixed32) n += 4 case *Message_OneofFixed64: n += proto.SizeVarint(710<<3 | proto.WireFixed64) n += 8 case *Message_OneofSfixed64: n += proto.SizeVarint(711<<3 | proto.WireFixed64) n += 8 case *Message_OneofDouble: n += proto.SizeVarint(712<<3 | proto.WireFixed64) n += 8 case *Message_OneofString: n += proto.SizeVarint(713<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString))) n += len(x.OneofString) case *Message_OneofBytes: n += proto.SizeVarint(714<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofBytes))) n += len(x.OneofBytes) case *Message_OneofChildEnum: n += proto.SizeVarint(715<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofChildEnum)) case *Message_OneofChildMessage: s := proto.Size(x.OneofChildMessage) n += proto.SizeVarint(716<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case *Message_OneofNamedGroup: s := proto.Size(x.OneofNamedGroup) n += proto.SizeVarint(717<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case *Message_OneofSiblingEnum: n += proto.SizeVarint(718<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofSiblingEnum)) case *Message_OneofSiblingMessage: s := proto.Size(x.OneofSiblingMessage) n += proto.SizeVarint(719<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case *Message_Oneofgroup: n += proto.SizeVarint(720<<3 | proto.WireStartGroup) n += proto.Size(x.Oneofgroup) n += proto.SizeVarint(720<<3 | proto.WireEndGroup) case *Message_OneofString1: n += proto.SizeVarint(721<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString1))) n += len(x.OneofString1) case *Message_OneofString2: n += proto.SizeVarint(722<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString2))) n += len(x.OneofString2) case *Message_OneofString3: n += proto.SizeVarint(723<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString3))) n += len(x.OneofString3) case nil: default: panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) } // oneof_defaulted_union switch x := m.OneofDefaultedUnion.(type) { case *Message_OneofDefaultedBool: n += proto.SizeVarint(800<<3 | proto.WireVarint) n += 1 case *Message_OneofDefaultedInt32: n += proto.SizeVarint(801<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofDefaultedInt32)) case *Message_OneofDefaultedSint32: n += proto.SizeVarint(802<<3 | proto.WireVarint) n += proto.SizeVarint(uint64((uint32(x.OneofDefaultedSint32) << 1) ^ uint32((int32(x.OneofDefaultedSint32) >> 31)))) case *Message_OneofDefaultedUint32: n += proto.SizeVarint(803<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofDefaultedUint32)) case *Message_OneofDefaultedInt64: n += proto.SizeVarint(804<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofDefaultedInt64)) case *Message_OneofDefaultedSint64: n += proto.SizeVarint(805<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(uint64(x.OneofDefaultedSint64<<1) ^ uint64((int64(x.OneofDefaultedSint64) >> 63)))) case *Message_OneofDefaultedUint64: n += proto.SizeVarint(806<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofDefaultedUint64)) case *Message_OneofDefaultedFixed32: n += proto.SizeVarint(807<<3 | proto.WireFixed32) n += 4 case *Message_OneofDefaultedSfixed32: n += proto.SizeVarint(808<<3 | proto.WireFixed32) n += 4 case *Message_OneofDefaultedFloat: n += proto.SizeVarint(809<<3 | proto.WireFixed32) n += 4 case *Message_OneofDefaultedFixed64: n += proto.SizeVarint(810<<3 | proto.WireFixed64) n += 8 case *Message_OneofDefaultedSfixed64: n += proto.SizeVarint(811<<3 | proto.WireFixed64) n += 8 case *Message_OneofDefaultedDouble: n += proto.SizeVarint(812<<3 | proto.WireFixed64) n += 8 case *Message_OneofDefaultedString: n += proto.SizeVarint(813<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofDefaultedString))) n += len(x.OneofDefaultedString) case *Message_OneofDefaultedBytes: n += proto.SizeVarint(814<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofDefaultedBytes))) n += len(x.OneofDefaultedBytes) case *Message_OneofDefaultedChildEnum: n += proto.SizeVarint(815<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofDefaultedChildEnum)) case *Message_OneofDefaultedSiblingEnum: n += proto.SizeVarint(816<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofDefaultedSiblingEnum)) case nil: default: panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) } return n } var E_Message_ExtensionOptionalBool = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*bool)(nil), Field: 10000, Name: "google.golang.org.proto2_20160225.Message.extension_optional_bool", Tag: "varint,10000,opt,name=extension_optional_bool,json=extensionOptionalBool", } var E_Message_ExtensionOptionalInt32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 10001, Name: "google.golang.org.proto2_20160225.Message.extension_optional_int32", Tag: "varint,10001,opt,name=extension_optional_int32,json=extensionOptionalInt32", } var E_Message_ExtensionOptionalSint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 10002, Name: "google.golang.org.proto2_20160225.Message.extension_optional_sint32", Tag: "zigzag32,10002,opt,name=extension_optional_sint32,json=extensionOptionalSint32", } var E_Message_ExtensionOptionalUint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 10003, Name: "google.golang.org.proto2_20160225.Message.extension_optional_uint32", Tag: "varint,10003,opt,name=extension_optional_uint32,json=extensionOptionalUint32", } var E_Message_ExtensionOptionalInt64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 10004, Name: "google.golang.org.proto2_20160225.Message.extension_optional_int64", Tag: "varint,10004,opt,name=extension_optional_int64,json=extensionOptionalInt64", } var E_Message_ExtensionOptionalSint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 10005, Name: "google.golang.org.proto2_20160225.Message.extension_optional_sint64", Tag: "zigzag64,10005,opt,name=extension_optional_sint64,json=extensionOptionalSint64", } var E_Message_ExtensionOptionalUint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 10006, Name: "google.golang.org.proto2_20160225.Message.extension_optional_uint64", Tag: "varint,10006,opt,name=extension_optional_uint64,json=extensionOptionalUint64", } var E_Message_ExtensionOptionalFixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 10007, Name: "google.golang.org.proto2_20160225.Message.extension_optional_fixed32", Tag: "fixed32,10007,opt,name=extension_optional_fixed32,json=extensionOptionalFixed32", } var E_Message_ExtensionOptionalSfixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 10008, Name: "google.golang.org.proto2_20160225.Message.extension_optional_sfixed32", Tag: "fixed32,10008,opt,name=extension_optional_sfixed32,json=extensionOptionalSfixed32", } var E_Message_ExtensionOptionalFloat = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float32)(nil), Field: 10009, Name: "google.golang.org.proto2_20160225.Message.extension_optional_float", Tag: "fixed32,10009,opt,name=extension_optional_float,json=extensionOptionalFloat", } var E_Message_ExtensionOptionalFixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 10010, Name: "google.golang.org.proto2_20160225.Message.extension_optional_fixed64", Tag: "fixed64,10010,opt,name=extension_optional_fixed64,json=extensionOptionalFixed64", } var E_Message_ExtensionOptionalSfixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 10011, Name: "google.golang.org.proto2_20160225.Message.extension_optional_sfixed64", Tag: "fixed64,10011,opt,name=extension_optional_sfixed64,json=extensionOptionalSfixed64", } var E_Message_ExtensionOptionalDouble = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float64)(nil), Field: 10012, Name: "google.golang.org.proto2_20160225.Message.extension_optional_double", Tag: "fixed64,10012,opt,name=extension_optional_double,json=extensionOptionalDouble", } var E_Message_ExtensionOptionalString = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*string)(nil), Field: 10013, Name: "google.golang.org.proto2_20160225.Message.extension_optional_string", Tag: "bytes,10013,opt,name=extension_optional_string,json=extensionOptionalString", } var E_Message_ExtensionOptionalBytes = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]byte)(nil), Field: 10014, Name: "google.golang.org.proto2_20160225.Message.extension_optional_bytes", Tag: "bytes,10014,opt,name=extension_optional_bytes,json=extensionOptionalBytes", } var E_Message_ExtensionOptionalChildEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ChildEnum)(nil), Field: 10015, Name: "google.golang.org.proto2_20160225.Message.extension_optional_child_enum", Tag: "varint,10015,opt,name=extension_optional_child_enum,json=extensionOptionalChildEnum,enum=google.golang.org.proto2_20160225.Message_ChildEnum", } var E_Message_ExtensionOptionalChildMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ChildMessage)(nil), Field: 10016, Name: "google.golang.org.proto2_20160225.Message.extension_optional_child_message", Tag: "bytes,10016,opt,name=extension_optional_child_message,json=extensionOptionalChildMessage", } var E_Message_ExtensionOptionalNamedGroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_NamedGroup)(nil), Field: 10017, Name: "google.golang.org.proto2_20160225.Message.extension_optional_named_group", Tag: "bytes,10017,opt,name=extension_optional_named_group,json=extensionOptionalNamedGroup", } var E_Message_ExtensionOptionalSiblingEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*SiblingEnum)(nil), Field: 10018, Name: "google.golang.org.proto2_20160225.Message.extension_optional_sibling_enum", Tag: "varint,10018,opt,name=extension_optional_sibling_enum,json=extensionOptionalSiblingEnum,enum=google.golang.org.proto2_20160225.SiblingEnum", } var E_Message_ExtensionOptionalSiblingMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*SiblingMessage)(nil), Field: 10019, Name: "google.golang.org.proto2_20160225.Message.extension_optional_sibling_message", Tag: "bytes,10019,opt,name=extension_optional_sibling_message,json=extensionOptionalSiblingMessage", } var E_Message_Extensionoptionalgroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ExtensionOptionalGroup)(nil), Field: 10020, Name: "google.golang.org.proto2_20160225.Message.extensionoptionalgroup", Tag: "group,10020,opt,name=ExtensionOptionalGroup,json=extensionoptionalgroup", } var E_Message_ExtensionDefaultedBool = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*bool)(nil), Field: 20000, Name: "google.golang.org.proto2_20160225.Message.extension_defaulted_bool", Tag: "varint,20000,opt,name=extension_defaulted_bool,json=extensionDefaultedBool,def=1", } var E_Message_ExtensionDefaultedInt32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 20001, Name: "google.golang.org.proto2_20160225.Message.extension_defaulted_int32", Tag: "varint,20001,opt,name=extension_defaulted_int32,json=extensionDefaultedInt32,def=-12345", } var E_Message_ExtensionDefaultedSint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 20002, Name: "google.golang.org.proto2_20160225.Message.extension_defaulted_sint32", Tag: "zigzag32,20002,opt,name=extension_defaulted_sint32,json=extensionDefaultedSint32,def=-3200", } var E_Message_ExtensionDefaultedUint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 20003, Name: "google.golang.org.proto2_20160225.Message.extension_defaulted_uint32", Tag: "varint,20003,opt,name=extension_defaulted_uint32,json=extensionDefaultedUint32,def=3200", } var E_Message_ExtensionDefaultedInt64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 20004, Name: "google.golang.org.proto2_20160225.Message.extension_defaulted_int64", Tag: "varint,20004,opt,name=extension_defaulted_int64,json=extensionDefaultedInt64,def=-123456789", } var E_Message_ExtensionDefaultedSint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 20005, Name: "google.golang.org.proto2_20160225.Message.extension_defaulted_sint64", Tag: "zigzag64,20005,opt,name=extension_defaulted_sint64,json=extensionDefaultedSint64,def=-6400", } var E_Message_ExtensionDefaultedUint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 20006, Name: "google.golang.org.proto2_20160225.Message.extension_defaulted_uint64", Tag: "varint,20006,opt,name=extension_defaulted_uint64,json=extensionDefaultedUint64,def=6400", } var E_Message_ExtensionDefaultedFixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 20007, Name: "google.golang.org.proto2_20160225.Message.extension_defaulted_fixed32", Tag: "fixed32,20007,opt,name=extension_defaulted_fixed32,json=extensionDefaultedFixed32,def=320000", } var E_Message_ExtensionDefaultedSfixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 20008, Name: "google.golang.org.proto2_20160225.Message.extension_defaulted_sfixed32", Tag: "fixed32,20008,opt,name=extension_defaulted_sfixed32,json=extensionDefaultedSfixed32,def=-320000", } var E_Message_ExtensionDefaultedFloat = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float32)(nil), Field: 20009, Name: "google.golang.org.proto2_20160225.Message.extension_defaulted_float", Tag: "fixed32,20009,opt,name=extension_defaulted_float,json=extensionDefaultedFloat,def=3.14159", } var E_Message_ExtensionDefaultedFixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 20010, Name: "google.golang.org.proto2_20160225.Message.extension_defaulted_fixed64", Tag: "fixed64,20010,opt,name=extension_defaulted_fixed64,json=extensionDefaultedFixed64,def=640000", } var E_Message_ExtensionDefaultedSfixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 20011, Name: "google.golang.org.proto2_20160225.Message.extension_defaulted_sfixed64", Tag: "fixed64,20011,opt,name=extension_defaulted_sfixed64,json=extensionDefaultedSfixed64,def=-640000", } var E_Message_ExtensionDefaultedDouble = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float64)(nil), Field: 20012, Name: "google.golang.org.proto2_20160225.Message.extension_defaulted_double", Tag: "fixed64,20012,opt,name=extension_defaulted_double,json=extensionDefaultedDouble,def=3.14159265359", } var E_Message_ExtensionDefaultedString = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*string)(nil), Field: 20013, Name: "google.golang.org.proto2_20160225.Message.extension_defaulted_string", Tag: "bytes,20013,opt,name=extension_defaulted_string,json=extensionDefaultedString,def=hello, \"world!\"\n", } var E_Message_ExtensionDefaultedBytes = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]byte)(nil), Field: 20014, Name: "google.golang.org.proto2_20160225.Message.extension_defaulted_bytes", Tag: "bytes,20014,opt,name=extension_defaulted_bytes,json=extensionDefaultedBytes,def=dead\\336\\255\\276\\357beef", } var E_Message_ExtensionDefaultedChildEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ChildEnum)(nil), Field: 20015, Name: "google.golang.org.proto2_20160225.Message.extension_defaulted_child_enum", Tag: "varint,20015,opt,name=extension_defaulted_child_enum,json=extensionDefaultedChildEnum,enum=google.golang.org.proto2_20160225.Message_ChildEnum,def=0", } var E_Message_ExtensionDefaultedSiblingEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*SiblingEnum)(nil), Field: 20016, Name: "google.golang.org.proto2_20160225.Message.extension_defaulted_sibling_enum", Tag: "varint,20016,opt,name=extension_defaulted_sibling_enum,json=extensionDefaultedSiblingEnum,enum=google.golang.org.proto2_20160225.SiblingEnum,def=0", } var E_Message_ExtensionRepeatedBool = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]bool)(nil), Field: 30000, Name: "google.golang.org.proto2_20160225.Message.extension_repeated_bool", Tag: "varint,30000,rep,name=extension_repeated_bool,json=extensionRepeatedBool", } var E_Message_ExtensionRepeatedInt32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int32)(nil), Field: 30001, Name: "google.golang.org.proto2_20160225.Message.extension_repeated_int32", Tag: "varint,30001,rep,name=extension_repeated_int32,json=extensionRepeatedInt32", } var E_Message_ExtensionRepeatedSint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int32)(nil), Field: 30002, Name: "google.golang.org.proto2_20160225.Message.extension_repeated_sint32", Tag: "zigzag32,30002,rep,name=extension_repeated_sint32,json=extensionRepeatedSint32", } var E_Message_ExtensionRepeatedUint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint32)(nil), Field: 30003, Name: "google.golang.org.proto2_20160225.Message.extension_repeated_uint32", Tag: "varint,30003,rep,name=extension_repeated_uint32,json=extensionRepeatedUint32", } var E_Message_ExtensionRepeatedInt64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int64)(nil), Field: 30004, Name: "google.golang.org.proto2_20160225.Message.extension_repeated_int64", Tag: "varint,30004,rep,name=extension_repeated_int64,json=extensionRepeatedInt64", } var E_Message_ExtensionRepeatedSint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int64)(nil), Field: 30005, Name: "google.golang.org.proto2_20160225.Message.extension_repeated_sint64", Tag: "zigzag64,30005,rep,name=extension_repeated_sint64,json=extensionRepeatedSint64", } var E_Message_ExtensionRepeatedUint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint64)(nil), Field: 30006, Name: "google.golang.org.proto2_20160225.Message.extension_repeated_uint64", Tag: "varint,30006,rep,name=extension_repeated_uint64,json=extensionRepeatedUint64", } var E_Message_ExtensionRepeatedFixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint32)(nil), Field: 30007, Name: "google.golang.org.proto2_20160225.Message.extension_repeated_fixed32", Tag: "fixed32,30007,rep,name=extension_repeated_fixed32,json=extensionRepeatedFixed32", } var E_Message_ExtensionRepeatedSfixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int32)(nil), Field: 30008, Name: "google.golang.org.proto2_20160225.Message.extension_repeated_sfixed32", Tag: "fixed32,30008,rep,name=extension_repeated_sfixed32,json=extensionRepeatedSfixed32", } var E_Message_ExtensionRepeatedFloat = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]float32)(nil), Field: 30009, Name: "google.golang.org.proto2_20160225.Message.extension_repeated_float", Tag: "fixed32,30009,rep,name=extension_repeated_float,json=extensionRepeatedFloat", } var E_Message_ExtensionRepeatedFixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint64)(nil), Field: 30010, Name: "google.golang.org.proto2_20160225.Message.extension_repeated_fixed64", Tag: "fixed64,30010,rep,name=extension_repeated_fixed64,json=extensionRepeatedFixed64", } var E_Message_ExtensionRepeatedSfixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int64)(nil), Field: 30011, Name: "google.golang.org.proto2_20160225.Message.extension_repeated_sfixed64", Tag: "fixed64,30011,rep,name=extension_repeated_sfixed64,json=extensionRepeatedSfixed64", } var E_Message_ExtensionRepeatedDouble = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]float64)(nil), Field: 30012, Name: "google.golang.org.proto2_20160225.Message.extension_repeated_double", Tag: "fixed64,30012,rep,name=extension_repeated_double,json=extensionRepeatedDouble", } var E_Message_ExtensionRepeatedString = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]string)(nil), Field: 30013, Name: "google.golang.org.proto2_20160225.Message.extension_repeated_string", Tag: "bytes,30013,rep,name=extension_repeated_string,json=extensionRepeatedString", } var E_Message_ExtensionRepeatedBytes = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([][]byte)(nil), Field: 30014, Name: "google.golang.org.proto2_20160225.Message.extension_repeated_bytes", Tag: "bytes,30014,rep,name=extension_repeated_bytes,json=extensionRepeatedBytes", } var E_Message_ExtensionRepeatedChildEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]Message_ChildEnum)(nil), Field: 30015, Name: "google.golang.org.proto2_20160225.Message.extension_repeated_child_enum", Tag: "varint,30015,rep,name=extension_repeated_child_enum,json=extensionRepeatedChildEnum,enum=google.golang.org.proto2_20160225.Message_ChildEnum", } var E_Message_ExtensionRepeatedChildMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*Message_ChildMessage)(nil), Field: 30016, Name: "google.golang.org.proto2_20160225.Message.extension_repeated_child_message", Tag: "bytes,30016,rep,name=extension_repeated_child_message,json=extensionRepeatedChildMessage", } var E_Message_ExtensionRepeatedNamedGroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*Message_NamedGroup)(nil), Field: 30017, Name: "google.golang.org.proto2_20160225.Message.extension_repeated_named_group", Tag: "bytes,30017,rep,name=extension_repeated_named_group,json=extensionRepeatedNamedGroup", } var E_Message_ExtensionRepeatedSiblingEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]SiblingEnum)(nil), Field: 30018, Name: "google.golang.org.proto2_20160225.Message.extension_repeated_sibling_enum", Tag: "varint,30018,rep,name=extension_repeated_sibling_enum,json=extensionRepeatedSiblingEnum,enum=google.golang.org.proto2_20160225.SiblingEnum", } var E_Message_ExtensionRepeatedSiblingMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*SiblingMessage)(nil), Field: 30019, Name: "google.golang.org.proto2_20160225.Message.extension_repeated_sibling_message", Tag: "bytes,30019,rep,name=extension_repeated_sibling_message,json=extensionRepeatedSiblingMessage", } var E_Message_Extensionrepeatedgroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*Message_ExtensionRepeatedGroup)(nil), Field: 30020, Name: "google.golang.org.proto2_20160225.Message.extensionrepeatedgroup", Tag: "group,30020,rep,name=ExtensionRepeatedGroup,json=extensionrepeatedgroup", } type Message_ChildMessage struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` F4 *Message `protobuf:"bytes,4,opt,name=f4" json:"f4,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_ChildMessage) Reset() { *m = Message_ChildMessage{} } func (m *Message_ChildMessage) String() string { return proto.CompactTextString(m) } func (*Message_ChildMessage) ProtoMessage() {} func (*Message_ChildMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 0} } func (m *Message_ChildMessage) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_ChildMessage) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_ChildMessage) GetF3() []string { if m != nil { return m.F3 } return nil } func (m *Message_ChildMessage) GetF4() *Message { if m != nil { return m.F4 } return nil } type Message_NamedGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` F4 *Message `protobuf:"bytes,4,opt,name=f4" json:"f4,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_NamedGroup) Reset() { *m = Message_NamedGroup{} } func (m *Message_NamedGroup) String() string { return proto.CompactTextString(m) } func (*Message_NamedGroup) ProtoMessage() {} func (*Message_NamedGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 1} } func (m *Message_NamedGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_NamedGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_NamedGroup) GetF3() []string { if m != nil { return m.F3 } return nil } func (m *Message_NamedGroup) GetF4() *Message { if m != nil { return m.F4 } return nil } type Message_OptionalGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_OptionalGroup) Reset() { *m = Message_OptionalGroup{} } func (m *Message_OptionalGroup) String() string { return proto.CompactTextString(m) } func (*Message_OptionalGroup) ProtoMessage() {} func (*Message_OptionalGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 2} } func (m *Message_OptionalGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_OptionalGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_OptionalGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_RequiredGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_RequiredGroup) Reset() { *m = Message_RequiredGroup{} } func (m *Message_RequiredGroup) String() string { return proto.CompactTextString(m) } func (*Message_RequiredGroup) ProtoMessage() {} func (*Message_RequiredGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 3} } func (m *Message_RequiredGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_RequiredGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_RequiredGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_RepeatedGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_RepeatedGroup) Reset() { *m = Message_RepeatedGroup{} } func (m *Message_RepeatedGroup) String() string { return proto.CompactTextString(m) } func (*Message_RepeatedGroup) ProtoMessage() {} func (*Message_RepeatedGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 4} } func (m *Message_RepeatedGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_RepeatedGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_RepeatedGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_OneofGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_OneofGroup) Reset() { *m = Message_OneofGroup{} } func (m *Message_OneofGroup) String() string { return proto.CompactTextString(m) } func (*Message_OneofGroup) ProtoMessage() {} func (*Message_OneofGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 33} } func (m *Message_OneofGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_OneofGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_OneofGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_ExtensionOptionalGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_ExtensionOptionalGroup) Reset() { *m = Message_ExtensionOptionalGroup{} } func (m *Message_ExtensionOptionalGroup) String() string { return proto.CompactTextString(m) } func (*Message_ExtensionOptionalGroup) ProtoMessage() {} func (*Message_ExtensionOptionalGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 34} } func (m *Message_ExtensionOptionalGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_ExtensionOptionalGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_ExtensionOptionalGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_ExtensionRepeatedGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_ExtensionRepeatedGroup) Reset() { *m = Message_ExtensionRepeatedGroup{} } func (m *Message_ExtensionRepeatedGroup) String() string { return proto.CompactTextString(m) } func (*Message_ExtensionRepeatedGroup) ProtoMessage() {} func (*Message_ExtensionRepeatedGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 35} } func (m *Message_ExtensionRepeatedGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_ExtensionRepeatedGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_ExtensionRepeatedGroup) GetF3() []string { if m != nil { return m.F3 } return nil } func init() { proto.RegisterType((*SiblingMessage)(nil), "google.golang.org.proto2_20160225.SiblingMessage") proto.RegisterType((*Message)(nil), "google.golang.org.proto2_20160225.Message") proto.RegisterType((*Message_ChildMessage)(nil), "google.golang.org.proto2_20160225.Message.ChildMessage") proto.RegisterType((*Message_NamedGroup)(nil), "google.golang.org.proto2_20160225.Message.NamedGroup") proto.RegisterType((*Message_OptionalGroup)(nil), "google.golang.org.proto2_20160225.Message.OptionalGroup") proto.RegisterType((*Message_RequiredGroup)(nil), "google.golang.org.proto2_20160225.Message.RequiredGroup") proto.RegisterType((*Message_RepeatedGroup)(nil), "google.golang.org.proto2_20160225.Message.RepeatedGroup") proto.RegisterType((*Message_OneofGroup)(nil), "google.golang.org.proto2_20160225.Message.OneofGroup") proto.RegisterType((*Message_ExtensionOptionalGroup)(nil), "google.golang.org.proto2_20160225.Message.ExtensionOptionalGroup") proto.RegisterType((*Message_ExtensionRepeatedGroup)(nil), "google.golang.org.proto2_20160225.Message.ExtensionRepeatedGroup") proto.RegisterEnum("google.golang.org.proto2_20160225.SiblingEnum", SiblingEnum_name, SiblingEnum_value) proto.RegisterEnum("google.golang.org.proto2_20160225.Message_ChildEnum", Message_ChildEnum_name, Message_ChildEnum_value) proto.RegisterExtension(E_Message_ExtensionOptionalBool) proto.RegisterExtension(E_Message_ExtensionOptionalInt32) proto.RegisterExtension(E_Message_ExtensionOptionalSint32) proto.RegisterExtension(E_Message_ExtensionOptionalUint32) proto.RegisterExtension(E_Message_ExtensionOptionalInt64) proto.RegisterExtension(E_Message_ExtensionOptionalSint64) proto.RegisterExtension(E_Message_ExtensionOptionalUint64) proto.RegisterExtension(E_Message_ExtensionOptionalFixed32) proto.RegisterExtension(E_Message_ExtensionOptionalSfixed32) proto.RegisterExtension(E_Message_ExtensionOptionalFloat) proto.RegisterExtension(E_Message_ExtensionOptionalFixed64) proto.RegisterExtension(E_Message_ExtensionOptionalSfixed64) proto.RegisterExtension(E_Message_ExtensionOptionalDouble) proto.RegisterExtension(E_Message_ExtensionOptionalString) proto.RegisterExtension(E_Message_ExtensionOptionalBytes) proto.RegisterExtension(E_Message_ExtensionOptionalChildEnum) proto.RegisterExtension(E_Message_ExtensionOptionalChildMessage) proto.RegisterExtension(E_Message_ExtensionOptionalNamedGroup) proto.RegisterExtension(E_Message_ExtensionOptionalSiblingEnum) proto.RegisterExtension(E_Message_ExtensionOptionalSiblingMessage) proto.RegisterExtension(E_Message_Extensionoptionalgroup) proto.RegisterExtension(E_Message_ExtensionDefaultedBool) proto.RegisterExtension(E_Message_ExtensionDefaultedInt32) proto.RegisterExtension(E_Message_ExtensionDefaultedSint32) proto.RegisterExtension(E_Message_ExtensionDefaultedUint32) proto.RegisterExtension(E_Message_ExtensionDefaultedInt64) proto.RegisterExtension(E_Message_ExtensionDefaultedSint64) proto.RegisterExtension(E_Message_ExtensionDefaultedUint64) proto.RegisterExtension(E_Message_ExtensionDefaultedFixed32) proto.RegisterExtension(E_Message_ExtensionDefaultedSfixed32) proto.RegisterExtension(E_Message_ExtensionDefaultedFloat) proto.RegisterExtension(E_Message_ExtensionDefaultedFixed64) proto.RegisterExtension(E_Message_ExtensionDefaultedSfixed64) proto.RegisterExtension(E_Message_ExtensionDefaultedDouble) proto.RegisterExtension(E_Message_ExtensionDefaultedString) proto.RegisterExtension(E_Message_ExtensionDefaultedBytes) proto.RegisterExtension(E_Message_ExtensionDefaultedChildEnum) proto.RegisterExtension(E_Message_ExtensionDefaultedSiblingEnum) proto.RegisterExtension(E_Message_ExtensionRepeatedBool) proto.RegisterExtension(E_Message_ExtensionRepeatedInt32) proto.RegisterExtension(E_Message_ExtensionRepeatedSint32) proto.RegisterExtension(E_Message_ExtensionRepeatedUint32) proto.RegisterExtension(E_Message_ExtensionRepeatedInt64) proto.RegisterExtension(E_Message_ExtensionRepeatedSint64) proto.RegisterExtension(E_Message_ExtensionRepeatedUint64) proto.RegisterExtension(E_Message_ExtensionRepeatedFixed32) proto.RegisterExtension(E_Message_ExtensionRepeatedSfixed32) proto.RegisterExtension(E_Message_ExtensionRepeatedFloat) proto.RegisterExtension(E_Message_ExtensionRepeatedFixed64) proto.RegisterExtension(E_Message_ExtensionRepeatedSfixed64) proto.RegisterExtension(E_Message_ExtensionRepeatedDouble) proto.RegisterExtension(E_Message_ExtensionRepeatedString) proto.RegisterExtension(E_Message_ExtensionRepeatedBytes) proto.RegisterExtension(E_Message_ExtensionRepeatedChildEnum) proto.RegisterExtension(E_Message_ExtensionRepeatedChildMessage) proto.RegisterExtension(E_Message_ExtensionRepeatedNamedGroup) proto.RegisterExtension(E_Message_ExtensionRepeatedSiblingEnum) proto.RegisterExtension(E_Message_ExtensionRepeatedSiblingMessage) proto.RegisterExtension(E_Message_Extensionrepeatedgroup) } var fileDescriptor0 = []byte{ // 4469 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5c, 0x69, 0x70, 0x23, 0xc7, 0x75, 0xe6, 0x00, 0x04, 0xb8, 0xec, 0x25, 0x48, 0x70, 0x76, 0x97, 0x9c, 0xa5, 0xa4, 0x08, 0x5e, 0x3b, 0x0e, 0xa2, 0x68, 0xb9, 0xe4, 0xb0, 0xd9, 0x2b, 0x21, 0x3a, 0xbc, 0x94, 0x56, 0x86, 0x1c, 0x0b, 0x72, 0x8d, 0x6a, 0x53, 0xa9, 0x94, 0x2a, 0x0c, 0x77, 0x09, 0x70, 0x29, 0xe1, 0xa0, 0x48, 0x40, 0xd2, 0xc6, 0x4e, 0x69, 0xe3, 0x9c, 0x3f, 0xe5, 0xfb, 0x82, 0x6d, 0x59, 0xb7, 0x2d, 0x69, 0x25, 0xdf, 0x97, 0x2e, 0x1f, 0x49, 0xe4, 0xfb, 0xca, 0xe1, 0x5c, 0xce, 0x7d, 0x39, 0xf7, 0x7d, 0x1f, 0xd5, 0xfd, 0xba, 0xa7, 0xbb, 0x67, 0x7a, 0x40, 0xf6, 0xc0, 0xa5, 0x1f, 0xaa, 0xd2, 0x36, 0x5e, 0xbf, 0xaf, 0xdf, 0x87, 0x7e, 0xef, 0x7d, 0xec, 0x99, 0x06, 0x7a, 0xe9, 0xd6, 0x76, 0xa7, 0xdb, 0xf1, 0x57, 0xfd, 0x85, 0x45, 0xb2, 0xe0, 0xfb, 0xcb, 0xab, 0x7e, 0xe3, 0xcc, 0xc2, 0xf2, 0xd2, 0x99, 0xe5, 0x63, 0xdd, 0xfa, 0x4e, 0x77, 0x9e, 0x7d, 0xea, 0xbe, 0x64, 0xa3, 0xd3, 0xd9, 0x68, 0xd6, 0xe7, 0x37, 0x3a, 0xcd, 0xb5, 0xf6, 0xc6, 0x7c, 0x67, 0x7b, 0x63, 0x3e, 0x32, 0xed, 0xc8, 0xeb, 0xd0, 0xe4, 0x2d, 0x9b, 0xa7, 0x9b, 0x9b, 0xed, 0x8d, 0x9b, 0xea, 0x3b, 0x3b, 0x6b, 0x1b, 0x75, 0x77, 0x12, 0x65, 0x1a, 0x8b, 0x9e, 0x53, 0x72, 0xca, 0xe3, 0x41, 0xa6, 0xb1, 0xc8, 0xfe, 0xed, 0x7b, 0x99, 0x52, 0x86, 0xfd, 0xdb, 0x67, 0xff, 0x5e, 0xf2, 0xb2, 0xa5, 0x2c, 0xfb, 0xf7, 0x92, 0x5b, 0x41, 0x99, 0x06, 0xf6, 0x46, 0x4b, 0x4e, 0x79, 0xbf, 0x7f, 0xd9, 0xfc, 0xae, 0x88, 0xf3, 0x1c, 0x27, 0xc8, 0x34, 0xf0, 0x91, 0xef, 0x3c, 0xe6, 0xa0, 0x31, 0x01, 0x7c, 0x0a, 0xa1, 0xf6, 0x5a, 0xab, 0xbe, 0xbe, 0xb1, 0xdd, 0xe9, 0x6d, 0xb1, 0x05, 0x20, 0x7f, 0x79, 0xef, 0x0e, 0xe7, 0x6b, 0x74, 0xf2, 0x2b, 0xe9, 0xe4, 0x40, 0x71, 0xe4, 0xbe, 0x14, 0x15, 0x3a, 0x5b, 0xdd, 0xcd, 0x4e, 0x7b, 0xad, 0xb9, 0x7a, 0xba, 0xd3, 0x69, 0x7a, 0xeb, 0x25, 0xa7, 0xbc, 0x2f, 0x98, 0x10, 0x83, 0x2b, 0x9d, 0x4e, 0xd3, 0xfd, 0x7e, 0x34, 0x19, 0x1a, 0x6d, 0xb6, 0xbb, 0x4b, 0xbe, 0x57, 0x2f, 0x39, 0xe5, 0x5c, 0x10, 0x4e, 0xbd, 0x91, 0x0e, 0xba, 0x3f, 0x80, 0xa6, 0x42, 0xb3, 0x1d, 0xb0, 0x6b, 0x94, 0x9c, 0xf2, 0x74, 0x10, 0xce, 0xbe, 0x65, 0x33, 0x66, 0xd8, 0x03, 0xc3, 0x8d, 0x92, 0x53, 0x2e, 0x48, 0xc3, 0x53, 0x60, 0x18, 0x01, 0x26, 0xd8, 0x3b, 0x5b, 0x72, 0xca, 0x59, 0x0d, 0x98, 0xe0, 0x18, 0x30, 0xc1, 0xde, 0x66, 0xc9, 0x29, 0xbb, 0x3a, 0x70, 0xc4, 0xb0, 0x07, 0x86, 0xb7, 0x95, 0x9c, 0xf2, 0xa8, 0x0e, 0x4c, 0xb0, 0xfb, 0x83, 0xa8, 0x18, 0x1a, 0x36, 0x36, 0xef, 0xae, 0xaf, 0x2f, 0xf9, 0xde, 0xed, 0x25, 0xa7, 0x3c, 0x16, 0x84, 0x0e, 0x6e, 0x80, 0x61, 0xf7, 0x87, 0xd0, 0xb4, 0x04, 0x17, 0xb6, 0xcd, 0x92, 0x53, 0x9e, 0x0a, 0x42, 0x1f, 0xb7, 0xf0, 0x71, 0x2d, 0xa0, 0x46, 0xb3, 0xb3, 0xd6, 0xf5, 0x5a, 0x25, 0xa7, 0x9c, 0x91, 0x01, 0xdd, 0x40, 0x07, 0xe3, 0xf0, 0x04, 0x7b, 0xed, 0x92, 0x53, 0xce, 0x47, 0xe0, 0x09, 0x36, 0xc0, 0x13, 0xec, 0x75, 0x4a, 0x4e, 0xb9, 0x18, 0x85, 0x8f, 0xc4, 0xbf, 0xde, 0xe9, 0x9d, 0x6e, 0xd6, 0xbd, 0xad, 0x92, 0x53, 0x76, 0x64, 0xfc, 0xd7, 0xb3, 0x51, 0x9d, 0xd1, 0xee, 0xf6, 0x66, 0x7b, 0xc3, 0xbb, 0x83, 0xed, 0x79, 0xc9, 0x28, 0x1b, 0xd5, 0x02, 0x3a, 0x7d, 0xae, 0x5b, 0xdf, 0xf1, 0xb6, 0x4b, 0x4e, 0x79, 0x42, 0x06, 0xb4, 0x42, 0x07, 0xdd, 0x75, 0x74, 0x20, 0x34, 0x3b, 0x73, 0x76, 0xb3, 0xb9, 0xbe, 0x5a, 0x6f, 0xf7, 0x5a, 0xde, 0x4e, 0xc9, 0x29, 0x4f, 0xfa, 0xd8, 0x62, 0x1b, 0x5f, 0x47, 0x27, 0x9f, 0x6c, 0xf7, 0x5a, 0x41, 0x18, 0x76, 0x38, 0xe4, 0xb6, 0xd0, 0x4c, 0x04, 0xa5, 0x05, 0xd3, 0xbc, 0x2e, 0x4b, 0xc0, 0xe3, 0xb6, 0x40, 0x22, 0x1b, 0x0f, 0x6a, 0x58, 0x22, 0x25, 0x37, 0x50, 0x38, 0xbe, 0xca, 0x52, 0x6a, 0x15, 0x92, 0xb3, 0xc7, 0xc0, 0x52, 0x26, 0xa7, 0x2b, 0x5c, 0xca, 0x31, 0xf7, 0x34, 0x3a, 0xa4, 0xec, 0x6f, 0x56, 0x8f, 0x80, 0xbf, 0x3b, 0x19, 0x7f, 0xf3, 0x7b, 0x40, 0xe2, 0x65, 0x8c, 0x31, 0x77, 0x40, 0x66, 0x45, 0x38, 0xe8, 0xde, 0x8e, 0xbc, 0x18, 0x86, 0x60, 0xef, 0x2e, 0x16, 0xd0, 0xe2, 0xde, 0x61, 0x04, 0x6f, 0x33, 0x11, 0x24, 0xc1, 0xdc, 0x4f, 0xc8, 0xaa, 0x03, 0x94, 0xdd, 0xcd, 0xea, 0xd9, 0x15, 0x16, 0x94, 0xdd, 0xcc, 0xe7, 0x03, 0x6b, 0xba, 0x3b, 0xf7, 0x72, 0x34, 0xb9, 0x5e, 0x6f, 0xac, 0xf5, 0x9a, 0xdd, 0xfa, 0x3a, 0x94, 0xb5, 0x17, 0x68, 0xc5, 0xdc, 0x57, 0x19, 0xed, 0x6e, 0xf7, 0xea, 0x41, 0x21, 0xfc, 0x90, 0x95, 0xb7, 0x05, 0x34, 0x25, 0xad, 0xa1, 0x1c, 0x7d, 0x81, 0x9a, 0xe7, 0x2a, 0xf9, 0xa3, 0x8b, 0xfe, 0x12, 0x5e, 0x0e, 0xa4, 0x37, 0xa8, 0x74, 0x8b, 0xa8, 0x28, 0x67, 0xf0, 0x52, 0xf7, 0x45, 0x3a, 0x65, 0xba, 0x92, 0x3b, 0xba, 0xe4, 0x2f, 0x2c, 0x04, 0xd2, 0x23, 0xaf, 0x79, 0x0b, 0xea, 0x14, 0x5e, 0xf4, 0xbe, 0x44, 0xa7, 0x14, 0x2a, 0xa3, 0x91, 0x19, 0xbc, 0xf8, 0xe1, 0xc8, 0xb2, 0x08, 0xf6, 0xbe, 0x4c, 0x27, 0x64, 0x2b, 0x08, 0x96, 0x45, 0x8e, 0x5f, 0x71, 0xa5, 0xbe, 0x34, 0x82, 0xe3, 0x4b, 0x23, 0xd8, 0xfb, 0x0a, 0x9d, 0xe6, 0x56, 0x72, 0x47, 0x09, 0x8e, 0x2d, 0x8d, 0xe0, 0xf8, 0xd2, 0x08, 0xf6, 0xbe, 0x4a, 0xa7, 0x8c, 0x56, 0x46, 0x23, 0x33, 0x78, 0x79, 0xc4, 0x68, 0x5a, 0xce, 0x10, 0x35, 0xef, 0x6b, 0x74, 0xca, 0x58, 0x25, 0x4f, 0xa3, 0x59, 0x58, 0x08, 0xa4, 0x4f, 0x51, 0x29, 0x8f, 0x23, 0x57, 0x59, 0x9a, 0x98, 0xf6, 0x75, 0x3a, 0x6d, 0xaa, 0x32, 0x76, 0x94, 0xcf, 0x93, 0x9e, 0xc3, 0xaa, 0xb9, 0xa8, 0x32, 0x01, 0x65, 0xf3, 0x1b, 0x74, 0x56, 0xa6, 0x32, 0xb6, 0x34, 0xbf, 0x88, 0x17, 0x97, 0x55, 0x1a, 0xa0, 0x82, 0xc6, 0x57, 0x48, 0xb0, 0xf7, 0x4d, 0x3a, 0x29, 0x5f, 0xc9, 0xd3, 0xa0, 0xe2, 0x2b, 0x24, 0xd8, 0xb4, 0x42, 0x82, 0xbd, 0x6f, 0xd1, 0x69, 0xc5, 0xca, 0xd8, 0x51, 0x3e, 0x2f, 0xba, 0x42, 0x82, 0xdd, 0x2b, 0x55, 0x0a, 0x79, 0x65, 0xfd, 0x35, 0x3a, 0xcd, 0xa9, 0x14, 0xf8, 0x12, 0x7d, 0xb2, 0xbc, 0xb4, 0x7c, 0xa5, 0xc2, 0x25, 0x2f, 0xb5, 0x57, 0x69, 0x5f, 0x18, 0xd4, 0xda, 0x5f, 0x67, 0x02, 0xa3, 0x52, 0x3c, 0x5b, 0x6f, 0x36, 0x3b, 0x97, 0x97, 0x8e, 0xdc, 0xd5, 0xd9, 0x6e, 0xae, 0xbf, 0xe4, 0x08, 0x52, 0xbf, 0x3b, 0xa8, 0xbf, 0x2b, 0x2a, 0x35, 0x50, 0x80, 0x7f, 0x83, 0x4e, 0x9e, 0xa8, 0x78, 0xeb, 0xf5, 0xb5, 0xf5, 0x5b, 0x97, 0x96, 0xc8, 0xad, 0xfe, 0xf2, 0xf2, 0xad, 0xfe, 0x71, 0x72, 0xeb, 0xd2, 0xf2, 0xf1, 0xd3, 0xf5, 0x7a, 0x43, 0xe1, 0x0a, 0x8a, 0x73, 0x1b, 0x1d, 0x94, 0x3e, 0x94, 0xea, 0xfc, 0x9b, 0x4e, 0xfa, 0xf2, 0x5c, 0xc9, 0x9d, 0x78, 0xf5, 0x6b, 0xaa, 0x27, 0x02, 0xc9, 0xa7, 0x2c, 0xd3, 0x4d, 0x34, 0xa3, 0x6e, 0x51, 0xa5, 0x9e, 0x7d, 0xdb, 0x49, 0x53, 0xd0, 0x04, 0xd6, 0x41, 0x65, 0x63, 0xcb, 0xc2, 0xf6, 0x32, 0x54, 0xd8, 0xae, 0xdf, 0xd1, 0xdb, 0xdc, 0x16, 0xa5, 0xe0, 0x71, 0xaa, 0xd6, 0xf6, 0x05, 0x13, 0x62, 0x94, 0xd5, 0x80, 0x97, 0xa3, 0xc9, 0xd0, 0x0a, 0x92, 0xf3, 0x09, 0x6a, 0x96, 0x0b, 0xc2, 0xc9, 0x90, 0xf9, 0x65, 0x34, 0x15, 0xda, 0xf1, 0xc4, 0xbf, 0x40, 0x0d, 0xa7, 0x83, 0x70, 0x3e, 0x4f, 0x78, 0xd5, 0x92, 0xe7, 0xfb, 0x93, 0xd4, 0xb2, 0x20, 0x2d, 0x79, 0xa2, 0x47, 0xb0, 0x09, 0xf6, 0x9e, 0xa2, 0x86, 0x59, 0x0d, 0x9b, 0xe0, 0x18, 0x36, 0xc1, 0xde, 0x07, 0xa9, 0xa1, 0xab, 0x63, 0x47, 0x2c, 0x79, 0x42, 0x7f, 0x88, 0x5a, 0x8e, 0xea, 0xd8, 0x04, 0xbb, 0x97, 0xa1, 0x62, 0x68, 0x29, 0x32, 0xf2, 0xc3, 0xd4, 0x74, 0x2c, 0x08, 0x5d, 0x88, 0xfc, 0xbd, 0x1c, 0x4d, 0x4b, 0x7c, 0x61, 0xfc, 0x11, 0x6a, 0x3c, 0x15, 0x84, 0x5e, 0xc2, 0xa4, 0x55, 0xa3, 0x82, 0x9c, 0xfd, 0x28, 0x35, 0xcd, 0xc8, 0xa8, 0x20, 0x53, 0x63, 0x2b, 0x20, 0xd8, 0xfb, 0x18, 0xb5, 0xcc, 0x47, 0x56, 0x40, 0xb0, 0x61, 0x05, 0x04, 0x7b, 0x1f, 0xa7, 0xc6, 0xc5, 0xe8, 0x0a, 0x22, 0x2c, 0xf0, 0x9c, 0xfc, 0x04, 0xb5, 0x75, 0x24, 0x0b, 0x3c, 0x07, 0x35, 0x66, 0x21, 0x05, 0x3f, 0x09, 0x9a, 0x5e, 0x32, 0x0b, 0xf9, 0xa6, 0x46, 0x05, 0xe9, 0xf6, 0x29, 0x6a, 0x38, 0x21, 0xa3, 0x82, 0x9c, 0xaa, 0xa3, 0x03, 0xa1, 0x9d, 0x92, 0x52, 0x9f, 0xa6, 0xc6, 0xa9, 0x15, 0x8f, 0xf0, 0x28, 0x53, 0xa9, 0x8d, 0x66, 0x22, 0x30, 0xa2, 0x67, 0x3f, 0x4d, 0x91, 0x86, 0x91, 0x3c, 0x1a, 0x98, 0x68, 0xdc, 0x67, 0x51, 0x38, 0xae, 0x49, 0x9e, 0x67, 0x00, 0x2d, 0xad, 0xe6, 0x11, 0x3e, 0x15, 0xcd, 0x73, 0x06, 0x1d, 0x52, 0x36, 0xbb, 0x52, 0x23, 0x9e, 0x05, 0x0a, 0xad, 0x45, 0x8f, 0x4c, 0x11, 0x59, 0x1b, 0x9a, 0xc8, 0x8b, 0x81, 0x08, 0x02, 0x9f, 0x83, 0x90, 0xd2, 0xa8, 0x9e, 0x08, 0x94, 0x20, 0x6f, 0x55, 0x56, 0x22, 0x60, 0xed, 0x79, 0x0a, 0x61, 0x27, 0x7b, 0x02, 0xee, 0x80, 0xcb, 0x1e, 0xcd, 0x9f, 0x7b, 0x35, 0x9a, 0x95, 0x1b, 0x5e, 0xd7, 0x3f, 0xf7, 0x66, 0x69, 0xd1, 0xe3, 0xfa, 0x27, 0x64, 0xf6, 0x7a, 0x4d, 0x07, 0x9d, 0x50, 0xd8, 0x88, 0x0a, 0xa2, 0x37, 0xd0, 0xf9, 0x52, 0x10, 0xcd, 0xc4, 0x3c, 0x40, 0x79, 0x5c, 0x41, 0x87, 0x0d, 0x2e, 0x78, 0xa1, 0x7c, 0x23, 0xf5, 0x11, 0x2a, 0xa4, 0xd9, 0x98, 0x0b, 0x5e, 0x38, 0x4f, 0x18, 0x7d, 0xf0, 0x12, 0xfa, 0x26, 0xea, 0x43, 0x48, 0xa6, 0xb8, 0x0b, 0x5e, 0x51, 0x4f, 0x26, 0x45, 0x42, 0xb0, 0xf7, 0x66, 0xea, 0x41, 0xd7, 0x50, 0xc6, 0x68, 0x08, 0x1e, 0x10, 0x0d, 0xc1, 0xde, 0x5b, 0xa8, 0x9f, 0x50, 0x54, 0x99, 0xa3, 0x21, 0x78, 0x40, 0x34, 0x04, 0x7b, 0x6f, 0xa5, 0x3e, 0x84, 0xca, 0x32, 0x47, 0x43, 0xb0, 0x7b, 0x12, 0xcd, 0x19, 0x5c, 0x88, 0x02, 0xfc, 0x36, 0xea, 0x43, 0xca, 0x2e, 0x2f, 0xe6, 0x45, 0x94, 0xef, 0x2a, 0xba, 0xc8, 0x14, 0x8d, 0xf0, 0xf3, 0x76, 0xea, 0x47, 0xd1, 0x61, 0x87, 0xe3, 0x11, 0x89, 0xd2, 0xbe, 0x62, 0xa4, 0x17, 0x8a, 0xfc, 0x3b, 0xa8, 0x1b, 0x45, 0x98, 0xc5, 0xb9, 0x85, 0xb2, 0x3f, 0x20, 0x28, 0x82, 0xbd, 0x77, 0x52, 0x2f, 0x52, 0xa9, 0x25, 0x04, 0x45, 0xf0, 0xc0, 0xa0, 0x08, 0xf6, 0xde, 0x45, 0xfd, 0x28, 0xd2, 0x2d, 0x29, 0x28, 0x82, 0xdd, 0x57, 0x19, 0xbf, 0x28, 0xde, 0x37, 0xfa, 0xd4, 0x4f, 0x4c, 0xcb, 0xc5, 0xbf, 0x31, 0xde, 0x4f, 0x6e, 0x32, 0x6f, 0x1c, 0xe8, 0x2c, 0xef, 0xa6, 0xbe, 0x4c, 0xe2, 0xce, 0xb0, 0x87, 0xa0, 0xe9, 0xdc, 0x62, 0xe4, 0x1b, 0xda, 0xcf, 0x7b, 0xa8, 0xb7, 0x41, 0x6a, 0x2f, 0xfe, 0x05, 0x40, 0x87, 0xba, 0x07, 0x5d, 0x62, 0x70, 0xaa, 0xf4, 0xaa, 0xf7, 0x66, 0xd3, 0xf7, 0x2a, 0x21, 0xc9, 0xe6, 0x62, 0xe0, 0xb2, 0x77, 0xfd, 0x34, 0xba, 0xd4, 0x98, 0x5d, 0x4a, 0xad, 0xbf, 0x2f, 0x9b, 0xa6, 0xd6, 0x0b, 0xf0, 0x8b, 0x0d, 0x39, 0x19, 0xd1, 0x85, 0x5b, 0xf5, 0xb5, 0xb0, 0x44, 0xfe, 0x73, 0xb6, 0x94, 0x05, 0x5d, 0x08, 0xa3, 0x52, 0x17, 0x72, 0x2b, 0xa8, 0x40, 0xff, 0x42, 0xcd, 0x98, 0x2e, 0x84, 0x61, 0x45, 0x17, 0x72, 0x3b, 0x5e, 0xee, 0xfe, 0x95, 0x1a, 0x32, 0x5d, 0x08, 0xe3, 0xaa, 0x2e, 0xe4, 0x96, 0xbc, 0xa8, 0xfd, 0x1b, 0xb5, 0x2c, 0x48, 0x4b, 0x55, 0x17, 0x4a, 0x6c, 0x82, 0xbd, 0x7f, 0xa7, 0x86, 0x59, 0x0d, 0x5b, 0xe8, 0x1c, 0x05, 0x9b, 0x60, 0xef, 0x3f, 0xa8, 0xa1, 0xab, 0x63, 0x47, 0x2c, 0x79, 0x09, 0xfa, 0x4f, 0x6a, 0x39, 0xaa, 0x63, 0x0b, 0x5d, 0xc8, 0x2d, 0x45, 0x85, 0xf8, 0x2f, 0x6a, 0xca, 0x74, 0x21, 0x7c, 0xa0, 0xe9, 0x42, 0x81, 0x2f, 0x8c, 0xff, 0x9b, 0x1a, 0x33, 0x5d, 0xc8, 0x57, 0xa0, 0xe9, 0x42, 0xe1, 0x99, 0x95, 0x8c, 0xff, 0xa1, 0xa6, 0x19, 0x19, 0x95, 0xa2, 0x0b, 0xd5, 0x15, 0x10, 0xec, 0xfd, 0x2f, 0xb5, 0xcc, 0x47, 0x56, 0x20, 0x74, 0xa1, 0xb6, 0x02, 0x82, 0xbd, 0xff, 0xa3, 0xc6, 0xc5, 0xe8, 0x0a, 0x22, 0x2c, 0xf0, 0xfc, 0x3e, 0x3f, 0x5a, 0xca, 0x82, 0x2e, 0x84, 0x71, 0x55, 0x17, 0x0a, 0xbf, 0x90, 0xbd, 0x3f, 0x33, 0xca, 0xce, 0x76, 0x25, 0xb3, 0x8a, 0x2e, 0x14, 0xbb, 0x89, 0x25, 0xe6, 0xeb, 0xa9, 0xe1, 0x84, 0x8c, 0x4a, 0xd1, 0x85, 0xdc, 0x4e, 0xc9, 0xb5, 0x9f, 0xa5, 0xc6, 0x43, 0xe8, 0x42, 0xf0, 0x18, 0xd1, 0x85, 0x1a, 0x8c, 0x90, 0x35, 0x3f, 0x47, 0x91, 0x86, 0xd3, 0x85, 0x0a, 0x98, 0xa6, 0x0b, 0x39, 0x9e, 0xaa, 0x0b, 0x7f, 0x1e, 0xd0, 0xd2, 0xeb, 0x42, 0xf0, 0x19, 0xd5, 0x85, 0xe1, 0x66, 0x57, 0x6a, 0xc5, 0x2f, 0x00, 0x85, 0x29, 0x74, 0xa1, 0x48, 0x91, 0x88, 0x2e, 0x8c, 0x80, 0x08, 0x02, 0x7f, 0x11, 0x42, 0x4a, 0xa7, 0x0b, 0x35, 0x28, 0x4d, 0x17, 0xc2, 0x27, 0xc0, 0xda, 0x2f, 0x51, 0x08, 0x5b, 0x5d, 0x08, 0x0e, 0x42, 0x5d, 0xa8, 0xf8, 0x73, 0x7f, 0x12, 0x15, 0x5a, 0x6b, 0x5b, 0xac, 0xca, 0x41, 0xa9, 0xfb, 0x36, 0xc4, 0xf0, 0xc3, 0x16, 0x00, 0x37, 0xad, 0x6d, 0xd1, 0x82, 0x48, 0xff, 0x3b, 0xd9, 0xee, 0x6e, 0x9f, 0x0b, 0xf6, 0xb7, 0xe4, 0x88, 0x7b, 0x06, 0x4d, 0x86, 0x08, 0x50, 0xd3, 0x7e, 0x0b, 0x20, 0xae, 0xb2, 0x87, 0x60, 0x05, 0x15, 0x30, 0x26, 0x5a, 0xca, 0x90, 0xdb, 0x40, 0x53, 0x21, 0x08, 0xaf, 0xb1, 0xbf, 0x0d, 0x28, 0x57, 0xdb, 0xa3, 0x40, 0x35, 0x06, 0x98, 0x42, 0x4b, 0x1d, 0xd3, 0x70, 0x78, 0x85, 0xfe, 0x9d, 0xd4, 0x38, 0xa7, 0x0c, 0x38, 0xbc, 0xbe, 0x47, 0x48, 0x23, 0xd8, 0xfb, 0xdd, 0x61, 0x48, 0x23, 0x38, 0x46, 0x1a, 0xc1, 0x31, 0xd2, 0x08, 0xf6, 0x7e, 0x6f, 0x28, 0xd2, 0x04, 0x8c, 0x4a, 0x5a, 0x04, 0x87, 0xb7, 0x96, 0xef, 0x0c, 0x45, 0x5a, 0x14, 0x87, 0x37, 0xa6, 0x4d, 0x54, 0x0c, 0x71, 0x44, 0xaf, 0xf9, 0x7d, 0x00, 0xba, 0xc6, 0x1e, 0x88, 0xb7, 0x30, 0x40, 0x9a, 0x6c, 0x69, 0x83, 0x6e, 0x13, 0x4d, 0x4b, 0xea, 0x04, 0xd6, 0x1f, 0x00, 0xd6, 0xb5, 0x29, 0xc8, 0x6b, 0xa8, 0x60, 0x53, 0x2d, 0x7d, 0x54, 0xdb, 0x0d, 0xd0, 0x17, 0xff, 0x30, 0xf5, 0x6e, 0x60, 0x1d, 0x54, 0xdf, 0x0d, 0xd0, 0x54, 0x63, 0xec, 0x11, 0xec, 0xfd, 0xd1, 0x70, 0xec, 0x89, 0xef, 0x49, 0x63, 0x8f, 0x60, 0x03, 0x7b, 0x04, 0x7b, 0x7f, 0x3c, 0x24, 0x7b, 0x02, 0x4c, 0x67, 0x2f, 0xb2, 0xfd, 0x78, 0x4f, 0xff, 0x93, 0xd4, 0xdb, 0x0f, 0xba, 0xbf, 0xbe, 0xfd, 0xb8, 0x22, 0xd0, 0xd2, 0x09, 0x14, 0xc1, 0x9f, 0xa6, 0x4f, 0x27, 0xe6, 0x20, 0x92, 0x4e, 0xa0, 0x27, 0xd4, 0xdd, 0x00, 0x7a, 0xe2, 0xcf, 0x52, 0xef, 0x06, 0xa6, 0x3c, 0xf4, 0xdd, 0x00, 0x62, 0x64, 0x0b, 0x1d, 0x08, 0x41, 0x14, 0x31, 0xf2, 0xe7, 0x80, 0xf4, 0x0a, 0x7b, 0xa4, 0x50, 0x80, 0x00, 0x5a, 0xb1, 0x15, 0x19, 0x76, 0xcf, 0xa1, 0x99, 0x08, 0xa2, 0x68, 0xab, 0x7f, 0x01, 0xa0, 0xd7, 0xa5, 0x04, 0xe5, 0x63, 0x80, 0x7b, 0xa0, 0x15, 0xff, 0xc4, 0xdd, 0x41, 0x07, 0x43, 0x68, 0x55, 0xa2, 0xfc, 0x25, 0x00, 0x9f, 0xb0, 0x07, 0x96, 0xaa, 0x04, 0x60, 0xa7, 0x5b, 0xd1, 0x71, 0xf7, 0x4e, 0x74, 0x48, 0xa9, 0xbe, 0x8a, 0x5a, 0xf9, 0x2e, 0xa0, 0xae, 0xa4, 0xa9, 0xc1, 0xa1, 0x4e, 0x01, 0x58, 0xb7, 0x15, 0xfb, 0xc0, 0xbd, 0x07, 0x79, 0x31, 0x5c, 0xc1, 0xf4, 0x5f, 0x01, 0xf4, 0xc9, 0xd4, 0xd0, 0x1a, 0xd7, 0x87, 0x5a, 0xa6, 0xcf, 0xc4, 0xfe, 0x65, 0x8d, 0x0e, 0x34, 0xc7, 0x5f, 0xa7, 0xda, 0xbf, 0xac, 0xf3, 0x4b, 0xd1, 0x41, 0xf7, 0x6f, 0x38, 0x24, 0x92, 0x71, 0x47, 0x41, 0xf9, 0x9b, 0x54, 0xc9, 0x08, 0x8d, 0x5f, 0xc2, 0xd0, 0x64, 0x94, 0x63, 0x02, 0xa7, 0xa7, 0xe0, 0xfc, 0x6d, 0x2a, 0x9c, 0x53, 0x06, 0x1c, 0x39, 0xa6, 0x90, 0x46, 0x30, 0xc0, 0xfc, 0x5d, 0x5a, 0xd2, 0x08, 0x8e, 0x91, 0x06, 0x43, 0x2a, 0x69, 0x02, 0xe5, 0xef, 0x53, 0x93, 0xa6, 0xc2, 0x08, 0xd2, 0x74, 0x9c, 0x9e, 0x82, 0xf3, 0x0f, 0xa9, 0x49, 0x8b, 0xe2, 0xc8, 0x31, 0xd1, 0xd2, 0x78, 0x1b, 0x05, 0xa0, 0x7f, 0x4c, 0xd5, 0xd2, 0x78, 0xdf, 0x97, 0x48, 0xf4, 0xdb, 0x50, 0x06, 0x43, 0xea, 0x58, 0x89, 0x06, 0xa4, 0x7f, 0x4a, 0x47, 0x1d, 0xf3, 0x10, 0xa1, 0x2e, 0x1c, 0x73, 0x4b, 0x08, 0x75, 0xda, 0xf5, 0x4e, 0x03, 0x20, 0x9e, 0xce, 0x95, 0x9c, 0xf2, 0xbe, 0xea, 0x48, 0x30, 0xce, 0x06, 0x99, 0xc5, 0x11, 0xb4, 0x1f, 0x2c, 0x40, 0x9e, 0x3e, 0x43, 0x4d, 0x72, 0xd5, 0x91, 0x00, 0xe6, 0x81, 0x5c, 0x7e, 0x19, 0x9a, 0x00, 0x1b, 0xae, 0x95, 0x9f, 0xa5, 0x46, 0xd3, 0xd5, 0x91, 0x00, 0xa6, 0x72, 0xb1, 0x1b, 0x5a, 0x71, 0xa5, 0xfb, 0x1c, 0xb5, 0x2a, 0x84, 0x56, 0x5c, 0xaa, 0xaa, 0x78, 0x04, 0x7b, 0xcf, 0x53, 0xa3, 0xac, 0x8a, 0x47, 0xb0, 0x8e, 0x47, 0xb0, 0xf7, 0x19, 0x6a, 0xe4, 0x6a, 0x78, 0xaa, 0x15, 0x17, 0x89, 0x9f, 0xa5, 0x56, 0xa3, 0x1a, 0x1e, 0xc1, 0xee, 0xcb, 0x51, 0x01, 0xac, 0x84, 0xec, 0xfa, 0x1c, 0x35, 0x1b, 0xab, 0x8e, 0x04, 0x30, 0x5b, 0x48, 0xb4, 0x32, 0x9a, 0xe4, 0x98, 0xc2, 0xf0, 0xf3, 0xd4, 0x70, 0xaa, 0x3a, 0x12, 0x80, 0x83, 0x50, 0x5e, 0x85, 0x11, 0x80, 0xb6, 0xfa, 0x65, 0x6a, 0x96, 0x09, 0x23, 0x00, 0x75, 0xa4, 0xa3, 0x12, 0xec, 0xfd, 0x0a, 0xb5, 0xca, 0xeb, 0xa8, 0xec, 0x00, 0x41, 0x43, 0x25, 0xd8, 0xfb, 0x55, 0x6a, 0x58, 0x8c, 0xa0, 0xaa, 0xd1, 0x72, 0x4d, 0xf2, 0x02, 0xb5, 0x73, 0xc2, 0x68, 0xb9, 0xa8, 0x90, 0xcc, 0x81, 0xa2, 0xf8, 0x02, 0xb5, 0x1a, 0x97, 0xcc, 0x81, 0x24, 0x08, 0x23, 0x00, 0x3d, 0xf0, 0x45, 0x6a, 0x34, 0x11, 0x46, 0x00, 0x1d, 0x7d, 0x0d, 0x15, 0xc1, 0x46, 0x69, 0xe7, 0x5f, 0xca, 0xa5, 0x7f, 0x8c, 0x5b, 0x1d, 0x09, 0x20, 0x54, 0xd9, 0xc2, 0x6f, 0x43, 0x07, 0x54, 0x08, 0xd1, 0x55, 0xbe, 0x9c, 0x1b, 0xea, 0x15, 0x9b, 0xea, 0x48, 0x30, 0x2d, 0x81, 0x44, 0x17, 0x59, 0x47, 0x30, 0xa8, 0x35, 0xec, 0xaf, 0xe4, 0x86, 0x78, 0xbf, 0xa6, 0x3a, 0x12, 0x4c, 0x31, 0x97, 0x4a, 0x93, 0x5e, 0x45, 0xae, 0xd8, 0xb8, 0x4a, 0x87, 0xfe, 0x6a, 0x2e, 0xcd, 0xb3, 0xe8, 0xea, 0x48, 0x50, 0xe4, 0xdb, 0x5d, 0x76, 0xe3, 0xb3, 0xe8, 0x90, 0x0e, 0x20, 0x48, 0xfb, 0x5a, 0x2e, 0xe5, 0x9b, 0x35, 0xd5, 0x91, 0xe0, 0x80, 0x0a, 0x23, 0x08, 0xfb, 0x31, 0x5e, 0x39, 0x80, 0xa9, 0xaf, 0xe7, 0xac, 0x5f, 0x13, 0xbc, 0x99, 0xce, 0x16, 0x4c, 0x29, 0xbe, 0x64, 0x6e, 0xc0, 0x1e, 0x5d, 0xf4, 0xbe, 0x21, 0x36, 0xe9, 0x84, 0xb2, 0x49, 0x17, 0xa3, 0x76, 0xbe, 0xf7, 0x4d, 0x93, 0x9d, 0x1f, 0xb5, 0x5b, 0xf2, 0xbe, 0x65, 0xb2, 0x5b, 0x72, 0xaf, 0x44, 0x07, 0x79, 0x06, 0xe9, 0x0f, 0xb4, 0xee, 0xcb, 0xcb, 0x17, 0x7a, 0xaa, 0x4e, 0x00, 0xdf, 0xa0, 0xfe, 0x3c, 0xeb, 0x6a, 0x41, 0x7b, 0xf4, 0x61, 0xd6, 0xfb, 0xf2, 0xea, 0xdb, 0x3d, 0x55, 0x87, 0x73, 0x19, 0x79, 0x96, 0x75, 0x0d, 0x9a, 0x89, 0x4e, 0xe7, 0x95, 0xf4, 0xfe, 0xbc, 0xf2, 0xaa, 0x4f, 0xd5, 0x09, 0x0e, 0xea, 0xd3, 0x79, 0x65, 0xbd, 0x3a, 0x3e, 0x9f, 0xd7, 0xd8, 0x07, 0xf2, 0xf2, 0xbd, 0x9f, 0xf8, 0xf4, 0x53, 0xe2, 0x31, 0x98, 0x69, 0xf5, 0x04, 0x7b, 0x0f, 0xe6, 0xa3, 0x2f, 0x01, 0x19, 0x23, 0x20, 0x38, 0x29, 0x02, 0x82, 0xbd, 0x87, 0xf2, 0xca, 0x1b, 0x41, 0xe6, 0x08, 0x08, 0x4e, 0x8a, 0x80, 0x60, 0xef, 0xe1, 0xbc, 0x7c, 0x3d, 0xc8, 0x1c, 0x01, 0x7b, 0xf4, 0x35, 0x1b, 0x9d, 0x2e, 0xaa, 0xf4, 0x23, 0x79, 0xf5, 0x5d, 0xa1, 0xaa, 0x13, 0x1c, 0xd2, 0x3d, 0x88, 0xfa, 0x7e, 0x3d, 0xf2, 0x62, 0x11, 0x08, 0x1f, 0x8f, 0xe6, 0xb5, 0x17, 0x87, 0xaa, 0x4e, 0x30, 0x13, 0x89, 0x42, 0xd4, 0xfe, 0x6b, 0xe2, 0x54, 0x42, 0x17, 0x78, 0x7f, 0x5e, 0x7b, 0x8b, 0x28, 0xce, 0x23, 0xf4, 0x85, 0xa4, 0x40, 0x08, 0xf6, 0x3e, 0x90, 0x57, 0x5f, 0x29, 0x4a, 0x08, 0x84, 0xe0, 0xe4, 0x40, 0x08, 0xf6, 0x1e, 0xcb, 0x6b, 0xef, 0x17, 0x25, 0x05, 0x42, 0xb0, 0x7b, 0x43, 0xfc, 0x0b, 0xe1, 0x8d, 0xe5, 0xf1, 0xbc, 0xe1, 0x65, 0xa3, 0xf8, 0x37, 0xc3, 0x1b, 0xce, 0x8d, 0x86, 0x8d, 0x01, 0xad, 0xe7, 0x89, 0xbc, 0xf9, 0xcd, 0x23, 0xc3, 0x1e, 0x81, 0xae, 0x74, 0x73, 0x9c, 0x5b, 0xe8, 0x4f, 0x17, 0xf2, 0x83, 0x5f, 0x43, 0x8a, 0x93, 0x0d, 0x2d, 0xec, 0xb5, 0x68, 0x2e, 0xea, 0x50, 0x69, 0x66, 0x4f, 0xe6, 0x87, 0x7e, 0x27, 0xa9, 0xea, 0x04, 0xb3, 0x3a, 0xb0, 0xfa, 0xf7, 0xe9, 0xc5, 0xf1, 0x8c, 0x51, 0x9a, 0xc2, 0x53, 0xf9, 0x21, 0x5e, 0x50, 0xaa, 0x3a, 0xc1, 0xe1, 0x68, 0x9e, 0x85, 0x36, 0x73, 0x3f, 0x85, 0x26, 0xb4, 0xde, 0xf7, 0x22, 0xbe, 0x69, 0x3e, 0x77, 0x37, 0x42, 0x4a, 0x3f, 0x7c, 0x31, 0x91, 0xaf, 0x45, 0x05, 0xed, 0x4d, 0x4e, 0x5b, 0x70, 0xea, 0x40, 0x7b, 0x27, 0x22, 0x9d, 0x03, 0xe5, 0xf0, 0xdc, 0xda, 0xc1, 0x35, 0xa8, 0x18, 0x3d, 0x1c, 0x77, 0x8b, 0x28, 0x7b, 0x7b, 0xfd, 0x1c, 0x73, 0xb2, 0x2f, 0xa0, 0xff, 0xeb, 0x1e, 0x44, 0xb9, 0x3b, 0xd7, 0x9a, 0xbd, 0xba, 0x97, 0x61, 0x63, 0xf0, 0x8f, 0x4a, 0xe6, 0x0a, 0x67, 0xee, 0x5a, 0x34, 0x1d, 0x3b, 0xf9, 0xde, 0xcd, 0x41, 0x4e, 0x75, 0xf0, 0x0a, 0xe4, 0xc6, 0x0f, 0xb5, 0x77, 0xf3, 0x30, 0x6d, 0xf6, 0x70, 0x6a, 0xef, 0x1e, 0x0a, 0x89, 0x41, 0xf0, 0x53, 0xba, 0xdd, 0x1c, 0x64, 0x93, 0x83, 0xd8, 0xa3, 0x07, 0x37, 0x39, 0x88, 0x3d, 0x7a, 0x18, 0x55, 0x3d, 0x9c, 0x40, 0x07, 0x0c, 0xe7, 0xc2, 0xbb, 0xb9, 0x18, 0x53, 0x5d, 0xac, 0xa0, 0x83, 0xa6, 0xe3, 0xde, 0xdd, 0x7c, 0x4c, 0x99, 0xb9, 0x94, 0xe7, 0xb8, 0xbb, 0x39, 0xc8, 0x0c, 0x88, 0x63, 0x8f, 0x54, 0xe4, 0x07, 0xc5, 0xb1, 0x47, 0x1f, 0x45, 0xf3, 0x17, 0xa2, 0x1c, 0xa8, 0xee, 0xe6, 0xc1, 0x49, 0xd8, 0x14, 0xf2, 0xa8, 0x74, 0x37, 0x0f, 0xe3, 0x66, 0x2e, 0xe5, 0x29, 0xe8, 0x6e, 0x0e, 0x26, 0x54, 0x07, 0xe7, 0xd0, 0x21, 0xe3, 0xe1, 0xa6, 0xc1, 0xc9, 0xab, 0x54, 0x27, 0x69, 0x1f, 0xe6, 0x2a, 0xd0, 0xf7, 0x20, 0x2f, 0xe9, 0x88, 0xd3, 0x80, 0x7e, 0x93, 0x8a, 0x3e, 0xc4, 0x03, 0x5e, 0x65, 0x01, 0xaf, 0x45, 0x33, 0xe6, 0xa3, 0x4e, 0x03, 0xfc, 0x8f, 0xe8, 0xf0, 0x29, 0x9f, 0xf8, 0x2a, 0xe0, 0x3d, 0x34, 0x9b, 0x70, 0xe2, 0x69, 0x40, 0xbf, 0x5e, 0xa7, 0xde, 0xf6, 0x21, 0xb0, 0x16, 0xf3, 0x5c, 0xf2, 0x69, 0xa7, 0x01, 0xf9, 0x95, 0x7a, 0xdc, 0x29, 0x1e, 0x0b, 0xc7, 0x76, 0xab, 0x7e, 0xe6, 0xa9, 0x62, 0xe6, 0x76, 0xeb, 0x25, 0x90, 0x30, 0x91, 0xe3, 0x4c, 0xd5, 0xc3, 0xf4, 0xde, 0x3c, 0x9c, 0x4a, 0xf6, 0x50, 0xd8, 0x5b, 0x3f, 0xd3, 0xcf, 0x20, 0x55, 0x07, 0xd9, 0xbd, 0x07, 0x91, 0xe0, 0xc1, 0xdd, 0x7b, 0x10, 0x09, 0x1e, 0x46, 0x77, 0xf3, 0x00, 0x25, 0x34, 0x7a, 0x22, 0xa8, 0xba, 0x18, 0xdb, 0x63, 0x18, 0xfa, 0x51, 0x9f, 0xea, 0x61, 0x7c, 0x37, 0x0f, 0x57, 0x21, 0x24, 0xff, 0x1e, 0xb7, 0xd6, 0x25, 0x55, 0x34, 0x73, 0xf2, 0xee, 0x6e, 0xbd, 0xbd, 0xb3, 0xd9, 0x69, 0x0f, 0xa7, 0xb1, 0x54, 0x4f, 0x43, 0x69, 0xa5, 0x23, 0xf3, 0x68, 0x5c, 0x8a, 0xed, 0x71, 0x04, 0xba, 0xb8, 0x38, 0x42, 0xff, 0x77, 0x25, 0x38, 0xf1, 0xa3, 0x37, 0x17, 0x1d, 0x77, 0x3f, 0x1a, 0xbb, 0xae, 0x7a, 0x22, 0x78, 0xf5, 0x8d, 0x27, 0x8b, 0x99, 0xcb, 0xc6, 0xf7, 0xdd, 0x5b, 0x2b, 0x9e, 0x3f, 0x7f, 0xfe, 0x7c, 0xc6, 0x3f, 0x83, 0x66, 0xeb, 0x62, 0x11, 0xab, 0xda, 0x9d, 0x45, 0xd7, 0x42, 0x74, 0x7a, 0xf7, 0xd6, 0x18, 0xcb, 0x87, 0xea, 0x51, 0x6a, 0xe8, 0x57, 0xe4, 0xd7, 0x91, 0x67, 0x00, 0x81, 0x3f, 0xc8, 0x6d, 0x50, 0xde, 0x50, 0x63, 0xd9, 0x3a, 0x13, 0x43, 0x61, 0xb9, 0xed, 0x6f, 0xa0, 0xc3, 0x06, 0x98, 0x1d, 0x7b, 0x9c, 0x37, 0xd6, 0x58, 0x4e, 0xcf, 0xc6, 0x70, 0xa0, 0x04, 0x24, 0x00, 0xf5, 0xec, 0x81, 0xde, 0x54, 0x63, 0xa9, 0x1f, 0x07, 0x82, 0x4a, 0x91, 0x4c, 0x1c, 0xc1, 0x56, 0x38, 0x6f, 0xae, 0xb1, 0x0a, 0x61, 0x24, 0x8e, 0xe0, 0x01, 0xc4, 0x59, 0xe2, 0xbc, 0xa5, 0xc6, 0xea, 0x88, 0x99, 0xb8, 0x44, 0xa0, 0x9e, 0x3d, 0xd0, 0x5b, 0x6b, 0xac, 0xdc, 0x98, 0x89, 0x23, 0xd8, 0xdf, 0x44, 0x73, 0x06, 0x20, 0x71, 0x72, 0x61, 0x83, 0xf4, 0xb6, 0x1a, 0xab, 0x4a, 0x5e, 0x0c, 0x89, 0x57, 0x31, 0xff, 0x76, 0x74, 0x91, 0x89, 0xbc, 0x34, 0x58, 0x6f, 0xaf, 0x31, 0xd1, 0x7a, 0x38, 0x4e, 0x1f, 0xf7, 0x96, 0xb0, 0x21, 0x1a, 0xf0, 0x6a, 0x9f, 0x05, 0xd2, 0x3b, 0x6a, 0x4c, 0xdd, 0xc6, 0x37, 0x04, 0xd3, 0xc6, 0x83, 0xe8, 0xb3, 0xfc, 0xa2, 0xde, 0x59, 0x63, 0x1a, 0x38, 0x81, 0x3e, 0x82, 0x07, 0xd2, 0x67, 0x89, 0xf5, 0xae, 0x1a, 0xd3, 0xca, 0x49, 0xf4, 0x25, 0xee, 0x3f, 0x38, 0xec, 0xb1, 0x82, 0xea, 0xd7, 0x98, 0xa8, 0x8e, 0xef, 0x3f, 0xd0, 0xe4, 0x49, 0x19, 0x05, 0x87, 0x3b, 0x36, 0x40, 0xef, 0xae, 0xb1, 0x2e, 0x60, 0xc8, 0x28, 0x38, 0xf1, 0x35, 0x6f, 0x08, 0x76, 0x56, 0x64, 0x85, 0xf3, 0x9e, 0x1a, 0x93, 0xe8, 0xf1, 0x0d, 0xc1, 0x04, 0xbe, 0xff, 0xa0, 0x83, 0x2e, 0x31, 0xe0, 0xc8, 0x23, 0x24, 0x2b, 0xb0, 0xf7, 0xd6, 0x86, 0x90, 0xf2, 0x73, 0xb1, 0x25, 0x86, 0x9f, 0xf9, 0x4f, 0x38, 0xa8, 0x94, 0xb8, 0x4c, 0xfe, 0x78, 0xc0, 0x6a, 0xa5, 0xf7, 0xd5, 0x86, 0x93, 0xfd, 0x97, 0x98, 0x17, 0xcb, 0x3f, 0xf6, 0x1f, 0x71, 0xd0, 0xf7, 0x19, 0xd6, 0xab, 0x3c, 0x97, 0xb1, 0x5a, 0xed, 0xfb, 0x6a, 0xc3, 0xfc, 0x95, 0x70, 0x51, 0x6c, 0xad, 0xf2, 0x43, 0xff, 0x7e, 0x07, 0x5d, 0x6a, 0xec, 0x11, 0xf2, 0x18, 0xcf, 0x6a, 0xa9, 0xf7, 0xd7, 0x52, 0xfd, 0x49, 0x71, 0xb1, 0xa1, 0xb3, 0x84, 0x9f, 0xfa, 0x8f, 0x39, 0xe8, 0xc8, 0x80, 0x45, 0xa6, 0xd9, 0x00, 0x0f, 0xd4, 0xd2, 0xfe, 0x01, 0x72, 0x69, 0xd2, 0x52, 0xc5, 0x97, 0xff, 0xb0, 0x83, 0x64, 0xba, 0xe9, 0x37, 0xad, 0x6d, 0x56, 0xf8, 0x60, 0x8d, 0x3d, 0x8e, 0xb2, 0x79, 0xd3, 0xc6, 0x2c, 0x60, 0x83, 0x84, 0xd5, 0xf8, 0x4d, 0xb5, 0xc6, 0xe8, 0x0f, 0x8c, 0xec, 0x92, 0xa9, 0xaf, 0x5e, 0x17, 0x97, 0x68, 0xda, 0xf3, 0x25, 0x7f, 0x4b, 0x2d, 0x9d, 0x91, 0x67, 0x4c, 0x76, 0xd9, 0xd0, 0xd7, 0xaf, 0x9b, 0xcf, 0xc6, 0x01, 0x41, 0x37, 0xde, 0xa1, 0x76, 0xbb, 0xe8, 0x63, 0x29, 0xbb, 0x5d, 0xdd, 0xd7, 0xae, 0xab, 0x7b, 0x71, 0x44, 0xae, 0x20, 0xb7, 0xcc, 0x90, 0x29, 0x24, 0xe4, 0x03, 0x7d, 0xf5, 0xba, 0xbb, 0x01, 0x91, 0x4b, 0xc9, 0x6e, 0x22, 0xad, 0x96, 0x5d, 0xf6, 0xc1, 0x7e, 0xfc, 0xba, 0xbc, 0x99, 0x5a, 0x82, 0x07, 0x51, 0x6b, 0x09, 0xfb, 0x50, 0x5f, 0xbb, 0x6e, 0x9f, 0x40, 0x2d, 0xc1, 0x83, 0xa8, 0xb5, 0x84, 0x7c, 0xb8, 0xaf, 0x5e, 0xd7, 0x4f, 0xa0, 0x96, 0x60, 0xbf, 0xab, 0x4a, 0x98, 0xd8, 0x53, 0x39, 0x2b, 0xc8, 0x47, 0xfa, 0xfa, 0x75, 0xff, 0xc3, 0x71, 0x50, 0xa1, 0x3b, 0xef, 0x42, 0x17, 0x1b, 0xa9, 0x4d, 0x03, 0xfb, 0x68, 0x3f, 0xf2, 0x73, 0x01, 0x73, 0x06, 0x7a, 0x85, 0x06, 0xbd, 0xc3, 0xbc, 0x93, 0xec, 0x45, 0xe8, 0xfb, 0xfb, 0x91, 0x9f, 0x1b, 0x30, 0x6c, 0x23, 0xd0, 0xa3, 0x83, 0x18, 0xb6, 0xfc, 0x52, 0x3f, 0xd0, 0xd7, 0x7f, 0xae, 0x20, 0x89, 0x61, 0x82, 0x07, 0x33, 0x6c, 0x09, 0xfb, 0x58, 0x3f, 0xf2, 0x73, 0x07, 0x89, 0x0c, 0x13, 0xec, 0x9f, 0x33, 0x6f, 0xe1, 0x14, 0x3a, 0xf5, 0xf1, 0xbe, 0xf1, 0xe7, 0x12, 0x0c, 0x7b, 0x99, 0x0b, 0xd7, 0xd7, 0x25, 0x24, 0xac, 0xbd, 0x72, 0x7d, 0xa2, 0x9f, 0xf4, 0x73, 0x0b, 0xa6, 0xdc, 0x05, 0x35, 0xfb, 0x7a, 0xc7, 0xbc, 0xb7, 0xec, 0xf5, 0xec, 0x85, 0xfe, 0x6e, 0xbf, 0xd7, 0x60, 0xd8, 0x6c, 0xa0, 0x75, 0x2f, 0x68, 0xa2, 0xcc, 0xf4, 0xbc, 0xd4, 0x6a, 0x25, 0x4f, 0xf6, 0xbf, 0x07, 0x3f, 0xf8, 0x70, 0x51, 0x7c, 0xb1, 0x52, 0xf5, 0x3e, 0xae, 0xa9, 0x5e, 0xf3, 0x33, 0x56, 0xab, 0x25, 0x3f, 0xd5, 0x1f, 0xea, 0x17, 0x23, 0x2e, 0x31, 0xd5, 0x66, 0xa9, 0xd2, 0xd6, 0xd5, 0x23, 0x27, 0xed, 0xb2, 0xa0, 0xdd, 0x22, 0xbf, 0xeb, 0xb0, 0x9b, 0x85, 0xf2, 0xcc, 0x29, 0x50, 0xae, 0x18, 0xfa, 0x0d, 0x55, 0xb4, 0xe8, 0x97, 0x0d, 0xad, 0x60, 0x3e, 0xc8, 0x60, 0xd4, 0x43, 0xa7, 0x40, 0xbd, 0xa2, 0xe8, 0x9f, 0x55, 0x77, 0x6c, 0xe4, 0xb2, 0xa2, 0x15, 0xd0, 0x87, 0x18, 0x90, 0x7a, 0xea, 0x14, 0x68, 0x57, 0x1c, 0x13, 0x90, 0x52, 0x48, 0x86, 0x0f, 0x33, 0xa4, 0x82, 0x01, 0x89, 0x6b, 0x85, 0x44, 0xee, 0x2c, 0x8b, 0xde, 0x47, 0x18, 0x50, 0xd6, 0xcc, 0x1d, 0xc1, 0x03, 0xb8, 0xb3, 0x04, 0xfa, 0x28, 0x03, 0x72, 0x13, 0xb8, 0x4b, 0x44, 0x4a, 0xa1, 0x09, 0x3e, 0xc6, 0x90, 0x46, 0x13, 0xb8, 0x23, 0xd8, 0xbf, 0x4d, 0x2d, 0xa0, 0xd1, 0xcb, 0x9e, 0x56, 0x50, 0x1f, 0x67, 0x50, 0xea, 0xd1, 0x53, 0xa0, 0x5f, 0x11, 0xf5, 0x9b, 0x6a, 0x5b, 0x8c, 0x5d, 0x16, 0xb5, 0x02, 0xfb, 0x04, 0x03, 0x53, 0xcf, 0x9e, 0x82, 0xc8, 0x15, 0xd3, 0x84, 0x5d, 0x61, 0xdf, 0xf6, 0x3f, 0xc9, 0xa0, 0x32, 0x86, 0x5d, 0x01, 0xcd, 0x7e, 0x00, 0x83, 0x96, 0x5f, 0xd6, 0xa7, 0x18, 0x52, 0x3e, 0x89, 0x41, 0x82, 0x07, 0x32, 0x68, 0x09, 0xf6, 0x69, 0x06, 0x56, 0x4c, 0x64, 0x30, 0x71, 0x17, 0xa6, 0x68, 0xeb, 0x4f, 0x33, 0x2c, 0xc7, 0xb0, 0x0b, 0x79, 0x1b, 0x4f, 0xc8, 0x2c, 0xfb, 0x2e, 0xfe, 0x0c, 0x43, 0x1a, 0x37, 0x65, 0x16, 0xb4, 0x6c, 0xf3, 0xae, 0xb0, 0x6f, 0xd8, 0xcf, 0x32, 0xa0, 0x09, 0xc3, 0xae, 0x80, 0xae, 0xfc, 0x90, 0x76, 0x02, 0x65, 0xb8, 0xed, 0x6b, 0x85, 0xf6, 0x1c, 0x43, 0x1b, 0xfe, 0x08, 0x2a, 0x88, 0xde, 0x11, 0xa6, 0xea, 0xa1, 0x94, 0xb8, 0xce, 0x34, 0x27, 0x10, 0xcf, 0xb3, 0xa5, 0x7e, 0x4f, 0xce, 0xa0, 0x02, 0xc3, 0x25, 0x63, 0xff, 0x51, 0x4d, 0xee, 0x98, 0xee, 0x1b, 0x5b, 0x2d, 0xf7, 0x33, 0x7c, 0xb9, 0x43, 0x1f, 0x42, 0x05, 0xb1, 0x5b, 0xca, 0xfe, 0x03, 0xda, 0x21, 0x94, 0xf1, 0xc2, 0xb2, 0xd5, 0x5a, 0x3f, 0xcb, 0x77, 0x41, 0xfa, 0x53, 0xa8, 0x20, 0x7e, 0xcd, 0x99, 0xca, 0xb1, 0x23, 0x03, 0x56, 0x99, 0x66, 0x0f, 0x7c, 0x8e, 0x93, 0x3a, 0xd4, 0x31, 0x54, 0x60, 0xbc, 0x27, 0xed, 0x3f, 0xa2, 0x1e, 0x43, 0xe9, 0x37, 0x9c, 0x6d, 0x96, 0xf8, 0x79, 0xb6, 0xc4, 0x94, 0xe7, 0x50, 0xfa, 0x3d, 0xeb, 0x84, 0xe5, 0xac, 0x14, 0xc4, 0xab, 0xfa, 0xbd, 0xf6, 0x66, 0xa7, 0xbd, 0x32, 0x1b, 0x7f, 0x47, 0x92, 0x7d, 0x70, 0xd9, 0x22, 0xda, 0xaf, 0xbe, 0x27, 0x6e, 0x7a, 0x20, 0x8a, 0xdc, 0x09, 0xf9, 0x40, 0xf4, 0x05, 0x67, 0xe5, 0x35, 0x3f, 0x5e, 0x8b, 0x2d, 0xfb, 0x18, 0x5b, 0xf6, 0xe9, 0x5e, 0xe3, 0xd8, 0x66, 0xbb, 0x5b, 0xdf, 0x6e, 0xaf, 0x35, 0xd9, 0xef, 0xdc, 0xb2, 0xd1, 0x9d, 0x63, 0xcd, 0xfa, 0xc6, 0xda, 0x99, 0x73, 0xc7, 0x92, 0x7e, 0x12, 0xf7, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0xe0, 0x96, 0xc9, 0xde, 0x2d, 0x57, 0x00, 0x00, } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto2_20160225_2fc053c5/test.proto000066400000000000000000000341021411250152500311470ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package google.golang.org.proto2_20160225; option go_package = "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20160225_2fc053c5"; enum SiblingEnum { ALPHA = 0; BRAVO = 10; CHARLIE = 200; } message SiblingMessage { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; optional Message f4 = 4; } message Message { enum ChildEnum { ALPHA = 0; BRAVO = 1; CHARLIE = 2; } message ChildMessage { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; optional Message f4 = 4; } optional group NamedGroup = 1 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; optional Message f4 = 4; } // Optional fields. optional bool optional_bool = 100; optional int32 optional_int32 = 101; optional sint32 optional_sint32 = 102; optional uint32 optional_uint32 = 103; optional int64 optional_int64 = 104; optional sint64 optional_sint64 = 105; optional uint64 optional_uint64 = 106; optional fixed32 optional_fixed32 = 107; optional sfixed32 optional_sfixed32 = 108; optional float optional_float = 109; optional fixed64 optional_fixed64 = 110; optional sfixed64 optional_sfixed64 = 111; optional double optional_double = 112; optional string optional_string = 113; optional bytes optional_bytes = 114; optional ChildEnum optional_child_enum = 115; optional ChildMessage optional_child_message = 116; optional NamedGroup optional_named_group = 117; optional SiblingEnum optional_sibling_enum = 118; optional SiblingMessage optional_sibling_message = 119; optional group OptionalGroup = 120 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Optional default fields. optional bool defaulted_bool = 200 [default = true]; optional int32 defaulted_int32 = 201 [default = -12345]; optional sint32 defaulted_sint32 = 202 [default = -3200]; optional uint32 defaulted_uint32 = 203 [default = 3200]; optional int64 defaulted_int64 = 204 [default = -123456789]; optional sint64 defaulted_sint64 = 205 [default = -6400]; optional uint64 defaulted_uint64 = 206 [default = 6400]; optional fixed32 defaulted_fixed32 = 207 [default = 320000]; optional sfixed32 defaulted_sfixed32 = 208 [default = -320000]; optional float defaulted_float = 209 [default = 3.14159]; optional fixed64 defaulted_fixed64 = 210 [default = 640000]; optional sfixed64 defaulted_sfixed64 = 211 [default = -640000]; optional double defaulted_double = 212 [default = 3.14159265359]; optional string defaulted_string = 213 [default = "hello, \"world!\"\n"]; optional bytes defaulted_bytes = 214 [default = "dead\xde\xad\xbe\xefbeef"]; optional ChildEnum defaulted_child_enum = 215 [default = ALPHA]; optional SiblingEnum defaulted_sibling_enum = 216 [default = ALPHA]; // Required fields. required bool required_bool = 300; required int32 required_int32 = 301; required sint32 required_sint32 = 302; required uint32 required_uint32 = 303; required int64 required_int64 = 304; required sint64 required_sint64 = 305; required uint64 required_uint64 = 306; required fixed32 required_fixed32 = 307; required sfixed32 required_sfixed32 = 308; required float required_float = 309; required fixed64 required_fixed64 = 310; required sfixed64 required_sfixed64 = 311; required double required_double = 312; required string required_string = 313; required bytes required_bytes = 314; required ChildEnum required_child_enum = 315; required ChildMessage required_child_message = 316; required NamedGroup required_named_group = 317; required SiblingEnum required_sibling_enum = 318; required SiblingMessage required_sibling_message = 319; required group RequiredGroup = 320 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Required default fields. required bool required_defaulted_bool = 400 [default = true]; required int32 required_defaulted_int32 = 401 [default = -12345]; required sint32 required_defaulted_sint32 = 402 [default = -3200]; required uint32 required_defaulted_uint32 = 403 [default = 3200]; required int64 required_defaulted_int64 = 404 [default = -123456789]; required sint64 required_defaulted_sint64 = 405 [default = -6400]; required uint64 required_defaulted_uint64 = 406 [default = 6400]; required fixed32 required_defaulted_fixed32 = 407 [default = 320000]; required sfixed32 required_defaulted_sfixed32 = 408 [default = -320000]; required float required_defaulted_float = 409 [default = 3.14159]; required fixed64 required_defaulted_fixed64 = 410 [default = 640000]; required sfixed64 required_defaulted_sfixed64 = 411 [default = -640000]; required double required_defaulted_double = 412 [default = 3.14159265359]; required string required_defaulted_string = 413 [default = "hello, \"world!\"\n"]; required bytes required_defaulted_bytes = 414 [default = "dead\xde\xad\xbe\xefbeef"]; required ChildEnum required_defaulted_child_enum = 415 [default = ALPHA]; required SiblingEnum required_defaulted_sibling_enum = 416 [default = ALPHA]; // Repeated fields. repeated bool repeated_bool = 500; repeated int32 repeated_int32 = 501; repeated sint32 repeated_sint32 = 502; repeated uint32 repeated_uint32 = 503; repeated int64 repeated_int64 = 504; repeated sint64 repeated_sint64 = 505; repeated uint64 repeated_uint64 = 506; repeated fixed32 repeated_fixed32 = 507; repeated sfixed32 repeated_sfixed32 = 508; repeated float repeated_float = 509; repeated fixed64 repeated_fixed64 = 510; repeated sfixed64 repeated_sfixed64 = 511; repeated double repeated_double = 512; repeated string repeated_string = 513; repeated bytes repeated_bytes = 514; repeated ChildEnum repeated_child_enum = 515; repeated ChildMessage repeated_child_message = 516; repeated NamedGroup repeated_named_group = 517; repeated SiblingEnum repeated_sibling_enum = 518; repeated SiblingMessage repeated_sibling_message = 519; repeated group RepeatedGroup = 520 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Map fields. map map_bool_bool = 600; map map_bool_int32 = 601; map map_bool_sint32 = 602; map map_bool_uint32 = 603; map map_bool_int64 = 604; map map_bool_sint64 = 605; map map_bool_uint64 = 606; map map_bool_fixed32 = 607; map map_bool_sfixed32 = 608; map map_bool_float = 609; map map_bool_fixed64 = 610; map map_bool_sfixed64 = 611; map map_bool_double = 612; map map_bool_string = 613; map map_bool_bytes = 614; map map_bool_child_enum = 615; map map_bool_child_message = 616; map map_bool_named_group = 617; map map_bool_sibling_enum = 618; map map_bool_sibling_message = 619; map map_int32_bool = 620; map map_sint32_bool = 621; map map_uint32_bool = 622; map map_int64_bool = 623; map map_sint64_bool = 624; map map_uint64_bool = 625; map map_fixed32_bool = 626; map map_string_bool = 627; // Oneof fields. oneof oneof_union { bool oneof_bool = 700; int32 oneof_int32 = 701; sint32 oneof_sint32 = 702; uint32 oneof_uint32 = 703; int64 oneof_int64 = 704; sint64 oneof_sint64 = 705; uint64 oneof_uint64 = 706; fixed32 oneof_fixed32 = 707; sfixed32 oneof_sfixed32 = 708; float oneof_float = 709; fixed64 oneof_fixed64 = 710; sfixed64 oneof_sfixed64 = 711; double oneof_double = 712; string oneof_string = 713; bytes oneof_bytes = 714; ChildEnum oneof_child_enum = 715; ChildMessage oneof_child_message = 716; NamedGroup oneof_named_group = 717; SiblingEnum oneof_sibling_enum = 718; SiblingMessage oneof_sibling_message = 719; group OneofGroup = 720 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } string oneof_string1 = 721; string oneof_string2 = 722; string oneof_string3 = 723; } // Oneof default fields. oneof oneof_defaulted_union { bool oneof_defaulted_bool = 800 [default = true]; int32 oneof_defaulted_int32 = 801 [default = -12345]; sint32 oneof_defaulted_sint32 = 802 [default = -3200]; uint32 oneof_defaulted_uint32 = 803 [default = 3200]; int64 oneof_defaulted_int64 = 804 [default = -123456789]; sint64 oneof_defaulted_sint64 = 805 [default = -6400]; uint64 oneof_defaulted_uint64 = 806 [default = 6400]; fixed32 oneof_defaulted_fixed32 = 807 [default = 320000]; sfixed32 oneof_defaulted_sfixed32 = 808 [default = -320000]; float oneof_defaulted_float = 809 [default = 3.14159]; fixed64 oneof_defaulted_fixed64 = 810 [default = 640000]; sfixed64 oneof_defaulted_sfixed64 = 811 [default = -640000]; double oneof_defaulted_double = 812 [default = 3.14159265359]; string oneof_defaulted_string = 813 [default = "hello, \"world!\"\n"]; bytes oneof_defaulted_bytes = 814 [default = "dead\xde\xad\xbe\xefbeef"]; ChildEnum oneof_defaulted_child_enum = 815 [default = ALPHA]; SiblingEnum oneof_defaulted_sibling_enum = 816 [default = ALPHA]; } // Extension fields. extend Message { // Optional fields. optional bool extension_optional_bool = 10000; optional int32 extension_optional_int32 = 10001; optional sint32 extension_optional_sint32 = 10002; optional uint32 extension_optional_uint32 = 10003; optional int64 extension_optional_int64 = 10004; optional sint64 extension_optional_sint64 = 10005; optional uint64 extension_optional_uint64 = 10006; optional fixed32 extension_optional_fixed32 = 10007; optional sfixed32 extension_optional_sfixed32 = 10008; optional float extension_optional_float = 10009; optional fixed64 extension_optional_fixed64 = 10010; optional sfixed64 extension_optional_sfixed64 = 10011; optional double extension_optional_double = 10012; optional string extension_optional_string = 10013; optional bytes extension_optional_bytes = 10014; optional ChildEnum extension_optional_child_enum = 10015; optional ChildMessage extension_optional_child_message = 10016; optional NamedGroup extension_optional_named_group = 10017; optional SiblingEnum extension_optional_sibling_enum = 10018; optional SiblingMessage extension_optional_sibling_message = 10019; optional group ExtensionOptionalGroup = 10020 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Optional default fields. optional bool extension_defaulted_bool = 20000 [default = true]; optional int32 extension_defaulted_int32 = 20001 [default = -12345]; optional sint32 extension_defaulted_sint32 = 20002 [default = -3200]; optional uint32 extension_defaulted_uint32 = 20003 [default = 3200]; optional int64 extension_defaulted_int64 = 20004 [default = -123456789]; optional sint64 extension_defaulted_sint64 = 20005 [default = -6400]; optional uint64 extension_defaulted_uint64 = 20006 [default = 6400]; optional fixed32 extension_defaulted_fixed32 = 20007 [default = 320000]; optional sfixed32 extension_defaulted_sfixed32 = 20008 [default = -320000]; optional float extension_defaulted_float = 20009 [default = 3.14159]; optional fixed64 extension_defaulted_fixed64 = 20010 [default = 640000]; optional sfixed64 extension_defaulted_sfixed64 = 20011 [default = -640000]; optional double extension_defaulted_double = 20012 [default = 3.14159265359]; optional string extension_defaulted_string = 20013 [default = "hello, \"world!\"\n"]; optional bytes extension_defaulted_bytes = 20014 [default = "dead\xde\xad\xbe\xefbeef"]; optional ChildEnum extension_defaulted_child_enum = 20015 [default = ALPHA]; optional SiblingEnum extension_defaulted_sibling_enum = 20016 [default = ALPHA]; // Repeated fields. repeated bool extension_repeated_bool = 30000; repeated int32 extension_repeated_int32 = 30001; repeated sint32 extension_repeated_sint32 = 30002; repeated uint32 extension_repeated_uint32 = 30003; repeated int64 extension_repeated_int64 = 30004; repeated sint64 extension_repeated_sint64 = 30005; repeated uint64 extension_repeated_uint64 = 30006; repeated fixed32 extension_repeated_fixed32 = 30007; repeated sfixed32 extension_repeated_sfixed32 = 30008; repeated float extension_repeated_float = 30009; repeated fixed64 extension_repeated_fixed64 = 30010; repeated sfixed64 extension_repeated_sfixed64 = 30011; repeated double extension_repeated_double = 30012; repeated string extension_repeated_string = 30013; repeated bytes extension_repeated_bytes = 30014; repeated ChildEnum extension_repeated_child_enum = 30015; repeated ChildMessage extension_repeated_child_message = 30016; repeated NamedGroup extension_repeated_named_group = 30017; repeated SiblingEnum extension_repeated_sibling_enum = 30018; repeated SiblingMessage extension_repeated_sibling_message = 30019; repeated group ExtensionRepeatedGroup = 30020 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } } extensions 10000 to max; } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto2_20160519_a4ab9ec5/000077500000000000000000000000001411250152500272545ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto2_20160519_a4ab9ec5/test.pb.go000066400000000000000000004507031411250152500311730ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. // source: proto2_20160519_a4ab9ec5/test.proto // DO NOT EDIT! /* Package proto2_20160519_a4ab9ec5 is a generated protocol buffer package. It is generated from these files: proto2_20160519_a4ab9ec5/test.proto It has these top-level messages: SiblingMessage Message */ package proto2_20160519_a4ab9ec5 import proto "google.golang.org/protobuf/internal/protolegacy" import fmt "fmt" import math "math" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. const _ = proto.ProtoPackageIsVersion1 type SiblingEnum int32 const ( SiblingEnum_ALPHA SiblingEnum = 0 SiblingEnum_BRAVO SiblingEnum = 10 SiblingEnum_CHARLIE SiblingEnum = 200 ) var SiblingEnum_name = map[int32]string{ 0: "ALPHA", 10: "BRAVO", 200: "CHARLIE", } var SiblingEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 10, "CHARLIE": 200, } func (x SiblingEnum) Enum() *SiblingEnum { p := new(SiblingEnum) *p = x return p } func (x SiblingEnum) String() string { return proto.EnumName(SiblingEnum_name, int32(x)) } func (x *SiblingEnum) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(SiblingEnum_value, data, "SiblingEnum") if err != nil { return err } *x = SiblingEnum(value) return nil } func (SiblingEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } type Message_ChildEnum int32 const ( Message_ALPHA Message_ChildEnum = 0 Message_BRAVO Message_ChildEnum = 1 Message_CHARLIE Message_ChildEnum = 2 ) var Message_ChildEnum_name = map[int32]string{ 0: "ALPHA", 1: "BRAVO", 2: "CHARLIE", } var Message_ChildEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 1, "CHARLIE": 2, } func (x Message_ChildEnum) Enum() *Message_ChildEnum { p := new(Message_ChildEnum) *p = x return p } func (x Message_ChildEnum) String() string { return proto.EnumName(Message_ChildEnum_name, int32(x)) } func (x *Message_ChildEnum) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(Message_ChildEnum_value, data, "Message_ChildEnum") if err != nil { return err } *x = Message_ChildEnum(value) return nil } func (Message_ChildEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 0} } type SiblingMessage struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` F4 *Message `protobuf:"bytes,4,opt,name=f4" json:"f4,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *SiblingMessage) Reset() { *m = SiblingMessage{} } func (m *SiblingMessage) String() string { return proto.CompactTextString(m) } func (*SiblingMessage) ProtoMessage() {} func (*SiblingMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } func (m *SiblingMessage) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *SiblingMessage) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *SiblingMessage) GetF3() []string { if m != nil { return m.F3 } return nil } func (m *SiblingMessage) GetF4() *Message { if m != nil { return m.F4 } return nil } type Message struct { Namedgroup *Message_NamedGroup `protobuf:"group,1,opt,name=NamedGroup,json=namedgroup" json:"namedgroup,omitempty"` // Optional fields. OptionalBool *bool `protobuf:"varint,100,opt,name=optional_bool,json=optionalBool" json:"optional_bool,omitempty"` OptionalInt32 *int32 `protobuf:"varint,101,opt,name=optional_int32,json=optionalInt32" json:"optional_int32,omitempty"` OptionalSint32 *int32 `protobuf:"zigzag32,102,opt,name=optional_sint32,json=optionalSint32" json:"optional_sint32,omitempty"` OptionalUint32 *uint32 `protobuf:"varint,103,opt,name=optional_uint32,json=optionalUint32" json:"optional_uint32,omitempty"` OptionalInt64 *int64 `protobuf:"varint,104,opt,name=optional_int64,json=optionalInt64" json:"optional_int64,omitempty"` OptionalSint64 *int64 `protobuf:"zigzag64,105,opt,name=optional_sint64,json=optionalSint64" json:"optional_sint64,omitempty"` OptionalUint64 *uint64 `protobuf:"varint,106,opt,name=optional_uint64,json=optionalUint64" json:"optional_uint64,omitempty"` OptionalFixed32 *uint32 `protobuf:"fixed32,107,opt,name=optional_fixed32,json=optionalFixed32" json:"optional_fixed32,omitempty"` OptionalSfixed32 *int32 `protobuf:"fixed32,108,opt,name=optional_sfixed32,json=optionalSfixed32" json:"optional_sfixed32,omitempty"` OptionalFloat *float32 `protobuf:"fixed32,109,opt,name=optional_float,json=optionalFloat" json:"optional_float,omitempty"` OptionalFixed64 *uint64 `protobuf:"fixed64,110,opt,name=optional_fixed64,json=optionalFixed64" json:"optional_fixed64,omitempty"` OptionalSfixed64 *int64 `protobuf:"fixed64,111,opt,name=optional_sfixed64,json=optionalSfixed64" json:"optional_sfixed64,omitempty"` OptionalDouble *float64 `protobuf:"fixed64,112,opt,name=optional_double,json=optionalDouble" json:"optional_double,omitempty"` OptionalString *string `protobuf:"bytes,113,opt,name=optional_string,json=optionalString" json:"optional_string,omitempty"` OptionalBytes []byte `protobuf:"bytes,114,opt,name=optional_bytes,json=optionalBytes" json:"optional_bytes,omitempty"` OptionalChildEnum *Message_ChildEnum `protobuf:"varint,115,opt,name=optional_child_enum,json=optionalChildEnum,enum=google.golang.org.proto2_20160519.Message_ChildEnum" json:"optional_child_enum,omitempty"` OptionalChildMessage *Message_ChildMessage `protobuf:"bytes,116,opt,name=optional_child_message,json=optionalChildMessage" json:"optional_child_message,omitempty"` OptionalNamedGroup *Message_NamedGroup `protobuf:"bytes,117,opt,name=optional_named_group,json=optionalNamedGroup" json:"optional_named_group,omitempty"` OptionalSiblingEnum *SiblingEnum `protobuf:"varint,118,opt,name=optional_sibling_enum,json=optionalSiblingEnum,enum=google.golang.org.proto2_20160519.SiblingEnum" json:"optional_sibling_enum,omitempty"` OptionalSiblingMessage *SiblingMessage `protobuf:"bytes,119,opt,name=optional_sibling_message,json=optionalSiblingMessage" json:"optional_sibling_message,omitempty"` Optionalgroup *Message_OptionalGroup `protobuf:"group,120,opt,name=OptionalGroup,json=optionalgroup" json:"optionalgroup,omitempty"` // Optional default fields. DefaultedBool *bool `protobuf:"varint,200,opt,name=defaulted_bool,json=defaultedBool,def=1" json:"defaulted_bool,omitempty"` DefaultedInt32 *int32 `protobuf:"varint,201,opt,name=defaulted_int32,json=defaultedInt32,def=-12345" json:"defaulted_int32,omitempty"` DefaultedSint32 *int32 `protobuf:"zigzag32,202,opt,name=defaulted_sint32,json=defaultedSint32,def=-3200" json:"defaulted_sint32,omitempty"` DefaultedUint32 *uint32 `protobuf:"varint,203,opt,name=defaulted_uint32,json=defaultedUint32,def=3200" json:"defaulted_uint32,omitempty"` DefaultedInt64 *int64 `protobuf:"varint,204,opt,name=defaulted_int64,json=defaultedInt64,def=-123456789" json:"defaulted_int64,omitempty"` DefaultedSint64 *int64 `protobuf:"zigzag64,205,opt,name=defaulted_sint64,json=defaultedSint64,def=-6400" json:"defaulted_sint64,omitempty"` DefaultedUint64 *uint64 `protobuf:"varint,206,opt,name=defaulted_uint64,json=defaultedUint64,def=6400" json:"defaulted_uint64,omitempty"` DefaultedFixed32 *uint32 `protobuf:"fixed32,207,opt,name=defaulted_fixed32,json=defaultedFixed32,def=320000" json:"defaulted_fixed32,omitempty"` DefaultedSfixed32 *int32 `protobuf:"fixed32,208,opt,name=defaulted_sfixed32,json=defaultedSfixed32,def=-320000" json:"defaulted_sfixed32,omitempty"` DefaultedFloat *float32 `protobuf:"fixed32,209,opt,name=defaulted_float,json=defaultedFloat,def=3.14159" json:"defaulted_float,omitempty"` DefaultedFixed64 *uint64 `protobuf:"fixed64,210,opt,name=defaulted_fixed64,json=defaultedFixed64,def=640000" json:"defaulted_fixed64,omitempty"` DefaultedSfixed64 *int64 `protobuf:"fixed64,211,opt,name=defaulted_sfixed64,json=defaultedSfixed64,def=-640000" json:"defaulted_sfixed64,omitempty"` DefaultedDouble *float64 `protobuf:"fixed64,212,opt,name=defaulted_double,json=defaultedDouble,def=3.14159265359" json:"defaulted_double,omitempty"` DefaultedString *string `protobuf:"bytes,213,opt,name=defaulted_string,json=defaultedString,def=hello, \"world!\"\n" json:"defaulted_string,omitempty"` DefaultedBytes []byte `protobuf:"bytes,214,opt,name=defaulted_bytes,json=defaultedBytes,def=dead\\336\\255\\276\\357beef" json:"defaulted_bytes,omitempty"` DefaultedChildEnum *Message_ChildEnum `protobuf:"varint,215,opt,name=defaulted_child_enum,json=defaultedChildEnum,enum=google.golang.org.proto2_20160519.Message_ChildEnum,def=0" json:"defaulted_child_enum,omitempty"` DefaultedSiblingEnum *SiblingEnum `protobuf:"varint,216,opt,name=defaulted_sibling_enum,json=defaultedSiblingEnum,enum=google.golang.org.proto2_20160519.SiblingEnum,def=0" json:"defaulted_sibling_enum,omitempty"` // Required fields. RequiredBool *bool `protobuf:"varint,300,req,name=required_bool,json=requiredBool" json:"required_bool,omitempty"` RequiredInt32 *int32 `protobuf:"varint,301,req,name=required_int32,json=requiredInt32" json:"required_int32,omitempty"` RequiredSint32 *int32 `protobuf:"zigzag32,302,req,name=required_sint32,json=requiredSint32" json:"required_sint32,omitempty"` RequiredUint32 *uint32 `protobuf:"varint,303,req,name=required_uint32,json=requiredUint32" json:"required_uint32,omitempty"` RequiredInt64 *int64 `protobuf:"varint,304,req,name=required_int64,json=requiredInt64" json:"required_int64,omitempty"` RequiredSint64 *int64 `protobuf:"zigzag64,305,req,name=required_sint64,json=requiredSint64" json:"required_sint64,omitempty"` RequiredUint64 *uint64 `protobuf:"varint,306,req,name=required_uint64,json=requiredUint64" json:"required_uint64,omitempty"` RequiredFixed32 *uint32 `protobuf:"fixed32,307,req,name=required_fixed32,json=requiredFixed32" json:"required_fixed32,omitempty"` RequiredSfixed32 *int32 `protobuf:"fixed32,308,req,name=required_sfixed32,json=requiredSfixed32" json:"required_sfixed32,omitempty"` RequiredFloat *float32 `protobuf:"fixed32,309,req,name=required_float,json=requiredFloat" json:"required_float,omitempty"` RequiredFixed64 *uint64 `protobuf:"fixed64,310,req,name=required_fixed64,json=requiredFixed64" json:"required_fixed64,omitempty"` RequiredSfixed64 *int64 `protobuf:"fixed64,311,req,name=required_sfixed64,json=requiredSfixed64" json:"required_sfixed64,omitempty"` RequiredDouble *float64 `protobuf:"fixed64,312,req,name=required_double,json=requiredDouble" json:"required_double,omitempty"` RequiredString *string `protobuf:"bytes,313,req,name=required_string,json=requiredString" json:"required_string,omitempty"` RequiredBytes []byte `protobuf:"bytes,314,req,name=required_bytes,json=requiredBytes" json:"required_bytes,omitempty"` RequiredChildEnum *Message_ChildEnum `protobuf:"varint,315,req,name=required_child_enum,json=requiredChildEnum,enum=google.golang.org.proto2_20160519.Message_ChildEnum" json:"required_child_enum,omitempty"` RequiredChildMessage *Message_ChildMessage `protobuf:"bytes,316,req,name=required_child_message,json=requiredChildMessage" json:"required_child_message,omitempty"` RequiredNamedGroup *Message_NamedGroup `protobuf:"bytes,317,req,name=required_named_group,json=requiredNamedGroup" json:"required_named_group,omitempty"` RequiredSiblingEnum *SiblingEnum `protobuf:"varint,318,req,name=required_sibling_enum,json=requiredSiblingEnum,enum=google.golang.org.proto2_20160519.SiblingEnum" json:"required_sibling_enum,omitempty"` RequiredSiblingMessage *SiblingMessage `protobuf:"bytes,319,req,name=required_sibling_message,json=requiredSiblingMessage" json:"required_sibling_message,omitempty"` Requiredgroup *Message_RequiredGroup `protobuf:"group,320,req,name=RequiredGroup,json=requiredgroup" json:"requiredgroup,omitempty"` // Required default fields. RequiredDefaultedBool *bool `protobuf:"varint,400,req,name=required_defaulted_bool,json=requiredDefaultedBool,def=1" json:"required_defaulted_bool,omitempty"` RequiredDefaultedInt32 *int32 `protobuf:"varint,401,req,name=required_defaulted_int32,json=requiredDefaultedInt32,def=-12345" json:"required_defaulted_int32,omitempty"` RequiredDefaultedSint32 *int32 `protobuf:"zigzag32,402,req,name=required_defaulted_sint32,json=requiredDefaultedSint32,def=-3200" json:"required_defaulted_sint32,omitempty"` RequiredDefaultedUint32 *uint32 `protobuf:"varint,403,req,name=required_defaulted_uint32,json=requiredDefaultedUint32,def=3200" json:"required_defaulted_uint32,omitempty"` RequiredDefaultedInt64 *int64 `protobuf:"varint,404,req,name=required_defaulted_int64,json=requiredDefaultedInt64,def=-123456789" json:"required_defaulted_int64,omitempty"` RequiredDefaultedSint64 *int64 `protobuf:"zigzag64,405,req,name=required_defaulted_sint64,json=requiredDefaultedSint64,def=-6400" json:"required_defaulted_sint64,omitempty"` RequiredDefaultedUint64 *uint64 `protobuf:"varint,406,req,name=required_defaulted_uint64,json=requiredDefaultedUint64,def=6400" json:"required_defaulted_uint64,omitempty"` RequiredDefaultedFixed32 *uint32 `protobuf:"fixed32,407,req,name=required_defaulted_fixed32,json=requiredDefaultedFixed32,def=320000" json:"required_defaulted_fixed32,omitempty"` RequiredDefaultedSfixed32 *int32 `protobuf:"fixed32,408,req,name=required_defaulted_sfixed32,json=requiredDefaultedSfixed32,def=-320000" json:"required_defaulted_sfixed32,omitempty"` RequiredDefaultedFloat *float32 `protobuf:"fixed32,409,req,name=required_defaulted_float,json=requiredDefaultedFloat,def=3.14159" json:"required_defaulted_float,omitempty"` RequiredDefaultedFixed64 *uint64 `protobuf:"fixed64,410,req,name=required_defaulted_fixed64,json=requiredDefaultedFixed64,def=640000" json:"required_defaulted_fixed64,omitempty"` RequiredDefaultedSfixed64 *int64 `protobuf:"fixed64,411,req,name=required_defaulted_sfixed64,json=requiredDefaultedSfixed64,def=-640000" json:"required_defaulted_sfixed64,omitempty"` RequiredDefaultedDouble *float64 `protobuf:"fixed64,412,req,name=required_defaulted_double,json=requiredDefaultedDouble,def=3.14159265359" json:"required_defaulted_double,omitempty"` RequiredDefaultedString *string `protobuf:"bytes,413,req,name=required_defaulted_string,json=requiredDefaultedString,def=hello, \"world!\"\n" json:"required_defaulted_string,omitempty"` RequiredDefaultedBytes []byte `protobuf:"bytes,414,req,name=required_defaulted_bytes,json=requiredDefaultedBytes,def=dead\\336\\255\\276\\357beef" json:"required_defaulted_bytes,omitempty"` RequiredDefaultedChildEnum *Message_ChildEnum `protobuf:"varint,415,req,name=required_defaulted_child_enum,json=requiredDefaultedChildEnum,enum=google.golang.org.proto2_20160519.Message_ChildEnum,def=0" json:"required_defaulted_child_enum,omitempty"` RequiredDefaultedSiblingEnum *SiblingEnum `protobuf:"varint,416,req,name=required_defaulted_sibling_enum,json=requiredDefaultedSiblingEnum,enum=google.golang.org.proto2_20160519.SiblingEnum,def=0" json:"required_defaulted_sibling_enum,omitempty"` // Repeated fields. RepeatedBool []bool `protobuf:"varint,500,rep,name=repeated_bool,json=repeatedBool" json:"repeated_bool,omitempty"` RepeatedInt32 []int32 `protobuf:"varint,501,rep,name=repeated_int32,json=repeatedInt32" json:"repeated_int32,omitempty"` RepeatedSint32 []int32 `protobuf:"zigzag32,502,rep,name=repeated_sint32,json=repeatedSint32" json:"repeated_sint32,omitempty"` RepeatedUint32 []uint32 `protobuf:"varint,503,rep,name=repeated_uint32,json=repeatedUint32" json:"repeated_uint32,omitempty"` RepeatedInt64 []int64 `protobuf:"varint,504,rep,name=repeated_int64,json=repeatedInt64" json:"repeated_int64,omitempty"` RepeatedSint64 []int64 `protobuf:"zigzag64,505,rep,name=repeated_sint64,json=repeatedSint64" json:"repeated_sint64,omitempty"` RepeatedUint64 []uint64 `protobuf:"varint,506,rep,name=repeated_uint64,json=repeatedUint64" json:"repeated_uint64,omitempty"` RepeatedFixed32 []uint32 `protobuf:"fixed32,507,rep,name=repeated_fixed32,json=repeatedFixed32" json:"repeated_fixed32,omitempty"` RepeatedSfixed32 []int32 `protobuf:"fixed32,508,rep,name=repeated_sfixed32,json=repeatedSfixed32" json:"repeated_sfixed32,omitempty"` RepeatedFloat []float32 `protobuf:"fixed32,509,rep,name=repeated_float,json=repeatedFloat" json:"repeated_float,omitempty"` RepeatedFixed64 []uint64 `protobuf:"fixed64,510,rep,name=repeated_fixed64,json=repeatedFixed64" json:"repeated_fixed64,omitempty"` RepeatedSfixed64 []int64 `protobuf:"fixed64,511,rep,name=repeated_sfixed64,json=repeatedSfixed64" json:"repeated_sfixed64,omitempty"` RepeatedDouble []float64 `protobuf:"fixed64,512,rep,name=repeated_double,json=repeatedDouble" json:"repeated_double,omitempty"` RepeatedString []string `protobuf:"bytes,513,rep,name=repeated_string,json=repeatedString" json:"repeated_string,omitempty"` RepeatedBytes [][]byte `protobuf:"bytes,514,rep,name=repeated_bytes,json=repeatedBytes" json:"repeated_bytes,omitempty"` RepeatedChildEnum []Message_ChildEnum `protobuf:"varint,515,rep,name=repeated_child_enum,json=repeatedChildEnum,enum=google.golang.org.proto2_20160519.Message_ChildEnum" json:"repeated_child_enum,omitempty"` RepeatedChildMessage []*Message_ChildMessage `protobuf:"bytes,516,rep,name=repeated_child_message,json=repeatedChildMessage" json:"repeated_child_message,omitempty"` RepeatedNamedGroup []*Message_NamedGroup `protobuf:"bytes,517,rep,name=repeated_named_group,json=repeatedNamedGroup" json:"repeated_named_group,omitempty"` RepeatedSiblingEnum []SiblingEnum `protobuf:"varint,518,rep,name=repeated_sibling_enum,json=repeatedSiblingEnum,enum=google.golang.org.proto2_20160519.SiblingEnum" json:"repeated_sibling_enum,omitempty"` RepeatedSiblingMessage []*SiblingMessage `protobuf:"bytes,519,rep,name=repeated_sibling_message,json=repeatedSiblingMessage" json:"repeated_sibling_message,omitempty"` Repeatedgroup []*Message_RepeatedGroup `protobuf:"group,520,rep,name=RepeatedGroup,json=repeatedgroup" json:"repeatedgroup,omitempty"` // Map fields. MapBoolBool map[bool]bool `protobuf:"bytes,600,rep,name=map_bool_bool,json=mapBoolBool" json:"map_bool_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolInt32 map[bool]int32 `protobuf:"bytes,601,rep,name=map_bool_int32,json=mapBoolInt32" json:"map_bool_int32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolSint32 map[bool]int32 `protobuf:"bytes,602,rep,name=map_bool_sint32,json=mapBoolSint32" json:"map_bool_sint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` MapBoolUint32 map[bool]uint32 `protobuf:"bytes,603,rep,name=map_bool_uint32,json=mapBoolUint32" json:"map_bool_uint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolInt64 map[bool]int64 `protobuf:"bytes,604,rep,name=map_bool_int64,json=mapBoolInt64" json:"map_bool_int64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolSint64 map[bool]int64 `protobuf:"bytes,605,rep,name=map_bool_sint64,json=mapBoolSint64" json:"map_bool_sint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` MapBoolUint64 map[bool]uint64 `protobuf:"bytes,606,rep,name=map_bool_uint64,json=mapBoolUint64" json:"map_bool_uint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolFixed32 map[bool]uint32 `protobuf:"bytes,607,rep,name=map_bool_fixed32,json=mapBoolFixed32" json:"map_bool_fixed32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolSfixed32 map[bool]int32 `protobuf:"bytes,608,rep,name=map_bool_sfixed32,json=mapBoolSfixed32" json:"map_bool_sfixed32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolFloat map[bool]float32 `protobuf:"bytes,609,rep,name=map_bool_float,json=mapBoolFloat" json:"map_bool_float,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolFixed64 map[bool]uint64 `protobuf:"bytes,610,rep,name=map_bool_fixed64,json=mapBoolFixed64" json:"map_bool_fixed64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolSfixed64 map[bool]int64 `protobuf:"bytes,611,rep,name=map_bool_sfixed64,json=mapBoolSfixed64" json:"map_bool_sfixed64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolDouble map[bool]float64 `protobuf:"bytes,612,rep,name=map_bool_double,json=mapBoolDouble" json:"map_bool_double,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolString map[bool]string `protobuf:"bytes,613,rep,name=map_bool_string,json=mapBoolString" json:"map_bool_string,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolBytes map[bool][]byte `protobuf:"bytes,614,rep,name=map_bool_bytes,json=mapBoolBytes" json:"map_bool_bytes,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolChildEnum map[bool]Message_ChildEnum `protobuf:"bytes,615,rep,name=map_bool_child_enum,json=mapBoolChildEnum" json:"map_bool_child_enum,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.golang.org.proto2_20160519.Message_ChildEnum"` MapBoolChildMessage map[bool]*Message_ChildMessage `protobuf:"bytes,616,rep,name=map_bool_child_message,json=mapBoolChildMessage" json:"map_bool_child_message,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolNamedGroup map[bool]*Message_NamedGroup `protobuf:"bytes,617,rep,name=map_bool_named_group,json=mapBoolNamedGroup" json:"map_bool_named_group,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolSiblingEnum map[bool]SiblingEnum `protobuf:"bytes,618,rep,name=map_bool_sibling_enum,json=mapBoolSiblingEnum" json:"map_bool_sibling_enum,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.golang.org.proto2_20160519.SiblingEnum"` MapBoolSiblingMessage map[bool]*SiblingMessage `protobuf:"bytes,619,rep,name=map_bool_sibling_message,json=mapBoolSiblingMessage" json:"map_bool_sibling_message,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapInt32Bool map[int32]bool `protobuf:"bytes,620,rep,name=map_int32_bool,json=mapInt32Bool" json:"map_int32_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapSint32Bool map[int32]bool `protobuf:"bytes,621,rep,name=map_sint32_bool,json=mapSint32Bool" json:"map_sint32_bool,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint32Bool map[uint32]bool `protobuf:"bytes,622,rep,name=map_uint32_bool,json=mapUint32Bool" json:"map_uint32_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapInt64Bool map[int64]bool `protobuf:"bytes,623,rep,name=map_int64_bool,json=mapInt64Bool" json:"map_int64_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapSint64Bool map[int64]bool `protobuf:"bytes,624,rep,name=map_sint64_bool,json=mapSint64Bool" json:"map_sint64_bool,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint64Bool map[uint64]bool `protobuf:"bytes,625,rep,name=map_uint64_bool,json=mapUint64Bool" json:"map_uint64_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapFixed32Bool map[uint32]bool `protobuf:"bytes,626,rep,name=map_fixed32_bool,json=mapFixed32Bool" json:"map_fixed32_bool,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapStringBool map[string]bool `protobuf:"bytes,627,rep,name=map_string_bool,json=mapStringBool" json:"map_string_bool,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // Oneof fields. // // Types that are valid to be assigned to OneofUnion: // *Message_OneofBool // *Message_OneofInt32 // *Message_OneofSint32 // *Message_OneofUint32 // *Message_OneofInt64 // *Message_OneofSint64 // *Message_OneofUint64 // *Message_OneofFixed32 // *Message_OneofSfixed32 // *Message_OneofFloat // *Message_OneofFixed64 // *Message_OneofSfixed64 // *Message_OneofDouble // *Message_OneofString // *Message_OneofBytes // *Message_OneofChildEnum // *Message_OneofChildMessage // *Message_OneofNamedGroup // *Message_OneofSiblingEnum // *Message_OneofSiblingMessage // *Message_Oneofgroup // *Message_OneofString1 // *Message_OneofString2 // *Message_OneofString3 OneofUnion isMessage_OneofUnion `protobuf_oneof:"oneof_union"` // Oneof default fields. // // Types that are valid to be assigned to OneofDefaultedUnion: // *Message_OneofDefaultedBool // *Message_OneofDefaultedInt32 // *Message_OneofDefaultedSint32 // *Message_OneofDefaultedUint32 // *Message_OneofDefaultedInt64 // *Message_OneofDefaultedSint64 // *Message_OneofDefaultedUint64 // *Message_OneofDefaultedFixed32 // *Message_OneofDefaultedSfixed32 // *Message_OneofDefaultedFloat // *Message_OneofDefaultedFixed64 // *Message_OneofDefaultedSfixed64 // *Message_OneofDefaultedDouble // *Message_OneofDefaultedString // *Message_OneofDefaultedBytes // *Message_OneofDefaultedChildEnum // *Message_OneofDefaultedSiblingEnum OneofDefaultedUnion isMessage_OneofDefaultedUnion `protobuf_oneof:"oneof_defaulted_union"` XXX_extensions map[int32]proto.Extension `json:"-"` XXX_unrecognized []byte `json:"-"` } func (m *Message) Reset() { *m = Message{} } func (m *Message) String() string { return proto.CompactTextString(m) } func (*Message) ProtoMessage() {} func (*Message) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } var extRange_Message = []proto.ExtensionRange{ {10000, 536870911}, } func (*Message) ExtensionRangeArray() []proto.ExtensionRange { return extRange_Message } func (m *Message) ExtensionMap() map[int32]proto.Extension { if m.XXX_extensions == nil { m.XXX_extensions = make(map[int32]proto.Extension) } return m.XXX_extensions } const Default_Message_DefaultedBool bool = true const Default_Message_DefaultedInt32 int32 = -12345 const Default_Message_DefaultedSint32 int32 = -3200 const Default_Message_DefaultedUint32 uint32 = 3200 const Default_Message_DefaultedInt64 int64 = -123456789 const Default_Message_DefaultedSint64 int64 = -6400 const Default_Message_DefaultedUint64 uint64 = 6400 const Default_Message_DefaultedFixed32 uint32 = 320000 const Default_Message_DefaultedSfixed32 int32 = -320000 const Default_Message_DefaultedFloat float32 = 3.14159 const Default_Message_DefaultedFixed64 uint64 = 640000 const Default_Message_DefaultedSfixed64 int64 = -640000 const Default_Message_DefaultedDouble float64 = 3.14159265359 const Default_Message_DefaultedString string = "hello, \"world!\"\n" var Default_Message_DefaultedBytes []byte = []byte("dead\\336\\255\\276\\357beef") const Default_Message_DefaultedChildEnum Message_ChildEnum = Message_ALPHA const Default_Message_DefaultedSiblingEnum SiblingEnum = SiblingEnum_ALPHA const Default_Message_RequiredDefaultedBool bool = true const Default_Message_RequiredDefaultedInt32 int32 = -12345 const Default_Message_RequiredDefaultedSint32 int32 = -3200 const Default_Message_RequiredDefaultedUint32 uint32 = 3200 const Default_Message_RequiredDefaultedInt64 int64 = -123456789 const Default_Message_RequiredDefaultedSint64 int64 = -6400 const Default_Message_RequiredDefaultedUint64 uint64 = 6400 const Default_Message_RequiredDefaultedFixed32 uint32 = 320000 const Default_Message_RequiredDefaultedSfixed32 int32 = -320000 const Default_Message_RequiredDefaultedFloat float32 = 3.14159 const Default_Message_RequiredDefaultedFixed64 uint64 = 640000 const Default_Message_RequiredDefaultedSfixed64 int64 = -640000 const Default_Message_RequiredDefaultedDouble float64 = 3.14159265359 const Default_Message_RequiredDefaultedString string = "hello, \"world!\"\n" var Default_Message_RequiredDefaultedBytes []byte = []byte("dead\\336\\255\\276\\357beef") const Default_Message_RequiredDefaultedChildEnum Message_ChildEnum = Message_ALPHA const Default_Message_RequiredDefaultedSiblingEnum SiblingEnum = SiblingEnum_ALPHA const Default_Message_OneofDefaultedBool bool = true const Default_Message_OneofDefaultedInt32 int32 = -12345 const Default_Message_OneofDefaultedSint32 int32 = -3200 const Default_Message_OneofDefaultedUint32 uint32 = 3200 const Default_Message_OneofDefaultedInt64 int64 = -123456789 const Default_Message_OneofDefaultedSint64 int64 = -6400 const Default_Message_OneofDefaultedUint64 uint64 = 6400 const Default_Message_OneofDefaultedFixed32 uint32 = 320000 const Default_Message_OneofDefaultedSfixed32 int32 = -320000 const Default_Message_OneofDefaultedFloat float32 = 3.14159 const Default_Message_OneofDefaultedFixed64 uint64 = 640000 const Default_Message_OneofDefaultedSfixed64 int64 = -640000 const Default_Message_OneofDefaultedDouble float64 = 3.14159265359 const Default_Message_OneofDefaultedString string = "hello, \"world!\"\n" var Default_Message_OneofDefaultedBytes []byte = []byte("dead\\336\\255\\276\\357beef") const Default_Message_OneofDefaultedChildEnum Message_ChildEnum = Message_ALPHA const Default_Message_OneofDefaultedSiblingEnum SiblingEnum = SiblingEnum_ALPHA type isMessage_OneofUnion interface{ isMessage_OneofUnion() } type isMessage_OneofDefaultedUnion interface{ isMessage_OneofDefaultedUnion() } type Message_OneofBool struct { OneofBool bool `protobuf:"varint,700,opt,name=oneof_bool,json=oneofBool,oneof"` } type Message_OneofInt32 struct { OneofInt32 int32 `protobuf:"varint,701,opt,name=oneof_int32,json=oneofInt32,oneof"` } type Message_OneofSint32 struct { OneofSint32 int32 `protobuf:"zigzag32,702,opt,name=oneof_sint32,json=oneofSint32,oneof"` } type Message_OneofUint32 struct { OneofUint32 uint32 `protobuf:"varint,703,opt,name=oneof_uint32,json=oneofUint32,oneof"` } type Message_OneofInt64 struct { OneofInt64 int64 `protobuf:"varint,704,opt,name=oneof_int64,json=oneofInt64,oneof"` } type Message_OneofSint64 struct { OneofSint64 int64 `protobuf:"zigzag64,705,opt,name=oneof_sint64,json=oneofSint64,oneof"` } type Message_OneofUint64 struct { OneofUint64 uint64 `protobuf:"varint,706,opt,name=oneof_uint64,json=oneofUint64,oneof"` } type Message_OneofFixed32 struct { OneofFixed32 uint32 `protobuf:"fixed32,707,opt,name=oneof_fixed32,json=oneofFixed32,oneof"` } type Message_OneofSfixed32 struct { OneofSfixed32 int32 `protobuf:"fixed32,708,opt,name=oneof_sfixed32,json=oneofSfixed32,oneof"` } type Message_OneofFloat struct { OneofFloat float32 `protobuf:"fixed32,709,opt,name=oneof_float,json=oneofFloat,oneof"` } type Message_OneofFixed64 struct { OneofFixed64 uint64 `protobuf:"fixed64,710,opt,name=oneof_fixed64,json=oneofFixed64,oneof"` } type Message_OneofSfixed64 struct { OneofSfixed64 int64 `protobuf:"fixed64,711,opt,name=oneof_sfixed64,json=oneofSfixed64,oneof"` } type Message_OneofDouble struct { OneofDouble float64 `protobuf:"fixed64,712,opt,name=oneof_double,json=oneofDouble,oneof"` } type Message_OneofString struct { OneofString string `protobuf:"bytes,713,opt,name=oneof_string,json=oneofString,oneof"` } type Message_OneofBytes struct { OneofBytes []byte `protobuf:"bytes,714,opt,name=oneof_bytes,json=oneofBytes,oneof"` } type Message_OneofChildEnum struct { OneofChildEnum Message_ChildEnum `protobuf:"varint,715,opt,name=oneof_child_enum,json=oneofChildEnum,enum=google.golang.org.proto2_20160519.Message_ChildEnum,oneof"` } type Message_OneofChildMessage struct { OneofChildMessage *Message_ChildMessage `protobuf:"bytes,716,opt,name=oneof_child_message,json=oneofChildMessage,oneof"` } type Message_OneofNamedGroup struct { OneofNamedGroup *Message_NamedGroup `protobuf:"bytes,717,opt,name=oneof_named_group,json=oneofNamedGroup,oneof"` } type Message_OneofSiblingEnum struct { OneofSiblingEnum SiblingEnum `protobuf:"varint,718,opt,name=oneof_sibling_enum,json=oneofSiblingEnum,enum=google.golang.org.proto2_20160519.SiblingEnum,oneof"` } type Message_OneofSiblingMessage struct { OneofSiblingMessage *SiblingMessage `protobuf:"bytes,719,opt,name=oneof_sibling_message,json=oneofSiblingMessage,oneof"` } type Message_Oneofgroup struct { Oneofgroup *Message_OneofGroup `protobuf:"group,720,opt,name=OneofGroup,json=oneofgroup,oneof"` } type Message_OneofString1 struct { OneofString1 string `protobuf:"bytes,721,opt,name=oneof_string1,json=oneofString1,oneof"` } type Message_OneofString2 struct { OneofString2 string `protobuf:"bytes,722,opt,name=oneof_string2,json=oneofString2,oneof"` } type Message_OneofString3 struct { OneofString3 string `protobuf:"bytes,723,opt,name=oneof_string3,json=oneofString3,oneof"` } type Message_OneofDefaultedBool struct { OneofDefaultedBool bool `protobuf:"varint,800,opt,name=oneof_defaulted_bool,json=oneofDefaultedBool,oneof,def=1"` } type Message_OneofDefaultedInt32 struct { OneofDefaultedInt32 int32 `protobuf:"varint,801,opt,name=oneof_defaulted_int32,json=oneofDefaultedInt32,oneof,def=-12345"` } type Message_OneofDefaultedSint32 struct { OneofDefaultedSint32 int32 `protobuf:"zigzag32,802,opt,name=oneof_defaulted_sint32,json=oneofDefaultedSint32,oneof,def=-3200"` } type Message_OneofDefaultedUint32 struct { OneofDefaultedUint32 uint32 `protobuf:"varint,803,opt,name=oneof_defaulted_uint32,json=oneofDefaultedUint32,oneof,def=3200"` } type Message_OneofDefaultedInt64 struct { OneofDefaultedInt64 int64 `protobuf:"varint,804,opt,name=oneof_defaulted_int64,json=oneofDefaultedInt64,oneof,def=-123456789"` } type Message_OneofDefaultedSint64 struct { OneofDefaultedSint64 int64 `protobuf:"zigzag64,805,opt,name=oneof_defaulted_sint64,json=oneofDefaultedSint64,oneof,def=-6400"` } type Message_OneofDefaultedUint64 struct { OneofDefaultedUint64 uint64 `protobuf:"varint,806,opt,name=oneof_defaulted_uint64,json=oneofDefaultedUint64,oneof,def=6400"` } type Message_OneofDefaultedFixed32 struct { OneofDefaultedFixed32 uint32 `protobuf:"fixed32,807,opt,name=oneof_defaulted_fixed32,json=oneofDefaultedFixed32,oneof,def=320000"` } type Message_OneofDefaultedSfixed32 struct { OneofDefaultedSfixed32 int32 `protobuf:"fixed32,808,opt,name=oneof_defaulted_sfixed32,json=oneofDefaultedSfixed32,oneof,def=-320000"` } type Message_OneofDefaultedFloat struct { OneofDefaultedFloat float32 `protobuf:"fixed32,809,opt,name=oneof_defaulted_float,json=oneofDefaultedFloat,oneof,def=3.14159"` } type Message_OneofDefaultedFixed64 struct { OneofDefaultedFixed64 uint64 `protobuf:"fixed64,810,opt,name=oneof_defaulted_fixed64,json=oneofDefaultedFixed64,oneof,def=640000"` } type Message_OneofDefaultedSfixed64 struct { OneofDefaultedSfixed64 int64 `protobuf:"fixed64,811,opt,name=oneof_defaulted_sfixed64,json=oneofDefaultedSfixed64,oneof,def=-640000"` } type Message_OneofDefaultedDouble struct { OneofDefaultedDouble float64 `protobuf:"fixed64,812,opt,name=oneof_defaulted_double,json=oneofDefaultedDouble,oneof,def=3.14159265359"` } type Message_OneofDefaultedString struct { OneofDefaultedString string `protobuf:"bytes,813,opt,name=oneof_defaulted_string,json=oneofDefaultedString,oneof,def=hello, \"world!\"\n"` } type Message_OneofDefaultedBytes struct { OneofDefaultedBytes []byte `protobuf:"bytes,814,opt,name=oneof_defaulted_bytes,json=oneofDefaultedBytes,oneof,def=dead\\336\\255\\276\\357beef"` } type Message_OneofDefaultedChildEnum struct { OneofDefaultedChildEnum Message_ChildEnum `protobuf:"varint,815,opt,name=oneof_defaulted_child_enum,json=oneofDefaultedChildEnum,enum=google.golang.org.proto2_20160519.Message_ChildEnum,oneof,def=0"` } type Message_OneofDefaultedSiblingEnum struct { OneofDefaultedSiblingEnum SiblingEnum `protobuf:"varint,816,opt,name=oneof_defaulted_sibling_enum,json=oneofDefaultedSiblingEnum,enum=google.golang.org.proto2_20160519.SiblingEnum,oneof,def=0"` } func (*Message_OneofBool) isMessage_OneofUnion() {} func (*Message_OneofInt32) isMessage_OneofUnion() {} func (*Message_OneofSint32) isMessage_OneofUnion() {} func (*Message_OneofUint32) isMessage_OneofUnion() {} func (*Message_OneofInt64) isMessage_OneofUnion() {} func (*Message_OneofSint64) isMessage_OneofUnion() {} func (*Message_OneofUint64) isMessage_OneofUnion() {} func (*Message_OneofFixed32) isMessage_OneofUnion() {} func (*Message_OneofSfixed32) isMessage_OneofUnion() {} func (*Message_OneofFloat) isMessage_OneofUnion() {} func (*Message_OneofFixed64) isMessage_OneofUnion() {} func (*Message_OneofSfixed64) isMessage_OneofUnion() {} func (*Message_OneofDouble) isMessage_OneofUnion() {} func (*Message_OneofString) isMessage_OneofUnion() {} func (*Message_OneofBytes) isMessage_OneofUnion() {} func (*Message_OneofChildEnum) isMessage_OneofUnion() {} func (*Message_OneofChildMessage) isMessage_OneofUnion() {} func (*Message_OneofNamedGroup) isMessage_OneofUnion() {} func (*Message_OneofSiblingEnum) isMessage_OneofUnion() {} func (*Message_OneofSiblingMessage) isMessage_OneofUnion() {} func (*Message_Oneofgroup) isMessage_OneofUnion() {} func (*Message_OneofString1) isMessage_OneofUnion() {} func (*Message_OneofString2) isMessage_OneofUnion() {} func (*Message_OneofString3) isMessage_OneofUnion() {} func (*Message_OneofDefaultedBool) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedInt32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSint32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedUint32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedInt64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSint64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedUint64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedFixed32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSfixed32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedFloat) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedFixed64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSfixed64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedDouble) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedString) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedBytes) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedChildEnum) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSiblingEnum) isMessage_OneofDefaultedUnion() {} func (m *Message) GetOneofUnion() isMessage_OneofUnion { if m != nil { return m.OneofUnion } return nil } func (m *Message) GetOneofDefaultedUnion() isMessage_OneofDefaultedUnion { if m != nil { return m.OneofDefaultedUnion } return nil } func (m *Message) GetNamedgroup() *Message_NamedGroup { if m != nil { return m.Namedgroup } return nil } func (m *Message) GetOptionalBool() bool { if m != nil && m.OptionalBool != nil { return *m.OptionalBool } return false } func (m *Message) GetOptionalInt32() int32 { if m != nil && m.OptionalInt32 != nil { return *m.OptionalInt32 } return 0 } func (m *Message) GetOptionalSint32() int32 { if m != nil && m.OptionalSint32 != nil { return *m.OptionalSint32 } return 0 } func (m *Message) GetOptionalUint32() uint32 { if m != nil && m.OptionalUint32 != nil { return *m.OptionalUint32 } return 0 } func (m *Message) GetOptionalInt64() int64 { if m != nil && m.OptionalInt64 != nil { return *m.OptionalInt64 } return 0 } func (m *Message) GetOptionalSint64() int64 { if m != nil && m.OptionalSint64 != nil { return *m.OptionalSint64 } return 0 } func (m *Message) GetOptionalUint64() uint64 { if m != nil && m.OptionalUint64 != nil { return *m.OptionalUint64 } return 0 } func (m *Message) GetOptionalFixed32() uint32 { if m != nil && m.OptionalFixed32 != nil { return *m.OptionalFixed32 } return 0 } func (m *Message) GetOptionalSfixed32() int32 { if m != nil && m.OptionalSfixed32 != nil { return *m.OptionalSfixed32 } return 0 } func (m *Message) GetOptionalFloat() float32 { if m != nil && m.OptionalFloat != nil { return *m.OptionalFloat } return 0 } func (m *Message) GetOptionalFixed64() uint64 { if m != nil && m.OptionalFixed64 != nil { return *m.OptionalFixed64 } return 0 } func (m *Message) GetOptionalSfixed64() int64 { if m != nil && m.OptionalSfixed64 != nil { return *m.OptionalSfixed64 } return 0 } func (m *Message) GetOptionalDouble() float64 { if m != nil && m.OptionalDouble != nil { return *m.OptionalDouble } return 0 } func (m *Message) GetOptionalString() string { if m != nil && m.OptionalString != nil { return *m.OptionalString } return "" } func (m *Message) GetOptionalBytes() []byte { if m != nil { return m.OptionalBytes } return nil } func (m *Message) GetOptionalChildEnum() Message_ChildEnum { if m != nil && m.OptionalChildEnum != nil { return *m.OptionalChildEnum } return Message_ALPHA } func (m *Message) GetOptionalChildMessage() *Message_ChildMessage { if m != nil { return m.OptionalChildMessage } return nil } func (m *Message) GetOptionalNamedGroup() *Message_NamedGroup { if m != nil { return m.OptionalNamedGroup } return nil } func (m *Message) GetOptionalSiblingEnum() SiblingEnum { if m != nil && m.OptionalSiblingEnum != nil { return *m.OptionalSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetOptionalSiblingMessage() *SiblingMessage { if m != nil { return m.OptionalSiblingMessage } return nil } func (m *Message) GetOptionalgroup() *Message_OptionalGroup { if m != nil { return m.Optionalgroup } return nil } func (m *Message) GetDefaultedBool() bool { if m != nil && m.DefaultedBool != nil { return *m.DefaultedBool } return Default_Message_DefaultedBool } func (m *Message) GetDefaultedInt32() int32 { if m != nil && m.DefaultedInt32 != nil { return *m.DefaultedInt32 } return Default_Message_DefaultedInt32 } func (m *Message) GetDefaultedSint32() int32 { if m != nil && m.DefaultedSint32 != nil { return *m.DefaultedSint32 } return Default_Message_DefaultedSint32 } func (m *Message) GetDefaultedUint32() uint32 { if m != nil && m.DefaultedUint32 != nil { return *m.DefaultedUint32 } return Default_Message_DefaultedUint32 } func (m *Message) GetDefaultedInt64() int64 { if m != nil && m.DefaultedInt64 != nil { return *m.DefaultedInt64 } return Default_Message_DefaultedInt64 } func (m *Message) GetDefaultedSint64() int64 { if m != nil && m.DefaultedSint64 != nil { return *m.DefaultedSint64 } return Default_Message_DefaultedSint64 } func (m *Message) GetDefaultedUint64() uint64 { if m != nil && m.DefaultedUint64 != nil { return *m.DefaultedUint64 } return Default_Message_DefaultedUint64 } func (m *Message) GetDefaultedFixed32() uint32 { if m != nil && m.DefaultedFixed32 != nil { return *m.DefaultedFixed32 } return Default_Message_DefaultedFixed32 } func (m *Message) GetDefaultedSfixed32() int32 { if m != nil && m.DefaultedSfixed32 != nil { return *m.DefaultedSfixed32 } return Default_Message_DefaultedSfixed32 } func (m *Message) GetDefaultedFloat() float32 { if m != nil && m.DefaultedFloat != nil { return *m.DefaultedFloat } return Default_Message_DefaultedFloat } func (m *Message) GetDefaultedFixed64() uint64 { if m != nil && m.DefaultedFixed64 != nil { return *m.DefaultedFixed64 } return Default_Message_DefaultedFixed64 } func (m *Message) GetDefaultedSfixed64() int64 { if m != nil && m.DefaultedSfixed64 != nil { return *m.DefaultedSfixed64 } return Default_Message_DefaultedSfixed64 } func (m *Message) GetDefaultedDouble() float64 { if m != nil && m.DefaultedDouble != nil { return *m.DefaultedDouble } return Default_Message_DefaultedDouble } func (m *Message) GetDefaultedString() string { if m != nil && m.DefaultedString != nil { return *m.DefaultedString } return Default_Message_DefaultedString } func (m *Message) GetDefaultedBytes() []byte { if m != nil && m.DefaultedBytes != nil { return m.DefaultedBytes } return append([]byte(nil), Default_Message_DefaultedBytes...) } func (m *Message) GetDefaultedChildEnum() Message_ChildEnum { if m != nil && m.DefaultedChildEnum != nil { return *m.DefaultedChildEnum } return Default_Message_DefaultedChildEnum } func (m *Message) GetDefaultedSiblingEnum() SiblingEnum { if m != nil && m.DefaultedSiblingEnum != nil { return *m.DefaultedSiblingEnum } return Default_Message_DefaultedSiblingEnum } func (m *Message) GetRequiredBool() bool { if m != nil && m.RequiredBool != nil { return *m.RequiredBool } return false } func (m *Message) GetRequiredInt32() int32 { if m != nil && m.RequiredInt32 != nil { return *m.RequiredInt32 } return 0 } func (m *Message) GetRequiredSint32() int32 { if m != nil && m.RequiredSint32 != nil { return *m.RequiredSint32 } return 0 } func (m *Message) GetRequiredUint32() uint32 { if m != nil && m.RequiredUint32 != nil { return *m.RequiredUint32 } return 0 } func (m *Message) GetRequiredInt64() int64 { if m != nil && m.RequiredInt64 != nil { return *m.RequiredInt64 } return 0 } func (m *Message) GetRequiredSint64() int64 { if m != nil && m.RequiredSint64 != nil { return *m.RequiredSint64 } return 0 } func (m *Message) GetRequiredUint64() uint64 { if m != nil && m.RequiredUint64 != nil { return *m.RequiredUint64 } return 0 } func (m *Message) GetRequiredFixed32() uint32 { if m != nil && m.RequiredFixed32 != nil { return *m.RequiredFixed32 } return 0 } func (m *Message) GetRequiredSfixed32() int32 { if m != nil && m.RequiredSfixed32 != nil { return *m.RequiredSfixed32 } return 0 } func (m *Message) GetRequiredFloat() float32 { if m != nil && m.RequiredFloat != nil { return *m.RequiredFloat } return 0 } func (m *Message) GetRequiredFixed64() uint64 { if m != nil && m.RequiredFixed64 != nil { return *m.RequiredFixed64 } return 0 } func (m *Message) GetRequiredSfixed64() int64 { if m != nil && m.RequiredSfixed64 != nil { return *m.RequiredSfixed64 } return 0 } func (m *Message) GetRequiredDouble() float64 { if m != nil && m.RequiredDouble != nil { return *m.RequiredDouble } return 0 } func (m *Message) GetRequiredString() string { if m != nil && m.RequiredString != nil { return *m.RequiredString } return "" } func (m *Message) GetRequiredBytes() []byte { if m != nil { return m.RequiredBytes } return nil } func (m *Message) GetRequiredChildEnum() Message_ChildEnum { if m != nil && m.RequiredChildEnum != nil { return *m.RequiredChildEnum } return Message_ALPHA } func (m *Message) GetRequiredChildMessage() *Message_ChildMessage { if m != nil { return m.RequiredChildMessage } return nil } func (m *Message) GetRequiredNamedGroup() *Message_NamedGroup { if m != nil { return m.RequiredNamedGroup } return nil } func (m *Message) GetRequiredSiblingEnum() SiblingEnum { if m != nil && m.RequiredSiblingEnum != nil { return *m.RequiredSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetRequiredSiblingMessage() *SiblingMessage { if m != nil { return m.RequiredSiblingMessage } return nil } func (m *Message) GetRequiredgroup() *Message_RequiredGroup { if m != nil { return m.Requiredgroup } return nil } func (m *Message) GetRequiredDefaultedBool() bool { if m != nil && m.RequiredDefaultedBool != nil { return *m.RequiredDefaultedBool } return Default_Message_RequiredDefaultedBool } func (m *Message) GetRequiredDefaultedInt32() int32 { if m != nil && m.RequiredDefaultedInt32 != nil { return *m.RequiredDefaultedInt32 } return Default_Message_RequiredDefaultedInt32 } func (m *Message) GetRequiredDefaultedSint32() int32 { if m != nil && m.RequiredDefaultedSint32 != nil { return *m.RequiredDefaultedSint32 } return Default_Message_RequiredDefaultedSint32 } func (m *Message) GetRequiredDefaultedUint32() uint32 { if m != nil && m.RequiredDefaultedUint32 != nil { return *m.RequiredDefaultedUint32 } return Default_Message_RequiredDefaultedUint32 } func (m *Message) GetRequiredDefaultedInt64() int64 { if m != nil && m.RequiredDefaultedInt64 != nil { return *m.RequiredDefaultedInt64 } return Default_Message_RequiredDefaultedInt64 } func (m *Message) GetRequiredDefaultedSint64() int64 { if m != nil && m.RequiredDefaultedSint64 != nil { return *m.RequiredDefaultedSint64 } return Default_Message_RequiredDefaultedSint64 } func (m *Message) GetRequiredDefaultedUint64() uint64 { if m != nil && m.RequiredDefaultedUint64 != nil { return *m.RequiredDefaultedUint64 } return Default_Message_RequiredDefaultedUint64 } func (m *Message) GetRequiredDefaultedFixed32() uint32 { if m != nil && m.RequiredDefaultedFixed32 != nil { return *m.RequiredDefaultedFixed32 } return Default_Message_RequiredDefaultedFixed32 } func (m *Message) GetRequiredDefaultedSfixed32() int32 { if m != nil && m.RequiredDefaultedSfixed32 != nil { return *m.RequiredDefaultedSfixed32 } return Default_Message_RequiredDefaultedSfixed32 } func (m *Message) GetRequiredDefaultedFloat() float32 { if m != nil && m.RequiredDefaultedFloat != nil { return *m.RequiredDefaultedFloat } return Default_Message_RequiredDefaultedFloat } func (m *Message) GetRequiredDefaultedFixed64() uint64 { if m != nil && m.RequiredDefaultedFixed64 != nil { return *m.RequiredDefaultedFixed64 } return Default_Message_RequiredDefaultedFixed64 } func (m *Message) GetRequiredDefaultedSfixed64() int64 { if m != nil && m.RequiredDefaultedSfixed64 != nil { return *m.RequiredDefaultedSfixed64 } return Default_Message_RequiredDefaultedSfixed64 } func (m *Message) GetRequiredDefaultedDouble() float64 { if m != nil && m.RequiredDefaultedDouble != nil { return *m.RequiredDefaultedDouble } return Default_Message_RequiredDefaultedDouble } func (m *Message) GetRequiredDefaultedString() string { if m != nil && m.RequiredDefaultedString != nil { return *m.RequiredDefaultedString } return Default_Message_RequiredDefaultedString } func (m *Message) GetRequiredDefaultedBytes() []byte { if m != nil && m.RequiredDefaultedBytes != nil { return m.RequiredDefaultedBytes } return append([]byte(nil), Default_Message_RequiredDefaultedBytes...) } func (m *Message) GetRequiredDefaultedChildEnum() Message_ChildEnum { if m != nil && m.RequiredDefaultedChildEnum != nil { return *m.RequiredDefaultedChildEnum } return Default_Message_RequiredDefaultedChildEnum } func (m *Message) GetRequiredDefaultedSiblingEnum() SiblingEnum { if m != nil && m.RequiredDefaultedSiblingEnum != nil { return *m.RequiredDefaultedSiblingEnum } return Default_Message_RequiredDefaultedSiblingEnum } func (m *Message) GetRepeatedBool() []bool { if m != nil { return m.RepeatedBool } return nil } func (m *Message) GetRepeatedInt32() []int32 { if m != nil { return m.RepeatedInt32 } return nil } func (m *Message) GetRepeatedSint32() []int32 { if m != nil { return m.RepeatedSint32 } return nil } func (m *Message) GetRepeatedUint32() []uint32 { if m != nil { return m.RepeatedUint32 } return nil } func (m *Message) GetRepeatedInt64() []int64 { if m != nil { return m.RepeatedInt64 } return nil } func (m *Message) GetRepeatedSint64() []int64 { if m != nil { return m.RepeatedSint64 } return nil } func (m *Message) GetRepeatedUint64() []uint64 { if m != nil { return m.RepeatedUint64 } return nil } func (m *Message) GetRepeatedFixed32() []uint32 { if m != nil { return m.RepeatedFixed32 } return nil } func (m *Message) GetRepeatedSfixed32() []int32 { if m != nil { return m.RepeatedSfixed32 } return nil } func (m *Message) GetRepeatedFloat() []float32 { if m != nil { return m.RepeatedFloat } return nil } func (m *Message) GetRepeatedFixed64() []uint64 { if m != nil { return m.RepeatedFixed64 } return nil } func (m *Message) GetRepeatedSfixed64() []int64 { if m != nil { return m.RepeatedSfixed64 } return nil } func (m *Message) GetRepeatedDouble() []float64 { if m != nil { return m.RepeatedDouble } return nil } func (m *Message) GetRepeatedString() []string { if m != nil { return m.RepeatedString } return nil } func (m *Message) GetRepeatedBytes() [][]byte { if m != nil { return m.RepeatedBytes } return nil } func (m *Message) GetRepeatedChildEnum() []Message_ChildEnum { if m != nil { return m.RepeatedChildEnum } return nil } func (m *Message) GetRepeatedChildMessage() []*Message_ChildMessage { if m != nil { return m.RepeatedChildMessage } return nil } func (m *Message) GetRepeatedNamedGroup() []*Message_NamedGroup { if m != nil { return m.RepeatedNamedGroup } return nil } func (m *Message) GetRepeatedSiblingEnum() []SiblingEnum { if m != nil { return m.RepeatedSiblingEnum } return nil } func (m *Message) GetRepeatedSiblingMessage() []*SiblingMessage { if m != nil { return m.RepeatedSiblingMessage } return nil } func (m *Message) GetRepeatedgroup() []*Message_RepeatedGroup { if m != nil { return m.Repeatedgroup } return nil } func (m *Message) GetMapBoolBool() map[bool]bool { if m != nil { return m.MapBoolBool } return nil } func (m *Message) GetMapBoolInt32() map[bool]int32 { if m != nil { return m.MapBoolInt32 } return nil } func (m *Message) GetMapBoolSint32() map[bool]int32 { if m != nil { return m.MapBoolSint32 } return nil } func (m *Message) GetMapBoolUint32() map[bool]uint32 { if m != nil { return m.MapBoolUint32 } return nil } func (m *Message) GetMapBoolInt64() map[bool]int64 { if m != nil { return m.MapBoolInt64 } return nil } func (m *Message) GetMapBoolSint64() map[bool]int64 { if m != nil { return m.MapBoolSint64 } return nil } func (m *Message) GetMapBoolUint64() map[bool]uint64 { if m != nil { return m.MapBoolUint64 } return nil } func (m *Message) GetMapBoolFixed32() map[bool]uint32 { if m != nil { return m.MapBoolFixed32 } return nil } func (m *Message) GetMapBoolSfixed32() map[bool]int32 { if m != nil { return m.MapBoolSfixed32 } return nil } func (m *Message) GetMapBoolFloat() map[bool]float32 { if m != nil { return m.MapBoolFloat } return nil } func (m *Message) GetMapBoolFixed64() map[bool]uint64 { if m != nil { return m.MapBoolFixed64 } return nil } func (m *Message) GetMapBoolSfixed64() map[bool]int64 { if m != nil { return m.MapBoolSfixed64 } return nil } func (m *Message) GetMapBoolDouble() map[bool]float64 { if m != nil { return m.MapBoolDouble } return nil } func (m *Message) GetMapBoolString() map[bool]string { if m != nil { return m.MapBoolString } return nil } func (m *Message) GetMapBoolBytes() map[bool][]byte { if m != nil { return m.MapBoolBytes } return nil } func (m *Message) GetMapBoolChildEnum() map[bool]Message_ChildEnum { if m != nil { return m.MapBoolChildEnum } return nil } func (m *Message) GetMapBoolChildMessage() map[bool]*Message_ChildMessage { if m != nil { return m.MapBoolChildMessage } return nil } func (m *Message) GetMapBoolNamedGroup() map[bool]*Message_NamedGroup { if m != nil { return m.MapBoolNamedGroup } return nil } func (m *Message) GetMapBoolSiblingEnum() map[bool]SiblingEnum { if m != nil { return m.MapBoolSiblingEnum } return nil } func (m *Message) GetMapBoolSiblingMessage() map[bool]*SiblingMessage { if m != nil { return m.MapBoolSiblingMessage } return nil } func (m *Message) GetMapInt32Bool() map[int32]bool { if m != nil { return m.MapInt32Bool } return nil } func (m *Message) GetMapSint32Bool() map[int32]bool { if m != nil { return m.MapSint32Bool } return nil } func (m *Message) GetMapUint32Bool() map[uint32]bool { if m != nil { return m.MapUint32Bool } return nil } func (m *Message) GetMapInt64Bool() map[int64]bool { if m != nil { return m.MapInt64Bool } return nil } func (m *Message) GetMapSint64Bool() map[int64]bool { if m != nil { return m.MapSint64Bool } return nil } func (m *Message) GetMapUint64Bool() map[uint64]bool { if m != nil { return m.MapUint64Bool } return nil } func (m *Message) GetMapFixed32Bool() map[uint32]bool { if m != nil { return m.MapFixed32Bool } return nil } func (m *Message) GetMapStringBool() map[string]bool { if m != nil { return m.MapStringBool } return nil } func (m *Message) GetOneofBool() bool { if x, ok := m.GetOneofUnion().(*Message_OneofBool); ok { return x.OneofBool } return false } func (m *Message) GetOneofInt32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofInt32); ok { return x.OneofInt32 } return 0 } func (m *Message) GetOneofSint32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSint32); ok { return x.OneofSint32 } return 0 } func (m *Message) GetOneofUint32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofUint32); ok { return x.OneofUint32 } return 0 } func (m *Message) GetOneofInt64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofInt64); ok { return x.OneofInt64 } return 0 } func (m *Message) GetOneofSint64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSint64); ok { return x.OneofSint64 } return 0 } func (m *Message) GetOneofUint64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofUint64); ok { return x.OneofUint64 } return 0 } func (m *Message) GetOneofFixed32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed32); ok { return x.OneofFixed32 } return 0 } func (m *Message) GetOneofSfixed32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed32); ok { return x.OneofSfixed32 } return 0 } func (m *Message) GetOneofFloat() float32 { if x, ok := m.GetOneofUnion().(*Message_OneofFloat); ok { return x.OneofFloat } return 0 } func (m *Message) GetOneofFixed64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed64); ok { return x.OneofFixed64 } return 0 } func (m *Message) GetOneofSfixed64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed64); ok { return x.OneofSfixed64 } return 0 } func (m *Message) GetOneofDouble() float64 { if x, ok := m.GetOneofUnion().(*Message_OneofDouble); ok { return x.OneofDouble } return 0 } func (m *Message) GetOneofString() string { if x, ok := m.GetOneofUnion().(*Message_OneofString); ok { return x.OneofString } return "" } func (m *Message) GetOneofBytes() []byte { if x, ok := m.GetOneofUnion().(*Message_OneofBytes); ok { return x.OneofBytes } return nil } func (m *Message) GetOneofChildEnum() Message_ChildEnum { if x, ok := m.GetOneofUnion().(*Message_OneofChildEnum); ok { return x.OneofChildEnum } return Message_ALPHA } func (m *Message) GetOneofChildMessage() *Message_ChildMessage { if x, ok := m.GetOneofUnion().(*Message_OneofChildMessage); ok { return x.OneofChildMessage } return nil } func (m *Message) GetOneofNamedGroup() *Message_NamedGroup { if x, ok := m.GetOneofUnion().(*Message_OneofNamedGroup); ok { return x.OneofNamedGroup } return nil } func (m *Message) GetOneofSiblingEnum() SiblingEnum { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingEnum); ok { return x.OneofSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetOneofSiblingMessage() *SiblingMessage { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingMessage); ok { return x.OneofSiblingMessage } return nil } func (m *Message) GetOneofgroup() *Message_OneofGroup { if x, ok := m.GetOneofUnion().(*Message_Oneofgroup); ok { return x.Oneofgroup } return nil } func (m *Message) GetOneofString1() string { if x, ok := m.GetOneofUnion().(*Message_OneofString1); ok { return x.OneofString1 } return "" } func (m *Message) GetOneofString2() string { if x, ok := m.GetOneofUnion().(*Message_OneofString2); ok { return x.OneofString2 } return "" } func (m *Message) GetOneofString3() string { if x, ok := m.GetOneofUnion().(*Message_OneofString3); ok { return x.OneofString3 } return "" } func (m *Message) GetOneofDefaultedBool() bool { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedBool); ok { return x.OneofDefaultedBool } return Default_Message_OneofDefaultedBool } func (m *Message) GetOneofDefaultedInt32() int32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedInt32); ok { return x.OneofDefaultedInt32 } return Default_Message_OneofDefaultedInt32 } func (m *Message) GetOneofDefaultedSint32() int32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSint32); ok { return x.OneofDefaultedSint32 } return Default_Message_OneofDefaultedSint32 } func (m *Message) GetOneofDefaultedUint32() uint32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedUint32); ok { return x.OneofDefaultedUint32 } return Default_Message_OneofDefaultedUint32 } func (m *Message) GetOneofDefaultedInt64() int64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedInt64); ok { return x.OneofDefaultedInt64 } return Default_Message_OneofDefaultedInt64 } func (m *Message) GetOneofDefaultedSint64() int64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSint64); ok { return x.OneofDefaultedSint64 } return Default_Message_OneofDefaultedSint64 } func (m *Message) GetOneofDefaultedUint64() uint64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedUint64); ok { return x.OneofDefaultedUint64 } return Default_Message_OneofDefaultedUint64 } func (m *Message) GetOneofDefaultedFixed32() uint32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedFixed32); ok { return x.OneofDefaultedFixed32 } return Default_Message_OneofDefaultedFixed32 } func (m *Message) GetOneofDefaultedSfixed32() int32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSfixed32); ok { return x.OneofDefaultedSfixed32 } return Default_Message_OneofDefaultedSfixed32 } func (m *Message) GetOneofDefaultedFloat() float32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedFloat); ok { return x.OneofDefaultedFloat } return Default_Message_OneofDefaultedFloat } func (m *Message) GetOneofDefaultedFixed64() uint64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedFixed64); ok { return x.OneofDefaultedFixed64 } return Default_Message_OneofDefaultedFixed64 } func (m *Message) GetOneofDefaultedSfixed64() int64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSfixed64); ok { return x.OneofDefaultedSfixed64 } return Default_Message_OneofDefaultedSfixed64 } func (m *Message) GetOneofDefaultedDouble() float64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedDouble); ok { return x.OneofDefaultedDouble } return Default_Message_OneofDefaultedDouble } func (m *Message) GetOneofDefaultedString() string { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedString); ok { return x.OneofDefaultedString } return Default_Message_OneofDefaultedString } func (m *Message) GetOneofDefaultedBytes() []byte { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedBytes); ok { return x.OneofDefaultedBytes } return append([]byte(nil), Default_Message_OneofDefaultedBytes...) } func (m *Message) GetOneofDefaultedChildEnum() Message_ChildEnum { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedChildEnum); ok { return x.OneofDefaultedChildEnum } return Default_Message_OneofDefaultedChildEnum } func (m *Message) GetOneofDefaultedSiblingEnum() SiblingEnum { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSiblingEnum); ok { return x.OneofDefaultedSiblingEnum } return Default_Message_OneofDefaultedSiblingEnum } // XXX_OneofFuncs is for the internal use of the proto package. func (*Message) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { return _Message_OneofMarshaler, _Message_OneofUnmarshaler, _Message_OneofSizer, []interface{}{ (*Message_OneofBool)(nil), (*Message_OneofInt32)(nil), (*Message_OneofSint32)(nil), (*Message_OneofUint32)(nil), (*Message_OneofInt64)(nil), (*Message_OneofSint64)(nil), (*Message_OneofUint64)(nil), (*Message_OneofFixed32)(nil), (*Message_OneofSfixed32)(nil), (*Message_OneofFloat)(nil), (*Message_OneofFixed64)(nil), (*Message_OneofSfixed64)(nil), (*Message_OneofDouble)(nil), (*Message_OneofString)(nil), (*Message_OneofBytes)(nil), (*Message_OneofChildEnum)(nil), (*Message_OneofChildMessage)(nil), (*Message_OneofNamedGroup)(nil), (*Message_OneofSiblingEnum)(nil), (*Message_OneofSiblingMessage)(nil), (*Message_Oneofgroup)(nil), (*Message_OneofString1)(nil), (*Message_OneofString2)(nil), (*Message_OneofString3)(nil), (*Message_OneofDefaultedBool)(nil), (*Message_OneofDefaultedInt32)(nil), (*Message_OneofDefaultedSint32)(nil), (*Message_OneofDefaultedUint32)(nil), (*Message_OneofDefaultedInt64)(nil), (*Message_OneofDefaultedSint64)(nil), (*Message_OneofDefaultedUint64)(nil), (*Message_OneofDefaultedFixed32)(nil), (*Message_OneofDefaultedSfixed32)(nil), (*Message_OneofDefaultedFloat)(nil), (*Message_OneofDefaultedFixed64)(nil), (*Message_OneofDefaultedSfixed64)(nil), (*Message_OneofDefaultedDouble)(nil), (*Message_OneofDefaultedString)(nil), (*Message_OneofDefaultedBytes)(nil), (*Message_OneofDefaultedChildEnum)(nil), (*Message_OneofDefaultedSiblingEnum)(nil), } } func _Message_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { m := msg.(*Message) // oneof_union switch x := m.OneofUnion.(type) { case *Message_OneofBool: t := uint64(0) if x.OneofBool { t = 1 } b.EncodeVarint(700<<3 | proto.WireVarint) b.EncodeVarint(t) case *Message_OneofInt32: b.EncodeVarint(701<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofInt32)) case *Message_OneofSint32: b.EncodeVarint(702<<3 | proto.WireVarint) b.EncodeZigzag32(uint64(x.OneofSint32)) case *Message_OneofUint32: b.EncodeVarint(703<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofUint32)) case *Message_OneofInt64: b.EncodeVarint(704<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofInt64)) case *Message_OneofSint64: b.EncodeVarint(705<<3 | proto.WireVarint) b.EncodeZigzag64(uint64(x.OneofSint64)) case *Message_OneofUint64: b.EncodeVarint(706<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofUint64)) case *Message_OneofFixed32: b.EncodeVarint(707<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofFixed32)) case *Message_OneofSfixed32: b.EncodeVarint(708<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofSfixed32)) case *Message_OneofFloat: b.EncodeVarint(709<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(math.Float32bits(x.OneofFloat))) case *Message_OneofFixed64: b.EncodeVarint(710<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofFixed64)) case *Message_OneofSfixed64: b.EncodeVarint(711<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofSfixed64)) case *Message_OneofDouble: b.EncodeVarint(712<<3 | proto.WireFixed64) b.EncodeFixed64(math.Float64bits(x.OneofDouble)) case *Message_OneofString: b.EncodeVarint(713<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString) case *Message_OneofBytes: b.EncodeVarint(714<<3 | proto.WireBytes) b.EncodeRawBytes(x.OneofBytes) case *Message_OneofChildEnum: b.EncodeVarint(715<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofChildEnum)) case *Message_OneofChildMessage: b.EncodeVarint(716<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofChildMessage); err != nil { return err } case *Message_OneofNamedGroup: b.EncodeVarint(717<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofNamedGroup); err != nil { return err } case *Message_OneofSiblingEnum: b.EncodeVarint(718<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofSiblingEnum)) case *Message_OneofSiblingMessage: b.EncodeVarint(719<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofSiblingMessage); err != nil { return err } case *Message_Oneofgroup: b.EncodeVarint(720<<3 | proto.WireStartGroup) if err := b.Marshal(x.Oneofgroup); err != nil { return err } b.EncodeVarint(720<<3 | proto.WireEndGroup) case *Message_OneofString1: b.EncodeVarint(721<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString1) case *Message_OneofString2: b.EncodeVarint(722<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString2) case *Message_OneofString3: b.EncodeVarint(723<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString3) case nil: default: return fmt.Errorf("Message.OneofUnion has unexpected type %T", x) } // oneof_defaulted_union switch x := m.OneofDefaultedUnion.(type) { case *Message_OneofDefaultedBool: t := uint64(0) if x.OneofDefaultedBool { t = 1 } b.EncodeVarint(800<<3 | proto.WireVarint) b.EncodeVarint(t) case *Message_OneofDefaultedInt32: b.EncodeVarint(801<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedInt32)) case *Message_OneofDefaultedSint32: b.EncodeVarint(802<<3 | proto.WireVarint) b.EncodeZigzag32(uint64(x.OneofDefaultedSint32)) case *Message_OneofDefaultedUint32: b.EncodeVarint(803<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedUint32)) case *Message_OneofDefaultedInt64: b.EncodeVarint(804<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedInt64)) case *Message_OneofDefaultedSint64: b.EncodeVarint(805<<3 | proto.WireVarint) b.EncodeZigzag64(uint64(x.OneofDefaultedSint64)) case *Message_OneofDefaultedUint64: b.EncodeVarint(806<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedUint64)) case *Message_OneofDefaultedFixed32: b.EncodeVarint(807<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofDefaultedFixed32)) case *Message_OneofDefaultedSfixed32: b.EncodeVarint(808<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofDefaultedSfixed32)) case *Message_OneofDefaultedFloat: b.EncodeVarint(809<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(math.Float32bits(x.OneofDefaultedFloat))) case *Message_OneofDefaultedFixed64: b.EncodeVarint(810<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofDefaultedFixed64)) case *Message_OneofDefaultedSfixed64: b.EncodeVarint(811<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofDefaultedSfixed64)) case *Message_OneofDefaultedDouble: b.EncodeVarint(812<<3 | proto.WireFixed64) b.EncodeFixed64(math.Float64bits(x.OneofDefaultedDouble)) case *Message_OneofDefaultedString: b.EncodeVarint(813<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofDefaultedString) case *Message_OneofDefaultedBytes: b.EncodeVarint(814<<3 | proto.WireBytes) b.EncodeRawBytes(x.OneofDefaultedBytes) case *Message_OneofDefaultedChildEnum: b.EncodeVarint(815<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedChildEnum)) case *Message_OneofDefaultedSiblingEnum: b.EncodeVarint(816<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedSiblingEnum)) case nil: default: return fmt.Errorf("Message.OneofDefaultedUnion has unexpected type %T", x) } return nil } func _Message_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { m := msg.(*Message) switch tag { case 700: // oneof_union.oneof_bool if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofBool{x != 0} return true, err case 701: // oneof_union.oneof_int32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofInt32{int32(x)} return true, err case 702: // oneof_union.oneof_sint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag32() m.OneofUnion = &Message_OneofSint32{int32(x)} return true, err case 703: // oneof_union.oneof_uint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofUint32{uint32(x)} return true, err case 704: // oneof_union.oneof_int64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofInt64{int64(x)} return true, err case 705: // oneof_union.oneof_sint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag64() m.OneofUnion = &Message_OneofSint64{int64(x)} return true, err case 706: // oneof_union.oneof_uint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofUint64{x} return true, err case 707: // oneof_union.oneof_fixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofFixed32{uint32(x)} return true, err case 708: // oneof_union.oneof_sfixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofSfixed32{int32(x)} return true, err case 709: // oneof_union.oneof_float if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofFloat{math.Float32frombits(uint32(x))} return true, err case 710: // oneof_union.oneof_fixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofFixed64{x} return true, err case 711: // oneof_union.oneof_sfixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofSfixed64{int64(x)} return true, err case 712: // oneof_union.oneof_double if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofDouble{math.Float64frombits(x)} return true, err case 713: // oneof_union.oneof_string if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString{x} return true, err case 714: // oneof_union.oneof_bytes if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeRawBytes(true) m.OneofUnion = &Message_OneofBytes{x} return true, err case 715: // oneof_union.oneof_child_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofChildEnum{Message_ChildEnum(x)} return true, err case 716: // oneof_union.oneof_child_message if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(Message_ChildMessage) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofChildMessage{msg} return true, err case 717: // oneof_union.oneof_named_group if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(Message_NamedGroup) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofNamedGroup{msg} return true, err case 718: // oneof_union.oneof_sibling_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofSiblingEnum{SiblingEnum(x)} return true, err case 719: // oneof_union.oneof_sibling_message if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(SiblingMessage) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofSiblingMessage{msg} return true, err case 720: // oneof_union.oneofgroup if wire != proto.WireStartGroup { return true, proto.ErrInternalBadWireType } msg := new(Message_OneofGroup) err := b.DecodeGroup(msg) m.OneofUnion = &Message_Oneofgroup{msg} return true, err case 721: // oneof_union.oneof_string1 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString1{x} return true, err case 722: // oneof_union.oneof_string2 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString2{x} return true, err case 723: // oneof_union.oneof_string3 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString3{x} return true, err case 800: // oneof_defaulted_union.oneof_defaulted_bool if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedBool{x != 0} return true, err case 801: // oneof_defaulted_union.oneof_defaulted_int32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedInt32{int32(x)} return true, err case 802: // oneof_defaulted_union.oneof_defaulted_sint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag32() m.OneofDefaultedUnion = &Message_OneofDefaultedSint32{int32(x)} return true, err case 803: // oneof_defaulted_union.oneof_defaulted_uint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedUint32{uint32(x)} return true, err case 804: // oneof_defaulted_union.oneof_defaulted_int64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedInt64{int64(x)} return true, err case 805: // oneof_defaulted_union.oneof_defaulted_sint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag64() m.OneofDefaultedUnion = &Message_OneofDefaultedSint64{int64(x)} return true, err case 806: // oneof_defaulted_union.oneof_defaulted_uint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedUint64{x} return true, err case 807: // oneof_defaulted_union.oneof_defaulted_fixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofDefaultedUnion = &Message_OneofDefaultedFixed32{uint32(x)} return true, err case 808: // oneof_defaulted_union.oneof_defaulted_sfixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofDefaultedUnion = &Message_OneofDefaultedSfixed32{int32(x)} return true, err case 809: // oneof_defaulted_union.oneof_defaulted_float if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofDefaultedUnion = &Message_OneofDefaultedFloat{math.Float32frombits(uint32(x))} return true, err case 810: // oneof_defaulted_union.oneof_defaulted_fixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofDefaultedUnion = &Message_OneofDefaultedFixed64{x} return true, err case 811: // oneof_defaulted_union.oneof_defaulted_sfixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofDefaultedUnion = &Message_OneofDefaultedSfixed64{int64(x)} return true, err case 812: // oneof_defaulted_union.oneof_defaulted_double if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofDefaultedUnion = &Message_OneofDefaultedDouble{math.Float64frombits(x)} return true, err case 813: // oneof_defaulted_union.oneof_defaulted_string if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofDefaultedUnion = &Message_OneofDefaultedString{x} return true, err case 814: // oneof_defaulted_union.oneof_defaulted_bytes if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeRawBytes(true) m.OneofDefaultedUnion = &Message_OneofDefaultedBytes{x} return true, err case 815: // oneof_defaulted_union.oneof_defaulted_child_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedChildEnum{Message_ChildEnum(x)} return true, err case 816: // oneof_defaulted_union.oneof_defaulted_sibling_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedSiblingEnum{SiblingEnum(x)} return true, err default: return false, nil } } func _Message_OneofSizer(msg proto.Message) (n int) { m := msg.(*Message) // oneof_union switch x := m.OneofUnion.(type) { case *Message_OneofBool: n += proto.SizeVarint(700<<3 | proto.WireVarint) n += 1 case *Message_OneofInt32: n += proto.SizeVarint(701<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofInt32)) case *Message_OneofSint32: n += proto.SizeVarint(702<<3 | proto.WireVarint) n += proto.SizeVarint(uint64((uint32(x.OneofSint32) << 1) ^ uint32((int32(x.OneofSint32) >> 31)))) case *Message_OneofUint32: n += proto.SizeVarint(703<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofUint32)) case *Message_OneofInt64: n += proto.SizeVarint(704<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofInt64)) case *Message_OneofSint64: n += proto.SizeVarint(705<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(uint64(x.OneofSint64<<1) ^ uint64((int64(x.OneofSint64) >> 63)))) case *Message_OneofUint64: n += proto.SizeVarint(706<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofUint64)) case *Message_OneofFixed32: n += proto.SizeVarint(707<<3 | proto.WireFixed32) n += 4 case *Message_OneofSfixed32: n += proto.SizeVarint(708<<3 | proto.WireFixed32) n += 4 case *Message_OneofFloat: n += proto.SizeVarint(709<<3 | proto.WireFixed32) n += 4 case *Message_OneofFixed64: n += proto.SizeVarint(710<<3 | proto.WireFixed64) n += 8 case *Message_OneofSfixed64: n += proto.SizeVarint(711<<3 | proto.WireFixed64) n += 8 case *Message_OneofDouble: n += proto.SizeVarint(712<<3 | proto.WireFixed64) n += 8 case *Message_OneofString: n += proto.SizeVarint(713<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString))) n += len(x.OneofString) case *Message_OneofBytes: n += proto.SizeVarint(714<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofBytes))) n += len(x.OneofBytes) case *Message_OneofChildEnum: n += proto.SizeVarint(715<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofChildEnum)) case *Message_OneofChildMessage: s := proto.Size(x.OneofChildMessage) n += proto.SizeVarint(716<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case *Message_OneofNamedGroup: s := proto.Size(x.OneofNamedGroup) n += proto.SizeVarint(717<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case *Message_OneofSiblingEnum: n += proto.SizeVarint(718<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofSiblingEnum)) case *Message_OneofSiblingMessage: s := proto.Size(x.OneofSiblingMessage) n += proto.SizeVarint(719<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case *Message_Oneofgroup: n += proto.SizeVarint(720<<3 | proto.WireStartGroup) n += proto.Size(x.Oneofgroup) n += proto.SizeVarint(720<<3 | proto.WireEndGroup) case *Message_OneofString1: n += proto.SizeVarint(721<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString1))) n += len(x.OneofString1) case *Message_OneofString2: n += proto.SizeVarint(722<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString2))) n += len(x.OneofString2) case *Message_OneofString3: n += proto.SizeVarint(723<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString3))) n += len(x.OneofString3) case nil: default: panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) } // oneof_defaulted_union switch x := m.OneofDefaultedUnion.(type) { case *Message_OneofDefaultedBool: n += proto.SizeVarint(800<<3 | proto.WireVarint) n += 1 case *Message_OneofDefaultedInt32: n += proto.SizeVarint(801<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofDefaultedInt32)) case *Message_OneofDefaultedSint32: n += proto.SizeVarint(802<<3 | proto.WireVarint) n += proto.SizeVarint(uint64((uint32(x.OneofDefaultedSint32) << 1) ^ uint32((int32(x.OneofDefaultedSint32) >> 31)))) case *Message_OneofDefaultedUint32: n += proto.SizeVarint(803<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofDefaultedUint32)) case *Message_OneofDefaultedInt64: n += proto.SizeVarint(804<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofDefaultedInt64)) case *Message_OneofDefaultedSint64: n += proto.SizeVarint(805<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(uint64(x.OneofDefaultedSint64<<1) ^ uint64((int64(x.OneofDefaultedSint64) >> 63)))) case *Message_OneofDefaultedUint64: n += proto.SizeVarint(806<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofDefaultedUint64)) case *Message_OneofDefaultedFixed32: n += proto.SizeVarint(807<<3 | proto.WireFixed32) n += 4 case *Message_OneofDefaultedSfixed32: n += proto.SizeVarint(808<<3 | proto.WireFixed32) n += 4 case *Message_OneofDefaultedFloat: n += proto.SizeVarint(809<<3 | proto.WireFixed32) n += 4 case *Message_OneofDefaultedFixed64: n += proto.SizeVarint(810<<3 | proto.WireFixed64) n += 8 case *Message_OneofDefaultedSfixed64: n += proto.SizeVarint(811<<3 | proto.WireFixed64) n += 8 case *Message_OneofDefaultedDouble: n += proto.SizeVarint(812<<3 | proto.WireFixed64) n += 8 case *Message_OneofDefaultedString: n += proto.SizeVarint(813<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofDefaultedString))) n += len(x.OneofDefaultedString) case *Message_OneofDefaultedBytes: n += proto.SizeVarint(814<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofDefaultedBytes))) n += len(x.OneofDefaultedBytes) case *Message_OneofDefaultedChildEnum: n += proto.SizeVarint(815<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofDefaultedChildEnum)) case *Message_OneofDefaultedSiblingEnum: n += proto.SizeVarint(816<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofDefaultedSiblingEnum)) case nil: default: panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) } return n } var E_Message_ExtensionOptionalBool = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*bool)(nil), Field: 10000, Name: "google.golang.org.proto2_20160519.Message.extension_optional_bool", Tag: "varint,10000,opt,name=extension_optional_bool,json=extensionOptionalBool", } var E_Message_ExtensionOptionalInt32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 10001, Name: "google.golang.org.proto2_20160519.Message.extension_optional_int32", Tag: "varint,10001,opt,name=extension_optional_int32,json=extensionOptionalInt32", } var E_Message_ExtensionOptionalSint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 10002, Name: "google.golang.org.proto2_20160519.Message.extension_optional_sint32", Tag: "zigzag32,10002,opt,name=extension_optional_sint32,json=extensionOptionalSint32", } var E_Message_ExtensionOptionalUint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 10003, Name: "google.golang.org.proto2_20160519.Message.extension_optional_uint32", Tag: "varint,10003,opt,name=extension_optional_uint32,json=extensionOptionalUint32", } var E_Message_ExtensionOptionalInt64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 10004, Name: "google.golang.org.proto2_20160519.Message.extension_optional_int64", Tag: "varint,10004,opt,name=extension_optional_int64,json=extensionOptionalInt64", } var E_Message_ExtensionOptionalSint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 10005, Name: "google.golang.org.proto2_20160519.Message.extension_optional_sint64", Tag: "zigzag64,10005,opt,name=extension_optional_sint64,json=extensionOptionalSint64", } var E_Message_ExtensionOptionalUint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 10006, Name: "google.golang.org.proto2_20160519.Message.extension_optional_uint64", Tag: "varint,10006,opt,name=extension_optional_uint64,json=extensionOptionalUint64", } var E_Message_ExtensionOptionalFixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 10007, Name: "google.golang.org.proto2_20160519.Message.extension_optional_fixed32", Tag: "fixed32,10007,opt,name=extension_optional_fixed32,json=extensionOptionalFixed32", } var E_Message_ExtensionOptionalSfixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 10008, Name: "google.golang.org.proto2_20160519.Message.extension_optional_sfixed32", Tag: "fixed32,10008,opt,name=extension_optional_sfixed32,json=extensionOptionalSfixed32", } var E_Message_ExtensionOptionalFloat = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float32)(nil), Field: 10009, Name: "google.golang.org.proto2_20160519.Message.extension_optional_float", Tag: "fixed32,10009,opt,name=extension_optional_float,json=extensionOptionalFloat", } var E_Message_ExtensionOptionalFixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 10010, Name: "google.golang.org.proto2_20160519.Message.extension_optional_fixed64", Tag: "fixed64,10010,opt,name=extension_optional_fixed64,json=extensionOptionalFixed64", } var E_Message_ExtensionOptionalSfixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 10011, Name: "google.golang.org.proto2_20160519.Message.extension_optional_sfixed64", Tag: "fixed64,10011,opt,name=extension_optional_sfixed64,json=extensionOptionalSfixed64", } var E_Message_ExtensionOptionalDouble = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float64)(nil), Field: 10012, Name: "google.golang.org.proto2_20160519.Message.extension_optional_double", Tag: "fixed64,10012,opt,name=extension_optional_double,json=extensionOptionalDouble", } var E_Message_ExtensionOptionalString = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*string)(nil), Field: 10013, Name: "google.golang.org.proto2_20160519.Message.extension_optional_string", Tag: "bytes,10013,opt,name=extension_optional_string,json=extensionOptionalString", } var E_Message_ExtensionOptionalBytes = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]byte)(nil), Field: 10014, Name: "google.golang.org.proto2_20160519.Message.extension_optional_bytes", Tag: "bytes,10014,opt,name=extension_optional_bytes,json=extensionOptionalBytes", } var E_Message_ExtensionOptionalChildEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ChildEnum)(nil), Field: 10015, Name: "google.golang.org.proto2_20160519.Message.extension_optional_child_enum", Tag: "varint,10015,opt,name=extension_optional_child_enum,json=extensionOptionalChildEnum,enum=google.golang.org.proto2_20160519.Message_ChildEnum", } var E_Message_ExtensionOptionalChildMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ChildMessage)(nil), Field: 10016, Name: "google.golang.org.proto2_20160519.Message.extension_optional_child_message", Tag: "bytes,10016,opt,name=extension_optional_child_message,json=extensionOptionalChildMessage", } var E_Message_ExtensionOptionalNamedGroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_NamedGroup)(nil), Field: 10017, Name: "google.golang.org.proto2_20160519.Message.extension_optional_named_group", Tag: "bytes,10017,opt,name=extension_optional_named_group,json=extensionOptionalNamedGroup", } var E_Message_ExtensionOptionalSiblingEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*SiblingEnum)(nil), Field: 10018, Name: "google.golang.org.proto2_20160519.Message.extension_optional_sibling_enum", Tag: "varint,10018,opt,name=extension_optional_sibling_enum,json=extensionOptionalSiblingEnum,enum=google.golang.org.proto2_20160519.SiblingEnum", } var E_Message_ExtensionOptionalSiblingMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*SiblingMessage)(nil), Field: 10019, Name: "google.golang.org.proto2_20160519.Message.extension_optional_sibling_message", Tag: "bytes,10019,opt,name=extension_optional_sibling_message,json=extensionOptionalSiblingMessage", } var E_Message_Extensionoptionalgroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ExtensionOptionalGroup)(nil), Field: 10020, Name: "google.golang.org.proto2_20160519.Message.extensionoptionalgroup", Tag: "group,10020,opt,name=ExtensionOptionalGroup,json=extensionoptionalgroup", } var E_Message_ExtensionDefaultedBool = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*bool)(nil), Field: 20000, Name: "google.golang.org.proto2_20160519.Message.extension_defaulted_bool", Tag: "varint,20000,opt,name=extension_defaulted_bool,json=extensionDefaultedBool,def=1", } var E_Message_ExtensionDefaultedInt32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 20001, Name: "google.golang.org.proto2_20160519.Message.extension_defaulted_int32", Tag: "varint,20001,opt,name=extension_defaulted_int32,json=extensionDefaultedInt32,def=-12345", } var E_Message_ExtensionDefaultedSint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 20002, Name: "google.golang.org.proto2_20160519.Message.extension_defaulted_sint32", Tag: "zigzag32,20002,opt,name=extension_defaulted_sint32,json=extensionDefaultedSint32,def=-3200", } var E_Message_ExtensionDefaultedUint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 20003, Name: "google.golang.org.proto2_20160519.Message.extension_defaulted_uint32", Tag: "varint,20003,opt,name=extension_defaulted_uint32,json=extensionDefaultedUint32,def=3200", } var E_Message_ExtensionDefaultedInt64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 20004, Name: "google.golang.org.proto2_20160519.Message.extension_defaulted_int64", Tag: "varint,20004,opt,name=extension_defaulted_int64,json=extensionDefaultedInt64,def=-123456789", } var E_Message_ExtensionDefaultedSint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 20005, Name: "google.golang.org.proto2_20160519.Message.extension_defaulted_sint64", Tag: "zigzag64,20005,opt,name=extension_defaulted_sint64,json=extensionDefaultedSint64,def=-6400", } var E_Message_ExtensionDefaultedUint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 20006, Name: "google.golang.org.proto2_20160519.Message.extension_defaulted_uint64", Tag: "varint,20006,opt,name=extension_defaulted_uint64,json=extensionDefaultedUint64,def=6400", } var E_Message_ExtensionDefaultedFixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 20007, Name: "google.golang.org.proto2_20160519.Message.extension_defaulted_fixed32", Tag: "fixed32,20007,opt,name=extension_defaulted_fixed32,json=extensionDefaultedFixed32,def=320000", } var E_Message_ExtensionDefaultedSfixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 20008, Name: "google.golang.org.proto2_20160519.Message.extension_defaulted_sfixed32", Tag: "fixed32,20008,opt,name=extension_defaulted_sfixed32,json=extensionDefaultedSfixed32,def=-320000", } var E_Message_ExtensionDefaultedFloat = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float32)(nil), Field: 20009, Name: "google.golang.org.proto2_20160519.Message.extension_defaulted_float", Tag: "fixed32,20009,opt,name=extension_defaulted_float,json=extensionDefaultedFloat,def=3.14159", } var E_Message_ExtensionDefaultedFixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 20010, Name: "google.golang.org.proto2_20160519.Message.extension_defaulted_fixed64", Tag: "fixed64,20010,opt,name=extension_defaulted_fixed64,json=extensionDefaultedFixed64,def=640000", } var E_Message_ExtensionDefaultedSfixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 20011, Name: "google.golang.org.proto2_20160519.Message.extension_defaulted_sfixed64", Tag: "fixed64,20011,opt,name=extension_defaulted_sfixed64,json=extensionDefaultedSfixed64,def=-640000", } var E_Message_ExtensionDefaultedDouble = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float64)(nil), Field: 20012, Name: "google.golang.org.proto2_20160519.Message.extension_defaulted_double", Tag: "fixed64,20012,opt,name=extension_defaulted_double,json=extensionDefaultedDouble,def=3.14159265359", } var E_Message_ExtensionDefaultedString = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*string)(nil), Field: 20013, Name: "google.golang.org.proto2_20160519.Message.extension_defaulted_string", Tag: "bytes,20013,opt,name=extension_defaulted_string,json=extensionDefaultedString,def=hello, \"world!\"\n", } var E_Message_ExtensionDefaultedBytes = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]byte)(nil), Field: 20014, Name: "google.golang.org.proto2_20160519.Message.extension_defaulted_bytes", Tag: "bytes,20014,opt,name=extension_defaulted_bytes,json=extensionDefaultedBytes,def=dead\\336\\255\\276\\357beef", } var E_Message_ExtensionDefaultedChildEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ChildEnum)(nil), Field: 20015, Name: "google.golang.org.proto2_20160519.Message.extension_defaulted_child_enum", Tag: "varint,20015,opt,name=extension_defaulted_child_enum,json=extensionDefaultedChildEnum,enum=google.golang.org.proto2_20160519.Message_ChildEnum,def=0", } var E_Message_ExtensionDefaultedSiblingEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*SiblingEnum)(nil), Field: 20016, Name: "google.golang.org.proto2_20160519.Message.extension_defaulted_sibling_enum", Tag: "varint,20016,opt,name=extension_defaulted_sibling_enum,json=extensionDefaultedSiblingEnum,enum=google.golang.org.proto2_20160519.SiblingEnum,def=0", } var E_Message_ExtensionRepeatedBool = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]bool)(nil), Field: 30000, Name: "google.golang.org.proto2_20160519.Message.extension_repeated_bool", Tag: "varint,30000,rep,name=extension_repeated_bool,json=extensionRepeatedBool", } var E_Message_ExtensionRepeatedInt32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int32)(nil), Field: 30001, Name: "google.golang.org.proto2_20160519.Message.extension_repeated_int32", Tag: "varint,30001,rep,name=extension_repeated_int32,json=extensionRepeatedInt32", } var E_Message_ExtensionRepeatedSint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int32)(nil), Field: 30002, Name: "google.golang.org.proto2_20160519.Message.extension_repeated_sint32", Tag: "zigzag32,30002,rep,name=extension_repeated_sint32,json=extensionRepeatedSint32", } var E_Message_ExtensionRepeatedUint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint32)(nil), Field: 30003, Name: "google.golang.org.proto2_20160519.Message.extension_repeated_uint32", Tag: "varint,30003,rep,name=extension_repeated_uint32,json=extensionRepeatedUint32", } var E_Message_ExtensionRepeatedInt64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int64)(nil), Field: 30004, Name: "google.golang.org.proto2_20160519.Message.extension_repeated_int64", Tag: "varint,30004,rep,name=extension_repeated_int64,json=extensionRepeatedInt64", } var E_Message_ExtensionRepeatedSint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int64)(nil), Field: 30005, Name: "google.golang.org.proto2_20160519.Message.extension_repeated_sint64", Tag: "zigzag64,30005,rep,name=extension_repeated_sint64,json=extensionRepeatedSint64", } var E_Message_ExtensionRepeatedUint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint64)(nil), Field: 30006, Name: "google.golang.org.proto2_20160519.Message.extension_repeated_uint64", Tag: "varint,30006,rep,name=extension_repeated_uint64,json=extensionRepeatedUint64", } var E_Message_ExtensionRepeatedFixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint32)(nil), Field: 30007, Name: "google.golang.org.proto2_20160519.Message.extension_repeated_fixed32", Tag: "fixed32,30007,rep,name=extension_repeated_fixed32,json=extensionRepeatedFixed32", } var E_Message_ExtensionRepeatedSfixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int32)(nil), Field: 30008, Name: "google.golang.org.proto2_20160519.Message.extension_repeated_sfixed32", Tag: "fixed32,30008,rep,name=extension_repeated_sfixed32,json=extensionRepeatedSfixed32", } var E_Message_ExtensionRepeatedFloat = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]float32)(nil), Field: 30009, Name: "google.golang.org.proto2_20160519.Message.extension_repeated_float", Tag: "fixed32,30009,rep,name=extension_repeated_float,json=extensionRepeatedFloat", } var E_Message_ExtensionRepeatedFixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint64)(nil), Field: 30010, Name: "google.golang.org.proto2_20160519.Message.extension_repeated_fixed64", Tag: "fixed64,30010,rep,name=extension_repeated_fixed64,json=extensionRepeatedFixed64", } var E_Message_ExtensionRepeatedSfixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int64)(nil), Field: 30011, Name: "google.golang.org.proto2_20160519.Message.extension_repeated_sfixed64", Tag: "fixed64,30011,rep,name=extension_repeated_sfixed64,json=extensionRepeatedSfixed64", } var E_Message_ExtensionRepeatedDouble = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]float64)(nil), Field: 30012, Name: "google.golang.org.proto2_20160519.Message.extension_repeated_double", Tag: "fixed64,30012,rep,name=extension_repeated_double,json=extensionRepeatedDouble", } var E_Message_ExtensionRepeatedString = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]string)(nil), Field: 30013, Name: "google.golang.org.proto2_20160519.Message.extension_repeated_string", Tag: "bytes,30013,rep,name=extension_repeated_string,json=extensionRepeatedString", } var E_Message_ExtensionRepeatedBytes = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([][]byte)(nil), Field: 30014, Name: "google.golang.org.proto2_20160519.Message.extension_repeated_bytes", Tag: "bytes,30014,rep,name=extension_repeated_bytes,json=extensionRepeatedBytes", } var E_Message_ExtensionRepeatedChildEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]Message_ChildEnum)(nil), Field: 30015, Name: "google.golang.org.proto2_20160519.Message.extension_repeated_child_enum", Tag: "varint,30015,rep,name=extension_repeated_child_enum,json=extensionRepeatedChildEnum,enum=google.golang.org.proto2_20160519.Message_ChildEnum", } var E_Message_ExtensionRepeatedChildMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*Message_ChildMessage)(nil), Field: 30016, Name: "google.golang.org.proto2_20160519.Message.extension_repeated_child_message", Tag: "bytes,30016,rep,name=extension_repeated_child_message,json=extensionRepeatedChildMessage", } var E_Message_ExtensionRepeatedNamedGroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*Message_NamedGroup)(nil), Field: 30017, Name: "google.golang.org.proto2_20160519.Message.extension_repeated_named_group", Tag: "bytes,30017,rep,name=extension_repeated_named_group,json=extensionRepeatedNamedGroup", } var E_Message_ExtensionRepeatedSiblingEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]SiblingEnum)(nil), Field: 30018, Name: "google.golang.org.proto2_20160519.Message.extension_repeated_sibling_enum", Tag: "varint,30018,rep,name=extension_repeated_sibling_enum,json=extensionRepeatedSiblingEnum,enum=google.golang.org.proto2_20160519.SiblingEnum", } var E_Message_ExtensionRepeatedSiblingMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*SiblingMessage)(nil), Field: 30019, Name: "google.golang.org.proto2_20160519.Message.extension_repeated_sibling_message", Tag: "bytes,30019,rep,name=extension_repeated_sibling_message,json=extensionRepeatedSiblingMessage", } var E_Message_Extensionrepeatedgroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*Message_ExtensionRepeatedGroup)(nil), Field: 30020, Name: "google.golang.org.proto2_20160519.Message.extensionrepeatedgroup", Tag: "group,30020,rep,name=ExtensionRepeatedGroup,json=extensionrepeatedgroup", } type Message_ChildMessage struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` F4 *Message `protobuf:"bytes,4,opt,name=f4" json:"f4,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_ChildMessage) Reset() { *m = Message_ChildMessage{} } func (m *Message_ChildMessage) String() string { return proto.CompactTextString(m) } func (*Message_ChildMessage) ProtoMessage() {} func (*Message_ChildMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 0} } func (m *Message_ChildMessage) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_ChildMessage) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_ChildMessage) GetF3() []string { if m != nil { return m.F3 } return nil } func (m *Message_ChildMessage) GetF4() *Message { if m != nil { return m.F4 } return nil } type Message_NamedGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` F4 *Message `protobuf:"bytes,4,opt,name=f4" json:"f4,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_NamedGroup) Reset() { *m = Message_NamedGroup{} } func (m *Message_NamedGroup) String() string { return proto.CompactTextString(m) } func (*Message_NamedGroup) ProtoMessage() {} func (*Message_NamedGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 1} } func (m *Message_NamedGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_NamedGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_NamedGroup) GetF3() []string { if m != nil { return m.F3 } return nil } func (m *Message_NamedGroup) GetF4() *Message { if m != nil { return m.F4 } return nil } type Message_OptionalGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_OptionalGroup) Reset() { *m = Message_OptionalGroup{} } func (m *Message_OptionalGroup) String() string { return proto.CompactTextString(m) } func (*Message_OptionalGroup) ProtoMessage() {} func (*Message_OptionalGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 2} } func (m *Message_OptionalGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_OptionalGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_OptionalGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_RequiredGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_RequiredGroup) Reset() { *m = Message_RequiredGroup{} } func (m *Message_RequiredGroup) String() string { return proto.CompactTextString(m) } func (*Message_RequiredGroup) ProtoMessage() {} func (*Message_RequiredGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 3} } func (m *Message_RequiredGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_RequiredGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_RequiredGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_RepeatedGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_RepeatedGroup) Reset() { *m = Message_RepeatedGroup{} } func (m *Message_RepeatedGroup) String() string { return proto.CompactTextString(m) } func (*Message_RepeatedGroup) ProtoMessage() {} func (*Message_RepeatedGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 4} } func (m *Message_RepeatedGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_RepeatedGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_RepeatedGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_OneofGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_OneofGroup) Reset() { *m = Message_OneofGroup{} } func (m *Message_OneofGroup) String() string { return proto.CompactTextString(m) } func (*Message_OneofGroup) ProtoMessage() {} func (*Message_OneofGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 33} } func (m *Message_OneofGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_OneofGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_OneofGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_ExtensionOptionalGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_ExtensionOptionalGroup) Reset() { *m = Message_ExtensionOptionalGroup{} } func (m *Message_ExtensionOptionalGroup) String() string { return proto.CompactTextString(m) } func (*Message_ExtensionOptionalGroup) ProtoMessage() {} func (*Message_ExtensionOptionalGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 34} } func (m *Message_ExtensionOptionalGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_ExtensionOptionalGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_ExtensionOptionalGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_ExtensionRepeatedGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_ExtensionRepeatedGroup) Reset() { *m = Message_ExtensionRepeatedGroup{} } func (m *Message_ExtensionRepeatedGroup) String() string { return proto.CompactTextString(m) } func (*Message_ExtensionRepeatedGroup) ProtoMessage() {} func (*Message_ExtensionRepeatedGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 35} } func (m *Message_ExtensionRepeatedGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_ExtensionRepeatedGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_ExtensionRepeatedGroup) GetF3() []string { if m != nil { return m.F3 } return nil } func init() { proto.RegisterType((*SiblingMessage)(nil), "google.golang.org.proto2_20160519.SiblingMessage") proto.RegisterType((*Message)(nil), "google.golang.org.proto2_20160519.Message") proto.RegisterType((*Message_ChildMessage)(nil), "google.golang.org.proto2_20160519.Message.ChildMessage") proto.RegisterType((*Message_NamedGroup)(nil), "google.golang.org.proto2_20160519.Message.NamedGroup") proto.RegisterType((*Message_OptionalGroup)(nil), "google.golang.org.proto2_20160519.Message.OptionalGroup") proto.RegisterType((*Message_RequiredGroup)(nil), "google.golang.org.proto2_20160519.Message.RequiredGroup") proto.RegisterType((*Message_RepeatedGroup)(nil), "google.golang.org.proto2_20160519.Message.RepeatedGroup") proto.RegisterType((*Message_OneofGroup)(nil), "google.golang.org.proto2_20160519.Message.OneofGroup") proto.RegisterType((*Message_ExtensionOptionalGroup)(nil), "google.golang.org.proto2_20160519.Message.ExtensionOptionalGroup") proto.RegisterType((*Message_ExtensionRepeatedGroup)(nil), "google.golang.org.proto2_20160519.Message.ExtensionRepeatedGroup") proto.RegisterEnum("google.golang.org.proto2_20160519.SiblingEnum", SiblingEnum_name, SiblingEnum_value) proto.RegisterEnum("google.golang.org.proto2_20160519.Message_ChildEnum", Message_ChildEnum_name, Message_ChildEnum_value) proto.RegisterExtension(E_Message_ExtensionOptionalBool) proto.RegisterExtension(E_Message_ExtensionOptionalInt32) proto.RegisterExtension(E_Message_ExtensionOptionalSint32) proto.RegisterExtension(E_Message_ExtensionOptionalUint32) proto.RegisterExtension(E_Message_ExtensionOptionalInt64) proto.RegisterExtension(E_Message_ExtensionOptionalSint64) proto.RegisterExtension(E_Message_ExtensionOptionalUint64) proto.RegisterExtension(E_Message_ExtensionOptionalFixed32) proto.RegisterExtension(E_Message_ExtensionOptionalSfixed32) proto.RegisterExtension(E_Message_ExtensionOptionalFloat) proto.RegisterExtension(E_Message_ExtensionOptionalFixed64) proto.RegisterExtension(E_Message_ExtensionOptionalSfixed64) proto.RegisterExtension(E_Message_ExtensionOptionalDouble) proto.RegisterExtension(E_Message_ExtensionOptionalString) proto.RegisterExtension(E_Message_ExtensionOptionalBytes) proto.RegisterExtension(E_Message_ExtensionOptionalChildEnum) proto.RegisterExtension(E_Message_ExtensionOptionalChildMessage) proto.RegisterExtension(E_Message_ExtensionOptionalNamedGroup) proto.RegisterExtension(E_Message_ExtensionOptionalSiblingEnum) proto.RegisterExtension(E_Message_ExtensionOptionalSiblingMessage) proto.RegisterExtension(E_Message_Extensionoptionalgroup) proto.RegisterExtension(E_Message_ExtensionDefaultedBool) proto.RegisterExtension(E_Message_ExtensionDefaultedInt32) proto.RegisterExtension(E_Message_ExtensionDefaultedSint32) proto.RegisterExtension(E_Message_ExtensionDefaultedUint32) proto.RegisterExtension(E_Message_ExtensionDefaultedInt64) proto.RegisterExtension(E_Message_ExtensionDefaultedSint64) proto.RegisterExtension(E_Message_ExtensionDefaultedUint64) proto.RegisterExtension(E_Message_ExtensionDefaultedFixed32) proto.RegisterExtension(E_Message_ExtensionDefaultedSfixed32) proto.RegisterExtension(E_Message_ExtensionDefaultedFloat) proto.RegisterExtension(E_Message_ExtensionDefaultedFixed64) proto.RegisterExtension(E_Message_ExtensionDefaultedSfixed64) proto.RegisterExtension(E_Message_ExtensionDefaultedDouble) proto.RegisterExtension(E_Message_ExtensionDefaultedString) proto.RegisterExtension(E_Message_ExtensionDefaultedBytes) proto.RegisterExtension(E_Message_ExtensionDefaultedChildEnum) proto.RegisterExtension(E_Message_ExtensionDefaultedSiblingEnum) proto.RegisterExtension(E_Message_ExtensionRepeatedBool) proto.RegisterExtension(E_Message_ExtensionRepeatedInt32) proto.RegisterExtension(E_Message_ExtensionRepeatedSint32) proto.RegisterExtension(E_Message_ExtensionRepeatedUint32) proto.RegisterExtension(E_Message_ExtensionRepeatedInt64) proto.RegisterExtension(E_Message_ExtensionRepeatedSint64) proto.RegisterExtension(E_Message_ExtensionRepeatedUint64) proto.RegisterExtension(E_Message_ExtensionRepeatedFixed32) proto.RegisterExtension(E_Message_ExtensionRepeatedSfixed32) proto.RegisterExtension(E_Message_ExtensionRepeatedFloat) proto.RegisterExtension(E_Message_ExtensionRepeatedFixed64) proto.RegisterExtension(E_Message_ExtensionRepeatedSfixed64) proto.RegisterExtension(E_Message_ExtensionRepeatedDouble) proto.RegisterExtension(E_Message_ExtensionRepeatedString) proto.RegisterExtension(E_Message_ExtensionRepeatedBytes) proto.RegisterExtension(E_Message_ExtensionRepeatedChildEnum) proto.RegisterExtension(E_Message_ExtensionRepeatedChildMessage) proto.RegisterExtension(E_Message_ExtensionRepeatedNamedGroup) proto.RegisterExtension(E_Message_ExtensionRepeatedSiblingEnum) proto.RegisterExtension(E_Message_ExtensionRepeatedSiblingMessage) proto.RegisterExtension(E_Message_Extensionrepeatedgroup) } var fileDescriptor0 = []byte{ // 4468 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5c, 0x69, 0x70, 0x23, 0xc7, 0x75, 0xe6, 0x00, 0x04, 0xb8, 0xec, 0x25, 0x48, 0x70, 0x76, 0x97, 0x9c, 0xa5, 0xa4, 0x08, 0x5e, 0x3b, 0x0e, 0xa2, 0x68, 0xb9, 0xcb, 0x61, 0xb3, 0x57, 0x8b, 0xe8, 0xf0, 0x52, 0x5a, 0x19, 0x72, 0x2c, 0xc8, 0x35, 0xaa, 0x4d, 0xa5, 0x52, 0xaa, 0x30, 0xe0, 0x12, 0xe4, 0x52, 0xc2, 0x41, 0x91, 0x80, 0xa4, 0x8d, 0x9d, 0xd2, 0xc6, 0x39, 0x7f, 0xca, 0xf7, 0x05, 0xdb, 0xb2, 0x6e, 0x5b, 0xa7, 0xef, 0x4b, 0x97, 0x8f, 0x24, 0xf2, 0x7d, 0xe5, 0x70, 0x2e, 0xe7, 0xbe, 0x9c, 0xfb, 0xbe, 0x8f, 0xea, 0x7e, 0xdd, 0xd3, 0xdd, 0x33, 0x3d, 0x20, 0x7b, 0xe0, 0xd2, 0x0f, 0x55, 0x69, 0x1b, 0xaf, 0xdf, 0xd7, 0xef, 0x43, 0xbf, 0xf7, 0x3e, 0xf6, 0x4c, 0x03, 0xbd, 0x74, 0x6b, 0xbb, 0xd3, 0xed, 0xf8, 0x2b, 0xfe, 0xf1, 0x05, 0x72, 0x7c, 0x69, 0xe1, 0xe4, 0x4a, 0x1d, 0xd7, 0x57, 0x4f, 0x36, 0xce, 0x2e, 0x1d, 0xeb, 0x36, 0x76, 0xba, 0xf3, 0xec, 0x53, 0xf7, 0x25, 0x1b, 0x9d, 0xce, 0x46, 0xb3, 0x31, 0xbf, 0xd1, 0x69, 0xd6, 0xdb, 0x1b, 0xf3, 0x9d, 0xed, 0x8d, 0xf9, 0xc8, 0xb4, 0x23, 0xaf, 0x43, 0x93, 0x37, 0x6f, 0xae, 0x36, 0x37, 0xdb, 0x1b, 0x37, 0x36, 0x76, 0x76, 0xea, 0x1b, 0x0d, 0x77, 0x12, 0x65, 0xd6, 0x17, 0x3c, 0xa7, 0xe4, 0x94, 0xc7, 0x83, 0xcc, 0xfa, 0x02, 0xfb, 0xb7, 0xef, 0x65, 0x4a, 0x19, 0xf6, 0x6f, 0x9f, 0xfd, 0x7b, 0xd1, 0xcb, 0x96, 0xb2, 0xec, 0xdf, 0x8b, 0x6e, 0x05, 0x65, 0xd6, 0xb1, 0x37, 0x5a, 0x72, 0xca, 0xfb, 0xfd, 0xcb, 0xe6, 0x77, 0x45, 0x9c, 0xe7, 0x38, 0x41, 0x66, 0x1d, 0x1f, 0xf9, 0xce, 0xa3, 0x0e, 0x1a, 0x13, 0xc0, 0x67, 0x10, 0x6a, 0xd7, 0x5b, 0x8d, 0xb5, 0x8d, 0xed, 0x4e, 0x6f, 0x8b, 0x2d, 0x00, 0xf9, 0x4b, 0x7b, 0x77, 0x38, 0x5f, 0xa3, 0x93, 0x5f, 0x49, 0x27, 0x07, 0x8a, 0x23, 0xf7, 0xa5, 0xa8, 0xd0, 0xd9, 0xea, 0x6e, 0x76, 0xda, 0xf5, 0xe6, 0xca, 0x6a, 0xa7, 0xd3, 0xf4, 0xd6, 0x4a, 0x4e, 0x79, 0x5f, 0x30, 0x21, 0x06, 0x97, 0x3b, 0x9d, 0xa6, 0xfb, 0xfd, 0x68, 0x32, 0x34, 0xda, 0x6c, 0x77, 0x17, 0x7d, 0xaf, 0x51, 0x72, 0xca, 0xb9, 0x20, 0x9c, 0x7a, 0x03, 0x1d, 0x74, 0x7f, 0x00, 0x4d, 0x85, 0x66, 0x3b, 0x60, 0xb7, 0x5e, 0x72, 0xca, 0xd3, 0x41, 0x38, 0xfb, 0xe6, 0xcd, 0x98, 0x61, 0x0f, 0x0c, 0x37, 0x4a, 0x4e, 0xb9, 0x20, 0x0d, 0xcf, 0x80, 0x61, 0x04, 0x98, 0x60, 0xef, 0x5c, 0xc9, 0x29, 0x67, 0x35, 0x60, 0x82, 0x63, 0xc0, 0x04, 0x7b, 0x9b, 0x25, 0xa7, 0xec, 0xea, 0xc0, 0x11, 0xc3, 0x1e, 0x18, 0xde, 0x5a, 0x72, 0xca, 0xa3, 0x3a, 0x30, 0xc1, 0xee, 0x0f, 0xa2, 0x62, 0x68, 0xb8, 0xbe, 0x79, 0x57, 0x63, 0x6d, 0xd1, 0xf7, 0x6e, 0x2b, 0x39, 0xe5, 0xb1, 0x20, 0x74, 0x70, 0x3d, 0x0c, 0xbb, 0x3f, 0x84, 0xa6, 0x25, 0xb8, 0xb0, 0x6d, 0x96, 0x9c, 0xf2, 0x54, 0x10, 0xfa, 0xb8, 0x99, 0x8f, 0x6b, 0x01, 0xad, 0x37, 0x3b, 0xf5, 0xae, 0xd7, 0x2a, 0x39, 0xe5, 0x8c, 0x0c, 0xe8, 0x7a, 0x3a, 0x18, 0x87, 0x27, 0xd8, 0x6b, 0x97, 0x9c, 0x72, 0x3e, 0x02, 0x4f, 0xb0, 0x01, 0x9e, 0x60, 0xaf, 0x53, 0x72, 0xca, 0xc5, 0x28, 0x7c, 0x24, 0xfe, 0xb5, 0x4e, 0x6f, 0xb5, 0xd9, 0xf0, 0xb6, 0x4a, 0x4e, 0xd9, 0x91, 0xf1, 0x5f, 0xc7, 0x46, 0x75, 0x46, 0xbb, 0xdb, 0x9b, 0xed, 0x0d, 0xef, 0x76, 0xb6, 0xe7, 0x25, 0xa3, 0x6c, 0x54, 0x0b, 0x68, 0xf5, 0x7c, 0xb7, 0xb1, 0xe3, 0x6d, 0x97, 0x9c, 0xf2, 0x84, 0x0c, 0x68, 0x99, 0x0e, 0xba, 0x6b, 0xe8, 0x40, 0x68, 0x76, 0xf6, 0xdc, 0x66, 0x73, 0x6d, 0xa5, 0xd1, 0xee, 0xb5, 0xbc, 0x9d, 0x92, 0x53, 0x9e, 0xf4, 0xb1, 0xc5, 0x36, 0xbe, 0x96, 0x4e, 0x3e, 0xdd, 0xee, 0xb5, 0x82, 0x30, 0xec, 0x70, 0xc8, 0x6d, 0xa1, 0x99, 0x08, 0x4a, 0x0b, 0xa6, 0x79, 0x5d, 0x96, 0x80, 0x27, 0x6c, 0x81, 0x44, 0x36, 0x1e, 0xd4, 0xb0, 0x44, 0x4a, 0x6e, 0xa0, 0x70, 0x7c, 0x85, 0xa5, 0xd4, 0x0a, 0x24, 0x67, 0x8f, 0x81, 0xa5, 0x4c, 0x4e, 0x57, 0xb8, 0x94, 0x63, 0xee, 0x2a, 0x3a, 0xa4, 0xec, 0x6f, 0x56, 0x8f, 0x80, 0xbf, 0x3b, 0x18, 0x7f, 0xf3, 0x7b, 0x40, 0xe2, 0x65, 0x8c, 0x31, 0x77, 0x40, 0x66, 0x45, 0x38, 0xe8, 0xde, 0x86, 0xbc, 0x18, 0x86, 0x60, 0xef, 0x4e, 0x16, 0xd0, 0xc2, 0xde, 0x61, 0x04, 0x6f, 0x33, 0x11, 0x24, 0xc1, 0xdc, 0x4f, 0xc8, 0xaa, 0x03, 0x94, 0xdd, 0xc5, 0xea, 0xd9, 0x15, 0x16, 0x94, 0xdd, 0xc4, 0xe7, 0x03, 0x6b, 0xba, 0x3b, 0xf7, 0x72, 0x34, 0xb9, 0xd6, 0x58, 0xaf, 0xf7, 0x9a, 0xdd, 0xc6, 0x1a, 0x94, 0xb5, 0x17, 0x68, 0xc5, 0xdc, 0x57, 0x19, 0xed, 0x6e, 0xf7, 0x1a, 0x41, 0x21, 0xfc, 0x90, 0x95, 0xb7, 0xe3, 0x68, 0x4a, 0x5a, 0x43, 0x39, 0xfa, 0x02, 0x35, 0xcf, 0x55, 0xf2, 0x47, 0x17, 0xfc, 0x45, 0xbc, 0x14, 0x48, 0x6f, 0x50, 0xe9, 0x16, 0x50, 0x51, 0xce, 0xe0, 0xa5, 0xee, 0x8b, 0x74, 0xca, 0x74, 0x25, 0x77, 0x74, 0xd1, 0x3f, 0x7e, 0x3c, 0x90, 0x1e, 0x79, 0xcd, 0x3b, 0xae, 0x4e, 0xe1, 0x45, 0xef, 0x4b, 0x74, 0x4a, 0xa1, 0x32, 0x1a, 0x99, 0xc1, 0x8b, 0x1f, 0x8e, 0x2c, 0x8b, 0x60, 0xef, 0xcb, 0x74, 0x42, 0xb6, 0x82, 0x60, 0x59, 0xe4, 0xc4, 0x15, 0x27, 0xf5, 0xa5, 0x11, 0x1c, 0x5f, 0x1a, 0xc1, 0xde, 0x57, 0xe8, 0x34, 0xb7, 0x92, 0x3b, 0x4a, 0x70, 0x6c, 0x69, 0x04, 0xc7, 0x97, 0x46, 0xb0, 0xf7, 0x55, 0x3a, 0x65, 0xb4, 0x32, 0x1a, 0x99, 0xc1, 0xcb, 0x23, 0x46, 0xd3, 0x72, 0x86, 0xa8, 0x79, 0x5f, 0xa3, 0x53, 0xc6, 0x2a, 0x79, 0x1a, 0xcd, 0xf1, 0xe3, 0x81, 0xf4, 0x29, 0x2a, 0xe5, 0x09, 0xe4, 0x2a, 0x4b, 0x13, 0xd3, 0xbe, 0x4e, 0xa7, 0x4d, 0x55, 0xc6, 0x8e, 0xf2, 0x79, 0xd2, 0x73, 0x58, 0x35, 0x17, 0x54, 0x26, 0xa0, 0x6c, 0x7e, 0x83, 0xce, 0xca, 0x54, 0xc6, 0x16, 0xe7, 0x17, 0xf0, 0xc2, 0x92, 0x4a, 0x03, 0x54, 0xd0, 0xf8, 0x0a, 0x09, 0xf6, 0xbe, 0x49, 0x27, 0xe5, 0x2b, 0x79, 0x1a, 0x54, 0x7c, 0x85, 0x04, 0x9b, 0x56, 0x48, 0xb0, 0xf7, 0x2d, 0x3a, 0xad, 0x58, 0x19, 0x3b, 0xca, 0xe7, 0x45, 0x57, 0x48, 0xb0, 0x7b, 0x52, 0xa5, 0x90, 0x57, 0xd6, 0x5f, 0xa3, 0xd3, 0x9c, 0x4a, 0x81, 0x2f, 0xd1, 0x27, 0x4b, 0x8b, 0x4b, 0x27, 0x15, 0x2e, 0x79, 0xa9, 0xbd, 0x52, 0xfb, 0xc2, 0xa0, 0xd6, 0xfe, 0x3a, 0x13, 0x18, 0x95, 0xe2, 0xb9, 0x46, 0xb3, 0xd9, 0xb9, 0xbc, 0x74, 0xe4, 0xce, 0xce, 0x76, 0x73, 0xed, 0x25, 0x47, 0x90, 0xfa, 0xdd, 0x41, 0xfd, 0x5d, 0x56, 0xa9, 0x81, 0x02, 0xfc, 0x1b, 0x74, 0xf2, 0x44, 0xc5, 0x5b, 0x6b, 0xd4, 0xd7, 0x6e, 0x59, 0x5c, 0x24, 0xb7, 0xf8, 0x4b, 0x4b, 0xb7, 0xf8, 0x27, 0xc8, 0x2d, 0x8b, 0x4b, 0x27, 0x56, 0x1b, 0x8d, 0x75, 0x85, 0x2b, 0x28, 0xce, 0x6d, 0x74, 0x50, 0xfa, 0x50, 0xaa, 0xf3, 0x6f, 0x3a, 0xe9, 0xcb, 0x73, 0x25, 0x77, 0xea, 0xd5, 0xaf, 0xa9, 0x9e, 0x0a, 0x24, 0x9f, 0xb2, 0x4c, 0x37, 0xd1, 0x8c, 0xba, 0x45, 0x95, 0x7a, 0xf6, 0x6d, 0x27, 0x4d, 0x41, 0x13, 0x58, 0x07, 0x95, 0x8d, 0x2d, 0x0b, 0xdb, 0xcb, 0x50, 0x61, 0xbb, 0x71, 0x7b, 0x6f, 0x73, 0x5b, 0x94, 0x82, 0xc7, 0xa8, 0x5a, 0xdb, 0x17, 0x4c, 0x88, 0x51, 0x56, 0x03, 0x5e, 0x8e, 0x26, 0x43, 0x2b, 0x48, 0xce, 0xc7, 0xa9, 0x59, 0x2e, 0x08, 0x27, 0x43, 0xe6, 0x97, 0xd1, 0x54, 0x68, 0xc7, 0x13, 0xff, 0x09, 0x6a, 0x38, 0x1d, 0x84, 0xf3, 0x79, 0xc2, 0xab, 0x96, 0x3c, 0xdf, 0x9f, 0xa4, 0x96, 0x05, 0x69, 0xc9, 0x13, 0x3d, 0x82, 0x4d, 0xb0, 0xf7, 0x14, 0x35, 0xcc, 0x6a, 0xd8, 0x04, 0xc7, 0xb0, 0x09, 0xf6, 0x3e, 0x48, 0x0d, 0x5d, 0x1d, 0x3b, 0x62, 0xc9, 0x13, 0xfa, 0x43, 0xd4, 0x72, 0x54, 0xc7, 0x26, 0xd8, 0xbd, 0x0c, 0x15, 0x43, 0x4b, 0x91, 0x91, 0x1f, 0xa6, 0xa6, 0x63, 0x41, 0xe8, 0x42, 0xe4, 0xef, 0xe5, 0x68, 0x5a, 0xe2, 0x0b, 0xe3, 0x8f, 0x50, 0xe3, 0xa9, 0x20, 0xf4, 0x12, 0x26, 0xad, 0x1a, 0x15, 0xe4, 0xec, 0x47, 0xa9, 0x69, 0x46, 0x46, 0x05, 0x99, 0x1a, 0x5b, 0x01, 0xc1, 0xde, 0xc7, 0xa8, 0x65, 0x3e, 0xb2, 0x02, 0x82, 0x0d, 0x2b, 0x20, 0xd8, 0xfb, 0x38, 0x35, 0x2e, 0x46, 0x57, 0x10, 0x61, 0x81, 0xe7, 0xe4, 0x27, 0xa8, 0xad, 0x23, 0x59, 0xe0, 0x39, 0xa8, 0x31, 0x0b, 0x29, 0xf8, 0x49, 0xd0, 0xf4, 0x92, 0x59, 0xc8, 0x37, 0x35, 0x2a, 0x48, 0xb7, 0x4f, 0x51, 0xc3, 0x09, 0x19, 0x15, 0xe4, 0x54, 0x03, 0x1d, 0x08, 0xed, 0x94, 0x94, 0xfa, 0x34, 0x35, 0x4e, 0xad, 0x78, 0x84, 0x47, 0x99, 0x4a, 0x6d, 0x34, 0x13, 0x81, 0x11, 0x3d, 0xfb, 0x69, 0x8a, 0x34, 0x8c, 0xe4, 0xd1, 0xc0, 0x44, 0xe3, 0x3e, 0x87, 0xc2, 0x71, 0x4d, 0xf2, 0x3c, 0x03, 0x68, 0x69, 0x35, 0x8f, 0xf0, 0xa9, 0x68, 0x9e, 0xb3, 0xe8, 0x90, 0xb2, 0xd9, 0x95, 0x1a, 0xf1, 0x2c, 0x50, 0x68, 0x2d, 0x7a, 0x64, 0x8a, 0xc8, 0xda, 0xd0, 0x44, 0x5e, 0x0c, 0x44, 0x10, 0xf8, 0x1c, 0x84, 0x94, 0x46, 0xf5, 0x44, 0xa0, 0x04, 0x79, 0x2b, 0xb2, 0x12, 0x01, 0x6b, 0xcf, 0x53, 0x08, 0x3b, 0xd9, 0x13, 0x70, 0x07, 0x5c, 0xf6, 0x68, 0xfe, 0xdc, 0xab, 0xd0, 0xac, 0xdc, 0xf0, 0xba, 0xfe, 0xb9, 0x27, 0x4b, 0x8b, 0x1e, 0xd7, 0x3f, 0x21, 0xb3, 0xd7, 0x69, 0x3a, 0xe8, 0x94, 0xc2, 0x46, 0x54, 0x10, 0xbd, 0x81, 0xce, 0x97, 0x82, 0x68, 0x26, 0xe6, 0x01, 0xca, 0xe3, 0x32, 0x3a, 0x6c, 0x70, 0xc1, 0x0b, 0xe5, 0x1b, 0xa9, 0x8f, 0x50, 0x21, 0xcd, 0xc6, 0x5c, 0xf0, 0xc2, 0x79, 0xca, 0xe8, 0x83, 0x97, 0xd0, 0x37, 0x51, 0x1f, 0x42, 0x32, 0xc5, 0x5d, 0xf0, 0x8a, 0x7a, 0x3a, 0x29, 0x12, 0x82, 0xbd, 0x37, 0x53, 0x0f, 0xba, 0x86, 0x32, 0x46, 0x43, 0xf0, 0x80, 0x68, 0x08, 0xf6, 0xde, 0x42, 0xfd, 0x84, 0xa2, 0xca, 0x1c, 0x0d, 0xc1, 0x03, 0xa2, 0x21, 0xd8, 0x7b, 0x2b, 0xf5, 0x21, 0x54, 0x96, 0x39, 0x1a, 0x82, 0xdd, 0xd3, 0x68, 0xce, 0xe0, 0x42, 0x14, 0xe0, 0xb7, 0x51, 0x1f, 0x52, 0x76, 0x79, 0x31, 0x2f, 0xa2, 0x7c, 0x57, 0xd1, 0x45, 0xa6, 0x68, 0x84, 0x9f, 0xb7, 0x53, 0x3f, 0x8a, 0x0e, 0x3b, 0x1c, 0x8f, 0x48, 0x94, 0xf6, 0x65, 0x23, 0xbd, 0x50, 0xe4, 0xdf, 0x41, 0xdd, 0x28, 0xc2, 0x2c, 0xce, 0x2d, 0x94, 0xfd, 0x01, 0x41, 0x11, 0xec, 0xbd, 0x93, 0x7a, 0x91, 0x4a, 0x2d, 0x21, 0x28, 0x82, 0x07, 0x06, 0x45, 0xb0, 0xf7, 0x2e, 0xea, 0x47, 0x91, 0x6e, 0x49, 0x41, 0x11, 0xec, 0xbe, 0xca, 0xf8, 0x45, 0xf1, 0xbe, 0xd1, 0xa7, 0x7e, 0x62, 0x5a, 0x2e, 0xfe, 0x8d, 0xf1, 0x7e, 0x72, 0xa3, 0x79, 0xe3, 0x40, 0x67, 0x79, 0x37, 0xf5, 0x65, 0x12, 0x77, 0x86, 0x3d, 0x04, 0x4d, 0xe7, 0x66, 0x23, 0xdf, 0xd0, 0x7e, 0xde, 0x43, 0xbd, 0x0d, 0x52, 0x7b, 0xf1, 0x2f, 0x00, 0x3a, 0xd4, 0xdd, 0xe8, 0x12, 0x83, 0x53, 0xa5, 0x57, 0xbd, 0x37, 0x9b, 0xbe, 0x57, 0x09, 0x49, 0x36, 0x17, 0x03, 0x97, 0xbd, 0xeb, 0xa7, 0xd1, 0xa5, 0xc6, 0xec, 0x52, 0x6a, 0xfd, 0xbd, 0xd9, 0x34, 0xb5, 0x5e, 0x80, 0x5f, 0x6c, 0xc8, 0xc9, 0x88, 0x2e, 0xdc, 0x6a, 0xd4, 0xc3, 0x12, 0xf9, 0xcf, 0xd9, 0x52, 0x16, 0x74, 0x21, 0x8c, 0x4a, 0x5d, 0xc8, 0xad, 0xa0, 0x02, 0xfd, 0x0b, 0x35, 0x63, 0xba, 0x10, 0x86, 0x15, 0x5d, 0xc8, 0xed, 0x78, 0xb9, 0xfb, 0x57, 0x6a, 0xc8, 0x74, 0x21, 0x8c, 0xab, 0xba, 0x90, 0x5b, 0xf2, 0xa2, 0xf6, 0x6f, 0xd4, 0xb2, 0x20, 0x2d, 0x55, 0x5d, 0x28, 0xb1, 0x09, 0xf6, 0xfe, 0x9d, 0x1a, 0x66, 0x35, 0x6c, 0xa1, 0x73, 0x14, 0x6c, 0x82, 0xbd, 0xff, 0xa0, 0x86, 0xae, 0x8e, 0x1d, 0xb1, 0xe4, 0x25, 0xe8, 0x3f, 0xa9, 0xe5, 0xa8, 0x8e, 0x2d, 0x74, 0x21, 0xb7, 0x14, 0x15, 0xe2, 0xbf, 0xa8, 0x29, 0xd3, 0x85, 0xf0, 0x81, 0xa6, 0x0b, 0x05, 0xbe, 0x30, 0xfe, 0x6f, 0x6a, 0xcc, 0x74, 0x21, 0x5f, 0x81, 0xa6, 0x0b, 0x85, 0x67, 0x56, 0x32, 0xfe, 0x87, 0x9a, 0x66, 0x64, 0x54, 0x8a, 0x2e, 0x54, 0x57, 0x40, 0xb0, 0xf7, 0xbf, 0xd4, 0x32, 0x1f, 0x59, 0x81, 0xd0, 0x85, 0xda, 0x0a, 0x08, 0xf6, 0xfe, 0x8f, 0x1a, 0x17, 0xa3, 0x2b, 0x88, 0xb0, 0xc0, 0xf3, 0xfb, 0xc2, 0x68, 0x29, 0x0b, 0xba, 0x10, 0xc6, 0x55, 0x5d, 0x28, 0xfc, 0x42, 0xf6, 0xfe, 0xcc, 0x28, 0x3b, 0xdb, 0x95, 0xcc, 0x2a, 0xba, 0x50, 0xec, 0x26, 0x96, 0x98, 0xaf, 0xa7, 0x86, 0x13, 0x32, 0x2a, 0x45, 0x17, 0x72, 0x3b, 0x25, 0xd7, 0x7e, 0x96, 0x1a, 0x0f, 0xa1, 0x0b, 0xc1, 0x63, 0x44, 0x17, 0x6a, 0x30, 0x42, 0xd6, 0xfc, 0x1c, 0x45, 0x1a, 0x4e, 0x17, 0x2a, 0x60, 0x9a, 0x2e, 0xe4, 0x78, 0xaa, 0x2e, 0xfc, 0x79, 0x40, 0x4b, 0xaf, 0x0b, 0xc1, 0x67, 0x54, 0x17, 0x86, 0x9b, 0x5d, 0xa9, 0x15, 0xbf, 0x00, 0x14, 0xa6, 0xd0, 0x85, 0x22, 0x45, 0x22, 0xba, 0x30, 0x02, 0x22, 0x08, 0xfc, 0x45, 0x08, 0x29, 0x9d, 0x2e, 0xd4, 0xa0, 0x34, 0x5d, 0x08, 0x9f, 0x00, 0x6b, 0xbf, 0x44, 0x21, 0x6c, 0x75, 0x21, 0x38, 0x08, 0x75, 0xa1, 0xe2, 0xcf, 0xfd, 0x49, 0x54, 0x68, 0xd5, 0xb7, 0x58, 0x95, 0x83, 0x52, 0xf7, 0x6d, 0x88, 0xe1, 0x87, 0x2d, 0x00, 0x6e, 0xac, 0x6f, 0xd1, 0x82, 0x48, 0xff, 0x3b, 0xdd, 0xee, 0x6e, 0x9f, 0x0f, 0xf6, 0xb7, 0xe4, 0x88, 0x7b, 0x16, 0x4d, 0x86, 0x08, 0x50, 0xd3, 0x7e, 0x0b, 0x20, 0xae, 0xb4, 0x87, 0x60, 0x05, 0x15, 0x30, 0x26, 0x5a, 0xca, 0x90, 0xbb, 0x8e, 0xa6, 0x42, 0x10, 0x5e, 0x63, 0x7f, 0x1b, 0x50, 0xae, 0xb2, 0x47, 0x81, 0x6a, 0x0c, 0x30, 0x85, 0x96, 0x3a, 0xa6, 0xe1, 0xf0, 0x0a, 0xfd, 0x3b, 0xa9, 0x71, 0xce, 0x18, 0x70, 0x78, 0x7d, 0x8f, 0x90, 0x46, 0xb0, 0xf7, 0xbb, 0xc3, 0x90, 0x46, 0x70, 0x8c, 0x34, 0x82, 0x63, 0xa4, 0x11, 0xec, 0xfd, 0xde, 0x50, 0xa4, 0x09, 0x18, 0x95, 0xb4, 0x08, 0x0e, 0x6f, 0x2d, 0xdf, 0x19, 0x8a, 0xb4, 0x28, 0x0e, 0x6f, 0x4c, 0x9b, 0xa8, 0x18, 0xe2, 0x88, 0x5e, 0xf3, 0xfb, 0x00, 0x74, 0xb5, 0x3d, 0x10, 0x6f, 0x61, 0x80, 0x34, 0xd9, 0xd2, 0x06, 0xdd, 0x26, 0x9a, 0x96, 0xd4, 0x09, 0xac, 0x3f, 0x00, 0xac, 0x6b, 0x52, 0x90, 0xb7, 0xae, 0x82, 0x4d, 0xb5, 0xf4, 0x51, 0x6d, 0x37, 0x40, 0x5f, 0xfc, 0xc3, 0xd4, 0xbb, 0x81, 0x75, 0x50, 0x7d, 0x37, 0x40, 0x53, 0x8d, 0xb1, 0x47, 0xb0, 0xf7, 0x47, 0xc3, 0xb1, 0x27, 0xbe, 0x27, 0x8d, 0x3d, 0x82, 0x0d, 0xec, 0x11, 0xec, 0xfd, 0xf1, 0x90, 0xec, 0x09, 0x30, 0x9d, 0xbd, 0xc8, 0xf6, 0xe3, 0x3d, 0xfd, 0x4f, 0x52, 0x6f, 0x3f, 0xe8, 0xfe, 0xfa, 0xf6, 0xe3, 0x8a, 0x40, 0x4b, 0x27, 0x50, 0x04, 0x7f, 0x9a, 0x3e, 0x9d, 0x98, 0x83, 0x48, 0x3a, 0x81, 0x9e, 0x50, 0x77, 0x03, 0xe8, 0x89, 0x3f, 0x4b, 0xbd, 0x1b, 0x98, 0xf2, 0xd0, 0x77, 0x03, 0x88, 0x91, 0x2d, 0x74, 0x20, 0x04, 0x51, 0xc4, 0xc8, 0x9f, 0x03, 0xd2, 0x2b, 0xec, 0x91, 0x42, 0x01, 0x02, 0x68, 0xc5, 0x56, 0x64, 0xd8, 0x3d, 0x8f, 0x66, 0x22, 0x88, 0xa2, 0xad, 0xfe, 0x05, 0x80, 0x5e, 0x9b, 0x12, 0x94, 0x8f, 0x01, 0xee, 0x81, 0x56, 0xfc, 0x13, 0x77, 0x07, 0x1d, 0x0c, 0xa1, 0x55, 0x89, 0xf2, 0x97, 0x00, 0x7c, 0xca, 0x1e, 0x58, 0xaa, 0x12, 0x80, 0x9d, 0x6e, 0x45, 0xc7, 0xdd, 0x3b, 0xd0, 0x21, 0xa5, 0xfa, 0x2a, 0x6a, 0xe5, 0xbb, 0x80, 0xba, 0x9c, 0xa6, 0x06, 0x87, 0x3a, 0x05, 0x60, 0xdd, 0x56, 0xec, 0x03, 0xf7, 0x6e, 0xe4, 0xc5, 0x70, 0x05, 0xd3, 0x7f, 0x05, 0xd0, 0xa7, 0x53, 0x43, 0x6b, 0x5c, 0x1f, 0x6a, 0x99, 0x3e, 0x13, 0xfb, 0x97, 0x35, 0x3a, 0xd0, 0x1c, 0x7f, 0x9d, 0x6a, 0xff, 0xb2, 0xce, 0x2f, 0x45, 0x07, 0xdd, 0xbf, 0xe1, 0x90, 0x48, 0xc6, 0x1d, 0x05, 0xe5, 0x6f, 0x52, 0x25, 0x23, 0x34, 0x7e, 0x09, 0x43, 0x93, 0x51, 0x8e, 0x09, 0x9c, 0x9e, 0x82, 0xf3, 0xb7, 0xa9, 0x70, 0xce, 0x18, 0x70, 0xe4, 0x98, 0x42, 0x1a, 0xc1, 0x00, 0xf3, 0x77, 0x69, 0x49, 0x23, 0x38, 0x46, 0x1a, 0x0c, 0xa9, 0xa4, 0x09, 0x94, 0xbf, 0x4f, 0x4d, 0x9a, 0x0a, 0x23, 0x48, 0xd3, 0x71, 0x7a, 0x0a, 0xce, 0x3f, 0xa4, 0x26, 0x2d, 0x8a, 0x23, 0xc7, 0x44, 0x4b, 0xe3, 0x6d, 0x14, 0x80, 0xfe, 0x31, 0x55, 0x4b, 0xe3, 0x7d, 0x5f, 0x22, 0xd1, 0x6f, 0x43, 0x19, 0x0c, 0xa9, 0x63, 0x25, 0x1a, 0x90, 0xfe, 0x29, 0x1d, 0x75, 0xcc, 0x43, 0x84, 0xba, 0x70, 0xcc, 0x2d, 0x21, 0xd4, 0x69, 0x37, 0x3a, 0xeb, 0x00, 0xf1, 0x74, 0xae, 0xe4, 0x94, 0xf7, 0x55, 0x47, 0x82, 0x71, 0x36, 0xc8, 0x2c, 0x8e, 0xa0, 0xfd, 0x60, 0x01, 0xf2, 0xf4, 0x19, 0x6a, 0x92, 0xab, 0x8e, 0x04, 0x30, 0x0f, 0xe4, 0xf2, 0xcb, 0xd0, 0x04, 0xd8, 0x70, 0xad, 0xfc, 0x2c, 0x35, 0x9a, 0xae, 0x8e, 0x04, 0x30, 0x95, 0x8b, 0xdd, 0xd0, 0x8a, 0x2b, 0xdd, 0xe7, 0xa8, 0x55, 0x21, 0xb4, 0xe2, 0x52, 0x55, 0xc5, 0x23, 0xd8, 0x7b, 0x9e, 0x1a, 0x65, 0x55, 0x3c, 0x82, 0x75, 0x3c, 0x82, 0xbd, 0xcf, 0x50, 0x23, 0x57, 0xc3, 0x53, 0xad, 0xb8, 0x48, 0xfc, 0x2c, 0xb5, 0x1a, 0xd5, 0xf0, 0x08, 0x76, 0x5f, 0x8e, 0x0a, 0x60, 0x25, 0x64, 0xd7, 0xe7, 0xa8, 0xd9, 0x58, 0x75, 0x24, 0x80, 0xd9, 0x42, 0xa2, 0x95, 0xd1, 0x24, 0xc7, 0x14, 0x86, 0x9f, 0xa7, 0x86, 0x53, 0xd5, 0x91, 0x00, 0x1c, 0x84, 0xf2, 0x2a, 0x8c, 0x00, 0xb4, 0xd5, 0x2f, 0x53, 0xb3, 0x4c, 0x18, 0x01, 0xa8, 0x23, 0x1d, 0x95, 0x60, 0xef, 0x57, 0xa8, 0x55, 0x5e, 0x47, 0x65, 0x07, 0x08, 0x1a, 0x2a, 0xc1, 0xde, 0xaf, 0x52, 0xc3, 0x62, 0x04, 0x55, 0x8d, 0x96, 0x6b, 0x92, 0x17, 0xa8, 0x9d, 0x13, 0x46, 0xcb, 0x45, 0x85, 0x64, 0x0e, 0x14, 0xc5, 0x17, 0xa8, 0xd5, 0xb8, 0x64, 0x0e, 0x24, 0x41, 0x18, 0x01, 0xe8, 0x81, 0x2f, 0x52, 0xa3, 0x89, 0x30, 0x02, 0xe8, 0xe8, 0x75, 0x54, 0x04, 0x1b, 0xa5, 0x9d, 0x7f, 0x29, 0x97, 0xfe, 0x31, 0x6e, 0x75, 0x24, 0x80, 0x50, 0x65, 0x0b, 0xbf, 0x15, 0x1d, 0x50, 0x21, 0x44, 0x57, 0xf9, 0x72, 0x6e, 0xa8, 0x57, 0x6c, 0xaa, 0x23, 0xc1, 0xb4, 0x04, 0x12, 0x5d, 0x64, 0x0d, 0xc1, 0xa0, 0xd6, 0xb0, 0xbf, 0x92, 0x1b, 0xe2, 0xfd, 0x9a, 0xea, 0x48, 0x30, 0xc5, 0x5c, 0x2a, 0x4d, 0x7a, 0x05, 0xb9, 0x62, 0xe3, 0x2a, 0x1d, 0xfa, 0xab, 0xb9, 0x34, 0xcf, 0xa2, 0xab, 0x23, 0x41, 0x91, 0x6f, 0x77, 0xd9, 0x8d, 0xcf, 0xa1, 0x43, 0x3a, 0x80, 0x20, 0xed, 0x6b, 0xb9, 0x94, 0x6f, 0xd6, 0x54, 0x47, 0x82, 0x03, 0x2a, 0x8c, 0x20, 0xec, 0xc7, 0x78, 0xe5, 0x00, 0xa6, 0xbe, 0x9e, 0xb3, 0x7e, 0x4d, 0xf0, 0x26, 0x3a, 0x5b, 0x30, 0xa5, 0xf8, 0x92, 0xb9, 0x01, 0x7b, 0x74, 0xc1, 0xfb, 0x86, 0xd8, 0xa4, 0x13, 0xca, 0x26, 0x5d, 0x88, 0xda, 0xf9, 0xde, 0x37, 0x4d, 0x76, 0x7e, 0xd4, 0x6e, 0xd1, 0xfb, 0x96, 0xc9, 0x6e, 0xd1, 0x3d, 0x89, 0x0e, 0xf2, 0x0c, 0xd2, 0x1f, 0x68, 0xdd, 0x9b, 0x97, 0x2f, 0xf4, 0x54, 0x9d, 0x00, 0xbe, 0x41, 0xfd, 0x79, 0xd6, 0x55, 0x82, 0xf6, 0xe8, 0xc3, 0xac, 0xf7, 0xe5, 0xd5, 0xb7, 0x7b, 0xaa, 0x0e, 0xe7, 0x32, 0xf2, 0x2c, 0xeb, 0x6a, 0x34, 0x13, 0x9d, 0xce, 0x2b, 0xe9, 0x7d, 0x79, 0xe5, 0x55, 0x9f, 0xaa, 0x13, 0x1c, 0xd4, 0xa7, 0xf3, 0xca, 0x7a, 0x55, 0x7c, 0x3e, 0xaf, 0xb1, 0xf7, 0xe7, 0xe5, 0x7b, 0x3f, 0xf1, 0xe9, 0x67, 0xc4, 0x63, 0x30, 0xd3, 0xea, 0x09, 0xf6, 0x1e, 0xc8, 0x47, 0x5f, 0x02, 0x32, 0x46, 0x40, 0x70, 0x52, 0x04, 0x04, 0x7b, 0x0f, 0xe6, 0x95, 0x37, 0x82, 0xcc, 0x11, 0x10, 0x9c, 0x14, 0x01, 0xc1, 0xde, 0x43, 0x79, 0xf9, 0x7a, 0x90, 0x39, 0x02, 0xf6, 0xe8, 0x6b, 0x36, 0x3a, 0x5d, 0x54, 0xe9, 0x87, 0xf3, 0xea, 0xbb, 0x42, 0x55, 0x27, 0x38, 0xa4, 0x7b, 0x10, 0xf5, 0xfd, 0x3a, 0xe4, 0xc5, 0x22, 0x10, 0x3e, 0x1e, 0xc9, 0x6b, 0x2f, 0x0e, 0x55, 0x9d, 0x60, 0x26, 0x12, 0x85, 0xa8, 0xfd, 0x57, 0xc7, 0xa9, 0x84, 0x2e, 0xf0, 0xfe, 0xbc, 0xf6, 0x16, 0x51, 0x9c, 0x47, 0xe8, 0x0b, 0x49, 0x81, 0x10, 0xec, 0x7d, 0x20, 0xaf, 0xbe, 0x52, 0x94, 0x10, 0x08, 0xc1, 0xc9, 0x81, 0x10, 0xec, 0x3d, 0x9a, 0xd7, 0xde, 0x2f, 0x4a, 0x0a, 0x84, 0x60, 0xf7, 0xfa, 0xf8, 0x17, 0xc2, 0x1b, 0xcb, 0x63, 0x79, 0xc3, 0xcb, 0x46, 0xf1, 0x6f, 0x86, 0x37, 0x9c, 0x1b, 0x0c, 0x1b, 0x03, 0x5a, 0xcf, 0xe3, 0x79, 0xf3, 0x9b, 0x47, 0x86, 0x3d, 0x02, 0x5d, 0xe9, 0xa6, 0x38, 0xb7, 0xd0, 0x9f, 0x9e, 0xc8, 0x0f, 0x7e, 0x0d, 0x29, 0x4e, 0x36, 0xb4, 0xb0, 0xd7, 0xa2, 0xb9, 0xa8, 0x43, 0xa5, 0x99, 0x3d, 0x99, 0x1f, 0xfa, 0x9d, 0xa4, 0xaa, 0x13, 0xcc, 0xea, 0xc0, 0xea, 0xdf, 0xa7, 0x17, 0xc7, 0x33, 0x46, 0x69, 0x0a, 0x4f, 0xe5, 0x87, 0x78, 0x41, 0xa9, 0xea, 0x04, 0x87, 0xa3, 0x79, 0x16, 0xda, 0xcc, 0xfd, 0x14, 0x9a, 0xd0, 0x7a, 0xdf, 0x8b, 0xf8, 0xa6, 0xf9, 0xdc, 0x5d, 0x08, 0x29, 0xfd, 0xf0, 0xc5, 0x44, 0xbe, 0x06, 0x15, 0xb4, 0x37, 0x39, 0x6d, 0xc1, 0xa9, 0x03, 0xed, 0x9d, 0x88, 0x74, 0x0e, 0x94, 0xc3, 0x73, 0x6b, 0x07, 0x57, 0xa3, 0x62, 0xf4, 0x70, 0xdc, 0x2d, 0xa2, 0xec, 0x6d, 0x8d, 0xf3, 0xcc, 0xc9, 0xbe, 0x80, 0xfe, 0xaf, 0x7b, 0x10, 0xe5, 0xee, 0xa8, 0x37, 0x7b, 0x0d, 0x2f, 0xc3, 0xc6, 0xe0, 0x1f, 0x95, 0xcc, 0x15, 0xce, 0xdc, 0x35, 0x68, 0x3a, 0x76, 0xf2, 0xbd, 0x9b, 0x83, 0x9c, 0xea, 0xe0, 0x15, 0xc8, 0x8d, 0x1f, 0x6a, 0xef, 0xe6, 0x61, 0xda, 0xec, 0xe1, 0xcc, 0xde, 0x3d, 0x14, 0x12, 0x83, 0xe0, 0xa7, 0x74, 0xbb, 0x39, 0xc8, 0x26, 0x07, 0xb1, 0x47, 0x0f, 0x6e, 0x72, 0x10, 0x7b, 0xf4, 0x30, 0xaa, 0x7a, 0x38, 0x85, 0x0e, 0x18, 0xce, 0x85, 0x77, 0x73, 0x31, 0xa6, 0xba, 0x58, 0x46, 0x07, 0x4d, 0xc7, 0xbd, 0xbb, 0xf9, 0x98, 0x32, 0x73, 0x29, 0xcf, 0x71, 0x77, 0x73, 0x90, 0x19, 0x10, 0xc7, 0x1e, 0xa9, 0xc8, 0x0f, 0x8a, 0x63, 0x8f, 0x3e, 0x8a, 0xe6, 0x2f, 0x44, 0x39, 0x50, 0xdd, 0xcd, 0x83, 0x93, 0xb0, 0x29, 0xe4, 0x51, 0xe9, 0x6e, 0x1e, 0xc6, 0xcd, 0x5c, 0xca, 0x53, 0xd0, 0xdd, 0x1c, 0x4c, 0xa8, 0x0e, 0xce, 0xa3, 0x43, 0xc6, 0xc3, 0x4d, 0x83, 0x93, 0x57, 0xa9, 0x4e, 0xd2, 0x3e, 0xcc, 0x55, 0xa0, 0xef, 0x46, 0x5e, 0xd2, 0x11, 0xa7, 0x01, 0xfd, 0x46, 0x15, 0x7d, 0x88, 0x07, 0xbc, 0xca, 0x02, 0x5e, 0x8b, 0x66, 0xcc, 0x47, 0x9d, 0x06, 0xf8, 0x1f, 0xd1, 0xe1, 0x53, 0x3e, 0xf1, 0x55, 0xc0, 0x7b, 0x68, 0x36, 0xe1, 0xc4, 0xd3, 0x80, 0x7e, 0x9d, 0x4e, 0xbd, 0xed, 0x43, 0x60, 0x2d, 0xe6, 0xb9, 0xe4, 0xd3, 0x4e, 0x03, 0xf2, 0x2b, 0xf5, 0xb8, 0x53, 0x3c, 0x16, 0x8e, 0xed, 0x56, 0xfd, 0xcc, 0x53, 0xc5, 0xcc, 0xed, 0xd6, 0x4b, 0x20, 0x61, 0x22, 0xc7, 0x99, 0xaa, 0x87, 0xe9, 0xbd, 0x79, 0x38, 0x93, 0xec, 0xa1, 0xb0, 0xb7, 0x7e, 0xa6, 0x9f, 0x41, 0xaa, 0x0e, 0xb2, 0x7b, 0x0f, 0x22, 0xc1, 0x83, 0xbb, 0xf7, 0x20, 0x12, 0x3c, 0x8c, 0xee, 0xe6, 0x01, 0x4a, 0x68, 0xf4, 0x44, 0x50, 0x75, 0x31, 0xb6, 0xc7, 0x30, 0xf4, 0xa3, 0x3e, 0xd5, 0xc3, 0xf8, 0x6e, 0x1e, 0xae, 0x44, 0x48, 0xfe, 0x3d, 0x6e, 0xad, 0x4b, 0xaa, 0x68, 0xe6, 0xf4, 0x5d, 0xdd, 0x46, 0x7b, 0x67, 0xb3, 0xd3, 0x1e, 0x4e, 0x63, 0xa9, 0x9e, 0x86, 0xd2, 0x4a, 0x47, 0xe6, 0xd1, 0xb8, 0x14, 0xdb, 0xe3, 0x08, 0x74, 0x71, 0x71, 0x84, 0xfe, 0xef, 0x72, 0x70, 0xea, 0x47, 0x6f, 0x2a, 0x3a, 0xee, 0x7e, 0x34, 0x76, 0x6d, 0xf5, 0x54, 0xf0, 0xea, 0x1b, 0x4e, 0x17, 0x33, 0x97, 0x8d, 0xef, 0xbb, 0xa7, 0x56, 0xbc, 0x70, 0xe1, 0xc2, 0x85, 0x8c, 0x7f, 0x16, 0xcd, 0x36, 0xc4, 0x22, 0x56, 0xb4, 0x3b, 0x8b, 0xae, 0x85, 0xe8, 0xf4, 0xee, 0xa9, 0x31, 0x96, 0x0f, 0x35, 0xa2, 0xd4, 0xd0, 0xaf, 0xc8, 0x6f, 0x20, 0xcf, 0x00, 0x02, 0x7f, 0x90, 0xdb, 0xa0, 0xbc, 0xa1, 0xc6, 0xb2, 0x75, 0x26, 0x86, 0xc2, 0x72, 0xdb, 0xdf, 0x40, 0x87, 0x0d, 0x30, 0x3b, 0xf6, 0x38, 0x6f, 0xac, 0xb1, 0x9c, 0x9e, 0x8d, 0xe1, 0x40, 0x09, 0x48, 0x00, 0xea, 0xd9, 0x03, 0xbd, 0xa9, 0xc6, 0x52, 0x3f, 0x0e, 0x04, 0x95, 0x22, 0x99, 0x38, 0x82, 0xad, 0x70, 0xde, 0x5c, 0x63, 0x15, 0xc2, 0x48, 0x1c, 0xc1, 0x03, 0x88, 0xb3, 0xc4, 0x79, 0x4b, 0x8d, 0xd5, 0x11, 0x33, 0x71, 0x89, 0x40, 0x3d, 0x7b, 0xa0, 0xb7, 0xd6, 0x58, 0xb9, 0x31, 0x13, 0x47, 0xb0, 0xbf, 0x89, 0xe6, 0x0c, 0x40, 0xe2, 0xe4, 0xc2, 0x06, 0xe9, 0x6d, 0x35, 0x56, 0x95, 0xbc, 0x18, 0x12, 0xaf, 0x62, 0xfe, 0x6d, 0xe8, 0x22, 0x13, 0x79, 0x69, 0xb0, 0xde, 0x5e, 0x63, 0xa2, 0xf5, 0x70, 0x9c, 0x3e, 0xee, 0x2d, 0x61, 0x43, 0xac, 0xc3, 0xab, 0x7d, 0x16, 0x48, 0xef, 0xa8, 0x31, 0x75, 0x1b, 0xdf, 0x10, 0x4c, 0x1b, 0x0f, 0xa2, 0xcf, 0xf2, 0x8b, 0x7a, 0x67, 0x8d, 0x69, 0xe0, 0x04, 0xfa, 0x08, 0x1e, 0x48, 0x9f, 0x25, 0xd6, 0xbb, 0x6a, 0x4c, 0x2b, 0x27, 0xd1, 0x97, 0xb8, 0xff, 0xe0, 0xb0, 0xc7, 0x0a, 0xaa, 0x5f, 0x63, 0xa2, 0x3a, 0xbe, 0xff, 0x40, 0x93, 0x27, 0x65, 0x14, 0x1c, 0xee, 0xd8, 0x00, 0xbd, 0xbb, 0xc6, 0xba, 0x80, 0x21, 0xa3, 0xe0, 0xc4, 0xd7, 0xbc, 0x21, 0xd8, 0x59, 0x91, 0x15, 0xce, 0x7b, 0x6a, 0x4c, 0xa2, 0xc7, 0x37, 0x04, 0x13, 0xf8, 0xfe, 0x03, 0x0e, 0xba, 0xc4, 0x80, 0x23, 0x8f, 0x90, 0xac, 0xc0, 0xde, 0x5b, 0x1b, 0x42, 0xca, 0xcf, 0xc5, 0x96, 0x18, 0x7e, 0xe6, 0x3f, 0xee, 0xa0, 0x52, 0xe2, 0x32, 0xf9, 0xe3, 0x01, 0xab, 0x95, 0xde, 0x5b, 0x1b, 0x4e, 0xf6, 0x5f, 0x62, 0x5e, 0x2c, 0xff, 0xd8, 0x7f, 0xd8, 0x41, 0xdf, 0x67, 0x58, 0xaf, 0xf2, 0x5c, 0xc6, 0x6a, 0xb5, 0xef, 0xab, 0x0d, 0xf3, 0x57, 0xc2, 0x45, 0xb1, 0xb5, 0xca, 0x0f, 0xfd, 0xfb, 0x1c, 0x74, 0xa9, 0xb1, 0x47, 0xc8, 0x63, 0x3c, 0xab, 0xa5, 0xde, 0x57, 0x4b, 0xf5, 0x27, 0xc5, 0xc5, 0x86, 0xce, 0x12, 0x7e, 0xea, 0x3f, 0xea, 0xa0, 0x23, 0x03, 0x16, 0x99, 0x66, 0x03, 0xdc, 0x5f, 0x4b, 0xfb, 0x07, 0xc8, 0xa5, 0x49, 0x4b, 0x15, 0x5f, 0xfe, 0x43, 0x0e, 0x92, 0xe9, 0xa6, 0xdf, 0xb4, 0xb6, 0x59, 0xe1, 0x03, 0x35, 0xf6, 0x38, 0xca, 0xe6, 0x4d, 0x1b, 0xb3, 0x80, 0x0d, 0x12, 0x56, 0xe3, 0x37, 0xd5, 0x1a, 0xa3, 0x3f, 0x30, 0xb2, 0x4b, 0xa6, 0xbe, 0x7a, 0x5d, 0x5c, 0xa2, 0x69, 0xcf, 0x97, 0xfc, 0x2d, 0xb5, 0x74, 0x46, 0x9e, 0x31, 0xd9, 0x65, 0x43, 0x5f, 0xbf, 0x6e, 0x3e, 0x1b, 0x07, 0x04, 0xdd, 0x78, 0xbb, 0xda, 0xed, 0xa2, 0x8f, 0xa5, 0xec, 0x76, 0x75, 0x5f, 0xbb, 0xae, 0xee, 0xc5, 0x11, 0xb9, 0x82, 0xdc, 0x32, 0x43, 0xa6, 0x90, 0x90, 0xf7, 0xf7, 0xd5, 0xeb, 0xee, 0x06, 0x44, 0x2e, 0x25, 0xbb, 0x89, 0xb4, 0x5a, 0x76, 0xd9, 0x07, 0xfa, 0xf1, 0xeb, 0xf2, 0x66, 0x6a, 0x09, 0x1e, 0x44, 0xad, 0x25, 0xec, 0x83, 0x7d, 0xed, 0xba, 0x7d, 0x02, 0xb5, 0x04, 0x0f, 0xa2, 0xd6, 0x12, 0xf2, 0xa1, 0xbe, 0x7a, 0x5d, 0x3f, 0x81, 0x5a, 0x82, 0xfd, 0xae, 0x2a, 0x61, 0x62, 0x4f, 0xe5, 0xac, 0x20, 0x1f, 0xee, 0xeb, 0xd7, 0xfd, 0x0f, 0xc7, 0x41, 0x85, 0xee, 0xbc, 0x13, 0x5d, 0x6c, 0xa4, 0x36, 0x0d, 0xec, 0x23, 0xfd, 0xc8, 0xcf, 0x05, 0xcc, 0x19, 0xe8, 0x15, 0x1a, 0xf4, 0x76, 0xf3, 0x4e, 0xb2, 0x17, 0xa1, 0xef, 0xef, 0x47, 0x7e, 0x6e, 0xc0, 0xb0, 0x8d, 0x40, 0x8f, 0x0e, 0x62, 0xd8, 0xf2, 0x4b, 0xfd, 0x40, 0x5f, 0xff, 0xb9, 0x82, 0x24, 0x86, 0x09, 0x1e, 0xcc, 0xb0, 0x25, 0xec, 0xa3, 0xfd, 0xc8, 0xcf, 0x1d, 0x24, 0x32, 0x4c, 0xb0, 0x7f, 0xde, 0xbc, 0x85, 0x53, 0xe8, 0xd4, 0xc7, 0xfa, 0xc6, 0x9f, 0x4b, 0x30, 0xec, 0x65, 0x2e, 0x5c, 0x5f, 0x97, 0x90, 0xb0, 0xf6, 0xca, 0xf5, 0xf1, 0x7e, 0xd2, 0xcf, 0x2d, 0x98, 0x72, 0x17, 0xd4, 0xec, 0xeb, 0x1d, 0xf3, 0xde, 0xb2, 0xd7, 0xb3, 0x4f, 0xf4, 0x77, 0xfb, 0xbd, 0x06, 0xc3, 0x66, 0x03, 0xad, 0xfb, 0x84, 0x26, 0xca, 0x4c, 0xcf, 0x4b, 0xad, 0x56, 0xf2, 0x64, 0xff, 0x7b, 0xf0, 0x83, 0x0f, 0x17, 0xc5, 0x17, 0x2b, 0x55, 0xef, 0x63, 0x9a, 0xea, 0x35, 0x3f, 0x63, 0xb5, 0x5a, 0xf2, 0x53, 0xfd, 0xa1, 0x7e, 0x31, 0xe2, 0x12, 0x53, 0x6d, 0x96, 0x2a, 0x6d, 0x4d, 0x3d, 0x72, 0xd2, 0x2e, 0x0b, 0xda, 0x2d, 0xf2, 0xbb, 0x0e, 0xbb, 0x59, 0x28, 0xcf, 0x9c, 0x02, 0xe5, 0x8a, 0xa1, 0xbf, 0xae, 0x8a, 0x16, 0xfd, 0xb2, 0xa1, 0x15, 0xcc, 0x07, 0x19, 0x8c, 0x7a, 0xe8, 0x14, 0xa8, 0x57, 0x14, 0xfd, 0x73, 0xea, 0x8e, 0x8d, 0x5c, 0x56, 0xb4, 0x02, 0xfa, 0x10, 0x03, 0x52, 0x4f, 0x9d, 0x02, 0xed, 0x8a, 0x63, 0x02, 0x52, 0x0a, 0xc9, 0xf0, 0x61, 0x86, 0x54, 0x30, 0x20, 0x71, 0xad, 0x90, 0xc8, 0x9d, 0x65, 0xd1, 0xfb, 0x08, 0x03, 0xca, 0x9a, 0xb9, 0x23, 0x78, 0x00, 0x77, 0x96, 0x40, 0x1f, 0x65, 0x40, 0x6e, 0x02, 0x77, 0x89, 0x48, 0x29, 0x34, 0xc1, 0xc7, 0x18, 0xd2, 0x68, 0x02, 0x77, 0x04, 0xfb, 0xb7, 0xaa, 0x05, 0x34, 0x7a, 0xd9, 0xd3, 0x0a, 0xea, 0xe3, 0x0c, 0x4a, 0x3d, 0x7a, 0x0a, 0xf4, 0x2b, 0xa2, 0x7e, 0x53, 0x6d, 0x8b, 0xb1, 0xcb, 0xa2, 0x56, 0x60, 0x9f, 0x60, 0x60, 0xea, 0xd9, 0x53, 0x10, 0xb9, 0x62, 0x9a, 0xb0, 0x2b, 0xec, 0xdb, 0xfe, 0x27, 0x19, 0x54, 0xc6, 0xb0, 0x2b, 0xa0, 0xd9, 0x0f, 0x60, 0xd0, 0xf2, 0xcb, 0xfa, 0x14, 0x43, 0xca, 0x27, 0x31, 0x48, 0xf0, 0x40, 0x06, 0x2d, 0xc1, 0x3e, 0xcd, 0xc0, 0x8a, 0x89, 0x0c, 0x26, 0xee, 0xc2, 0x14, 0x6d, 0xfd, 0x69, 0x86, 0xe5, 0x18, 0x76, 0x21, 0x6f, 0xe3, 0x09, 0x99, 0x65, 0xdf, 0xc5, 0x9f, 0x61, 0x48, 0xe3, 0xa6, 0xcc, 0x82, 0x96, 0x6d, 0xde, 0x15, 0xf6, 0x0d, 0xfb, 0x59, 0x06, 0x34, 0x61, 0xd8, 0x15, 0xd0, 0x95, 0x1f, 0xd4, 0x4e, 0xa0, 0x0c, 0xb7, 0x7d, 0xad, 0xd0, 0x9e, 0x63, 0x68, 0xc3, 0x1f, 0x41, 0x05, 0xd1, 0x3b, 0xc2, 0x54, 0x3d, 0x94, 0x12, 0xd7, 0x99, 0xe6, 0x04, 0xe2, 0x79, 0xb6, 0xd4, 0xef, 0xc9, 0x19, 0x54, 0x60, 0xb8, 0x64, 0xec, 0x3f, 0xa2, 0xc9, 0x1d, 0xd3, 0x7d, 0x63, 0xab, 0xe5, 0x7e, 0x86, 0x2f, 0x77, 0xe8, 0x43, 0xa8, 0x20, 0x76, 0x4b, 0xd9, 0xbf, 0x5f, 0x3b, 0x84, 0x32, 0x5e, 0x58, 0xb6, 0x5a, 0xeb, 0x67, 0xf9, 0x2e, 0x48, 0x7f, 0x0a, 0x15, 0xc4, 0xaf, 0x39, 0x53, 0x39, 0x76, 0x64, 0xc0, 0x2a, 0xd3, 0xec, 0x81, 0xcf, 0x71, 0x52, 0x87, 0x3a, 0x86, 0x0a, 0x8c, 0xf7, 0xa4, 0xfd, 0x87, 0xd5, 0x63, 0x28, 0xfd, 0x86, 0xb3, 0xcd, 0x12, 0x3f, 0xcf, 0x96, 0x98, 0xf2, 0x1c, 0x4a, 0xbf, 0x67, 0x9d, 0xb0, 0x9c, 0xe5, 0x82, 0x78, 0x55, 0xbf, 0xd7, 0xde, 0xec, 0xb4, 0x97, 0x67, 0xe3, 0xef, 0x48, 0xb2, 0x0f, 0x2e, 0x5b, 0x40, 0xfb, 0xd5, 0xf7, 0xc4, 0x4d, 0x0f, 0x44, 0x91, 0x3b, 0x21, 0x1f, 0x88, 0xbe, 0xe0, 0x2c, 0xbf, 0xe6, 0xc7, 0x6b, 0xb1, 0x65, 0x1f, 0x63, 0xcb, 0x5e, 0xed, 0xad, 0x1f, 0xdb, 0x6c, 0x77, 0x1b, 0xdb, 0xed, 0x7a, 0x93, 0xfd, 0xce, 0x2d, 0x1b, 0xdd, 0x39, 0xd6, 0x6c, 0x6c, 0xd4, 0xcf, 0x9e, 0x3f, 0x96, 0xf4, 0x93, 0xb8, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x83, 0x33, 0xd4, 0x34, 0x2d, 0x57, 0x00, 0x00, } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto2_20160519_a4ab9ec5/test.proto000066400000000000000000000341021411250152500313200ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package google.golang.org.proto2_20160519; option go_package = "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20160519_a4ab9ec5"; enum SiblingEnum { ALPHA = 0; BRAVO = 10; CHARLIE = 200; } message SiblingMessage { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; optional Message f4 = 4; } message Message { enum ChildEnum { ALPHA = 0; BRAVO = 1; CHARLIE = 2; } message ChildMessage { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; optional Message f4 = 4; } optional group NamedGroup = 1 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; optional Message f4 = 4; } // Optional fields. optional bool optional_bool = 100; optional int32 optional_int32 = 101; optional sint32 optional_sint32 = 102; optional uint32 optional_uint32 = 103; optional int64 optional_int64 = 104; optional sint64 optional_sint64 = 105; optional uint64 optional_uint64 = 106; optional fixed32 optional_fixed32 = 107; optional sfixed32 optional_sfixed32 = 108; optional float optional_float = 109; optional fixed64 optional_fixed64 = 110; optional sfixed64 optional_sfixed64 = 111; optional double optional_double = 112; optional string optional_string = 113; optional bytes optional_bytes = 114; optional ChildEnum optional_child_enum = 115; optional ChildMessage optional_child_message = 116; optional NamedGroup optional_named_group = 117; optional SiblingEnum optional_sibling_enum = 118; optional SiblingMessage optional_sibling_message = 119; optional group OptionalGroup = 120 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Optional default fields. optional bool defaulted_bool = 200 [default = true]; optional int32 defaulted_int32 = 201 [default = -12345]; optional sint32 defaulted_sint32 = 202 [default = -3200]; optional uint32 defaulted_uint32 = 203 [default = 3200]; optional int64 defaulted_int64 = 204 [default = -123456789]; optional sint64 defaulted_sint64 = 205 [default = -6400]; optional uint64 defaulted_uint64 = 206 [default = 6400]; optional fixed32 defaulted_fixed32 = 207 [default = 320000]; optional sfixed32 defaulted_sfixed32 = 208 [default = -320000]; optional float defaulted_float = 209 [default = 3.14159]; optional fixed64 defaulted_fixed64 = 210 [default = 640000]; optional sfixed64 defaulted_sfixed64 = 211 [default = -640000]; optional double defaulted_double = 212 [default = 3.14159265359]; optional string defaulted_string = 213 [default = "hello, \"world!\"\n"]; optional bytes defaulted_bytes = 214 [default = "dead\xde\xad\xbe\xefbeef"]; optional ChildEnum defaulted_child_enum = 215 [default = ALPHA]; optional SiblingEnum defaulted_sibling_enum = 216 [default = ALPHA]; // Required fields. required bool required_bool = 300; required int32 required_int32 = 301; required sint32 required_sint32 = 302; required uint32 required_uint32 = 303; required int64 required_int64 = 304; required sint64 required_sint64 = 305; required uint64 required_uint64 = 306; required fixed32 required_fixed32 = 307; required sfixed32 required_sfixed32 = 308; required float required_float = 309; required fixed64 required_fixed64 = 310; required sfixed64 required_sfixed64 = 311; required double required_double = 312; required string required_string = 313; required bytes required_bytes = 314; required ChildEnum required_child_enum = 315; required ChildMessage required_child_message = 316; required NamedGroup required_named_group = 317; required SiblingEnum required_sibling_enum = 318; required SiblingMessage required_sibling_message = 319; required group RequiredGroup = 320 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Required default fields. required bool required_defaulted_bool = 400 [default = true]; required int32 required_defaulted_int32 = 401 [default = -12345]; required sint32 required_defaulted_sint32 = 402 [default = -3200]; required uint32 required_defaulted_uint32 = 403 [default = 3200]; required int64 required_defaulted_int64 = 404 [default = -123456789]; required sint64 required_defaulted_sint64 = 405 [default = -6400]; required uint64 required_defaulted_uint64 = 406 [default = 6400]; required fixed32 required_defaulted_fixed32 = 407 [default = 320000]; required sfixed32 required_defaulted_sfixed32 = 408 [default = -320000]; required float required_defaulted_float = 409 [default = 3.14159]; required fixed64 required_defaulted_fixed64 = 410 [default = 640000]; required sfixed64 required_defaulted_sfixed64 = 411 [default = -640000]; required double required_defaulted_double = 412 [default = 3.14159265359]; required string required_defaulted_string = 413 [default = "hello, \"world!\"\n"]; required bytes required_defaulted_bytes = 414 [default = "dead\xde\xad\xbe\xefbeef"]; required ChildEnum required_defaulted_child_enum = 415 [default = ALPHA]; required SiblingEnum required_defaulted_sibling_enum = 416 [default = ALPHA]; // Repeated fields. repeated bool repeated_bool = 500; repeated int32 repeated_int32 = 501; repeated sint32 repeated_sint32 = 502; repeated uint32 repeated_uint32 = 503; repeated int64 repeated_int64 = 504; repeated sint64 repeated_sint64 = 505; repeated uint64 repeated_uint64 = 506; repeated fixed32 repeated_fixed32 = 507; repeated sfixed32 repeated_sfixed32 = 508; repeated float repeated_float = 509; repeated fixed64 repeated_fixed64 = 510; repeated sfixed64 repeated_sfixed64 = 511; repeated double repeated_double = 512; repeated string repeated_string = 513; repeated bytes repeated_bytes = 514; repeated ChildEnum repeated_child_enum = 515; repeated ChildMessage repeated_child_message = 516; repeated NamedGroup repeated_named_group = 517; repeated SiblingEnum repeated_sibling_enum = 518; repeated SiblingMessage repeated_sibling_message = 519; repeated group RepeatedGroup = 520 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Map fields. map map_bool_bool = 600; map map_bool_int32 = 601; map map_bool_sint32 = 602; map map_bool_uint32 = 603; map map_bool_int64 = 604; map map_bool_sint64 = 605; map map_bool_uint64 = 606; map map_bool_fixed32 = 607; map map_bool_sfixed32 = 608; map map_bool_float = 609; map map_bool_fixed64 = 610; map map_bool_sfixed64 = 611; map map_bool_double = 612; map map_bool_string = 613; map map_bool_bytes = 614; map map_bool_child_enum = 615; map map_bool_child_message = 616; map map_bool_named_group = 617; map map_bool_sibling_enum = 618; map map_bool_sibling_message = 619; map map_int32_bool = 620; map map_sint32_bool = 621; map map_uint32_bool = 622; map map_int64_bool = 623; map map_sint64_bool = 624; map map_uint64_bool = 625; map map_fixed32_bool = 626; map map_string_bool = 627; // Oneof fields. oneof oneof_union { bool oneof_bool = 700; int32 oneof_int32 = 701; sint32 oneof_sint32 = 702; uint32 oneof_uint32 = 703; int64 oneof_int64 = 704; sint64 oneof_sint64 = 705; uint64 oneof_uint64 = 706; fixed32 oneof_fixed32 = 707; sfixed32 oneof_sfixed32 = 708; float oneof_float = 709; fixed64 oneof_fixed64 = 710; sfixed64 oneof_sfixed64 = 711; double oneof_double = 712; string oneof_string = 713; bytes oneof_bytes = 714; ChildEnum oneof_child_enum = 715; ChildMessage oneof_child_message = 716; NamedGroup oneof_named_group = 717; SiblingEnum oneof_sibling_enum = 718; SiblingMessage oneof_sibling_message = 719; group OneofGroup = 720 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } string oneof_string1 = 721; string oneof_string2 = 722; string oneof_string3 = 723; } // Oneof default fields. oneof oneof_defaulted_union { bool oneof_defaulted_bool = 800 [default = true]; int32 oneof_defaulted_int32 = 801 [default = -12345]; sint32 oneof_defaulted_sint32 = 802 [default = -3200]; uint32 oneof_defaulted_uint32 = 803 [default = 3200]; int64 oneof_defaulted_int64 = 804 [default = -123456789]; sint64 oneof_defaulted_sint64 = 805 [default = -6400]; uint64 oneof_defaulted_uint64 = 806 [default = 6400]; fixed32 oneof_defaulted_fixed32 = 807 [default = 320000]; sfixed32 oneof_defaulted_sfixed32 = 808 [default = -320000]; float oneof_defaulted_float = 809 [default = 3.14159]; fixed64 oneof_defaulted_fixed64 = 810 [default = 640000]; sfixed64 oneof_defaulted_sfixed64 = 811 [default = -640000]; double oneof_defaulted_double = 812 [default = 3.14159265359]; string oneof_defaulted_string = 813 [default = "hello, \"world!\"\n"]; bytes oneof_defaulted_bytes = 814 [default = "dead\xde\xad\xbe\xefbeef"]; ChildEnum oneof_defaulted_child_enum = 815 [default = ALPHA]; SiblingEnum oneof_defaulted_sibling_enum = 816 [default = ALPHA]; } // Extension fields. extend Message { // Optional fields. optional bool extension_optional_bool = 10000; optional int32 extension_optional_int32 = 10001; optional sint32 extension_optional_sint32 = 10002; optional uint32 extension_optional_uint32 = 10003; optional int64 extension_optional_int64 = 10004; optional sint64 extension_optional_sint64 = 10005; optional uint64 extension_optional_uint64 = 10006; optional fixed32 extension_optional_fixed32 = 10007; optional sfixed32 extension_optional_sfixed32 = 10008; optional float extension_optional_float = 10009; optional fixed64 extension_optional_fixed64 = 10010; optional sfixed64 extension_optional_sfixed64 = 10011; optional double extension_optional_double = 10012; optional string extension_optional_string = 10013; optional bytes extension_optional_bytes = 10014; optional ChildEnum extension_optional_child_enum = 10015; optional ChildMessage extension_optional_child_message = 10016; optional NamedGroup extension_optional_named_group = 10017; optional SiblingEnum extension_optional_sibling_enum = 10018; optional SiblingMessage extension_optional_sibling_message = 10019; optional group ExtensionOptionalGroup = 10020 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Optional default fields. optional bool extension_defaulted_bool = 20000 [default = true]; optional int32 extension_defaulted_int32 = 20001 [default = -12345]; optional sint32 extension_defaulted_sint32 = 20002 [default = -3200]; optional uint32 extension_defaulted_uint32 = 20003 [default = 3200]; optional int64 extension_defaulted_int64 = 20004 [default = -123456789]; optional sint64 extension_defaulted_sint64 = 20005 [default = -6400]; optional uint64 extension_defaulted_uint64 = 20006 [default = 6400]; optional fixed32 extension_defaulted_fixed32 = 20007 [default = 320000]; optional sfixed32 extension_defaulted_sfixed32 = 20008 [default = -320000]; optional float extension_defaulted_float = 20009 [default = 3.14159]; optional fixed64 extension_defaulted_fixed64 = 20010 [default = 640000]; optional sfixed64 extension_defaulted_sfixed64 = 20011 [default = -640000]; optional double extension_defaulted_double = 20012 [default = 3.14159265359]; optional string extension_defaulted_string = 20013 [default = "hello, \"world!\"\n"]; optional bytes extension_defaulted_bytes = 20014 [default = "dead\xde\xad\xbe\xefbeef"]; optional ChildEnum extension_defaulted_child_enum = 20015 [default = ALPHA]; optional SiblingEnum extension_defaulted_sibling_enum = 20016 [default = ALPHA]; // Repeated fields. repeated bool extension_repeated_bool = 30000; repeated int32 extension_repeated_int32 = 30001; repeated sint32 extension_repeated_sint32 = 30002; repeated uint32 extension_repeated_uint32 = 30003; repeated int64 extension_repeated_int64 = 30004; repeated sint64 extension_repeated_sint64 = 30005; repeated uint64 extension_repeated_uint64 = 30006; repeated fixed32 extension_repeated_fixed32 = 30007; repeated sfixed32 extension_repeated_sfixed32 = 30008; repeated float extension_repeated_float = 30009; repeated fixed64 extension_repeated_fixed64 = 30010; repeated sfixed64 extension_repeated_sfixed64 = 30011; repeated double extension_repeated_double = 30012; repeated string extension_repeated_string = 30013; repeated bytes extension_repeated_bytes = 30014; repeated ChildEnum extension_repeated_child_enum = 30015; repeated ChildMessage extension_repeated_child_message = 30016; repeated NamedGroup extension_repeated_named_group = 30017; repeated SiblingEnum extension_repeated_sibling_enum = 30018; repeated SiblingMessage extension_repeated_sibling_message = 30019; repeated group ExtensionRepeatedGroup = 30020 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } } extensions 10000 to max; } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto2_20180125_92554152/000077500000000000000000000000001411250152500266725ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto2_20180125_92554152/test.pb.go000066400000000000000000004571571411250152500306230ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: proto2_20180125_92554152/test.proto /* Package proto2_20180125_92554152 is a generated protocol buffer package. It is generated from these files: proto2_20180125_92554152/test.proto It has these top-level messages: SiblingMessage Message */ package proto2_20180125_92554152 import proto "google.golang.org/protobuf/internal/protolegacy" import fmt "fmt" import math "math" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. // A compilation error at this line likely means your copy of the // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type SiblingEnum int32 const ( SiblingEnum_ALPHA SiblingEnum = 0 SiblingEnum_BRAVO SiblingEnum = 10 SiblingEnum_CHARLIE SiblingEnum = 200 ) var SiblingEnum_name = map[int32]string{ 0: "ALPHA", 10: "BRAVO", 200: "CHARLIE", } var SiblingEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 10, "CHARLIE": 200, } func (x SiblingEnum) Enum() *SiblingEnum { p := new(SiblingEnum) *p = x return p } func (x SiblingEnum) String() string { return proto.EnumName(SiblingEnum_name, int32(x)) } func (x *SiblingEnum) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(SiblingEnum_value, data, "SiblingEnum") if err != nil { return err } *x = SiblingEnum(value) return nil } func (SiblingEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } type Message_ChildEnum int32 const ( Message_ALPHA Message_ChildEnum = 0 Message_BRAVO Message_ChildEnum = 1 Message_CHARLIE Message_ChildEnum = 2 ) var Message_ChildEnum_name = map[int32]string{ 0: "ALPHA", 1: "BRAVO", 2: "CHARLIE", } var Message_ChildEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 1, "CHARLIE": 2, } func (x Message_ChildEnum) Enum() *Message_ChildEnum { p := new(Message_ChildEnum) *p = x return p } func (x Message_ChildEnum) String() string { return proto.EnumName(Message_ChildEnum_name, int32(x)) } func (x *Message_ChildEnum) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(Message_ChildEnum_value, data, "Message_ChildEnum") if err != nil { return err } *x = Message_ChildEnum(value) return nil } func (Message_ChildEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 0} } type SiblingMessage struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` F4 *Message `protobuf:"bytes,4,opt,name=f4" json:"f4,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *SiblingMessage) Reset() { *m = SiblingMessage{} } func (m *SiblingMessage) String() string { return proto.CompactTextString(m) } func (*SiblingMessage) ProtoMessage() {} func (*SiblingMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } func (m *SiblingMessage) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *SiblingMessage) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *SiblingMessage) GetF3() []string { if m != nil { return m.F3 } return nil } func (m *SiblingMessage) GetF4() *Message { if m != nil { return m.F4 } return nil } type Message struct { Namedgroup *Message_NamedGroup `protobuf:"group,1,opt,name=NamedGroup,json=namedgroup" json:"namedgroup,omitempty"` // Optional fields. OptionalBool *bool `protobuf:"varint,100,opt,name=optional_bool,json=optionalBool" json:"optional_bool,omitempty"` OptionalInt32 *int32 `protobuf:"varint,101,opt,name=optional_int32,json=optionalInt32" json:"optional_int32,omitempty"` OptionalSint32 *int32 `protobuf:"zigzag32,102,opt,name=optional_sint32,json=optionalSint32" json:"optional_sint32,omitempty"` OptionalUint32 *uint32 `protobuf:"varint,103,opt,name=optional_uint32,json=optionalUint32" json:"optional_uint32,omitempty"` OptionalInt64 *int64 `protobuf:"varint,104,opt,name=optional_int64,json=optionalInt64" json:"optional_int64,omitempty"` OptionalSint64 *int64 `protobuf:"zigzag64,105,opt,name=optional_sint64,json=optionalSint64" json:"optional_sint64,omitempty"` OptionalUint64 *uint64 `protobuf:"varint,106,opt,name=optional_uint64,json=optionalUint64" json:"optional_uint64,omitempty"` OptionalFixed32 *uint32 `protobuf:"fixed32,107,opt,name=optional_fixed32,json=optionalFixed32" json:"optional_fixed32,omitempty"` OptionalSfixed32 *int32 `protobuf:"fixed32,108,opt,name=optional_sfixed32,json=optionalSfixed32" json:"optional_sfixed32,omitempty"` OptionalFloat *float32 `protobuf:"fixed32,109,opt,name=optional_float,json=optionalFloat" json:"optional_float,omitempty"` OptionalFixed64 *uint64 `protobuf:"fixed64,110,opt,name=optional_fixed64,json=optionalFixed64" json:"optional_fixed64,omitempty"` OptionalSfixed64 *int64 `protobuf:"fixed64,111,opt,name=optional_sfixed64,json=optionalSfixed64" json:"optional_sfixed64,omitempty"` OptionalDouble *float64 `protobuf:"fixed64,112,opt,name=optional_double,json=optionalDouble" json:"optional_double,omitempty"` OptionalString *string `protobuf:"bytes,113,opt,name=optional_string,json=optionalString" json:"optional_string,omitempty"` OptionalBytes []byte `protobuf:"bytes,114,opt,name=optional_bytes,json=optionalBytes" json:"optional_bytes,omitempty"` OptionalChildEnum *Message_ChildEnum `protobuf:"varint,115,opt,name=optional_child_enum,json=optionalChildEnum,enum=google.golang.org.proto2_20180125.Message_ChildEnum" json:"optional_child_enum,omitempty"` OptionalChildMessage *Message_ChildMessage `protobuf:"bytes,116,opt,name=optional_child_message,json=optionalChildMessage" json:"optional_child_message,omitempty"` OptionalNamedGroup *Message_NamedGroup `protobuf:"bytes,117,opt,name=optional_named_group,json=optionalNamedGroup" json:"optional_named_group,omitempty"` OptionalSiblingEnum *SiblingEnum `protobuf:"varint,118,opt,name=optional_sibling_enum,json=optionalSiblingEnum,enum=google.golang.org.proto2_20180125.SiblingEnum" json:"optional_sibling_enum,omitempty"` OptionalSiblingMessage *SiblingMessage `protobuf:"bytes,119,opt,name=optional_sibling_message,json=optionalSiblingMessage" json:"optional_sibling_message,omitempty"` Optionalgroup *Message_OptionalGroup `protobuf:"group,120,opt,name=OptionalGroup,json=optionalgroup" json:"optionalgroup,omitempty"` // Optional default fields. DefaultedBool *bool `protobuf:"varint,200,opt,name=defaulted_bool,json=defaultedBool,def=1" json:"defaulted_bool,omitempty"` DefaultedInt32 *int32 `protobuf:"varint,201,opt,name=defaulted_int32,json=defaultedInt32,def=-12345" json:"defaulted_int32,omitempty"` DefaultedSint32 *int32 `protobuf:"zigzag32,202,opt,name=defaulted_sint32,json=defaultedSint32,def=-3200" json:"defaulted_sint32,omitempty"` DefaultedUint32 *uint32 `protobuf:"varint,203,opt,name=defaulted_uint32,json=defaultedUint32,def=3200" json:"defaulted_uint32,omitempty"` DefaultedInt64 *int64 `protobuf:"varint,204,opt,name=defaulted_int64,json=defaultedInt64,def=-123456789" json:"defaulted_int64,omitempty"` DefaultedSint64 *int64 `protobuf:"zigzag64,205,opt,name=defaulted_sint64,json=defaultedSint64,def=-6400" json:"defaulted_sint64,omitempty"` DefaultedUint64 *uint64 `protobuf:"varint,206,opt,name=defaulted_uint64,json=defaultedUint64,def=6400" json:"defaulted_uint64,omitempty"` DefaultedFixed32 *uint32 `protobuf:"fixed32,207,opt,name=defaulted_fixed32,json=defaultedFixed32,def=320000" json:"defaulted_fixed32,omitempty"` DefaultedSfixed32 *int32 `protobuf:"fixed32,208,opt,name=defaulted_sfixed32,json=defaultedSfixed32,def=-320000" json:"defaulted_sfixed32,omitempty"` DefaultedFloat *float32 `protobuf:"fixed32,209,opt,name=defaulted_float,json=defaultedFloat,def=3.14159" json:"defaulted_float,omitempty"` DefaultedFixed64 *uint64 `protobuf:"fixed64,210,opt,name=defaulted_fixed64,json=defaultedFixed64,def=640000" json:"defaulted_fixed64,omitempty"` DefaultedSfixed64 *int64 `protobuf:"fixed64,211,opt,name=defaulted_sfixed64,json=defaultedSfixed64,def=-640000" json:"defaulted_sfixed64,omitempty"` DefaultedDouble *float64 `protobuf:"fixed64,212,opt,name=defaulted_double,json=defaultedDouble,def=3.14159265359" json:"defaulted_double,omitempty"` DefaultedString *string `protobuf:"bytes,213,opt,name=defaulted_string,json=defaultedString,def=hello, \"world!\"\n" json:"defaulted_string,omitempty"` DefaultedBytes []byte `protobuf:"bytes,214,opt,name=defaulted_bytes,json=defaultedBytes,def=dead\\336\\255\\276\\357beef" json:"defaulted_bytes,omitempty"` DefaultedChildEnum *Message_ChildEnum `protobuf:"varint,215,opt,name=defaulted_child_enum,json=defaultedChildEnum,enum=google.golang.org.proto2_20180125.Message_ChildEnum,def=0" json:"defaulted_child_enum,omitempty"` DefaultedSiblingEnum *SiblingEnum `protobuf:"varint,216,opt,name=defaulted_sibling_enum,json=defaultedSiblingEnum,enum=google.golang.org.proto2_20180125.SiblingEnum,def=0" json:"defaulted_sibling_enum,omitempty"` // Required fields. RequiredBool *bool `protobuf:"varint,300,req,name=required_bool,json=requiredBool" json:"required_bool,omitempty"` RequiredInt32 *int32 `protobuf:"varint,301,req,name=required_int32,json=requiredInt32" json:"required_int32,omitempty"` RequiredSint32 *int32 `protobuf:"zigzag32,302,req,name=required_sint32,json=requiredSint32" json:"required_sint32,omitempty"` RequiredUint32 *uint32 `protobuf:"varint,303,req,name=required_uint32,json=requiredUint32" json:"required_uint32,omitempty"` RequiredInt64 *int64 `protobuf:"varint,304,req,name=required_int64,json=requiredInt64" json:"required_int64,omitempty"` RequiredSint64 *int64 `protobuf:"zigzag64,305,req,name=required_sint64,json=requiredSint64" json:"required_sint64,omitempty"` RequiredUint64 *uint64 `protobuf:"varint,306,req,name=required_uint64,json=requiredUint64" json:"required_uint64,omitempty"` RequiredFixed32 *uint32 `protobuf:"fixed32,307,req,name=required_fixed32,json=requiredFixed32" json:"required_fixed32,omitempty"` RequiredSfixed32 *int32 `protobuf:"fixed32,308,req,name=required_sfixed32,json=requiredSfixed32" json:"required_sfixed32,omitempty"` RequiredFloat *float32 `protobuf:"fixed32,309,req,name=required_float,json=requiredFloat" json:"required_float,omitempty"` RequiredFixed64 *uint64 `protobuf:"fixed64,310,req,name=required_fixed64,json=requiredFixed64" json:"required_fixed64,omitempty"` RequiredSfixed64 *int64 `protobuf:"fixed64,311,req,name=required_sfixed64,json=requiredSfixed64" json:"required_sfixed64,omitempty"` RequiredDouble *float64 `protobuf:"fixed64,312,req,name=required_double,json=requiredDouble" json:"required_double,omitempty"` RequiredString *string `protobuf:"bytes,313,req,name=required_string,json=requiredString" json:"required_string,omitempty"` RequiredBytes []byte `protobuf:"bytes,314,req,name=required_bytes,json=requiredBytes" json:"required_bytes,omitempty"` RequiredChildEnum *Message_ChildEnum `protobuf:"varint,315,req,name=required_child_enum,json=requiredChildEnum,enum=google.golang.org.proto2_20180125.Message_ChildEnum" json:"required_child_enum,omitempty"` RequiredChildMessage *Message_ChildMessage `protobuf:"bytes,316,req,name=required_child_message,json=requiredChildMessage" json:"required_child_message,omitempty"` RequiredNamedGroup *Message_NamedGroup `protobuf:"bytes,317,req,name=required_named_group,json=requiredNamedGroup" json:"required_named_group,omitempty"` RequiredSiblingEnum *SiblingEnum `protobuf:"varint,318,req,name=required_sibling_enum,json=requiredSiblingEnum,enum=google.golang.org.proto2_20180125.SiblingEnum" json:"required_sibling_enum,omitempty"` RequiredSiblingMessage *SiblingMessage `protobuf:"bytes,319,req,name=required_sibling_message,json=requiredSiblingMessage" json:"required_sibling_message,omitempty"` Requiredgroup *Message_RequiredGroup `protobuf:"group,320,req,name=RequiredGroup,json=requiredgroup" json:"requiredgroup,omitempty"` // Required default fields. RequiredDefaultedBool *bool `protobuf:"varint,400,req,name=required_defaulted_bool,json=requiredDefaultedBool,def=1" json:"required_defaulted_bool,omitempty"` RequiredDefaultedInt32 *int32 `protobuf:"varint,401,req,name=required_defaulted_int32,json=requiredDefaultedInt32,def=-12345" json:"required_defaulted_int32,omitempty"` RequiredDefaultedSint32 *int32 `protobuf:"zigzag32,402,req,name=required_defaulted_sint32,json=requiredDefaultedSint32,def=-3200" json:"required_defaulted_sint32,omitempty"` RequiredDefaultedUint32 *uint32 `protobuf:"varint,403,req,name=required_defaulted_uint32,json=requiredDefaultedUint32,def=3200" json:"required_defaulted_uint32,omitempty"` RequiredDefaultedInt64 *int64 `protobuf:"varint,404,req,name=required_defaulted_int64,json=requiredDefaultedInt64,def=-123456789" json:"required_defaulted_int64,omitempty"` RequiredDefaultedSint64 *int64 `protobuf:"zigzag64,405,req,name=required_defaulted_sint64,json=requiredDefaultedSint64,def=-6400" json:"required_defaulted_sint64,omitempty"` RequiredDefaultedUint64 *uint64 `protobuf:"varint,406,req,name=required_defaulted_uint64,json=requiredDefaultedUint64,def=6400" json:"required_defaulted_uint64,omitempty"` RequiredDefaultedFixed32 *uint32 `protobuf:"fixed32,407,req,name=required_defaulted_fixed32,json=requiredDefaultedFixed32,def=320000" json:"required_defaulted_fixed32,omitempty"` RequiredDefaultedSfixed32 *int32 `protobuf:"fixed32,408,req,name=required_defaulted_sfixed32,json=requiredDefaultedSfixed32,def=-320000" json:"required_defaulted_sfixed32,omitempty"` RequiredDefaultedFloat *float32 `protobuf:"fixed32,409,req,name=required_defaulted_float,json=requiredDefaultedFloat,def=3.14159" json:"required_defaulted_float,omitempty"` RequiredDefaultedFixed64 *uint64 `protobuf:"fixed64,410,req,name=required_defaulted_fixed64,json=requiredDefaultedFixed64,def=640000" json:"required_defaulted_fixed64,omitempty"` RequiredDefaultedSfixed64 *int64 `protobuf:"fixed64,411,req,name=required_defaulted_sfixed64,json=requiredDefaultedSfixed64,def=-640000" json:"required_defaulted_sfixed64,omitempty"` RequiredDefaultedDouble *float64 `protobuf:"fixed64,412,req,name=required_defaulted_double,json=requiredDefaultedDouble,def=3.14159265359" json:"required_defaulted_double,omitempty"` RequiredDefaultedString *string `protobuf:"bytes,413,req,name=required_defaulted_string,json=requiredDefaultedString,def=hello, \"world!\"\n" json:"required_defaulted_string,omitempty"` RequiredDefaultedBytes []byte `protobuf:"bytes,414,req,name=required_defaulted_bytes,json=requiredDefaultedBytes,def=dead\\336\\255\\276\\357beef" json:"required_defaulted_bytes,omitempty"` RequiredDefaultedChildEnum *Message_ChildEnum `protobuf:"varint,415,req,name=required_defaulted_child_enum,json=requiredDefaultedChildEnum,enum=google.golang.org.proto2_20180125.Message_ChildEnum,def=0" json:"required_defaulted_child_enum,omitempty"` RequiredDefaultedSiblingEnum *SiblingEnum `protobuf:"varint,416,req,name=required_defaulted_sibling_enum,json=requiredDefaultedSiblingEnum,enum=google.golang.org.proto2_20180125.SiblingEnum,def=0" json:"required_defaulted_sibling_enum,omitempty"` // Repeated fields. RepeatedBool []bool `protobuf:"varint,500,rep,name=repeated_bool,json=repeatedBool" json:"repeated_bool,omitempty"` RepeatedInt32 []int32 `protobuf:"varint,501,rep,name=repeated_int32,json=repeatedInt32" json:"repeated_int32,omitempty"` RepeatedSint32 []int32 `protobuf:"zigzag32,502,rep,name=repeated_sint32,json=repeatedSint32" json:"repeated_sint32,omitempty"` RepeatedUint32 []uint32 `protobuf:"varint,503,rep,name=repeated_uint32,json=repeatedUint32" json:"repeated_uint32,omitempty"` RepeatedInt64 []int64 `protobuf:"varint,504,rep,name=repeated_int64,json=repeatedInt64" json:"repeated_int64,omitempty"` RepeatedSint64 []int64 `protobuf:"zigzag64,505,rep,name=repeated_sint64,json=repeatedSint64" json:"repeated_sint64,omitempty"` RepeatedUint64 []uint64 `protobuf:"varint,506,rep,name=repeated_uint64,json=repeatedUint64" json:"repeated_uint64,omitempty"` RepeatedFixed32 []uint32 `protobuf:"fixed32,507,rep,name=repeated_fixed32,json=repeatedFixed32" json:"repeated_fixed32,omitempty"` RepeatedSfixed32 []int32 `protobuf:"fixed32,508,rep,name=repeated_sfixed32,json=repeatedSfixed32" json:"repeated_sfixed32,omitempty"` RepeatedFloat []float32 `protobuf:"fixed32,509,rep,name=repeated_float,json=repeatedFloat" json:"repeated_float,omitempty"` RepeatedFixed64 []uint64 `protobuf:"fixed64,510,rep,name=repeated_fixed64,json=repeatedFixed64" json:"repeated_fixed64,omitempty"` RepeatedSfixed64 []int64 `protobuf:"fixed64,511,rep,name=repeated_sfixed64,json=repeatedSfixed64" json:"repeated_sfixed64,omitempty"` RepeatedDouble []float64 `protobuf:"fixed64,512,rep,name=repeated_double,json=repeatedDouble" json:"repeated_double,omitempty"` RepeatedString []string `protobuf:"bytes,513,rep,name=repeated_string,json=repeatedString" json:"repeated_string,omitempty"` RepeatedBytes [][]byte `protobuf:"bytes,514,rep,name=repeated_bytes,json=repeatedBytes" json:"repeated_bytes,omitempty"` RepeatedChildEnum []Message_ChildEnum `protobuf:"varint,515,rep,name=repeated_child_enum,json=repeatedChildEnum,enum=google.golang.org.proto2_20180125.Message_ChildEnum" json:"repeated_child_enum,omitempty"` RepeatedChildMessage []*Message_ChildMessage `protobuf:"bytes,516,rep,name=repeated_child_message,json=repeatedChildMessage" json:"repeated_child_message,omitempty"` RepeatedNamedGroup []*Message_NamedGroup `protobuf:"bytes,517,rep,name=repeated_named_group,json=repeatedNamedGroup" json:"repeated_named_group,omitempty"` RepeatedSiblingEnum []SiblingEnum `protobuf:"varint,518,rep,name=repeated_sibling_enum,json=repeatedSiblingEnum,enum=google.golang.org.proto2_20180125.SiblingEnum" json:"repeated_sibling_enum,omitempty"` RepeatedSiblingMessage []*SiblingMessage `protobuf:"bytes,519,rep,name=repeated_sibling_message,json=repeatedSiblingMessage" json:"repeated_sibling_message,omitempty"` Repeatedgroup []*Message_RepeatedGroup `protobuf:"group,520,rep,name=RepeatedGroup,json=repeatedgroup" json:"repeatedgroup,omitempty"` // Map fields. MapBoolBool map[bool]bool `protobuf:"bytes,600,rep,name=map_bool_bool,json=mapBoolBool" json:"map_bool_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolInt32 map[bool]int32 `protobuf:"bytes,601,rep,name=map_bool_int32,json=mapBoolInt32" json:"map_bool_int32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolSint32 map[bool]int32 `protobuf:"bytes,602,rep,name=map_bool_sint32,json=mapBoolSint32" json:"map_bool_sint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` MapBoolUint32 map[bool]uint32 `protobuf:"bytes,603,rep,name=map_bool_uint32,json=mapBoolUint32" json:"map_bool_uint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolInt64 map[bool]int64 `protobuf:"bytes,604,rep,name=map_bool_int64,json=mapBoolInt64" json:"map_bool_int64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolSint64 map[bool]int64 `protobuf:"bytes,605,rep,name=map_bool_sint64,json=mapBoolSint64" json:"map_bool_sint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` MapBoolUint64 map[bool]uint64 `protobuf:"bytes,606,rep,name=map_bool_uint64,json=mapBoolUint64" json:"map_bool_uint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolFixed32 map[bool]uint32 `protobuf:"bytes,607,rep,name=map_bool_fixed32,json=mapBoolFixed32" json:"map_bool_fixed32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolSfixed32 map[bool]int32 `protobuf:"bytes,608,rep,name=map_bool_sfixed32,json=mapBoolSfixed32" json:"map_bool_sfixed32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolFloat map[bool]float32 `protobuf:"bytes,609,rep,name=map_bool_float,json=mapBoolFloat" json:"map_bool_float,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolFixed64 map[bool]uint64 `protobuf:"bytes,610,rep,name=map_bool_fixed64,json=mapBoolFixed64" json:"map_bool_fixed64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolSfixed64 map[bool]int64 `protobuf:"bytes,611,rep,name=map_bool_sfixed64,json=mapBoolSfixed64" json:"map_bool_sfixed64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolDouble map[bool]float64 `protobuf:"bytes,612,rep,name=map_bool_double,json=mapBoolDouble" json:"map_bool_double,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolString map[bool]string `protobuf:"bytes,613,rep,name=map_bool_string,json=mapBoolString" json:"map_bool_string,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolBytes map[bool][]byte `protobuf:"bytes,614,rep,name=map_bool_bytes,json=mapBoolBytes" json:"map_bool_bytes,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolChildEnum map[bool]Message_ChildEnum `protobuf:"bytes,615,rep,name=map_bool_child_enum,json=mapBoolChildEnum" json:"map_bool_child_enum,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.golang.org.proto2_20180125.Message_ChildEnum"` MapBoolChildMessage map[bool]*Message_ChildMessage `protobuf:"bytes,616,rep,name=map_bool_child_message,json=mapBoolChildMessage" json:"map_bool_child_message,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolNamedGroup map[bool]*Message_NamedGroup `protobuf:"bytes,617,rep,name=map_bool_named_group,json=mapBoolNamedGroup" json:"map_bool_named_group,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolSiblingEnum map[bool]SiblingEnum `protobuf:"bytes,618,rep,name=map_bool_sibling_enum,json=mapBoolSiblingEnum" json:"map_bool_sibling_enum,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.golang.org.proto2_20180125.SiblingEnum"` MapBoolSiblingMessage map[bool]*SiblingMessage `protobuf:"bytes,619,rep,name=map_bool_sibling_message,json=mapBoolSiblingMessage" json:"map_bool_sibling_message,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapInt32Bool map[int32]bool `protobuf:"bytes,620,rep,name=map_int32_bool,json=mapInt32Bool" json:"map_int32_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapSint32Bool map[int32]bool `protobuf:"bytes,621,rep,name=map_sint32_bool,json=mapSint32Bool" json:"map_sint32_bool,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint32Bool map[uint32]bool `protobuf:"bytes,622,rep,name=map_uint32_bool,json=mapUint32Bool" json:"map_uint32_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapInt64Bool map[int64]bool `protobuf:"bytes,623,rep,name=map_int64_bool,json=mapInt64Bool" json:"map_int64_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapSint64Bool map[int64]bool `protobuf:"bytes,624,rep,name=map_sint64_bool,json=mapSint64Bool" json:"map_sint64_bool,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint64Bool map[uint64]bool `protobuf:"bytes,625,rep,name=map_uint64_bool,json=mapUint64Bool" json:"map_uint64_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapFixed32Bool map[uint32]bool `protobuf:"bytes,626,rep,name=map_fixed32_bool,json=mapFixed32Bool" json:"map_fixed32_bool,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapStringBool map[string]bool `protobuf:"bytes,627,rep,name=map_string_bool,json=mapStringBool" json:"map_string_bool,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // Oneof fields. // // Types that are valid to be assigned to OneofUnion: // *Message_OneofBool // *Message_OneofInt32 // *Message_OneofSint32 // *Message_OneofUint32 // *Message_OneofInt64 // *Message_OneofSint64 // *Message_OneofUint64 // *Message_OneofFixed32 // *Message_OneofSfixed32 // *Message_OneofFloat // *Message_OneofFixed64 // *Message_OneofSfixed64 // *Message_OneofDouble // *Message_OneofString // *Message_OneofBytes // *Message_OneofChildEnum // *Message_OneofChildMessage // *Message_OneofNamedGroup // *Message_OneofSiblingEnum // *Message_OneofSiblingMessage // *Message_Oneofgroup // *Message_OneofString1 // *Message_OneofString2 // *Message_OneofString3 OneofUnion isMessage_OneofUnion `protobuf_oneof:"oneof_union"` // Oneof default fields. // // Types that are valid to be assigned to OneofDefaultedUnion: // *Message_OneofDefaultedBool // *Message_OneofDefaultedInt32 // *Message_OneofDefaultedSint32 // *Message_OneofDefaultedUint32 // *Message_OneofDefaultedInt64 // *Message_OneofDefaultedSint64 // *Message_OneofDefaultedUint64 // *Message_OneofDefaultedFixed32 // *Message_OneofDefaultedSfixed32 // *Message_OneofDefaultedFloat // *Message_OneofDefaultedFixed64 // *Message_OneofDefaultedSfixed64 // *Message_OneofDefaultedDouble // *Message_OneofDefaultedString // *Message_OneofDefaultedBytes // *Message_OneofDefaultedChildEnum // *Message_OneofDefaultedSiblingEnum OneofDefaultedUnion isMessage_OneofDefaultedUnion `protobuf_oneof:"oneof_defaulted_union"` proto.XXX_InternalExtensions `json:"-"` XXX_unrecognized []byte `json:"-"` } func (m *Message) Reset() { *m = Message{} } func (m *Message) String() string { return proto.CompactTextString(m) } func (*Message) ProtoMessage() {} func (*Message) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } var extRange_Message = []proto.ExtensionRange{ {10000, 536870911}, } func (*Message) ExtensionRangeArray() []proto.ExtensionRange { return extRange_Message } const Default_Message_DefaultedBool bool = true const Default_Message_DefaultedInt32 int32 = -12345 const Default_Message_DefaultedSint32 int32 = -3200 const Default_Message_DefaultedUint32 uint32 = 3200 const Default_Message_DefaultedInt64 int64 = -123456789 const Default_Message_DefaultedSint64 int64 = -6400 const Default_Message_DefaultedUint64 uint64 = 6400 const Default_Message_DefaultedFixed32 uint32 = 320000 const Default_Message_DefaultedSfixed32 int32 = -320000 const Default_Message_DefaultedFloat float32 = 3.14159 const Default_Message_DefaultedFixed64 uint64 = 640000 const Default_Message_DefaultedSfixed64 int64 = -640000 const Default_Message_DefaultedDouble float64 = 3.14159265359 const Default_Message_DefaultedString string = "hello, \"world!\"\n" var Default_Message_DefaultedBytes []byte = []byte("deadޭ\xbe\xefbeef") const Default_Message_DefaultedChildEnum Message_ChildEnum = Message_ALPHA const Default_Message_DefaultedSiblingEnum SiblingEnum = SiblingEnum_ALPHA const Default_Message_RequiredDefaultedBool bool = true const Default_Message_RequiredDefaultedInt32 int32 = -12345 const Default_Message_RequiredDefaultedSint32 int32 = -3200 const Default_Message_RequiredDefaultedUint32 uint32 = 3200 const Default_Message_RequiredDefaultedInt64 int64 = -123456789 const Default_Message_RequiredDefaultedSint64 int64 = -6400 const Default_Message_RequiredDefaultedUint64 uint64 = 6400 const Default_Message_RequiredDefaultedFixed32 uint32 = 320000 const Default_Message_RequiredDefaultedSfixed32 int32 = -320000 const Default_Message_RequiredDefaultedFloat float32 = 3.14159 const Default_Message_RequiredDefaultedFixed64 uint64 = 640000 const Default_Message_RequiredDefaultedSfixed64 int64 = -640000 const Default_Message_RequiredDefaultedDouble float64 = 3.14159265359 const Default_Message_RequiredDefaultedString string = "hello, \"world!\"\n" var Default_Message_RequiredDefaultedBytes []byte = []byte("deadޭ\xbe\xefbeef") const Default_Message_RequiredDefaultedChildEnum Message_ChildEnum = Message_ALPHA const Default_Message_RequiredDefaultedSiblingEnum SiblingEnum = SiblingEnum_ALPHA const Default_Message_OneofDefaultedBool bool = true const Default_Message_OneofDefaultedInt32 int32 = -12345 const Default_Message_OneofDefaultedSint32 int32 = -3200 const Default_Message_OneofDefaultedUint32 uint32 = 3200 const Default_Message_OneofDefaultedInt64 int64 = -123456789 const Default_Message_OneofDefaultedSint64 int64 = -6400 const Default_Message_OneofDefaultedUint64 uint64 = 6400 const Default_Message_OneofDefaultedFixed32 uint32 = 320000 const Default_Message_OneofDefaultedSfixed32 int32 = -320000 const Default_Message_OneofDefaultedFloat float32 = 3.14159 const Default_Message_OneofDefaultedFixed64 uint64 = 640000 const Default_Message_OneofDefaultedSfixed64 int64 = -640000 const Default_Message_OneofDefaultedDouble float64 = 3.14159265359 const Default_Message_OneofDefaultedString string = "hello, \"world!\"\n" var Default_Message_OneofDefaultedBytes []byte = []byte("deadޭ\xbe\xefbeef") const Default_Message_OneofDefaultedChildEnum Message_ChildEnum = Message_ALPHA const Default_Message_OneofDefaultedSiblingEnum SiblingEnum = SiblingEnum_ALPHA type isMessage_OneofUnion interface{ isMessage_OneofUnion() } type isMessage_OneofDefaultedUnion interface{ isMessage_OneofDefaultedUnion() } type Message_OneofBool struct { OneofBool bool `protobuf:"varint,700,opt,name=oneof_bool,json=oneofBool,oneof"` } type Message_OneofInt32 struct { OneofInt32 int32 `protobuf:"varint,701,opt,name=oneof_int32,json=oneofInt32,oneof"` } type Message_OneofSint32 struct { OneofSint32 int32 `protobuf:"zigzag32,702,opt,name=oneof_sint32,json=oneofSint32,oneof"` } type Message_OneofUint32 struct { OneofUint32 uint32 `protobuf:"varint,703,opt,name=oneof_uint32,json=oneofUint32,oneof"` } type Message_OneofInt64 struct { OneofInt64 int64 `protobuf:"varint,704,opt,name=oneof_int64,json=oneofInt64,oneof"` } type Message_OneofSint64 struct { OneofSint64 int64 `protobuf:"zigzag64,705,opt,name=oneof_sint64,json=oneofSint64,oneof"` } type Message_OneofUint64 struct { OneofUint64 uint64 `protobuf:"varint,706,opt,name=oneof_uint64,json=oneofUint64,oneof"` } type Message_OneofFixed32 struct { OneofFixed32 uint32 `protobuf:"fixed32,707,opt,name=oneof_fixed32,json=oneofFixed32,oneof"` } type Message_OneofSfixed32 struct { OneofSfixed32 int32 `protobuf:"fixed32,708,opt,name=oneof_sfixed32,json=oneofSfixed32,oneof"` } type Message_OneofFloat struct { OneofFloat float32 `protobuf:"fixed32,709,opt,name=oneof_float,json=oneofFloat,oneof"` } type Message_OneofFixed64 struct { OneofFixed64 uint64 `protobuf:"fixed64,710,opt,name=oneof_fixed64,json=oneofFixed64,oneof"` } type Message_OneofSfixed64 struct { OneofSfixed64 int64 `protobuf:"fixed64,711,opt,name=oneof_sfixed64,json=oneofSfixed64,oneof"` } type Message_OneofDouble struct { OneofDouble float64 `protobuf:"fixed64,712,opt,name=oneof_double,json=oneofDouble,oneof"` } type Message_OneofString struct { OneofString string `protobuf:"bytes,713,opt,name=oneof_string,json=oneofString,oneof"` } type Message_OneofBytes struct { OneofBytes []byte `protobuf:"bytes,714,opt,name=oneof_bytes,json=oneofBytes,oneof"` } type Message_OneofChildEnum struct { OneofChildEnum Message_ChildEnum `protobuf:"varint,715,opt,name=oneof_child_enum,json=oneofChildEnum,enum=google.golang.org.proto2_20180125.Message_ChildEnum,oneof"` } type Message_OneofChildMessage struct { OneofChildMessage *Message_ChildMessage `protobuf:"bytes,716,opt,name=oneof_child_message,json=oneofChildMessage,oneof"` } type Message_OneofNamedGroup struct { OneofNamedGroup *Message_NamedGroup `protobuf:"bytes,717,opt,name=oneof_named_group,json=oneofNamedGroup,oneof"` } type Message_OneofSiblingEnum struct { OneofSiblingEnum SiblingEnum `protobuf:"varint,718,opt,name=oneof_sibling_enum,json=oneofSiblingEnum,enum=google.golang.org.proto2_20180125.SiblingEnum,oneof"` } type Message_OneofSiblingMessage struct { OneofSiblingMessage *SiblingMessage `protobuf:"bytes,719,opt,name=oneof_sibling_message,json=oneofSiblingMessage,oneof"` } type Message_Oneofgroup struct { Oneofgroup *Message_OneofGroup `protobuf:"group,720,opt,name=OneofGroup,json=oneofgroup,oneof"` } type Message_OneofString1 struct { OneofString1 string `protobuf:"bytes,721,opt,name=oneof_string1,json=oneofString1,oneof"` } type Message_OneofString2 struct { OneofString2 string `protobuf:"bytes,722,opt,name=oneof_string2,json=oneofString2,oneof"` } type Message_OneofString3 struct { OneofString3 string `protobuf:"bytes,723,opt,name=oneof_string3,json=oneofString3,oneof"` } type Message_OneofDefaultedBool struct { OneofDefaultedBool bool `protobuf:"varint,800,opt,name=oneof_defaulted_bool,json=oneofDefaultedBool,oneof,def=1"` } type Message_OneofDefaultedInt32 struct { OneofDefaultedInt32 int32 `protobuf:"varint,801,opt,name=oneof_defaulted_int32,json=oneofDefaultedInt32,oneof,def=-12345"` } type Message_OneofDefaultedSint32 struct { OneofDefaultedSint32 int32 `protobuf:"zigzag32,802,opt,name=oneof_defaulted_sint32,json=oneofDefaultedSint32,oneof,def=-3200"` } type Message_OneofDefaultedUint32 struct { OneofDefaultedUint32 uint32 `protobuf:"varint,803,opt,name=oneof_defaulted_uint32,json=oneofDefaultedUint32,oneof,def=3200"` } type Message_OneofDefaultedInt64 struct { OneofDefaultedInt64 int64 `protobuf:"varint,804,opt,name=oneof_defaulted_int64,json=oneofDefaultedInt64,oneof,def=-123456789"` } type Message_OneofDefaultedSint64 struct { OneofDefaultedSint64 int64 `protobuf:"zigzag64,805,opt,name=oneof_defaulted_sint64,json=oneofDefaultedSint64,oneof,def=-6400"` } type Message_OneofDefaultedUint64 struct { OneofDefaultedUint64 uint64 `protobuf:"varint,806,opt,name=oneof_defaulted_uint64,json=oneofDefaultedUint64,oneof,def=6400"` } type Message_OneofDefaultedFixed32 struct { OneofDefaultedFixed32 uint32 `protobuf:"fixed32,807,opt,name=oneof_defaulted_fixed32,json=oneofDefaultedFixed32,oneof,def=320000"` } type Message_OneofDefaultedSfixed32 struct { OneofDefaultedSfixed32 int32 `protobuf:"fixed32,808,opt,name=oneof_defaulted_sfixed32,json=oneofDefaultedSfixed32,oneof,def=-320000"` } type Message_OneofDefaultedFloat struct { OneofDefaultedFloat float32 `protobuf:"fixed32,809,opt,name=oneof_defaulted_float,json=oneofDefaultedFloat,oneof,def=3.14159"` } type Message_OneofDefaultedFixed64 struct { OneofDefaultedFixed64 uint64 `protobuf:"fixed64,810,opt,name=oneof_defaulted_fixed64,json=oneofDefaultedFixed64,oneof,def=640000"` } type Message_OneofDefaultedSfixed64 struct { OneofDefaultedSfixed64 int64 `protobuf:"fixed64,811,opt,name=oneof_defaulted_sfixed64,json=oneofDefaultedSfixed64,oneof,def=-640000"` } type Message_OneofDefaultedDouble struct { OneofDefaultedDouble float64 `protobuf:"fixed64,812,opt,name=oneof_defaulted_double,json=oneofDefaultedDouble,oneof,def=3.14159265359"` } type Message_OneofDefaultedString struct { OneofDefaultedString string `protobuf:"bytes,813,opt,name=oneof_defaulted_string,json=oneofDefaultedString,oneof,def=hello, \"world!\"\n"` } type Message_OneofDefaultedBytes struct { OneofDefaultedBytes []byte `protobuf:"bytes,814,opt,name=oneof_defaulted_bytes,json=oneofDefaultedBytes,oneof,def=dead\\336\\255\\276\\357beef"` } type Message_OneofDefaultedChildEnum struct { OneofDefaultedChildEnum Message_ChildEnum `protobuf:"varint,815,opt,name=oneof_defaulted_child_enum,json=oneofDefaultedChildEnum,enum=google.golang.org.proto2_20180125.Message_ChildEnum,oneof,def=0"` } type Message_OneofDefaultedSiblingEnum struct { OneofDefaultedSiblingEnum SiblingEnum `protobuf:"varint,816,opt,name=oneof_defaulted_sibling_enum,json=oneofDefaultedSiblingEnum,enum=google.golang.org.proto2_20180125.SiblingEnum,oneof,def=0"` } func (*Message_OneofBool) isMessage_OneofUnion() {} func (*Message_OneofInt32) isMessage_OneofUnion() {} func (*Message_OneofSint32) isMessage_OneofUnion() {} func (*Message_OneofUint32) isMessage_OneofUnion() {} func (*Message_OneofInt64) isMessage_OneofUnion() {} func (*Message_OneofSint64) isMessage_OneofUnion() {} func (*Message_OneofUint64) isMessage_OneofUnion() {} func (*Message_OneofFixed32) isMessage_OneofUnion() {} func (*Message_OneofSfixed32) isMessage_OneofUnion() {} func (*Message_OneofFloat) isMessage_OneofUnion() {} func (*Message_OneofFixed64) isMessage_OneofUnion() {} func (*Message_OneofSfixed64) isMessage_OneofUnion() {} func (*Message_OneofDouble) isMessage_OneofUnion() {} func (*Message_OneofString) isMessage_OneofUnion() {} func (*Message_OneofBytes) isMessage_OneofUnion() {} func (*Message_OneofChildEnum) isMessage_OneofUnion() {} func (*Message_OneofChildMessage) isMessage_OneofUnion() {} func (*Message_OneofNamedGroup) isMessage_OneofUnion() {} func (*Message_OneofSiblingEnum) isMessage_OneofUnion() {} func (*Message_OneofSiblingMessage) isMessage_OneofUnion() {} func (*Message_Oneofgroup) isMessage_OneofUnion() {} func (*Message_OneofString1) isMessage_OneofUnion() {} func (*Message_OneofString2) isMessage_OneofUnion() {} func (*Message_OneofString3) isMessage_OneofUnion() {} func (*Message_OneofDefaultedBool) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedInt32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSint32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedUint32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedInt64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSint64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedUint64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedFixed32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSfixed32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedFloat) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedFixed64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSfixed64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedDouble) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedString) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedBytes) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedChildEnum) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSiblingEnum) isMessage_OneofDefaultedUnion() {} func (m *Message) GetOneofUnion() isMessage_OneofUnion { if m != nil { return m.OneofUnion } return nil } func (m *Message) GetOneofDefaultedUnion() isMessage_OneofDefaultedUnion { if m != nil { return m.OneofDefaultedUnion } return nil } func (m *Message) GetNamedgroup() *Message_NamedGroup { if m != nil { return m.Namedgroup } return nil } func (m *Message) GetOptionalBool() bool { if m != nil && m.OptionalBool != nil { return *m.OptionalBool } return false } func (m *Message) GetOptionalInt32() int32 { if m != nil && m.OptionalInt32 != nil { return *m.OptionalInt32 } return 0 } func (m *Message) GetOptionalSint32() int32 { if m != nil && m.OptionalSint32 != nil { return *m.OptionalSint32 } return 0 } func (m *Message) GetOptionalUint32() uint32 { if m != nil && m.OptionalUint32 != nil { return *m.OptionalUint32 } return 0 } func (m *Message) GetOptionalInt64() int64 { if m != nil && m.OptionalInt64 != nil { return *m.OptionalInt64 } return 0 } func (m *Message) GetOptionalSint64() int64 { if m != nil && m.OptionalSint64 != nil { return *m.OptionalSint64 } return 0 } func (m *Message) GetOptionalUint64() uint64 { if m != nil && m.OptionalUint64 != nil { return *m.OptionalUint64 } return 0 } func (m *Message) GetOptionalFixed32() uint32 { if m != nil && m.OptionalFixed32 != nil { return *m.OptionalFixed32 } return 0 } func (m *Message) GetOptionalSfixed32() int32 { if m != nil && m.OptionalSfixed32 != nil { return *m.OptionalSfixed32 } return 0 } func (m *Message) GetOptionalFloat() float32 { if m != nil && m.OptionalFloat != nil { return *m.OptionalFloat } return 0 } func (m *Message) GetOptionalFixed64() uint64 { if m != nil && m.OptionalFixed64 != nil { return *m.OptionalFixed64 } return 0 } func (m *Message) GetOptionalSfixed64() int64 { if m != nil && m.OptionalSfixed64 != nil { return *m.OptionalSfixed64 } return 0 } func (m *Message) GetOptionalDouble() float64 { if m != nil && m.OptionalDouble != nil { return *m.OptionalDouble } return 0 } func (m *Message) GetOptionalString() string { if m != nil && m.OptionalString != nil { return *m.OptionalString } return "" } func (m *Message) GetOptionalBytes() []byte { if m != nil { return m.OptionalBytes } return nil } func (m *Message) GetOptionalChildEnum() Message_ChildEnum { if m != nil && m.OptionalChildEnum != nil { return *m.OptionalChildEnum } return Message_ALPHA } func (m *Message) GetOptionalChildMessage() *Message_ChildMessage { if m != nil { return m.OptionalChildMessage } return nil } func (m *Message) GetOptionalNamedGroup() *Message_NamedGroup { if m != nil { return m.OptionalNamedGroup } return nil } func (m *Message) GetOptionalSiblingEnum() SiblingEnum { if m != nil && m.OptionalSiblingEnum != nil { return *m.OptionalSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetOptionalSiblingMessage() *SiblingMessage { if m != nil { return m.OptionalSiblingMessage } return nil } func (m *Message) GetOptionalgroup() *Message_OptionalGroup { if m != nil { return m.Optionalgroup } return nil } func (m *Message) GetDefaultedBool() bool { if m != nil && m.DefaultedBool != nil { return *m.DefaultedBool } return Default_Message_DefaultedBool } func (m *Message) GetDefaultedInt32() int32 { if m != nil && m.DefaultedInt32 != nil { return *m.DefaultedInt32 } return Default_Message_DefaultedInt32 } func (m *Message) GetDefaultedSint32() int32 { if m != nil && m.DefaultedSint32 != nil { return *m.DefaultedSint32 } return Default_Message_DefaultedSint32 } func (m *Message) GetDefaultedUint32() uint32 { if m != nil && m.DefaultedUint32 != nil { return *m.DefaultedUint32 } return Default_Message_DefaultedUint32 } func (m *Message) GetDefaultedInt64() int64 { if m != nil && m.DefaultedInt64 != nil { return *m.DefaultedInt64 } return Default_Message_DefaultedInt64 } func (m *Message) GetDefaultedSint64() int64 { if m != nil && m.DefaultedSint64 != nil { return *m.DefaultedSint64 } return Default_Message_DefaultedSint64 } func (m *Message) GetDefaultedUint64() uint64 { if m != nil && m.DefaultedUint64 != nil { return *m.DefaultedUint64 } return Default_Message_DefaultedUint64 } func (m *Message) GetDefaultedFixed32() uint32 { if m != nil && m.DefaultedFixed32 != nil { return *m.DefaultedFixed32 } return Default_Message_DefaultedFixed32 } func (m *Message) GetDefaultedSfixed32() int32 { if m != nil && m.DefaultedSfixed32 != nil { return *m.DefaultedSfixed32 } return Default_Message_DefaultedSfixed32 } func (m *Message) GetDefaultedFloat() float32 { if m != nil && m.DefaultedFloat != nil { return *m.DefaultedFloat } return Default_Message_DefaultedFloat } func (m *Message) GetDefaultedFixed64() uint64 { if m != nil && m.DefaultedFixed64 != nil { return *m.DefaultedFixed64 } return Default_Message_DefaultedFixed64 } func (m *Message) GetDefaultedSfixed64() int64 { if m != nil && m.DefaultedSfixed64 != nil { return *m.DefaultedSfixed64 } return Default_Message_DefaultedSfixed64 } func (m *Message) GetDefaultedDouble() float64 { if m != nil && m.DefaultedDouble != nil { return *m.DefaultedDouble } return Default_Message_DefaultedDouble } func (m *Message) GetDefaultedString() string { if m != nil && m.DefaultedString != nil { return *m.DefaultedString } return Default_Message_DefaultedString } func (m *Message) GetDefaultedBytes() []byte { if m != nil && m.DefaultedBytes != nil { return m.DefaultedBytes } return append([]byte(nil), Default_Message_DefaultedBytes...) } func (m *Message) GetDefaultedChildEnum() Message_ChildEnum { if m != nil && m.DefaultedChildEnum != nil { return *m.DefaultedChildEnum } return Default_Message_DefaultedChildEnum } func (m *Message) GetDefaultedSiblingEnum() SiblingEnum { if m != nil && m.DefaultedSiblingEnum != nil { return *m.DefaultedSiblingEnum } return Default_Message_DefaultedSiblingEnum } func (m *Message) GetRequiredBool() bool { if m != nil && m.RequiredBool != nil { return *m.RequiredBool } return false } func (m *Message) GetRequiredInt32() int32 { if m != nil && m.RequiredInt32 != nil { return *m.RequiredInt32 } return 0 } func (m *Message) GetRequiredSint32() int32 { if m != nil && m.RequiredSint32 != nil { return *m.RequiredSint32 } return 0 } func (m *Message) GetRequiredUint32() uint32 { if m != nil && m.RequiredUint32 != nil { return *m.RequiredUint32 } return 0 } func (m *Message) GetRequiredInt64() int64 { if m != nil && m.RequiredInt64 != nil { return *m.RequiredInt64 } return 0 } func (m *Message) GetRequiredSint64() int64 { if m != nil && m.RequiredSint64 != nil { return *m.RequiredSint64 } return 0 } func (m *Message) GetRequiredUint64() uint64 { if m != nil && m.RequiredUint64 != nil { return *m.RequiredUint64 } return 0 } func (m *Message) GetRequiredFixed32() uint32 { if m != nil && m.RequiredFixed32 != nil { return *m.RequiredFixed32 } return 0 } func (m *Message) GetRequiredSfixed32() int32 { if m != nil && m.RequiredSfixed32 != nil { return *m.RequiredSfixed32 } return 0 } func (m *Message) GetRequiredFloat() float32 { if m != nil && m.RequiredFloat != nil { return *m.RequiredFloat } return 0 } func (m *Message) GetRequiredFixed64() uint64 { if m != nil && m.RequiredFixed64 != nil { return *m.RequiredFixed64 } return 0 } func (m *Message) GetRequiredSfixed64() int64 { if m != nil && m.RequiredSfixed64 != nil { return *m.RequiredSfixed64 } return 0 } func (m *Message) GetRequiredDouble() float64 { if m != nil && m.RequiredDouble != nil { return *m.RequiredDouble } return 0 } func (m *Message) GetRequiredString() string { if m != nil && m.RequiredString != nil { return *m.RequiredString } return "" } func (m *Message) GetRequiredBytes() []byte { if m != nil { return m.RequiredBytes } return nil } func (m *Message) GetRequiredChildEnum() Message_ChildEnum { if m != nil && m.RequiredChildEnum != nil { return *m.RequiredChildEnum } return Message_ALPHA } func (m *Message) GetRequiredChildMessage() *Message_ChildMessage { if m != nil { return m.RequiredChildMessage } return nil } func (m *Message) GetRequiredNamedGroup() *Message_NamedGroup { if m != nil { return m.RequiredNamedGroup } return nil } func (m *Message) GetRequiredSiblingEnum() SiblingEnum { if m != nil && m.RequiredSiblingEnum != nil { return *m.RequiredSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetRequiredSiblingMessage() *SiblingMessage { if m != nil { return m.RequiredSiblingMessage } return nil } func (m *Message) GetRequiredgroup() *Message_RequiredGroup { if m != nil { return m.Requiredgroup } return nil } func (m *Message) GetRequiredDefaultedBool() bool { if m != nil && m.RequiredDefaultedBool != nil { return *m.RequiredDefaultedBool } return Default_Message_RequiredDefaultedBool } func (m *Message) GetRequiredDefaultedInt32() int32 { if m != nil && m.RequiredDefaultedInt32 != nil { return *m.RequiredDefaultedInt32 } return Default_Message_RequiredDefaultedInt32 } func (m *Message) GetRequiredDefaultedSint32() int32 { if m != nil && m.RequiredDefaultedSint32 != nil { return *m.RequiredDefaultedSint32 } return Default_Message_RequiredDefaultedSint32 } func (m *Message) GetRequiredDefaultedUint32() uint32 { if m != nil && m.RequiredDefaultedUint32 != nil { return *m.RequiredDefaultedUint32 } return Default_Message_RequiredDefaultedUint32 } func (m *Message) GetRequiredDefaultedInt64() int64 { if m != nil && m.RequiredDefaultedInt64 != nil { return *m.RequiredDefaultedInt64 } return Default_Message_RequiredDefaultedInt64 } func (m *Message) GetRequiredDefaultedSint64() int64 { if m != nil && m.RequiredDefaultedSint64 != nil { return *m.RequiredDefaultedSint64 } return Default_Message_RequiredDefaultedSint64 } func (m *Message) GetRequiredDefaultedUint64() uint64 { if m != nil && m.RequiredDefaultedUint64 != nil { return *m.RequiredDefaultedUint64 } return Default_Message_RequiredDefaultedUint64 } func (m *Message) GetRequiredDefaultedFixed32() uint32 { if m != nil && m.RequiredDefaultedFixed32 != nil { return *m.RequiredDefaultedFixed32 } return Default_Message_RequiredDefaultedFixed32 } func (m *Message) GetRequiredDefaultedSfixed32() int32 { if m != nil && m.RequiredDefaultedSfixed32 != nil { return *m.RequiredDefaultedSfixed32 } return Default_Message_RequiredDefaultedSfixed32 } func (m *Message) GetRequiredDefaultedFloat() float32 { if m != nil && m.RequiredDefaultedFloat != nil { return *m.RequiredDefaultedFloat } return Default_Message_RequiredDefaultedFloat } func (m *Message) GetRequiredDefaultedFixed64() uint64 { if m != nil && m.RequiredDefaultedFixed64 != nil { return *m.RequiredDefaultedFixed64 } return Default_Message_RequiredDefaultedFixed64 } func (m *Message) GetRequiredDefaultedSfixed64() int64 { if m != nil && m.RequiredDefaultedSfixed64 != nil { return *m.RequiredDefaultedSfixed64 } return Default_Message_RequiredDefaultedSfixed64 } func (m *Message) GetRequiredDefaultedDouble() float64 { if m != nil && m.RequiredDefaultedDouble != nil { return *m.RequiredDefaultedDouble } return Default_Message_RequiredDefaultedDouble } func (m *Message) GetRequiredDefaultedString() string { if m != nil && m.RequiredDefaultedString != nil { return *m.RequiredDefaultedString } return Default_Message_RequiredDefaultedString } func (m *Message) GetRequiredDefaultedBytes() []byte { if m != nil && m.RequiredDefaultedBytes != nil { return m.RequiredDefaultedBytes } return append([]byte(nil), Default_Message_RequiredDefaultedBytes...) } func (m *Message) GetRequiredDefaultedChildEnum() Message_ChildEnum { if m != nil && m.RequiredDefaultedChildEnum != nil { return *m.RequiredDefaultedChildEnum } return Default_Message_RequiredDefaultedChildEnum } func (m *Message) GetRequiredDefaultedSiblingEnum() SiblingEnum { if m != nil && m.RequiredDefaultedSiblingEnum != nil { return *m.RequiredDefaultedSiblingEnum } return Default_Message_RequiredDefaultedSiblingEnum } func (m *Message) GetRepeatedBool() []bool { if m != nil { return m.RepeatedBool } return nil } func (m *Message) GetRepeatedInt32() []int32 { if m != nil { return m.RepeatedInt32 } return nil } func (m *Message) GetRepeatedSint32() []int32 { if m != nil { return m.RepeatedSint32 } return nil } func (m *Message) GetRepeatedUint32() []uint32 { if m != nil { return m.RepeatedUint32 } return nil } func (m *Message) GetRepeatedInt64() []int64 { if m != nil { return m.RepeatedInt64 } return nil } func (m *Message) GetRepeatedSint64() []int64 { if m != nil { return m.RepeatedSint64 } return nil } func (m *Message) GetRepeatedUint64() []uint64 { if m != nil { return m.RepeatedUint64 } return nil } func (m *Message) GetRepeatedFixed32() []uint32 { if m != nil { return m.RepeatedFixed32 } return nil } func (m *Message) GetRepeatedSfixed32() []int32 { if m != nil { return m.RepeatedSfixed32 } return nil } func (m *Message) GetRepeatedFloat() []float32 { if m != nil { return m.RepeatedFloat } return nil } func (m *Message) GetRepeatedFixed64() []uint64 { if m != nil { return m.RepeatedFixed64 } return nil } func (m *Message) GetRepeatedSfixed64() []int64 { if m != nil { return m.RepeatedSfixed64 } return nil } func (m *Message) GetRepeatedDouble() []float64 { if m != nil { return m.RepeatedDouble } return nil } func (m *Message) GetRepeatedString() []string { if m != nil { return m.RepeatedString } return nil } func (m *Message) GetRepeatedBytes() [][]byte { if m != nil { return m.RepeatedBytes } return nil } func (m *Message) GetRepeatedChildEnum() []Message_ChildEnum { if m != nil { return m.RepeatedChildEnum } return nil } func (m *Message) GetRepeatedChildMessage() []*Message_ChildMessage { if m != nil { return m.RepeatedChildMessage } return nil } func (m *Message) GetRepeatedNamedGroup() []*Message_NamedGroup { if m != nil { return m.RepeatedNamedGroup } return nil } func (m *Message) GetRepeatedSiblingEnum() []SiblingEnum { if m != nil { return m.RepeatedSiblingEnum } return nil } func (m *Message) GetRepeatedSiblingMessage() []*SiblingMessage { if m != nil { return m.RepeatedSiblingMessage } return nil } func (m *Message) GetRepeatedgroup() []*Message_RepeatedGroup { if m != nil { return m.Repeatedgroup } return nil } func (m *Message) GetMapBoolBool() map[bool]bool { if m != nil { return m.MapBoolBool } return nil } func (m *Message) GetMapBoolInt32() map[bool]int32 { if m != nil { return m.MapBoolInt32 } return nil } func (m *Message) GetMapBoolSint32() map[bool]int32 { if m != nil { return m.MapBoolSint32 } return nil } func (m *Message) GetMapBoolUint32() map[bool]uint32 { if m != nil { return m.MapBoolUint32 } return nil } func (m *Message) GetMapBoolInt64() map[bool]int64 { if m != nil { return m.MapBoolInt64 } return nil } func (m *Message) GetMapBoolSint64() map[bool]int64 { if m != nil { return m.MapBoolSint64 } return nil } func (m *Message) GetMapBoolUint64() map[bool]uint64 { if m != nil { return m.MapBoolUint64 } return nil } func (m *Message) GetMapBoolFixed32() map[bool]uint32 { if m != nil { return m.MapBoolFixed32 } return nil } func (m *Message) GetMapBoolSfixed32() map[bool]int32 { if m != nil { return m.MapBoolSfixed32 } return nil } func (m *Message) GetMapBoolFloat() map[bool]float32 { if m != nil { return m.MapBoolFloat } return nil } func (m *Message) GetMapBoolFixed64() map[bool]uint64 { if m != nil { return m.MapBoolFixed64 } return nil } func (m *Message) GetMapBoolSfixed64() map[bool]int64 { if m != nil { return m.MapBoolSfixed64 } return nil } func (m *Message) GetMapBoolDouble() map[bool]float64 { if m != nil { return m.MapBoolDouble } return nil } func (m *Message) GetMapBoolString() map[bool]string { if m != nil { return m.MapBoolString } return nil } func (m *Message) GetMapBoolBytes() map[bool][]byte { if m != nil { return m.MapBoolBytes } return nil } func (m *Message) GetMapBoolChildEnum() map[bool]Message_ChildEnum { if m != nil { return m.MapBoolChildEnum } return nil } func (m *Message) GetMapBoolChildMessage() map[bool]*Message_ChildMessage { if m != nil { return m.MapBoolChildMessage } return nil } func (m *Message) GetMapBoolNamedGroup() map[bool]*Message_NamedGroup { if m != nil { return m.MapBoolNamedGroup } return nil } func (m *Message) GetMapBoolSiblingEnum() map[bool]SiblingEnum { if m != nil { return m.MapBoolSiblingEnum } return nil } func (m *Message) GetMapBoolSiblingMessage() map[bool]*SiblingMessage { if m != nil { return m.MapBoolSiblingMessage } return nil } func (m *Message) GetMapInt32Bool() map[int32]bool { if m != nil { return m.MapInt32Bool } return nil } func (m *Message) GetMapSint32Bool() map[int32]bool { if m != nil { return m.MapSint32Bool } return nil } func (m *Message) GetMapUint32Bool() map[uint32]bool { if m != nil { return m.MapUint32Bool } return nil } func (m *Message) GetMapInt64Bool() map[int64]bool { if m != nil { return m.MapInt64Bool } return nil } func (m *Message) GetMapSint64Bool() map[int64]bool { if m != nil { return m.MapSint64Bool } return nil } func (m *Message) GetMapUint64Bool() map[uint64]bool { if m != nil { return m.MapUint64Bool } return nil } func (m *Message) GetMapFixed32Bool() map[uint32]bool { if m != nil { return m.MapFixed32Bool } return nil } func (m *Message) GetMapStringBool() map[string]bool { if m != nil { return m.MapStringBool } return nil } func (m *Message) GetOneofBool() bool { if x, ok := m.GetOneofUnion().(*Message_OneofBool); ok { return x.OneofBool } return false } func (m *Message) GetOneofInt32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofInt32); ok { return x.OneofInt32 } return 0 } func (m *Message) GetOneofSint32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSint32); ok { return x.OneofSint32 } return 0 } func (m *Message) GetOneofUint32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofUint32); ok { return x.OneofUint32 } return 0 } func (m *Message) GetOneofInt64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofInt64); ok { return x.OneofInt64 } return 0 } func (m *Message) GetOneofSint64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSint64); ok { return x.OneofSint64 } return 0 } func (m *Message) GetOneofUint64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofUint64); ok { return x.OneofUint64 } return 0 } func (m *Message) GetOneofFixed32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed32); ok { return x.OneofFixed32 } return 0 } func (m *Message) GetOneofSfixed32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed32); ok { return x.OneofSfixed32 } return 0 } func (m *Message) GetOneofFloat() float32 { if x, ok := m.GetOneofUnion().(*Message_OneofFloat); ok { return x.OneofFloat } return 0 } func (m *Message) GetOneofFixed64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed64); ok { return x.OneofFixed64 } return 0 } func (m *Message) GetOneofSfixed64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed64); ok { return x.OneofSfixed64 } return 0 } func (m *Message) GetOneofDouble() float64 { if x, ok := m.GetOneofUnion().(*Message_OneofDouble); ok { return x.OneofDouble } return 0 } func (m *Message) GetOneofString() string { if x, ok := m.GetOneofUnion().(*Message_OneofString); ok { return x.OneofString } return "" } func (m *Message) GetOneofBytes() []byte { if x, ok := m.GetOneofUnion().(*Message_OneofBytes); ok { return x.OneofBytes } return nil } func (m *Message) GetOneofChildEnum() Message_ChildEnum { if x, ok := m.GetOneofUnion().(*Message_OneofChildEnum); ok { return x.OneofChildEnum } return Message_ALPHA } func (m *Message) GetOneofChildMessage() *Message_ChildMessage { if x, ok := m.GetOneofUnion().(*Message_OneofChildMessage); ok { return x.OneofChildMessage } return nil } func (m *Message) GetOneofNamedGroup() *Message_NamedGroup { if x, ok := m.GetOneofUnion().(*Message_OneofNamedGroup); ok { return x.OneofNamedGroup } return nil } func (m *Message) GetOneofSiblingEnum() SiblingEnum { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingEnum); ok { return x.OneofSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetOneofSiblingMessage() *SiblingMessage { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingMessage); ok { return x.OneofSiblingMessage } return nil } func (m *Message) GetOneofgroup() *Message_OneofGroup { if x, ok := m.GetOneofUnion().(*Message_Oneofgroup); ok { return x.Oneofgroup } return nil } func (m *Message) GetOneofString1() string { if x, ok := m.GetOneofUnion().(*Message_OneofString1); ok { return x.OneofString1 } return "" } func (m *Message) GetOneofString2() string { if x, ok := m.GetOneofUnion().(*Message_OneofString2); ok { return x.OneofString2 } return "" } func (m *Message) GetOneofString3() string { if x, ok := m.GetOneofUnion().(*Message_OneofString3); ok { return x.OneofString3 } return "" } func (m *Message) GetOneofDefaultedBool() bool { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedBool); ok { return x.OneofDefaultedBool } return Default_Message_OneofDefaultedBool } func (m *Message) GetOneofDefaultedInt32() int32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedInt32); ok { return x.OneofDefaultedInt32 } return Default_Message_OneofDefaultedInt32 } func (m *Message) GetOneofDefaultedSint32() int32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSint32); ok { return x.OneofDefaultedSint32 } return Default_Message_OneofDefaultedSint32 } func (m *Message) GetOneofDefaultedUint32() uint32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedUint32); ok { return x.OneofDefaultedUint32 } return Default_Message_OneofDefaultedUint32 } func (m *Message) GetOneofDefaultedInt64() int64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedInt64); ok { return x.OneofDefaultedInt64 } return Default_Message_OneofDefaultedInt64 } func (m *Message) GetOneofDefaultedSint64() int64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSint64); ok { return x.OneofDefaultedSint64 } return Default_Message_OneofDefaultedSint64 } func (m *Message) GetOneofDefaultedUint64() uint64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedUint64); ok { return x.OneofDefaultedUint64 } return Default_Message_OneofDefaultedUint64 } func (m *Message) GetOneofDefaultedFixed32() uint32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedFixed32); ok { return x.OneofDefaultedFixed32 } return Default_Message_OneofDefaultedFixed32 } func (m *Message) GetOneofDefaultedSfixed32() int32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSfixed32); ok { return x.OneofDefaultedSfixed32 } return Default_Message_OneofDefaultedSfixed32 } func (m *Message) GetOneofDefaultedFloat() float32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedFloat); ok { return x.OneofDefaultedFloat } return Default_Message_OneofDefaultedFloat } func (m *Message) GetOneofDefaultedFixed64() uint64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedFixed64); ok { return x.OneofDefaultedFixed64 } return Default_Message_OneofDefaultedFixed64 } func (m *Message) GetOneofDefaultedSfixed64() int64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSfixed64); ok { return x.OneofDefaultedSfixed64 } return Default_Message_OneofDefaultedSfixed64 } func (m *Message) GetOneofDefaultedDouble() float64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedDouble); ok { return x.OneofDefaultedDouble } return Default_Message_OneofDefaultedDouble } func (m *Message) GetOneofDefaultedString() string { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedString); ok { return x.OneofDefaultedString } return Default_Message_OneofDefaultedString } func (m *Message) GetOneofDefaultedBytes() []byte { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedBytes); ok { return x.OneofDefaultedBytes } return append([]byte(nil), Default_Message_OneofDefaultedBytes...) } func (m *Message) GetOneofDefaultedChildEnum() Message_ChildEnum { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedChildEnum); ok { return x.OneofDefaultedChildEnum } return Default_Message_OneofDefaultedChildEnum } func (m *Message) GetOneofDefaultedSiblingEnum() SiblingEnum { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSiblingEnum); ok { return x.OneofDefaultedSiblingEnum } return Default_Message_OneofDefaultedSiblingEnum } // XXX_OneofFuncs is for the internal use of the proto package. func (*Message) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { return _Message_OneofMarshaler, _Message_OneofUnmarshaler, _Message_OneofSizer, []interface{}{ (*Message_OneofBool)(nil), (*Message_OneofInt32)(nil), (*Message_OneofSint32)(nil), (*Message_OneofUint32)(nil), (*Message_OneofInt64)(nil), (*Message_OneofSint64)(nil), (*Message_OneofUint64)(nil), (*Message_OneofFixed32)(nil), (*Message_OneofSfixed32)(nil), (*Message_OneofFloat)(nil), (*Message_OneofFixed64)(nil), (*Message_OneofSfixed64)(nil), (*Message_OneofDouble)(nil), (*Message_OneofString)(nil), (*Message_OneofBytes)(nil), (*Message_OneofChildEnum)(nil), (*Message_OneofChildMessage)(nil), (*Message_OneofNamedGroup)(nil), (*Message_OneofSiblingEnum)(nil), (*Message_OneofSiblingMessage)(nil), (*Message_Oneofgroup)(nil), (*Message_OneofString1)(nil), (*Message_OneofString2)(nil), (*Message_OneofString3)(nil), (*Message_OneofDefaultedBool)(nil), (*Message_OneofDefaultedInt32)(nil), (*Message_OneofDefaultedSint32)(nil), (*Message_OneofDefaultedUint32)(nil), (*Message_OneofDefaultedInt64)(nil), (*Message_OneofDefaultedSint64)(nil), (*Message_OneofDefaultedUint64)(nil), (*Message_OneofDefaultedFixed32)(nil), (*Message_OneofDefaultedSfixed32)(nil), (*Message_OneofDefaultedFloat)(nil), (*Message_OneofDefaultedFixed64)(nil), (*Message_OneofDefaultedSfixed64)(nil), (*Message_OneofDefaultedDouble)(nil), (*Message_OneofDefaultedString)(nil), (*Message_OneofDefaultedBytes)(nil), (*Message_OneofDefaultedChildEnum)(nil), (*Message_OneofDefaultedSiblingEnum)(nil), } } func _Message_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { m := msg.(*Message) // oneof_union switch x := m.OneofUnion.(type) { case *Message_OneofBool: t := uint64(0) if x.OneofBool { t = 1 } b.EncodeVarint(700<<3 | proto.WireVarint) b.EncodeVarint(t) case *Message_OneofInt32: b.EncodeVarint(701<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofInt32)) case *Message_OneofSint32: b.EncodeVarint(702<<3 | proto.WireVarint) b.EncodeZigzag32(uint64(x.OneofSint32)) case *Message_OneofUint32: b.EncodeVarint(703<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofUint32)) case *Message_OneofInt64: b.EncodeVarint(704<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofInt64)) case *Message_OneofSint64: b.EncodeVarint(705<<3 | proto.WireVarint) b.EncodeZigzag64(uint64(x.OneofSint64)) case *Message_OneofUint64: b.EncodeVarint(706<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofUint64)) case *Message_OneofFixed32: b.EncodeVarint(707<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofFixed32)) case *Message_OneofSfixed32: b.EncodeVarint(708<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofSfixed32)) case *Message_OneofFloat: b.EncodeVarint(709<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(math.Float32bits(x.OneofFloat))) case *Message_OneofFixed64: b.EncodeVarint(710<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofFixed64)) case *Message_OneofSfixed64: b.EncodeVarint(711<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofSfixed64)) case *Message_OneofDouble: b.EncodeVarint(712<<3 | proto.WireFixed64) b.EncodeFixed64(math.Float64bits(x.OneofDouble)) case *Message_OneofString: b.EncodeVarint(713<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString) case *Message_OneofBytes: b.EncodeVarint(714<<3 | proto.WireBytes) b.EncodeRawBytes(x.OneofBytes) case *Message_OneofChildEnum: b.EncodeVarint(715<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofChildEnum)) case *Message_OneofChildMessage: b.EncodeVarint(716<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofChildMessage); err != nil { return err } case *Message_OneofNamedGroup: b.EncodeVarint(717<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofNamedGroup); err != nil { return err } case *Message_OneofSiblingEnum: b.EncodeVarint(718<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofSiblingEnum)) case *Message_OneofSiblingMessage: b.EncodeVarint(719<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofSiblingMessage); err != nil { return err } case *Message_Oneofgroup: b.EncodeVarint(720<<3 | proto.WireStartGroup) if err := b.Marshal(x.Oneofgroup); err != nil { return err } b.EncodeVarint(720<<3 | proto.WireEndGroup) case *Message_OneofString1: b.EncodeVarint(721<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString1) case *Message_OneofString2: b.EncodeVarint(722<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString2) case *Message_OneofString3: b.EncodeVarint(723<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString3) case nil: default: return fmt.Errorf("Message.OneofUnion has unexpected type %T", x) } // oneof_defaulted_union switch x := m.OneofDefaultedUnion.(type) { case *Message_OneofDefaultedBool: t := uint64(0) if x.OneofDefaultedBool { t = 1 } b.EncodeVarint(800<<3 | proto.WireVarint) b.EncodeVarint(t) case *Message_OneofDefaultedInt32: b.EncodeVarint(801<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedInt32)) case *Message_OneofDefaultedSint32: b.EncodeVarint(802<<3 | proto.WireVarint) b.EncodeZigzag32(uint64(x.OneofDefaultedSint32)) case *Message_OneofDefaultedUint32: b.EncodeVarint(803<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedUint32)) case *Message_OneofDefaultedInt64: b.EncodeVarint(804<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedInt64)) case *Message_OneofDefaultedSint64: b.EncodeVarint(805<<3 | proto.WireVarint) b.EncodeZigzag64(uint64(x.OneofDefaultedSint64)) case *Message_OneofDefaultedUint64: b.EncodeVarint(806<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedUint64)) case *Message_OneofDefaultedFixed32: b.EncodeVarint(807<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofDefaultedFixed32)) case *Message_OneofDefaultedSfixed32: b.EncodeVarint(808<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofDefaultedSfixed32)) case *Message_OneofDefaultedFloat: b.EncodeVarint(809<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(math.Float32bits(x.OneofDefaultedFloat))) case *Message_OneofDefaultedFixed64: b.EncodeVarint(810<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofDefaultedFixed64)) case *Message_OneofDefaultedSfixed64: b.EncodeVarint(811<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofDefaultedSfixed64)) case *Message_OneofDefaultedDouble: b.EncodeVarint(812<<3 | proto.WireFixed64) b.EncodeFixed64(math.Float64bits(x.OneofDefaultedDouble)) case *Message_OneofDefaultedString: b.EncodeVarint(813<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofDefaultedString) case *Message_OneofDefaultedBytes: b.EncodeVarint(814<<3 | proto.WireBytes) b.EncodeRawBytes(x.OneofDefaultedBytes) case *Message_OneofDefaultedChildEnum: b.EncodeVarint(815<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedChildEnum)) case *Message_OneofDefaultedSiblingEnum: b.EncodeVarint(816<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedSiblingEnum)) case nil: default: return fmt.Errorf("Message.OneofDefaultedUnion has unexpected type %T", x) } return nil } func _Message_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { m := msg.(*Message) switch tag { case 700: // oneof_union.oneof_bool if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofBool{x != 0} return true, err case 701: // oneof_union.oneof_int32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofInt32{int32(x)} return true, err case 702: // oneof_union.oneof_sint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag32() m.OneofUnion = &Message_OneofSint32{int32(x)} return true, err case 703: // oneof_union.oneof_uint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofUint32{uint32(x)} return true, err case 704: // oneof_union.oneof_int64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofInt64{int64(x)} return true, err case 705: // oneof_union.oneof_sint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag64() m.OneofUnion = &Message_OneofSint64{int64(x)} return true, err case 706: // oneof_union.oneof_uint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofUint64{x} return true, err case 707: // oneof_union.oneof_fixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofFixed32{uint32(x)} return true, err case 708: // oneof_union.oneof_sfixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofSfixed32{int32(x)} return true, err case 709: // oneof_union.oneof_float if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofFloat{math.Float32frombits(uint32(x))} return true, err case 710: // oneof_union.oneof_fixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofFixed64{x} return true, err case 711: // oneof_union.oneof_sfixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofSfixed64{int64(x)} return true, err case 712: // oneof_union.oneof_double if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofDouble{math.Float64frombits(x)} return true, err case 713: // oneof_union.oneof_string if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString{x} return true, err case 714: // oneof_union.oneof_bytes if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeRawBytes(true) m.OneofUnion = &Message_OneofBytes{x} return true, err case 715: // oneof_union.oneof_child_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofChildEnum{Message_ChildEnum(x)} return true, err case 716: // oneof_union.oneof_child_message if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(Message_ChildMessage) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofChildMessage{msg} return true, err case 717: // oneof_union.oneof_named_group if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(Message_NamedGroup) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofNamedGroup{msg} return true, err case 718: // oneof_union.oneof_sibling_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofSiblingEnum{SiblingEnum(x)} return true, err case 719: // oneof_union.oneof_sibling_message if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(SiblingMessage) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofSiblingMessage{msg} return true, err case 720: // oneof_union.oneofgroup if wire != proto.WireStartGroup { return true, proto.ErrInternalBadWireType } msg := new(Message_OneofGroup) err := b.DecodeGroup(msg) m.OneofUnion = &Message_Oneofgroup{msg} return true, err case 721: // oneof_union.oneof_string1 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString1{x} return true, err case 722: // oneof_union.oneof_string2 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString2{x} return true, err case 723: // oneof_union.oneof_string3 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString3{x} return true, err case 800: // oneof_defaulted_union.oneof_defaulted_bool if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedBool{x != 0} return true, err case 801: // oneof_defaulted_union.oneof_defaulted_int32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedInt32{int32(x)} return true, err case 802: // oneof_defaulted_union.oneof_defaulted_sint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag32() m.OneofDefaultedUnion = &Message_OneofDefaultedSint32{int32(x)} return true, err case 803: // oneof_defaulted_union.oneof_defaulted_uint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedUint32{uint32(x)} return true, err case 804: // oneof_defaulted_union.oneof_defaulted_int64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedInt64{int64(x)} return true, err case 805: // oneof_defaulted_union.oneof_defaulted_sint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag64() m.OneofDefaultedUnion = &Message_OneofDefaultedSint64{int64(x)} return true, err case 806: // oneof_defaulted_union.oneof_defaulted_uint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedUint64{x} return true, err case 807: // oneof_defaulted_union.oneof_defaulted_fixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofDefaultedUnion = &Message_OneofDefaultedFixed32{uint32(x)} return true, err case 808: // oneof_defaulted_union.oneof_defaulted_sfixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofDefaultedUnion = &Message_OneofDefaultedSfixed32{int32(x)} return true, err case 809: // oneof_defaulted_union.oneof_defaulted_float if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofDefaultedUnion = &Message_OneofDefaultedFloat{math.Float32frombits(uint32(x))} return true, err case 810: // oneof_defaulted_union.oneof_defaulted_fixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofDefaultedUnion = &Message_OneofDefaultedFixed64{x} return true, err case 811: // oneof_defaulted_union.oneof_defaulted_sfixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofDefaultedUnion = &Message_OneofDefaultedSfixed64{int64(x)} return true, err case 812: // oneof_defaulted_union.oneof_defaulted_double if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofDefaultedUnion = &Message_OneofDefaultedDouble{math.Float64frombits(x)} return true, err case 813: // oneof_defaulted_union.oneof_defaulted_string if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofDefaultedUnion = &Message_OneofDefaultedString{x} return true, err case 814: // oneof_defaulted_union.oneof_defaulted_bytes if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeRawBytes(true) m.OneofDefaultedUnion = &Message_OneofDefaultedBytes{x} return true, err case 815: // oneof_defaulted_union.oneof_defaulted_child_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedChildEnum{Message_ChildEnum(x)} return true, err case 816: // oneof_defaulted_union.oneof_defaulted_sibling_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedSiblingEnum{SiblingEnum(x)} return true, err default: return false, nil } } func _Message_OneofSizer(msg proto.Message) (n int) { m := msg.(*Message) // oneof_union switch x := m.OneofUnion.(type) { case *Message_OneofBool: n += proto.SizeVarint(700<<3 | proto.WireVarint) n += 1 case *Message_OneofInt32: n += proto.SizeVarint(701<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofInt32)) case *Message_OneofSint32: n += proto.SizeVarint(702<<3 | proto.WireVarint) n += proto.SizeVarint(uint64((uint32(x.OneofSint32) << 1) ^ uint32((int32(x.OneofSint32) >> 31)))) case *Message_OneofUint32: n += proto.SizeVarint(703<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofUint32)) case *Message_OneofInt64: n += proto.SizeVarint(704<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofInt64)) case *Message_OneofSint64: n += proto.SizeVarint(705<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(uint64(x.OneofSint64<<1) ^ uint64((int64(x.OneofSint64) >> 63)))) case *Message_OneofUint64: n += proto.SizeVarint(706<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofUint64)) case *Message_OneofFixed32: n += proto.SizeVarint(707<<3 | proto.WireFixed32) n += 4 case *Message_OneofSfixed32: n += proto.SizeVarint(708<<3 | proto.WireFixed32) n += 4 case *Message_OneofFloat: n += proto.SizeVarint(709<<3 | proto.WireFixed32) n += 4 case *Message_OneofFixed64: n += proto.SizeVarint(710<<3 | proto.WireFixed64) n += 8 case *Message_OneofSfixed64: n += proto.SizeVarint(711<<3 | proto.WireFixed64) n += 8 case *Message_OneofDouble: n += proto.SizeVarint(712<<3 | proto.WireFixed64) n += 8 case *Message_OneofString: n += proto.SizeVarint(713<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString))) n += len(x.OneofString) case *Message_OneofBytes: n += proto.SizeVarint(714<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofBytes))) n += len(x.OneofBytes) case *Message_OneofChildEnum: n += proto.SizeVarint(715<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofChildEnum)) case *Message_OneofChildMessage: s := proto.Size(x.OneofChildMessage) n += proto.SizeVarint(716<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case *Message_OneofNamedGroup: s := proto.Size(x.OneofNamedGroup) n += proto.SizeVarint(717<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case *Message_OneofSiblingEnum: n += proto.SizeVarint(718<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofSiblingEnum)) case *Message_OneofSiblingMessage: s := proto.Size(x.OneofSiblingMessage) n += proto.SizeVarint(719<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case *Message_Oneofgroup: n += proto.SizeVarint(720<<3 | proto.WireStartGroup) n += proto.Size(x.Oneofgroup) n += proto.SizeVarint(720<<3 | proto.WireEndGroup) case *Message_OneofString1: n += proto.SizeVarint(721<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString1))) n += len(x.OneofString1) case *Message_OneofString2: n += proto.SizeVarint(722<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString2))) n += len(x.OneofString2) case *Message_OneofString3: n += proto.SizeVarint(723<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString3))) n += len(x.OneofString3) case nil: default: panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) } // oneof_defaulted_union switch x := m.OneofDefaultedUnion.(type) { case *Message_OneofDefaultedBool: n += proto.SizeVarint(800<<3 | proto.WireVarint) n += 1 case *Message_OneofDefaultedInt32: n += proto.SizeVarint(801<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofDefaultedInt32)) case *Message_OneofDefaultedSint32: n += proto.SizeVarint(802<<3 | proto.WireVarint) n += proto.SizeVarint(uint64((uint32(x.OneofDefaultedSint32) << 1) ^ uint32((int32(x.OneofDefaultedSint32) >> 31)))) case *Message_OneofDefaultedUint32: n += proto.SizeVarint(803<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofDefaultedUint32)) case *Message_OneofDefaultedInt64: n += proto.SizeVarint(804<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofDefaultedInt64)) case *Message_OneofDefaultedSint64: n += proto.SizeVarint(805<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(uint64(x.OneofDefaultedSint64<<1) ^ uint64((int64(x.OneofDefaultedSint64) >> 63)))) case *Message_OneofDefaultedUint64: n += proto.SizeVarint(806<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofDefaultedUint64)) case *Message_OneofDefaultedFixed32: n += proto.SizeVarint(807<<3 | proto.WireFixed32) n += 4 case *Message_OneofDefaultedSfixed32: n += proto.SizeVarint(808<<3 | proto.WireFixed32) n += 4 case *Message_OneofDefaultedFloat: n += proto.SizeVarint(809<<3 | proto.WireFixed32) n += 4 case *Message_OneofDefaultedFixed64: n += proto.SizeVarint(810<<3 | proto.WireFixed64) n += 8 case *Message_OneofDefaultedSfixed64: n += proto.SizeVarint(811<<3 | proto.WireFixed64) n += 8 case *Message_OneofDefaultedDouble: n += proto.SizeVarint(812<<3 | proto.WireFixed64) n += 8 case *Message_OneofDefaultedString: n += proto.SizeVarint(813<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofDefaultedString))) n += len(x.OneofDefaultedString) case *Message_OneofDefaultedBytes: n += proto.SizeVarint(814<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofDefaultedBytes))) n += len(x.OneofDefaultedBytes) case *Message_OneofDefaultedChildEnum: n += proto.SizeVarint(815<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofDefaultedChildEnum)) case *Message_OneofDefaultedSiblingEnum: n += proto.SizeVarint(816<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofDefaultedSiblingEnum)) case nil: default: panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) } return n } var E_Message_ExtensionOptionalBool = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*bool)(nil), Field: 10000, Name: "google.golang.org.proto2_20180125.Message.extension_optional_bool", Tag: "varint,10000,opt,name=extension_optional_bool,json=extensionOptionalBool", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionOptionalInt32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 10001, Name: "google.golang.org.proto2_20180125.Message.extension_optional_int32", Tag: "varint,10001,opt,name=extension_optional_int32,json=extensionOptionalInt32", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionOptionalSint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 10002, Name: "google.golang.org.proto2_20180125.Message.extension_optional_sint32", Tag: "zigzag32,10002,opt,name=extension_optional_sint32,json=extensionOptionalSint32", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionOptionalUint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 10003, Name: "google.golang.org.proto2_20180125.Message.extension_optional_uint32", Tag: "varint,10003,opt,name=extension_optional_uint32,json=extensionOptionalUint32", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionOptionalInt64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 10004, Name: "google.golang.org.proto2_20180125.Message.extension_optional_int64", Tag: "varint,10004,opt,name=extension_optional_int64,json=extensionOptionalInt64", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionOptionalSint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 10005, Name: "google.golang.org.proto2_20180125.Message.extension_optional_sint64", Tag: "zigzag64,10005,opt,name=extension_optional_sint64,json=extensionOptionalSint64", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionOptionalUint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 10006, Name: "google.golang.org.proto2_20180125.Message.extension_optional_uint64", Tag: "varint,10006,opt,name=extension_optional_uint64,json=extensionOptionalUint64", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionOptionalFixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 10007, Name: "google.golang.org.proto2_20180125.Message.extension_optional_fixed32", Tag: "fixed32,10007,opt,name=extension_optional_fixed32,json=extensionOptionalFixed32", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionOptionalSfixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 10008, Name: "google.golang.org.proto2_20180125.Message.extension_optional_sfixed32", Tag: "fixed32,10008,opt,name=extension_optional_sfixed32,json=extensionOptionalSfixed32", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionOptionalFloat = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float32)(nil), Field: 10009, Name: "google.golang.org.proto2_20180125.Message.extension_optional_float", Tag: "fixed32,10009,opt,name=extension_optional_float,json=extensionOptionalFloat", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionOptionalFixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 10010, Name: "google.golang.org.proto2_20180125.Message.extension_optional_fixed64", Tag: "fixed64,10010,opt,name=extension_optional_fixed64,json=extensionOptionalFixed64", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionOptionalSfixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 10011, Name: "google.golang.org.proto2_20180125.Message.extension_optional_sfixed64", Tag: "fixed64,10011,opt,name=extension_optional_sfixed64,json=extensionOptionalSfixed64", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionOptionalDouble = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float64)(nil), Field: 10012, Name: "google.golang.org.proto2_20180125.Message.extension_optional_double", Tag: "fixed64,10012,opt,name=extension_optional_double,json=extensionOptionalDouble", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionOptionalString = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*string)(nil), Field: 10013, Name: "google.golang.org.proto2_20180125.Message.extension_optional_string", Tag: "bytes,10013,opt,name=extension_optional_string,json=extensionOptionalString", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionOptionalBytes = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]byte)(nil), Field: 10014, Name: "google.golang.org.proto2_20180125.Message.extension_optional_bytes", Tag: "bytes,10014,opt,name=extension_optional_bytes,json=extensionOptionalBytes", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionOptionalChildEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ChildEnum)(nil), Field: 10015, Name: "google.golang.org.proto2_20180125.Message.extension_optional_child_enum", Tag: "varint,10015,opt,name=extension_optional_child_enum,json=extensionOptionalChildEnum,enum=google.golang.org.proto2_20180125.Message_ChildEnum", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionOptionalChildMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ChildMessage)(nil), Field: 10016, Name: "google.golang.org.proto2_20180125.Message.extension_optional_child_message", Tag: "bytes,10016,opt,name=extension_optional_child_message,json=extensionOptionalChildMessage", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionOptionalNamedGroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_NamedGroup)(nil), Field: 10017, Name: "google.golang.org.proto2_20180125.Message.extension_optional_named_group", Tag: "bytes,10017,opt,name=extension_optional_named_group,json=extensionOptionalNamedGroup", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionOptionalSiblingEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*SiblingEnum)(nil), Field: 10018, Name: "google.golang.org.proto2_20180125.Message.extension_optional_sibling_enum", Tag: "varint,10018,opt,name=extension_optional_sibling_enum,json=extensionOptionalSiblingEnum,enum=google.golang.org.proto2_20180125.SiblingEnum", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionOptionalSiblingMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*SiblingMessage)(nil), Field: 10019, Name: "google.golang.org.proto2_20180125.Message.extension_optional_sibling_message", Tag: "bytes,10019,opt,name=extension_optional_sibling_message,json=extensionOptionalSiblingMessage", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_Extensionoptionalgroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ExtensionOptionalGroup)(nil), Field: 10020, Name: "google.golang.org.proto2_20180125.Message.extensionoptionalgroup", Tag: "group,10020,opt,name=ExtensionOptionalGroup,json=extensionoptionalgroup", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionDefaultedBool = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*bool)(nil), Field: 20000, Name: "google.golang.org.proto2_20180125.Message.extension_defaulted_bool", Tag: "varint,20000,opt,name=extension_defaulted_bool,json=extensionDefaultedBool,def=1", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionDefaultedInt32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 20001, Name: "google.golang.org.proto2_20180125.Message.extension_defaulted_int32", Tag: "varint,20001,opt,name=extension_defaulted_int32,json=extensionDefaultedInt32,def=-12345", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionDefaultedSint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 20002, Name: "google.golang.org.proto2_20180125.Message.extension_defaulted_sint32", Tag: "zigzag32,20002,opt,name=extension_defaulted_sint32,json=extensionDefaultedSint32,def=-3200", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionDefaultedUint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 20003, Name: "google.golang.org.proto2_20180125.Message.extension_defaulted_uint32", Tag: "varint,20003,opt,name=extension_defaulted_uint32,json=extensionDefaultedUint32,def=3200", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionDefaultedInt64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 20004, Name: "google.golang.org.proto2_20180125.Message.extension_defaulted_int64", Tag: "varint,20004,opt,name=extension_defaulted_int64,json=extensionDefaultedInt64,def=-123456789", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionDefaultedSint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 20005, Name: "google.golang.org.proto2_20180125.Message.extension_defaulted_sint64", Tag: "zigzag64,20005,opt,name=extension_defaulted_sint64,json=extensionDefaultedSint64,def=-6400", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionDefaultedUint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 20006, Name: "google.golang.org.proto2_20180125.Message.extension_defaulted_uint64", Tag: "varint,20006,opt,name=extension_defaulted_uint64,json=extensionDefaultedUint64,def=6400", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionDefaultedFixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 20007, Name: "google.golang.org.proto2_20180125.Message.extension_defaulted_fixed32", Tag: "fixed32,20007,opt,name=extension_defaulted_fixed32,json=extensionDefaultedFixed32,def=320000", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionDefaultedSfixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 20008, Name: "google.golang.org.proto2_20180125.Message.extension_defaulted_sfixed32", Tag: "fixed32,20008,opt,name=extension_defaulted_sfixed32,json=extensionDefaultedSfixed32,def=-320000", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionDefaultedFloat = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float32)(nil), Field: 20009, Name: "google.golang.org.proto2_20180125.Message.extension_defaulted_float", Tag: "fixed32,20009,opt,name=extension_defaulted_float,json=extensionDefaultedFloat,def=3.14159", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionDefaultedFixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 20010, Name: "google.golang.org.proto2_20180125.Message.extension_defaulted_fixed64", Tag: "fixed64,20010,opt,name=extension_defaulted_fixed64,json=extensionDefaultedFixed64,def=640000", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionDefaultedSfixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 20011, Name: "google.golang.org.proto2_20180125.Message.extension_defaulted_sfixed64", Tag: "fixed64,20011,opt,name=extension_defaulted_sfixed64,json=extensionDefaultedSfixed64,def=-640000", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionDefaultedDouble = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float64)(nil), Field: 20012, Name: "google.golang.org.proto2_20180125.Message.extension_defaulted_double", Tag: "fixed64,20012,opt,name=extension_defaulted_double,json=extensionDefaultedDouble,def=3.14159265359", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionDefaultedString = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*string)(nil), Field: 20013, Name: "google.golang.org.proto2_20180125.Message.extension_defaulted_string", Tag: "bytes,20013,opt,name=extension_defaulted_string,json=extensionDefaultedString,def=hello, \"world!\"\n", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionDefaultedBytes = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]byte)(nil), Field: 20014, Name: "google.golang.org.proto2_20180125.Message.extension_defaulted_bytes", Tag: "bytes,20014,opt,name=extension_defaulted_bytes,json=extensionDefaultedBytes,def=dead\\336\\255\\276\\357beef", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionDefaultedChildEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ChildEnum)(nil), Field: 20015, Name: "google.golang.org.proto2_20180125.Message.extension_defaulted_child_enum", Tag: "varint,20015,opt,name=extension_defaulted_child_enum,json=extensionDefaultedChildEnum,enum=google.golang.org.proto2_20180125.Message_ChildEnum,def=0", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionDefaultedSiblingEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*SiblingEnum)(nil), Field: 20016, Name: "google.golang.org.proto2_20180125.Message.extension_defaulted_sibling_enum", Tag: "varint,20016,opt,name=extension_defaulted_sibling_enum,json=extensionDefaultedSiblingEnum,enum=google.golang.org.proto2_20180125.SiblingEnum,def=0", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionRepeatedBool = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]bool)(nil), Field: 30000, Name: "google.golang.org.proto2_20180125.Message.extension_repeated_bool", Tag: "varint,30000,rep,name=extension_repeated_bool,json=extensionRepeatedBool", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionRepeatedInt32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int32)(nil), Field: 30001, Name: "google.golang.org.proto2_20180125.Message.extension_repeated_int32", Tag: "varint,30001,rep,name=extension_repeated_int32,json=extensionRepeatedInt32", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionRepeatedSint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int32)(nil), Field: 30002, Name: "google.golang.org.proto2_20180125.Message.extension_repeated_sint32", Tag: "zigzag32,30002,rep,name=extension_repeated_sint32,json=extensionRepeatedSint32", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionRepeatedUint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint32)(nil), Field: 30003, Name: "google.golang.org.proto2_20180125.Message.extension_repeated_uint32", Tag: "varint,30003,rep,name=extension_repeated_uint32,json=extensionRepeatedUint32", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionRepeatedInt64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int64)(nil), Field: 30004, Name: "google.golang.org.proto2_20180125.Message.extension_repeated_int64", Tag: "varint,30004,rep,name=extension_repeated_int64,json=extensionRepeatedInt64", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionRepeatedSint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int64)(nil), Field: 30005, Name: "google.golang.org.proto2_20180125.Message.extension_repeated_sint64", Tag: "zigzag64,30005,rep,name=extension_repeated_sint64,json=extensionRepeatedSint64", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionRepeatedUint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint64)(nil), Field: 30006, Name: "google.golang.org.proto2_20180125.Message.extension_repeated_uint64", Tag: "varint,30006,rep,name=extension_repeated_uint64,json=extensionRepeatedUint64", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionRepeatedFixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint32)(nil), Field: 30007, Name: "google.golang.org.proto2_20180125.Message.extension_repeated_fixed32", Tag: "fixed32,30007,rep,name=extension_repeated_fixed32,json=extensionRepeatedFixed32", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionRepeatedSfixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int32)(nil), Field: 30008, Name: "google.golang.org.proto2_20180125.Message.extension_repeated_sfixed32", Tag: "fixed32,30008,rep,name=extension_repeated_sfixed32,json=extensionRepeatedSfixed32", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionRepeatedFloat = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]float32)(nil), Field: 30009, Name: "google.golang.org.proto2_20180125.Message.extension_repeated_float", Tag: "fixed32,30009,rep,name=extension_repeated_float,json=extensionRepeatedFloat", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionRepeatedFixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint64)(nil), Field: 30010, Name: "google.golang.org.proto2_20180125.Message.extension_repeated_fixed64", Tag: "fixed64,30010,rep,name=extension_repeated_fixed64,json=extensionRepeatedFixed64", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionRepeatedSfixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int64)(nil), Field: 30011, Name: "google.golang.org.proto2_20180125.Message.extension_repeated_sfixed64", Tag: "fixed64,30011,rep,name=extension_repeated_sfixed64,json=extensionRepeatedSfixed64", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionRepeatedDouble = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]float64)(nil), Field: 30012, Name: "google.golang.org.proto2_20180125.Message.extension_repeated_double", Tag: "fixed64,30012,rep,name=extension_repeated_double,json=extensionRepeatedDouble", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionRepeatedString = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]string)(nil), Field: 30013, Name: "google.golang.org.proto2_20180125.Message.extension_repeated_string", Tag: "bytes,30013,rep,name=extension_repeated_string,json=extensionRepeatedString", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionRepeatedBytes = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([][]byte)(nil), Field: 30014, Name: "google.golang.org.proto2_20180125.Message.extension_repeated_bytes", Tag: "bytes,30014,rep,name=extension_repeated_bytes,json=extensionRepeatedBytes", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionRepeatedChildEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]Message_ChildEnum)(nil), Field: 30015, Name: "google.golang.org.proto2_20180125.Message.extension_repeated_child_enum", Tag: "varint,30015,rep,name=extension_repeated_child_enum,json=extensionRepeatedChildEnum,enum=google.golang.org.proto2_20180125.Message_ChildEnum", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionRepeatedChildMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*Message_ChildMessage)(nil), Field: 30016, Name: "google.golang.org.proto2_20180125.Message.extension_repeated_child_message", Tag: "bytes,30016,rep,name=extension_repeated_child_message,json=extensionRepeatedChildMessage", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionRepeatedNamedGroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*Message_NamedGroup)(nil), Field: 30017, Name: "google.golang.org.proto2_20180125.Message.extension_repeated_named_group", Tag: "bytes,30017,rep,name=extension_repeated_named_group,json=extensionRepeatedNamedGroup", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionRepeatedSiblingEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]SiblingEnum)(nil), Field: 30018, Name: "google.golang.org.proto2_20180125.Message.extension_repeated_sibling_enum", Tag: "varint,30018,rep,name=extension_repeated_sibling_enum,json=extensionRepeatedSiblingEnum,enum=google.golang.org.proto2_20180125.SiblingEnum", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_ExtensionRepeatedSiblingMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*SiblingMessage)(nil), Field: 30019, Name: "google.golang.org.proto2_20180125.Message.extension_repeated_sibling_message", Tag: "bytes,30019,rep,name=extension_repeated_sibling_message,json=extensionRepeatedSiblingMessage", Filename: "proto2_20180125_92554152/test.proto", } var E_Message_Extensionrepeatedgroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*Message_ExtensionRepeatedGroup)(nil), Field: 30020, Name: "google.golang.org.proto2_20180125.Message.extensionrepeatedgroup", Tag: "group,30020,rep,name=ExtensionRepeatedGroup,json=extensionrepeatedgroup", Filename: "proto2_20180125_92554152/test.proto", } type Message_ChildMessage struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` F4 *Message `protobuf:"bytes,4,opt,name=f4" json:"f4,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_ChildMessage) Reset() { *m = Message_ChildMessage{} } func (m *Message_ChildMessage) String() string { return proto.CompactTextString(m) } func (*Message_ChildMessage) ProtoMessage() {} func (*Message_ChildMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 0} } func (m *Message_ChildMessage) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_ChildMessage) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_ChildMessage) GetF3() []string { if m != nil { return m.F3 } return nil } func (m *Message_ChildMessage) GetF4() *Message { if m != nil { return m.F4 } return nil } type Message_NamedGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` F4 *Message `protobuf:"bytes,4,opt,name=f4" json:"f4,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_NamedGroup) Reset() { *m = Message_NamedGroup{} } func (m *Message_NamedGroup) String() string { return proto.CompactTextString(m) } func (*Message_NamedGroup) ProtoMessage() {} func (*Message_NamedGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 1} } func (m *Message_NamedGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_NamedGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_NamedGroup) GetF3() []string { if m != nil { return m.F3 } return nil } func (m *Message_NamedGroup) GetF4() *Message { if m != nil { return m.F4 } return nil } type Message_OptionalGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_OptionalGroup) Reset() { *m = Message_OptionalGroup{} } func (m *Message_OptionalGroup) String() string { return proto.CompactTextString(m) } func (*Message_OptionalGroup) ProtoMessage() {} func (*Message_OptionalGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 2} } func (m *Message_OptionalGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_OptionalGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_OptionalGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_RequiredGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_RequiredGroup) Reset() { *m = Message_RequiredGroup{} } func (m *Message_RequiredGroup) String() string { return proto.CompactTextString(m) } func (*Message_RequiredGroup) ProtoMessage() {} func (*Message_RequiredGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 3} } func (m *Message_RequiredGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_RequiredGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_RequiredGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_RepeatedGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_RepeatedGroup) Reset() { *m = Message_RepeatedGroup{} } func (m *Message_RepeatedGroup) String() string { return proto.CompactTextString(m) } func (*Message_RepeatedGroup) ProtoMessage() {} func (*Message_RepeatedGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 4} } func (m *Message_RepeatedGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_RepeatedGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_RepeatedGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_OneofGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_OneofGroup) Reset() { *m = Message_OneofGroup{} } func (m *Message_OneofGroup) String() string { return proto.CompactTextString(m) } func (*Message_OneofGroup) ProtoMessage() {} func (*Message_OneofGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 33} } func (m *Message_OneofGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_OneofGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_OneofGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_ExtensionOptionalGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_ExtensionOptionalGroup) Reset() { *m = Message_ExtensionOptionalGroup{} } func (m *Message_ExtensionOptionalGroup) String() string { return proto.CompactTextString(m) } func (*Message_ExtensionOptionalGroup) ProtoMessage() {} func (*Message_ExtensionOptionalGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 34} } func (m *Message_ExtensionOptionalGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_ExtensionOptionalGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_ExtensionOptionalGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_ExtensionRepeatedGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *Message_ExtensionRepeatedGroup) Reset() { *m = Message_ExtensionRepeatedGroup{} } func (m *Message_ExtensionRepeatedGroup) String() string { return proto.CompactTextString(m) } func (*Message_ExtensionRepeatedGroup) ProtoMessage() {} func (*Message_ExtensionRepeatedGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 35} } func (m *Message_ExtensionRepeatedGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_ExtensionRepeatedGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_ExtensionRepeatedGroup) GetF3() []string { if m != nil { return m.F3 } return nil } func init() { proto.RegisterType((*SiblingMessage)(nil), "google.golang.org.proto2_20180125.SiblingMessage") proto.RegisterType((*Message)(nil), "google.golang.org.proto2_20180125.Message") proto.RegisterType((*Message_ChildMessage)(nil), "google.golang.org.proto2_20180125.Message.ChildMessage") proto.RegisterType((*Message_NamedGroup)(nil), "google.golang.org.proto2_20180125.Message.NamedGroup") proto.RegisterType((*Message_OptionalGroup)(nil), "google.golang.org.proto2_20180125.Message.OptionalGroup") proto.RegisterType((*Message_RequiredGroup)(nil), "google.golang.org.proto2_20180125.Message.RequiredGroup") proto.RegisterType((*Message_RepeatedGroup)(nil), "google.golang.org.proto2_20180125.Message.RepeatedGroup") proto.RegisterType((*Message_OneofGroup)(nil), "google.golang.org.proto2_20180125.Message.OneofGroup") proto.RegisterType((*Message_ExtensionOptionalGroup)(nil), "google.golang.org.proto2_20180125.Message.ExtensionOptionalGroup") proto.RegisterType((*Message_ExtensionRepeatedGroup)(nil), "google.golang.org.proto2_20180125.Message.ExtensionRepeatedGroup") proto.RegisterEnum("google.golang.org.proto2_20180125.SiblingEnum", SiblingEnum_name, SiblingEnum_value) proto.RegisterEnum("google.golang.org.proto2_20180125.Message_ChildEnum", Message_ChildEnum_name, Message_ChildEnum_value) proto.RegisterExtension(E_Message_ExtensionOptionalBool) proto.RegisterExtension(E_Message_ExtensionOptionalInt32) proto.RegisterExtension(E_Message_ExtensionOptionalSint32) proto.RegisterExtension(E_Message_ExtensionOptionalUint32) proto.RegisterExtension(E_Message_ExtensionOptionalInt64) proto.RegisterExtension(E_Message_ExtensionOptionalSint64) proto.RegisterExtension(E_Message_ExtensionOptionalUint64) proto.RegisterExtension(E_Message_ExtensionOptionalFixed32) proto.RegisterExtension(E_Message_ExtensionOptionalSfixed32) proto.RegisterExtension(E_Message_ExtensionOptionalFloat) proto.RegisterExtension(E_Message_ExtensionOptionalFixed64) proto.RegisterExtension(E_Message_ExtensionOptionalSfixed64) proto.RegisterExtension(E_Message_ExtensionOptionalDouble) proto.RegisterExtension(E_Message_ExtensionOptionalString) proto.RegisterExtension(E_Message_ExtensionOptionalBytes) proto.RegisterExtension(E_Message_ExtensionOptionalChildEnum) proto.RegisterExtension(E_Message_ExtensionOptionalChildMessage) proto.RegisterExtension(E_Message_ExtensionOptionalNamedGroup) proto.RegisterExtension(E_Message_ExtensionOptionalSiblingEnum) proto.RegisterExtension(E_Message_ExtensionOptionalSiblingMessage) proto.RegisterExtension(E_Message_Extensionoptionalgroup) proto.RegisterExtension(E_Message_ExtensionDefaultedBool) proto.RegisterExtension(E_Message_ExtensionDefaultedInt32) proto.RegisterExtension(E_Message_ExtensionDefaultedSint32) proto.RegisterExtension(E_Message_ExtensionDefaultedUint32) proto.RegisterExtension(E_Message_ExtensionDefaultedInt64) proto.RegisterExtension(E_Message_ExtensionDefaultedSint64) proto.RegisterExtension(E_Message_ExtensionDefaultedUint64) proto.RegisterExtension(E_Message_ExtensionDefaultedFixed32) proto.RegisterExtension(E_Message_ExtensionDefaultedSfixed32) proto.RegisterExtension(E_Message_ExtensionDefaultedFloat) proto.RegisterExtension(E_Message_ExtensionDefaultedFixed64) proto.RegisterExtension(E_Message_ExtensionDefaultedSfixed64) proto.RegisterExtension(E_Message_ExtensionDefaultedDouble) proto.RegisterExtension(E_Message_ExtensionDefaultedString) proto.RegisterExtension(E_Message_ExtensionDefaultedBytes) proto.RegisterExtension(E_Message_ExtensionDefaultedChildEnum) proto.RegisterExtension(E_Message_ExtensionDefaultedSiblingEnum) proto.RegisterExtension(E_Message_ExtensionRepeatedBool) proto.RegisterExtension(E_Message_ExtensionRepeatedInt32) proto.RegisterExtension(E_Message_ExtensionRepeatedSint32) proto.RegisterExtension(E_Message_ExtensionRepeatedUint32) proto.RegisterExtension(E_Message_ExtensionRepeatedInt64) proto.RegisterExtension(E_Message_ExtensionRepeatedSint64) proto.RegisterExtension(E_Message_ExtensionRepeatedUint64) proto.RegisterExtension(E_Message_ExtensionRepeatedFixed32) proto.RegisterExtension(E_Message_ExtensionRepeatedSfixed32) proto.RegisterExtension(E_Message_ExtensionRepeatedFloat) proto.RegisterExtension(E_Message_ExtensionRepeatedFixed64) proto.RegisterExtension(E_Message_ExtensionRepeatedSfixed64) proto.RegisterExtension(E_Message_ExtensionRepeatedDouble) proto.RegisterExtension(E_Message_ExtensionRepeatedString) proto.RegisterExtension(E_Message_ExtensionRepeatedBytes) proto.RegisterExtension(E_Message_ExtensionRepeatedChildEnum) proto.RegisterExtension(E_Message_ExtensionRepeatedChildMessage) proto.RegisterExtension(E_Message_ExtensionRepeatedNamedGroup) proto.RegisterExtension(E_Message_ExtensionRepeatedSiblingEnum) proto.RegisterExtension(E_Message_ExtensionRepeatedSiblingMessage) proto.RegisterExtension(E_Message_Extensionrepeatedgroup) } func init() { proto.RegisterFile("proto2_20180125_92554152/test.proto", fileDescriptor0) } var fileDescriptor0 = []byte{ // 4468 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5c, 0x67, 0x70, 0x24, 0xc7, 0x75, 0xc6, 0xec, 0x62, 0x17, 0x87, 0x3e, 0x2c, 0xb0, 0x98, 0xbb, 0x03, 0xe6, 0x40, 0xd2, 0x5c, 0x41, 0xb2, 0xbc, 0xa6, 0x79, 0x38, 0x60, 0xd0, 0xe8, 0xe3, 0xad, 0x19, 0x04, 0x90, 0x47, 0x2d, 0x65, 0x71, 0xa9, 0x1a, 0xd6, 0xb9, 0x5c, 0x2e, 0x96, 0x61, 0xdc, 0x61, 0x81, 0x03, 0xb9, 0x01, 0x04, 0x76, 0x49, 0x9e, 0x25, 0x17, 0xcf, 0x72, 0xfc, 0x49, 0xe5, 0xb4, 0x92, 0x28, 0x66, 0x89, 0x51, 0x39, 0x31, 0x29, 0xd8, 0xa6, 0x72, 0x72, 0x90, 0x93, 0x9c, 0x93, 0x9c, 0x73, 0x0e, 0xd5, 0xfd, 0xba, 0xa7, 0xbb, 0x67, 0x7a, 0x16, 0xe8, 0x59, 0x15, 0x7f, 0xb0, 0x8a, 0xd7, 0xfb, 0xfa, 0x7d, 0xfd, 0xbe, 0xed, 0xf7, 0xde, 0x87, 0x9e, 0xe9, 0x45, 0x2f, 0xdd, 0xde, 0x69, 0x77, 0xda, 0xfe, 0xaa, 0x3f, 0xbf, 0x70, 0xc5, 0xfc, 0x82, 0xbf, 0xb4, 0x7a, 0xd2, 0x5f, 0x5a, 0xc2, 0x0b, 0x4b, 0xfe, 0xf1, 0x4e, 0x7d, 0xb7, 0x33, 0xc7, 0x3e, 0x75, 0x5f, 0xb2, 0xd9, 0x6e, 0x6f, 0x36, 0xea, 0x73, 0x9b, 0xed, 0xc6, 0x5a, 0x6b, 0x73, 0xae, 0xbd, 0xb3, 0x39, 0x17, 0x99, 0x36, 0xfb, 0x3a, 0x34, 0x7e, 0xf3, 0xd6, 0x99, 0xc6, 0x56, 0x6b, 0xf3, 0xc6, 0xfa, 0xee, 0xee, 0xda, 0x66, 0xdd, 0x1d, 0x47, 0x99, 0x8d, 0x05, 0xcf, 0x29, 0x39, 0xe5, 0xd1, 0x20, 0xb3, 0xb1, 0xc0, 0xfe, 0xed, 0x7b, 0x99, 0x52, 0x86, 0xfd, 0xdb, 0x67, 0xff, 0x5e, 0xf4, 0xb2, 0xa5, 0x2c, 0xfb, 0xf7, 0xa2, 0x5b, 0x41, 0x99, 0x0d, 0xec, 0x0d, 0x97, 0x9c, 0xf2, 0x41, 0xff, 0xb2, 0xb9, 0x3d, 0x11, 0xe7, 0x38, 0x4e, 0x90, 0xd9, 0xc0, 0xb3, 0xdf, 0x79, 0xd4, 0x41, 0x23, 0x02, 0xf8, 0x34, 0x42, 0xad, 0xb5, 0x66, 0x7d, 0x7d, 0x73, 0xa7, 0xdd, 0xdd, 0x66, 0x0b, 0x40, 0xfe, 0xd2, 0xfe, 0x1d, 0xce, 0xd5, 0xe8, 0xe4, 0x57, 0xd2, 0xc9, 0x81, 0xe2, 0xc8, 0x7d, 0x29, 0x2a, 0xb4, 0xb7, 0x3b, 0x5b, 0xed, 0xd6, 0x5a, 0x63, 0xf5, 0x4c, 0xbb, 0xdd, 0xf0, 0xd6, 0x4b, 0x4e, 0xf9, 0x40, 0x30, 0x26, 0x06, 0x57, 0xda, 0xed, 0x86, 0xfb, 0xfd, 0x68, 0x3c, 0x34, 0xda, 0x6a, 0x75, 0x16, 0x7d, 0xaf, 0x5e, 0x72, 0xca, 0xb9, 0x20, 0x9c, 0x7a, 0x03, 0x1d, 0x74, 0x7f, 0x00, 0x4d, 0x84, 0x66, 0xbb, 0x60, 0xb7, 0x51, 0x72, 0xca, 0x93, 0x41, 0x38, 0xfb, 0xe6, 0xad, 0x98, 0x61, 0x17, 0x0c, 0x37, 0x4b, 0x4e, 0xb9, 0x20, 0x0d, 0x4f, 0x83, 0x61, 0x04, 0x98, 0x60, 0xef, 0x5c, 0xc9, 0x29, 0x67, 0x35, 0x60, 0x82, 0x63, 0xc0, 0x04, 0x7b, 0x5b, 0x25, 0xa7, 0xec, 0xea, 0xc0, 0x11, 0xc3, 0x2e, 0x18, 0xde, 0x5a, 0x72, 0xca, 0xc3, 0x3a, 0x30, 0xc1, 0xee, 0x0f, 0xa2, 0x62, 0x68, 0xb8, 0xb1, 0x75, 0x57, 0x7d, 0x7d, 0xd1, 0xf7, 0x6e, 0x2b, 0x39, 0xe5, 0x91, 0x20, 0x74, 0x70, 0x3d, 0x0c, 0xbb, 0x3f, 0x84, 0x26, 0x25, 0xb8, 0xb0, 0x6d, 0x94, 0x9c, 0xf2, 0x44, 0x10, 0xfa, 0xb8, 0x99, 0x8f, 0x6b, 0x01, 0x6d, 0x34, 0xda, 0x6b, 0x1d, 0xaf, 0x59, 0x72, 0xca, 0x19, 0x19, 0xd0, 0xf5, 0x74, 0x30, 0x0e, 0x4f, 0xb0, 0xd7, 0x2a, 0x39, 0xe5, 0x7c, 0x04, 0x9e, 0x60, 0x03, 0x3c, 0xc1, 0x5e, 0xbb, 0xe4, 0x94, 0x8b, 0x51, 0xf8, 0x48, 0xfc, 0xeb, 0xed, 0xee, 0x99, 0x46, 0xdd, 0xdb, 0x2e, 0x39, 0x65, 0x47, 0xc6, 0x7f, 0x1d, 0x1b, 0xd5, 0x19, 0xed, 0xec, 0x6c, 0xb5, 0x36, 0xbd, 0xdb, 0xd9, 0x9e, 0x97, 0x8c, 0xb2, 0x51, 0x2d, 0xa0, 0x33, 0xe7, 0x3b, 0xf5, 0x5d, 0x6f, 0xa7, 0xe4, 0x94, 0xc7, 0x64, 0x40, 0x2b, 0x74, 0xd0, 0x5d, 0x47, 0x87, 0x42, 0xb3, 0xb3, 0xe7, 0xb6, 0x1a, 0xeb, 0xab, 0xf5, 0x56, 0xb7, 0xe9, 0xed, 0x96, 0x9c, 0xf2, 0xb8, 0x8f, 0x2d, 0xb6, 0xf1, 0xb5, 0x74, 0xf2, 0xa9, 0x56, 0xb7, 0x19, 0x84, 0x61, 0x87, 0x43, 0x6e, 0x13, 0x4d, 0x45, 0x50, 0x9a, 0x30, 0xcd, 0xeb, 0xb0, 0x04, 0x3c, 0x61, 0x0b, 0x24, 0xb2, 0xf1, 0xb0, 0x86, 0x25, 0x52, 0x72, 0x13, 0x85, 0xe3, 0xab, 0x2c, 0xa5, 0x56, 0x21, 0x39, 0xbb, 0x0c, 0x2c, 0x65, 0x72, 0xba, 0xc2, 0xa5, 0x1c, 0x73, 0xcf, 0xa0, 0x23, 0xca, 0xfe, 0x66, 0xf5, 0x08, 0xf8, 0xbb, 0x83, 0xf1, 0x37, 0xb7, 0x0f, 0x24, 0x5e, 0xc6, 0x18, 0x73, 0x87, 0x64, 0x56, 0x84, 0x83, 0xee, 0x6d, 0xc8, 0x8b, 0x61, 0x08, 0xf6, 0xee, 0x64, 0x01, 0x2d, 0xec, 0x1f, 0x46, 0xf0, 0x36, 0x15, 0x41, 0x12, 0xcc, 0xfd, 0x84, 0xac, 0x3a, 0x40, 0xd9, 0x5d, 0xac, 0x9e, 0x5d, 0x61, 0x41, 0xd9, 0x4d, 0x7c, 0x3e, 0xb0, 0xa6, 0xbb, 0x73, 0x2f, 0x47, 0xe3, 0xeb, 0xf5, 0x8d, 0xb5, 0x6e, 0xa3, 0x53, 0x5f, 0x87, 0xb2, 0xf6, 0x02, 0xad, 0x98, 0x07, 0x2a, 0xc3, 0x9d, 0x9d, 0x6e, 0x3d, 0x28, 0x84, 0x1f, 0xb2, 0xf2, 0x36, 0x8f, 0x26, 0xa4, 0x35, 0x94, 0xa3, 0x2f, 0x50, 0xf3, 0x5c, 0x25, 0x7f, 0x6c, 0xc1, 0x5f, 0xc4, 0x4b, 0x81, 0xf4, 0x06, 0x95, 0x6e, 0x01, 0x15, 0xe5, 0x0c, 0x5e, 0xea, 0xbe, 0x48, 0xa7, 0x4c, 0x56, 0x72, 0xc7, 0x16, 0xfd, 0xf9, 0xf9, 0x40, 0x7a, 0xe4, 0x35, 0x6f, 0x5e, 0x9d, 0xc2, 0x8b, 0xde, 0x97, 0xe8, 0x94, 0x42, 0x65, 0x38, 0x32, 0x83, 0x17, 0x3f, 0x1c, 0x59, 0x16, 0xc1, 0xde, 0x97, 0xe9, 0x84, 0x6c, 0x05, 0xc1, 0xb2, 0xc8, 0x89, 0x2b, 0x4e, 0xea, 0x4b, 0x23, 0x38, 0xbe, 0x34, 0x82, 0xbd, 0xaf, 0xd0, 0x69, 0x6e, 0x25, 0x77, 0x8c, 0xe0, 0xd8, 0xd2, 0x08, 0x8e, 0x2f, 0x8d, 0x60, 0xef, 0xab, 0x74, 0xca, 0x70, 0x65, 0x38, 0x32, 0x83, 0x97, 0x47, 0x8c, 0x26, 0xe5, 0x0c, 0x51, 0xf3, 0xbe, 0x46, 0xa7, 0x8c, 0x54, 0xf2, 0x34, 0x9a, 0xf9, 0xf9, 0x40, 0xfa, 0x14, 0x95, 0xf2, 0x04, 0x72, 0x95, 0xa5, 0x89, 0x69, 0x5f, 0xa7, 0xd3, 0x26, 0x2a, 0x23, 0xc7, 0xf8, 0x3c, 0xe9, 0x39, 0xac, 0x9a, 0x0b, 0x2a, 0x13, 0x50, 0x36, 0xbf, 0x41, 0x67, 0x65, 0x2a, 0x23, 0x8b, 0x73, 0x0b, 0x78, 0x61, 0x49, 0xa5, 0x01, 0x2a, 0x68, 0x7c, 0x85, 0x04, 0x7b, 0xdf, 0xa4, 0x93, 0xf2, 0x95, 0x3c, 0x0d, 0x2a, 0xbe, 0x42, 0x82, 0x4d, 0x2b, 0x24, 0xd8, 0xfb, 0x16, 0x9d, 0x56, 0xac, 0x8c, 0x1c, 0xe3, 0xf3, 0xa2, 0x2b, 0x24, 0xd8, 0x3d, 0xa9, 0x52, 0xc8, 0x2b, 0xeb, 0xaf, 0xd1, 0x69, 0x4e, 0xa5, 0xc0, 0x97, 0xe8, 0x93, 0xa5, 0xc5, 0xa5, 0x93, 0x0a, 0x97, 0xbc, 0xd4, 0x5e, 0xa9, 0x7d, 0x61, 0x50, 0x6b, 0x7f, 0x9d, 0x09, 0x8c, 0x4a, 0xf1, 0x5c, 0xbd, 0xd1, 0x68, 0x5f, 0x5e, 0x9a, 0xbd, 0xb3, 0xbd, 0xd3, 0x58, 0x7f, 0xc9, 0x2c, 0x52, 0xbf, 0x3b, 0xa8, 0xbf, 0x2b, 0x2a, 0x35, 0x50, 0x80, 0x7f, 0x83, 0x4e, 0x1e, 0xab, 0x78, 0xeb, 0xf5, 0xb5, 0xf5, 0x5b, 0x16, 0x17, 0xc9, 0x2d, 0xfe, 0xd2, 0xd2, 0x2d, 0xfe, 0x09, 0x72, 0xcb, 0xe2, 0xd2, 0x89, 0x33, 0xf5, 0xfa, 0x86, 0xc2, 0x15, 0x14, 0xe7, 0x16, 0x3a, 0x2c, 0x7d, 0x28, 0xd5, 0xf9, 0x37, 0x9d, 0xf4, 0xe5, 0xb9, 0x92, 0x5b, 0x7e, 0xf5, 0x6b, 0xaa, 0xcb, 0x81, 0xe4, 0x53, 0x96, 0xe9, 0x06, 0x9a, 0x52, 0xb7, 0xa8, 0x52, 0xcf, 0xbe, 0xed, 0xa4, 0x29, 0x68, 0x02, 0xeb, 0xb0, 0xb2, 0xb1, 0x65, 0x61, 0x7b, 0x19, 0x2a, 0xec, 0xd4, 0x6f, 0xef, 0x6e, 0xed, 0x88, 0x52, 0xf0, 0x18, 0x55, 0x6b, 0x07, 0x82, 0x31, 0x31, 0xca, 0x6a, 0xc0, 0xcb, 0xd1, 0x78, 0x68, 0x05, 0xc9, 0xf9, 0x38, 0x35, 0xcb, 0x05, 0xe1, 0x64, 0xc8, 0xfc, 0x32, 0x9a, 0x08, 0xed, 0x78, 0xe2, 0x3f, 0x41, 0x0d, 0x27, 0x83, 0x70, 0x3e, 0x4f, 0x78, 0xd5, 0x92, 0xe7, 0xfb, 0x93, 0xd4, 0xb2, 0x20, 0x2d, 0x79, 0xa2, 0x47, 0xb0, 0x09, 0xf6, 0x9e, 0xa2, 0x86, 0x59, 0x0d, 0x9b, 0xe0, 0x18, 0x36, 0xc1, 0xde, 0x07, 0xa9, 0xa1, 0xab, 0x63, 0x47, 0x2c, 0x79, 0x42, 0x7f, 0x88, 0x5a, 0x0e, 0xeb, 0xd8, 0x04, 0xbb, 0x97, 0xa1, 0x62, 0x68, 0x29, 0x32, 0xf2, 0xc3, 0xd4, 0x74, 0x24, 0x08, 0x5d, 0x88, 0xfc, 0xbd, 0x1c, 0x4d, 0x4a, 0x7c, 0x61, 0xfc, 0x11, 0x6a, 0x3c, 0x11, 0x84, 0x5e, 0xc2, 0xa4, 0x55, 0xa3, 0x82, 0x9c, 0xfd, 0x28, 0x35, 0xcd, 0xc8, 0xa8, 0x20, 0x53, 0x63, 0x2b, 0x20, 0xd8, 0xfb, 0x18, 0xb5, 0xcc, 0x47, 0x56, 0x40, 0xb0, 0x61, 0x05, 0x04, 0x7b, 0x1f, 0xa7, 0xc6, 0xc5, 0xe8, 0x0a, 0x22, 0x2c, 0xf0, 0x9c, 0xfc, 0x04, 0xb5, 0x75, 0x24, 0x0b, 0x3c, 0x07, 0x35, 0x66, 0x21, 0x05, 0x3f, 0x09, 0x9a, 0x5e, 0x32, 0x0b, 0xf9, 0xa6, 0x46, 0x05, 0xe9, 0xf6, 0x29, 0x6a, 0x38, 0x26, 0xa3, 0x82, 0x9c, 0xaa, 0xa3, 0x43, 0xa1, 0x9d, 0x92, 0x52, 0x9f, 0xa6, 0xc6, 0xa9, 0x15, 0x8f, 0xf0, 0x28, 0x53, 0xa9, 0x85, 0xa6, 0x22, 0x30, 0xa2, 0x67, 0x3f, 0x4d, 0x91, 0x06, 0x91, 0x3c, 0x1a, 0x98, 0x68, 0xdc, 0xe7, 0x50, 0x38, 0xae, 0x49, 0x9e, 0x67, 0x00, 0x2d, 0xad, 0xe6, 0x11, 0x3e, 0x15, 0xcd, 0x73, 0x16, 0x1d, 0x51, 0x36, 0xbb, 0x52, 0x23, 0x9e, 0x05, 0x0a, 0xad, 0x45, 0x8f, 0x4c, 0x11, 0x59, 0x1b, 0x1a, 0xc8, 0x8b, 0x81, 0x08, 0x02, 0x9f, 0x83, 0x90, 0xd2, 0xa8, 0x9e, 0x08, 0x94, 0x20, 0x6f, 0x55, 0x56, 0x22, 0x60, 0xed, 0x79, 0x0a, 0x61, 0x27, 0x7b, 0x02, 0xee, 0x80, 0xcb, 0x1e, 0xcd, 0x9f, 0x7b, 0x15, 0x9a, 0x96, 0x1b, 0x5e, 0xd7, 0x3f, 0xf7, 0x64, 0x69, 0xd1, 0xe3, 0xfa, 0x27, 0x64, 0xf6, 0x3a, 0x4d, 0x07, 0x2d, 0x2b, 0x6c, 0x44, 0x05, 0xd1, 0x1b, 0xe8, 0x7c, 0x29, 0x88, 0xa6, 0x62, 0x1e, 0xa0, 0x3c, 0xae, 0xa0, 0xa3, 0x06, 0x17, 0xbc, 0x50, 0xbe, 0x91, 0xfa, 0x08, 0x15, 0xd2, 0x74, 0xcc, 0x05, 0x2f, 0x9c, 0xcb, 0x46, 0x1f, 0xbc, 0x84, 0xbe, 0x89, 0xfa, 0x10, 0x92, 0x29, 0xee, 0x82, 0x57, 0xd4, 0x53, 0x49, 0x91, 0x10, 0xec, 0xbd, 0x99, 0x7a, 0xd0, 0x35, 0x94, 0x31, 0x1a, 0x82, 0xfb, 0x44, 0x43, 0xb0, 0xf7, 0x16, 0xea, 0x27, 0x14, 0x55, 0xe6, 0x68, 0x08, 0xee, 0x13, 0x0d, 0xc1, 0xde, 0x5b, 0xa9, 0x0f, 0xa1, 0xb2, 0xcc, 0xd1, 0x10, 0xec, 0x9e, 0x42, 0x33, 0x06, 0x17, 0xa2, 0x00, 0xbf, 0x8d, 0xfa, 0x90, 0xb2, 0xcb, 0x8b, 0x79, 0x11, 0xe5, 0xbb, 0x8a, 0x2e, 0x32, 0x45, 0x23, 0xfc, 0xbc, 0x9d, 0xfa, 0x51, 0x74, 0xd8, 0xd1, 0x78, 0x44, 0xa2, 0xb4, 0xaf, 0x18, 0xe9, 0x85, 0x22, 0xff, 0x0e, 0xea, 0x46, 0x11, 0x66, 0x71, 0x6e, 0xa1, 0xec, 0xf7, 0x09, 0x8a, 0x60, 0xef, 0x9d, 0xd4, 0x8b, 0x54, 0x6a, 0x09, 0x41, 0x11, 0xdc, 0x37, 0x28, 0x82, 0xbd, 0x77, 0x51, 0x3f, 0x8a, 0x74, 0x4b, 0x0a, 0x8a, 0x60, 0xf7, 0x55, 0xc6, 0x2f, 0x8a, 0xf7, 0x8d, 0x1e, 0xf5, 0x13, 0xd3, 0x72, 0xf1, 0x6f, 0x8c, 0xf7, 0x93, 0x1b, 0xcd, 0x1b, 0x07, 0x3a, 0xcb, 0xbb, 0xa9, 0x2f, 0x93, 0xb8, 0x33, 0xec, 0x21, 0x68, 0x3a, 0x37, 0x1b, 0xf9, 0x86, 0xf6, 0xf3, 0x1e, 0xea, 0xad, 0x9f, 0xda, 0x8b, 0x7f, 0x01, 0xd0, 0xa1, 0xee, 0x46, 0x97, 0x18, 0x9c, 0x2a, 0xbd, 0xea, 0xbd, 0xd9, 0xf4, 0xbd, 0x4a, 0x48, 0xb2, 0x99, 0x18, 0xb8, 0xec, 0x5d, 0x3f, 0x8d, 0x2e, 0x35, 0x66, 0x97, 0x52, 0xeb, 0xef, 0xcd, 0xa6, 0xa9, 0xf5, 0x02, 0xfc, 0x62, 0x43, 0x4e, 0x46, 0x74, 0xe1, 0x76, 0x7d, 0x2d, 0x2c, 0x91, 0xff, 0x9c, 0x2d, 0x65, 0x41, 0x17, 0xc2, 0xa8, 0xd4, 0x85, 0xdc, 0x0a, 0x2a, 0xd0, 0xbf, 0x50, 0x33, 0xa6, 0x0b, 0x61, 0x58, 0xd1, 0x85, 0xdc, 0x8e, 0x97, 0xbb, 0x7f, 0xa5, 0x86, 0x4c, 0x17, 0xc2, 0xb8, 0xaa, 0x0b, 0xb9, 0x25, 0x2f, 0x6a, 0xff, 0x46, 0x2d, 0x0b, 0xd2, 0x52, 0xd5, 0x85, 0x12, 0x9b, 0x60, 0xef, 0xdf, 0xa9, 0x61, 0x56, 0xc3, 0x16, 0x3a, 0x47, 0xc1, 0x26, 0xd8, 0xfb, 0x0f, 0x6a, 0xe8, 0xea, 0xd8, 0x11, 0x4b, 0x5e, 0x82, 0xfe, 0x93, 0x5a, 0x0e, 0xeb, 0xd8, 0x42, 0x17, 0x72, 0x4b, 0x51, 0x21, 0xfe, 0x8b, 0x9a, 0x32, 0x5d, 0x08, 0x1f, 0x68, 0xba, 0x50, 0xe0, 0x0b, 0xe3, 0xff, 0xa6, 0xc6, 0x4c, 0x17, 0xf2, 0x15, 0x68, 0xba, 0x50, 0x78, 0x66, 0x25, 0xe3, 0x7f, 0xa8, 0x69, 0x46, 0x46, 0xa5, 0xe8, 0x42, 0x75, 0x05, 0x04, 0x7b, 0xff, 0x4b, 0x2d, 0xf3, 0x91, 0x15, 0x08, 0x5d, 0xa8, 0xad, 0x80, 0x60, 0xef, 0xff, 0xa8, 0x71, 0x31, 0xba, 0x82, 0x08, 0x0b, 0x3c, 0xbf, 0x2f, 0x0c, 0x97, 0xb2, 0xa0, 0x0b, 0x61, 0x5c, 0xd5, 0x85, 0xc2, 0x2f, 0x64, 0xef, 0xcf, 0x0c, 0xb3, 0xb3, 0x5d, 0xc9, 0xac, 0xa2, 0x0b, 0xc5, 0x6e, 0x62, 0x89, 0xf9, 0x7a, 0x6a, 0x38, 0x26, 0xa3, 0x52, 0x74, 0x21, 0xb7, 0x53, 0x72, 0xed, 0x67, 0xa9, 0xf1, 0x00, 0xba, 0x10, 0x3c, 0x46, 0x74, 0xa1, 0x06, 0x23, 0x64, 0xcd, 0xcf, 0x51, 0xa4, 0xc1, 0x74, 0xa1, 0x02, 0xa6, 0xe9, 0x42, 0x8e, 0xa7, 0xea, 0xc2, 0x9f, 0x07, 0xb4, 0xf4, 0xba, 0x10, 0x7c, 0x46, 0x75, 0x61, 0xb8, 0xd9, 0x95, 0x5a, 0xf1, 0x0b, 0x40, 0x61, 0x0a, 0x5d, 0x28, 0x52, 0x24, 0xa2, 0x0b, 0x23, 0x20, 0x82, 0xc0, 0x5f, 0x84, 0x90, 0xd2, 0xe9, 0x42, 0x0d, 0x4a, 0xd3, 0x85, 0xf0, 0x09, 0xb0, 0xf6, 0x4b, 0x14, 0xc2, 0x56, 0x17, 0x82, 0x83, 0x50, 0x17, 0x2a, 0xfe, 0xdc, 0x9f, 0x44, 0x85, 0xe6, 0xda, 0x36, 0xab, 0x72, 0x50, 0xea, 0xbe, 0x0d, 0x31, 0xfc, 0xb0, 0x05, 0xc0, 0x8d, 0x6b, 0xdb, 0xb4, 0x20, 0xd2, 0xff, 0x4e, 0xb5, 0x3a, 0x3b, 0xe7, 0x83, 0x83, 0x4d, 0x39, 0xe2, 0x9e, 0x45, 0xe3, 0x21, 0x02, 0xd4, 0xb4, 0xdf, 0x02, 0x88, 0x2b, 0xed, 0x21, 0x58, 0x41, 0x05, 0x8c, 0xb1, 0xa6, 0x32, 0xe4, 0x6e, 0xa0, 0x89, 0x10, 0x84, 0xd7, 0xd8, 0xdf, 0x06, 0x94, 0xab, 0xec, 0x51, 0xa0, 0x1a, 0x03, 0x4c, 0xa1, 0xa9, 0x8e, 0x69, 0x38, 0xbc, 0x42, 0xff, 0x4e, 0x6a, 0x9c, 0xd3, 0x06, 0x1c, 0x5e, 0xdf, 0x23, 0xa4, 0x11, 0xec, 0xfd, 0xee, 0x20, 0xa4, 0x11, 0x1c, 0x23, 0x8d, 0xe0, 0x18, 0x69, 0x04, 0x7b, 0xbf, 0x37, 0x10, 0x69, 0x02, 0x46, 0x25, 0x2d, 0x82, 0xc3, 0x5b, 0xcb, 0x77, 0x06, 0x22, 0x2d, 0x8a, 0xc3, 0x1b, 0xd3, 0x16, 0x2a, 0x86, 0x38, 0xa2, 0xd7, 0xfc, 0x3e, 0x00, 0x5d, 0x6d, 0x0f, 0xc4, 0x5b, 0x18, 0x20, 0x8d, 0x37, 0xb5, 0x41, 0xb7, 0x81, 0x26, 0x25, 0x75, 0x02, 0xeb, 0x0f, 0x00, 0xeb, 0x9a, 0x14, 0xe4, 0x6d, 0xa8, 0x60, 0x13, 0x4d, 0x7d, 0x54, 0xdb, 0x0d, 0xd0, 0x17, 0xff, 0x30, 0xf5, 0x6e, 0x60, 0x1d, 0x54, 0xdf, 0x0d, 0xd0, 0x54, 0x63, 0xec, 0x11, 0xec, 0xfd, 0xd1, 0x60, 0xec, 0x89, 0xef, 0x49, 0x63, 0x8f, 0x60, 0x03, 0x7b, 0x04, 0x7b, 0x7f, 0x3c, 0x20, 0x7b, 0x02, 0x4c, 0x67, 0x2f, 0xb2, 0xfd, 0x78, 0x4f, 0xff, 0x93, 0xd4, 0xdb, 0x0f, 0xba, 0xbf, 0xbe, 0xfd, 0xb8, 0x22, 0xd0, 0xd2, 0x09, 0x14, 0xc1, 0x9f, 0xa6, 0x4f, 0x27, 0xe6, 0x20, 0x92, 0x4e, 0xa0, 0x27, 0xd4, 0xdd, 0x00, 0x7a, 0xe2, 0xcf, 0x52, 0xef, 0x06, 0xa6, 0x3c, 0xf4, 0xdd, 0x00, 0x62, 0x64, 0x1b, 0x1d, 0x0a, 0x41, 0x14, 0x31, 0xf2, 0xe7, 0x80, 0xf4, 0x0a, 0x7b, 0xa4, 0x50, 0x80, 0x00, 0x5a, 0xb1, 0x19, 0x19, 0x76, 0xcf, 0xa3, 0xa9, 0x08, 0xa2, 0x68, 0xab, 0x7f, 0x01, 0xa0, 0xd7, 0xa6, 0x04, 0xe5, 0x63, 0x80, 0x7b, 0xa8, 0x19, 0xff, 0xc4, 0xdd, 0x45, 0x87, 0x43, 0x68, 0x55, 0xa2, 0xfc, 0x25, 0x00, 0x2f, 0xdb, 0x03, 0x4b, 0x55, 0x02, 0xb0, 0x93, 0xcd, 0xe8, 0xb8, 0x7b, 0x07, 0x3a, 0xa2, 0x54, 0x5f, 0x45, 0xad, 0x7c, 0x17, 0x50, 0x57, 0xd2, 0xd4, 0xe0, 0x50, 0xa7, 0x00, 0xac, 0xdb, 0x8c, 0x7d, 0xe0, 0xde, 0x8d, 0xbc, 0x18, 0xae, 0x60, 0xfa, 0xaf, 0x00, 0xfa, 0x54, 0x6a, 0x68, 0x8d, 0xeb, 0x23, 0x4d, 0xd3, 0x67, 0x62, 0xff, 0xb2, 0x46, 0x07, 0x9a, 0xe3, 0xaf, 0x53, 0xed, 0x5f, 0xd6, 0xf9, 0xa5, 0xe8, 0xa0, 0xfb, 0x37, 0x1c, 0x12, 0xc9, 0xb8, 0xab, 0xa0, 0xfc, 0x4d, 0xaa, 0x64, 0x84, 0xc6, 0x2f, 0x61, 0x68, 0x32, 0xca, 0x31, 0x81, 0xd3, 0x55, 0x70, 0xfe, 0x36, 0x15, 0xce, 0x69, 0x03, 0x8e, 0x1c, 0x53, 0x48, 0x23, 0x18, 0x60, 0xfe, 0x2e, 0x2d, 0x69, 0x04, 0xc7, 0x48, 0x83, 0x21, 0x95, 0x34, 0x81, 0xf2, 0xf7, 0xa9, 0x49, 0x53, 0x61, 0x04, 0x69, 0x3a, 0x4e, 0x57, 0xc1, 0xf9, 0x87, 0xd4, 0xa4, 0x45, 0x71, 0xe4, 0x98, 0x68, 0x69, 0xbc, 0x8d, 0x02, 0xd0, 0x3f, 0xa6, 0x6a, 0x69, 0xbc, 0xef, 0x4b, 0x24, 0xfa, 0x6d, 0x28, 0x83, 0x21, 0x75, 0xac, 0x44, 0x03, 0xd2, 0x3f, 0xa5, 0xa3, 0x8e, 0x79, 0x88, 0x50, 0x17, 0x8e, 0xb9, 0x25, 0x84, 0xda, 0xad, 0x7a, 0x7b, 0x03, 0x20, 0x9e, 0xce, 0x95, 0x9c, 0xf2, 0x81, 0xea, 0x50, 0x30, 0xca, 0x06, 0x99, 0xc5, 0x2c, 0x3a, 0x08, 0x16, 0x20, 0x4f, 0x9f, 0xa1, 0x26, 0xb9, 0xea, 0x50, 0x00, 0xf3, 0x40, 0x2e, 0xbf, 0x0c, 0x8d, 0x81, 0x0d, 0xd7, 0xca, 0xcf, 0x52, 0xa3, 0xc9, 0xea, 0x50, 0x00, 0x53, 0xb9, 0xd8, 0x0d, 0xad, 0xb8, 0xd2, 0x7d, 0x8e, 0x5a, 0x15, 0x42, 0x2b, 0x2e, 0x55, 0x55, 0x3c, 0x82, 0xbd, 0xe7, 0xa9, 0x51, 0x56, 0xc5, 0x23, 0x58, 0xc7, 0x23, 0xd8, 0xfb, 0x0c, 0x35, 0x72, 0x35, 0x3c, 0xd5, 0x8a, 0x8b, 0xc4, 0xcf, 0x52, 0xab, 0x61, 0x0d, 0x8f, 0x60, 0xf7, 0xe5, 0xa8, 0x00, 0x56, 0x42, 0x76, 0x7d, 0x8e, 0x9a, 0x8d, 0x54, 0x87, 0x02, 0x98, 0x2d, 0x24, 0x5a, 0x19, 0x8d, 0x73, 0x4c, 0x61, 0xf8, 0x79, 0x6a, 0x38, 0x51, 0x1d, 0x0a, 0xc0, 0x41, 0x28, 0xaf, 0xc2, 0x08, 0x40, 0x5b, 0xfd, 0x32, 0x35, 0xcb, 0x84, 0x11, 0x80, 0x3a, 0xd2, 0x51, 0x09, 0xf6, 0x7e, 0x85, 0x5a, 0xe5, 0x75, 0x54, 0x76, 0x80, 0xa0, 0xa1, 0x12, 0xec, 0xfd, 0x2a, 0x35, 0x2c, 0x46, 0x50, 0xd5, 0x68, 0xb9, 0x26, 0x79, 0x81, 0xda, 0x39, 0x61, 0xb4, 0x5c, 0x54, 0x48, 0xe6, 0x40, 0x51, 0x7c, 0x81, 0x5a, 0x8d, 0x4a, 0xe6, 0x40, 0x12, 0x84, 0x11, 0x80, 0x1e, 0xf8, 0x22, 0x35, 0x1a, 0x0b, 0x23, 0x80, 0x8e, 0xbe, 0x86, 0x8a, 0x60, 0xa3, 0xb4, 0xf3, 0x2f, 0xe5, 0xd2, 0x3f, 0xc6, 0xad, 0x0e, 0x05, 0x10, 0xaa, 0x6c, 0xe1, 0xb7, 0xa2, 0x43, 0x2a, 0x84, 0xe8, 0x2a, 0x5f, 0xce, 0x0d, 0xf4, 0x8a, 0x4d, 0x75, 0x28, 0x98, 0x94, 0x40, 0xa2, 0x8b, 0xac, 0x23, 0x18, 0xd4, 0x1a, 0xf6, 0x57, 0x72, 0x03, 0xbc, 0x5f, 0x53, 0x1d, 0x0a, 0x26, 0x98, 0x4b, 0xa5, 0x49, 0xaf, 0x22, 0x57, 0x6c, 0x5c, 0xa5, 0x43, 0x7f, 0x35, 0x97, 0xe6, 0x59, 0x74, 0x75, 0x28, 0x28, 0xf2, 0xed, 0x2e, 0xbb, 0xf1, 0x39, 0x74, 0x44, 0x07, 0x10, 0xa4, 0x7d, 0x2d, 0x97, 0xf2, 0xcd, 0x9a, 0xea, 0x50, 0x70, 0x48, 0x85, 0x11, 0x84, 0xfd, 0x18, 0xaf, 0x1c, 0xc0, 0xd4, 0xd7, 0x73, 0xd6, 0xaf, 0x09, 0xde, 0x44, 0x67, 0x0b, 0xa6, 0x14, 0x5f, 0x32, 0x37, 0x60, 0x8f, 0x2e, 0x78, 0xdf, 0x10, 0x9b, 0x74, 0x4c, 0xd9, 0xa4, 0x0b, 0x51, 0x3b, 0xdf, 0xfb, 0xa6, 0xc9, 0xce, 0x8f, 0xda, 0x2d, 0x7a, 0xdf, 0x32, 0xd9, 0x2d, 0xba, 0x27, 0xd1, 0x61, 0x9e, 0x41, 0xfa, 0x03, 0xad, 0x7b, 0xf3, 0xf2, 0x85, 0x9e, 0xaa, 0x13, 0xc0, 0x37, 0xa8, 0x3f, 0xcf, 0xba, 0x4a, 0xd0, 0x1e, 0x7d, 0x98, 0xf5, 0xbe, 0xbc, 0xfa, 0x76, 0x4f, 0xd5, 0xe1, 0x5c, 0x46, 0x9e, 0x65, 0x5d, 0x8d, 0xa6, 0xa2, 0xd3, 0x79, 0x25, 0xbd, 0x2f, 0xaf, 0xbc, 0xea, 0x53, 0x75, 0x82, 0xc3, 0xfa, 0x74, 0x5e, 0x59, 0xaf, 0x8a, 0xcf, 0xe7, 0x35, 0xf6, 0xfe, 0xbc, 0x7c, 0xef, 0x27, 0x3e, 0xfd, 0xb4, 0x78, 0x0c, 0x66, 0x5a, 0x3d, 0xc1, 0xde, 0x03, 0xf9, 0xe8, 0x4b, 0x40, 0xc6, 0x08, 0x08, 0x4e, 0x8a, 0x80, 0x60, 0xef, 0xc1, 0xbc, 0xf2, 0x46, 0x90, 0x39, 0x02, 0x82, 0x93, 0x22, 0x20, 0xd8, 0x7b, 0x28, 0x2f, 0x5f, 0x0f, 0x32, 0x47, 0xc0, 0x1e, 0x7d, 0x4d, 0x47, 0xa7, 0x8b, 0x2a, 0xfd, 0x70, 0x5e, 0x7d, 0x57, 0xa8, 0xea, 0x04, 0x47, 0x74, 0x0f, 0xa2, 0xbe, 0x5f, 0x87, 0xbc, 0x58, 0x04, 0xc2, 0xc7, 0x23, 0x79, 0xed, 0xc5, 0xa1, 0xaa, 0x13, 0x4c, 0x45, 0xa2, 0x10, 0xb5, 0xff, 0xea, 0x38, 0x95, 0xd0, 0x05, 0xde, 0x9f, 0xd7, 0xde, 0x22, 0x8a, 0xf3, 0x08, 0x7d, 0x21, 0x29, 0x10, 0x82, 0xbd, 0x0f, 0xe4, 0xd5, 0x57, 0x8a, 0x12, 0x02, 0x21, 0x38, 0x39, 0x10, 0x82, 0xbd, 0x47, 0xf3, 0xda, 0xfb, 0x45, 0x49, 0x81, 0x10, 0xec, 0x5e, 0x1f, 0xff, 0x42, 0x78, 0x63, 0x79, 0x2c, 0x6f, 0x78, 0xd9, 0x28, 0xfe, 0xcd, 0xf0, 0x86, 0x73, 0x83, 0x61, 0x63, 0x40, 0xeb, 0x79, 0x3c, 0x6f, 0x7e, 0xf3, 0xc8, 0xb0, 0x47, 0xa0, 0x2b, 0xdd, 0x14, 0xe7, 0x16, 0xfa, 0xd3, 0x13, 0xf9, 0xfe, 0xaf, 0x21, 0xc5, 0xc9, 0x86, 0x16, 0xf6, 0x5a, 0x34, 0x13, 0x75, 0xa8, 0x34, 0xb3, 0x27, 0xf3, 0x03, 0xbf, 0x93, 0x54, 0x75, 0x82, 0x69, 0x1d, 0x58, 0xfd, 0xfb, 0xf4, 0xe2, 0x78, 0xc6, 0x28, 0x4d, 0xe1, 0xa9, 0xfc, 0x00, 0x2f, 0x28, 0x55, 0x9d, 0xe0, 0x68, 0x34, 0xcf, 0x42, 0x9b, 0x99, 0x9f, 0x42, 0x63, 0x5a, 0xef, 0x7b, 0x11, 0xdf, 0x34, 0x9f, 0xb9, 0x0b, 0x21, 0xa5, 0x1f, 0xbe, 0x98, 0xc8, 0xd7, 0xa0, 0x82, 0xf6, 0x26, 0xa7, 0x2d, 0x38, 0x75, 0xa0, 0xbd, 0x13, 0x91, 0xce, 0x81, 0x72, 0x78, 0x6e, 0xed, 0xe0, 0x6a, 0x54, 0x8c, 0x1e, 0x8e, 0xbb, 0x45, 0x94, 0xbd, 0xad, 0x7e, 0x9e, 0x39, 0x39, 0x10, 0xd0, 0xff, 0x75, 0x0f, 0xa3, 0xdc, 0x1d, 0x6b, 0x8d, 0x6e, 0xdd, 0xcb, 0xb0, 0x31, 0xf8, 0x47, 0x25, 0x73, 0x85, 0x33, 0x73, 0x0d, 0x9a, 0x8c, 0x9d, 0x7c, 0xef, 0xe5, 0x20, 0xa7, 0x3a, 0x78, 0x05, 0x72, 0xe3, 0x87, 0xda, 0x7b, 0x79, 0x98, 0x34, 0x7b, 0x38, 0xbd, 0x7f, 0x0f, 0x85, 0xc4, 0x20, 0xf8, 0x29, 0xdd, 0x5e, 0x0e, 0xb2, 0xc9, 0x41, 0xec, 0xd3, 0x83, 0x9b, 0x1c, 0xc4, 0x3e, 0x3d, 0x0c, 0xab, 0x1e, 0x96, 0xd1, 0x21, 0xc3, 0xb9, 0xf0, 0x5e, 0x2e, 0x46, 0x54, 0x17, 0x2b, 0xe8, 0xb0, 0xe9, 0xb8, 0x77, 0x2f, 0x1f, 0x13, 0x66, 0x2e, 0xe5, 0x39, 0xee, 0x5e, 0x0e, 0x32, 0x7d, 0xe2, 0xd8, 0x27, 0x15, 0xf9, 0x7e, 0x71, 0xec, 0xd3, 0x47, 0xd1, 0xfc, 0x85, 0x28, 0x07, 0xaa, 0x7b, 0x79, 0x70, 0x12, 0x36, 0x85, 0x3c, 0x2a, 0xdd, 0xcb, 0xc3, 0xa8, 0x99, 0x4b, 0x79, 0x0a, 0xba, 0x97, 0x83, 0x31, 0xd5, 0xc1, 0x79, 0x74, 0xc4, 0x78, 0xb8, 0x69, 0x70, 0xf2, 0x2a, 0xd5, 0x49, 0xda, 0x87, 0xb9, 0x0a, 0xf4, 0xdd, 0xc8, 0x4b, 0x3a, 0xe2, 0x34, 0xa0, 0xdf, 0xa8, 0xa2, 0x0f, 0xf0, 0x80, 0x57, 0x59, 0xc0, 0x6b, 0xd1, 0x94, 0xf9, 0xa8, 0xd3, 0x00, 0xff, 0x23, 0x3a, 0x7c, 0xca, 0x27, 0xbe, 0x0a, 0x78, 0x17, 0x4d, 0x27, 0x9c, 0x78, 0x1a, 0xd0, 0xaf, 0xd3, 0xa9, 0xb7, 0x7d, 0x08, 0xac, 0xc5, 0x3c, 0x93, 0x7c, 0xda, 0x69, 0x40, 0x7e, 0xa5, 0x1e, 0x77, 0x8a, 0xc7, 0xc2, 0xb1, 0xdd, 0xaa, 0x9f, 0x79, 0xaa, 0x98, 0xb9, 0xbd, 0x7a, 0x09, 0x24, 0x4c, 0xe4, 0x38, 0x53, 0xf5, 0x30, 0xb9, 0x3f, 0x0f, 0xa7, 0x93, 0x3d, 0x14, 0xf6, 0xd7, 0xcf, 0xf4, 0x33, 0x48, 0xd5, 0x41, 0x76, 0xff, 0x41, 0x24, 0x78, 0x70, 0xf7, 0x1f, 0x44, 0x82, 0x87, 0xe1, 0xbd, 0x3c, 0x40, 0x09, 0x8d, 0x9e, 0x08, 0xaa, 0x2e, 0x46, 0xf6, 0x19, 0x86, 0x7e, 0xd4, 0xa7, 0x7a, 0x18, 0xdd, 0xcb, 0xc3, 0x95, 0x08, 0xc9, 0xbf, 0xc7, 0xad, 0x75, 0x49, 0x15, 0x4d, 0x9d, 0xba, 0xab, 0x53, 0x6f, 0xed, 0x6e, 0xb5, 0x5b, 0x83, 0x69, 0x2c, 0xd5, 0xd3, 0x40, 0x5a, 0x69, 0x76, 0x0e, 0x8d, 0x4a, 0xb1, 0x3d, 0x8a, 0x40, 0x17, 0x17, 0x87, 0xe8, 0xff, 0xae, 0x04, 0xcb, 0x3f, 0x7a, 0x53, 0xd1, 0x71, 0x0f, 0xa2, 0x91, 0x6b, 0xab, 0xcb, 0xc1, 0xab, 0x6f, 0x38, 0x55, 0xcc, 0x5c, 0x36, 0x7a, 0xe0, 0x9e, 0x5a, 0xf1, 0xc2, 0x85, 0x0b, 0x17, 0x32, 0xfe, 0x59, 0x34, 0x5d, 0x17, 0x8b, 0x58, 0xd5, 0xee, 0x2c, 0xba, 0x16, 0xa2, 0xd3, 0xbb, 0xa7, 0xc6, 0x58, 0x3e, 0x52, 0x8f, 0x52, 0x43, 0xbf, 0x22, 0xbf, 0x8e, 0x3c, 0x03, 0x08, 0xfc, 0x41, 0x6e, 0x83, 0xf2, 0x86, 0x1a, 0xcb, 0xd6, 0xa9, 0x18, 0x0a, 0xcb, 0x6d, 0x7f, 0x13, 0x1d, 0x35, 0xc0, 0xec, 0xda, 0xe3, 0xbc, 0xb1, 0xc6, 0x72, 0x7a, 0x3a, 0x86, 0x03, 0x25, 0x20, 0x01, 0xa8, 0x6b, 0x0f, 0xf4, 0xa6, 0x1a, 0x4b, 0xfd, 0x38, 0x10, 0x54, 0x8a, 0x64, 0xe2, 0x08, 0xb6, 0xc2, 0x79, 0x73, 0x8d, 0x55, 0x08, 0x23, 0x71, 0x04, 0xf7, 0x21, 0xce, 0x12, 0xe7, 0x2d, 0x35, 0x56, 0x47, 0xcc, 0xc4, 0x25, 0x02, 0x75, 0xed, 0x81, 0xde, 0x5a, 0x63, 0xe5, 0xc6, 0x4c, 0x1c, 0xc1, 0xfe, 0x16, 0x9a, 0x31, 0x00, 0x89, 0x93, 0x0b, 0x1b, 0xa4, 0xb7, 0xd5, 0x58, 0x55, 0xf2, 0x62, 0x48, 0xbc, 0x8a, 0xf9, 0xb7, 0xa1, 0x8b, 0x4c, 0xe4, 0xa5, 0xc1, 0x7a, 0x7b, 0x8d, 0x89, 0xd6, 0xa3, 0x71, 0xfa, 0xb8, 0xb7, 0x84, 0x0d, 0xb1, 0x01, 0xaf, 0xf6, 0x59, 0x20, 0xbd, 0xa3, 0xc6, 0xd4, 0x6d, 0x7c, 0x43, 0x30, 0x6d, 0xdc, 0x8f, 0x3e, 0xcb, 0x2f, 0xea, 0x9d, 0x35, 0xa6, 0x81, 0x13, 0xe8, 0x23, 0xb8, 0x2f, 0x7d, 0x96, 0x58, 0xef, 0xaa, 0x31, 0xad, 0x9c, 0x44, 0x5f, 0xe2, 0xfe, 0x83, 0xc3, 0x1e, 0x2b, 0xa8, 0x5e, 0x8d, 0x89, 0xea, 0xf8, 0xfe, 0x03, 0x4d, 0x9e, 0x94, 0x51, 0x70, 0xb8, 0x63, 0x03, 0xf4, 0xee, 0x1a, 0xeb, 0x02, 0x86, 0x8c, 0x82, 0x13, 0x5f, 0xf3, 0x86, 0x60, 0x67, 0x45, 0x56, 0x38, 0xef, 0xa9, 0x31, 0x89, 0x1e, 0xdf, 0x10, 0x4c, 0xe0, 0xfb, 0x0f, 0x38, 0xe8, 0x12, 0x03, 0x8e, 0x3c, 0x42, 0xb2, 0x02, 0x7b, 0x6f, 0x6d, 0x00, 0x29, 0x3f, 0x13, 0x5b, 0x62, 0xf8, 0x99, 0xff, 0xb8, 0x83, 0x4a, 0x89, 0xcb, 0xe4, 0x8f, 0x07, 0xac, 0x56, 0x7a, 0x6f, 0x6d, 0x30, 0xd9, 0x7f, 0x89, 0x79, 0xb1, 0xfc, 0x63, 0xff, 0x61, 0x07, 0x7d, 0x9f, 0x61, 0xbd, 0xca, 0x73, 0x19, 0xab, 0xd5, 0xbe, 0xaf, 0x36, 0xc8, 0x5f, 0x09, 0x17, 0xc5, 0xd6, 0x2a, 0x3f, 0xf4, 0xef, 0x73, 0xd0, 0xa5, 0xc6, 0x1e, 0x21, 0x8f, 0xf1, 0xac, 0x96, 0x7a, 0x5f, 0x2d, 0xd5, 0x9f, 0x14, 0x17, 0x1b, 0x3a, 0x4b, 0xf8, 0xa9, 0xff, 0xa8, 0x83, 0x66, 0xfb, 0x2c, 0x32, 0xcd, 0x06, 0xb8, 0xbf, 0x96, 0xf6, 0x0f, 0x90, 0x4b, 0x93, 0x96, 0x2a, 0xbe, 0xfc, 0x87, 0x1c, 0x24, 0xd3, 0x4d, 0xbf, 0x69, 0x6d, 0xb3, 0xc2, 0x07, 0x6a, 0xec, 0x71, 0x94, 0xcd, 0x9b, 0x36, 0x66, 0x01, 0x1b, 0x24, 0xac, 0xc6, 0x6f, 0xa8, 0x35, 0x46, 0x7f, 0x60, 0x64, 0x97, 0x4c, 0x3d, 0xf5, 0xba, 0xb8, 0x44, 0xd3, 0x9e, 0x2f, 0xf9, 0xdb, 0x6a, 0xe9, 0x8c, 0x3c, 0x63, 0xb2, 0xcb, 0x86, 0x9e, 0x7e, 0xdd, 0x7c, 0x3a, 0x0e, 0x08, 0xba, 0xf1, 0x76, 0xb5, 0xdb, 0x45, 0x1f, 0x4b, 0xd9, 0xed, 0xea, 0x9e, 0x76, 0x5d, 0xdd, 0x8b, 0x23, 0x72, 0x05, 0xb9, 0x6d, 0x86, 0x4c, 0x21, 0x21, 0xef, 0xef, 0xa9, 0xd7, 0xdd, 0x0d, 0x88, 0x5c, 0x4a, 0x76, 0x12, 0x69, 0xb5, 0xec, 0xb2, 0x0f, 0xf4, 0xe2, 0xd7, 0xe5, 0xcd, 0xd4, 0x12, 0xdc, 0x8f, 0x5a, 0x4b, 0xd8, 0x07, 0x7b, 0xda, 0x75, 0xfb, 0x04, 0x6a, 0x09, 0xee, 0x47, 0xad, 0x25, 0xe4, 0x43, 0x3d, 0xf5, 0xba, 0x7e, 0x02, 0xb5, 0x04, 0xfb, 0x1d, 0x55, 0xc2, 0xc4, 0x9e, 0xca, 0x59, 0x41, 0x3e, 0xdc, 0xd3, 0xaf, 0xfb, 0x1f, 0x8d, 0x83, 0x0a, 0xdd, 0x79, 0x27, 0xba, 0xd8, 0x48, 0x6d, 0x1a, 0xd8, 0x47, 0x7a, 0x91, 0x9f, 0x0b, 0x98, 0x31, 0xd0, 0x2b, 0x34, 0xe8, 0xed, 0xe6, 0x9d, 0x64, 0x2f, 0x42, 0xdf, 0xdf, 0x8b, 0xfc, 0xdc, 0x80, 0x61, 0x1b, 0x81, 0x1e, 0xed, 0xc7, 0xb0, 0xe5, 0x97, 0xfa, 0x81, 0x9e, 0xfe, 0x73, 0x05, 0x49, 0x0c, 0x13, 0xdc, 0x9f, 0x61, 0x4b, 0xd8, 0x47, 0x7b, 0x91, 0x9f, 0x3b, 0x48, 0x64, 0x98, 0x60, 0xff, 0xbc, 0x79, 0x0b, 0xa7, 0xd0, 0xa9, 0x8f, 0xf5, 0x8c, 0x3f, 0x97, 0x60, 0xd8, 0xcb, 0x5c, 0xb8, 0xbe, 0x2e, 0x21, 0x61, 0xed, 0x95, 0xeb, 0xe3, 0xbd, 0xa4, 0x9f, 0x5b, 0x30, 0xe5, 0x2e, 0xa8, 0xd9, 0xd7, 0x3b, 0xe6, 0xbd, 0x65, 0xaf, 0x67, 0x9f, 0xe8, 0xed, 0xf5, 0x7b, 0x0d, 0x86, 0xcd, 0x06, 0x5a, 0xf7, 0x09, 0x4d, 0x94, 0x99, 0x9e, 0x97, 0x5a, 0xad, 0xe4, 0xc9, 0xde, 0xf7, 0xe0, 0x07, 0x1f, 0x2e, 0x8a, 0x2f, 0x56, 0xaa, 0xde, 0xc7, 0x34, 0xd5, 0x6b, 0x7e, 0xc6, 0x6a, 0xb5, 0xe4, 0xa7, 0x7a, 0x03, 0xfd, 0x62, 0xc4, 0x25, 0xa6, 0xda, 0x2c, 0x55, 0xda, 0xba, 0x7a, 0xe4, 0xa4, 0x5d, 0x16, 0xb4, 0x5b, 0xe4, 0x77, 0x1d, 0x76, 0xb3, 0x50, 0x9e, 0x39, 0x05, 0xca, 0x15, 0x43, 0x7f, 0x43, 0x15, 0x2d, 0xfa, 0x65, 0x43, 0x2b, 0x98, 0x0f, 0x32, 0x18, 0xf5, 0xd0, 0x29, 0x50, 0xaf, 0x28, 0xfa, 0xe7, 0xd4, 0x1d, 0x1b, 0xb9, 0xac, 0x68, 0x05, 0xf4, 0x21, 0x06, 0xa4, 0x9e, 0x3a, 0x05, 0xda, 0x15, 0xc7, 0x04, 0xa4, 0x14, 0x92, 0xe1, 0xc3, 0x0c, 0xa9, 0x60, 0x40, 0xe2, 0x5a, 0x21, 0x91, 0x3b, 0xcb, 0xa2, 0xf7, 0x11, 0x06, 0x94, 0x35, 0x73, 0x47, 0x70, 0x1f, 0xee, 0x2c, 0x81, 0x3e, 0xca, 0x80, 0xdc, 0x04, 0xee, 0x12, 0x91, 0x52, 0x68, 0x82, 0x8f, 0x31, 0xa4, 0xe1, 0x04, 0xee, 0x08, 0xf6, 0x6f, 0x55, 0x0b, 0x68, 0xf4, 0xb2, 0xa7, 0x15, 0xd4, 0xc7, 0x19, 0x94, 0x7a, 0xf4, 0x14, 0xe8, 0x57, 0x44, 0xfd, 0x86, 0xda, 0x16, 0x63, 0x97, 0x45, 0xad, 0xc0, 0x3e, 0xc1, 0xc0, 0xd4, 0xb3, 0xa7, 0x20, 0x72, 0xc5, 0x34, 0x61, 0x57, 0xd8, 0xb7, 0xfd, 0x4f, 0x32, 0xa8, 0x8c, 0x61, 0x57, 0x40, 0xb3, 0xef, 0xc3, 0xa0, 0xe5, 0x97, 0xf5, 0x29, 0x86, 0x94, 0x4f, 0x62, 0x90, 0xe0, 0xbe, 0x0c, 0x5a, 0x82, 0x7d, 0x9a, 0x81, 0x15, 0x13, 0x19, 0x4c, 0xdc, 0x85, 0x29, 0xda, 0xfa, 0xd3, 0x0c, 0xcb, 0x31, 0xec, 0x42, 0xde, 0xc6, 0x13, 0x32, 0xcb, 0xbe, 0x8b, 0x3f, 0xc3, 0x90, 0x46, 0x4d, 0x99, 0x05, 0x2d, 0xdb, 0xbc, 0x2b, 0xec, 0x1b, 0xf6, 0xb3, 0x0c, 0x68, 0xcc, 0xb0, 0x2b, 0xa0, 0x2b, 0x3f, 0xa8, 0x9d, 0x40, 0x19, 0x6e, 0xfb, 0x5a, 0xa1, 0x3d, 0xc7, 0xd0, 0x06, 0x3f, 0x82, 0x0a, 0xa2, 0x77, 0x84, 0xa9, 0x7a, 0x28, 0x25, 0xae, 0x33, 0xcd, 0x09, 0xc4, 0xf3, 0x6c, 0xa9, 0xdf, 0x93, 0x33, 0xa8, 0xc0, 0x70, 0xc9, 0xd8, 0x7f, 0x44, 0x93, 0x3b, 0xa6, 0xfb, 0xc6, 0x56, 0xcb, 0xfd, 0x0c, 0x5f, 0xee, 0xc0, 0x87, 0x50, 0x41, 0xec, 0x96, 0xb2, 0x7f, 0xbf, 0x76, 0x08, 0x65, 0xbc, 0xb0, 0x6c, 0xb5, 0xd6, 0xcf, 0xf2, 0x5d, 0x90, 0xfe, 0x14, 0x2a, 0x88, 0x5f, 0x73, 0xa6, 0x72, 0x6c, 0xb6, 0xcf, 0x2a, 0xd3, 0xec, 0x81, 0xcf, 0x71, 0x52, 0x07, 0x3a, 0x86, 0x0a, 0x8c, 0xf7, 0xa4, 0xfd, 0x87, 0xd5, 0x63, 0x28, 0xfd, 0x86, 0xb3, 0xcd, 0x12, 0x3f, 0xcf, 0x96, 0x98, 0xf2, 0x1c, 0x4a, 0xbf, 0x67, 0x9d, 0xb0, 0x9c, 0x95, 0x82, 0x78, 0x55, 0xbf, 0xdb, 0xda, 0x6a, 0xb7, 0x56, 0xa6, 0xe3, 0xef, 0x48, 0xb2, 0x0f, 0x2e, 0x5b, 0x40, 0x07, 0xd5, 0xf7, 0xc4, 0x4d, 0x0f, 0x44, 0x91, 0x3b, 0x26, 0x1f, 0x88, 0xbe, 0xe0, 0xac, 0xbc, 0xe6, 0xc7, 0x6b, 0xb1, 0x65, 0x1f, 0x67, 0xcb, 0x3e, 0xd3, 0xdd, 0x38, 0xbe, 0xd5, 0xea, 0xd4, 0x77, 0x5a, 0x6b, 0x0d, 0xf6, 0x3b, 0xb7, 0x6c, 0x74, 0xf7, 0x78, 0xa3, 0xbe, 0xb9, 0x76, 0xf6, 0xfc, 0xf1, 0xa4, 0x9f, 0xc4, 0xfd, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x4a, 0x85, 0x2d, 0x80, 0x2d, 0x57, 0x00, 0x00, } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto2_20180125_92554152/test.proto000066400000000000000000000341021411250152500307360ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package google.golang.org.proto2_20180125; option go_package = "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20180125_92554152"; enum SiblingEnum { ALPHA = 0; BRAVO = 10; CHARLIE = 200; } message SiblingMessage { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; optional Message f4 = 4; } message Message { enum ChildEnum { ALPHA = 0; BRAVO = 1; CHARLIE = 2; } message ChildMessage { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; optional Message f4 = 4; } optional group NamedGroup = 1 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; optional Message f4 = 4; } // Optional fields. optional bool optional_bool = 100; optional int32 optional_int32 = 101; optional sint32 optional_sint32 = 102; optional uint32 optional_uint32 = 103; optional int64 optional_int64 = 104; optional sint64 optional_sint64 = 105; optional uint64 optional_uint64 = 106; optional fixed32 optional_fixed32 = 107; optional sfixed32 optional_sfixed32 = 108; optional float optional_float = 109; optional fixed64 optional_fixed64 = 110; optional sfixed64 optional_sfixed64 = 111; optional double optional_double = 112; optional string optional_string = 113; optional bytes optional_bytes = 114; optional ChildEnum optional_child_enum = 115; optional ChildMessage optional_child_message = 116; optional NamedGroup optional_named_group = 117; optional SiblingEnum optional_sibling_enum = 118; optional SiblingMessage optional_sibling_message = 119; optional group OptionalGroup = 120 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Optional default fields. optional bool defaulted_bool = 200 [default = true]; optional int32 defaulted_int32 = 201 [default = -12345]; optional sint32 defaulted_sint32 = 202 [default = -3200]; optional uint32 defaulted_uint32 = 203 [default = 3200]; optional int64 defaulted_int64 = 204 [default = -123456789]; optional sint64 defaulted_sint64 = 205 [default = -6400]; optional uint64 defaulted_uint64 = 206 [default = 6400]; optional fixed32 defaulted_fixed32 = 207 [default = 320000]; optional sfixed32 defaulted_sfixed32 = 208 [default = -320000]; optional float defaulted_float = 209 [default = 3.14159]; optional fixed64 defaulted_fixed64 = 210 [default = 640000]; optional sfixed64 defaulted_sfixed64 = 211 [default = -640000]; optional double defaulted_double = 212 [default = 3.14159265359]; optional string defaulted_string = 213 [default = "hello, \"world!\"\n"]; optional bytes defaulted_bytes = 214 [default = "dead\xde\xad\xbe\xefbeef"]; optional ChildEnum defaulted_child_enum = 215 [default = ALPHA]; optional SiblingEnum defaulted_sibling_enum = 216 [default = ALPHA]; // Required fields. required bool required_bool = 300; required int32 required_int32 = 301; required sint32 required_sint32 = 302; required uint32 required_uint32 = 303; required int64 required_int64 = 304; required sint64 required_sint64 = 305; required uint64 required_uint64 = 306; required fixed32 required_fixed32 = 307; required sfixed32 required_sfixed32 = 308; required float required_float = 309; required fixed64 required_fixed64 = 310; required sfixed64 required_sfixed64 = 311; required double required_double = 312; required string required_string = 313; required bytes required_bytes = 314; required ChildEnum required_child_enum = 315; required ChildMessage required_child_message = 316; required NamedGroup required_named_group = 317; required SiblingEnum required_sibling_enum = 318; required SiblingMessage required_sibling_message = 319; required group RequiredGroup = 320 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Required default fields. required bool required_defaulted_bool = 400 [default = true]; required int32 required_defaulted_int32 = 401 [default = -12345]; required sint32 required_defaulted_sint32 = 402 [default = -3200]; required uint32 required_defaulted_uint32 = 403 [default = 3200]; required int64 required_defaulted_int64 = 404 [default = -123456789]; required sint64 required_defaulted_sint64 = 405 [default = -6400]; required uint64 required_defaulted_uint64 = 406 [default = 6400]; required fixed32 required_defaulted_fixed32 = 407 [default = 320000]; required sfixed32 required_defaulted_sfixed32 = 408 [default = -320000]; required float required_defaulted_float = 409 [default = 3.14159]; required fixed64 required_defaulted_fixed64 = 410 [default = 640000]; required sfixed64 required_defaulted_sfixed64 = 411 [default = -640000]; required double required_defaulted_double = 412 [default = 3.14159265359]; required string required_defaulted_string = 413 [default = "hello, \"world!\"\n"]; required bytes required_defaulted_bytes = 414 [default = "dead\xde\xad\xbe\xefbeef"]; required ChildEnum required_defaulted_child_enum = 415 [default = ALPHA]; required SiblingEnum required_defaulted_sibling_enum = 416 [default = ALPHA]; // Repeated fields. repeated bool repeated_bool = 500; repeated int32 repeated_int32 = 501; repeated sint32 repeated_sint32 = 502; repeated uint32 repeated_uint32 = 503; repeated int64 repeated_int64 = 504; repeated sint64 repeated_sint64 = 505; repeated uint64 repeated_uint64 = 506; repeated fixed32 repeated_fixed32 = 507; repeated sfixed32 repeated_sfixed32 = 508; repeated float repeated_float = 509; repeated fixed64 repeated_fixed64 = 510; repeated sfixed64 repeated_sfixed64 = 511; repeated double repeated_double = 512; repeated string repeated_string = 513; repeated bytes repeated_bytes = 514; repeated ChildEnum repeated_child_enum = 515; repeated ChildMessage repeated_child_message = 516; repeated NamedGroup repeated_named_group = 517; repeated SiblingEnum repeated_sibling_enum = 518; repeated SiblingMessage repeated_sibling_message = 519; repeated group RepeatedGroup = 520 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Map fields. map map_bool_bool = 600; map map_bool_int32 = 601; map map_bool_sint32 = 602; map map_bool_uint32 = 603; map map_bool_int64 = 604; map map_bool_sint64 = 605; map map_bool_uint64 = 606; map map_bool_fixed32 = 607; map map_bool_sfixed32 = 608; map map_bool_float = 609; map map_bool_fixed64 = 610; map map_bool_sfixed64 = 611; map map_bool_double = 612; map map_bool_string = 613; map map_bool_bytes = 614; map map_bool_child_enum = 615; map map_bool_child_message = 616; map map_bool_named_group = 617; map map_bool_sibling_enum = 618; map map_bool_sibling_message = 619; map map_int32_bool = 620; map map_sint32_bool = 621; map map_uint32_bool = 622; map map_int64_bool = 623; map map_sint64_bool = 624; map map_uint64_bool = 625; map map_fixed32_bool = 626; map map_string_bool = 627; // Oneof fields. oneof oneof_union { bool oneof_bool = 700; int32 oneof_int32 = 701; sint32 oneof_sint32 = 702; uint32 oneof_uint32 = 703; int64 oneof_int64 = 704; sint64 oneof_sint64 = 705; uint64 oneof_uint64 = 706; fixed32 oneof_fixed32 = 707; sfixed32 oneof_sfixed32 = 708; float oneof_float = 709; fixed64 oneof_fixed64 = 710; sfixed64 oneof_sfixed64 = 711; double oneof_double = 712; string oneof_string = 713; bytes oneof_bytes = 714; ChildEnum oneof_child_enum = 715; ChildMessage oneof_child_message = 716; NamedGroup oneof_named_group = 717; SiblingEnum oneof_sibling_enum = 718; SiblingMessage oneof_sibling_message = 719; group OneofGroup = 720 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } string oneof_string1 = 721; string oneof_string2 = 722; string oneof_string3 = 723; } // Oneof default fields. oneof oneof_defaulted_union { bool oneof_defaulted_bool = 800 [default = true]; int32 oneof_defaulted_int32 = 801 [default = -12345]; sint32 oneof_defaulted_sint32 = 802 [default = -3200]; uint32 oneof_defaulted_uint32 = 803 [default = 3200]; int64 oneof_defaulted_int64 = 804 [default = -123456789]; sint64 oneof_defaulted_sint64 = 805 [default = -6400]; uint64 oneof_defaulted_uint64 = 806 [default = 6400]; fixed32 oneof_defaulted_fixed32 = 807 [default = 320000]; sfixed32 oneof_defaulted_sfixed32 = 808 [default = -320000]; float oneof_defaulted_float = 809 [default = 3.14159]; fixed64 oneof_defaulted_fixed64 = 810 [default = 640000]; sfixed64 oneof_defaulted_sfixed64 = 811 [default = -640000]; double oneof_defaulted_double = 812 [default = 3.14159265359]; string oneof_defaulted_string = 813 [default = "hello, \"world!\"\n"]; bytes oneof_defaulted_bytes = 814 [default = "dead\xde\xad\xbe\xefbeef"]; ChildEnum oneof_defaulted_child_enum = 815 [default = ALPHA]; SiblingEnum oneof_defaulted_sibling_enum = 816 [default = ALPHA]; } // Extension fields. extend Message { // Optional fields. optional bool extension_optional_bool = 10000; optional int32 extension_optional_int32 = 10001; optional sint32 extension_optional_sint32 = 10002; optional uint32 extension_optional_uint32 = 10003; optional int64 extension_optional_int64 = 10004; optional sint64 extension_optional_sint64 = 10005; optional uint64 extension_optional_uint64 = 10006; optional fixed32 extension_optional_fixed32 = 10007; optional sfixed32 extension_optional_sfixed32 = 10008; optional float extension_optional_float = 10009; optional fixed64 extension_optional_fixed64 = 10010; optional sfixed64 extension_optional_sfixed64 = 10011; optional double extension_optional_double = 10012; optional string extension_optional_string = 10013; optional bytes extension_optional_bytes = 10014; optional ChildEnum extension_optional_child_enum = 10015; optional ChildMessage extension_optional_child_message = 10016; optional NamedGroup extension_optional_named_group = 10017; optional SiblingEnum extension_optional_sibling_enum = 10018; optional SiblingMessage extension_optional_sibling_message = 10019; optional group ExtensionOptionalGroup = 10020 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Optional default fields. optional bool extension_defaulted_bool = 20000 [default = true]; optional int32 extension_defaulted_int32 = 20001 [default = -12345]; optional sint32 extension_defaulted_sint32 = 20002 [default = -3200]; optional uint32 extension_defaulted_uint32 = 20003 [default = 3200]; optional int64 extension_defaulted_int64 = 20004 [default = -123456789]; optional sint64 extension_defaulted_sint64 = 20005 [default = -6400]; optional uint64 extension_defaulted_uint64 = 20006 [default = 6400]; optional fixed32 extension_defaulted_fixed32 = 20007 [default = 320000]; optional sfixed32 extension_defaulted_sfixed32 = 20008 [default = -320000]; optional float extension_defaulted_float = 20009 [default = 3.14159]; optional fixed64 extension_defaulted_fixed64 = 20010 [default = 640000]; optional sfixed64 extension_defaulted_sfixed64 = 20011 [default = -640000]; optional double extension_defaulted_double = 20012 [default = 3.14159265359]; optional string extension_defaulted_string = 20013 [default = "hello, \"world!\"\n"]; optional bytes extension_defaulted_bytes = 20014 [default = "dead\xde\xad\xbe\xefbeef"]; optional ChildEnum extension_defaulted_child_enum = 20015 [default = ALPHA]; optional SiblingEnum extension_defaulted_sibling_enum = 20016 [default = ALPHA]; // Repeated fields. repeated bool extension_repeated_bool = 30000; repeated int32 extension_repeated_int32 = 30001; repeated sint32 extension_repeated_sint32 = 30002; repeated uint32 extension_repeated_uint32 = 30003; repeated int64 extension_repeated_int64 = 30004; repeated sint64 extension_repeated_sint64 = 30005; repeated uint64 extension_repeated_uint64 = 30006; repeated fixed32 extension_repeated_fixed32 = 30007; repeated sfixed32 extension_repeated_sfixed32 = 30008; repeated float extension_repeated_float = 30009; repeated fixed64 extension_repeated_fixed64 = 30010; repeated sfixed64 extension_repeated_sfixed64 = 30011; repeated double extension_repeated_double = 30012; repeated string extension_repeated_string = 30013; repeated bytes extension_repeated_bytes = 30014; repeated ChildEnum extension_repeated_child_enum = 30015; repeated ChildMessage extension_repeated_child_message = 30016; repeated NamedGroup extension_repeated_named_group = 30017; repeated SiblingEnum extension_repeated_sibling_enum = 30018; repeated SiblingMessage extension_repeated_sibling_message = 30019; repeated group ExtensionRepeatedGroup = 30020 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } } extensions 10000 to max; } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto2_20180430_b4deda09/000077500000000000000000000000001411250152500272455ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto2_20180430_b4deda09/test.pb.go000066400000000000000000005026041411250152500311620ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: proto2_20180430_b4deda09/test.proto package proto2_20180430_b4deda09 // import "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20180430_b4deda09" import proto "google.golang.org/protobuf/internal/protolegacy" import fmt "fmt" import math "math" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. // A compilation error at this line likely means your copy of the // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type SiblingEnum int32 const ( SiblingEnum_ALPHA SiblingEnum = 0 SiblingEnum_BRAVO SiblingEnum = 10 SiblingEnum_CHARLIE SiblingEnum = 200 ) var SiblingEnum_name = map[int32]string{ 0: "ALPHA", 10: "BRAVO", 200: "CHARLIE", } var SiblingEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 10, "CHARLIE": 200, } func (x SiblingEnum) Enum() *SiblingEnum { p := new(SiblingEnum) *p = x return p } func (x SiblingEnum) String() string { return proto.EnumName(SiblingEnum_name, int32(x)) } func (x *SiblingEnum) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(SiblingEnum_value, data, "SiblingEnum") if err != nil { return err } *x = SiblingEnum(value) return nil } func (SiblingEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor_test_a365478be18be824, []int{0} } type Message_ChildEnum int32 const ( Message_ALPHA Message_ChildEnum = 0 Message_BRAVO Message_ChildEnum = 1 Message_CHARLIE Message_ChildEnum = 2 ) var Message_ChildEnum_name = map[int32]string{ 0: "ALPHA", 1: "BRAVO", 2: "CHARLIE", } var Message_ChildEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 1, "CHARLIE": 2, } func (x Message_ChildEnum) Enum() *Message_ChildEnum { p := new(Message_ChildEnum) *p = x return p } func (x Message_ChildEnum) String() string { return proto.EnumName(Message_ChildEnum_name, int32(x)) } func (x *Message_ChildEnum) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(Message_ChildEnum_value, data, "Message_ChildEnum") if err != nil { return err } *x = Message_ChildEnum(value) return nil } func (Message_ChildEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor_test_a365478be18be824, []int{1, 0} } type SiblingMessage struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` F4 *Message `protobuf:"bytes,4,opt,name=f4" json:"f4,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *SiblingMessage) Reset() { *m = SiblingMessage{} } func (m *SiblingMessage) String() string { return proto.CompactTextString(m) } func (*SiblingMessage) ProtoMessage() {} func (*SiblingMessage) Descriptor() ([]byte, []int) { return fileDescriptor_test_a365478be18be824, []int{0} } func (m *SiblingMessage) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SiblingMessage.Unmarshal(m, b) } func (m *SiblingMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_SiblingMessage.Marshal(b, m, deterministic) } func (dst *SiblingMessage) XXX_Merge(src proto.Message) { xxx_messageInfo_SiblingMessage.Merge(dst, src) } func (m *SiblingMessage) XXX_Size() int { return xxx_messageInfo_SiblingMessage.Size(m) } func (m *SiblingMessage) XXX_DiscardUnknown() { xxx_messageInfo_SiblingMessage.DiscardUnknown(m) } var xxx_messageInfo_SiblingMessage proto.InternalMessageInfo func (m *SiblingMessage) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *SiblingMessage) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *SiblingMessage) GetF3() []string { if m != nil { return m.F3 } return nil } func (m *SiblingMessage) GetF4() *Message { if m != nil { return m.F4 } return nil } type Message struct { Namedgroup *Message_NamedGroup `protobuf:"group,1,opt,name=NamedGroup,json=namedgroup" json:"namedgroup,omitempty"` // Optional fields. OptionalBool *bool `protobuf:"varint,100,opt,name=optional_bool,json=optionalBool" json:"optional_bool,omitempty"` OptionalInt32 *int32 `protobuf:"varint,101,opt,name=optional_int32,json=optionalInt32" json:"optional_int32,omitempty"` OptionalSint32 *int32 `protobuf:"zigzag32,102,opt,name=optional_sint32,json=optionalSint32" json:"optional_sint32,omitempty"` OptionalUint32 *uint32 `protobuf:"varint,103,opt,name=optional_uint32,json=optionalUint32" json:"optional_uint32,omitempty"` OptionalInt64 *int64 `protobuf:"varint,104,opt,name=optional_int64,json=optionalInt64" json:"optional_int64,omitempty"` OptionalSint64 *int64 `protobuf:"zigzag64,105,opt,name=optional_sint64,json=optionalSint64" json:"optional_sint64,omitempty"` OptionalUint64 *uint64 `protobuf:"varint,106,opt,name=optional_uint64,json=optionalUint64" json:"optional_uint64,omitempty"` OptionalFixed32 *uint32 `protobuf:"fixed32,107,opt,name=optional_fixed32,json=optionalFixed32" json:"optional_fixed32,omitempty"` OptionalSfixed32 *int32 `protobuf:"fixed32,108,opt,name=optional_sfixed32,json=optionalSfixed32" json:"optional_sfixed32,omitempty"` OptionalFloat *float32 `protobuf:"fixed32,109,opt,name=optional_float,json=optionalFloat" json:"optional_float,omitempty"` OptionalFixed64 *uint64 `protobuf:"fixed64,110,opt,name=optional_fixed64,json=optionalFixed64" json:"optional_fixed64,omitempty"` OptionalSfixed64 *int64 `protobuf:"fixed64,111,opt,name=optional_sfixed64,json=optionalSfixed64" json:"optional_sfixed64,omitempty"` OptionalDouble *float64 `protobuf:"fixed64,112,opt,name=optional_double,json=optionalDouble" json:"optional_double,omitempty"` OptionalString *string `protobuf:"bytes,113,opt,name=optional_string,json=optionalString" json:"optional_string,omitempty"` OptionalBytes []byte `protobuf:"bytes,114,opt,name=optional_bytes,json=optionalBytes" json:"optional_bytes,omitempty"` OptionalChildEnum *Message_ChildEnum `protobuf:"varint,115,opt,name=optional_child_enum,json=optionalChildEnum,enum=google.golang.org.proto2_20180430.Message_ChildEnum" json:"optional_child_enum,omitempty"` OptionalChildMessage *Message_ChildMessage `protobuf:"bytes,116,opt,name=optional_child_message,json=optionalChildMessage" json:"optional_child_message,omitempty"` OptionalNamedGroup *Message_NamedGroup `protobuf:"bytes,117,opt,name=optional_named_group,json=optionalNamedGroup" json:"optional_named_group,omitempty"` OptionalSiblingEnum *SiblingEnum `protobuf:"varint,118,opt,name=optional_sibling_enum,json=optionalSiblingEnum,enum=google.golang.org.proto2_20180430.SiblingEnum" json:"optional_sibling_enum,omitempty"` OptionalSiblingMessage *SiblingMessage `protobuf:"bytes,119,opt,name=optional_sibling_message,json=optionalSiblingMessage" json:"optional_sibling_message,omitempty"` Optionalgroup *Message_OptionalGroup `protobuf:"group,120,opt,name=OptionalGroup,json=optionalgroup" json:"optionalgroup,omitempty"` // Optional default fields. DefaultedBool *bool `protobuf:"varint,200,opt,name=defaulted_bool,json=defaultedBool,def=1" json:"defaulted_bool,omitempty"` DefaultedInt32 *int32 `protobuf:"varint,201,opt,name=defaulted_int32,json=defaultedInt32,def=-12345" json:"defaulted_int32,omitempty"` DefaultedSint32 *int32 `protobuf:"zigzag32,202,opt,name=defaulted_sint32,json=defaultedSint32,def=-3200" json:"defaulted_sint32,omitempty"` DefaultedUint32 *uint32 `protobuf:"varint,203,opt,name=defaulted_uint32,json=defaultedUint32,def=3200" json:"defaulted_uint32,omitempty"` DefaultedInt64 *int64 `protobuf:"varint,204,opt,name=defaulted_int64,json=defaultedInt64,def=-123456789" json:"defaulted_int64,omitempty"` DefaultedSint64 *int64 `protobuf:"zigzag64,205,opt,name=defaulted_sint64,json=defaultedSint64,def=-6400" json:"defaulted_sint64,omitempty"` DefaultedUint64 *uint64 `protobuf:"varint,206,opt,name=defaulted_uint64,json=defaultedUint64,def=6400" json:"defaulted_uint64,omitempty"` DefaultedFixed32 *uint32 `protobuf:"fixed32,207,opt,name=defaulted_fixed32,json=defaultedFixed32,def=320000" json:"defaulted_fixed32,omitempty"` DefaultedSfixed32 *int32 `protobuf:"fixed32,208,opt,name=defaulted_sfixed32,json=defaultedSfixed32,def=-320000" json:"defaulted_sfixed32,omitempty"` DefaultedFloat *float32 `protobuf:"fixed32,209,opt,name=defaulted_float,json=defaultedFloat,def=3.14159" json:"defaulted_float,omitempty"` DefaultedFixed64 *uint64 `protobuf:"fixed64,210,opt,name=defaulted_fixed64,json=defaultedFixed64,def=640000" json:"defaulted_fixed64,omitempty"` DefaultedSfixed64 *int64 `protobuf:"fixed64,211,opt,name=defaulted_sfixed64,json=defaultedSfixed64,def=-640000" json:"defaulted_sfixed64,omitempty"` DefaultedDouble *float64 `protobuf:"fixed64,212,opt,name=defaulted_double,json=defaultedDouble,def=3.14159265359" json:"defaulted_double,omitempty"` DefaultedString *string `protobuf:"bytes,213,opt,name=defaulted_string,json=defaultedString,def=hello, \"world!\"\n" json:"defaulted_string,omitempty"` DefaultedBytes []byte `protobuf:"bytes,214,opt,name=defaulted_bytes,json=defaultedBytes,def=dead\\336\\255\\276\\357beef" json:"defaulted_bytes,omitempty"` DefaultedChildEnum *Message_ChildEnum `protobuf:"varint,215,opt,name=defaulted_child_enum,json=defaultedChildEnum,enum=google.golang.org.proto2_20180430.Message_ChildEnum,def=0" json:"defaulted_child_enum,omitempty"` DefaultedSiblingEnum *SiblingEnum `protobuf:"varint,216,opt,name=defaulted_sibling_enum,json=defaultedSiblingEnum,enum=google.golang.org.proto2_20180430.SiblingEnum,def=0" json:"defaulted_sibling_enum,omitempty"` // Required fields. RequiredBool *bool `protobuf:"varint,300,req,name=required_bool,json=requiredBool" json:"required_bool,omitempty"` RequiredInt32 *int32 `protobuf:"varint,301,req,name=required_int32,json=requiredInt32" json:"required_int32,omitempty"` RequiredSint32 *int32 `protobuf:"zigzag32,302,req,name=required_sint32,json=requiredSint32" json:"required_sint32,omitempty"` RequiredUint32 *uint32 `protobuf:"varint,303,req,name=required_uint32,json=requiredUint32" json:"required_uint32,omitempty"` RequiredInt64 *int64 `protobuf:"varint,304,req,name=required_int64,json=requiredInt64" json:"required_int64,omitempty"` RequiredSint64 *int64 `protobuf:"zigzag64,305,req,name=required_sint64,json=requiredSint64" json:"required_sint64,omitempty"` RequiredUint64 *uint64 `protobuf:"varint,306,req,name=required_uint64,json=requiredUint64" json:"required_uint64,omitempty"` RequiredFixed32 *uint32 `protobuf:"fixed32,307,req,name=required_fixed32,json=requiredFixed32" json:"required_fixed32,omitempty"` RequiredSfixed32 *int32 `protobuf:"fixed32,308,req,name=required_sfixed32,json=requiredSfixed32" json:"required_sfixed32,omitempty"` RequiredFloat *float32 `protobuf:"fixed32,309,req,name=required_float,json=requiredFloat" json:"required_float,omitempty"` RequiredFixed64 *uint64 `protobuf:"fixed64,310,req,name=required_fixed64,json=requiredFixed64" json:"required_fixed64,omitempty"` RequiredSfixed64 *int64 `protobuf:"fixed64,311,req,name=required_sfixed64,json=requiredSfixed64" json:"required_sfixed64,omitempty"` RequiredDouble *float64 `protobuf:"fixed64,312,req,name=required_double,json=requiredDouble" json:"required_double,omitempty"` RequiredString *string `protobuf:"bytes,313,req,name=required_string,json=requiredString" json:"required_string,omitempty"` RequiredBytes []byte `protobuf:"bytes,314,req,name=required_bytes,json=requiredBytes" json:"required_bytes,omitempty"` RequiredChildEnum *Message_ChildEnum `protobuf:"varint,315,req,name=required_child_enum,json=requiredChildEnum,enum=google.golang.org.proto2_20180430.Message_ChildEnum" json:"required_child_enum,omitempty"` RequiredChildMessage *Message_ChildMessage `protobuf:"bytes,316,req,name=required_child_message,json=requiredChildMessage" json:"required_child_message,omitempty"` RequiredNamedGroup *Message_NamedGroup `protobuf:"bytes,317,req,name=required_named_group,json=requiredNamedGroup" json:"required_named_group,omitempty"` RequiredSiblingEnum *SiblingEnum `protobuf:"varint,318,req,name=required_sibling_enum,json=requiredSiblingEnum,enum=google.golang.org.proto2_20180430.SiblingEnum" json:"required_sibling_enum,omitempty"` RequiredSiblingMessage *SiblingMessage `protobuf:"bytes,319,req,name=required_sibling_message,json=requiredSiblingMessage" json:"required_sibling_message,omitempty"` Requiredgroup *Message_RequiredGroup `protobuf:"group,320,req,name=RequiredGroup,json=requiredgroup" json:"requiredgroup,omitempty"` // Required default fields. RequiredDefaultedBool *bool `protobuf:"varint,400,req,name=required_defaulted_bool,json=requiredDefaultedBool,def=1" json:"required_defaulted_bool,omitempty"` RequiredDefaultedInt32 *int32 `protobuf:"varint,401,req,name=required_defaulted_int32,json=requiredDefaultedInt32,def=-12345" json:"required_defaulted_int32,omitempty"` RequiredDefaultedSint32 *int32 `protobuf:"zigzag32,402,req,name=required_defaulted_sint32,json=requiredDefaultedSint32,def=-3200" json:"required_defaulted_sint32,omitempty"` RequiredDefaultedUint32 *uint32 `protobuf:"varint,403,req,name=required_defaulted_uint32,json=requiredDefaultedUint32,def=3200" json:"required_defaulted_uint32,omitempty"` RequiredDefaultedInt64 *int64 `protobuf:"varint,404,req,name=required_defaulted_int64,json=requiredDefaultedInt64,def=-123456789" json:"required_defaulted_int64,omitempty"` RequiredDefaultedSint64 *int64 `protobuf:"zigzag64,405,req,name=required_defaulted_sint64,json=requiredDefaultedSint64,def=-6400" json:"required_defaulted_sint64,omitempty"` RequiredDefaultedUint64 *uint64 `protobuf:"varint,406,req,name=required_defaulted_uint64,json=requiredDefaultedUint64,def=6400" json:"required_defaulted_uint64,omitempty"` RequiredDefaultedFixed32 *uint32 `protobuf:"fixed32,407,req,name=required_defaulted_fixed32,json=requiredDefaultedFixed32,def=320000" json:"required_defaulted_fixed32,omitempty"` RequiredDefaultedSfixed32 *int32 `protobuf:"fixed32,408,req,name=required_defaulted_sfixed32,json=requiredDefaultedSfixed32,def=-320000" json:"required_defaulted_sfixed32,omitempty"` RequiredDefaultedFloat *float32 `protobuf:"fixed32,409,req,name=required_defaulted_float,json=requiredDefaultedFloat,def=3.14159" json:"required_defaulted_float,omitempty"` RequiredDefaultedFixed64 *uint64 `protobuf:"fixed64,410,req,name=required_defaulted_fixed64,json=requiredDefaultedFixed64,def=640000" json:"required_defaulted_fixed64,omitempty"` RequiredDefaultedSfixed64 *int64 `protobuf:"fixed64,411,req,name=required_defaulted_sfixed64,json=requiredDefaultedSfixed64,def=-640000" json:"required_defaulted_sfixed64,omitempty"` RequiredDefaultedDouble *float64 `protobuf:"fixed64,412,req,name=required_defaulted_double,json=requiredDefaultedDouble,def=3.14159265359" json:"required_defaulted_double,omitempty"` RequiredDefaultedString *string `protobuf:"bytes,413,req,name=required_defaulted_string,json=requiredDefaultedString,def=hello, \"world!\"\n" json:"required_defaulted_string,omitempty"` RequiredDefaultedBytes []byte `protobuf:"bytes,414,req,name=required_defaulted_bytes,json=requiredDefaultedBytes,def=dead\\336\\255\\276\\357beef" json:"required_defaulted_bytes,omitempty"` RequiredDefaultedChildEnum *Message_ChildEnum `protobuf:"varint,415,req,name=required_defaulted_child_enum,json=requiredDefaultedChildEnum,enum=google.golang.org.proto2_20180430.Message_ChildEnum,def=0" json:"required_defaulted_child_enum,omitempty"` RequiredDefaultedSiblingEnum *SiblingEnum `protobuf:"varint,416,req,name=required_defaulted_sibling_enum,json=requiredDefaultedSiblingEnum,enum=google.golang.org.proto2_20180430.SiblingEnum,def=0" json:"required_defaulted_sibling_enum,omitempty"` // Repeated fields. RepeatedBool []bool `protobuf:"varint,500,rep,name=repeated_bool,json=repeatedBool" json:"repeated_bool,omitempty"` RepeatedInt32 []int32 `protobuf:"varint,501,rep,name=repeated_int32,json=repeatedInt32" json:"repeated_int32,omitempty"` RepeatedSint32 []int32 `protobuf:"zigzag32,502,rep,name=repeated_sint32,json=repeatedSint32" json:"repeated_sint32,omitempty"` RepeatedUint32 []uint32 `protobuf:"varint,503,rep,name=repeated_uint32,json=repeatedUint32" json:"repeated_uint32,omitempty"` RepeatedInt64 []int64 `protobuf:"varint,504,rep,name=repeated_int64,json=repeatedInt64" json:"repeated_int64,omitempty"` RepeatedSint64 []int64 `protobuf:"zigzag64,505,rep,name=repeated_sint64,json=repeatedSint64" json:"repeated_sint64,omitempty"` RepeatedUint64 []uint64 `protobuf:"varint,506,rep,name=repeated_uint64,json=repeatedUint64" json:"repeated_uint64,omitempty"` RepeatedFixed32 []uint32 `protobuf:"fixed32,507,rep,name=repeated_fixed32,json=repeatedFixed32" json:"repeated_fixed32,omitempty"` RepeatedSfixed32 []int32 `protobuf:"fixed32,508,rep,name=repeated_sfixed32,json=repeatedSfixed32" json:"repeated_sfixed32,omitempty"` RepeatedFloat []float32 `protobuf:"fixed32,509,rep,name=repeated_float,json=repeatedFloat" json:"repeated_float,omitempty"` RepeatedFixed64 []uint64 `protobuf:"fixed64,510,rep,name=repeated_fixed64,json=repeatedFixed64" json:"repeated_fixed64,omitempty"` RepeatedSfixed64 []int64 `protobuf:"fixed64,511,rep,name=repeated_sfixed64,json=repeatedSfixed64" json:"repeated_sfixed64,omitempty"` RepeatedDouble []float64 `protobuf:"fixed64,512,rep,name=repeated_double,json=repeatedDouble" json:"repeated_double,omitempty"` RepeatedString []string `protobuf:"bytes,513,rep,name=repeated_string,json=repeatedString" json:"repeated_string,omitempty"` RepeatedBytes [][]byte `protobuf:"bytes,514,rep,name=repeated_bytes,json=repeatedBytes" json:"repeated_bytes,omitempty"` RepeatedChildEnum []Message_ChildEnum `protobuf:"varint,515,rep,name=repeated_child_enum,json=repeatedChildEnum,enum=google.golang.org.proto2_20180430.Message_ChildEnum" json:"repeated_child_enum,omitempty"` RepeatedChildMessage []*Message_ChildMessage `protobuf:"bytes,516,rep,name=repeated_child_message,json=repeatedChildMessage" json:"repeated_child_message,omitempty"` RepeatedNamedGroup []*Message_NamedGroup `protobuf:"bytes,517,rep,name=repeated_named_group,json=repeatedNamedGroup" json:"repeated_named_group,omitempty"` RepeatedSiblingEnum []SiblingEnum `protobuf:"varint,518,rep,name=repeated_sibling_enum,json=repeatedSiblingEnum,enum=google.golang.org.proto2_20180430.SiblingEnum" json:"repeated_sibling_enum,omitempty"` RepeatedSiblingMessage []*SiblingMessage `protobuf:"bytes,519,rep,name=repeated_sibling_message,json=repeatedSiblingMessage" json:"repeated_sibling_message,omitempty"` Repeatedgroup []*Message_RepeatedGroup `protobuf:"group,520,rep,name=RepeatedGroup,json=repeatedgroup" json:"repeatedgroup,omitempty"` // Map fields. MapBoolBool map[bool]bool `protobuf:"bytes,600,rep,name=map_bool_bool,json=mapBoolBool" json:"map_bool_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolInt32 map[bool]int32 `protobuf:"bytes,601,rep,name=map_bool_int32,json=mapBoolInt32" json:"map_bool_int32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolSint32 map[bool]int32 `protobuf:"bytes,602,rep,name=map_bool_sint32,json=mapBoolSint32" json:"map_bool_sint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` MapBoolUint32 map[bool]uint32 `protobuf:"bytes,603,rep,name=map_bool_uint32,json=mapBoolUint32" json:"map_bool_uint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolInt64 map[bool]int64 `protobuf:"bytes,604,rep,name=map_bool_int64,json=mapBoolInt64" json:"map_bool_int64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolSint64 map[bool]int64 `protobuf:"bytes,605,rep,name=map_bool_sint64,json=mapBoolSint64" json:"map_bool_sint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` MapBoolUint64 map[bool]uint64 `protobuf:"bytes,606,rep,name=map_bool_uint64,json=mapBoolUint64" json:"map_bool_uint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolFixed32 map[bool]uint32 `protobuf:"bytes,607,rep,name=map_bool_fixed32,json=mapBoolFixed32" json:"map_bool_fixed32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolSfixed32 map[bool]int32 `protobuf:"bytes,608,rep,name=map_bool_sfixed32,json=mapBoolSfixed32" json:"map_bool_sfixed32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolFloat map[bool]float32 `protobuf:"bytes,609,rep,name=map_bool_float,json=mapBoolFloat" json:"map_bool_float,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolFixed64 map[bool]uint64 `protobuf:"bytes,610,rep,name=map_bool_fixed64,json=mapBoolFixed64" json:"map_bool_fixed64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolSfixed64 map[bool]int64 `protobuf:"bytes,611,rep,name=map_bool_sfixed64,json=mapBoolSfixed64" json:"map_bool_sfixed64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolDouble map[bool]float64 `protobuf:"bytes,612,rep,name=map_bool_double,json=mapBoolDouble" json:"map_bool_double,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolString map[bool]string `protobuf:"bytes,613,rep,name=map_bool_string,json=mapBoolString" json:"map_bool_string,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolBytes map[bool][]byte `protobuf:"bytes,614,rep,name=map_bool_bytes,json=mapBoolBytes" json:"map_bool_bytes,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolChildEnum map[bool]Message_ChildEnum `protobuf:"bytes,615,rep,name=map_bool_child_enum,json=mapBoolChildEnum" json:"map_bool_child_enum,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.golang.org.proto2_20180430.Message_ChildEnum"` MapBoolChildMessage map[bool]*Message_ChildMessage `protobuf:"bytes,616,rep,name=map_bool_child_message,json=mapBoolChildMessage" json:"map_bool_child_message,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolNamedGroup map[bool]*Message_NamedGroup `protobuf:"bytes,617,rep,name=map_bool_named_group,json=mapBoolNamedGroup" json:"map_bool_named_group,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolSiblingEnum map[bool]SiblingEnum `protobuf:"bytes,618,rep,name=map_bool_sibling_enum,json=mapBoolSiblingEnum" json:"map_bool_sibling_enum,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.golang.org.proto2_20180430.SiblingEnum"` MapBoolSiblingMessage map[bool]*SiblingMessage `protobuf:"bytes,619,rep,name=map_bool_sibling_message,json=mapBoolSiblingMessage" json:"map_bool_sibling_message,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapInt32Bool map[int32]bool `protobuf:"bytes,620,rep,name=map_int32_bool,json=mapInt32Bool" json:"map_int32_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapSint32Bool map[int32]bool `protobuf:"bytes,621,rep,name=map_sint32_bool,json=mapSint32Bool" json:"map_sint32_bool,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint32Bool map[uint32]bool `protobuf:"bytes,622,rep,name=map_uint32_bool,json=mapUint32Bool" json:"map_uint32_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapInt64Bool map[int64]bool `protobuf:"bytes,623,rep,name=map_int64_bool,json=mapInt64Bool" json:"map_int64_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapSint64Bool map[int64]bool `protobuf:"bytes,624,rep,name=map_sint64_bool,json=mapSint64Bool" json:"map_sint64_bool,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint64Bool map[uint64]bool `protobuf:"bytes,625,rep,name=map_uint64_bool,json=mapUint64Bool" json:"map_uint64_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapFixed32Bool map[uint32]bool `protobuf:"bytes,626,rep,name=map_fixed32_bool,json=mapFixed32Bool" json:"map_fixed32_bool,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapStringBool map[string]bool `protobuf:"bytes,627,rep,name=map_string_bool,json=mapStringBool" json:"map_string_bool,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // Oneof fields. // // Types that are valid to be assigned to OneofUnion: // *Message_OneofBool // *Message_OneofInt32 // *Message_OneofSint32 // *Message_OneofUint32 // *Message_OneofInt64 // *Message_OneofSint64 // *Message_OneofUint64 // *Message_OneofFixed32 // *Message_OneofSfixed32 // *Message_OneofFloat // *Message_OneofFixed64 // *Message_OneofSfixed64 // *Message_OneofDouble // *Message_OneofString // *Message_OneofBytes // *Message_OneofChildEnum // *Message_OneofChildMessage // *Message_OneofNamedGroup // *Message_OneofSiblingEnum // *Message_OneofSiblingMessage // *Message_Oneofgroup // *Message_OneofString1 // *Message_OneofString2 // *Message_OneofString3 OneofUnion isMessage_OneofUnion `protobuf_oneof:"oneof_union"` // Oneof default fields. // // Types that are valid to be assigned to OneofDefaultedUnion: // *Message_OneofDefaultedBool // *Message_OneofDefaultedInt32 // *Message_OneofDefaultedSint32 // *Message_OneofDefaultedUint32 // *Message_OneofDefaultedInt64 // *Message_OneofDefaultedSint64 // *Message_OneofDefaultedUint64 // *Message_OneofDefaultedFixed32 // *Message_OneofDefaultedSfixed32 // *Message_OneofDefaultedFloat // *Message_OneofDefaultedFixed64 // *Message_OneofDefaultedSfixed64 // *Message_OneofDefaultedDouble // *Message_OneofDefaultedString // *Message_OneofDefaultedBytes // *Message_OneofDefaultedChildEnum // *Message_OneofDefaultedSiblingEnum OneofDefaultedUnion isMessage_OneofDefaultedUnion `protobuf_oneof:"oneof_defaulted_union"` XXX_NoUnkeyedLiteral struct{} `json:"-"` proto.XXX_InternalExtensions `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message) Reset() { *m = Message{} } func (m *Message) String() string { return proto.CompactTextString(m) } func (*Message) ProtoMessage() {} func (*Message) Descriptor() ([]byte, []int) { return fileDescriptor_test_a365478be18be824, []int{1} } var extRange_Message = []proto.ExtensionRange{ {Start: 10000, End: 536870911}, } func (*Message) ExtensionRangeArray() []proto.ExtensionRange { return extRange_Message } func (m *Message) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message.Unmarshal(m, b) } func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message.Marshal(b, m, deterministic) } func (dst *Message) XXX_Merge(src proto.Message) { xxx_messageInfo_Message.Merge(dst, src) } func (m *Message) XXX_Size() int { return xxx_messageInfo_Message.Size(m) } func (m *Message) XXX_DiscardUnknown() { xxx_messageInfo_Message.DiscardUnknown(m) } var xxx_messageInfo_Message proto.InternalMessageInfo const Default_Message_DefaultedBool bool = true const Default_Message_DefaultedInt32 int32 = -12345 const Default_Message_DefaultedSint32 int32 = -3200 const Default_Message_DefaultedUint32 uint32 = 3200 const Default_Message_DefaultedInt64 int64 = -123456789 const Default_Message_DefaultedSint64 int64 = -6400 const Default_Message_DefaultedUint64 uint64 = 6400 const Default_Message_DefaultedFixed32 uint32 = 320000 const Default_Message_DefaultedSfixed32 int32 = -320000 const Default_Message_DefaultedFloat float32 = 3.14159 const Default_Message_DefaultedFixed64 uint64 = 640000 const Default_Message_DefaultedSfixed64 int64 = -640000 const Default_Message_DefaultedDouble float64 = 3.14159265359 const Default_Message_DefaultedString string = "hello, \"world!\"\n" var Default_Message_DefaultedBytes []byte = []byte("deadޭ\xbe\xefbeef") const Default_Message_DefaultedChildEnum Message_ChildEnum = Message_ALPHA const Default_Message_DefaultedSiblingEnum SiblingEnum = SiblingEnum_ALPHA const Default_Message_RequiredDefaultedBool bool = true const Default_Message_RequiredDefaultedInt32 int32 = -12345 const Default_Message_RequiredDefaultedSint32 int32 = -3200 const Default_Message_RequiredDefaultedUint32 uint32 = 3200 const Default_Message_RequiredDefaultedInt64 int64 = -123456789 const Default_Message_RequiredDefaultedSint64 int64 = -6400 const Default_Message_RequiredDefaultedUint64 uint64 = 6400 const Default_Message_RequiredDefaultedFixed32 uint32 = 320000 const Default_Message_RequiredDefaultedSfixed32 int32 = -320000 const Default_Message_RequiredDefaultedFloat float32 = 3.14159 const Default_Message_RequiredDefaultedFixed64 uint64 = 640000 const Default_Message_RequiredDefaultedSfixed64 int64 = -640000 const Default_Message_RequiredDefaultedDouble float64 = 3.14159265359 const Default_Message_RequiredDefaultedString string = "hello, \"world!\"\n" var Default_Message_RequiredDefaultedBytes []byte = []byte("deadޭ\xbe\xefbeef") const Default_Message_RequiredDefaultedChildEnum Message_ChildEnum = Message_ALPHA const Default_Message_RequiredDefaultedSiblingEnum SiblingEnum = SiblingEnum_ALPHA const Default_Message_OneofDefaultedBool bool = true const Default_Message_OneofDefaultedInt32 int32 = -12345 const Default_Message_OneofDefaultedSint32 int32 = -3200 const Default_Message_OneofDefaultedUint32 uint32 = 3200 const Default_Message_OneofDefaultedInt64 int64 = -123456789 const Default_Message_OneofDefaultedSint64 int64 = -6400 const Default_Message_OneofDefaultedUint64 uint64 = 6400 const Default_Message_OneofDefaultedFixed32 uint32 = 320000 const Default_Message_OneofDefaultedSfixed32 int32 = -320000 const Default_Message_OneofDefaultedFloat float32 = 3.14159 const Default_Message_OneofDefaultedFixed64 uint64 = 640000 const Default_Message_OneofDefaultedSfixed64 int64 = -640000 const Default_Message_OneofDefaultedDouble float64 = 3.14159265359 const Default_Message_OneofDefaultedString string = "hello, \"world!\"\n" var Default_Message_OneofDefaultedBytes []byte = []byte("deadޭ\xbe\xefbeef") const Default_Message_OneofDefaultedChildEnum Message_ChildEnum = Message_ALPHA const Default_Message_OneofDefaultedSiblingEnum SiblingEnum = SiblingEnum_ALPHA type isMessage_OneofUnion interface { isMessage_OneofUnion() } type isMessage_OneofDefaultedUnion interface { isMessage_OneofDefaultedUnion() } type Message_OneofBool struct { OneofBool bool `protobuf:"varint,700,opt,name=oneof_bool,json=oneofBool,oneof"` } type Message_OneofInt32 struct { OneofInt32 int32 `protobuf:"varint,701,opt,name=oneof_int32,json=oneofInt32,oneof"` } type Message_OneofSint32 struct { OneofSint32 int32 `protobuf:"zigzag32,702,opt,name=oneof_sint32,json=oneofSint32,oneof"` } type Message_OneofUint32 struct { OneofUint32 uint32 `protobuf:"varint,703,opt,name=oneof_uint32,json=oneofUint32,oneof"` } type Message_OneofInt64 struct { OneofInt64 int64 `protobuf:"varint,704,opt,name=oneof_int64,json=oneofInt64,oneof"` } type Message_OneofSint64 struct { OneofSint64 int64 `protobuf:"zigzag64,705,opt,name=oneof_sint64,json=oneofSint64,oneof"` } type Message_OneofUint64 struct { OneofUint64 uint64 `protobuf:"varint,706,opt,name=oneof_uint64,json=oneofUint64,oneof"` } type Message_OneofFixed32 struct { OneofFixed32 uint32 `protobuf:"fixed32,707,opt,name=oneof_fixed32,json=oneofFixed32,oneof"` } type Message_OneofSfixed32 struct { OneofSfixed32 int32 `protobuf:"fixed32,708,opt,name=oneof_sfixed32,json=oneofSfixed32,oneof"` } type Message_OneofFloat struct { OneofFloat float32 `protobuf:"fixed32,709,opt,name=oneof_float,json=oneofFloat,oneof"` } type Message_OneofFixed64 struct { OneofFixed64 uint64 `protobuf:"fixed64,710,opt,name=oneof_fixed64,json=oneofFixed64,oneof"` } type Message_OneofSfixed64 struct { OneofSfixed64 int64 `protobuf:"fixed64,711,opt,name=oneof_sfixed64,json=oneofSfixed64,oneof"` } type Message_OneofDouble struct { OneofDouble float64 `protobuf:"fixed64,712,opt,name=oneof_double,json=oneofDouble,oneof"` } type Message_OneofString struct { OneofString string `protobuf:"bytes,713,opt,name=oneof_string,json=oneofString,oneof"` } type Message_OneofBytes struct { OneofBytes []byte `protobuf:"bytes,714,opt,name=oneof_bytes,json=oneofBytes,oneof"` } type Message_OneofChildEnum struct { OneofChildEnum Message_ChildEnum `protobuf:"varint,715,opt,name=oneof_child_enum,json=oneofChildEnum,enum=google.golang.org.proto2_20180430.Message_ChildEnum,oneof"` } type Message_OneofChildMessage struct { OneofChildMessage *Message_ChildMessage `protobuf:"bytes,716,opt,name=oneof_child_message,json=oneofChildMessage,oneof"` } type Message_OneofNamedGroup struct { OneofNamedGroup *Message_NamedGroup `protobuf:"bytes,717,opt,name=oneof_named_group,json=oneofNamedGroup,oneof"` } type Message_OneofSiblingEnum struct { OneofSiblingEnum SiblingEnum `protobuf:"varint,718,opt,name=oneof_sibling_enum,json=oneofSiblingEnum,enum=google.golang.org.proto2_20180430.SiblingEnum,oneof"` } type Message_OneofSiblingMessage struct { OneofSiblingMessage *SiblingMessage `protobuf:"bytes,719,opt,name=oneof_sibling_message,json=oneofSiblingMessage,oneof"` } type Message_Oneofgroup struct { Oneofgroup *Message_OneofGroup `protobuf:"group,720,opt,name=OneofGroup,json=oneofgroup,oneof"` } type Message_OneofString1 struct { OneofString1 string `protobuf:"bytes,721,opt,name=oneof_string1,json=oneofString1,oneof"` } type Message_OneofString2 struct { OneofString2 string `protobuf:"bytes,722,opt,name=oneof_string2,json=oneofString2,oneof"` } type Message_OneofString3 struct { OneofString3 string `protobuf:"bytes,723,opt,name=oneof_string3,json=oneofString3,oneof"` } type Message_OneofDefaultedBool struct { OneofDefaultedBool bool `protobuf:"varint,800,opt,name=oneof_defaulted_bool,json=oneofDefaultedBool,oneof,def=1"` } type Message_OneofDefaultedInt32 struct { OneofDefaultedInt32 int32 `protobuf:"varint,801,opt,name=oneof_defaulted_int32,json=oneofDefaultedInt32,oneof,def=-12345"` } type Message_OneofDefaultedSint32 struct { OneofDefaultedSint32 int32 `protobuf:"zigzag32,802,opt,name=oneof_defaulted_sint32,json=oneofDefaultedSint32,oneof,def=-3200"` } type Message_OneofDefaultedUint32 struct { OneofDefaultedUint32 uint32 `protobuf:"varint,803,opt,name=oneof_defaulted_uint32,json=oneofDefaultedUint32,oneof,def=3200"` } type Message_OneofDefaultedInt64 struct { OneofDefaultedInt64 int64 `protobuf:"varint,804,opt,name=oneof_defaulted_int64,json=oneofDefaultedInt64,oneof,def=-123456789"` } type Message_OneofDefaultedSint64 struct { OneofDefaultedSint64 int64 `protobuf:"zigzag64,805,opt,name=oneof_defaulted_sint64,json=oneofDefaultedSint64,oneof,def=-6400"` } type Message_OneofDefaultedUint64 struct { OneofDefaultedUint64 uint64 `protobuf:"varint,806,opt,name=oneof_defaulted_uint64,json=oneofDefaultedUint64,oneof,def=6400"` } type Message_OneofDefaultedFixed32 struct { OneofDefaultedFixed32 uint32 `protobuf:"fixed32,807,opt,name=oneof_defaulted_fixed32,json=oneofDefaultedFixed32,oneof,def=320000"` } type Message_OneofDefaultedSfixed32 struct { OneofDefaultedSfixed32 int32 `protobuf:"fixed32,808,opt,name=oneof_defaulted_sfixed32,json=oneofDefaultedSfixed32,oneof,def=-320000"` } type Message_OneofDefaultedFloat struct { OneofDefaultedFloat float32 `protobuf:"fixed32,809,opt,name=oneof_defaulted_float,json=oneofDefaultedFloat,oneof,def=3.14159"` } type Message_OneofDefaultedFixed64 struct { OneofDefaultedFixed64 uint64 `protobuf:"fixed64,810,opt,name=oneof_defaulted_fixed64,json=oneofDefaultedFixed64,oneof,def=640000"` } type Message_OneofDefaultedSfixed64 struct { OneofDefaultedSfixed64 int64 `protobuf:"fixed64,811,opt,name=oneof_defaulted_sfixed64,json=oneofDefaultedSfixed64,oneof,def=-640000"` } type Message_OneofDefaultedDouble struct { OneofDefaultedDouble float64 `protobuf:"fixed64,812,opt,name=oneof_defaulted_double,json=oneofDefaultedDouble,oneof,def=3.14159265359"` } type Message_OneofDefaultedString struct { OneofDefaultedString string `protobuf:"bytes,813,opt,name=oneof_defaulted_string,json=oneofDefaultedString,oneof,def=hello, \"world!\"\n"` } type Message_OneofDefaultedBytes struct { OneofDefaultedBytes []byte `protobuf:"bytes,814,opt,name=oneof_defaulted_bytes,json=oneofDefaultedBytes,oneof,def=dead\\336\\255\\276\\357beef"` } type Message_OneofDefaultedChildEnum struct { OneofDefaultedChildEnum Message_ChildEnum `protobuf:"varint,815,opt,name=oneof_defaulted_child_enum,json=oneofDefaultedChildEnum,enum=google.golang.org.proto2_20180430.Message_ChildEnum,oneof,def=0"` } type Message_OneofDefaultedSiblingEnum struct { OneofDefaultedSiblingEnum SiblingEnum `protobuf:"varint,816,opt,name=oneof_defaulted_sibling_enum,json=oneofDefaultedSiblingEnum,enum=google.golang.org.proto2_20180430.SiblingEnum,oneof,def=0"` } func (*Message_OneofBool) isMessage_OneofUnion() {} func (*Message_OneofInt32) isMessage_OneofUnion() {} func (*Message_OneofSint32) isMessage_OneofUnion() {} func (*Message_OneofUint32) isMessage_OneofUnion() {} func (*Message_OneofInt64) isMessage_OneofUnion() {} func (*Message_OneofSint64) isMessage_OneofUnion() {} func (*Message_OneofUint64) isMessage_OneofUnion() {} func (*Message_OneofFixed32) isMessage_OneofUnion() {} func (*Message_OneofSfixed32) isMessage_OneofUnion() {} func (*Message_OneofFloat) isMessage_OneofUnion() {} func (*Message_OneofFixed64) isMessage_OneofUnion() {} func (*Message_OneofSfixed64) isMessage_OneofUnion() {} func (*Message_OneofDouble) isMessage_OneofUnion() {} func (*Message_OneofString) isMessage_OneofUnion() {} func (*Message_OneofBytes) isMessage_OneofUnion() {} func (*Message_OneofChildEnum) isMessage_OneofUnion() {} func (*Message_OneofChildMessage) isMessage_OneofUnion() {} func (*Message_OneofNamedGroup) isMessage_OneofUnion() {} func (*Message_OneofSiblingEnum) isMessage_OneofUnion() {} func (*Message_OneofSiblingMessage) isMessage_OneofUnion() {} func (*Message_Oneofgroup) isMessage_OneofUnion() {} func (*Message_OneofString1) isMessage_OneofUnion() {} func (*Message_OneofString2) isMessage_OneofUnion() {} func (*Message_OneofString3) isMessage_OneofUnion() {} func (*Message_OneofDefaultedBool) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedInt32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSint32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedUint32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedInt64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSint64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedUint64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedFixed32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSfixed32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedFloat) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedFixed64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSfixed64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedDouble) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedString) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedBytes) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedChildEnum) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSiblingEnum) isMessage_OneofDefaultedUnion() {} func (m *Message) GetOneofUnion() isMessage_OneofUnion { if m != nil { return m.OneofUnion } return nil } func (m *Message) GetOneofDefaultedUnion() isMessage_OneofDefaultedUnion { if m != nil { return m.OneofDefaultedUnion } return nil } func (m *Message) GetNamedgroup() *Message_NamedGroup { if m != nil { return m.Namedgroup } return nil } func (m *Message) GetOptionalBool() bool { if m != nil && m.OptionalBool != nil { return *m.OptionalBool } return false } func (m *Message) GetOptionalInt32() int32 { if m != nil && m.OptionalInt32 != nil { return *m.OptionalInt32 } return 0 } func (m *Message) GetOptionalSint32() int32 { if m != nil && m.OptionalSint32 != nil { return *m.OptionalSint32 } return 0 } func (m *Message) GetOptionalUint32() uint32 { if m != nil && m.OptionalUint32 != nil { return *m.OptionalUint32 } return 0 } func (m *Message) GetOptionalInt64() int64 { if m != nil && m.OptionalInt64 != nil { return *m.OptionalInt64 } return 0 } func (m *Message) GetOptionalSint64() int64 { if m != nil && m.OptionalSint64 != nil { return *m.OptionalSint64 } return 0 } func (m *Message) GetOptionalUint64() uint64 { if m != nil && m.OptionalUint64 != nil { return *m.OptionalUint64 } return 0 } func (m *Message) GetOptionalFixed32() uint32 { if m != nil && m.OptionalFixed32 != nil { return *m.OptionalFixed32 } return 0 } func (m *Message) GetOptionalSfixed32() int32 { if m != nil && m.OptionalSfixed32 != nil { return *m.OptionalSfixed32 } return 0 } func (m *Message) GetOptionalFloat() float32 { if m != nil && m.OptionalFloat != nil { return *m.OptionalFloat } return 0 } func (m *Message) GetOptionalFixed64() uint64 { if m != nil && m.OptionalFixed64 != nil { return *m.OptionalFixed64 } return 0 } func (m *Message) GetOptionalSfixed64() int64 { if m != nil && m.OptionalSfixed64 != nil { return *m.OptionalSfixed64 } return 0 } func (m *Message) GetOptionalDouble() float64 { if m != nil && m.OptionalDouble != nil { return *m.OptionalDouble } return 0 } func (m *Message) GetOptionalString() string { if m != nil && m.OptionalString != nil { return *m.OptionalString } return "" } func (m *Message) GetOptionalBytes() []byte { if m != nil { return m.OptionalBytes } return nil } func (m *Message) GetOptionalChildEnum() Message_ChildEnum { if m != nil && m.OptionalChildEnum != nil { return *m.OptionalChildEnum } return Message_ALPHA } func (m *Message) GetOptionalChildMessage() *Message_ChildMessage { if m != nil { return m.OptionalChildMessage } return nil } func (m *Message) GetOptionalNamedGroup() *Message_NamedGroup { if m != nil { return m.OptionalNamedGroup } return nil } func (m *Message) GetOptionalSiblingEnum() SiblingEnum { if m != nil && m.OptionalSiblingEnum != nil { return *m.OptionalSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetOptionalSiblingMessage() *SiblingMessage { if m != nil { return m.OptionalSiblingMessage } return nil } func (m *Message) GetOptionalgroup() *Message_OptionalGroup { if m != nil { return m.Optionalgroup } return nil } func (m *Message) GetDefaultedBool() bool { if m != nil && m.DefaultedBool != nil { return *m.DefaultedBool } return Default_Message_DefaultedBool } func (m *Message) GetDefaultedInt32() int32 { if m != nil && m.DefaultedInt32 != nil { return *m.DefaultedInt32 } return Default_Message_DefaultedInt32 } func (m *Message) GetDefaultedSint32() int32 { if m != nil && m.DefaultedSint32 != nil { return *m.DefaultedSint32 } return Default_Message_DefaultedSint32 } func (m *Message) GetDefaultedUint32() uint32 { if m != nil && m.DefaultedUint32 != nil { return *m.DefaultedUint32 } return Default_Message_DefaultedUint32 } func (m *Message) GetDefaultedInt64() int64 { if m != nil && m.DefaultedInt64 != nil { return *m.DefaultedInt64 } return Default_Message_DefaultedInt64 } func (m *Message) GetDefaultedSint64() int64 { if m != nil && m.DefaultedSint64 != nil { return *m.DefaultedSint64 } return Default_Message_DefaultedSint64 } func (m *Message) GetDefaultedUint64() uint64 { if m != nil && m.DefaultedUint64 != nil { return *m.DefaultedUint64 } return Default_Message_DefaultedUint64 } func (m *Message) GetDefaultedFixed32() uint32 { if m != nil && m.DefaultedFixed32 != nil { return *m.DefaultedFixed32 } return Default_Message_DefaultedFixed32 } func (m *Message) GetDefaultedSfixed32() int32 { if m != nil && m.DefaultedSfixed32 != nil { return *m.DefaultedSfixed32 } return Default_Message_DefaultedSfixed32 } func (m *Message) GetDefaultedFloat() float32 { if m != nil && m.DefaultedFloat != nil { return *m.DefaultedFloat } return Default_Message_DefaultedFloat } func (m *Message) GetDefaultedFixed64() uint64 { if m != nil && m.DefaultedFixed64 != nil { return *m.DefaultedFixed64 } return Default_Message_DefaultedFixed64 } func (m *Message) GetDefaultedSfixed64() int64 { if m != nil && m.DefaultedSfixed64 != nil { return *m.DefaultedSfixed64 } return Default_Message_DefaultedSfixed64 } func (m *Message) GetDefaultedDouble() float64 { if m != nil && m.DefaultedDouble != nil { return *m.DefaultedDouble } return Default_Message_DefaultedDouble } func (m *Message) GetDefaultedString() string { if m != nil && m.DefaultedString != nil { return *m.DefaultedString } return Default_Message_DefaultedString } func (m *Message) GetDefaultedBytes() []byte { if m != nil && m.DefaultedBytes != nil { return m.DefaultedBytes } return append([]byte(nil), Default_Message_DefaultedBytes...) } func (m *Message) GetDefaultedChildEnum() Message_ChildEnum { if m != nil && m.DefaultedChildEnum != nil { return *m.DefaultedChildEnum } return Default_Message_DefaultedChildEnum } func (m *Message) GetDefaultedSiblingEnum() SiblingEnum { if m != nil && m.DefaultedSiblingEnum != nil { return *m.DefaultedSiblingEnum } return Default_Message_DefaultedSiblingEnum } func (m *Message) GetRequiredBool() bool { if m != nil && m.RequiredBool != nil { return *m.RequiredBool } return false } func (m *Message) GetRequiredInt32() int32 { if m != nil && m.RequiredInt32 != nil { return *m.RequiredInt32 } return 0 } func (m *Message) GetRequiredSint32() int32 { if m != nil && m.RequiredSint32 != nil { return *m.RequiredSint32 } return 0 } func (m *Message) GetRequiredUint32() uint32 { if m != nil && m.RequiredUint32 != nil { return *m.RequiredUint32 } return 0 } func (m *Message) GetRequiredInt64() int64 { if m != nil && m.RequiredInt64 != nil { return *m.RequiredInt64 } return 0 } func (m *Message) GetRequiredSint64() int64 { if m != nil && m.RequiredSint64 != nil { return *m.RequiredSint64 } return 0 } func (m *Message) GetRequiredUint64() uint64 { if m != nil && m.RequiredUint64 != nil { return *m.RequiredUint64 } return 0 } func (m *Message) GetRequiredFixed32() uint32 { if m != nil && m.RequiredFixed32 != nil { return *m.RequiredFixed32 } return 0 } func (m *Message) GetRequiredSfixed32() int32 { if m != nil && m.RequiredSfixed32 != nil { return *m.RequiredSfixed32 } return 0 } func (m *Message) GetRequiredFloat() float32 { if m != nil && m.RequiredFloat != nil { return *m.RequiredFloat } return 0 } func (m *Message) GetRequiredFixed64() uint64 { if m != nil && m.RequiredFixed64 != nil { return *m.RequiredFixed64 } return 0 } func (m *Message) GetRequiredSfixed64() int64 { if m != nil && m.RequiredSfixed64 != nil { return *m.RequiredSfixed64 } return 0 } func (m *Message) GetRequiredDouble() float64 { if m != nil && m.RequiredDouble != nil { return *m.RequiredDouble } return 0 } func (m *Message) GetRequiredString() string { if m != nil && m.RequiredString != nil { return *m.RequiredString } return "" } func (m *Message) GetRequiredBytes() []byte { if m != nil { return m.RequiredBytes } return nil } func (m *Message) GetRequiredChildEnum() Message_ChildEnum { if m != nil && m.RequiredChildEnum != nil { return *m.RequiredChildEnum } return Message_ALPHA } func (m *Message) GetRequiredChildMessage() *Message_ChildMessage { if m != nil { return m.RequiredChildMessage } return nil } func (m *Message) GetRequiredNamedGroup() *Message_NamedGroup { if m != nil { return m.RequiredNamedGroup } return nil } func (m *Message) GetRequiredSiblingEnum() SiblingEnum { if m != nil && m.RequiredSiblingEnum != nil { return *m.RequiredSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetRequiredSiblingMessage() *SiblingMessage { if m != nil { return m.RequiredSiblingMessage } return nil } func (m *Message) GetRequiredgroup() *Message_RequiredGroup { if m != nil { return m.Requiredgroup } return nil } func (m *Message) GetRequiredDefaultedBool() bool { if m != nil && m.RequiredDefaultedBool != nil { return *m.RequiredDefaultedBool } return Default_Message_RequiredDefaultedBool } func (m *Message) GetRequiredDefaultedInt32() int32 { if m != nil && m.RequiredDefaultedInt32 != nil { return *m.RequiredDefaultedInt32 } return Default_Message_RequiredDefaultedInt32 } func (m *Message) GetRequiredDefaultedSint32() int32 { if m != nil && m.RequiredDefaultedSint32 != nil { return *m.RequiredDefaultedSint32 } return Default_Message_RequiredDefaultedSint32 } func (m *Message) GetRequiredDefaultedUint32() uint32 { if m != nil && m.RequiredDefaultedUint32 != nil { return *m.RequiredDefaultedUint32 } return Default_Message_RequiredDefaultedUint32 } func (m *Message) GetRequiredDefaultedInt64() int64 { if m != nil && m.RequiredDefaultedInt64 != nil { return *m.RequiredDefaultedInt64 } return Default_Message_RequiredDefaultedInt64 } func (m *Message) GetRequiredDefaultedSint64() int64 { if m != nil && m.RequiredDefaultedSint64 != nil { return *m.RequiredDefaultedSint64 } return Default_Message_RequiredDefaultedSint64 } func (m *Message) GetRequiredDefaultedUint64() uint64 { if m != nil && m.RequiredDefaultedUint64 != nil { return *m.RequiredDefaultedUint64 } return Default_Message_RequiredDefaultedUint64 } func (m *Message) GetRequiredDefaultedFixed32() uint32 { if m != nil && m.RequiredDefaultedFixed32 != nil { return *m.RequiredDefaultedFixed32 } return Default_Message_RequiredDefaultedFixed32 } func (m *Message) GetRequiredDefaultedSfixed32() int32 { if m != nil && m.RequiredDefaultedSfixed32 != nil { return *m.RequiredDefaultedSfixed32 } return Default_Message_RequiredDefaultedSfixed32 } func (m *Message) GetRequiredDefaultedFloat() float32 { if m != nil && m.RequiredDefaultedFloat != nil { return *m.RequiredDefaultedFloat } return Default_Message_RequiredDefaultedFloat } func (m *Message) GetRequiredDefaultedFixed64() uint64 { if m != nil && m.RequiredDefaultedFixed64 != nil { return *m.RequiredDefaultedFixed64 } return Default_Message_RequiredDefaultedFixed64 } func (m *Message) GetRequiredDefaultedSfixed64() int64 { if m != nil && m.RequiredDefaultedSfixed64 != nil { return *m.RequiredDefaultedSfixed64 } return Default_Message_RequiredDefaultedSfixed64 } func (m *Message) GetRequiredDefaultedDouble() float64 { if m != nil && m.RequiredDefaultedDouble != nil { return *m.RequiredDefaultedDouble } return Default_Message_RequiredDefaultedDouble } func (m *Message) GetRequiredDefaultedString() string { if m != nil && m.RequiredDefaultedString != nil { return *m.RequiredDefaultedString } return Default_Message_RequiredDefaultedString } func (m *Message) GetRequiredDefaultedBytes() []byte { if m != nil && m.RequiredDefaultedBytes != nil { return m.RequiredDefaultedBytes } return append([]byte(nil), Default_Message_RequiredDefaultedBytes...) } func (m *Message) GetRequiredDefaultedChildEnum() Message_ChildEnum { if m != nil && m.RequiredDefaultedChildEnum != nil { return *m.RequiredDefaultedChildEnum } return Default_Message_RequiredDefaultedChildEnum } func (m *Message) GetRequiredDefaultedSiblingEnum() SiblingEnum { if m != nil && m.RequiredDefaultedSiblingEnum != nil { return *m.RequiredDefaultedSiblingEnum } return Default_Message_RequiredDefaultedSiblingEnum } func (m *Message) GetRepeatedBool() []bool { if m != nil { return m.RepeatedBool } return nil } func (m *Message) GetRepeatedInt32() []int32 { if m != nil { return m.RepeatedInt32 } return nil } func (m *Message) GetRepeatedSint32() []int32 { if m != nil { return m.RepeatedSint32 } return nil } func (m *Message) GetRepeatedUint32() []uint32 { if m != nil { return m.RepeatedUint32 } return nil } func (m *Message) GetRepeatedInt64() []int64 { if m != nil { return m.RepeatedInt64 } return nil } func (m *Message) GetRepeatedSint64() []int64 { if m != nil { return m.RepeatedSint64 } return nil } func (m *Message) GetRepeatedUint64() []uint64 { if m != nil { return m.RepeatedUint64 } return nil } func (m *Message) GetRepeatedFixed32() []uint32 { if m != nil { return m.RepeatedFixed32 } return nil } func (m *Message) GetRepeatedSfixed32() []int32 { if m != nil { return m.RepeatedSfixed32 } return nil } func (m *Message) GetRepeatedFloat() []float32 { if m != nil { return m.RepeatedFloat } return nil } func (m *Message) GetRepeatedFixed64() []uint64 { if m != nil { return m.RepeatedFixed64 } return nil } func (m *Message) GetRepeatedSfixed64() []int64 { if m != nil { return m.RepeatedSfixed64 } return nil } func (m *Message) GetRepeatedDouble() []float64 { if m != nil { return m.RepeatedDouble } return nil } func (m *Message) GetRepeatedString() []string { if m != nil { return m.RepeatedString } return nil } func (m *Message) GetRepeatedBytes() [][]byte { if m != nil { return m.RepeatedBytes } return nil } func (m *Message) GetRepeatedChildEnum() []Message_ChildEnum { if m != nil { return m.RepeatedChildEnum } return nil } func (m *Message) GetRepeatedChildMessage() []*Message_ChildMessage { if m != nil { return m.RepeatedChildMessage } return nil } func (m *Message) GetRepeatedNamedGroup() []*Message_NamedGroup { if m != nil { return m.RepeatedNamedGroup } return nil } func (m *Message) GetRepeatedSiblingEnum() []SiblingEnum { if m != nil { return m.RepeatedSiblingEnum } return nil } func (m *Message) GetRepeatedSiblingMessage() []*SiblingMessage { if m != nil { return m.RepeatedSiblingMessage } return nil } func (m *Message) GetRepeatedgroup() []*Message_RepeatedGroup { if m != nil { return m.Repeatedgroup } return nil } func (m *Message) GetMapBoolBool() map[bool]bool { if m != nil { return m.MapBoolBool } return nil } func (m *Message) GetMapBoolInt32() map[bool]int32 { if m != nil { return m.MapBoolInt32 } return nil } func (m *Message) GetMapBoolSint32() map[bool]int32 { if m != nil { return m.MapBoolSint32 } return nil } func (m *Message) GetMapBoolUint32() map[bool]uint32 { if m != nil { return m.MapBoolUint32 } return nil } func (m *Message) GetMapBoolInt64() map[bool]int64 { if m != nil { return m.MapBoolInt64 } return nil } func (m *Message) GetMapBoolSint64() map[bool]int64 { if m != nil { return m.MapBoolSint64 } return nil } func (m *Message) GetMapBoolUint64() map[bool]uint64 { if m != nil { return m.MapBoolUint64 } return nil } func (m *Message) GetMapBoolFixed32() map[bool]uint32 { if m != nil { return m.MapBoolFixed32 } return nil } func (m *Message) GetMapBoolSfixed32() map[bool]int32 { if m != nil { return m.MapBoolSfixed32 } return nil } func (m *Message) GetMapBoolFloat() map[bool]float32 { if m != nil { return m.MapBoolFloat } return nil } func (m *Message) GetMapBoolFixed64() map[bool]uint64 { if m != nil { return m.MapBoolFixed64 } return nil } func (m *Message) GetMapBoolSfixed64() map[bool]int64 { if m != nil { return m.MapBoolSfixed64 } return nil } func (m *Message) GetMapBoolDouble() map[bool]float64 { if m != nil { return m.MapBoolDouble } return nil } func (m *Message) GetMapBoolString() map[bool]string { if m != nil { return m.MapBoolString } return nil } func (m *Message) GetMapBoolBytes() map[bool][]byte { if m != nil { return m.MapBoolBytes } return nil } func (m *Message) GetMapBoolChildEnum() map[bool]Message_ChildEnum { if m != nil { return m.MapBoolChildEnum } return nil } func (m *Message) GetMapBoolChildMessage() map[bool]*Message_ChildMessage { if m != nil { return m.MapBoolChildMessage } return nil } func (m *Message) GetMapBoolNamedGroup() map[bool]*Message_NamedGroup { if m != nil { return m.MapBoolNamedGroup } return nil } func (m *Message) GetMapBoolSiblingEnum() map[bool]SiblingEnum { if m != nil { return m.MapBoolSiblingEnum } return nil } func (m *Message) GetMapBoolSiblingMessage() map[bool]*SiblingMessage { if m != nil { return m.MapBoolSiblingMessage } return nil } func (m *Message) GetMapInt32Bool() map[int32]bool { if m != nil { return m.MapInt32Bool } return nil } func (m *Message) GetMapSint32Bool() map[int32]bool { if m != nil { return m.MapSint32Bool } return nil } func (m *Message) GetMapUint32Bool() map[uint32]bool { if m != nil { return m.MapUint32Bool } return nil } func (m *Message) GetMapInt64Bool() map[int64]bool { if m != nil { return m.MapInt64Bool } return nil } func (m *Message) GetMapSint64Bool() map[int64]bool { if m != nil { return m.MapSint64Bool } return nil } func (m *Message) GetMapUint64Bool() map[uint64]bool { if m != nil { return m.MapUint64Bool } return nil } func (m *Message) GetMapFixed32Bool() map[uint32]bool { if m != nil { return m.MapFixed32Bool } return nil } func (m *Message) GetMapStringBool() map[string]bool { if m != nil { return m.MapStringBool } return nil } func (m *Message) GetOneofBool() bool { if x, ok := m.GetOneofUnion().(*Message_OneofBool); ok { return x.OneofBool } return false } func (m *Message) GetOneofInt32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofInt32); ok { return x.OneofInt32 } return 0 } func (m *Message) GetOneofSint32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSint32); ok { return x.OneofSint32 } return 0 } func (m *Message) GetOneofUint32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofUint32); ok { return x.OneofUint32 } return 0 } func (m *Message) GetOneofInt64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofInt64); ok { return x.OneofInt64 } return 0 } func (m *Message) GetOneofSint64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSint64); ok { return x.OneofSint64 } return 0 } func (m *Message) GetOneofUint64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofUint64); ok { return x.OneofUint64 } return 0 } func (m *Message) GetOneofFixed32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed32); ok { return x.OneofFixed32 } return 0 } func (m *Message) GetOneofSfixed32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed32); ok { return x.OneofSfixed32 } return 0 } func (m *Message) GetOneofFloat() float32 { if x, ok := m.GetOneofUnion().(*Message_OneofFloat); ok { return x.OneofFloat } return 0 } func (m *Message) GetOneofFixed64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed64); ok { return x.OneofFixed64 } return 0 } func (m *Message) GetOneofSfixed64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed64); ok { return x.OneofSfixed64 } return 0 } func (m *Message) GetOneofDouble() float64 { if x, ok := m.GetOneofUnion().(*Message_OneofDouble); ok { return x.OneofDouble } return 0 } func (m *Message) GetOneofString() string { if x, ok := m.GetOneofUnion().(*Message_OneofString); ok { return x.OneofString } return "" } func (m *Message) GetOneofBytes() []byte { if x, ok := m.GetOneofUnion().(*Message_OneofBytes); ok { return x.OneofBytes } return nil } func (m *Message) GetOneofChildEnum() Message_ChildEnum { if x, ok := m.GetOneofUnion().(*Message_OneofChildEnum); ok { return x.OneofChildEnum } return Message_ALPHA } func (m *Message) GetOneofChildMessage() *Message_ChildMessage { if x, ok := m.GetOneofUnion().(*Message_OneofChildMessage); ok { return x.OneofChildMessage } return nil } func (m *Message) GetOneofNamedGroup() *Message_NamedGroup { if x, ok := m.GetOneofUnion().(*Message_OneofNamedGroup); ok { return x.OneofNamedGroup } return nil } func (m *Message) GetOneofSiblingEnum() SiblingEnum { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingEnum); ok { return x.OneofSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetOneofSiblingMessage() *SiblingMessage { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingMessage); ok { return x.OneofSiblingMessage } return nil } func (m *Message) GetOneofgroup() *Message_OneofGroup { if x, ok := m.GetOneofUnion().(*Message_Oneofgroup); ok { return x.Oneofgroup } return nil } func (m *Message) GetOneofString1() string { if x, ok := m.GetOneofUnion().(*Message_OneofString1); ok { return x.OneofString1 } return "" } func (m *Message) GetOneofString2() string { if x, ok := m.GetOneofUnion().(*Message_OneofString2); ok { return x.OneofString2 } return "" } func (m *Message) GetOneofString3() string { if x, ok := m.GetOneofUnion().(*Message_OneofString3); ok { return x.OneofString3 } return "" } func (m *Message) GetOneofDefaultedBool() bool { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedBool); ok { return x.OneofDefaultedBool } return Default_Message_OneofDefaultedBool } func (m *Message) GetOneofDefaultedInt32() int32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedInt32); ok { return x.OneofDefaultedInt32 } return Default_Message_OneofDefaultedInt32 } func (m *Message) GetOneofDefaultedSint32() int32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSint32); ok { return x.OneofDefaultedSint32 } return Default_Message_OneofDefaultedSint32 } func (m *Message) GetOneofDefaultedUint32() uint32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedUint32); ok { return x.OneofDefaultedUint32 } return Default_Message_OneofDefaultedUint32 } func (m *Message) GetOneofDefaultedInt64() int64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedInt64); ok { return x.OneofDefaultedInt64 } return Default_Message_OneofDefaultedInt64 } func (m *Message) GetOneofDefaultedSint64() int64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSint64); ok { return x.OneofDefaultedSint64 } return Default_Message_OneofDefaultedSint64 } func (m *Message) GetOneofDefaultedUint64() uint64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedUint64); ok { return x.OneofDefaultedUint64 } return Default_Message_OneofDefaultedUint64 } func (m *Message) GetOneofDefaultedFixed32() uint32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedFixed32); ok { return x.OneofDefaultedFixed32 } return Default_Message_OneofDefaultedFixed32 } func (m *Message) GetOneofDefaultedSfixed32() int32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSfixed32); ok { return x.OneofDefaultedSfixed32 } return Default_Message_OneofDefaultedSfixed32 } func (m *Message) GetOneofDefaultedFloat() float32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedFloat); ok { return x.OneofDefaultedFloat } return Default_Message_OneofDefaultedFloat } func (m *Message) GetOneofDefaultedFixed64() uint64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedFixed64); ok { return x.OneofDefaultedFixed64 } return Default_Message_OneofDefaultedFixed64 } func (m *Message) GetOneofDefaultedSfixed64() int64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSfixed64); ok { return x.OneofDefaultedSfixed64 } return Default_Message_OneofDefaultedSfixed64 } func (m *Message) GetOneofDefaultedDouble() float64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedDouble); ok { return x.OneofDefaultedDouble } return Default_Message_OneofDefaultedDouble } func (m *Message) GetOneofDefaultedString() string { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedString); ok { return x.OneofDefaultedString } return Default_Message_OneofDefaultedString } func (m *Message) GetOneofDefaultedBytes() []byte { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedBytes); ok { return x.OneofDefaultedBytes } return append([]byte(nil), Default_Message_OneofDefaultedBytes...) } func (m *Message) GetOneofDefaultedChildEnum() Message_ChildEnum { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedChildEnum); ok { return x.OneofDefaultedChildEnum } return Default_Message_OneofDefaultedChildEnum } func (m *Message) GetOneofDefaultedSiblingEnum() SiblingEnum { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSiblingEnum); ok { return x.OneofDefaultedSiblingEnum } return Default_Message_OneofDefaultedSiblingEnum } // XXX_OneofFuncs is for the internal use of the proto package. func (*Message) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { return _Message_OneofMarshaler, _Message_OneofUnmarshaler, _Message_OneofSizer, []interface{}{ (*Message_OneofBool)(nil), (*Message_OneofInt32)(nil), (*Message_OneofSint32)(nil), (*Message_OneofUint32)(nil), (*Message_OneofInt64)(nil), (*Message_OneofSint64)(nil), (*Message_OneofUint64)(nil), (*Message_OneofFixed32)(nil), (*Message_OneofSfixed32)(nil), (*Message_OneofFloat)(nil), (*Message_OneofFixed64)(nil), (*Message_OneofSfixed64)(nil), (*Message_OneofDouble)(nil), (*Message_OneofString)(nil), (*Message_OneofBytes)(nil), (*Message_OneofChildEnum)(nil), (*Message_OneofChildMessage)(nil), (*Message_OneofNamedGroup)(nil), (*Message_OneofSiblingEnum)(nil), (*Message_OneofSiblingMessage)(nil), (*Message_Oneofgroup)(nil), (*Message_OneofString1)(nil), (*Message_OneofString2)(nil), (*Message_OneofString3)(nil), (*Message_OneofDefaultedBool)(nil), (*Message_OneofDefaultedInt32)(nil), (*Message_OneofDefaultedSint32)(nil), (*Message_OneofDefaultedUint32)(nil), (*Message_OneofDefaultedInt64)(nil), (*Message_OneofDefaultedSint64)(nil), (*Message_OneofDefaultedUint64)(nil), (*Message_OneofDefaultedFixed32)(nil), (*Message_OneofDefaultedSfixed32)(nil), (*Message_OneofDefaultedFloat)(nil), (*Message_OneofDefaultedFixed64)(nil), (*Message_OneofDefaultedSfixed64)(nil), (*Message_OneofDefaultedDouble)(nil), (*Message_OneofDefaultedString)(nil), (*Message_OneofDefaultedBytes)(nil), (*Message_OneofDefaultedChildEnum)(nil), (*Message_OneofDefaultedSiblingEnum)(nil), } } func _Message_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { m := msg.(*Message) // oneof_union switch x := m.OneofUnion.(type) { case *Message_OneofBool: t := uint64(0) if x.OneofBool { t = 1 } b.EncodeVarint(700<<3 | proto.WireVarint) b.EncodeVarint(t) case *Message_OneofInt32: b.EncodeVarint(701<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofInt32)) case *Message_OneofSint32: b.EncodeVarint(702<<3 | proto.WireVarint) b.EncodeZigzag32(uint64(x.OneofSint32)) case *Message_OneofUint32: b.EncodeVarint(703<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofUint32)) case *Message_OneofInt64: b.EncodeVarint(704<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofInt64)) case *Message_OneofSint64: b.EncodeVarint(705<<3 | proto.WireVarint) b.EncodeZigzag64(uint64(x.OneofSint64)) case *Message_OneofUint64: b.EncodeVarint(706<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofUint64)) case *Message_OneofFixed32: b.EncodeVarint(707<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofFixed32)) case *Message_OneofSfixed32: b.EncodeVarint(708<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofSfixed32)) case *Message_OneofFloat: b.EncodeVarint(709<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(math.Float32bits(x.OneofFloat))) case *Message_OneofFixed64: b.EncodeVarint(710<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofFixed64)) case *Message_OneofSfixed64: b.EncodeVarint(711<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofSfixed64)) case *Message_OneofDouble: b.EncodeVarint(712<<3 | proto.WireFixed64) b.EncodeFixed64(math.Float64bits(x.OneofDouble)) case *Message_OneofString: b.EncodeVarint(713<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString) case *Message_OneofBytes: b.EncodeVarint(714<<3 | proto.WireBytes) b.EncodeRawBytes(x.OneofBytes) case *Message_OneofChildEnum: b.EncodeVarint(715<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofChildEnum)) case *Message_OneofChildMessage: b.EncodeVarint(716<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofChildMessage); err != nil { return err } case *Message_OneofNamedGroup: b.EncodeVarint(717<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofNamedGroup); err != nil { return err } case *Message_OneofSiblingEnum: b.EncodeVarint(718<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofSiblingEnum)) case *Message_OneofSiblingMessage: b.EncodeVarint(719<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofSiblingMessage); err != nil { return err } case *Message_Oneofgroup: b.EncodeVarint(720<<3 | proto.WireStartGroup) if err := b.Marshal(x.Oneofgroup); err != nil { return err } b.EncodeVarint(720<<3 | proto.WireEndGroup) case *Message_OneofString1: b.EncodeVarint(721<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString1) case *Message_OneofString2: b.EncodeVarint(722<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString2) case *Message_OneofString3: b.EncodeVarint(723<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString3) case nil: default: return fmt.Errorf("Message.OneofUnion has unexpected type %T", x) } // oneof_defaulted_union switch x := m.OneofDefaultedUnion.(type) { case *Message_OneofDefaultedBool: t := uint64(0) if x.OneofDefaultedBool { t = 1 } b.EncodeVarint(800<<3 | proto.WireVarint) b.EncodeVarint(t) case *Message_OneofDefaultedInt32: b.EncodeVarint(801<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedInt32)) case *Message_OneofDefaultedSint32: b.EncodeVarint(802<<3 | proto.WireVarint) b.EncodeZigzag32(uint64(x.OneofDefaultedSint32)) case *Message_OneofDefaultedUint32: b.EncodeVarint(803<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedUint32)) case *Message_OneofDefaultedInt64: b.EncodeVarint(804<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedInt64)) case *Message_OneofDefaultedSint64: b.EncodeVarint(805<<3 | proto.WireVarint) b.EncodeZigzag64(uint64(x.OneofDefaultedSint64)) case *Message_OneofDefaultedUint64: b.EncodeVarint(806<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedUint64)) case *Message_OneofDefaultedFixed32: b.EncodeVarint(807<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofDefaultedFixed32)) case *Message_OneofDefaultedSfixed32: b.EncodeVarint(808<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofDefaultedSfixed32)) case *Message_OneofDefaultedFloat: b.EncodeVarint(809<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(math.Float32bits(x.OneofDefaultedFloat))) case *Message_OneofDefaultedFixed64: b.EncodeVarint(810<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofDefaultedFixed64)) case *Message_OneofDefaultedSfixed64: b.EncodeVarint(811<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofDefaultedSfixed64)) case *Message_OneofDefaultedDouble: b.EncodeVarint(812<<3 | proto.WireFixed64) b.EncodeFixed64(math.Float64bits(x.OneofDefaultedDouble)) case *Message_OneofDefaultedString: b.EncodeVarint(813<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofDefaultedString) case *Message_OneofDefaultedBytes: b.EncodeVarint(814<<3 | proto.WireBytes) b.EncodeRawBytes(x.OneofDefaultedBytes) case *Message_OneofDefaultedChildEnum: b.EncodeVarint(815<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedChildEnum)) case *Message_OneofDefaultedSiblingEnum: b.EncodeVarint(816<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedSiblingEnum)) case nil: default: return fmt.Errorf("Message.OneofDefaultedUnion has unexpected type %T", x) } return nil } func _Message_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { m := msg.(*Message) switch tag { case 700: // oneof_union.oneof_bool if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofBool{x != 0} return true, err case 701: // oneof_union.oneof_int32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofInt32{int32(x)} return true, err case 702: // oneof_union.oneof_sint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag32() m.OneofUnion = &Message_OneofSint32{int32(x)} return true, err case 703: // oneof_union.oneof_uint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofUint32{uint32(x)} return true, err case 704: // oneof_union.oneof_int64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofInt64{int64(x)} return true, err case 705: // oneof_union.oneof_sint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag64() m.OneofUnion = &Message_OneofSint64{int64(x)} return true, err case 706: // oneof_union.oneof_uint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofUint64{x} return true, err case 707: // oneof_union.oneof_fixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofFixed32{uint32(x)} return true, err case 708: // oneof_union.oneof_sfixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofSfixed32{int32(x)} return true, err case 709: // oneof_union.oneof_float if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofFloat{math.Float32frombits(uint32(x))} return true, err case 710: // oneof_union.oneof_fixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofFixed64{x} return true, err case 711: // oneof_union.oneof_sfixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofSfixed64{int64(x)} return true, err case 712: // oneof_union.oneof_double if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofDouble{math.Float64frombits(x)} return true, err case 713: // oneof_union.oneof_string if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString{x} return true, err case 714: // oneof_union.oneof_bytes if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeRawBytes(true) m.OneofUnion = &Message_OneofBytes{x} return true, err case 715: // oneof_union.oneof_child_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofChildEnum{Message_ChildEnum(x)} return true, err case 716: // oneof_union.oneof_child_message if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(Message_ChildMessage) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofChildMessage{msg} return true, err case 717: // oneof_union.oneof_named_group if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(Message_NamedGroup) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofNamedGroup{msg} return true, err case 718: // oneof_union.oneof_sibling_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofSiblingEnum{SiblingEnum(x)} return true, err case 719: // oneof_union.oneof_sibling_message if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(SiblingMessage) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofSiblingMessage{msg} return true, err case 720: // oneof_union.oneofgroup if wire != proto.WireStartGroup { return true, proto.ErrInternalBadWireType } msg := new(Message_OneofGroup) err := b.DecodeGroup(msg) m.OneofUnion = &Message_Oneofgroup{msg} return true, err case 721: // oneof_union.oneof_string1 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString1{x} return true, err case 722: // oneof_union.oneof_string2 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString2{x} return true, err case 723: // oneof_union.oneof_string3 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString3{x} return true, err case 800: // oneof_defaulted_union.oneof_defaulted_bool if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedBool{x != 0} return true, err case 801: // oneof_defaulted_union.oneof_defaulted_int32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedInt32{int32(x)} return true, err case 802: // oneof_defaulted_union.oneof_defaulted_sint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag32() m.OneofDefaultedUnion = &Message_OneofDefaultedSint32{int32(x)} return true, err case 803: // oneof_defaulted_union.oneof_defaulted_uint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedUint32{uint32(x)} return true, err case 804: // oneof_defaulted_union.oneof_defaulted_int64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedInt64{int64(x)} return true, err case 805: // oneof_defaulted_union.oneof_defaulted_sint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag64() m.OneofDefaultedUnion = &Message_OneofDefaultedSint64{int64(x)} return true, err case 806: // oneof_defaulted_union.oneof_defaulted_uint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedUint64{x} return true, err case 807: // oneof_defaulted_union.oneof_defaulted_fixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofDefaultedUnion = &Message_OneofDefaultedFixed32{uint32(x)} return true, err case 808: // oneof_defaulted_union.oneof_defaulted_sfixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofDefaultedUnion = &Message_OneofDefaultedSfixed32{int32(x)} return true, err case 809: // oneof_defaulted_union.oneof_defaulted_float if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofDefaultedUnion = &Message_OneofDefaultedFloat{math.Float32frombits(uint32(x))} return true, err case 810: // oneof_defaulted_union.oneof_defaulted_fixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofDefaultedUnion = &Message_OneofDefaultedFixed64{x} return true, err case 811: // oneof_defaulted_union.oneof_defaulted_sfixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofDefaultedUnion = &Message_OneofDefaultedSfixed64{int64(x)} return true, err case 812: // oneof_defaulted_union.oneof_defaulted_double if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofDefaultedUnion = &Message_OneofDefaultedDouble{math.Float64frombits(x)} return true, err case 813: // oneof_defaulted_union.oneof_defaulted_string if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofDefaultedUnion = &Message_OneofDefaultedString{x} return true, err case 814: // oneof_defaulted_union.oneof_defaulted_bytes if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeRawBytes(true) m.OneofDefaultedUnion = &Message_OneofDefaultedBytes{x} return true, err case 815: // oneof_defaulted_union.oneof_defaulted_child_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedChildEnum{Message_ChildEnum(x)} return true, err case 816: // oneof_defaulted_union.oneof_defaulted_sibling_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedSiblingEnum{SiblingEnum(x)} return true, err default: return false, nil } } func _Message_OneofSizer(msg proto.Message) (n int) { m := msg.(*Message) // oneof_union switch x := m.OneofUnion.(type) { case *Message_OneofBool: n += 2 // tag and wire n += 1 case *Message_OneofInt32: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofInt32)) case *Message_OneofSint32: n += 2 // tag and wire n += proto.SizeVarint(uint64((uint32(x.OneofSint32) << 1) ^ uint32((int32(x.OneofSint32) >> 31)))) case *Message_OneofUint32: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofUint32)) case *Message_OneofInt64: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofInt64)) case *Message_OneofSint64: n += 2 // tag and wire n += proto.SizeVarint(uint64(uint64(x.OneofSint64<<1) ^ uint64((int64(x.OneofSint64) >> 63)))) case *Message_OneofUint64: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofUint64)) case *Message_OneofFixed32: n += 2 // tag and wire n += 4 case *Message_OneofSfixed32: n += 2 // tag and wire n += 4 case *Message_OneofFloat: n += 2 // tag and wire n += 4 case *Message_OneofFixed64: n += 2 // tag and wire n += 8 case *Message_OneofSfixed64: n += 2 // tag and wire n += 8 case *Message_OneofDouble: n += 2 // tag and wire n += 8 case *Message_OneofString: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofString))) n += len(x.OneofString) case *Message_OneofBytes: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofBytes))) n += len(x.OneofBytes) case *Message_OneofChildEnum: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofChildEnum)) case *Message_OneofChildMessage: s := proto.Size(x.OneofChildMessage) n += 2 // tag and wire n += proto.SizeVarint(uint64(s)) n += s case *Message_OneofNamedGroup: s := proto.Size(x.OneofNamedGroup) n += 2 // tag and wire n += proto.SizeVarint(uint64(s)) n += s case *Message_OneofSiblingEnum: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofSiblingEnum)) case *Message_OneofSiblingMessage: s := proto.Size(x.OneofSiblingMessage) n += 2 // tag and wire n += proto.SizeVarint(uint64(s)) n += s case *Message_Oneofgroup: n += 2 // tag and wire n += proto.Size(x.Oneofgroup) n += 2 // tag and wire case *Message_OneofString1: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofString1))) n += len(x.OneofString1) case *Message_OneofString2: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofString2))) n += len(x.OneofString2) case *Message_OneofString3: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofString3))) n += len(x.OneofString3) case nil: default: panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) } // oneof_defaulted_union switch x := m.OneofDefaultedUnion.(type) { case *Message_OneofDefaultedBool: n += 2 // tag and wire n += 1 case *Message_OneofDefaultedInt32: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofDefaultedInt32)) case *Message_OneofDefaultedSint32: n += 2 // tag and wire n += proto.SizeVarint(uint64((uint32(x.OneofDefaultedSint32) << 1) ^ uint32((int32(x.OneofDefaultedSint32) >> 31)))) case *Message_OneofDefaultedUint32: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofDefaultedUint32)) case *Message_OneofDefaultedInt64: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofDefaultedInt64)) case *Message_OneofDefaultedSint64: n += 2 // tag and wire n += proto.SizeVarint(uint64(uint64(x.OneofDefaultedSint64<<1) ^ uint64((int64(x.OneofDefaultedSint64) >> 63)))) case *Message_OneofDefaultedUint64: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofDefaultedUint64)) case *Message_OneofDefaultedFixed32: n += 2 // tag and wire n += 4 case *Message_OneofDefaultedSfixed32: n += 2 // tag and wire n += 4 case *Message_OneofDefaultedFloat: n += 2 // tag and wire n += 4 case *Message_OneofDefaultedFixed64: n += 2 // tag and wire n += 8 case *Message_OneofDefaultedSfixed64: n += 2 // tag and wire n += 8 case *Message_OneofDefaultedDouble: n += 2 // tag and wire n += 8 case *Message_OneofDefaultedString: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofDefaultedString))) n += len(x.OneofDefaultedString) case *Message_OneofDefaultedBytes: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofDefaultedBytes))) n += len(x.OneofDefaultedBytes) case *Message_OneofDefaultedChildEnum: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofDefaultedChildEnum)) case *Message_OneofDefaultedSiblingEnum: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofDefaultedSiblingEnum)) case nil: default: panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) } return n } var E_Message_ExtensionOptionalBool = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*bool)(nil), Field: 10000, Name: "google.golang.org.proto2_20180430.Message.extension_optional_bool", Tag: "varint,10000,opt,name=extension_optional_bool,json=extensionOptionalBool", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionOptionalInt32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 10001, Name: "google.golang.org.proto2_20180430.Message.extension_optional_int32", Tag: "varint,10001,opt,name=extension_optional_int32,json=extensionOptionalInt32", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionOptionalSint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 10002, Name: "google.golang.org.proto2_20180430.Message.extension_optional_sint32", Tag: "zigzag32,10002,opt,name=extension_optional_sint32,json=extensionOptionalSint32", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionOptionalUint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 10003, Name: "google.golang.org.proto2_20180430.Message.extension_optional_uint32", Tag: "varint,10003,opt,name=extension_optional_uint32,json=extensionOptionalUint32", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionOptionalInt64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 10004, Name: "google.golang.org.proto2_20180430.Message.extension_optional_int64", Tag: "varint,10004,opt,name=extension_optional_int64,json=extensionOptionalInt64", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionOptionalSint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 10005, Name: "google.golang.org.proto2_20180430.Message.extension_optional_sint64", Tag: "zigzag64,10005,opt,name=extension_optional_sint64,json=extensionOptionalSint64", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionOptionalUint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 10006, Name: "google.golang.org.proto2_20180430.Message.extension_optional_uint64", Tag: "varint,10006,opt,name=extension_optional_uint64,json=extensionOptionalUint64", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionOptionalFixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 10007, Name: "google.golang.org.proto2_20180430.Message.extension_optional_fixed32", Tag: "fixed32,10007,opt,name=extension_optional_fixed32,json=extensionOptionalFixed32", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionOptionalSfixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 10008, Name: "google.golang.org.proto2_20180430.Message.extension_optional_sfixed32", Tag: "fixed32,10008,opt,name=extension_optional_sfixed32,json=extensionOptionalSfixed32", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionOptionalFloat = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float32)(nil), Field: 10009, Name: "google.golang.org.proto2_20180430.Message.extension_optional_float", Tag: "fixed32,10009,opt,name=extension_optional_float,json=extensionOptionalFloat", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionOptionalFixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 10010, Name: "google.golang.org.proto2_20180430.Message.extension_optional_fixed64", Tag: "fixed64,10010,opt,name=extension_optional_fixed64,json=extensionOptionalFixed64", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionOptionalSfixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 10011, Name: "google.golang.org.proto2_20180430.Message.extension_optional_sfixed64", Tag: "fixed64,10011,opt,name=extension_optional_sfixed64,json=extensionOptionalSfixed64", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionOptionalDouble = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float64)(nil), Field: 10012, Name: "google.golang.org.proto2_20180430.Message.extension_optional_double", Tag: "fixed64,10012,opt,name=extension_optional_double,json=extensionOptionalDouble", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionOptionalString = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*string)(nil), Field: 10013, Name: "google.golang.org.proto2_20180430.Message.extension_optional_string", Tag: "bytes,10013,opt,name=extension_optional_string,json=extensionOptionalString", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionOptionalBytes = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]byte)(nil), Field: 10014, Name: "google.golang.org.proto2_20180430.Message.extension_optional_bytes", Tag: "bytes,10014,opt,name=extension_optional_bytes,json=extensionOptionalBytes", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionOptionalChildEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ChildEnum)(nil), Field: 10015, Name: "google.golang.org.proto2_20180430.Message.extension_optional_child_enum", Tag: "varint,10015,opt,name=extension_optional_child_enum,json=extensionOptionalChildEnum,enum=google.golang.org.proto2_20180430.Message_ChildEnum", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionOptionalChildMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ChildMessage)(nil), Field: 10016, Name: "google.golang.org.proto2_20180430.Message.extension_optional_child_message", Tag: "bytes,10016,opt,name=extension_optional_child_message,json=extensionOptionalChildMessage", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionOptionalNamedGroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_NamedGroup)(nil), Field: 10017, Name: "google.golang.org.proto2_20180430.Message.extension_optional_named_group", Tag: "bytes,10017,opt,name=extension_optional_named_group,json=extensionOptionalNamedGroup", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionOptionalSiblingEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*SiblingEnum)(nil), Field: 10018, Name: "google.golang.org.proto2_20180430.Message.extension_optional_sibling_enum", Tag: "varint,10018,opt,name=extension_optional_sibling_enum,json=extensionOptionalSiblingEnum,enum=google.golang.org.proto2_20180430.SiblingEnum", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionOptionalSiblingMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*SiblingMessage)(nil), Field: 10019, Name: "google.golang.org.proto2_20180430.Message.extension_optional_sibling_message", Tag: "bytes,10019,opt,name=extension_optional_sibling_message,json=extensionOptionalSiblingMessage", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_Extensionoptionalgroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ExtensionOptionalGroup)(nil), Field: 10020, Name: "google.golang.org.proto2_20180430.Message.extensionoptionalgroup", Tag: "group,10020,opt,name=ExtensionOptionalGroup,json=extensionoptionalgroup", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionDefaultedBool = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*bool)(nil), Field: 20000, Name: "google.golang.org.proto2_20180430.Message.extension_defaulted_bool", Tag: "varint,20000,opt,name=extension_defaulted_bool,json=extensionDefaultedBool,def=1", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionDefaultedInt32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 20001, Name: "google.golang.org.proto2_20180430.Message.extension_defaulted_int32", Tag: "varint,20001,opt,name=extension_defaulted_int32,json=extensionDefaultedInt32,def=-12345", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionDefaultedSint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 20002, Name: "google.golang.org.proto2_20180430.Message.extension_defaulted_sint32", Tag: "zigzag32,20002,opt,name=extension_defaulted_sint32,json=extensionDefaultedSint32,def=-3200", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionDefaultedUint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 20003, Name: "google.golang.org.proto2_20180430.Message.extension_defaulted_uint32", Tag: "varint,20003,opt,name=extension_defaulted_uint32,json=extensionDefaultedUint32,def=3200", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionDefaultedInt64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 20004, Name: "google.golang.org.proto2_20180430.Message.extension_defaulted_int64", Tag: "varint,20004,opt,name=extension_defaulted_int64,json=extensionDefaultedInt64,def=-123456789", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionDefaultedSint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 20005, Name: "google.golang.org.proto2_20180430.Message.extension_defaulted_sint64", Tag: "zigzag64,20005,opt,name=extension_defaulted_sint64,json=extensionDefaultedSint64,def=-6400", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionDefaultedUint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 20006, Name: "google.golang.org.proto2_20180430.Message.extension_defaulted_uint64", Tag: "varint,20006,opt,name=extension_defaulted_uint64,json=extensionDefaultedUint64,def=6400", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionDefaultedFixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 20007, Name: "google.golang.org.proto2_20180430.Message.extension_defaulted_fixed32", Tag: "fixed32,20007,opt,name=extension_defaulted_fixed32,json=extensionDefaultedFixed32,def=320000", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionDefaultedSfixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 20008, Name: "google.golang.org.proto2_20180430.Message.extension_defaulted_sfixed32", Tag: "fixed32,20008,opt,name=extension_defaulted_sfixed32,json=extensionDefaultedSfixed32,def=-320000", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionDefaultedFloat = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float32)(nil), Field: 20009, Name: "google.golang.org.proto2_20180430.Message.extension_defaulted_float", Tag: "fixed32,20009,opt,name=extension_defaulted_float,json=extensionDefaultedFloat,def=3.14159", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionDefaultedFixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 20010, Name: "google.golang.org.proto2_20180430.Message.extension_defaulted_fixed64", Tag: "fixed64,20010,opt,name=extension_defaulted_fixed64,json=extensionDefaultedFixed64,def=640000", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionDefaultedSfixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 20011, Name: "google.golang.org.proto2_20180430.Message.extension_defaulted_sfixed64", Tag: "fixed64,20011,opt,name=extension_defaulted_sfixed64,json=extensionDefaultedSfixed64,def=-640000", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionDefaultedDouble = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float64)(nil), Field: 20012, Name: "google.golang.org.proto2_20180430.Message.extension_defaulted_double", Tag: "fixed64,20012,opt,name=extension_defaulted_double,json=extensionDefaultedDouble,def=3.14159265359", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionDefaultedString = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*string)(nil), Field: 20013, Name: "google.golang.org.proto2_20180430.Message.extension_defaulted_string", Tag: "bytes,20013,opt,name=extension_defaulted_string,json=extensionDefaultedString,def=hello, \"world!\"\n", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionDefaultedBytes = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]byte)(nil), Field: 20014, Name: "google.golang.org.proto2_20180430.Message.extension_defaulted_bytes", Tag: "bytes,20014,opt,name=extension_defaulted_bytes,json=extensionDefaultedBytes,def=dead\\336\\255\\276\\357beef", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionDefaultedChildEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ChildEnum)(nil), Field: 20015, Name: "google.golang.org.proto2_20180430.Message.extension_defaulted_child_enum", Tag: "varint,20015,opt,name=extension_defaulted_child_enum,json=extensionDefaultedChildEnum,enum=google.golang.org.proto2_20180430.Message_ChildEnum,def=0", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionDefaultedSiblingEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*SiblingEnum)(nil), Field: 20016, Name: "google.golang.org.proto2_20180430.Message.extension_defaulted_sibling_enum", Tag: "varint,20016,opt,name=extension_defaulted_sibling_enum,json=extensionDefaultedSiblingEnum,enum=google.golang.org.proto2_20180430.SiblingEnum,def=0", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionRepeatedBool = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]bool)(nil), Field: 30000, Name: "google.golang.org.proto2_20180430.Message.extension_repeated_bool", Tag: "varint,30000,rep,name=extension_repeated_bool,json=extensionRepeatedBool", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionRepeatedInt32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int32)(nil), Field: 30001, Name: "google.golang.org.proto2_20180430.Message.extension_repeated_int32", Tag: "varint,30001,rep,name=extension_repeated_int32,json=extensionRepeatedInt32", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionRepeatedSint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int32)(nil), Field: 30002, Name: "google.golang.org.proto2_20180430.Message.extension_repeated_sint32", Tag: "zigzag32,30002,rep,name=extension_repeated_sint32,json=extensionRepeatedSint32", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionRepeatedUint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint32)(nil), Field: 30003, Name: "google.golang.org.proto2_20180430.Message.extension_repeated_uint32", Tag: "varint,30003,rep,name=extension_repeated_uint32,json=extensionRepeatedUint32", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionRepeatedInt64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int64)(nil), Field: 30004, Name: "google.golang.org.proto2_20180430.Message.extension_repeated_int64", Tag: "varint,30004,rep,name=extension_repeated_int64,json=extensionRepeatedInt64", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionRepeatedSint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int64)(nil), Field: 30005, Name: "google.golang.org.proto2_20180430.Message.extension_repeated_sint64", Tag: "zigzag64,30005,rep,name=extension_repeated_sint64,json=extensionRepeatedSint64", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionRepeatedUint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint64)(nil), Field: 30006, Name: "google.golang.org.proto2_20180430.Message.extension_repeated_uint64", Tag: "varint,30006,rep,name=extension_repeated_uint64,json=extensionRepeatedUint64", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionRepeatedFixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint32)(nil), Field: 30007, Name: "google.golang.org.proto2_20180430.Message.extension_repeated_fixed32", Tag: "fixed32,30007,rep,name=extension_repeated_fixed32,json=extensionRepeatedFixed32", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionRepeatedSfixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int32)(nil), Field: 30008, Name: "google.golang.org.proto2_20180430.Message.extension_repeated_sfixed32", Tag: "fixed32,30008,rep,name=extension_repeated_sfixed32,json=extensionRepeatedSfixed32", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionRepeatedFloat = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]float32)(nil), Field: 30009, Name: "google.golang.org.proto2_20180430.Message.extension_repeated_float", Tag: "fixed32,30009,rep,name=extension_repeated_float,json=extensionRepeatedFloat", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionRepeatedFixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint64)(nil), Field: 30010, Name: "google.golang.org.proto2_20180430.Message.extension_repeated_fixed64", Tag: "fixed64,30010,rep,name=extension_repeated_fixed64,json=extensionRepeatedFixed64", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionRepeatedSfixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int64)(nil), Field: 30011, Name: "google.golang.org.proto2_20180430.Message.extension_repeated_sfixed64", Tag: "fixed64,30011,rep,name=extension_repeated_sfixed64,json=extensionRepeatedSfixed64", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionRepeatedDouble = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]float64)(nil), Field: 30012, Name: "google.golang.org.proto2_20180430.Message.extension_repeated_double", Tag: "fixed64,30012,rep,name=extension_repeated_double,json=extensionRepeatedDouble", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionRepeatedString = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]string)(nil), Field: 30013, Name: "google.golang.org.proto2_20180430.Message.extension_repeated_string", Tag: "bytes,30013,rep,name=extension_repeated_string,json=extensionRepeatedString", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionRepeatedBytes = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([][]byte)(nil), Field: 30014, Name: "google.golang.org.proto2_20180430.Message.extension_repeated_bytes", Tag: "bytes,30014,rep,name=extension_repeated_bytes,json=extensionRepeatedBytes", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionRepeatedChildEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]Message_ChildEnum)(nil), Field: 30015, Name: "google.golang.org.proto2_20180430.Message.extension_repeated_child_enum", Tag: "varint,30015,rep,name=extension_repeated_child_enum,json=extensionRepeatedChildEnum,enum=google.golang.org.proto2_20180430.Message_ChildEnum", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionRepeatedChildMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*Message_ChildMessage)(nil), Field: 30016, Name: "google.golang.org.proto2_20180430.Message.extension_repeated_child_message", Tag: "bytes,30016,rep,name=extension_repeated_child_message,json=extensionRepeatedChildMessage", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionRepeatedNamedGroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*Message_NamedGroup)(nil), Field: 30017, Name: "google.golang.org.proto2_20180430.Message.extension_repeated_named_group", Tag: "bytes,30017,rep,name=extension_repeated_named_group,json=extensionRepeatedNamedGroup", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionRepeatedSiblingEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]SiblingEnum)(nil), Field: 30018, Name: "google.golang.org.proto2_20180430.Message.extension_repeated_sibling_enum", Tag: "varint,30018,rep,name=extension_repeated_sibling_enum,json=extensionRepeatedSiblingEnum,enum=google.golang.org.proto2_20180430.SiblingEnum", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_ExtensionRepeatedSiblingMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*SiblingMessage)(nil), Field: 30019, Name: "google.golang.org.proto2_20180430.Message.extension_repeated_sibling_message", Tag: "bytes,30019,rep,name=extension_repeated_sibling_message,json=extensionRepeatedSiblingMessage", Filename: "proto2_20180430_b4deda09/test.proto", } var E_Message_Extensionrepeatedgroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*Message_ExtensionRepeatedGroup)(nil), Field: 30020, Name: "google.golang.org.proto2_20180430.Message.extensionrepeatedgroup", Tag: "group,30020,rep,name=ExtensionRepeatedGroup,json=extensionrepeatedgroup", Filename: "proto2_20180430_b4deda09/test.proto", } type Message_ChildMessage struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` F4 *Message `protobuf:"bytes,4,opt,name=f4" json:"f4,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_ChildMessage) Reset() { *m = Message_ChildMessage{} } func (m *Message_ChildMessage) String() string { return proto.CompactTextString(m) } func (*Message_ChildMessage) ProtoMessage() {} func (*Message_ChildMessage) Descriptor() ([]byte, []int) { return fileDescriptor_test_a365478be18be824, []int{1, 0} } func (m *Message_ChildMessage) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_ChildMessage.Unmarshal(m, b) } func (m *Message_ChildMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_ChildMessage.Marshal(b, m, deterministic) } func (dst *Message_ChildMessage) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_ChildMessage.Merge(dst, src) } func (m *Message_ChildMessage) XXX_Size() int { return xxx_messageInfo_Message_ChildMessage.Size(m) } func (m *Message_ChildMessage) XXX_DiscardUnknown() { xxx_messageInfo_Message_ChildMessage.DiscardUnknown(m) } var xxx_messageInfo_Message_ChildMessage proto.InternalMessageInfo func (m *Message_ChildMessage) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_ChildMessage) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_ChildMessage) GetF3() []string { if m != nil { return m.F3 } return nil } func (m *Message_ChildMessage) GetF4() *Message { if m != nil { return m.F4 } return nil } type Message_NamedGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` F4 *Message `protobuf:"bytes,4,opt,name=f4" json:"f4,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_NamedGroup) Reset() { *m = Message_NamedGroup{} } func (m *Message_NamedGroup) String() string { return proto.CompactTextString(m) } func (*Message_NamedGroup) ProtoMessage() {} func (*Message_NamedGroup) Descriptor() ([]byte, []int) { return fileDescriptor_test_a365478be18be824, []int{1, 1} } func (m *Message_NamedGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_NamedGroup.Unmarshal(m, b) } func (m *Message_NamedGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_NamedGroup.Marshal(b, m, deterministic) } func (dst *Message_NamedGroup) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_NamedGroup.Merge(dst, src) } func (m *Message_NamedGroup) XXX_Size() int { return xxx_messageInfo_Message_NamedGroup.Size(m) } func (m *Message_NamedGroup) XXX_DiscardUnknown() { xxx_messageInfo_Message_NamedGroup.DiscardUnknown(m) } var xxx_messageInfo_Message_NamedGroup proto.InternalMessageInfo func (m *Message_NamedGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_NamedGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_NamedGroup) GetF3() []string { if m != nil { return m.F3 } return nil } func (m *Message_NamedGroup) GetF4() *Message { if m != nil { return m.F4 } return nil } type Message_OptionalGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_OptionalGroup) Reset() { *m = Message_OptionalGroup{} } func (m *Message_OptionalGroup) String() string { return proto.CompactTextString(m) } func (*Message_OptionalGroup) ProtoMessage() {} func (*Message_OptionalGroup) Descriptor() ([]byte, []int) { return fileDescriptor_test_a365478be18be824, []int{1, 2} } func (m *Message_OptionalGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_OptionalGroup.Unmarshal(m, b) } func (m *Message_OptionalGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_OptionalGroup.Marshal(b, m, deterministic) } func (dst *Message_OptionalGroup) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_OptionalGroup.Merge(dst, src) } func (m *Message_OptionalGroup) XXX_Size() int { return xxx_messageInfo_Message_OptionalGroup.Size(m) } func (m *Message_OptionalGroup) XXX_DiscardUnknown() { xxx_messageInfo_Message_OptionalGroup.DiscardUnknown(m) } var xxx_messageInfo_Message_OptionalGroup proto.InternalMessageInfo func (m *Message_OptionalGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_OptionalGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_OptionalGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_RequiredGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_RequiredGroup) Reset() { *m = Message_RequiredGroup{} } func (m *Message_RequiredGroup) String() string { return proto.CompactTextString(m) } func (*Message_RequiredGroup) ProtoMessage() {} func (*Message_RequiredGroup) Descriptor() ([]byte, []int) { return fileDescriptor_test_a365478be18be824, []int{1, 3} } func (m *Message_RequiredGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_RequiredGroup.Unmarshal(m, b) } func (m *Message_RequiredGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_RequiredGroup.Marshal(b, m, deterministic) } func (dst *Message_RequiredGroup) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_RequiredGroup.Merge(dst, src) } func (m *Message_RequiredGroup) XXX_Size() int { return xxx_messageInfo_Message_RequiredGroup.Size(m) } func (m *Message_RequiredGroup) XXX_DiscardUnknown() { xxx_messageInfo_Message_RequiredGroup.DiscardUnknown(m) } var xxx_messageInfo_Message_RequiredGroup proto.InternalMessageInfo func (m *Message_RequiredGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_RequiredGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_RequiredGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_RepeatedGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_RepeatedGroup) Reset() { *m = Message_RepeatedGroup{} } func (m *Message_RepeatedGroup) String() string { return proto.CompactTextString(m) } func (*Message_RepeatedGroup) ProtoMessage() {} func (*Message_RepeatedGroup) Descriptor() ([]byte, []int) { return fileDescriptor_test_a365478be18be824, []int{1, 4} } func (m *Message_RepeatedGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_RepeatedGroup.Unmarshal(m, b) } func (m *Message_RepeatedGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_RepeatedGroup.Marshal(b, m, deterministic) } func (dst *Message_RepeatedGroup) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_RepeatedGroup.Merge(dst, src) } func (m *Message_RepeatedGroup) XXX_Size() int { return xxx_messageInfo_Message_RepeatedGroup.Size(m) } func (m *Message_RepeatedGroup) XXX_DiscardUnknown() { xxx_messageInfo_Message_RepeatedGroup.DiscardUnknown(m) } var xxx_messageInfo_Message_RepeatedGroup proto.InternalMessageInfo func (m *Message_RepeatedGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_RepeatedGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_RepeatedGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_OneofGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_OneofGroup) Reset() { *m = Message_OneofGroup{} } func (m *Message_OneofGroup) String() string { return proto.CompactTextString(m) } func (*Message_OneofGroup) ProtoMessage() {} func (*Message_OneofGroup) Descriptor() ([]byte, []int) { return fileDescriptor_test_a365478be18be824, []int{1, 33} } func (m *Message_OneofGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_OneofGroup.Unmarshal(m, b) } func (m *Message_OneofGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_OneofGroup.Marshal(b, m, deterministic) } func (dst *Message_OneofGroup) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_OneofGroup.Merge(dst, src) } func (m *Message_OneofGroup) XXX_Size() int { return xxx_messageInfo_Message_OneofGroup.Size(m) } func (m *Message_OneofGroup) XXX_DiscardUnknown() { xxx_messageInfo_Message_OneofGroup.DiscardUnknown(m) } var xxx_messageInfo_Message_OneofGroup proto.InternalMessageInfo func (m *Message_OneofGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_OneofGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_OneofGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_ExtensionOptionalGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_ExtensionOptionalGroup) Reset() { *m = Message_ExtensionOptionalGroup{} } func (m *Message_ExtensionOptionalGroup) String() string { return proto.CompactTextString(m) } func (*Message_ExtensionOptionalGroup) ProtoMessage() {} func (*Message_ExtensionOptionalGroup) Descriptor() ([]byte, []int) { return fileDescriptor_test_a365478be18be824, []int{1, 34} } func (m *Message_ExtensionOptionalGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_ExtensionOptionalGroup.Unmarshal(m, b) } func (m *Message_ExtensionOptionalGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_ExtensionOptionalGroup.Marshal(b, m, deterministic) } func (dst *Message_ExtensionOptionalGroup) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_ExtensionOptionalGroup.Merge(dst, src) } func (m *Message_ExtensionOptionalGroup) XXX_Size() int { return xxx_messageInfo_Message_ExtensionOptionalGroup.Size(m) } func (m *Message_ExtensionOptionalGroup) XXX_DiscardUnknown() { xxx_messageInfo_Message_ExtensionOptionalGroup.DiscardUnknown(m) } var xxx_messageInfo_Message_ExtensionOptionalGroup proto.InternalMessageInfo func (m *Message_ExtensionOptionalGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_ExtensionOptionalGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_ExtensionOptionalGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_ExtensionRepeatedGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_ExtensionRepeatedGroup) Reset() { *m = Message_ExtensionRepeatedGroup{} } func (m *Message_ExtensionRepeatedGroup) String() string { return proto.CompactTextString(m) } func (*Message_ExtensionRepeatedGroup) ProtoMessage() {} func (*Message_ExtensionRepeatedGroup) Descriptor() ([]byte, []int) { return fileDescriptor_test_a365478be18be824, []int{1, 35} } func (m *Message_ExtensionRepeatedGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_ExtensionRepeatedGroup.Unmarshal(m, b) } func (m *Message_ExtensionRepeatedGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_ExtensionRepeatedGroup.Marshal(b, m, deterministic) } func (dst *Message_ExtensionRepeatedGroup) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_ExtensionRepeatedGroup.Merge(dst, src) } func (m *Message_ExtensionRepeatedGroup) XXX_Size() int { return xxx_messageInfo_Message_ExtensionRepeatedGroup.Size(m) } func (m *Message_ExtensionRepeatedGroup) XXX_DiscardUnknown() { xxx_messageInfo_Message_ExtensionRepeatedGroup.DiscardUnknown(m) } var xxx_messageInfo_Message_ExtensionRepeatedGroup proto.InternalMessageInfo func (m *Message_ExtensionRepeatedGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_ExtensionRepeatedGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_ExtensionRepeatedGroup) GetF3() []string { if m != nil { return m.F3 } return nil } func init() { proto.RegisterType((*SiblingMessage)(nil), "google.golang.org.proto2_20180430.SiblingMessage") proto.RegisterType((*Message)(nil), "google.golang.org.proto2_20180430.Message") proto.RegisterMapType((map[bool]bool)(nil), "google.golang.org.proto2_20180430.Message.MapBoolBoolEntry") proto.RegisterMapType((map[bool][]byte)(nil), "google.golang.org.proto2_20180430.Message.MapBoolBytesEntry") proto.RegisterMapType((map[bool]Message_ChildEnum)(nil), "google.golang.org.proto2_20180430.Message.MapBoolChildEnumEntry") proto.RegisterMapType((map[bool]*Message_ChildMessage)(nil), "google.golang.org.proto2_20180430.Message.MapBoolChildMessageEntry") proto.RegisterMapType((map[bool]float64)(nil), "google.golang.org.proto2_20180430.Message.MapBoolDoubleEntry") proto.RegisterMapType((map[bool]uint32)(nil), "google.golang.org.proto2_20180430.Message.MapBoolFixed32Entry") proto.RegisterMapType((map[bool]uint64)(nil), "google.golang.org.proto2_20180430.Message.MapBoolFixed64Entry") proto.RegisterMapType((map[bool]float32)(nil), "google.golang.org.proto2_20180430.Message.MapBoolFloatEntry") proto.RegisterMapType((map[bool]int32)(nil), "google.golang.org.proto2_20180430.Message.MapBoolInt32Entry") proto.RegisterMapType((map[bool]int64)(nil), "google.golang.org.proto2_20180430.Message.MapBoolInt64Entry") proto.RegisterMapType((map[bool]*Message_NamedGroup)(nil), "google.golang.org.proto2_20180430.Message.MapBoolNamedGroupEntry") proto.RegisterMapType((map[bool]int32)(nil), "google.golang.org.proto2_20180430.Message.MapBoolSfixed32Entry") proto.RegisterMapType((map[bool]int64)(nil), "google.golang.org.proto2_20180430.Message.MapBoolSfixed64Entry") proto.RegisterMapType((map[bool]SiblingEnum)(nil), "google.golang.org.proto2_20180430.Message.MapBoolSiblingEnumEntry") proto.RegisterMapType((map[bool]*SiblingMessage)(nil), "google.golang.org.proto2_20180430.Message.MapBoolSiblingMessageEntry") proto.RegisterMapType((map[bool]int32)(nil), "google.golang.org.proto2_20180430.Message.MapBoolSint32Entry") proto.RegisterMapType((map[bool]int64)(nil), "google.golang.org.proto2_20180430.Message.MapBoolSint64Entry") proto.RegisterMapType((map[bool]string)(nil), "google.golang.org.proto2_20180430.Message.MapBoolStringEntry") proto.RegisterMapType((map[bool]uint32)(nil), "google.golang.org.proto2_20180430.Message.MapBoolUint32Entry") proto.RegisterMapType((map[bool]uint64)(nil), "google.golang.org.proto2_20180430.Message.MapBoolUint64Entry") proto.RegisterMapType((map[uint32]bool)(nil), "google.golang.org.proto2_20180430.Message.MapFixed32BoolEntry") proto.RegisterMapType((map[int32]bool)(nil), "google.golang.org.proto2_20180430.Message.MapInt32BoolEntry") proto.RegisterMapType((map[int64]bool)(nil), "google.golang.org.proto2_20180430.Message.MapInt64BoolEntry") proto.RegisterMapType((map[int32]bool)(nil), "google.golang.org.proto2_20180430.Message.MapSint32BoolEntry") proto.RegisterMapType((map[int64]bool)(nil), "google.golang.org.proto2_20180430.Message.MapSint64BoolEntry") proto.RegisterMapType((map[string]bool)(nil), "google.golang.org.proto2_20180430.Message.MapStringBoolEntry") proto.RegisterMapType((map[uint32]bool)(nil), "google.golang.org.proto2_20180430.Message.MapUint32BoolEntry") proto.RegisterMapType((map[uint64]bool)(nil), "google.golang.org.proto2_20180430.Message.MapUint64BoolEntry") proto.RegisterType((*Message_ChildMessage)(nil), "google.golang.org.proto2_20180430.Message.ChildMessage") proto.RegisterType((*Message_NamedGroup)(nil), "google.golang.org.proto2_20180430.Message.NamedGroup") proto.RegisterType((*Message_OptionalGroup)(nil), "google.golang.org.proto2_20180430.Message.OptionalGroup") proto.RegisterType((*Message_RequiredGroup)(nil), "google.golang.org.proto2_20180430.Message.RequiredGroup") proto.RegisterType((*Message_RepeatedGroup)(nil), "google.golang.org.proto2_20180430.Message.RepeatedGroup") proto.RegisterType((*Message_OneofGroup)(nil), "google.golang.org.proto2_20180430.Message.OneofGroup") proto.RegisterType((*Message_ExtensionOptionalGroup)(nil), "google.golang.org.proto2_20180430.Message.ExtensionOptionalGroup") proto.RegisterType((*Message_ExtensionRepeatedGroup)(nil), "google.golang.org.proto2_20180430.Message.ExtensionRepeatedGroup") proto.RegisterEnum("google.golang.org.proto2_20180430.SiblingEnum", SiblingEnum_name, SiblingEnum_value) proto.RegisterEnum("google.golang.org.proto2_20180430.Message_ChildEnum", Message_ChildEnum_name, Message_ChildEnum_value) proto.RegisterExtension(E_Message_ExtensionOptionalBool) proto.RegisterExtension(E_Message_ExtensionOptionalInt32) proto.RegisterExtension(E_Message_ExtensionOptionalSint32) proto.RegisterExtension(E_Message_ExtensionOptionalUint32) proto.RegisterExtension(E_Message_ExtensionOptionalInt64) proto.RegisterExtension(E_Message_ExtensionOptionalSint64) proto.RegisterExtension(E_Message_ExtensionOptionalUint64) proto.RegisterExtension(E_Message_ExtensionOptionalFixed32) proto.RegisterExtension(E_Message_ExtensionOptionalSfixed32) proto.RegisterExtension(E_Message_ExtensionOptionalFloat) proto.RegisterExtension(E_Message_ExtensionOptionalFixed64) proto.RegisterExtension(E_Message_ExtensionOptionalSfixed64) proto.RegisterExtension(E_Message_ExtensionOptionalDouble) proto.RegisterExtension(E_Message_ExtensionOptionalString) proto.RegisterExtension(E_Message_ExtensionOptionalBytes) proto.RegisterExtension(E_Message_ExtensionOptionalChildEnum) proto.RegisterExtension(E_Message_ExtensionOptionalChildMessage) proto.RegisterExtension(E_Message_ExtensionOptionalNamedGroup) proto.RegisterExtension(E_Message_ExtensionOptionalSiblingEnum) proto.RegisterExtension(E_Message_ExtensionOptionalSiblingMessage) proto.RegisterExtension(E_Message_Extensionoptionalgroup) proto.RegisterExtension(E_Message_ExtensionDefaultedBool) proto.RegisterExtension(E_Message_ExtensionDefaultedInt32) proto.RegisterExtension(E_Message_ExtensionDefaultedSint32) proto.RegisterExtension(E_Message_ExtensionDefaultedUint32) proto.RegisterExtension(E_Message_ExtensionDefaultedInt64) proto.RegisterExtension(E_Message_ExtensionDefaultedSint64) proto.RegisterExtension(E_Message_ExtensionDefaultedUint64) proto.RegisterExtension(E_Message_ExtensionDefaultedFixed32) proto.RegisterExtension(E_Message_ExtensionDefaultedSfixed32) proto.RegisterExtension(E_Message_ExtensionDefaultedFloat) proto.RegisterExtension(E_Message_ExtensionDefaultedFixed64) proto.RegisterExtension(E_Message_ExtensionDefaultedSfixed64) proto.RegisterExtension(E_Message_ExtensionDefaultedDouble) proto.RegisterExtension(E_Message_ExtensionDefaultedString) proto.RegisterExtension(E_Message_ExtensionDefaultedBytes) proto.RegisterExtension(E_Message_ExtensionDefaultedChildEnum) proto.RegisterExtension(E_Message_ExtensionDefaultedSiblingEnum) proto.RegisterExtension(E_Message_ExtensionRepeatedBool) proto.RegisterExtension(E_Message_ExtensionRepeatedInt32) proto.RegisterExtension(E_Message_ExtensionRepeatedSint32) proto.RegisterExtension(E_Message_ExtensionRepeatedUint32) proto.RegisterExtension(E_Message_ExtensionRepeatedInt64) proto.RegisterExtension(E_Message_ExtensionRepeatedSint64) proto.RegisterExtension(E_Message_ExtensionRepeatedUint64) proto.RegisterExtension(E_Message_ExtensionRepeatedFixed32) proto.RegisterExtension(E_Message_ExtensionRepeatedSfixed32) proto.RegisterExtension(E_Message_ExtensionRepeatedFloat) proto.RegisterExtension(E_Message_ExtensionRepeatedFixed64) proto.RegisterExtension(E_Message_ExtensionRepeatedSfixed64) proto.RegisterExtension(E_Message_ExtensionRepeatedDouble) proto.RegisterExtension(E_Message_ExtensionRepeatedString) proto.RegisterExtension(E_Message_ExtensionRepeatedBytes) proto.RegisterExtension(E_Message_ExtensionRepeatedChildEnum) proto.RegisterExtension(E_Message_ExtensionRepeatedChildMessage) proto.RegisterExtension(E_Message_ExtensionRepeatedNamedGroup) proto.RegisterExtension(E_Message_ExtensionRepeatedSiblingEnum) proto.RegisterExtension(E_Message_ExtensionRepeatedSiblingMessage) proto.RegisterExtension(E_Message_Extensionrepeatedgroup) } func init() { proto.RegisterFile("proto2_20180430_b4deda09/test.proto", fileDescriptor_test_a365478be18be824) } var fileDescriptor_test_a365478be18be824 = []byte{ // 4468 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5c, 0x67, 0x70, 0x24, 0xc7, 0x75, 0xc6, 0xec, 0x62, 0x17, 0x87, 0x3e, 0x2c, 0xb0, 0x98, 0xbb, 0x03, 0xe6, 0x40, 0xd2, 0x5c, 0x9d, 0x64, 0x79, 0x4d, 0xf3, 0x70, 0xc0, 0xa0, 0xd1, 0xc7, 0x5b, 0x33, 0x08, 0x20, 0x8f, 0x5a, 0xca, 0xe2, 0x52, 0x35, 0xac, 0x73, 0xb9, 0x5c, 0x2c, 0xc3, 0xc0, 0x61, 0x81, 0x03, 0xb9, 0x01, 0x04, 0x76, 0x49, 0x9e, 0x25, 0x17, 0xcf, 0x72, 0xfc, 0x49, 0xe5, 0xb4, 0x92, 0x28, 0x66, 0x89, 0x51, 0x39, 0x31, 0x29, 0xd8, 0xa6, 0x72, 0x72, 0x90, 0x93, 0x9c, 0x93, 0x9c, 0x73, 0x0e, 0xd5, 0xfd, 0xba, 0xa7, 0xbb, 0x67, 0x7a, 0x16, 0xe8, 0x59, 0x15, 0x7f, 0xb0, 0x8a, 0xd7, 0xfb, 0xfa, 0x7d, 0xfd, 0xbe, 0xed, 0xf7, 0xde, 0x87, 0x9e, 0xe9, 0x45, 0x2f, 0xdd, 0xde, 0x69, 0x77, 0xda, 0xfe, 0x8a, 0x3f, 0x37, 0x7f, 0xc5, 0x1c, 0x5e, 0x98, 0x5b, 0x59, 0xc3, 0xeb, 0xf5, 0xf5, 0xd5, 0xb9, 0x53, 0x27, 0x3a, 0xf5, 0xdd, 0xce, 0x2c, 0xfb, 0xd4, 0x7d, 0xc9, 0x66, 0xbb, 0xbd, 0xd9, 0xa8, 0xcf, 0x6e, 0xb6, 0x1b, 0xab, 0xad, 0xcd, 0xd9, 0xf6, 0xce, 0xe6, 0x6c, 0x64, 0xda, 0xb1, 0xd7, 0xa1, 0xf1, 0x9b, 0xb7, 0xd6, 0x1a, 0x5b, 0xad, 0xcd, 0x1b, 0xeb, 0xbb, 0xbb, 0xab, 0x9b, 0x75, 0x77, 0x1c, 0x65, 0x36, 0xe6, 0x3d, 0xa7, 0xe4, 0x94, 0x47, 0x83, 0xcc, 0xc6, 0x3c, 0xfb, 0xb7, 0xef, 0x65, 0x4a, 0x19, 0xf6, 0x6f, 0x9f, 0xfd, 0x7b, 0xc1, 0xcb, 0x96, 0xb2, 0xec, 0xdf, 0x0b, 0x6e, 0x05, 0x65, 0x36, 0xb0, 0x37, 0x5c, 0x72, 0xca, 0x07, 0xfd, 0xcb, 0x66, 0xf7, 0x44, 0x9c, 0xe5, 0x38, 0x41, 0x66, 0x03, 0x1f, 0xfb, 0xce, 0xa3, 0x0e, 0x1a, 0x11, 0xc0, 0x67, 0x10, 0x6a, 0xad, 0x36, 0xeb, 0xeb, 0x9b, 0x3b, 0xed, 0xee, 0x36, 0x5b, 0x00, 0xf2, 0x17, 0xf7, 0xef, 0x70, 0xb6, 0x46, 0x27, 0xbf, 0x92, 0x4e, 0x0e, 0x14, 0x47, 0xee, 0x4b, 0x51, 0xa1, 0xbd, 0xdd, 0xd9, 0x6a, 0xb7, 0x56, 0x1b, 0x2b, 0x6b, 0xed, 0x76, 0xc3, 0x5b, 0x2f, 0x39, 0xe5, 0x03, 0xc1, 0x98, 0x18, 0x5c, 0x6e, 0xb7, 0x1b, 0xee, 0xf7, 0xa3, 0xf1, 0xd0, 0x68, 0xab, 0xd5, 0x59, 0xf0, 0xbd, 0x7a, 0xc9, 0x29, 0xe7, 0x82, 0x70, 0xea, 0x0d, 0x74, 0xd0, 0xfd, 0x01, 0x34, 0x11, 0x9a, 0xed, 0x82, 0xdd, 0x46, 0xc9, 0x29, 0x4f, 0x06, 0xe1, 0xec, 0x9b, 0xb7, 0x62, 0x86, 0x5d, 0x30, 0xdc, 0x2c, 0x39, 0xe5, 0x82, 0x34, 0x3c, 0x03, 0x86, 0x11, 0x60, 0x82, 0xbd, 0x73, 0x25, 0xa7, 0x9c, 0xd5, 0x80, 0x09, 0x8e, 0x01, 0x13, 0xec, 0x6d, 0x95, 0x9c, 0xb2, 0xab, 0x03, 0x47, 0x0c, 0xbb, 0x60, 0x78, 0x6b, 0xc9, 0x29, 0x0f, 0xeb, 0xc0, 0x04, 0xbb, 0x3f, 0x88, 0x8a, 0xa1, 0xe1, 0xc6, 0xd6, 0x5d, 0xf5, 0xf5, 0x05, 0xdf, 0xbb, 0xad, 0xe4, 0x94, 0x47, 0x82, 0xd0, 0xc1, 0xf5, 0x30, 0xec, 0xfe, 0x10, 0x9a, 0x94, 0xe0, 0xc2, 0xb6, 0x51, 0x72, 0xca, 0x13, 0x41, 0xe8, 0xe3, 0x66, 0x3e, 0xae, 0x05, 0xb4, 0xd1, 0x68, 0xaf, 0x76, 0xbc, 0x66, 0xc9, 0x29, 0x67, 0x64, 0x40, 0xd7, 0xd3, 0xc1, 0x38, 0x3c, 0xc1, 0x5e, 0xab, 0xe4, 0x94, 0xf3, 0x11, 0x78, 0x82, 0x0d, 0xf0, 0x04, 0x7b, 0xed, 0x92, 0x53, 0x2e, 0x46, 0xe1, 0x23, 0xf1, 0xaf, 0xb7, 0xbb, 0x6b, 0x8d, 0xba, 0xb7, 0x5d, 0x72, 0xca, 0x8e, 0x8c, 0xff, 0x3a, 0x36, 0xaa, 0x33, 0xda, 0xd9, 0xd9, 0x6a, 0x6d, 0x7a, 0xb7, 0xb3, 0x3d, 0x2f, 0x19, 0x65, 0xa3, 0x5a, 0x40, 0x6b, 0xe7, 0x3b, 0xf5, 0x5d, 0x6f, 0xa7, 0xe4, 0x94, 0xc7, 0x64, 0x40, 0xcb, 0x74, 0xd0, 0x5d, 0x47, 0x87, 0x42, 0xb3, 0xb3, 0xe7, 0xb6, 0x1a, 0xeb, 0x2b, 0xf5, 0x56, 0xb7, 0xe9, 0xed, 0x96, 0x9c, 0xf2, 0xb8, 0x8f, 0x2d, 0xb6, 0xf1, 0xb5, 0x74, 0xf2, 0xe9, 0x56, 0xb7, 0x19, 0x84, 0x61, 0x87, 0x43, 0x6e, 0x13, 0x4d, 0x45, 0x50, 0x9a, 0x30, 0xcd, 0xeb, 0xb0, 0x04, 0x3c, 0x69, 0x0b, 0x24, 0xb2, 0xf1, 0xb0, 0x86, 0x25, 0x52, 0x72, 0x13, 0x85, 0xe3, 0x2b, 0x2c, 0xa5, 0x56, 0x20, 0x39, 0xbb, 0x0c, 0x2c, 0x65, 0x72, 0xba, 0xc2, 0xa5, 0x1c, 0x73, 0xd7, 0xd0, 0x11, 0x65, 0x7f, 0xb3, 0x7a, 0x04, 0xfc, 0xdd, 0xc1, 0xf8, 0x9b, 0xdd, 0x07, 0x12, 0x2f, 0x63, 0x8c, 0xb9, 0x43, 0x32, 0x2b, 0xc2, 0x41, 0xf7, 0x36, 0xe4, 0xc5, 0x30, 0x04, 0x7b, 0x77, 0xb2, 0x80, 0xe6, 0xf7, 0x0f, 0x23, 0x78, 0x9b, 0x8a, 0x20, 0x09, 0xe6, 0x7e, 0x42, 0x56, 0x1d, 0xa0, 0xec, 0x2e, 0x56, 0xcf, 0xae, 0xb0, 0xa0, 0xec, 0x26, 0x3e, 0x1f, 0x58, 0xd3, 0xdd, 0xb9, 0x97, 0xa3, 0xf1, 0xf5, 0xfa, 0xc6, 0x6a, 0xb7, 0xd1, 0xa9, 0xaf, 0x43, 0x59, 0x7b, 0x81, 0x56, 0xcc, 0x03, 0x95, 0xe1, 0xce, 0x4e, 0xb7, 0x1e, 0x14, 0xc2, 0x0f, 0x59, 0x79, 0x9b, 0x43, 0x13, 0xd2, 0x1a, 0xca, 0xd1, 0x17, 0xa8, 0x79, 0xae, 0x92, 0x3f, 0x3e, 0xef, 0x2f, 0xe0, 0xc5, 0x40, 0x7a, 0x83, 0x4a, 0x37, 0x8f, 0x8a, 0x72, 0x06, 0x2f, 0x75, 0x5f, 0xa4, 0x53, 0x26, 0x2b, 0xb9, 0xe3, 0x0b, 0xfe, 0xdc, 0x5c, 0x20, 0x3d, 0xf2, 0x9a, 0x37, 0xa7, 0x4e, 0xe1, 0x45, 0xef, 0x4b, 0x74, 0x4a, 0xa1, 0x32, 0x1c, 0x99, 0xc1, 0x8b, 0x1f, 0x8e, 0x2c, 0x8b, 0x60, 0xef, 0xcb, 0x74, 0x42, 0xb6, 0x82, 0x60, 0x59, 0xe4, 0xe4, 0x15, 0xa7, 0xf4, 0xa5, 0x11, 0x1c, 0x5f, 0x1a, 0xc1, 0xde, 0x57, 0xe8, 0x34, 0xb7, 0x92, 0x3b, 0x4e, 0x70, 0x6c, 0x69, 0x04, 0xc7, 0x97, 0x46, 0xb0, 0xf7, 0x55, 0x3a, 0x65, 0xb8, 0x32, 0x1c, 0x99, 0xc1, 0xcb, 0x23, 0x46, 0x93, 0x72, 0x86, 0xa8, 0x79, 0x5f, 0xa3, 0x53, 0x46, 0x2a, 0x79, 0x1a, 0xcd, 0xdc, 0x5c, 0x20, 0x7d, 0x8a, 0x4a, 0x79, 0x12, 0xb9, 0xca, 0xd2, 0xc4, 0xb4, 0xaf, 0xd3, 0x69, 0x13, 0x95, 0x91, 0xe3, 0x7c, 0x9e, 0xf4, 0x1c, 0x56, 0xcd, 0x79, 0x95, 0x09, 0x28, 0x9b, 0xdf, 0xa0, 0xb3, 0x32, 0x95, 0x91, 0x85, 0xd9, 0x79, 0x3c, 0xbf, 0xa8, 0xd2, 0x00, 0x15, 0x34, 0xbe, 0x42, 0x82, 0xbd, 0x6f, 0xd2, 0x49, 0xf9, 0x4a, 0x9e, 0x06, 0x15, 0x5f, 0x21, 0xc1, 0xa6, 0x15, 0x12, 0xec, 0x7d, 0x8b, 0x4e, 0x2b, 0x56, 0x46, 0x8e, 0xf3, 0x79, 0xd1, 0x15, 0x12, 0xec, 0x9e, 0x52, 0x29, 0xe4, 0x95, 0xf5, 0xd7, 0xe8, 0x34, 0xa7, 0x52, 0xe0, 0x4b, 0xf4, 0xc9, 0xe2, 0xc2, 0xe2, 0x29, 0x85, 0x4b, 0x5e, 0x6a, 0xaf, 0xd4, 0xbe, 0x30, 0xa8, 0xb5, 0xbf, 0xce, 0x04, 0x46, 0xa5, 0x78, 0xae, 0xde, 0x68, 0xb4, 0x2f, 0x2f, 0x1d, 0xbb, 0xb3, 0xbd, 0xd3, 0x58, 0x7f, 0xc9, 0x31, 0xa4, 0x7e, 0x77, 0x50, 0x7f, 0x97, 0x55, 0x6a, 0xa0, 0x00, 0xff, 0x06, 0x9d, 0x3c, 0x56, 0xf1, 0xd6, 0xeb, 0xab, 0xeb, 0xb7, 0x2c, 0x2c, 0x90, 0x5b, 0xfc, 0xc5, 0xc5, 0x5b, 0xfc, 0x93, 0xe4, 0x96, 0x85, 0xc5, 0x93, 0x6b, 0xf5, 0xfa, 0x86, 0xc2, 0x15, 0x14, 0xe7, 0x16, 0x3a, 0x2c, 0x7d, 0x28, 0xd5, 0xf9, 0x37, 0x9d, 0xf4, 0xe5, 0xb9, 0x92, 0x5b, 0x7a, 0xf5, 0x6b, 0xaa, 0x4b, 0x81, 0xe4, 0x53, 0x96, 0xe9, 0x06, 0x9a, 0x52, 0xb7, 0xa8, 0x52, 0xcf, 0xbe, 0xed, 0xa4, 0x29, 0x68, 0x02, 0xeb, 0xb0, 0xb2, 0xb1, 0x65, 0x61, 0x7b, 0x19, 0x2a, 0xec, 0xd4, 0x6f, 0xef, 0x6e, 0xed, 0x88, 0x52, 0xf0, 0x18, 0x55, 0x6b, 0x07, 0x82, 0x31, 0x31, 0xca, 0x6a, 0xc0, 0xcb, 0xd1, 0x78, 0x68, 0x05, 0xc9, 0xf9, 0x38, 0x35, 0xcb, 0x05, 0xe1, 0x64, 0xc8, 0xfc, 0x32, 0x9a, 0x08, 0xed, 0x78, 0xe2, 0x3f, 0x41, 0x0d, 0x27, 0x83, 0x70, 0x3e, 0x4f, 0x78, 0xd5, 0x92, 0xe7, 0xfb, 0x93, 0xd4, 0xb2, 0x20, 0x2d, 0x79, 0xa2, 0x47, 0xb0, 0x09, 0xf6, 0x9e, 0xa2, 0x86, 0x59, 0x0d, 0x9b, 0xe0, 0x18, 0x36, 0xc1, 0xde, 0x07, 0xa9, 0xa1, 0xab, 0x63, 0x47, 0x2c, 0x79, 0x42, 0x7f, 0x88, 0x5a, 0x0e, 0xeb, 0xd8, 0x04, 0xbb, 0x97, 0xa1, 0x62, 0x68, 0x29, 0x32, 0xf2, 0xc3, 0xd4, 0x74, 0x24, 0x08, 0x5d, 0x88, 0xfc, 0xbd, 0x1c, 0x4d, 0x4a, 0x7c, 0x61, 0xfc, 0x11, 0x6a, 0x3c, 0x11, 0x84, 0x5e, 0xc2, 0xa4, 0x55, 0xa3, 0x82, 0x9c, 0xfd, 0x28, 0x35, 0xcd, 0xc8, 0xa8, 0x20, 0x53, 0x63, 0x2b, 0x20, 0xd8, 0xfb, 0x18, 0xb5, 0xcc, 0x47, 0x56, 0x40, 0xb0, 0x61, 0x05, 0x04, 0x7b, 0x1f, 0xa7, 0xc6, 0xc5, 0xe8, 0x0a, 0x22, 0x2c, 0xf0, 0x9c, 0xfc, 0x04, 0xb5, 0x75, 0x24, 0x0b, 0x3c, 0x07, 0x35, 0x66, 0x21, 0x05, 0x3f, 0x09, 0x9a, 0x5e, 0x32, 0x0b, 0xf9, 0xa6, 0x46, 0x05, 0xe9, 0xf6, 0x29, 0x6a, 0x38, 0x26, 0xa3, 0x82, 0x9c, 0xaa, 0xa3, 0x43, 0xa1, 0x9d, 0x92, 0x52, 0x9f, 0xa6, 0xc6, 0xa9, 0x15, 0x8f, 0xf0, 0x28, 0x53, 0xa9, 0x85, 0xa6, 0x22, 0x30, 0xa2, 0x67, 0x3f, 0x4d, 0x91, 0x06, 0x91, 0x3c, 0x1a, 0x98, 0x68, 0xdc, 0xe7, 0x50, 0x38, 0xae, 0x49, 0x9e, 0x67, 0x00, 0x2d, 0xad, 0xe6, 0x11, 0x3e, 0x15, 0xcd, 0x73, 0x16, 0x1d, 0x51, 0x36, 0xbb, 0x52, 0x23, 0x9e, 0x05, 0x0a, 0xad, 0x45, 0x8f, 0x4c, 0x11, 0x59, 0x1b, 0x1a, 0xc8, 0x8b, 0x81, 0x08, 0x02, 0x9f, 0x83, 0x90, 0xd2, 0xa8, 0x9e, 0x08, 0x94, 0x20, 0x6f, 0x45, 0x56, 0x22, 0x60, 0xed, 0x79, 0x0a, 0x61, 0x27, 0x7b, 0x02, 0xee, 0x80, 0xcb, 0x1e, 0xcd, 0x9f, 0x7b, 0x15, 0x9a, 0x96, 0x1b, 0x5e, 0xd7, 0x3f, 0xf7, 0x64, 0x69, 0xd1, 0xe3, 0xfa, 0x27, 0x64, 0xf6, 0x3a, 0x4d, 0x07, 0x2d, 0x29, 0x6c, 0x44, 0x05, 0xd1, 0x1b, 0xe8, 0x7c, 0x29, 0x88, 0xa6, 0x62, 0x1e, 0xa0, 0x3c, 0x2e, 0xa3, 0xa3, 0x06, 0x17, 0xbc, 0x50, 0xbe, 0x91, 0xfa, 0x08, 0x15, 0xd2, 0x74, 0xcc, 0x05, 0x2f, 0x9c, 0x4b, 0x46, 0x1f, 0xbc, 0x84, 0xbe, 0x89, 0xfa, 0x10, 0x92, 0x29, 0xee, 0x82, 0x57, 0xd4, 0xd3, 0x49, 0x91, 0x10, 0xec, 0xbd, 0x99, 0x7a, 0xd0, 0x35, 0x94, 0x31, 0x1a, 0x82, 0xfb, 0x44, 0x43, 0xb0, 0xf7, 0x16, 0xea, 0x27, 0x14, 0x55, 0xe6, 0x68, 0x08, 0xee, 0x13, 0x0d, 0xc1, 0xde, 0x5b, 0xa9, 0x0f, 0xa1, 0xb2, 0xcc, 0xd1, 0x10, 0xec, 0x9e, 0x46, 0x33, 0x06, 0x17, 0xa2, 0x00, 0xbf, 0x8d, 0xfa, 0x90, 0xb2, 0xcb, 0x8b, 0x79, 0x11, 0xe5, 0xbb, 0x8a, 0x2e, 0x32, 0x45, 0x23, 0xfc, 0xbc, 0x9d, 0xfa, 0x51, 0x74, 0xd8, 0xd1, 0x78, 0x44, 0xa2, 0xb4, 0x2f, 0x1b, 0xe9, 0x85, 0x22, 0xff, 0x0e, 0xea, 0x46, 0x11, 0x66, 0x71, 0x6e, 0xa1, 0xec, 0xf7, 0x09, 0x8a, 0x60, 0xef, 0x9d, 0xd4, 0x8b, 0x54, 0x6a, 0x09, 0x41, 0x11, 0xdc, 0x37, 0x28, 0x82, 0xbd, 0x77, 0x51, 0x3f, 0x8a, 0x74, 0x4b, 0x0a, 0x8a, 0x60, 0xf7, 0x55, 0xc6, 0x2f, 0x8a, 0xf7, 0x8d, 0x1e, 0xf5, 0x13, 0xd3, 0x72, 0xf1, 0x6f, 0x8c, 0xf7, 0x93, 0x1b, 0xcd, 0x1b, 0x07, 0x3a, 0xcb, 0xbb, 0xa9, 0x2f, 0x93, 0xb8, 0x33, 0xec, 0x21, 0x68, 0x3a, 0x37, 0x1b, 0xf9, 0x86, 0xf6, 0xf3, 0x1e, 0xea, 0xad, 0x9f, 0xda, 0x8b, 0x7f, 0x01, 0xd0, 0xa1, 0xee, 0x46, 0x97, 0x18, 0x9c, 0x2a, 0xbd, 0xea, 0xbd, 0xd9, 0xf4, 0xbd, 0x4a, 0x48, 0xb2, 0x99, 0x18, 0xb8, 0xec, 0x5d, 0x3f, 0x8d, 0x2e, 0x35, 0x66, 0x97, 0x52, 0xeb, 0xef, 0xcd, 0xa6, 0xa9, 0xf5, 0x02, 0xfc, 0x62, 0x43, 0x4e, 0x46, 0x74, 0xe1, 0x76, 0x7d, 0x35, 0x2c, 0x91, 0xff, 0x9c, 0x2d, 0x65, 0x41, 0x17, 0xc2, 0xa8, 0xd4, 0x85, 0xdc, 0x0a, 0x2a, 0xd0, 0xbf, 0x50, 0x33, 0xa6, 0x0b, 0x61, 0x58, 0xd1, 0x85, 0xdc, 0x8e, 0x97, 0xbb, 0x7f, 0xa5, 0x86, 0x4c, 0x17, 0xc2, 0xb8, 0xaa, 0x0b, 0xb9, 0x25, 0x2f, 0x6a, 0xff, 0x46, 0x2d, 0x0b, 0xd2, 0x52, 0xd5, 0x85, 0x12, 0x9b, 0x60, 0xef, 0xdf, 0xa9, 0x61, 0x56, 0xc3, 0x16, 0x3a, 0x47, 0xc1, 0x26, 0xd8, 0xfb, 0x0f, 0x6a, 0xe8, 0xea, 0xd8, 0x11, 0x4b, 0x5e, 0x82, 0xfe, 0x93, 0x5a, 0x0e, 0xeb, 0xd8, 0x42, 0x17, 0x72, 0x4b, 0x51, 0x21, 0xfe, 0x8b, 0x9a, 0x32, 0x5d, 0x08, 0x1f, 0x68, 0xba, 0x50, 0xe0, 0x0b, 0xe3, 0xff, 0xa6, 0xc6, 0x4c, 0x17, 0xf2, 0x15, 0x68, 0xba, 0x50, 0x78, 0x66, 0x25, 0xe3, 0x7f, 0xa8, 0x69, 0x46, 0x46, 0xa5, 0xe8, 0x42, 0x75, 0x05, 0x04, 0x7b, 0xff, 0x4b, 0x2d, 0xf3, 0x91, 0x15, 0x08, 0x5d, 0xa8, 0xad, 0x80, 0x60, 0xef, 0xff, 0xa8, 0x71, 0x31, 0xba, 0x82, 0x08, 0x0b, 0x3c, 0xbf, 0x2f, 0x0c, 0x97, 0xb2, 0xa0, 0x0b, 0x61, 0x5c, 0xd5, 0x85, 0xc2, 0x2f, 0x64, 0xef, 0xcf, 0x0c, 0xb3, 0xb3, 0x5d, 0xc9, 0xac, 0xa2, 0x0b, 0xc5, 0x6e, 0x62, 0x89, 0xf9, 0x7a, 0x6a, 0x38, 0x26, 0xa3, 0x52, 0x74, 0x21, 0xb7, 0x53, 0x72, 0xed, 0x67, 0xa9, 0xf1, 0x00, 0xba, 0x10, 0x3c, 0x46, 0x74, 0xa1, 0x06, 0x23, 0x64, 0xcd, 0xcf, 0x51, 0xa4, 0xc1, 0x74, 0xa1, 0x02, 0xa6, 0xe9, 0x42, 0x8e, 0xa7, 0xea, 0xc2, 0x9f, 0x07, 0xb4, 0xf4, 0xba, 0x10, 0x7c, 0x46, 0x75, 0x61, 0xb8, 0xd9, 0x95, 0x5a, 0xf1, 0x0b, 0x40, 0x61, 0x0a, 0x5d, 0x28, 0x52, 0x24, 0xa2, 0x0b, 0x23, 0x20, 0x82, 0xc0, 0x5f, 0x84, 0x90, 0xd2, 0xe9, 0x42, 0x0d, 0x4a, 0xd3, 0x85, 0xf0, 0x09, 0xb0, 0xf6, 0x4b, 0x14, 0xc2, 0x56, 0x17, 0x82, 0x83, 0x50, 0x17, 0x2a, 0xfe, 0xdc, 0x9f, 0x44, 0x85, 0xe6, 0xea, 0x36, 0xab, 0x72, 0x50, 0xea, 0xbe, 0x0d, 0x31, 0xfc, 0xb0, 0x05, 0xc0, 0x8d, 0xab, 0xdb, 0xb4, 0x20, 0xd2, 0xff, 0x4e, 0xb7, 0x3a, 0x3b, 0xe7, 0x83, 0x83, 0x4d, 0x39, 0xe2, 0x9e, 0x45, 0xe3, 0x21, 0x02, 0xd4, 0xb4, 0xdf, 0x02, 0x88, 0x2b, 0xed, 0x21, 0x58, 0x41, 0x05, 0x8c, 0xb1, 0xa6, 0x32, 0xe4, 0x6e, 0xa0, 0x89, 0x10, 0x84, 0xd7, 0xd8, 0xdf, 0x06, 0x94, 0xab, 0xec, 0x51, 0xa0, 0x1a, 0x03, 0x4c, 0xa1, 0xa9, 0x8e, 0x69, 0x38, 0xbc, 0x42, 0xff, 0x4e, 0x6a, 0x9c, 0x33, 0x06, 0x1c, 0x5e, 0xdf, 0x23, 0xa4, 0x11, 0xec, 0xfd, 0xee, 0x20, 0xa4, 0x11, 0x1c, 0x23, 0x8d, 0xe0, 0x18, 0x69, 0x04, 0x7b, 0xbf, 0x37, 0x10, 0x69, 0x02, 0x46, 0x25, 0x2d, 0x82, 0xc3, 0x5b, 0xcb, 0x77, 0x06, 0x22, 0x2d, 0x8a, 0xc3, 0x1b, 0xd3, 0x16, 0x2a, 0x86, 0x38, 0xa2, 0xd7, 0xfc, 0x3e, 0x00, 0x5d, 0x6d, 0x0f, 0xc4, 0x5b, 0x18, 0x20, 0x8d, 0x37, 0xb5, 0x41, 0xb7, 0x81, 0x26, 0x25, 0x75, 0x02, 0xeb, 0x0f, 0x00, 0xeb, 0x9a, 0x14, 0xe4, 0x6d, 0xa8, 0x60, 0x13, 0x4d, 0x7d, 0x54, 0xdb, 0x0d, 0xd0, 0x17, 0xff, 0x30, 0xf5, 0x6e, 0x60, 0x1d, 0x54, 0xdf, 0x0d, 0xd0, 0x54, 0x63, 0xec, 0x11, 0xec, 0xfd, 0xd1, 0x60, 0xec, 0x89, 0xef, 0x49, 0x63, 0x8f, 0x60, 0x03, 0x7b, 0x04, 0x7b, 0x7f, 0x3c, 0x20, 0x7b, 0x02, 0x4c, 0x67, 0x2f, 0xb2, 0xfd, 0x78, 0x4f, 0xff, 0x93, 0xd4, 0xdb, 0x0f, 0xba, 0xbf, 0xbe, 0xfd, 0xb8, 0x22, 0xd0, 0xd2, 0x09, 0x14, 0xc1, 0x9f, 0xa6, 0x4f, 0x27, 0xe6, 0x20, 0x92, 0x4e, 0xa0, 0x27, 0xd4, 0xdd, 0x00, 0x7a, 0xe2, 0xcf, 0x52, 0xef, 0x06, 0xa6, 0x3c, 0xf4, 0xdd, 0x00, 0x62, 0x64, 0x1b, 0x1d, 0x0a, 0x41, 0x14, 0x31, 0xf2, 0xe7, 0x80, 0xf4, 0x0a, 0x7b, 0xa4, 0x50, 0x80, 0x00, 0x5a, 0xb1, 0x19, 0x19, 0x76, 0xcf, 0xa3, 0xa9, 0x08, 0xa2, 0x68, 0xab, 0x7f, 0x01, 0xa0, 0xd7, 0xa6, 0x04, 0xe5, 0x63, 0x80, 0x7b, 0xa8, 0x19, 0xff, 0xc4, 0xdd, 0x45, 0x87, 0x43, 0x68, 0x55, 0xa2, 0xfc, 0x25, 0x00, 0x2f, 0xd9, 0x03, 0x4b, 0x55, 0x02, 0xb0, 0x93, 0xcd, 0xe8, 0xb8, 0x7b, 0x07, 0x3a, 0xa2, 0x54, 0x5f, 0x45, 0xad, 0x7c, 0x17, 0x50, 0x97, 0xd3, 0xd4, 0xe0, 0x50, 0xa7, 0x00, 0xac, 0xdb, 0x8c, 0x7d, 0xe0, 0xde, 0x8d, 0xbc, 0x18, 0xae, 0x60, 0xfa, 0xaf, 0x00, 0xfa, 0x74, 0x6a, 0x68, 0x8d, 0xeb, 0x23, 0x4d, 0xd3, 0x67, 0x62, 0xff, 0xb2, 0x46, 0x07, 0x9a, 0xe3, 0xaf, 0x53, 0xed, 0x5f, 0xd6, 0xf9, 0xa5, 0xe8, 0xa0, 0xfb, 0x37, 0x1c, 0x12, 0xc9, 0xb8, 0xab, 0xa0, 0xfc, 0x4d, 0xaa, 0x64, 0x84, 0xc6, 0x2f, 0x61, 0x68, 0x32, 0xca, 0x31, 0x81, 0xd3, 0x55, 0x70, 0xfe, 0x36, 0x15, 0xce, 0x19, 0x03, 0x8e, 0x1c, 0x53, 0x48, 0x23, 0x18, 0x60, 0xfe, 0x2e, 0x2d, 0x69, 0x04, 0xc7, 0x48, 0x83, 0x21, 0x95, 0x34, 0x81, 0xf2, 0xf7, 0xa9, 0x49, 0x53, 0x61, 0x04, 0x69, 0x3a, 0x4e, 0x57, 0xc1, 0xf9, 0x87, 0xd4, 0xa4, 0x45, 0x71, 0xe4, 0x98, 0x68, 0x69, 0xbc, 0x8d, 0x02, 0xd0, 0x3f, 0xa6, 0x6a, 0x69, 0xbc, 0xef, 0x4b, 0x24, 0xfa, 0x6d, 0x28, 0x83, 0x21, 0x75, 0xac, 0x44, 0x03, 0xd2, 0x3f, 0xa5, 0xa3, 0x8e, 0x79, 0x88, 0x50, 0x17, 0x8e, 0xb9, 0x25, 0x84, 0xda, 0xad, 0x7a, 0x7b, 0x03, 0x20, 0x9e, 0xce, 0x95, 0x9c, 0xf2, 0x81, 0xea, 0x50, 0x30, 0xca, 0x06, 0x99, 0xc5, 0x31, 0x74, 0x10, 0x2c, 0x40, 0x9e, 0x3e, 0x43, 0x4d, 0x72, 0xd5, 0xa1, 0x00, 0xe6, 0x81, 0x5c, 0x7e, 0x19, 0x1a, 0x03, 0x1b, 0xae, 0x95, 0x9f, 0xa5, 0x46, 0x93, 0xd5, 0xa1, 0x00, 0xa6, 0x72, 0xb1, 0x1b, 0x5a, 0x71, 0xa5, 0xfb, 0x1c, 0xb5, 0x2a, 0x84, 0x56, 0x5c, 0xaa, 0xaa, 0x78, 0x04, 0x7b, 0xcf, 0x53, 0xa3, 0xac, 0x8a, 0x47, 0xb0, 0x8e, 0x47, 0xb0, 0xf7, 0x19, 0x6a, 0xe4, 0x6a, 0x78, 0xaa, 0x15, 0x17, 0x89, 0x9f, 0xa5, 0x56, 0xc3, 0x1a, 0x1e, 0xc1, 0xee, 0xcb, 0x51, 0x01, 0xac, 0x84, 0xec, 0xfa, 0x1c, 0x35, 0x1b, 0xa9, 0x0e, 0x05, 0x30, 0x5b, 0x48, 0xb4, 0x32, 0x1a, 0xe7, 0x98, 0xc2, 0xf0, 0xf3, 0xd4, 0x70, 0xa2, 0x3a, 0x14, 0x80, 0x83, 0x50, 0x5e, 0x85, 0x11, 0x80, 0xb6, 0xfa, 0x65, 0x6a, 0x96, 0x09, 0x23, 0x00, 0x75, 0xa4, 0xa3, 0x12, 0xec, 0xfd, 0x0a, 0xb5, 0xca, 0xeb, 0xa8, 0xec, 0x00, 0x41, 0x43, 0x25, 0xd8, 0xfb, 0x55, 0x6a, 0x58, 0x8c, 0xa0, 0xaa, 0xd1, 0x72, 0x4d, 0xf2, 0x02, 0xb5, 0x73, 0xc2, 0x68, 0xb9, 0xa8, 0x90, 0xcc, 0x81, 0xa2, 0xf8, 0x02, 0xb5, 0x1a, 0x95, 0xcc, 0x81, 0x24, 0x08, 0x23, 0x00, 0x3d, 0xf0, 0x45, 0x6a, 0x34, 0x16, 0x46, 0x00, 0x1d, 0x7d, 0x15, 0x15, 0xc1, 0x46, 0x69, 0xe7, 0x5f, 0xca, 0xa5, 0x7f, 0x8c, 0x5b, 0x1d, 0x0a, 0x20, 0x54, 0xd9, 0xc2, 0x6f, 0x45, 0x87, 0x54, 0x08, 0xd1, 0x55, 0xbe, 0x9c, 0x1b, 0xe8, 0x15, 0x9b, 0xea, 0x50, 0x30, 0x29, 0x81, 0x44, 0x17, 0x59, 0x47, 0x30, 0xa8, 0x35, 0xec, 0xaf, 0xe4, 0x06, 0x78, 0xbf, 0xa6, 0x3a, 0x14, 0x4c, 0x30, 0x97, 0x4a, 0x93, 0x5e, 0x41, 0xae, 0xd8, 0xb8, 0x4a, 0x87, 0xfe, 0x6a, 0x2e, 0xcd, 0xb3, 0xe8, 0xea, 0x50, 0x50, 0xe4, 0xdb, 0x5d, 0x76, 0xe3, 0x73, 0xe8, 0x88, 0x0e, 0x20, 0x48, 0xfb, 0x5a, 0x2e, 0xe5, 0x9b, 0x35, 0xd5, 0xa1, 0xe0, 0x90, 0x0a, 0x23, 0x08, 0xfb, 0x31, 0x5e, 0x39, 0x80, 0xa9, 0xaf, 0xe7, 0xac, 0x5f, 0x13, 0xbc, 0x89, 0xce, 0x16, 0x4c, 0x29, 0xbe, 0x64, 0x6e, 0xc0, 0x1e, 0x9d, 0xf7, 0xbe, 0x21, 0x36, 0xe9, 0x98, 0xb2, 0x49, 0xe7, 0xa3, 0x76, 0xbe, 0xf7, 0x4d, 0x93, 0x9d, 0x1f, 0xb5, 0x5b, 0xf0, 0xbe, 0x65, 0xb2, 0x5b, 0x70, 0x4f, 0xa1, 0xc3, 0x3c, 0x83, 0xf4, 0x07, 0x5a, 0xf7, 0xe6, 0xe5, 0x0b, 0x3d, 0x55, 0x27, 0x80, 0x6f, 0x50, 0x7f, 0x9e, 0x75, 0x95, 0xa0, 0x3d, 0xfa, 0x30, 0xeb, 0x7d, 0x79, 0xf5, 0xed, 0x9e, 0xaa, 0xc3, 0xb9, 0x8c, 0x3c, 0xcb, 0xba, 0x1a, 0x4d, 0x45, 0xa7, 0xf3, 0x4a, 0x7a, 0x5f, 0x5e, 0x79, 0xd5, 0xa7, 0xea, 0x04, 0x87, 0xf5, 0xe9, 0xbc, 0xb2, 0x5e, 0x15, 0x9f, 0xcf, 0x6b, 0xec, 0xfd, 0x79, 0xf9, 0xde, 0x4f, 0x7c, 0xfa, 0x19, 0xf1, 0x18, 0xcc, 0xb4, 0x7a, 0x82, 0xbd, 0x07, 0xf2, 0xd1, 0x97, 0x80, 0x8c, 0x11, 0x10, 0x9c, 0x14, 0x01, 0xc1, 0xde, 0x83, 0x79, 0xe5, 0x8d, 0x20, 0x73, 0x04, 0x04, 0x27, 0x45, 0x40, 0xb0, 0xf7, 0x50, 0x5e, 0xbe, 0x1e, 0x64, 0x8e, 0x80, 0x3d, 0xfa, 0x9a, 0x8e, 0x4e, 0x17, 0x55, 0xfa, 0xe1, 0xbc, 0xfa, 0xae, 0x50, 0xd5, 0x09, 0x8e, 0xe8, 0x1e, 0x44, 0x7d, 0xbf, 0x0e, 0x79, 0xb1, 0x08, 0x84, 0x8f, 0x47, 0xf2, 0xda, 0x8b, 0x43, 0x55, 0x27, 0x98, 0x8a, 0x44, 0x21, 0x6a, 0xff, 0xd5, 0x71, 0x2a, 0xa1, 0x0b, 0xbc, 0x3f, 0xaf, 0xbd, 0x45, 0x14, 0xe7, 0x11, 0xfa, 0x42, 0x52, 0x20, 0x04, 0x7b, 0x1f, 0xc8, 0xab, 0xaf, 0x14, 0x25, 0x04, 0x42, 0x70, 0x72, 0x20, 0x04, 0x7b, 0x8f, 0xe6, 0xb5, 0xf7, 0x8b, 0x92, 0x02, 0x21, 0xd8, 0xbd, 0x3e, 0xfe, 0x85, 0xf0, 0xc6, 0xf2, 0x58, 0xde, 0xf0, 0xb2, 0x51, 0xfc, 0x9b, 0xe1, 0x0d, 0xe7, 0x06, 0xc3, 0xc6, 0x80, 0xd6, 0xf3, 0x78, 0xde, 0xfc, 0xe6, 0x91, 0x61, 0x8f, 0x40, 0x57, 0xba, 0x29, 0xce, 0x2d, 0xf4, 0xa7, 0x27, 0xf2, 0xfd, 0x5f, 0x43, 0x8a, 0x93, 0x0d, 0x2d, 0xec, 0xb5, 0x68, 0x26, 0xea, 0x50, 0x69, 0x66, 0x4f, 0xe6, 0x07, 0x7e, 0x27, 0xa9, 0xea, 0x04, 0xd3, 0x3a, 0xb0, 0xfa, 0xf7, 0xe9, 0xc5, 0xf1, 0x8c, 0x51, 0x9a, 0xc2, 0x53, 0xf9, 0x01, 0x5e, 0x50, 0xaa, 0x3a, 0xc1, 0xd1, 0x68, 0x9e, 0x85, 0x36, 0x33, 0x3f, 0x85, 0xc6, 0xb4, 0xde, 0xf7, 0x22, 0xbe, 0x69, 0x3e, 0x73, 0x17, 0x42, 0x4a, 0x3f, 0x7c, 0x31, 0x91, 0xaf, 0x41, 0x05, 0xed, 0x4d, 0x4e, 0x5b, 0x70, 0xea, 0x40, 0x7b, 0x27, 0x22, 0x9d, 0x03, 0xe5, 0xf0, 0xdc, 0xda, 0xc1, 0xd5, 0xa8, 0x18, 0x3d, 0x1c, 0x77, 0x8b, 0x28, 0x7b, 0x5b, 0xfd, 0x3c, 0x73, 0x72, 0x20, 0xa0, 0xff, 0xeb, 0x1e, 0x46, 0xb9, 0x3b, 0x56, 0x1b, 0xdd, 0xba, 0x97, 0x61, 0x63, 0xf0, 0x8f, 0x4a, 0xe6, 0x0a, 0x67, 0xe6, 0x1a, 0x34, 0x19, 0x3b, 0xf9, 0xde, 0xcb, 0x41, 0x4e, 0x75, 0xf0, 0x0a, 0xe4, 0xc6, 0x0f, 0xb5, 0xf7, 0xf2, 0x30, 0x69, 0xf6, 0x70, 0x66, 0xff, 0x1e, 0x0a, 0x89, 0x41, 0xf0, 0x53, 0xba, 0xbd, 0x1c, 0x64, 0x93, 0x83, 0xd8, 0xa7, 0x07, 0x37, 0x39, 0x88, 0x7d, 0x7a, 0x18, 0x56, 0x3d, 0x2c, 0xa1, 0x43, 0x86, 0x73, 0xe1, 0xbd, 0x5c, 0x8c, 0xa8, 0x2e, 0x96, 0xd1, 0x61, 0xd3, 0x71, 0xef, 0x5e, 0x3e, 0x26, 0xcc, 0x5c, 0xca, 0x73, 0xdc, 0xbd, 0x1c, 0x64, 0xfa, 0xc4, 0xb1, 0x4f, 0x2a, 0xf2, 0xfd, 0xe2, 0xd8, 0xa7, 0x8f, 0xa2, 0xf9, 0x0b, 0x51, 0x0e, 0x54, 0xf7, 0xf2, 0xe0, 0x24, 0x6c, 0x0a, 0x79, 0x54, 0xba, 0x97, 0x87, 0x51, 0x33, 0x97, 0xf2, 0x14, 0x74, 0x2f, 0x07, 0x63, 0xaa, 0x83, 0xf3, 0xe8, 0x88, 0xf1, 0x70, 0xd3, 0xe0, 0xe4, 0x55, 0xaa, 0x93, 0xb4, 0x0f, 0x73, 0x15, 0xe8, 0xbb, 0x91, 0x97, 0x74, 0xc4, 0x69, 0x40, 0xbf, 0x51, 0x45, 0x1f, 0xe0, 0x01, 0xaf, 0xb2, 0x80, 0xd7, 0xa2, 0x29, 0xf3, 0x51, 0xa7, 0x01, 0xfe, 0x47, 0x74, 0xf8, 0x94, 0x4f, 0x7c, 0x15, 0xf0, 0x2e, 0x9a, 0x4e, 0x38, 0xf1, 0x34, 0xa0, 0x5f, 0xa7, 0x53, 0x6f, 0xfb, 0x10, 0x58, 0x8b, 0x79, 0x26, 0xf9, 0xb4, 0xd3, 0x80, 0xfc, 0x4a, 0x3d, 0xee, 0x14, 0x8f, 0x85, 0x63, 0xbb, 0x55, 0x3f, 0xf3, 0x54, 0x31, 0x73, 0x7b, 0xf5, 0x12, 0x48, 0x98, 0xc8, 0x71, 0xa6, 0xea, 0x61, 0x72, 0x7f, 0x1e, 0xce, 0x24, 0x7b, 0x28, 0xec, 0xaf, 0x9f, 0xe9, 0x67, 0x90, 0xaa, 0x83, 0xec, 0xfe, 0x83, 0x48, 0xf0, 0xe0, 0xee, 0x3f, 0x88, 0x04, 0x0f, 0xc3, 0x7b, 0x79, 0x80, 0x12, 0x1a, 0x3d, 0x11, 0x54, 0x5d, 0x8c, 0xec, 0x33, 0x0c, 0xfd, 0xa8, 0x4f, 0xf5, 0x30, 0xba, 0x97, 0x87, 0x2b, 0x11, 0x92, 0x7f, 0x8f, 0x5b, 0xeb, 0x92, 0x2a, 0x9a, 0x3a, 0x7d, 0x57, 0xa7, 0xde, 0xda, 0xdd, 0x6a, 0xb7, 0x06, 0xd3, 0x58, 0xaa, 0xa7, 0x81, 0xb4, 0xd2, 0xb1, 0x59, 0x34, 0x2a, 0xc5, 0xf6, 0x28, 0x02, 0x5d, 0x5c, 0x1c, 0xa2, 0xff, 0xbb, 0x1c, 0x2c, 0xfd, 0xe8, 0x4d, 0x45, 0xc7, 0x3d, 0x88, 0x46, 0xae, 0xad, 0x2e, 0x05, 0xaf, 0xbe, 0xe1, 0x74, 0x31, 0x73, 0xd9, 0xe8, 0x81, 0x7b, 0x6a, 0xc5, 0x0b, 0x17, 0x2e, 0x5c, 0xc8, 0xf8, 0x67, 0xd1, 0x74, 0x5d, 0x2c, 0x62, 0x45, 0xbb, 0xb3, 0xe8, 0x5a, 0x88, 0x4e, 0xef, 0x9e, 0x1a, 0x63, 0xf9, 0x48, 0x3d, 0x4a, 0x0d, 0xfd, 0x8a, 0xfc, 0x3a, 0xf2, 0x0c, 0x20, 0xf0, 0x07, 0xb9, 0x0d, 0xca, 0x1b, 0x6a, 0x2c, 0x5b, 0xa7, 0x62, 0x28, 0x2c, 0xb7, 0xfd, 0x4d, 0x74, 0xd4, 0x00, 0xb3, 0x6b, 0x8f, 0xf3, 0xc6, 0x1a, 0xcb, 0xe9, 0xe9, 0x18, 0x0e, 0x94, 0x80, 0x04, 0xa0, 0xae, 0x3d, 0xd0, 0x9b, 0x6a, 0x2c, 0xf5, 0xe3, 0x40, 0x50, 0x29, 0x92, 0x89, 0x23, 0xd8, 0x0a, 0xe7, 0xcd, 0x35, 0x56, 0x21, 0x8c, 0xc4, 0x11, 0xdc, 0x87, 0x38, 0x4b, 0x9c, 0xb7, 0xd4, 0x58, 0x1d, 0x31, 0x13, 0x97, 0x08, 0xd4, 0xb5, 0x07, 0x7a, 0x6b, 0x8d, 0x95, 0x1b, 0x33, 0x71, 0x04, 0xfb, 0x5b, 0x68, 0xc6, 0x00, 0x24, 0x4e, 0x2e, 0x6c, 0x90, 0xde, 0x56, 0x63, 0x55, 0xc9, 0x8b, 0x21, 0xf1, 0x2a, 0xe6, 0xdf, 0x86, 0x2e, 0x32, 0x91, 0x97, 0x06, 0xeb, 0xed, 0x35, 0x26, 0x5a, 0x8f, 0xc6, 0xe9, 0xe3, 0xde, 0x12, 0x36, 0xc4, 0x06, 0xbc, 0xda, 0x67, 0x81, 0xf4, 0x8e, 0x1a, 0x53, 0xb7, 0xf1, 0x0d, 0xc1, 0xb4, 0x71, 0x3f, 0xfa, 0x2c, 0xbf, 0xa8, 0x77, 0xd6, 0x98, 0x06, 0x4e, 0xa0, 0x8f, 0xe0, 0xbe, 0xf4, 0x59, 0x62, 0xbd, 0xab, 0xc6, 0xb4, 0x72, 0x12, 0x7d, 0x89, 0xfb, 0x0f, 0x0e, 0x7b, 0xac, 0xa0, 0x7a, 0x35, 0x26, 0xaa, 0xe3, 0xfb, 0x0f, 0x34, 0x79, 0x52, 0x46, 0xc1, 0xe1, 0x8e, 0x0d, 0xd0, 0xbb, 0x6b, 0xac, 0x0b, 0x18, 0x32, 0x0a, 0x4e, 0x7c, 0xcd, 0x1b, 0x82, 0x9d, 0x15, 0x59, 0xe1, 0xbc, 0xa7, 0xc6, 0x24, 0x7a, 0x7c, 0x43, 0x30, 0x81, 0xef, 0x3f, 0xe0, 0xa0, 0x4b, 0x0c, 0x38, 0xf2, 0x08, 0xc9, 0x0a, 0xec, 0xbd, 0xb5, 0x01, 0xa4, 0xfc, 0x4c, 0x6c, 0x89, 0xe1, 0x67, 0xfe, 0xe3, 0x0e, 0x2a, 0x25, 0x2e, 0x93, 0x3f, 0x1e, 0xb0, 0x5a, 0xe9, 0xbd, 0xb5, 0xc1, 0x64, 0xff, 0x25, 0xe6, 0xc5, 0xf2, 0x8f, 0xfd, 0x87, 0x1d, 0xf4, 0x7d, 0x86, 0xf5, 0x2a, 0xcf, 0x65, 0xac, 0x56, 0xfb, 0xbe, 0xda, 0x20, 0x7f, 0x25, 0x5c, 0x14, 0x5b, 0xab, 0xfc, 0xd0, 0xbf, 0xcf, 0x41, 0x97, 0x1a, 0x7b, 0x84, 0x3c, 0xc6, 0xb3, 0x5a, 0xea, 0x7d, 0xb5, 0x54, 0x7f, 0x52, 0x5c, 0x6c, 0xe8, 0x2c, 0xe1, 0xa7, 0xfe, 0xa3, 0x0e, 0x3a, 0xd6, 0x67, 0x91, 0x69, 0x36, 0xc0, 0xfd, 0xb5, 0xb4, 0x7f, 0x80, 0x5c, 0x9a, 0xb4, 0x54, 0xf1, 0xe5, 0x3f, 0xe4, 0x20, 0x99, 0x6e, 0xfa, 0x4d, 0x6b, 0x9b, 0x15, 0x3e, 0x50, 0x63, 0x8f, 0xa3, 0x6c, 0xde, 0xb4, 0x31, 0x0b, 0xd8, 0x20, 0x61, 0x35, 0x7e, 0x43, 0xad, 0x31, 0xfa, 0x03, 0x23, 0xbb, 0x64, 0xea, 0xa9, 0xd7, 0xc5, 0x25, 0x9a, 0xf6, 0x7c, 0xc9, 0xdf, 0x56, 0x4b, 0x67, 0xe4, 0x19, 0x93, 0x5d, 0x36, 0xf4, 0xf4, 0xeb, 0xe6, 0xd3, 0x71, 0x40, 0xd0, 0x8d, 0xb7, 0xab, 0xdd, 0x2e, 0xfa, 0x58, 0xca, 0x6e, 0x57, 0xf7, 0xb4, 0xeb, 0xea, 0x5e, 0x1c, 0x91, 0x2b, 0xc8, 0x6d, 0x33, 0x64, 0x0a, 0x09, 0x79, 0x7f, 0x4f, 0xbd, 0xee, 0x6e, 0x40, 0xe4, 0x52, 0xb2, 0x93, 0x48, 0xab, 0x65, 0x97, 0x7d, 0xa0, 0x17, 0xbf, 0x2e, 0x6f, 0xa6, 0x96, 0xe0, 0x7e, 0xd4, 0x5a, 0xc2, 0x3e, 0xd8, 0xd3, 0xae, 0xdb, 0x27, 0x50, 0x4b, 0x70, 0x3f, 0x6a, 0x2d, 0x21, 0x1f, 0xea, 0xa9, 0xd7, 0xf5, 0x13, 0xa8, 0x25, 0xd8, 0xef, 0xa8, 0x12, 0x26, 0xf6, 0x54, 0xce, 0x0a, 0xf2, 0xe1, 0x9e, 0x7e, 0xdd, 0xff, 0x68, 0x1c, 0x54, 0xe8, 0xce, 0x3b, 0xd1, 0xc5, 0x46, 0x6a, 0xd3, 0xc0, 0x3e, 0xd2, 0x8b, 0xfc, 0x5c, 0xc0, 0x8c, 0x81, 0x5e, 0xa1, 0x41, 0x6f, 0x37, 0xef, 0x24, 0x7b, 0x11, 0xfa, 0xfe, 0x5e, 0xe4, 0xe7, 0x06, 0x0c, 0xdb, 0x08, 0xf4, 0x68, 0x3f, 0x86, 0x2d, 0xbf, 0xd4, 0x0f, 0xf4, 0xf4, 0x9f, 0x2b, 0x48, 0x62, 0x98, 0xe0, 0xfe, 0x0c, 0x5b, 0xc2, 0x3e, 0xda, 0x8b, 0xfc, 0xdc, 0x41, 0x22, 0xc3, 0x04, 0xfb, 0xe7, 0xcd, 0x5b, 0x38, 0x85, 0x4e, 0x7d, 0xac, 0x67, 0xfc, 0xb9, 0x04, 0xc3, 0x5e, 0xe6, 0xc2, 0xf5, 0x75, 0x09, 0x09, 0x6b, 0xaf, 0x5c, 0x1f, 0xef, 0x25, 0xfd, 0xdc, 0x82, 0x29, 0x77, 0x41, 0xcd, 0xbe, 0xde, 0x31, 0xef, 0x2d, 0x7b, 0x3d, 0xfb, 0x44, 0x6f, 0xaf, 0xdf, 0x6b, 0x30, 0x6c, 0x36, 0xd0, 0xba, 0x4f, 0x68, 0xa2, 0xcc, 0xf4, 0xbc, 0xd4, 0x6a, 0x25, 0x4f, 0xf6, 0xbe, 0x07, 0x3f, 0xf8, 0x70, 0x51, 0x7c, 0xb1, 0x52, 0xf5, 0x3e, 0xa6, 0xa9, 0x5e, 0xf3, 0x33, 0x56, 0xab, 0x25, 0x3f, 0xd5, 0x1b, 0xe8, 0x17, 0x23, 0x2e, 0x31, 0xd5, 0x66, 0xa9, 0xd2, 0xd6, 0xd5, 0x23, 0x27, 0xed, 0xb2, 0xa0, 0xdd, 0x22, 0xbf, 0xeb, 0xb0, 0x9b, 0x85, 0xf2, 0xcc, 0x29, 0x50, 0xae, 0x18, 0xfa, 0x1b, 0xaa, 0x68, 0xd1, 0x2f, 0x1b, 0x5a, 0xc1, 0x7c, 0x90, 0xc1, 0xa8, 0x87, 0x4e, 0x81, 0x7a, 0x45, 0xd1, 0x3f, 0xa7, 0xee, 0xd8, 0xc8, 0x65, 0x45, 0x2b, 0xa0, 0x0f, 0x31, 0x20, 0xf5, 0xd4, 0x29, 0xd0, 0xae, 0x38, 0x26, 0x20, 0xa5, 0x90, 0x0c, 0x1f, 0x66, 0x48, 0x05, 0x03, 0x12, 0xd7, 0x0a, 0x89, 0xdc, 0x59, 0x16, 0xbd, 0x8f, 0x30, 0xa0, 0xac, 0x99, 0x3b, 0x82, 0xfb, 0x70, 0x67, 0x09, 0xf4, 0x51, 0x06, 0xe4, 0x26, 0x70, 0x97, 0x88, 0x94, 0x42, 0x13, 0x7c, 0x8c, 0x21, 0x0d, 0x27, 0x70, 0x47, 0xb0, 0x7f, 0xab, 0x5a, 0x40, 0xa3, 0x97, 0x3d, 0xad, 0xa0, 0x3e, 0xce, 0xa0, 0xd4, 0xa3, 0xa7, 0x40, 0xbf, 0x22, 0xea, 0x37, 0xd4, 0xb6, 0x18, 0xbb, 0x2c, 0x6a, 0x05, 0xf6, 0x09, 0x06, 0xa6, 0x9e, 0x3d, 0x05, 0x91, 0x2b, 0xa6, 0x09, 0xbb, 0xc2, 0xbe, 0xed, 0x7f, 0x92, 0x41, 0x65, 0x0c, 0xbb, 0x02, 0x9a, 0x7d, 0x1f, 0x06, 0x2d, 0xbf, 0xac, 0x4f, 0x31, 0xa4, 0x7c, 0x12, 0x83, 0x04, 0xf7, 0x65, 0xd0, 0x12, 0xec, 0xd3, 0x0c, 0xac, 0x98, 0xc8, 0x60, 0xe2, 0x2e, 0x4c, 0xd1, 0xd6, 0x9f, 0x66, 0x58, 0x8e, 0x61, 0x17, 0xf2, 0x36, 0x9e, 0x90, 0x59, 0xf6, 0x5d, 0xfc, 0x19, 0x86, 0x34, 0x6a, 0xca, 0x2c, 0x68, 0xd9, 0xe6, 0x5d, 0x61, 0xdf, 0xb0, 0x9f, 0x65, 0x40, 0x63, 0x86, 0x5d, 0x01, 0x5d, 0xf9, 0x41, 0xed, 0x04, 0xca, 0x70, 0xdb, 0xd7, 0x0a, 0xed, 0x39, 0x86, 0x36, 0xf8, 0x11, 0x54, 0x10, 0xbd, 0x23, 0x4c, 0xd5, 0x43, 0x29, 0x71, 0x9d, 0x69, 0x4e, 0x20, 0x9e, 0x67, 0x4b, 0xfd, 0x9e, 0x9c, 0x41, 0x05, 0x86, 0x4b, 0xc6, 0xfe, 0x23, 0x9a, 0xdc, 0x31, 0xdd, 0x37, 0xb6, 0x5a, 0xee, 0x67, 0xf8, 0x72, 0x07, 0x3e, 0x84, 0x0a, 0x62, 0xb7, 0x94, 0xfd, 0xfb, 0xb5, 0x43, 0x28, 0xe3, 0x85, 0x65, 0xab, 0xb5, 0x7e, 0x96, 0xef, 0x82, 0xf4, 0xa7, 0x50, 0x41, 0xfc, 0x9a, 0x33, 0x95, 0x63, 0xc7, 0xfa, 0xac, 0x32, 0xcd, 0x1e, 0xf8, 0x1c, 0x27, 0x75, 0xa0, 0x63, 0xa8, 0xc0, 0x78, 0x4f, 0xda, 0x7f, 0x58, 0x3d, 0x86, 0xd2, 0x6f, 0x38, 0xdb, 0x2c, 0xf1, 0xf3, 0x6c, 0x89, 0x29, 0xcf, 0xa1, 0xf4, 0x7b, 0xd6, 0x09, 0xcb, 0x59, 0x2e, 0x88, 0x57, 0xf5, 0xbb, 0xad, 0xad, 0x76, 0x6b, 0x79, 0x3a, 0xfe, 0x8e, 0x24, 0xfb, 0xe0, 0xb2, 0x79, 0x74, 0x50, 0x7d, 0x4f, 0xdc, 0xf4, 0x40, 0x14, 0xb9, 0x63, 0xf2, 0x81, 0xe8, 0x0b, 0xce, 0xf2, 0x6b, 0x7e, 0xbc, 0x16, 0x5b, 0xf6, 0x09, 0xb6, 0xec, 0xb5, 0xee, 0xc6, 0x89, 0xad, 0x56, 0xa7, 0xbe, 0xd3, 0x5a, 0x6d, 0xb0, 0xdf, 0xb9, 0x65, 0xa3, 0xbb, 0x27, 0x1a, 0xf5, 0xcd, 0xd5, 0xb3, 0xe7, 0x4f, 0x24, 0xfd, 0x24, 0xee, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x9d, 0x50, 0x42, 0x96, 0x2d, 0x57, 0x00, 0x00, } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto2_20180430_b4deda09/test.proto000066400000000000000000000341021411250152500313110ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package google.golang.org.proto2_20180430; option go_package = "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20180430_b4deda09"; enum SiblingEnum { ALPHA = 0; BRAVO = 10; CHARLIE = 200; } message SiblingMessage { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; optional Message f4 = 4; } message Message { enum ChildEnum { ALPHA = 0; BRAVO = 1; CHARLIE = 2; } message ChildMessage { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; optional Message f4 = 4; } optional group NamedGroup = 1 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; optional Message f4 = 4; } // Optional fields. optional bool optional_bool = 100; optional int32 optional_int32 = 101; optional sint32 optional_sint32 = 102; optional uint32 optional_uint32 = 103; optional int64 optional_int64 = 104; optional sint64 optional_sint64 = 105; optional uint64 optional_uint64 = 106; optional fixed32 optional_fixed32 = 107; optional sfixed32 optional_sfixed32 = 108; optional float optional_float = 109; optional fixed64 optional_fixed64 = 110; optional sfixed64 optional_sfixed64 = 111; optional double optional_double = 112; optional string optional_string = 113; optional bytes optional_bytes = 114; optional ChildEnum optional_child_enum = 115; optional ChildMessage optional_child_message = 116; optional NamedGroup optional_named_group = 117; optional SiblingEnum optional_sibling_enum = 118; optional SiblingMessage optional_sibling_message = 119; optional group OptionalGroup = 120 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Optional default fields. optional bool defaulted_bool = 200 [default = true]; optional int32 defaulted_int32 = 201 [default = -12345]; optional sint32 defaulted_sint32 = 202 [default = -3200]; optional uint32 defaulted_uint32 = 203 [default = 3200]; optional int64 defaulted_int64 = 204 [default = -123456789]; optional sint64 defaulted_sint64 = 205 [default = -6400]; optional uint64 defaulted_uint64 = 206 [default = 6400]; optional fixed32 defaulted_fixed32 = 207 [default = 320000]; optional sfixed32 defaulted_sfixed32 = 208 [default = -320000]; optional float defaulted_float = 209 [default = 3.14159]; optional fixed64 defaulted_fixed64 = 210 [default = 640000]; optional sfixed64 defaulted_sfixed64 = 211 [default = -640000]; optional double defaulted_double = 212 [default = 3.14159265359]; optional string defaulted_string = 213 [default = "hello, \"world!\"\n"]; optional bytes defaulted_bytes = 214 [default = "dead\xde\xad\xbe\xefbeef"]; optional ChildEnum defaulted_child_enum = 215 [default = ALPHA]; optional SiblingEnum defaulted_sibling_enum = 216 [default = ALPHA]; // Required fields. required bool required_bool = 300; required int32 required_int32 = 301; required sint32 required_sint32 = 302; required uint32 required_uint32 = 303; required int64 required_int64 = 304; required sint64 required_sint64 = 305; required uint64 required_uint64 = 306; required fixed32 required_fixed32 = 307; required sfixed32 required_sfixed32 = 308; required float required_float = 309; required fixed64 required_fixed64 = 310; required sfixed64 required_sfixed64 = 311; required double required_double = 312; required string required_string = 313; required bytes required_bytes = 314; required ChildEnum required_child_enum = 315; required ChildMessage required_child_message = 316; required NamedGroup required_named_group = 317; required SiblingEnum required_sibling_enum = 318; required SiblingMessage required_sibling_message = 319; required group RequiredGroup = 320 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Required default fields. required bool required_defaulted_bool = 400 [default = true]; required int32 required_defaulted_int32 = 401 [default = -12345]; required sint32 required_defaulted_sint32 = 402 [default = -3200]; required uint32 required_defaulted_uint32 = 403 [default = 3200]; required int64 required_defaulted_int64 = 404 [default = -123456789]; required sint64 required_defaulted_sint64 = 405 [default = -6400]; required uint64 required_defaulted_uint64 = 406 [default = 6400]; required fixed32 required_defaulted_fixed32 = 407 [default = 320000]; required sfixed32 required_defaulted_sfixed32 = 408 [default = -320000]; required float required_defaulted_float = 409 [default = 3.14159]; required fixed64 required_defaulted_fixed64 = 410 [default = 640000]; required sfixed64 required_defaulted_sfixed64 = 411 [default = -640000]; required double required_defaulted_double = 412 [default = 3.14159265359]; required string required_defaulted_string = 413 [default = "hello, \"world!\"\n"]; required bytes required_defaulted_bytes = 414 [default = "dead\xde\xad\xbe\xefbeef"]; required ChildEnum required_defaulted_child_enum = 415 [default = ALPHA]; required SiblingEnum required_defaulted_sibling_enum = 416 [default = ALPHA]; // Repeated fields. repeated bool repeated_bool = 500; repeated int32 repeated_int32 = 501; repeated sint32 repeated_sint32 = 502; repeated uint32 repeated_uint32 = 503; repeated int64 repeated_int64 = 504; repeated sint64 repeated_sint64 = 505; repeated uint64 repeated_uint64 = 506; repeated fixed32 repeated_fixed32 = 507; repeated sfixed32 repeated_sfixed32 = 508; repeated float repeated_float = 509; repeated fixed64 repeated_fixed64 = 510; repeated sfixed64 repeated_sfixed64 = 511; repeated double repeated_double = 512; repeated string repeated_string = 513; repeated bytes repeated_bytes = 514; repeated ChildEnum repeated_child_enum = 515; repeated ChildMessage repeated_child_message = 516; repeated NamedGroup repeated_named_group = 517; repeated SiblingEnum repeated_sibling_enum = 518; repeated SiblingMessage repeated_sibling_message = 519; repeated group RepeatedGroup = 520 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Map fields. map map_bool_bool = 600; map map_bool_int32 = 601; map map_bool_sint32 = 602; map map_bool_uint32 = 603; map map_bool_int64 = 604; map map_bool_sint64 = 605; map map_bool_uint64 = 606; map map_bool_fixed32 = 607; map map_bool_sfixed32 = 608; map map_bool_float = 609; map map_bool_fixed64 = 610; map map_bool_sfixed64 = 611; map map_bool_double = 612; map map_bool_string = 613; map map_bool_bytes = 614; map map_bool_child_enum = 615; map map_bool_child_message = 616; map map_bool_named_group = 617; map map_bool_sibling_enum = 618; map map_bool_sibling_message = 619; map map_int32_bool = 620; map map_sint32_bool = 621; map map_uint32_bool = 622; map map_int64_bool = 623; map map_sint64_bool = 624; map map_uint64_bool = 625; map map_fixed32_bool = 626; map map_string_bool = 627; // Oneof fields. oneof oneof_union { bool oneof_bool = 700; int32 oneof_int32 = 701; sint32 oneof_sint32 = 702; uint32 oneof_uint32 = 703; int64 oneof_int64 = 704; sint64 oneof_sint64 = 705; uint64 oneof_uint64 = 706; fixed32 oneof_fixed32 = 707; sfixed32 oneof_sfixed32 = 708; float oneof_float = 709; fixed64 oneof_fixed64 = 710; sfixed64 oneof_sfixed64 = 711; double oneof_double = 712; string oneof_string = 713; bytes oneof_bytes = 714; ChildEnum oneof_child_enum = 715; ChildMessage oneof_child_message = 716; NamedGroup oneof_named_group = 717; SiblingEnum oneof_sibling_enum = 718; SiblingMessage oneof_sibling_message = 719; group OneofGroup = 720 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } string oneof_string1 = 721; string oneof_string2 = 722; string oneof_string3 = 723; } // Oneof default fields. oneof oneof_defaulted_union { bool oneof_defaulted_bool = 800 [default = true]; int32 oneof_defaulted_int32 = 801 [default = -12345]; sint32 oneof_defaulted_sint32 = 802 [default = -3200]; uint32 oneof_defaulted_uint32 = 803 [default = 3200]; int64 oneof_defaulted_int64 = 804 [default = -123456789]; sint64 oneof_defaulted_sint64 = 805 [default = -6400]; uint64 oneof_defaulted_uint64 = 806 [default = 6400]; fixed32 oneof_defaulted_fixed32 = 807 [default = 320000]; sfixed32 oneof_defaulted_sfixed32 = 808 [default = -320000]; float oneof_defaulted_float = 809 [default = 3.14159]; fixed64 oneof_defaulted_fixed64 = 810 [default = 640000]; sfixed64 oneof_defaulted_sfixed64 = 811 [default = -640000]; double oneof_defaulted_double = 812 [default = 3.14159265359]; string oneof_defaulted_string = 813 [default = "hello, \"world!\"\n"]; bytes oneof_defaulted_bytes = 814 [default = "dead\xde\xad\xbe\xefbeef"]; ChildEnum oneof_defaulted_child_enum = 815 [default = ALPHA]; SiblingEnum oneof_defaulted_sibling_enum = 816 [default = ALPHA]; } // Extension fields. extend Message { // Optional fields. optional bool extension_optional_bool = 10000; optional int32 extension_optional_int32 = 10001; optional sint32 extension_optional_sint32 = 10002; optional uint32 extension_optional_uint32 = 10003; optional int64 extension_optional_int64 = 10004; optional sint64 extension_optional_sint64 = 10005; optional uint64 extension_optional_uint64 = 10006; optional fixed32 extension_optional_fixed32 = 10007; optional sfixed32 extension_optional_sfixed32 = 10008; optional float extension_optional_float = 10009; optional fixed64 extension_optional_fixed64 = 10010; optional sfixed64 extension_optional_sfixed64 = 10011; optional double extension_optional_double = 10012; optional string extension_optional_string = 10013; optional bytes extension_optional_bytes = 10014; optional ChildEnum extension_optional_child_enum = 10015; optional ChildMessage extension_optional_child_message = 10016; optional NamedGroup extension_optional_named_group = 10017; optional SiblingEnum extension_optional_sibling_enum = 10018; optional SiblingMessage extension_optional_sibling_message = 10019; optional group ExtensionOptionalGroup = 10020 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Optional default fields. optional bool extension_defaulted_bool = 20000 [default = true]; optional int32 extension_defaulted_int32 = 20001 [default = -12345]; optional sint32 extension_defaulted_sint32 = 20002 [default = -3200]; optional uint32 extension_defaulted_uint32 = 20003 [default = 3200]; optional int64 extension_defaulted_int64 = 20004 [default = -123456789]; optional sint64 extension_defaulted_sint64 = 20005 [default = -6400]; optional uint64 extension_defaulted_uint64 = 20006 [default = 6400]; optional fixed32 extension_defaulted_fixed32 = 20007 [default = 320000]; optional sfixed32 extension_defaulted_sfixed32 = 20008 [default = -320000]; optional float extension_defaulted_float = 20009 [default = 3.14159]; optional fixed64 extension_defaulted_fixed64 = 20010 [default = 640000]; optional sfixed64 extension_defaulted_sfixed64 = 20011 [default = -640000]; optional double extension_defaulted_double = 20012 [default = 3.14159265359]; optional string extension_defaulted_string = 20013 [default = "hello, \"world!\"\n"]; optional bytes extension_defaulted_bytes = 20014 [default = "dead\xde\xad\xbe\xefbeef"]; optional ChildEnum extension_defaulted_child_enum = 20015 [default = ALPHA]; optional SiblingEnum extension_defaulted_sibling_enum = 20016 [default = ALPHA]; // Repeated fields. repeated bool extension_repeated_bool = 30000; repeated int32 extension_repeated_int32 = 30001; repeated sint32 extension_repeated_sint32 = 30002; repeated uint32 extension_repeated_uint32 = 30003; repeated int64 extension_repeated_int64 = 30004; repeated sint64 extension_repeated_sint64 = 30005; repeated uint64 extension_repeated_uint64 = 30006; repeated fixed32 extension_repeated_fixed32 = 30007; repeated sfixed32 extension_repeated_sfixed32 = 30008; repeated float extension_repeated_float = 30009; repeated fixed64 extension_repeated_fixed64 = 30010; repeated sfixed64 extension_repeated_sfixed64 = 30011; repeated double extension_repeated_double = 30012; repeated string extension_repeated_string = 30013; repeated bytes extension_repeated_bytes = 30014; repeated ChildEnum extension_repeated_child_enum = 30015; repeated ChildMessage extension_repeated_child_message = 30016; repeated NamedGroup extension_repeated_named_group = 30017; repeated SiblingEnum extension_repeated_sibling_enum = 30018; repeated SiblingMessage extension_repeated_sibling_message = 30019; repeated group ExtensionRepeatedGroup = 30020 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } } extensions 10000 to max; } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto2_20180814_aa810b61/000077500000000000000000000000001411250152500271025ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto2_20180814_aa810b61/test.pb.go000066400000000000000000005016031411250152500310150ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: proto2_20180814_aa810b61/test.proto package proto2_20180814_aa810b61 // import "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20180814_aa810b61" import proto "google.golang.org/protobuf/internal/protolegacy" import fmt "fmt" import math "math" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. // A compilation error at this line likely means your copy of the // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type SiblingEnum int32 const ( SiblingEnum_ALPHA SiblingEnum = 0 SiblingEnum_BRAVO SiblingEnum = 10 SiblingEnum_CHARLIE SiblingEnum = 200 ) var SiblingEnum_name = map[int32]string{ 0: "ALPHA", 10: "BRAVO", 200: "CHARLIE", } var SiblingEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 10, "CHARLIE": 200, } func (x SiblingEnum) Enum() *SiblingEnum { p := new(SiblingEnum) *p = x return p } func (x SiblingEnum) String() string { return proto.EnumName(SiblingEnum_name, int32(x)) } func (x *SiblingEnum) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(SiblingEnum_value, data, "SiblingEnum") if err != nil { return err } *x = SiblingEnum(value) return nil } func (SiblingEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor_test_98b5676fa5dea40d, []int{0} } type Message_ChildEnum int32 const ( Message_ALPHA Message_ChildEnum = 0 Message_BRAVO Message_ChildEnum = 1 Message_CHARLIE Message_ChildEnum = 2 ) var Message_ChildEnum_name = map[int32]string{ 0: "ALPHA", 1: "BRAVO", 2: "CHARLIE", } var Message_ChildEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 1, "CHARLIE": 2, } func (x Message_ChildEnum) Enum() *Message_ChildEnum { p := new(Message_ChildEnum) *p = x return p } func (x Message_ChildEnum) String() string { return proto.EnumName(Message_ChildEnum_name, int32(x)) } func (x *Message_ChildEnum) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(Message_ChildEnum_value, data, "Message_ChildEnum") if err != nil { return err } *x = Message_ChildEnum(value) return nil } func (Message_ChildEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor_test_98b5676fa5dea40d, []int{1, 0} } type SiblingMessage struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` F4 *Message `protobuf:"bytes,4,opt,name=f4" json:"f4,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *SiblingMessage) Reset() { *m = SiblingMessage{} } func (m *SiblingMessage) String() string { return proto.CompactTextString(m) } func (*SiblingMessage) ProtoMessage() {} func (*SiblingMessage) Descriptor() ([]byte, []int) { return fileDescriptor_test_98b5676fa5dea40d, []int{0} } func (m *SiblingMessage) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SiblingMessage.Unmarshal(m, b) } func (m *SiblingMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_SiblingMessage.Marshal(b, m, deterministic) } func (dst *SiblingMessage) XXX_Merge(src proto.Message) { xxx_messageInfo_SiblingMessage.Merge(dst, src) } func (m *SiblingMessage) XXX_Size() int { return xxx_messageInfo_SiblingMessage.Size(m) } func (m *SiblingMessage) XXX_DiscardUnknown() { xxx_messageInfo_SiblingMessage.DiscardUnknown(m) } var xxx_messageInfo_SiblingMessage proto.InternalMessageInfo func (m *SiblingMessage) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *SiblingMessage) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *SiblingMessage) GetF3() []string { if m != nil { return m.F3 } return nil } func (m *SiblingMessage) GetF4() *Message { if m != nil { return m.F4 } return nil } type Message struct { Namedgroup *Message_NamedGroup `protobuf:"group,1,opt,name=NamedGroup,json=namedgroup" json:"namedgroup,omitempty"` // Optional fields. OptionalBool *bool `protobuf:"varint,100,opt,name=optional_bool,json=optionalBool" json:"optional_bool,omitempty"` OptionalInt32 *int32 `protobuf:"varint,101,opt,name=optional_int32,json=optionalInt32" json:"optional_int32,omitempty"` OptionalSint32 *int32 `protobuf:"zigzag32,102,opt,name=optional_sint32,json=optionalSint32" json:"optional_sint32,omitempty"` OptionalUint32 *uint32 `protobuf:"varint,103,opt,name=optional_uint32,json=optionalUint32" json:"optional_uint32,omitempty"` OptionalInt64 *int64 `protobuf:"varint,104,opt,name=optional_int64,json=optionalInt64" json:"optional_int64,omitempty"` OptionalSint64 *int64 `protobuf:"zigzag64,105,opt,name=optional_sint64,json=optionalSint64" json:"optional_sint64,omitempty"` OptionalUint64 *uint64 `protobuf:"varint,106,opt,name=optional_uint64,json=optionalUint64" json:"optional_uint64,omitempty"` OptionalFixed32 *uint32 `protobuf:"fixed32,107,opt,name=optional_fixed32,json=optionalFixed32" json:"optional_fixed32,omitempty"` OptionalSfixed32 *int32 `protobuf:"fixed32,108,opt,name=optional_sfixed32,json=optionalSfixed32" json:"optional_sfixed32,omitempty"` OptionalFloat *float32 `protobuf:"fixed32,109,opt,name=optional_float,json=optionalFloat" json:"optional_float,omitempty"` OptionalFixed64 *uint64 `protobuf:"fixed64,110,opt,name=optional_fixed64,json=optionalFixed64" json:"optional_fixed64,omitempty"` OptionalSfixed64 *int64 `protobuf:"fixed64,111,opt,name=optional_sfixed64,json=optionalSfixed64" json:"optional_sfixed64,omitempty"` OptionalDouble *float64 `protobuf:"fixed64,112,opt,name=optional_double,json=optionalDouble" json:"optional_double,omitempty"` OptionalString *string `protobuf:"bytes,113,opt,name=optional_string,json=optionalString" json:"optional_string,omitempty"` OptionalBytes []byte `protobuf:"bytes,114,opt,name=optional_bytes,json=optionalBytes" json:"optional_bytes,omitempty"` OptionalChildEnum *Message_ChildEnum `protobuf:"varint,115,opt,name=optional_child_enum,json=optionalChildEnum,enum=google.golang.org.proto2_20180814.Message_ChildEnum" json:"optional_child_enum,omitempty"` OptionalChildMessage *Message_ChildMessage `protobuf:"bytes,116,opt,name=optional_child_message,json=optionalChildMessage" json:"optional_child_message,omitempty"` OptionalNamedGroup *Message_NamedGroup `protobuf:"bytes,117,opt,name=optional_named_group,json=optionalNamedGroup" json:"optional_named_group,omitempty"` OptionalSiblingEnum *SiblingEnum `protobuf:"varint,118,opt,name=optional_sibling_enum,json=optionalSiblingEnum,enum=google.golang.org.proto2_20180814.SiblingEnum" json:"optional_sibling_enum,omitempty"` OptionalSiblingMessage *SiblingMessage `protobuf:"bytes,119,opt,name=optional_sibling_message,json=optionalSiblingMessage" json:"optional_sibling_message,omitempty"` Optionalgroup *Message_OptionalGroup `protobuf:"group,120,opt,name=OptionalGroup,json=optionalgroup" json:"optionalgroup,omitempty"` // Optional default fields. DefaultedBool *bool `protobuf:"varint,200,opt,name=defaulted_bool,json=defaultedBool,def=1" json:"defaulted_bool,omitempty"` DefaultedInt32 *int32 `protobuf:"varint,201,opt,name=defaulted_int32,json=defaultedInt32,def=-12345" json:"defaulted_int32,omitempty"` DefaultedSint32 *int32 `protobuf:"zigzag32,202,opt,name=defaulted_sint32,json=defaultedSint32,def=-3200" json:"defaulted_sint32,omitempty"` DefaultedUint32 *uint32 `protobuf:"varint,203,opt,name=defaulted_uint32,json=defaultedUint32,def=3200" json:"defaulted_uint32,omitempty"` DefaultedInt64 *int64 `protobuf:"varint,204,opt,name=defaulted_int64,json=defaultedInt64,def=-123456789" json:"defaulted_int64,omitempty"` DefaultedSint64 *int64 `protobuf:"zigzag64,205,opt,name=defaulted_sint64,json=defaultedSint64,def=-6400" json:"defaulted_sint64,omitempty"` DefaultedUint64 *uint64 `protobuf:"varint,206,opt,name=defaulted_uint64,json=defaultedUint64,def=6400" json:"defaulted_uint64,omitempty"` DefaultedFixed32 *uint32 `protobuf:"fixed32,207,opt,name=defaulted_fixed32,json=defaultedFixed32,def=320000" json:"defaulted_fixed32,omitempty"` DefaultedSfixed32 *int32 `protobuf:"fixed32,208,opt,name=defaulted_sfixed32,json=defaultedSfixed32,def=-320000" json:"defaulted_sfixed32,omitempty"` DefaultedFloat *float32 `protobuf:"fixed32,209,opt,name=defaulted_float,json=defaultedFloat,def=3.14159" json:"defaulted_float,omitempty"` DefaultedFixed64 *uint64 `protobuf:"fixed64,210,opt,name=defaulted_fixed64,json=defaultedFixed64,def=640000" json:"defaulted_fixed64,omitempty"` DefaultedSfixed64 *int64 `protobuf:"fixed64,211,opt,name=defaulted_sfixed64,json=defaultedSfixed64,def=-640000" json:"defaulted_sfixed64,omitempty"` DefaultedDouble *float64 `protobuf:"fixed64,212,opt,name=defaulted_double,json=defaultedDouble,def=3.14159265359" json:"defaulted_double,omitempty"` DefaultedString *string `protobuf:"bytes,213,opt,name=defaulted_string,json=defaultedString,def=hello, \"world!\"\n" json:"defaulted_string,omitempty"` DefaultedBytes []byte `protobuf:"bytes,214,opt,name=defaulted_bytes,json=defaultedBytes,def=dead\\336\\255\\276\\357beef" json:"defaulted_bytes,omitempty"` DefaultedChildEnum *Message_ChildEnum `protobuf:"varint,215,opt,name=defaulted_child_enum,json=defaultedChildEnum,enum=google.golang.org.proto2_20180814.Message_ChildEnum,def=0" json:"defaulted_child_enum,omitempty"` DefaultedSiblingEnum *SiblingEnum `protobuf:"varint,216,opt,name=defaulted_sibling_enum,json=defaultedSiblingEnum,enum=google.golang.org.proto2_20180814.SiblingEnum,def=0" json:"defaulted_sibling_enum,omitempty"` // Required fields. RequiredBool *bool `protobuf:"varint,300,req,name=required_bool,json=requiredBool" json:"required_bool,omitempty"` RequiredInt32 *int32 `protobuf:"varint,301,req,name=required_int32,json=requiredInt32" json:"required_int32,omitempty"` RequiredSint32 *int32 `protobuf:"zigzag32,302,req,name=required_sint32,json=requiredSint32" json:"required_sint32,omitempty"` RequiredUint32 *uint32 `protobuf:"varint,303,req,name=required_uint32,json=requiredUint32" json:"required_uint32,omitempty"` RequiredInt64 *int64 `protobuf:"varint,304,req,name=required_int64,json=requiredInt64" json:"required_int64,omitempty"` RequiredSint64 *int64 `protobuf:"zigzag64,305,req,name=required_sint64,json=requiredSint64" json:"required_sint64,omitempty"` RequiredUint64 *uint64 `protobuf:"varint,306,req,name=required_uint64,json=requiredUint64" json:"required_uint64,omitempty"` RequiredFixed32 *uint32 `protobuf:"fixed32,307,req,name=required_fixed32,json=requiredFixed32" json:"required_fixed32,omitempty"` RequiredSfixed32 *int32 `protobuf:"fixed32,308,req,name=required_sfixed32,json=requiredSfixed32" json:"required_sfixed32,omitempty"` RequiredFloat *float32 `protobuf:"fixed32,309,req,name=required_float,json=requiredFloat" json:"required_float,omitempty"` RequiredFixed64 *uint64 `protobuf:"fixed64,310,req,name=required_fixed64,json=requiredFixed64" json:"required_fixed64,omitempty"` RequiredSfixed64 *int64 `protobuf:"fixed64,311,req,name=required_sfixed64,json=requiredSfixed64" json:"required_sfixed64,omitempty"` RequiredDouble *float64 `protobuf:"fixed64,312,req,name=required_double,json=requiredDouble" json:"required_double,omitempty"` RequiredString *string `protobuf:"bytes,313,req,name=required_string,json=requiredString" json:"required_string,omitempty"` RequiredBytes []byte `protobuf:"bytes,314,req,name=required_bytes,json=requiredBytes" json:"required_bytes,omitempty"` RequiredChildEnum *Message_ChildEnum `protobuf:"varint,315,req,name=required_child_enum,json=requiredChildEnum,enum=google.golang.org.proto2_20180814.Message_ChildEnum" json:"required_child_enum,omitempty"` RequiredChildMessage *Message_ChildMessage `protobuf:"bytes,316,req,name=required_child_message,json=requiredChildMessage" json:"required_child_message,omitempty"` RequiredNamedGroup *Message_NamedGroup `protobuf:"bytes,317,req,name=required_named_group,json=requiredNamedGroup" json:"required_named_group,omitempty"` RequiredSiblingEnum *SiblingEnum `protobuf:"varint,318,req,name=required_sibling_enum,json=requiredSiblingEnum,enum=google.golang.org.proto2_20180814.SiblingEnum" json:"required_sibling_enum,omitempty"` RequiredSiblingMessage *SiblingMessage `protobuf:"bytes,319,req,name=required_sibling_message,json=requiredSiblingMessage" json:"required_sibling_message,omitempty"` Requiredgroup *Message_RequiredGroup `protobuf:"group,320,req,name=RequiredGroup,json=requiredgroup" json:"requiredgroup,omitempty"` // Required default fields. RequiredDefaultedBool *bool `protobuf:"varint,400,req,name=required_defaulted_bool,json=requiredDefaultedBool,def=1" json:"required_defaulted_bool,omitempty"` RequiredDefaultedInt32 *int32 `protobuf:"varint,401,req,name=required_defaulted_int32,json=requiredDefaultedInt32,def=-12345" json:"required_defaulted_int32,omitempty"` RequiredDefaultedSint32 *int32 `protobuf:"zigzag32,402,req,name=required_defaulted_sint32,json=requiredDefaultedSint32,def=-3200" json:"required_defaulted_sint32,omitempty"` RequiredDefaultedUint32 *uint32 `protobuf:"varint,403,req,name=required_defaulted_uint32,json=requiredDefaultedUint32,def=3200" json:"required_defaulted_uint32,omitempty"` RequiredDefaultedInt64 *int64 `protobuf:"varint,404,req,name=required_defaulted_int64,json=requiredDefaultedInt64,def=-123456789" json:"required_defaulted_int64,omitempty"` RequiredDefaultedSint64 *int64 `protobuf:"zigzag64,405,req,name=required_defaulted_sint64,json=requiredDefaultedSint64,def=-6400" json:"required_defaulted_sint64,omitempty"` RequiredDefaultedUint64 *uint64 `protobuf:"varint,406,req,name=required_defaulted_uint64,json=requiredDefaultedUint64,def=6400" json:"required_defaulted_uint64,omitempty"` RequiredDefaultedFixed32 *uint32 `protobuf:"fixed32,407,req,name=required_defaulted_fixed32,json=requiredDefaultedFixed32,def=320000" json:"required_defaulted_fixed32,omitempty"` RequiredDefaultedSfixed32 *int32 `protobuf:"fixed32,408,req,name=required_defaulted_sfixed32,json=requiredDefaultedSfixed32,def=-320000" json:"required_defaulted_sfixed32,omitempty"` RequiredDefaultedFloat *float32 `protobuf:"fixed32,409,req,name=required_defaulted_float,json=requiredDefaultedFloat,def=3.14159" json:"required_defaulted_float,omitempty"` RequiredDefaultedFixed64 *uint64 `protobuf:"fixed64,410,req,name=required_defaulted_fixed64,json=requiredDefaultedFixed64,def=640000" json:"required_defaulted_fixed64,omitempty"` RequiredDefaultedSfixed64 *int64 `protobuf:"fixed64,411,req,name=required_defaulted_sfixed64,json=requiredDefaultedSfixed64,def=-640000" json:"required_defaulted_sfixed64,omitempty"` RequiredDefaultedDouble *float64 `protobuf:"fixed64,412,req,name=required_defaulted_double,json=requiredDefaultedDouble,def=3.14159265359" json:"required_defaulted_double,omitempty"` RequiredDefaultedString *string `protobuf:"bytes,413,req,name=required_defaulted_string,json=requiredDefaultedString,def=hello, \"world!\"\n" json:"required_defaulted_string,omitempty"` RequiredDefaultedBytes []byte `protobuf:"bytes,414,req,name=required_defaulted_bytes,json=requiredDefaultedBytes,def=dead\\336\\255\\276\\357beef" json:"required_defaulted_bytes,omitempty"` RequiredDefaultedChildEnum *Message_ChildEnum `protobuf:"varint,415,req,name=required_defaulted_child_enum,json=requiredDefaultedChildEnum,enum=google.golang.org.proto2_20180814.Message_ChildEnum,def=0" json:"required_defaulted_child_enum,omitempty"` RequiredDefaultedSiblingEnum *SiblingEnum `protobuf:"varint,416,req,name=required_defaulted_sibling_enum,json=requiredDefaultedSiblingEnum,enum=google.golang.org.proto2_20180814.SiblingEnum,def=0" json:"required_defaulted_sibling_enum,omitempty"` // Repeated fields. RepeatedBool []bool `protobuf:"varint,500,rep,name=repeated_bool,json=repeatedBool" json:"repeated_bool,omitempty"` RepeatedInt32 []int32 `protobuf:"varint,501,rep,name=repeated_int32,json=repeatedInt32" json:"repeated_int32,omitempty"` RepeatedSint32 []int32 `protobuf:"zigzag32,502,rep,name=repeated_sint32,json=repeatedSint32" json:"repeated_sint32,omitempty"` RepeatedUint32 []uint32 `protobuf:"varint,503,rep,name=repeated_uint32,json=repeatedUint32" json:"repeated_uint32,omitempty"` RepeatedInt64 []int64 `protobuf:"varint,504,rep,name=repeated_int64,json=repeatedInt64" json:"repeated_int64,omitempty"` RepeatedSint64 []int64 `protobuf:"zigzag64,505,rep,name=repeated_sint64,json=repeatedSint64" json:"repeated_sint64,omitempty"` RepeatedUint64 []uint64 `protobuf:"varint,506,rep,name=repeated_uint64,json=repeatedUint64" json:"repeated_uint64,omitempty"` RepeatedFixed32 []uint32 `protobuf:"fixed32,507,rep,name=repeated_fixed32,json=repeatedFixed32" json:"repeated_fixed32,omitempty"` RepeatedSfixed32 []int32 `protobuf:"fixed32,508,rep,name=repeated_sfixed32,json=repeatedSfixed32" json:"repeated_sfixed32,omitempty"` RepeatedFloat []float32 `protobuf:"fixed32,509,rep,name=repeated_float,json=repeatedFloat" json:"repeated_float,omitempty"` RepeatedFixed64 []uint64 `protobuf:"fixed64,510,rep,name=repeated_fixed64,json=repeatedFixed64" json:"repeated_fixed64,omitempty"` RepeatedSfixed64 []int64 `protobuf:"fixed64,511,rep,name=repeated_sfixed64,json=repeatedSfixed64" json:"repeated_sfixed64,omitempty"` RepeatedDouble []float64 `protobuf:"fixed64,512,rep,name=repeated_double,json=repeatedDouble" json:"repeated_double,omitempty"` RepeatedString []string `protobuf:"bytes,513,rep,name=repeated_string,json=repeatedString" json:"repeated_string,omitempty"` RepeatedBytes [][]byte `protobuf:"bytes,514,rep,name=repeated_bytes,json=repeatedBytes" json:"repeated_bytes,omitempty"` RepeatedChildEnum []Message_ChildEnum `protobuf:"varint,515,rep,name=repeated_child_enum,json=repeatedChildEnum,enum=google.golang.org.proto2_20180814.Message_ChildEnum" json:"repeated_child_enum,omitempty"` RepeatedChildMessage []*Message_ChildMessage `protobuf:"bytes,516,rep,name=repeated_child_message,json=repeatedChildMessage" json:"repeated_child_message,omitempty"` RepeatedNamedGroup []*Message_NamedGroup `protobuf:"bytes,517,rep,name=repeated_named_group,json=repeatedNamedGroup" json:"repeated_named_group,omitempty"` RepeatedSiblingEnum []SiblingEnum `protobuf:"varint,518,rep,name=repeated_sibling_enum,json=repeatedSiblingEnum,enum=google.golang.org.proto2_20180814.SiblingEnum" json:"repeated_sibling_enum,omitempty"` RepeatedSiblingMessage []*SiblingMessage `protobuf:"bytes,519,rep,name=repeated_sibling_message,json=repeatedSiblingMessage" json:"repeated_sibling_message,omitempty"` Repeatedgroup []*Message_RepeatedGroup `protobuf:"group,520,rep,name=RepeatedGroup,json=repeatedgroup" json:"repeatedgroup,omitempty"` // Map fields. MapBoolBool map[bool]bool `protobuf:"bytes,600,rep,name=map_bool_bool,json=mapBoolBool" json:"map_bool_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolInt32 map[bool]int32 `protobuf:"bytes,601,rep,name=map_bool_int32,json=mapBoolInt32" json:"map_bool_int32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolSint32 map[bool]int32 `protobuf:"bytes,602,rep,name=map_bool_sint32,json=mapBoolSint32" json:"map_bool_sint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` MapBoolUint32 map[bool]uint32 `protobuf:"bytes,603,rep,name=map_bool_uint32,json=mapBoolUint32" json:"map_bool_uint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolInt64 map[bool]int64 `protobuf:"bytes,604,rep,name=map_bool_int64,json=mapBoolInt64" json:"map_bool_int64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolSint64 map[bool]int64 `protobuf:"bytes,605,rep,name=map_bool_sint64,json=mapBoolSint64" json:"map_bool_sint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` MapBoolUint64 map[bool]uint64 `protobuf:"bytes,606,rep,name=map_bool_uint64,json=mapBoolUint64" json:"map_bool_uint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolFixed32 map[bool]uint32 `protobuf:"bytes,607,rep,name=map_bool_fixed32,json=mapBoolFixed32" json:"map_bool_fixed32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolSfixed32 map[bool]int32 `protobuf:"bytes,608,rep,name=map_bool_sfixed32,json=mapBoolSfixed32" json:"map_bool_sfixed32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolFloat map[bool]float32 `protobuf:"bytes,609,rep,name=map_bool_float,json=mapBoolFloat" json:"map_bool_float,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolFixed64 map[bool]uint64 `protobuf:"bytes,610,rep,name=map_bool_fixed64,json=mapBoolFixed64" json:"map_bool_fixed64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolSfixed64 map[bool]int64 `protobuf:"bytes,611,rep,name=map_bool_sfixed64,json=mapBoolSfixed64" json:"map_bool_sfixed64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolDouble map[bool]float64 `protobuf:"bytes,612,rep,name=map_bool_double,json=mapBoolDouble" json:"map_bool_double,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolString map[bool]string `protobuf:"bytes,613,rep,name=map_bool_string,json=mapBoolString" json:"map_bool_string,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolBytes map[bool][]byte `protobuf:"bytes,614,rep,name=map_bool_bytes,json=mapBoolBytes" json:"map_bool_bytes,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolChildEnum map[bool]Message_ChildEnum `protobuf:"bytes,615,rep,name=map_bool_child_enum,json=mapBoolChildEnum" json:"map_bool_child_enum,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.golang.org.proto2_20180814.Message_ChildEnum"` MapBoolChildMessage map[bool]*Message_ChildMessage `protobuf:"bytes,616,rep,name=map_bool_child_message,json=mapBoolChildMessage" json:"map_bool_child_message,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolNamedGroup map[bool]*Message_NamedGroup `protobuf:"bytes,617,rep,name=map_bool_named_group,json=mapBoolNamedGroup" json:"map_bool_named_group,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolSiblingEnum map[bool]SiblingEnum `protobuf:"bytes,618,rep,name=map_bool_sibling_enum,json=mapBoolSiblingEnum" json:"map_bool_sibling_enum,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.golang.org.proto2_20180814.SiblingEnum"` MapBoolSiblingMessage map[bool]*SiblingMessage `protobuf:"bytes,619,rep,name=map_bool_sibling_message,json=mapBoolSiblingMessage" json:"map_bool_sibling_message,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapInt32Bool map[int32]bool `protobuf:"bytes,620,rep,name=map_int32_bool,json=mapInt32Bool" json:"map_int32_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapSint32Bool map[int32]bool `protobuf:"bytes,621,rep,name=map_sint32_bool,json=mapSint32Bool" json:"map_sint32_bool,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint32Bool map[uint32]bool `protobuf:"bytes,622,rep,name=map_uint32_bool,json=mapUint32Bool" json:"map_uint32_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapInt64Bool map[int64]bool `protobuf:"bytes,623,rep,name=map_int64_bool,json=mapInt64Bool" json:"map_int64_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapSint64Bool map[int64]bool `protobuf:"bytes,624,rep,name=map_sint64_bool,json=mapSint64Bool" json:"map_sint64_bool,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint64Bool map[uint64]bool `protobuf:"bytes,625,rep,name=map_uint64_bool,json=mapUint64Bool" json:"map_uint64_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapFixed32Bool map[uint32]bool `protobuf:"bytes,626,rep,name=map_fixed32_bool,json=mapFixed32Bool" json:"map_fixed32_bool,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapStringBool map[string]bool `protobuf:"bytes,627,rep,name=map_string_bool,json=mapStringBool" json:"map_string_bool,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // Oneof fields. // // Types that are valid to be assigned to OneofUnion: // *Message_OneofBool // *Message_OneofInt32 // *Message_OneofSint32 // *Message_OneofUint32 // *Message_OneofInt64 // *Message_OneofSint64 // *Message_OneofUint64 // *Message_OneofFixed32 // *Message_OneofSfixed32 // *Message_OneofFloat // *Message_OneofFixed64 // *Message_OneofSfixed64 // *Message_OneofDouble // *Message_OneofString // *Message_OneofBytes // *Message_OneofChildEnum // *Message_OneofChildMessage // *Message_OneofNamedGroup // *Message_OneofSiblingEnum // *Message_OneofSiblingMessage // *Message_Oneofgroup // *Message_OneofString1 // *Message_OneofString2 // *Message_OneofString3 OneofUnion isMessage_OneofUnion `protobuf_oneof:"oneof_union"` // Oneof default fields. // // Types that are valid to be assigned to OneofDefaultedUnion: // *Message_OneofDefaultedBool // *Message_OneofDefaultedInt32 // *Message_OneofDefaultedSint32 // *Message_OneofDefaultedUint32 // *Message_OneofDefaultedInt64 // *Message_OneofDefaultedSint64 // *Message_OneofDefaultedUint64 // *Message_OneofDefaultedFixed32 // *Message_OneofDefaultedSfixed32 // *Message_OneofDefaultedFloat // *Message_OneofDefaultedFixed64 // *Message_OneofDefaultedSfixed64 // *Message_OneofDefaultedDouble // *Message_OneofDefaultedString // *Message_OneofDefaultedBytes // *Message_OneofDefaultedChildEnum // *Message_OneofDefaultedSiblingEnum OneofDefaultedUnion isMessage_OneofDefaultedUnion `protobuf_oneof:"oneof_defaulted_union"` XXX_NoUnkeyedLiteral struct{} `json:"-"` proto.XXX_InternalExtensions `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message) Reset() { *m = Message{} } func (m *Message) String() string { return proto.CompactTextString(m) } func (*Message) ProtoMessage() {} func (*Message) Descriptor() ([]byte, []int) { return fileDescriptor_test_98b5676fa5dea40d, []int{1} } var extRange_Message = []proto.ExtensionRange{ {Start: 10000, End: 536870911}, } func (*Message) ExtensionRangeArray() []proto.ExtensionRange { return extRange_Message } func (m *Message) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message.Unmarshal(m, b) } func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message.Marshal(b, m, deterministic) } func (dst *Message) XXX_Merge(src proto.Message) { xxx_messageInfo_Message.Merge(dst, src) } func (m *Message) XXX_Size() int { return xxx_messageInfo_Message.Size(m) } func (m *Message) XXX_DiscardUnknown() { xxx_messageInfo_Message.DiscardUnknown(m) } var xxx_messageInfo_Message proto.InternalMessageInfo const Default_Message_DefaultedBool bool = true const Default_Message_DefaultedInt32 int32 = -12345 const Default_Message_DefaultedSint32 int32 = -3200 const Default_Message_DefaultedUint32 uint32 = 3200 const Default_Message_DefaultedInt64 int64 = -123456789 const Default_Message_DefaultedSint64 int64 = -6400 const Default_Message_DefaultedUint64 uint64 = 6400 const Default_Message_DefaultedFixed32 uint32 = 320000 const Default_Message_DefaultedSfixed32 int32 = -320000 const Default_Message_DefaultedFloat float32 = 3.14159 const Default_Message_DefaultedFixed64 uint64 = 640000 const Default_Message_DefaultedSfixed64 int64 = -640000 const Default_Message_DefaultedDouble float64 = 3.14159265359 const Default_Message_DefaultedString string = "hello, \"world!\"\n" var Default_Message_DefaultedBytes []byte = []byte("deadޭ\xbe\xefbeef") const Default_Message_DefaultedChildEnum Message_ChildEnum = Message_ALPHA const Default_Message_DefaultedSiblingEnum SiblingEnum = SiblingEnum_ALPHA const Default_Message_RequiredDefaultedBool bool = true const Default_Message_RequiredDefaultedInt32 int32 = -12345 const Default_Message_RequiredDefaultedSint32 int32 = -3200 const Default_Message_RequiredDefaultedUint32 uint32 = 3200 const Default_Message_RequiredDefaultedInt64 int64 = -123456789 const Default_Message_RequiredDefaultedSint64 int64 = -6400 const Default_Message_RequiredDefaultedUint64 uint64 = 6400 const Default_Message_RequiredDefaultedFixed32 uint32 = 320000 const Default_Message_RequiredDefaultedSfixed32 int32 = -320000 const Default_Message_RequiredDefaultedFloat float32 = 3.14159 const Default_Message_RequiredDefaultedFixed64 uint64 = 640000 const Default_Message_RequiredDefaultedSfixed64 int64 = -640000 const Default_Message_RequiredDefaultedDouble float64 = 3.14159265359 const Default_Message_RequiredDefaultedString string = "hello, \"world!\"\n" var Default_Message_RequiredDefaultedBytes []byte = []byte("deadޭ\xbe\xefbeef") const Default_Message_RequiredDefaultedChildEnum Message_ChildEnum = Message_ALPHA const Default_Message_RequiredDefaultedSiblingEnum SiblingEnum = SiblingEnum_ALPHA const Default_Message_OneofDefaultedBool bool = true const Default_Message_OneofDefaultedInt32 int32 = -12345 const Default_Message_OneofDefaultedSint32 int32 = -3200 const Default_Message_OneofDefaultedUint32 uint32 = 3200 const Default_Message_OneofDefaultedInt64 int64 = -123456789 const Default_Message_OneofDefaultedSint64 int64 = -6400 const Default_Message_OneofDefaultedUint64 uint64 = 6400 const Default_Message_OneofDefaultedFixed32 uint32 = 320000 const Default_Message_OneofDefaultedSfixed32 int32 = -320000 const Default_Message_OneofDefaultedFloat float32 = 3.14159 const Default_Message_OneofDefaultedFixed64 uint64 = 640000 const Default_Message_OneofDefaultedSfixed64 int64 = -640000 const Default_Message_OneofDefaultedDouble float64 = 3.14159265359 const Default_Message_OneofDefaultedString string = "hello, \"world!\"\n" var Default_Message_OneofDefaultedBytes []byte = []byte("deadޭ\xbe\xefbeef") const Default_Message_OneofDefaultedChildEnum Message_ChildEnum = Message_ALPHA const Default_Message_OneofDefaultedSiblingEnum SiblingEnum = SiblingEnum_ALPHA func (m *Message) GetNamedgroup() *Message_NamedGroup { if m != nil { return m.Namedgroup } return nil } func (m *Message) GetOptionalBool() bool { if m != nil && m.OptionalBool != nil { return *m.OptionalBool } return false } func (m *Message) GetOptionalInt32() int32 { if m != nil && m.OptionalInt32 != nil { return *m.OptionalInt32 } return 0 } func (m *Message) GetOptionalSint32() int32 { if m != nil && m.OptionalSint32 != nil { return *m.OptionalSint32 } return 0 } func (m *Message) GetOptionalUint32() uint32 { if m != nil && m.OptionalUint32 != nil { return *m.OptionalUint32 } return 0 } func (m *Message) GetOptionalInt64() int64 { if m != nil && m.OptionalInt64 != nil { return *m.OptionalInt64 } return 0 } func (m *Message) GetOptionalSint64() int64 { if m != nil && m.OptionalSint64 != nil { return *m.OptionalSint64 } return 0 } func (m *Message) GetOptionalUint64() uint64 { if m != nil && m.OptionalUint64 != nil { return *m.OptionalUint64 } return 0 } func (m *Message) GetOptionalFixed32() uint32 { if m != nil && m.OptionalFixed32 != nil { return *m.OptionalFixed32 } return 0 } func (m *Message) GetOptionalSfixed32() int32 { if m != nil && m.OptionalSfixed32 != nil { return *m.OptionalSfixed32 } return 0 } func (m *Message) GetOptionalFloat() float32 { if m != nil && m.OptionalFloat != nil { return *m.OptionalFloat } return 0 } func (m *Message) GetOptionalFixed64() uint64 { if m != nil && m.OptionalFixed64 != nil { return *m.OptionalFixed64 } return 0 } func (m *Message) GetOptionalSfixed64() int64 { if m != nil && m.OptionalSfixed64 != nil { return *m.OptionalSfixed64 } return 0 } func (m *Message) GetOptionalDouble() float64 { if m != nil && m.OptionalDouble != nil { return *m.OptionalDouble } return 0 } func (m *Message) GetOptionalString() string { if m != nil && m.OptionalString != nil { return *m.OptionalString } return "" } func (m *Message) GetOptionalBytes() []byte { if m != nil { return m.OptionalBytes } return nil } func (m *Message) GetOptionalChildEnum() Message_ChildEnum { if m != nil && m.OptionalChildEnum != nil { return *m.OptionalChildEnum } return Message_ALPHA } func (m *Message) GetOptionalChildMessage() *Message_ChildMessage { if m != nil { return m.OptionalChildMessage } return nil } func (m *Message) GetOptionalNamedGroup() *Message_NamedGroup { if m != nil { return m.OptionalNamedGroup } return nil } func (m *Message) GetOptionalSiblingEnum() SiblingEnum { if m != nil && m.OptionalSiblingEnum != nil { return *m.OptionalSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetOptionalSiblingMessage() *SiblingMessage { if m != nil { return m.OptionalSiblingMessage } return nil } func (m *Message) GetOptionalgroup() *Message_OptionalGroup { if m != nil { return m.Optionalgroup } return nil } func (m *Message) GetDefaultedBool() bool { if m != nil && m.DefaultedBool != nil { return *m.DefaultedBool } return Default_Message_DefaultedBool } func (m *Message) GetDefaultedInt32() int32 { if m != nil && m.DefaultedInt32 != nil { return *m.DefaultedInt32 } return Default_Message_DefaultedInt32 } func (m *Message) GetDefaultedSint32() int32 { if m != nil && m.DefaultedSint32 != nil { return *m.DefaultedSint32 } return Default_Message_DefaultedSint32 } func (m *Message) GetDefaultedUint32() uint32 { if m != nil && m.DefaultedUint32 != nil { return *m.DefaultedUint32 } return Default_Message_DefaultedUint32 } func (m *Message) GetDefaultedInt64() int64 { if m != nil && m.DefaultedInt64 != nil { return *m.DefaultedInt64 } return Default_Message_DefaultedInt64 } func (m *Message) GetDefaultedSint64() int64 { if m != nil && m.DefaultedSint64 != nil { return *m.DefaultedSint64 } return Default_Message_DefaultedSint64 } func (m *Message) GetDefaultedUint64() uint64 { if m != nil && m.DefaultedUint64 != nil { return *m.DefaultedUint64 } return Default_Message_DefaultedUint64 } func (m *Message) GetDefaultedFixed32() uint32 { if m != nil && m.DefaultedFixed32 != nil { return *m.DefaultedFixed32 } return Default_Message_DefaultedFixed32 } func (m *Message) GetDefaultedSfixed32() int32 { if m != nil && m.DefaultedSfixed32 != nil { return *m.DefaultedSfixed32 } return Default_Message_DefaultedSfixed32 } func (m *Message) GetDefaultedFloat() float32 { if m != nil && m.DefaultedFloat != nil { return *m.DefaultedFloat } return Default_Message_DefaultedFloat } func (m *Message) GetDefaultedFixed64() uint64 { if m != nil && m.DefaultedFixed64 != nil { return *m.DefaultedFixed64 } return Default_Message_DefaultedFixed64 } func (m *Message) GetDefaultedSfixed64() int64 { if m != nil && m.DefaultedSfixed64 != nil { return *m.DefaultedSfixed64 } return Default_Message_DefaultedSfixed64 } func (m *Message) GetDefaultedDouble() float64 { if m != nil && m.DefaultedDouble != nil { return *m.DefaultedDouble } return Default_Message_DefaultedDouble } func (m *Message) GetDefaultedString() string { if m != nil && m.DefaultedString != nil { return *m.DefaultedString } return Default_Message_DefaultedString } func (m *Message) GetDefaultedBytes() []byte { if m != nil && m.DefaultedBytes != nil { return m.DefaultedBytes } return append([]byte(nil), Default_Message_DefaultedBytes...) } func (m *Message) GetDefaultedChildEnum() Message_ChildEnum { if m != nil && m.DefaultedChildEnum != nil { return *m.DefaultedChildEnum } return Default_Message_DefaultedChildEnum } func (m *Message) GetDefaultedSiblingEnum() SiblingEnum { if m != nil && m.DefaultedSiblingEnum != nil { return *m.DefaultedSiblingEnum } return Default_Message_DefaultedSiblingEnum } func (m *Message) GetRequiredBool() bool { if m != nil && m.RequiredBool != nil { return *m.RequiredBool } return false } func (m *Message) GetRequiredInt32() int32 { if m != nil && m.RequiredInt32 != nil { return *m.RequiredInt32 } return 0 } func (m *Message) GetRequiredSint32() int32 { if m != nil && m.RequiredSint32 != nil { return *m.RequiredSint32 } return 0 } func (m *Message) GetRequiredUint32() uint32 { if m != nil && m.RequiredUint32 != nil { return *m.RequiredUint32 } return 0 } func (m *Message) GetRequiredInt64() int64 { if m != nil && m.RequiredInt64 != nil { return *m.RequiredInt64 } return 0 } func (m *Message) GetRequiredSint64() int64 { if m != nil && m.RequiredSint64 != nil { return *m.RequiredSint64 } return 0 } func (m *Message) GetRequiredUint64() uint64 { if m != nil && m.RequiredUint64 != nil { return *m.RequiredUint64 } return 0 } func (m *Message) GetRequiredFixed32() uint32 { if m != nil && m.RequiredFixed32 != nil { return *m.RequiredFixed32 } return 0 } func (m *Message) GetRequiredSfixed32() int32 { if m != nil && m.RequiredSfixed32 != nil { return *m.RequiredSfixed32 } return 0 } func (m *Message) GetRequiredFloat() float32 { if m != nil && m.RequiredFloat != nil { return *m.RequiredFloat } return 0 } func (m *Message) GetRequiredFixed64() uint64 { if m != nil && m.RequiredFixed64 != nil { return *m.RequiredFixed64 } return 0 } func (m *Message) GetRequiredSfixed64() int64 { if m != nil && m.RequiredSfixed64 != nil { return *m.RequiredSfixed64 } return 0 } func (m *Message) GetRequiredDouble() float64 { if m != nil && m.RequiredDouble != nil { return *m.RequiredDouble } return 0 } func (m *Message) GetRequiredString() string { if m != nil && m.RequiredString != nil { return *m.RequiredString } return "" } func (m *Message) GetRequiredBytes() []byte { if m != nil { return m.RequiredBytes } return nil } func (m *Message) GetRequiredChildEnum() Message_ChildEnum { if m != nil && m.RequiredChildEnum != nil { return *m.RequiredChildEnum } return Message_ALPHA } func (m *Message) GetRequiredChildMessage() *Message_ChildMessage { if m != nil { return m.RequiredChildMessage } return nil } func (m *Message) GetRequiredNamedGroup() *Message_NamedGroup { if m != nil { return m.RequiredNamedGroup } return nil } func (m *Message) GetRequiredSiblingEnum() SiblingEnum { if m != nil && m.RequiredSiblingEnum != nil { return *m.RequiredSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetRequiredSiblingMessage() *SiblingMessage { if m != nil { return m.RequiredSiblingMessage } return nil } func (m *Message) GetRequiredgroup() *Message_RequiredGroup { if m != nil { return m.Requiredgroup } return nil } func (m *Message) GetRequiredDefaultedBool() bool { if m != nil && m.RequiredDefaultedBool != nil { return *m.RequiredDefaultedBool } return Default_Message_RequiredDefaultedBool } func (m *Message) GetRequiredDefaultedInt32() int32 { if m != nil && m.RequiredDefaultedInt32 != nil { return *m.RequiredDefaultedInt32 } return Default_Message_RequiredDefaultedInt32 } func (m *Message) GetRequiredDefaultedSint32() int32 { if m != nil && m.RequiredDefaultedSint32 != nil { return *m.RequiredDefaultedSint32 } return Default_Message_RequiredDefaultedSint32 } func (m *Message) GetRequiredDefaultedUint32() uint32 { if m != nil && m.RequiredDefaultedUint32 != nil { return *m.RequiredDefaultedUint32 } return Default_Message_RequiredDefaultedUint32 } func (m *Message) GetRequiredDefaultedInt64() int64 { if m != nil && m.RequiredDefaultedInt64 != nil { return *m.RequiredDefaultedInt64 } return Default_Message_RequiredDefaultedInt64 } func (m *Message) GetRequiredDefaultedSint64() int64 { if m != nil && m.RequiredDefaultedSint64 != nil { return *m.RequiredDefaultedSint64 } return Default_Message_RequiredDefaultedSint64 } func (m *Message) GetRequiredDefaultedUint64() uint64 { if m != nil && m.RequiredDefaultedUint64 != nil { return *m.RequiredDefaultedUint64 } return Default_Message_RequiredDefaultedUint64 } func (m *Message) GetRequiredDefaultedFixed32() uint32 { if m != nil && m.RequiredDefaultedFixed32 != nil { return *m.RequiredDefaultedFixed32 } return Default_Message_RequiredDefaultedFixed32 } func (m *Message) GetRequiredDefaultedSfixed32() int32 { if m != nil && m.RequiredDefaultedSfixed32 != nil { return *m.RequiredDefaultedSfixed32 } return Default_Message_RequiredDefaultedSfixed32 } func (m *Message) GetRequiredDefaultedFloat() float32 { if m != nil && m.RequiredDefaultedFloat != nil { return *m.RequiredDefaultedFloat } return Default_Message_RequiredDefaultedFloat } func (m *Message) GetRequiredDefaultedFixed64() uint64 { if m != nil && m.RequiredDefaultedFixed64 != nil { return *m.RequiredDefaultedFixed64 } return Default_Message_RequiredDefaultedFixed64 } func (m *Message) GetRequiredDefaultedSfixed64() int64 { if m != nil && m.RequiredDefaultedSfixed64 != nil { return *m.RequiredDefaultedSfixed64 } return Default_Message_RequiredDefaultedSfixed64 } func (m *Message) GetRequiredDefaultedDouble() float64 { if m != nil && m.RequiredDefaultedDouble != nil { return *m.RequiredDefaultedDouble } return Default_Message_RequiredDefaultedDouble } func (m *Message) GetRequiredDefaultedString() string { if m != nil && m.RequiredDefaultedString != nil { return *m.RequiredDefaultedString } return Default_Message_RequiredDefaultedString } func (m *Message) GetRequiredDefaultedBytes() []byte { if m != nil && m.RequiredDefaultedBytes != nil { return m.RequiredDefaultedBytes } return append([]byte(nil), Default_Message_RequiredDefaultedBytes...) } func (m *Message) GetRequiredDefaultedChildEnum() Message_ChildEnum { if m != nil && m.RequiredDefaultedChildEnum != nil { return *m.RequiredDefaultedChildEnum } return Default_Message_RequiredDefaultedChildEnum } func (m *Message) GetRequiredDefaultedSiblingEnum() SiblingEnum { if m != nil && m.RequiredDefaultedSiblingEnum != nil { return *m.RequiredDefaultedSiblingEnum } return Default_Message_RequiredDefaultedSiblingEnum } func (m *Message) GetRepeatedBool() []bool { if m != nil { return m.RepeatedBool } return nil } func (m *Message) GetRepeatedInt32() []int32 { if m != nil { return m.RepeatedInt32 } return nil } func (m *Message) GetRepeatedSint32() []int32 { if m != nil { return m.RepeatedSint32 } return nil } func (m *Message) GetRepeatedUint32() []uint32 { if m != nil { return m.RepeatedUint32 } return nil } func (m *Message) GetRepeatedInt64() []int64 { if m != nil { return m.RepeatedInt64 } return nil } func (m *Message) GetRepeatedSint64() []int64 { if m != nil { return m.RepeatedSint64 } return nil } func (m *Message) GetRepeatedUint64() []uint64 { if m != nil { return m.RepeatedUint64 } return nil } func (m *Message) GetRepeatedFixed32() []uint32 { if m != nil { return m.RepeatedFixed32 } return nil } func (m *Message) GetRepeatedSfixed32() []int32 { if m != nil { return m.RepeatedSfixed32 } return nil } func (m *Message) GetRepeatedFloat() []float32 { if m != nil { return m.RepeatedFloat } return nil } func (m *Message) GetRepeatedFixed64() []uint64 { if m != nil { return m.RepeatedFixed64 } return nil } func (m *Message) GetRepeatedSfixed64() []int64 { if m != nil { return m.RepeatedSfixed64 } return nil } func (m *Message) GetRepeatedDouble() []float64 { if m != nil { return m.RepeatedDouble } return nil } func (m *Message) GetRepeatedString() []string { if m != nil { return m.RepeatedString } return nil } func (m *Message) GetRepeatedBytes() [][]byte { if m != nil { return m.RepeatedBytes } return nil } func (m *Message) GetRepeatedChildEnum() []Message_ChildEnum { if m != nil { return m.RepeatedChildEnum } return nil } func (m *Message) GetRepeatedChildMessage() []*Message_ChildMessage { if m != nil { return m.RepeatedChildMessage } return nil } func (m *Message) GetRepeatedNamedGroup() []*Message_NamedGroup { if m != nil { return m.RepeatedNamedGroup } return nil } func (m *Message) GetRepeatedSiblingEnum() []SiblingEnum { if m != nil { return m.RepeatedSiblingEnum } return nil } func (m *Message) GetRepeatedSiblingMessage() []*SiblingMessage { if m != nil { return m.RepeatedSiblingMessage } return nil } func (m *Message) GetRepeatedgroup() []*Message_RepeatedGroup { if m != nil { return m.Repeatedgroup } return nil } func (m *Message) GetMapBoolBool() map[bool]bool { if m != nil { return m.MapBoolBool } return nil } func (m *Message) GetMapBoolInt32() map[bool]int32 { if m != nil { return m.MapBoolInt32 } return nil } func (m *Message) GetMapBoolSint32() map[bool]int32 { if m != nil { return m.MapBoolSint32 } return nil } func (m *Message) GetMapBoolUint32() map[bool]uint32 { if m != nil { return m.MapBoolUint32 } return nil } func (m *Message) GetMapBoolInt64() map[bool]int64 { if m != nil { return m.MapBoolInt64 } return nil } func (m *Message) GetMapBoolSint64() map[bool]int64 { if m != nil { return m.MapBoolSint64 } return nil } func (m *Message) GetMapBoolUint64() map[bool]uint64 { if m != nil { return m.MapBoolUint64 } return nil } func (m *Message) GetMapBoolFixed32() map[bool]uint32 { if m != nil { return m.MapBoolFixed32 } return nil } func (m *Message) GetMapBoolSfixed32() map[bool]int32 { if m != nil { return m.MapBoolSfixed32 } return nil } func (m *Message) GetMapBoolFloat() map[bool]float32 { if m != nil { return m.MapBoolFloat } return nil } func (m *Message) GetMapBoolFixed64() map[bool]uint64 { if m != nil { return m.MapBoolFixed64 } return nil } func (m *Message) GetMapBoolSfixed64() map[bool]int64 { if m != nil { return m.MapBoolSfixed64 } return nil } func (m *Message) GetMapBoolDouble() map[bool]float64 { if m != nil { return m.MapBoolDouble } return nil } func (m *Message) GetMapBoolString() map[bool]string { if m != nil { return m.MapBoolString } return nil } func (m *Message) GetMapBoolBytes() map[bool][]byte { if m != nil { return m.MapBoolBytes } return nil } func (m *Message) GetMapBoolChildEnum() map[bool]Message_ChildEnum { if m != nil { return m.MapBoolChildEnum } return nil } func (m *Message) GetMapBoolChildMessage() map[bool]*Message_ChildMessage { if m != nil { return m.MapBoolChildMessage } return nil } func (m *Message) GetMapBoolNamedGroup() map[bool]*Message_NamedGroup { if m != nil { return m.MapBoolNamedGroup } return nil } func (m *Message) GetMapBoolSiblingEnum() map[bool]SiblingEnum { if m != nil { return m.MapBoolSiblingEnum } return nil } func (m *Message) GetMapBoolSiblingMessage() map[bool]*SiblingMessage { if m != nil { return m.MapBoolSiblingMessage } return nil } func (m *Message) GetMapInt32Bool() map[int32]bool { if m != nil { return m.MapInt32Bool } return nil } func (m *Message) GetMapSint32Bool() map[int32]bool { if m != nil { return m.MapSint32Bool } return nil } func (m *Message) GetMapUint32Bool() map[uint32]bool { if m != nil { return m.MapUint32Bool } return nil } func (m *Message) GetMapInt64Bool() map[int64]bool { if m != nil { return m.MapInt64Bool } return nil } func (m *Message) GetMapSint64Bool() map[int64]bool { if m != nil { return m.MapSint64Bool } return nil } func (m *Message) GetMapUint64Bool() map[uint64]bool { if m != nil { return m.MapUint64Bool } return nil } func (m *Message) GetMapFixed32Bool() map[uint32]bool { if m != nil { return m.MapFixed32Bool } return nil } func (m *Message) GetMapStringBool() map[string]bool { if m != nil { return m.MapStringBool } return nil } type isMessage_OneofUnion interface { isMessage_OneofUnion() } type Message_OneofBool struct { OneofBool bool `protobuf:"varint,700,opt,name=oneof_bool,json=oneofBool,oneof"` } type Message_OneofInt32 struct { OneofInt32 int32 `protobuf:"varint,701,opt,name=oneof_int32,json=oneofInt32,oneof"` } type Message_OneofSint32 struct { OneofSint32 int32 `protobuf:"zigzag32,702,opt,name=oneof_sint32,json=oneofSint32,oneof"` } type Message_OneofUint32 struct { OneofUint32 uint32 `protobuf:"varint,703,opt,name=oneof_uint32,json=oneofUint32,oneof"` } type Message_OneofInt64 struct { OneofInt64 int64 `protobuf:"varint,704,opt,name=oneof_int64,json=oneofInt64,oneof"` } type Message_OneofSint64 struct { OneofSint64 int64 `protobuf:"zigzag64,705,opt,name=oneof_sint64,json=oneofSint64,oneof"` } type Message_OneofUint64 struct { OneofUint64 uint64 `protobuf:"varint,706,opt,name=oneof_uint64,json=oneofUint64,oneof"` } type Message_OneofFixed32 struct { OneofFixed32 uint32 `protobuf:"fixed32,707,opt,name=oneof_fixed32,json=oneofFixed32,oneof"` } type Message_OneofSfixed32 struct { OneofSfixed32 int32 `protobuf:"fixed32,708,opt,name=oneof_sfixed32,json=oneofSfixed32,oneof"` } type Message_OneofFloat struct { OneofFloat float32 `protobuf:"fixed32,709,opt,name=oneof_float,json=oneofFloat,oneof"` } type Message_OneofFixed64 struct { OneofFixed64 uint64 `protobuf:"fixed64,710,opt,name=oneof_fixed64,json=oneofFixed64,oneof"` } type Message_OneofSfixed64 struct { OneofSfixed64 int64 `protobuf:"fixed64,711,opt,name=oneof_sfixed64,json=oneofSfixed64,oneof"` } type Message_OneofDouble struct { OneofDouble float64 `protobuf:"fixed64,712,opt,name=oneof_double,json=oneofDouble,oneof"` } type Message_OneofString struct { OneofString string `protobuf:"bytes,713,opt,name=oneof_string,json=oneofString,oneof"` } type Message_OneofBytes struct { OneofBytes []byte `protobuf:"bytes,714,opt,name=oneof_bytes,json=oneofBytes,oneof"` } type Message_OneofChildEnum struct { OneofChildEnum Message_ChildEnum `protobuf:"varint,715,opt,name=oneof_child_enum,json=oneofChildEnum,enum=google.golang.org.proto2_20180814.Message_ChildEnum,oneof"` } type Message_OneofChildMessage struct { OneofChildMessage *Message_ChildMessage `protobuf:"bytes,716,opt,name=oneof_child_message,json=oneofChildMessage,oneof"` } type Message_OneofNamedGroup struct { OneofNamedGroup *Message_NamedGroup `protobuf:"bytes,717,opt,name=oneof_named_group,json=oneofNamedGroup,oneof"` } type Message_OneofSiblingEnum struct { OneofSiblingEnum SiblingEnum `protobuf:"varint,718,opt,name=oneof_sibling_enum,json=oneofSiblingEnum,enum=google.golang.org.proto2_20180814.SiblingEnum,oneof"` } type Message_OneofSiblingMessage struct { OneofSiblingMessage *SiblingMessage `protobuf:"bytes,719,opt,name=oneof_sibling_message,json=oneofSiblingMessage,oneof"` } type Message_Oneofgroup struct { Oneofgroup *Message_OneofGroup `protobuf:"group,720,opt,name=OneofGroup,json=oneofgroup,oneof"` } type Message_OneofString1 struct { OneofString1 string `protobuf:"bytes,721,opt,name=oneof_string1,json=oneofString1,oneof"` } type Message_OneofString2 struct { OneofString2 string `protobuf:"bytes,722,opt,name=oneof_string2,json=oneofString2,oneof"` } type Message_OneofString3 struct { OneofString3 string `protobuf:"bytes,723,opt,name=oneof_string3,json=oneofString3,oneof"` } func (*Message_OneofBool) isMessage_OneofUnion() {} func (*Message_OneofInt32) isMessage_OneofUnion() {} func (*Message_OneofSint32) isMessage_OneofUnion() {} func (*Message_OneofUint32) isMessage_OneofUnion() {} func (*Message_OneofInt64) isMessage_OneofUnion() {} func (*Message_OneofSint64) isMessage_OneofUnion() {} func (*Message_OneofUint64) isMessage_OneofUnion() {} func (*Message_OneofFixed32) isMessage_OneofUnion() {} func (*Message_OneofSfixed32) isMessage_OneofUnion() {} func (*Message_OneofFloat) isMessage_OneofUnion() {} func (*Message_OneofFixed64) isMessage_OneofUnion() {} func (*Message_OneofSfixed64) isMessage_OneofUnion() {} func (*Message_OneofDouble) isMessage_OneofUnion() {} func (*Message_OneofString) isMessage_OneofUnion() {} func (*Message_OneofBytes) isMessage_OneofUnion() {} func (*Message_OneofChildEnum) isMessage_OneofUnion() {} func (*Message_OneofChildMessage) isMessage_OneofUnion() {} func (*Message_OneofNamedGroup) isMessage_OneofUnion() {} func (*Message_OneofSiblingEnum) isMessage_OneofUnion() {} func (*Message_OneofSiblingMessage) isMessage_OneofUnion() {} func (*Message_Oneofgroup) isMessage_OneofUnion() {} func (*Message_OneofString1) isMessage_OneofUnion() {} func (*Message_OneofString2) isMessage_OneofUnion() {} func (*Message_OneofString3) isMessage_OneofUnion() {} func (m *Message) GetOneofUnion() isMessage_OneofUnion { if m != nil { return m.OneofUnion } return nil } func (m *Message) GetOneofBool() bool { if x, ok := m.GetOneofUnion().(*Message_OneofBool); ok { return x.OneofBool } return false } func (m *Message) GetOneofInt32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofInt32); ok { return x.OneofInt32 } return 0 } func (m *Message) GetOneofSint32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSint32); ok { return x.OneofSint32 } return 0 } func (m *Message) GetOneofUint32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofUint32); ok { return x.OneofUint32 } return 0 } func (m *Message) GetOneofInt64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofInt64); ok { return x.OneofInt64 } return 0 } func (m *Message) GetOneofSint64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSint64); ok { return x.OneofSint64 } return 0 } func (m *Message) GetOneofUint64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofUint64); ok { return x.OneofUint64 } return 0 } func (m *Message) GetOneofFixed32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed32); ok { return x.OneofFixed32 } return 0 } func (m *Message) GetOneofSfixed32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed32); ok { return x.OneofSfixed32 } return 0 } func (m *Message) GetOneofFloat() float32 { if x, ok := m.GetOneofUnion().(*Message_OneofFloat); ok { return x.OneofFloat } return 0 } func (m *Message) GetOneofFixed64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed64); ok { return x.OneofFixed64 } return 0 } func (m *Message) GetOneofSfixed64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed64); ok { return x.OneofSfixed64 } return 0 } func (m *Message) GetOneofDouble() float64 { if x, ok := m.GetOneofUnion().(*Message_OneofDouble); ok { return x.OneofDouble } return 0 } func (m *Message) GetOneofString() string { if x, ok := m.GetOneofUnion().(*Message_OneofString); ok { return x.OneofString } return "" } func (m *Message) GetOneofBytes() []byte { if x, ok := m.GetOneofUnion().(*Message_OneofBytes); ok { return x.OneofBytes } return nil } func (m *Message) GetOneofChildEnum() Message_ChildEnum { if x, ok := m.GetOneofUnion().(*Message_OneofChildEnum); ok { return x.OneofChildEnum } return Message_ALPHA } func (m *Message) GetOneofChildMessage() *Message_ChildMessage { if x, ok := m.GetOneofUnion().(*Message_OneofChildMessage); ok { return x.OneofChildMessage } return nil } func (m *Message) GetOneofNamedGroup() *Message_NamedGroup { if x, ok := m.GetOneofUnion().(*Message_OneofNamedGroup); ok { return x.OneofNamedGroup } return nil } func (m *Message) GetOneofSiblingEnum() SiblingEnum { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingEnum); ok { return x.OneofSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetOneofSiblingMessage() *SiblingMessage { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingMessage); ok { return x.OneofSiblingMessage } return nil } func (m *Message) GetOneofgroup() *Message_OneofGroup { if x, ok := m.GetOneofUnion().(*Message_Oneofgroup); ok { return x.Oneofgroup } return nil } func (m *Message) GetOneofString1() string { if x, ok := m.GetOneofUnion().(*Message_OneofString1); ok { return x.OneofString1 } return "" } func (m *Message) GetOneofString2() string { if x, ok := m.GetOneofUnion().(*Message_OneofString2); ok { return x.OneofString2 } return "" } func (m *Message) GetOneofString3() string { if x, ok := m.GetOneofUnion().(*Message_OneofString3); ok { return x.OneofString3 } return "" } type isMessage_OneofDefaultedUnion interface { isMessage_OneofDefaultedUnion() } type Message_OneofDefaultedBool struct { OneofDefaultedBool bool `protobuf:"varint,800,opt,name=oneof_defaulted_bool,json=oneofDefaultedBool,oneof,def=1"` } type Message_OneofDefaultedInt32 struct { OneofDefaultedInt32 int32 `protobuf:"varint,801,opt,name=oneof_defaulted_int32,json=oneofDefaultedInt32,oneof,def=-12345"` } type Message_OneofDefaultedSint32 struct { OneofDefaultedSint32 int32 `protobuf:"zigzag32,802,opt,name=oneof_defaulted_sint32,json=oneofDefaultedSint32,oneof,def=-3200"` } type Message_OneofDefaultedUint32 struct { OneofDefaultedUint32 uint32 `protobuf:"varint,803,opt,name=oneof_defaulted_uint32,json=oneofDefaultedUint32,oneof,def=3200"` } type Message_OneofDefaultedInt64 struct { OneofDefaultedInt64 int64 `protobuf:"varint,804,opt,name=oneof_defaulted_int64,json=oneofDefaultedInt64,oneof,def=-123456789"` } type Message_OneofDefaultedSint64 struct { OneofDefaultedSint64 int64 `protobuf:"zigzag64,805,opt,name=oneof_defaulted_sint64,json=oneofDefaultedSint64,oneof,def=-6400"` } type Message_OneofDefaultedUint64 struct { OneofDefaultedUint64 uint64 `protobuf:"varint,806,opt,name=oneof_defaulted_uint64,json=oneofDefaultedUint64,oneof,def=6400"` } type Message_OneofDefaultedFixed32 struct { OneofDefaultedFixed32 uint32 `protobuf:"fixed32,807,opt,name=oneof_defaulted_fixed32,json=oneofDefaultedFixed32,oneof,def=320000"` } type Message_OneofDefaultedSfixed32 struct { OneofDefaultedSfixed32 int32 `protobuf:"fixed32,808,opt,name=oneof_defaulted_sfixed32,json=oneofDefaultedSfixed32,oneof,def=-320000"` } type Message_OneofDefaultedFloat struct { OneofDefaultedFloat float32 `protobuf:"fixed32,809,opt,name=oneof_defaulted_float,json=oneofDefaultedFloat,oneof,def=3.14159"` } type Message_OneofDefaultedFixed64 struct { OneofDefaultedFixed64 uint64 `protobuf:"fixed64,810,opt,name=oneof_defaulted_fixed64,json=oneofDefaultedFixed64,oneof,def=640000"` } type Message_OneofDefaultedSfixed64 struct { OneofDefaultedSfixed64 int64 `protobuf:"fixed64,811,opt,name=oneof_defaulted_sfixed64,json=oneofDefaultedSfixed64,oneof,def=-640000"` } type Message_OneofDefaultedDouble struct { OneofDefaultedDouble float64 `protobuf:"fixed64,812,opt,name=oneof_defaulted_double,json=oneofDefaultedDouble,oneof,def=3.14159265359"` } type Message_OneofDefaultedString struct { OneofDefaultedString string `protobuf:"bytes,813,opt,name=oneof_defaulted_string,json=oneofDefaultedString,oneof,def=hello, \"world!\"\n"` } type Message_OneofDefaultedBytes struct { OneofDefaultedBytes []byte `protobuf:"bytes,814,opt,name=oneof_defaulted_bytes,json=oneofDefaultedBytes,oneof,def=dead\\336\\255\\276\\357beef"` } type Message_OneofDefaultedChildEnum struct { OneofDefaultedChildEnum Message_ChildEnum `protobuf:"varint,815,opt,name=oneof_defaulted_child_enum,json=oneofDefaultedChildEnum,enum=google.golang.org.proto2_20180814.Message_ChildEnum,oneof,def=0"` } type Message_OneofDefaultedSiblingEnum struct { OneofDefaultedSiblingEnum SiblingEnum `protobuf:"varint,816,opt,name=oneof_defaulted_sibling_enum,json=oneofDefaultedSiblingEnum,enum=google.golang.org.proto2_20180814.SiblingEnum,oneof,def=0"` } func (*Message_OneofDefaultedBool) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedInt32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSint32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedUint32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedInt64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSint64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedUint64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedFixed32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSfixed32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedFloat) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedFixed64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSfixed64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedDouble) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedString) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedBytes) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedChildEnum) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSiblingEnum) isMessage_OneofDefaultedUnion() {} func (m *Message) GetOneofDefaultedUnion() isMessage_OneofDefaultedUnion { if m != nil { return m.OneofDefaultedUnion } return nil } func (m *Message) GetOneofDefaultedBool() bool { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedBool); ok { return x.OneofDefaultedBool } return Default_Message_OneofDefaultedBool } func (m *Message) GetOneofDefaultedInt32() int32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedInt32); ok { return x.OneofDefaultedInt32 } return Default_Message_OneofDefaultedInt32 } func (m *Message) GetOneofDefaultedSint32() int32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSint32); ok { return x.OneofDefaultedSint32 } return Default_Message_OneofDefaultedSint32 } func (m *Message) GetOneofDefaultedUint32() uint32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedUint32); ok { return x.OneofDefaultedUint32 } return Default_Message_OneofDefaultedUint32 } func (m *Message) GetOneofDefaultedInt64() int64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedInt64); ok { return x.OneofDefaultedInt64 } return Default_Message_OneofDefaultedInt64 } func (m *Message) GetOneofDefaultedSint64() int64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSint64); ok { return x.OneofDefaultedSint64 } return Default_Message_OneofDefaultedSint64 } func (m *Message) GetOneofDefaultedUint64() uint64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedUint64); ok { return x.OneofDefaultedUint64 } return Default_Message_OneofDefaultedUint64 } func (m *Message) GetOneofDefaultedFixed32() uint32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedFixed32); ok { return x.OneofDefaultedFixed32 } return Default_Message_OneofDefaultedFixed32 } func (m *Message) GetOneofDefaultedSfixed32() int32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSfixed32); ok { return x.OneofDefaultedSfixed32 } return Default_Message_OneofDefaultedSfixed32 } func (m *Message) GetOneofDefaultedFloat() float32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedFloat); ok { return x.OneofDefaultedFloat } return Default_Message_OneofDefaultedFloat } func (m *Message) GetOneofDefaultedFixed64() uint64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedFixed64); ok { return x.OneofDefaultedFixed64 } return Default_Message_OneofDefaultedFixed64 } func (m *Message) GetOneofDefaultedSfixed64() int64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSfixed64); ok { return x.OneofDefaultedSfixed64 } return Default_Message_OneofDefaultedSfixed64 } func (m *Message) GetOneofDefaultedDouble() float64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedDouble); ok { return x.OneofDefaultedDouble } return Default_Message_OneofDefaultedDouble } func (m *Message) GetOneofDefaultedString() string { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedString); ok { return x.OneofDefaultedString } return Default_Message_OneofDefaultedString } func (m *Message) GetOneofDefaultedBytes() []byte { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedBytes); ok { return x.OneofDefaultedBytes } return append([]byte(nil), Default_Message_OneofDefaultedBytes...) } func (m *Message) GetOneofDefaultedChildEnum() Message_ChildEnum { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedChildEnum); ok { return x.OneofDefaultedChildEnum } return Default_Message_OneofDefaultedChildEnum } func (m *Message) GetOneofDefaultedSiblingEnum() SiblingEnum { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSiblingEnum); ok { return x.OneofDefaultedSiblingEnum } return Default_Message_OneofDefaultedSiblingEnum } // XXX_OneofFuncs is for the internal use of the proto package. func (*Message) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { return _Message_OneofMarshaler, _Message_OneofUnmarshaler, _Message_OneofSizer, []interface{}{ (*Message_OneofBool)(nil), (*Message_OneofInt32)(nil), (*Message_OneofSint32)(nil), (*Message_OneofUint32)(nil), (*Message_OneofInt64)(nil), (*Message_OneofSint64)(nil), (*Message_OneofUint64)(nil), (*Message_OneofFixed32)(nil), (*Message_OneofSfixed32)(nil), (*Message_OneofFloat)(nil), (*Message_OneofFixed64)(nil), (*Message_OneofSfixed64)(nil), (*Message_OneofDouble)(nil), (*Message_OneofString)(nil), (*Message_OneofBytes)(nil), (*Message_OneofChildEnum)(nil), (*Message_OneofChildMessage)(nil), (*Message_OneofNamedGroup)(nil), (*Message_OneofSiblingEnum)(nil), (*Message_OneofSiblingMessage)(nil), (*Message_Oneofgroup)(nil), (*Message_OneofString1)(nil), (*Message_OneofString2)(nil), (*Message_OneofString3)(nil), (*Message_OneofDefaultedBool)(nil), (*Message_OneofDefaultedInt32)(nil), (*Message_OneofDefaultedSint32)(nil), (*Message_OneofDefaultedUint32)(nil), (*Message_OneofDefaultedInt64)(nil), (*Message_OneofDefaultedSint64)(nil), (*Message_OneofDefaultedUint64)(nil), (*Message_OneofDefaultedFixed32)(nil), (*Message_OneofDefaultedSfixed32)(nil), (*Message_OneofDefaultedFloat)(nil), (*Message_OneofDefaultedFixed64)(nil), (*Message_OneofDefaultedSfixed64)(nil), (*Message_OneofDefaultedDouble)(nil), (*Message_OneofDefaultedString)(nil), (*Message_OneofDefaultedBytes)(nil), (*Message_OneofDefaultedChildEnum)(nil), (*Message_OneofDefaultedSiblingEnum)(nil), } } func _Message_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { m := msg.(*Message) // oneof_union switch x := m.OneofUnion.(type) { case *Message_OneofBool: t := uint64(0) if x.OneofBool { t = 1 } b.EncodeVarint(700<<3 | proto.WireVarint) b.EncodeVarint(t) case *Message_OneofInt32: b.EncodeVarint(701<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofInt32)) case *Message_OneofSint32: b.EncodeVarint(702<<3 | proto.WireVarint) b.EncodeZigzag32(uint64(x.OneofSint32)) case *Message_OneofUint32: b.EncodeVarint(703<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofUint32)) case *Message_OneofInt64: b.EncodeVarint(704<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofInt64)) case *Message_OneofSint64: b.EncodeVarint(705<<3 | proto.WireVarint) b.EncodeZigzag64(uint64(x.OneofSint64)) case *Message_OneofUint64: b.EncodeVarint(706<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofUint64)) case *Message_OneofFixed32: b.EncodeVarint(707<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofFixed32)) case *Message_OneofSfixed32: b.EncodeVarint(708<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofSfixed32)) case *Message_OneofFloat: b.EncodeVarint(709<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(math.Float32bits(x.OneofFloat))) case *Message_OneofFixed64: b.EncodeVarint(710<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofFixed64)) case *Message_OneofSfixed64: b.EncodeVarint(711<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofSfixed64)) case *Message_OneofDouble: b.EncodeVarint(712<<3 | proto.WireFixed64) b.EncodeFixed64(math.Float64bits(x.OneofDouble)) case *Message_OneofString: b.EncodeVarint(713<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString) case *Message_OneofBytes: b.EncodeVarint(714<<3 | proto.WireBytes) b.EncodeRawBytes(x.OneofBytes) case *Message_OneofChildEnum: b.EncodeVarint(715<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofChildEnum)) case *Message_OneofChildMessage: b.EncodeVarint(716<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofChildMessage); err != nil { return err } case *Message_OneofNamedGroup: b.EncodeVarint(717<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofNamedGroup); err != nil { return err } case *Message_OneofSiblingEnum: b.EncodeVarint(718<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofSiblingEnum)) case *Message_OneofSiblingMessage: b.EncodeVarint(719<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofSiblingMessage); err != nil { return err } case *Message_Oneofgroup: b.EncodeVarint(720<<3 | proto.WireStartGroup) if err := b.Marshal(x.Oneofgroup); err != nil { return err } b.EncodeVarint(720<<3 | proto.WireEndGroup) case *Message_OneofString1: b.EncodeVarint(721<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString1) case *Message_OneofString2: b.EncodeVarint(722<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString2) case *Message_OneofString3: b.EncodeVarint(723<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString3) case nil: default: return fmt.Errorf("Message.OneofUnion has unexpected type %T", x) } // oneof_defaulted_union switch x := m.OneofDefaultedUnion.(type) { case *Message_OneofDefaultedBool: t := uint64(0) if x.OneofDefaultedBool { t = 1 } b.EncodeVarint(800<<3 | proto.WireVarint) b.EncodeVarint(t) case *Message_OneofDefaultedInt32: b.EncodeVarint(801<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedInt32)) case *Message_OneofDefaultedSint32: b.EncodeVarint(802<<3 | proto.WireVarint) b.EncodeZigzag32(uint64(x.OneofDefaultedSint32)) case *Message_OneofDefaultedUint32: b.EncodeVarint(803<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedUint32)) case *Message_OneofDefaultedInt64: b.EncodeVarint(804<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedInt64)) case *Message_OneofDefaultedSint64: b.EncodeVarint(805<<3 | proto.WireVarint) b.EncodeZigzag64(uint64(x.OneofDefaultedSint64)) case *Message_OneofDefaultedUint64: b.EncodeVarint(806<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedUint64)) case *Message_OneofDefaultedFixed32: b.EncodeVarint(807<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofDefaultedFixed32)) case *Message_OneofDefaultedSfixed32: b.EncodeVarint(808<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofDefaultedSfixed32)) case *Message_OneofDefaultedFloat: b.EncodeVarint(809<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(math.Float32bits(x.OneofDefaultedFloat))) case *Message_OneofDefaultedFixed64: b.EncodeVarint(810<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofDefaultedFixed64)) case *Message_OneofDefaultedSfixed64: b.EncodeVarint(811<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofDefaultedSfixed64)) case *Message_OneofDefaultedDouble: b.EncodeVarint(812<<3 | proto.WireFixed64) b.EncodeFixed64(math.Float64bits(x.OneofDefaultedDouble)) case *Message_OneofDefaultedString: b.EncodeVarint(813<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofDefaultedString) case *Message_OneofDefaultedBytes: b.EncodeVarint(814<<3 | proto.WireBytes) b.EncodeRawBytes(x.OneofDefaultedBytes) case *Message_OneofDefaultedChildEnum: b.EncodeVarint(815<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedChildEnum)) case *Message_OneofDefaultedSiblingEnum: b.EncodeVarint(816<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofDefaultedSiblingEnum)) case nil: default: return fmt.Errorf("Message.OneofDefaultedUnion has unexpected type %T", x) } return nil } func _Message_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { m := msg.(*Message) switch tag { case 700: // oneof_union.oneof_bool if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofBool{x != 0} return true, err case 701: // oneof_union.oneof_int32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofInt32{int32(x)} return true, err case 702: // oneof_union.oneof_sint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag32() m.OneofUnion = &Message_OneofSint32{int32(x)} return true, err case 703: // oneof_union.oneof_uint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofUint32{uint32(x)} return true, err case 704: // oneof_union.oneof_int64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofInt64{int64(x)} return true, err case 705: // oneof_union.oneof_sint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag64() m.OneofUnion = &Message_OneofSint64{int64(x)} return true, err case 706: // oneof_union.oneof_uint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofUint64{x} return true, err case 707: // oneof_union.oneof_fixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofFixed32{uint32(x)} return true, err case 708: // oneof_union.oneof_sfixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofSfixed32{int32(x)} return true, err case 709: // oneof_union.oneof_float if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofFloat{math.Float32frombits(uint32(x))} return true, err case 710: // oneof_union.oneof_fixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofFixed64{x} return true, err case 711: // oneof_union.oneof_sfixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofSfixed64{int64(x)} return true, err case 712: // oneof_union.oneof_double if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofDouble{math.Float64frombits(x)} return true, err case 713: // oneof_union.oneof_string if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString{x} return true, err case 714: // oneof_union.oneof_bytes if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeRawBytes(true) m.OneofUnion = &Message_OneofBytes{x} return true, err case 715: // oneof_union.oneof_child_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofChildEnum{Message_ChildEnum(x)} return true, err case 716: // oneof_union.oneof_child_message if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(Message_ChildMessage) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofChildMessage{msg} return true, err case 717: // oneof_union.oneof_named_group if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(Message_NamedGroup) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofNamedGroup{msg} return true, err case 718: // oneof_union.oneof_sibling_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofSiblingEnum{SiblingEnum(x)} return true, err case 719: // oneof_union.oneof_sibling_message if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(SiblingMessage) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofSiblingMessage{msg} return true, err case 720: // oneof_union.oneofgroup if wire != proto.WireStartGroup { return true, proto.ErrInternalBadWireType } msg := new(Message_OneofGroup) err := b.DecodeGroup(msg) m.OneofUnion = &Message_Oneofgroup{msg} return true, err case 721: // oneof_union.oneof_string1 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString1{x} return true, err case 722: // oneof_union.oneof_string2 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString2{x} return true, err case 723: // oneof_union.oneof_string3 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString3{x} return true, err case 800: // oneof_defaulted_union.oneof_defaulted_bool if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedBool{x != 0} return true, err case 801: // oneof_defaulted_union.oneof_defaulted_int32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedInt32{int32(x)} return true, err case 802: // oneof_defaulted_union.oneof_defaulted_sint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag32() m.OneofDefaultedUnion = &Message_OneofDefaultedSint32{int32(x)} return true, err case 803: // oneof_defaulted_union.oneof_defaulted_uint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedUint32{uint32(x)} return true, err case 804: // oneof_defaulted_union.oneof_defaulted_int64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedInt64{int64(x)} return true, err case 805: // oneof_defaulted_union.oneof_defaulted_sint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag64() m.OneofDefaultedUnion = &Message_OneofDefaultedSint64{int64(x)} return true, err case 806: // oneof_defaulted_union.oneof_defaulted_uint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedUint64{x} return true, err case 807: // oneof_defaulted_union.oneof_defaulted_fixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofDefaultedUnion = &Message_OneofDefaultedFixed32{uint32(x)} return true, err case 808: // oneof_defaulted_union.oneof_defaulted_sfixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofDefaultedUnion = &Message_OneofDefaultedSfixed32{int32(x)} return true, err case 809: // oneof_defaulted_union.oneof_defaulted_float if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofDefaultedUnion = &Message_OneofDefaultedFloat{math.Float32frombits(uint32(x))} return true, err case 810: // oneof_defaulted_union.oneof_defaulted_fixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofDefaultedUnion = &Message_OneofDefaultedFixed64{x} return true, err case 811: // oneof_defaulted_union.oneof_defaulted_sfixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofDefaultedUnion = &Message_OneofDefaultedSfixed64{int64(x)} return true, err case 812: // oneof_defaulted_union.oneof_defaulted_double if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofDefaultedUnion = &Message_OneofDefaultedDouble{math.Float64frombits(x)} return true, err case 813: // oneof_defaulted_union.oneof_defaulted_string if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofDefaultedUnion = &Message_OneofDefaultedString{x} return true, err case 814: // oneof_defaulted_union.oneof_defaulted_bytes if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeRawBytes(true) m.OneofDefaultedUnion = &Message_OneofDefaultedBytes{x} return true, err case 815: // oneof_defaulted_union.oneof_defaulted_child_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedChildEnum{Message_ChildEnum(x)} return true, err case 816: // oneof_defaulted_union.oneof_defaulted_sibling_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofDefaultedUnion = &Message_OneofDefaultedSiblingEnum{SiblingEnum(x)} return true, err default: return false, nil } } func _Message_OneofSizer(msg proto.Message) (n int) { m := msg.(*Message) // oneof_union switch x := m.OneofUnion.(type) { case *Message_OneofBool: n += 2 // tag and wire n += 1 case *Message_OneofInt32: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofInt32)) case *Message_OneofSint32: n += 2 // tag and wire n += proto.SizeVarint(uint64((uint32(x.OneofSint32) << 1) ^ uint32((int32(x.OneofSint32) >> 31)))) case *Message_OneofUint32: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofUint32)) case *Message_OneofInt64: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofInt64)) case *Message_OneofSint64: n += 2 // tag and wire n += proto.SizeVarint(uint64(uint64(x.OneofSint64<<1) ^ uint64((int64(x.OneofSint64) >> 63)))) case *Message_OneofUint64: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofUint64)) case *Message_OneofFixed32: n += 2 // tag and wire n += 4 case *Message_OneofSfixed32: n += 2 // tag and wire n += 4 case *Message_OneofFloat: n += 2 // tag and wire n += 4 case *Message_OneofFixed64: n += 2 // tag and wire n += 8 case *Message_OneofSfixed64: n += 2 // tag and wire n += 8 case *Message_OneofDouble: n += 2 // tag and wire n += 8 case *Message_OneofString: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofString))) n += len(x.OneofString) case *Message_OneofBytes: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofBytes))) n += len(x.OneofBytes) case *Message_OneofChildEnum: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofChildEnum)) case *Message_OneofChildMessage: s := proto.Size(x.OneofChildMessage) n += 2 // tag and wire n += proto.SizeVarint(uint64(s)) n += s case *Message_OneofNamedGroup: s := proto.Size(x.OneofNamedGroup) n += 2 // tag and wire n += proto.SizeVarint(uint64(s)) n += s case *Message_OneofSiblingEnum: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofSiblingEnum)) case *Message_OneofSiblingMessage: s := proto.Size(x.OneofSiblingMessage) n += 2 // tag and wire n += proto.SizeVarint(uint64(s)) n += s case *Message_Oneofgroup: n += 2 // tag and wire n += proto.Size(x.Oneofgroup) n += 2 // tag and wire case *Message_OneofString1: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofString1))) n += len(x.OneofString1) case *Message_OneofString2: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofString2))) n += len(x.OneofString2) case *Message_OneofString3: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofString3))) n += len(x.OneofString3) case nil: default: panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) } // oneof_defaulted_union switch x := m.OneofDefaultedUnion.(type) { case *Message_OneofDefaultedBool: n += 2 // tag and wire n += 1 case *Message_OneofDefaultedInt32: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofDefaultedInt32)) case *Message_OneofDefaultedSint32: n += 2 // tag and wire n += proto.SizeVarint(uint64((uint32(x.OneofDefaultedSint32) << 1) ^ uint32((int32(x.OneofDefaultedSint32) >> 31)))) case *Message_OneofDefaultedUint32: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofDefaultedUint32)) case *Message_OneofDefaultedInt64: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofDefaultedInt64)) case *Message_OneofDefaultedSint64: n += 2 // tag and wire n += proto.SizeVarint(uint64(uint64(x.OneofDefaultedSint64<<1) ^ uint64((int64(x.OneofDefaultedSint64) >> 63)))) case *Message_OneofDefaultedUint64: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofDefaultedUint64)) case *Message_OneofDefaultedFixed32: n += 2 // tag and wire n += 4 case *Message_OneofDefaultedSfixed32: n += 2 // tag and wire n += 4 case *Message_OneofDefaultedFloat: n += 2 // tag and wire n += 4 case *Message_OneofDefaultedFixed64: n += 2 // tag and wire n += 8 case *Message_OneofDefaultedSfixed64: n += 2 // tag and wire n += 8 case *Message_OneofDefaultedDouble: n += 2 // tag and wire n += 8 case *Message_OneofDefaultedString: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofDefaultedString))) n += len(x.OneofDefaultedString) case *Message_OneofDefaultedBytes: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofDefaultedBytes))) n += len(x.OneofDefaultedBytes) case *Message_OneofDefaultedChildEnum: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofDefaultedChildEnum)) case *Message_OneofDefaultedSiblingEnum: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofDefaultedSiblingEnum)) case nil: default: panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) } return n } var E_Message_ExtensionOptionalBool = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*bool)(nil), Field: 10000, Name: "google.golang.org.proto2_20180814.Message.extension_optional_bool", Tag: "varint,10000,opt,name=extension_optional_bool,json=extensionOptionalBool", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionOptionalInt32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 10001, Name: "google.golang.org.proto2_20180814.Message.extension_optional_int32", Tag: "varint,10001,opt,name=extension_optional_int32,json=extensionOptionalInt32", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionOptionalSint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 10002, Name: "google.golang.org.proto2_20180814.Message.extension_optional_sint32", Tag: "zigzag32,10002,opt,name=extension_optional_sint32,json=extensionOptionalSint32", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionOptionalUint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 10003, Name: "google.golang.org.proto2_20180814.Message.extension_optional_uint32", Tag: "varint,10003,opt,name=extension_optional_uint32,json=extensionOptionalUint32", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionOptionalInt64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 10004, Name: "google.golang.org.proto2_20180814.Message.extension_optional_int64", Tag: "varint,10004,opt,name=extension_optional_int64,json=extensionOptionalInt64", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionOptionalSint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 10005, Name: "google.golang.org.proto2_20180814.Message.extension_optional_sint64", Tag: "zigzag64,10005,opt,name=extension_optional_sint64,json=extensionOptionalSint64", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionOptionalUint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 10006, Name: "google.golang.org.proto2_20180814.Message.extension_optional_uint64", Tag: "varint,10006,opt,name=extension_optional_uint64,json=extensionOptionalUint64", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionOptionalFixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 10007, Name: "google.golang.org.proto2_20180814.Message.extension_optional_fixed32", Tag: "fixed32,10007,opt,name=extension_optional_fixed32,json=extensionOptionalFixed32", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionOptionalSfixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 10008, Name: "google.golang.org.proto2_20180814.Message.extension_optional_sfixed32", Tag: "fixed32,10008,opt,name=extension_optional_sfixed32,json=extensionOptionalSfixed32", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionOptionalFloat = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float32)(nil), Field: 10009, Name: "google.golang.org.proto2_20180814.Message.extension_optional_float", Tag: "fixed32,10009,opt,name=extension_optional_float,json=extensionOptionalFloat", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionOptionalFixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 10010, Name: "google.golang.org.proto2_20180814.Message.extension_optional_fixed64", Tag: "fixed64,10010,opt,name=extension_optional_fixed64,json=extensionOptionalFixed64", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionOptionalSfixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 10011, Name: "google.golang.org.proto2_20180814.Message.extension_optional_sfixed64", Tag: "fixed64,10011,opt,name=extension_optional_sfixed64,json=extensionOptionalSfixed64", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionOptionalDouble = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float64)(nil), Field: 10012, Name: "google.golang.org.proto2_20180814.Message.extension_optional_double", Tag: "fixed64,10012,opt,name=extension_optional_double,json=extensionOptionalDouble", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionOptionalString = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*string)(nil), Field: 10013, Name: "google.golang.org.proto2_20180814.Message.extension_optional_string", Tag: "bytes,10013,opt,name=extension_optional_string,json=extensionOptionalString", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionOptionalBytes = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]byte)(nil), Field: 10014, Name: "google.golang.org.proto2_20180814.Message.extension_optional_bytes", Tag: "bytes,10014,opt,name=extension_optional_bytes,json=extensionOptionalBytes", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionOptionalChildEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ChildEnum)(nil), Field: 10015, Name: "google.golang.org.proto2_20180814.Message.extension_optional_child_enum", Tag: "varint,10015,opt,name=extension_optional_child_enum,json=extensionOptionalChildEnum,enum=google.golang.org.proto2_20180814.Message_ChildEnum", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionOptionalChildMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ChildMessage)(nil), Field: 10016, Name: "google.golang.org.proto2_20180814.Message.extension_optional_child_message", Tag: "bytes,10016,opt,name=extension_optional_child_message,json=extensionOptionalChildMessage", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionOptionalNamedGroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_NamedGroup)(nil), Field: 10017, Name: "google.golang.org.proto2_20180814.Message.extension_optional_named_group", Tag: "bytes,10017,opt,name=extension_optional_named_group,json=extensionOptionalNamedGroup", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionOptionalSiblingEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*SiblingEnum)(nil), Field: 10018, Name: "google.golang.org.proto2_20180814.Message.extension_optional_sibling_enum", Tag: "varint,10018,opt,name=extension_optional_sibling_enum,json=extensionOptionalSiblingEnum,enum=google.golang.org.proto2_20180814.SiblingEnum", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionOptionalSiblingMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*SiblingMessage)(nil), Field: 10019, Name: "google.golang.org.proto2_20180814.Message.extension_optional_sibling_message", Tag: "bytes,10019,opt,name=extension_optional_sibling_message,json=extensionOptionalSiblingMessage", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_Extensionoptionalgroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ExtensionOptionalGroup)(nil), Field: 10020, Name: "google.golang.org.proto2_20180814.Message.extensionoptionalgroup", Tag: "group,10020,opt,name=ExtensionOptionalGroup,json=extensionoptionalgroup", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionDefaultedBool = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*bool)(nil), Field: 20000, Name: "google.golang.org.proto2_20180814.Message.extension_defaulted_bool", Tag: "varint,20000,opt,name=extension_defaulted_bool,json=extensionDefaultedBool,def=1", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionDefaultedInt32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 20001, Name: "google.golang.org.proto2_20180814.Message.extension_defaulted_int32", Tag: "varint,20001,opt,name=extension_defaulted_int32,json=extensionDefaultedInt32,def=-12345", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionDefaultedSint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 20002, Name: "google.golang.org.proto2_20180814.Message.extension_defaulted_sint32", Tag: "zigzag32,20002,opt,name=extension_defaulted_sint32,json=extensionDefaultedSint32,def=-3200", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionDefaultedUint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 20003, Name: "google.golang.org.proto2_20180814.Message.extension_defaulted_uint32", Tag: "varint,20003,opt,name=extension_defaulted_uint32,json=extensionDefaultedUint32,def=3200", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionDefaultedInt64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 20004, Name: "google.golang.org.proto2_20180814.Message.extension_defaulted_int64", Tag: "varint,20004,opt,name=extension_defaulted_int64,json=extensionDefaultedInt64,def=-123456789", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionDefaultedSint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 20005, Name: "google.golang.org.proto2_20180814.Message.extension_defaulted_sint64", Tag: "zigzag64,20005,opt,name=extension_defaulted_sint64,json=extensionDefaultedSint64,def=-6400", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionDefaultedUint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 20006, Name: "google.golang.org.proto2_20180814.Message.extension_defaulted_uint64", Tag: "varint,20006,opt,name=extension_defaulted_uint64,json=extensionDefaultedUint64,def=6400", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionDefaultedFixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 20007, Name: "google.golang.org.proto2_20180814.Message.extension_defaulted_fixed32", Tag: "fixed32,20007,opt,name=extension_defaulted_fixed32,json=extensionDefaultedFixed32,def=320000", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionDefaultedSfixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 20008, Name: "google.golang.org.proto2_20180814.Message.extension_defaulted_sfixed32", Tag: "fixed32,20008,opt,name=extension_defaulted_sfixed32,json=extensionDefaultedSfixed32,def=-320000", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionDefaultedFloat = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float32)(nil), Field: 20009, Name: "google.golang.org.proto2_20180814.Message.extension_defaulted_float", Tag: "fixed32,20009,opt,name=extension_defaulted_float,json=extensionDefaultedFloat,def=3.14159", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionDefaultedFixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 20010, Name: "google.golang.org.proto2_20180814.Message.extension_defaulted_fixed64", Tag: "fixed64,20010,opt,name=extension_defaulted_fixed64,json=extensionDefaultedFixed64,def=640000", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionDefaultedSfixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 20011, Name: "google.golang.org.proto2_20180814.Message.extension_defaulted_sfixed64", Tag: "fixed64,20011,opt,name=extension_defaulted_sfixed64,json=extensionDefaultedSfixed64,def=-640000", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionDefaultedDouble = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float64)(nil), Field: 20012, Name: "google.golang.org.proto2_20180814.Message.extension_defaulted_double", Tag: "fixed64,20012,opt,name=extension_defaulted_double,json=extensionDefaultedDouble,def=3.14159265359", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionDefaultedString = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*string)(nil), Field: 20013, Name: "google.golang.org.proto2_20180814.Message.extension_defaulted_string", Tag: "bytes,20013,opt,name=extension_defaulted_string,json=extensionDefaultedString,def=hello, \"world!\"\n", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionDefaultedBytes = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]byte)(nil), Field: 20014, Name: "google.golang.org.proto2_20180814.Message.extension_defaulted_bytes", Tag: "bytes,20014,opt,name=extension_defaulted_bytes,json=extensionDefaultedBytes,def=dead\\336\\255\\276\\357beef", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionDefaultedChildEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ChildEnum)(nil), Field: 20015, Name: "google.golang.org.proto2_20180814.Message.extension_defaulted_child_enum", Tag: "varint,20015,opt,name=extension_defaulted_child_enum,json=extensionDefaultedChildEnum,enum=google.golang.org.proto2_20180814.Message_ChildEnum,def=0", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionDefaultedSiblingEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*SiblingEnum)(nil), Field: 20016, Name: "google.golang.org.proto2_20180814.Message.extension_defaulted_sibling_enum", Tag: "varint,20016,opt,name=extension_defaulted_sibling_enum,json=extensionDefaultedSiblingEnum,enum=google.golang.org.proto2_20180814.SiblingEnum,def=0", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionRepeatedBool = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]bool)(nil), Field: 30000, Name: "google.golang.org.proto2_20180814.Message.extension_repeated_bool", Tag: "varint,30000,rep,name=extension_repeated_bool,json=extensionRepeatedBool", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionRepeatedInt32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int32)(nil), Field: 30001, Name: "google.golang.org.proto2_20180814.Message.extension_repeated_int32", Tag: "varint,30001,rep,name=extension_repeated_int32,json=extensionRepeatedInt32", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionRepeatedSint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int32)(nil), Field: 30002, Name: "google.golang.org.proto2_20180814.Message.extension_repeated_sint32", Tag: "zigzag32,30002,rep,name=extension_repeated_sint32,json=extensionRepeatedSint32", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionRepeatedUint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint32)(nil), Field: 30003, Name: "google.golang.org.proto2_20180814.Message.extension_repeated_uint32", Tag: "varint,30003,rep,name=extension_repeated_uint32,json=extensionRepeatedUint32", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionRepeatedInt64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int64)(nil), Field: 30004, Name: "google.golang.org.proto2_20180814.Message.extension_repeated_int64", Tag: "varint,30004,rep,name=extension_repeated_int64,json=extensionRepeatedInt64", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionRepeatedSint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int64)(nil), Field: 30005, Name: "google.golang.org.proto2_20180814.Message.extension_repeated_sint64", Tag: "zigzag64,30005,rep,name=extension_repeated_sint64,json=extensionRepeatedSint64", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionRepeatedUint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint64)(nil), Field: 30006, Name: "google.golang.org.proto2_20180814.Message.extension_repeated_uint64", Tag: "varint,30006,rep,name=extension_repeated_uint64,json=extensionRepeatedUint64", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionRepeatedFixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint32)(nil), Field: 30007, Name: "google.golang.org.proto2_20180814.Message.extension_repeated_fixed32", Tag: "fixed32,30007,rep,name=extension_repeated_fixed32,json=extensionRepeatedFixed32", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionRepeatedSfixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int32)(nil), Field: 30008, Name: "google.golang.org.proto2_20180814.Message.extension_repeated_sfixed32", Tag: "fixed32,30008,rep,name=extension_repeated_sfixed32,json=extensionRepeatedSfixed32", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionRepeatedFloat = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]float32)(nil), Field: 30009, Name: "google.golang.org.proto2_20180814.Message.extension_repeated_float", Tag: "fixed32,30009,rep,name=extension_repeated_float,json=extensionRepeatedFloat", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionRepeatedFixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint64)(nil), Field: 30010, Name: "google.golang.org.proto2_20180814.Message.extension_repeated_fixed64", Tag: "fixed64,30010,rep,name=extension_repeated_fixed64,json=extensionRepeatedFixed64", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionRepeatedSfixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int64)(nil), Field: 30011, Name: "google.golang.org.proto2_20180814.Message.extension_repeated_sfixed64", Tag: "fixed64,30011,rep,name=extension_repeated_sfixed64,json=extensionRepeatedSfixed64", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionRepeatedDouble = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]float64)(nil), Field: 30012, Name: "google.golang.org.proto2_20180814.Message.extension_repeated_double", Tag: "fixed64,30012,rep,name=extension_repeated_double,json=extensionRepeatedDouble", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionRepeatedString = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]string)(nil), Field: 30013, Name: "google.golang.org.proto2_20180814.Message.extension_repeated_string", Tag: "bytes,30013,rep,name=extension_repeated_string,json=extensionRepeatedString", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionRepeatedBytes = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([][]byte)(nil), Field: 30014, Name: "google.golang.org.proto2_20180814.Message.extension_repeated_bytes", Tag: "bytes,30014,rep,name=extension_repeated_bytes,json=extensionRepeatedBytes", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionRepeatedChildEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]Message_ChildEnum)(nil), Field: 30015, Name: "google.golang.org.proto2_20180814.Message.extension_repeated_child_enum", Tag: "varint,30015,rep,name=extension_repeated_child_enum,json=extensionRepeatedChildEnum,enum=google.golang.org.proto2_20180814.Message_ChildEnum", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionRepeatedChildMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*Message_ChildMessage)(nil), Field: 30016, Name: "google.golang.org.proto2_20180814.Message.extension_repeated_child_message", Tag: "bytes,30016,rep,name=extension_repeated_child_message,json=extensionRepeatedChildMessage", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionRepeatedNamedGroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*Message_NamedGroup)(nil), Field: 30017, Name: "google.golang.org.proto2_20180814.Message.extension_repeated_named_group", Tag: "bytes,30017,rep,name=extension_repeated_named_group,json=extensionRepeatedNamedGroup", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionRepeatedSiblingEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]SiblingEnum)(nil), Field: 30018, Name: "google.golang.org.proto2_20180814.Message.extension_repeated_sibling_enum", Tag: "varint,30018,rep,name=extension_repeated_sibling_enum,json=extensionRepeatedSiblingEnum,enum=google.golang.org.proto2_20180814.SiblingEnum", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_ExtensionRepeatedSiblingMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*SiblingMessage)(nil), Field: 30019, Name: "google.golang.org.proto2_20180814.Message.extension_repeated_sibling_message", Tag: "bytes,30019,rep,name=extension_repeated_sibling_message,json=extensionRepeatedSiblingMessage", Filename: "proto2_20180814_aa810b61/test.proto", } var E_Message_Extensionrepeatedgroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*Message_ExtensionRepeatedGroup)(nil), Field: 30020, Name: "google.golang.org.proto2_20180814.Message.extensionrepeatedgroup", Tag: "group,30020,rep,name=ExtensionRepeatedGroup,json=extensionrepeatedgroup", Filename: "proto2_20180814_aa810b61/test.proto", } type Message_ChildMessage struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` F4 *Message `protobuf:"bytes,4,opt,name=f4" json:"f4,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_ChildMessage) Reset() { *m = Message_ChildMessage{} } func (m *Message_ChildMessage) String() string { return proto.CompactTextString(m) } func (*Message_ChildMessage) ProtoMessage() {} func (*Message_ChildMessage) Descriptor() ([]byte, []int) { return fileDescriptor_test_98b5676fa5dea40d, []int{1, 0} } func (m *Message_ChildMessage) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_ChildMessage.Unmarshal(m, b) } func (m *Message_ChildMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_ChildMessage.Marshal(b, m, deterministic) } func (dst *Message_ChildMessage) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_ChildMessage.Merge(dst, src) } func (m *Message_ChildMessage) XXX_Size() int { return xxx_messageInfo_Message_ChildMessage.Size(m) } func (m *Message_ChildMessage) XXX_DiscardUnknown() { xxx_messageInfo_Message_ChildMessage.DiscardUnknown(m) } var xxx_messageInfo_Message_ChildMessage proto.InternalMessageInfo func (m *Message_ChildMessage) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_ChildMessage) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_ChildMessage) GetF3() []string { if m != nil { return m.F3 } return nil } func (m *Message_ChildMessage) GetF4() *Message { if m != nil { return m.F4 } return nil } type Message_NamedGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` F4 *Message `protobuf:"bytes,4,opt,name=f4" json:"f4,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_NamedGroup) Reset() { *m = Message_NamedGroup{} } func (m *Message_NamedGroup) String() string { return proto.CompactTextString(m) } func (*Message_NamedGroup) ProtoMessage() {} func (*Message_NamedGroup) Descriptor() ([]byte, []int) { return fileDescriptor_test_98b5676fa5dea40d, []int{1, 1} } func (m *Message_NamedGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_NamedGroup.Unmarshal(m, b) } func (m *Message_NamedGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_NamedGroup.Marshal(b, m, deterministic) } func (dst *Message_NamedGroup) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_NamedGroup.Merge(dst, src) } func (m *Message_NamedGroup) XXX_Size() int { return xxx_messageInfo_Message_NamedGroup.Size(m) } func (m *Message_NamedGroup) XXX_DiscardUnknown() { xxx_messageInfo_Message_NamedGroup.DiscardUnknown(m) } var xxx_messageInfo_Message_NamedGroup proto.InternalMessageInfo func (m *Message_NamedGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_NamedGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_NamedGroup) GetF3() []string { if m != nil { return m.F3 } return nil } func (m *Message_NamedGroup) GetF4() *Message { if m != nil { return m.F4 } return nil } type Message_OptionalGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_OptionalGroup) Reset() { *m = Message_OptionalGroup{} } func (m *Message_OptionalGroup) String() string { return proto.CompactTextString(m) } func (*Message_OptionalGroup) ProtoMessage() {} func (*Message_OptionalGroup) Descriptor() ([]byte, []int) { return fileDescriptor_test_98b5676fa5dea40d, []int{1, 2} } func (m *Message_OptionalGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_OptionalGroup.Unmarshal(m, b) } func (m *Message_OptionalGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_OptionalGroup.Marshal(b, m, deterministic) } func (dst *Message_OptionalGroup) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_OptionalGroup.Merge(dst, src) } func (m *Message_OptionalGroup) XXX_Size() int { return xxx_messageInfo_Message_OptionalGroup.Size(m) } func (m *Message_OptionalGroup) XXX_DiscardUnknown() { xxx_messageInfo_Message_OptionalGroup.DiscardUnknown(m) } var xxx_messageInfo_Message_OptionalGroup proto.InternalMessageInfo func (m *Message_OptionalGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_OptionalGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_OptionalGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_RequiredGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_RequiredGroup) Reset() { *m = Message_RequiredGroup{} } func (m *Message_RequiredGroup) String() string { return proto.CompactTextString(m) } func (*Message_RequiredGroup) ProtoMessage() {} func (*Message_RequiredGroup) Descriptor() ([]byte, []int) { return fileDescriptor_test_98b5676fa5dea40d, []int{1, 3} } func (m *Message_RequiredGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_RequiredGroup.Unmarshal(m, b) } func (m *Message_RequiredGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_RequiredGroup.Marshal(b, m, deterministic) } func (dst *Message_RequiredGroup) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_RequiredGroup.Merge(dst, src) } func (m *Message_RequiredGroup) XXX_Size() int { return xxx_messageInfo_Message_RequiredGroup.Size(m) } func (m *Message_RequiredGroup) XXX_DiscardUnknown() { xxx_messageInfo_Message_RequiredGroup.DiscardUnknown(m) } var xxx_messageInfo_Message_RequiredGroup proto.InternalMessageInfo func (m *Message_RequiredGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_RequiredGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_RequiredGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_RepeatedGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_RepeatedGroup) Reset() { *m = Message_RepeatedGroup{} } func (m *Message_RepeatedGroup) String() string { return proto.CompactTextString(m) } func (*Message_RepeatedGroup) ProtoMessage() {} func (*Message_RepeatedGroup) Descriptor() ([]byte, []int) { return fileDescriptor_test_98b5676fa5dea40d, []int{1, 4} } func (m *Message_RepeatedGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_RepeatedGroup.Unmarshal(m, b) } func (m *Message_RepeatedGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_RepeatedGroup.Marshal(b, m, deterministic) } func (dst *Message_RepeatedGroup) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_RepeatedGroup.Merge(dst, src) } func (m *Message_RepeatedGroup) XXX_Size() int { return xxx_messageInfo_Message_RepeatedGroup.Size(m) } func (m *Message_RepeatedGroup) XXX_DiscardUnknown() { xxx_messageInfo_Message_RepeatedGroup.DiscardUnknown(m) } var xxx_messageInfo_Message_RepeatedGroup proto.InternalMessageInfo func (m *Message_RepeatedGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_RepeatedGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_RepeatedGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_OneofGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_OneofGroup) Reset() { *m = Message_OneofGroup{} } func (m *Message_OneofGroup) String() string { return proto.CompactTextString(m) } func (*Message_OneofGroup) ProtoMessage() {} func (*Message_OneofGroup) Descriptor() ([]byte, []int) { return fileDescriptor_test_98b5676fa5dea40d, []int{1, 33} } func (m *Message_OneofGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_OneofGroup.Unmarshal(m, b) } func (m *Message_OneofGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_OneofGroup.Marshal(b, m, deterministic) } func (dst *Message_OneofGroup) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_OneofGroup.Merge(dst, src) } func (m *Message_OneofGroup) XXX_Size() int { return xxx_messageInfo_Message_OneofGroup.Size(m) } func (m *Message_OneofGroup) XXX_DiscardUnknown() { xxx_messageInfo_Message_OneofGroup.DiscardUnknown(m) } var xxx_messageInfo_Message_OneofGroup proto.InternalMessageInfo func (m *Message_OneofGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_OneofGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_OneofGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_ExtensionOptionalGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_ExtensionOptionalGroup) Reset() { *m = Message_ExtensionOptionalGroup{} } func (m *Message_ExtensionOptionalGroup) String() string { return proto.CompactTextString(m) } func (*Message_ExtensionOptionalGroup) ProtoMessage() {} func (*Message_ExtensionOptionalGroup) Descriptor() ([]byte, []int) { return fileDescriptor_test_98b5676fa5dea40d, []int{1, 34} } func (m *Message_ExtensionOptionalGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_ExtensionOptionalGroup.Unmarshal(m, b) } func (m *Message_ExtensionOptionalGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_ExtensionOptionalGroup.Marshal(b, m, deterministic) } func (dst *Message_ExtensionOptionalGroup) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_ExtensionOptionalGroup.Merge(dst, src) } func (m *Message_ExtensionOptionalGroup) XXX_Size() int { return xxx_messageInfo_Message_ExtensionOptionalGroup.Size(m) } func (m *Message_ExtensionOptionalGroup) XXX_DiscardUnknown() { xxx_messageInfo_Message_ExtensionOptionalGroup.DiscardUnknown(m) } var xxx_messageInfo_Message_ExtensionOptionalGroup proto.InternalMessageInfo func (m *Message_ExtensionOptionalGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_ExtensionOptionalGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_ExtensionOptionalGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_ExtensionRepeatedGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_ExtensionRepeatedGroup) Reset() { *m = Message_ExtensionRepeatedGroup{} } func (m *Message_ExtensionRepeatedGroup) String() string { return proto.CompactTextString(m) } func (*Message_ExtensionRepeatedGroup) ProtoMessage() {} func (*Message_ExtensionRepeatedGroup) Descriptor() ([]byte, []int) { return fileDescriptor_test_98b5676fa5dea40d, []int{1, 35} } func (m *Message_ExtensionRepeatedGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_ExtensionRepeatedGroup.Unmarshal(m, b) } func (m *Message_ExtensionRepeatedGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_ExtensionRepeatedGroup.Marshal(b, m, deterministic) } func (dst *Message_ExtensionRepeatedGroup) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_ExtensionRepeatedGroup.Merge(dst, src) } func (m *Message_ExtensionRepeatedGroup) XXX_Size() int { return xxx_messageInfo_Message_ExtensionRepeatedGroup.Size(m) } func (m *Message_ExtensionRepeatedGroup) XXX_DiscardUnknown() { xxx_messageInfo_Message_ExtensionRepeatedGroup.DiscardUnknown(m) } var xxx_messageInfo_Message_ExtensionRepeatedGroup proto.InternalMessageInfo func (m *Message_ExtensionRepeatedGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_ExtensionRepeatedGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_ExtensionRepeatedGroup) GetF3() []string { if m != nil { return m.F3 } return nil } func init() { proto.RegisterType((*SiblingMessage)(nil), "google.golang.org.proto2_20180814.SiblingMessage") proto.RegisterType((*Message)(nil), "google.golang.org.proto2_20180814.Message") proto.RegisterMapType((map[bool]bool)(nil), "google.golang.org.proto2_20180814.Message.MapBoolBoolEntry") proto.RegisterMapType((map[bool][]byte)(nil), "google.golang.org.proto2_20180814.Message.MapBoolBytesEntry") proto.RegisterMapType((map[bool]Message_ChildEnum)(nil), "google.golang.org.proto2_20180814.Message.MapBoolChildEnumEntry") proto.RegisterMapType((map[bool]*Message_ChildMessage)(nil), "google.golang.org.proto2_20180814.Message.MapBoolChildMessageEntry") proto.RegisterMapType((map[bool]float64)(nil), "google.golang.org.proto2_20180814.Message.MapBoolDoubleEntry") proto.RegisterMapType((map[bool]uint32)(nil), "google.golang.org.proto2_20180814.Message.MapBoolFixed32Entry") proto.RegisterMapType((map[bool]uint64)(nil), "google.golang.org.proto2_20180814.Message.MapBoolFixed64Entry") proto.RegisterMapType((map[bool]float32)(nil), "google.golang.org.proto2_20180814.Message.MapBoolFloatEntry") proto.RegisterMapType((map[bool]int32)(nil), "google.golang.org.proto2_20180814.Message.MapBoolInt32Entry") proto.RegisterMapType((map[bool]int64)(nil), "google.golang.org.proto2_20180814.Message.MapBoolInt64Entry") proto.RegisterMapType((map[bool]*Message_NamedGroup)(nil), "google.golang.org.proto2_20180814.Message.MapBoolNamedGroupEntry") proto.RegisterMapType((map[bool]int32)(nil), "google.golang.org.proto2_20180814.Message.MapBoolSfixed32Entry") proto.RegisterMapType((map[bool]int64)(nil), "google.golang.org.proto2_20180814.Message.MapBoolSfixed64Entry") proto.RegisterMapType((map[bool]SiblingEnum)(nil), "google.golang.org.proto2_20180814.Message.MapBoolSiblingEnumEntry") proto.RegisterMapType((map[bool]*SiblingMessage)(nil), "google.golang.org.proto2_20180814.Message.MapBoolSiblingMessageEntry") proto.RegisterMapType((map[bool]int32)(nil), "google.golang.org.proto2_20180814.Message.MapBoolSint32Entry") proto.RegisterMapType((map[bool]int64)(nil), "google.golang.org.proto2_20180814.Message.MapBoolSint64Entry") proto.RegisterMapType((map[bool]string)(nil), "google.golang.org.proto2_20180814.Message.MapBoolStringEntry") proto.RegisterMapType((map[bool]uint32)(nil), "google.golang.org.proto2_20180814.Message.MapBoolUint32Entry") proto.RegisterMapType((map[bool]uint64)(nil), "google.golang.org.proto2_20180814.Message.MapBoolUint64Entry") proto.RegisterMapType((map[uint32]bool)(nil), "google.golang.org.proto2_20180814.Message.MapFixed32BoolEntry") proto.RegisterMapType((map[int32]bool)(nil), "google.golang.org.proto2_20180814.Message.MapInt32BoolEntry") proto.RegisterMapType((map[int64]bool)(nil), "google.golang.org.proto2_20180814.Message.MapInt64BoolEntry") proto.RegisterMapType((map[int32]bool)(nil), "google.golang.org.proto2_20180814.Message.MapSint32BoolEntry") proto.RegisterMapType((map[int64]bool)(nil), "google.golang.org.proto2_20180814.Message.MapSint64BoolEntry") proto.RegisterMapType((map[string]bool)(nil), "google.golang.org.proto2_20180814.Message.MapStringBoolEntry") proto.RegisterMapType((map[uint32]bool)(nil), "google.golang.org.proto2_20180814.Message.MapUint32BoolEntry") proto.RegisterMapType((map[uint64]bool)(nil), "google.golang.org.proto2_20180814.Message.MapUint64BoolEntry") proto.RegisterType((*Message_ChildMessage)(nil), "google.golang.org.proto2_20180814.Message.ChildMessage") proto.RegisterType((*Message_NamedGroup)(nil), "google.golang.org.proto2_20180814.Message.NamedGroup") proto.RegisterType((*Message_OptionalGroup)(nil), "google.golang.org.proto2_20180814.Message.OptionalGroup") proto.RegisterType((*Message_RequiredGroup)(nil), "google.golang.org.proto2_20180814.Message.RequiredGroup") proto.RegisterType((*Message_RepeatedGroup)(nil), "google.golang.org.proto2_20180814.Message.RepeatedGroup") proto.RegisterType((*Message_OneofGroup)(nil), "google.golang.org.proto2_20180814.Message.OneofGroup") proto.RegisterType((*Message_ExtensionOptionalGroup)(nil), "google.golang.org.proto2_20180814.Message.ExtensionOptionalGroup") proto.RegisterType((*Message_ExtensionRepeatedGroup)(nil), "google.golang.org.proto2_20180814.Message.ExtensionRepeatedGroup") proto.RegisterEnum("google.golang.org.proto2_20180814.SiblingEnum", SiblingEnum_name, SiblingEnum_value) proto.RegisterEnum("google.golang.org.proto2_20180814.Message_ChildEnum", Message_ChildEnum_name, Message_ChildEnum_value) proto.RegisterExtension(E_Message_ExtensionOptionalBool) proto.RegisterExtension(E_Message_ExtensionOptionalInt32) proto.RegisterExtension(E_Message_ExtensionOptionalSint32) proto.RegisterExtension(E_Message_ExtensionOptionalUint32) proto.RegisterExtension(E_Message_ExtensionOptionalInt64) proto.RegisterExtension(E_Message_ExtensionOptionalSint64) proto.RegisterExtension(E_Message_ExtensionOptionalUint64) proto.RegisterExtension(E_Message_ExtensionOptionalFixed32) proto.RegisterExtension(E_Message_ExtensionOptionalSfixed32) proto.RegisterExtension(E_Message_ExtensionOptionalFloat) proto.RegisterExtension(E_Message_ExtensionOptionalFixed64) proto.RegisterExtension(E_Message_ExtensionOptionalSfixed64) proto.RegisterExtension(E_Message_ExtensionOptionalDouble) proto.RegisterExtension(E_Message_ExtensionOptionalString) proto.RegisterExtension(E_Message_ExtensionOptionalBytes) proto.RegisterExtension(E_Message_ExtensionOptionalChildEnum) proto.RegisterExtension(E_Message_ExtensionOptionalChildMessage) proto.RegisterExtension(E_Message_ExtensionOptionalNamedGroup) proto.RegisterExtension(E_Message_ExtensionOptionalSiblingEnum) proto.RegisterExtension(E_Message_ExtensionOptionalSiblingMessage) proto.RegisterExtension(E_Message_Extensionoptionalgroup) proto.RegisterExtension(E_Message_ExtensionDefaultedBool) proto.RegisterExtension(E_Message_ExtensionDefaultedInt32) proto.RegisterExtension(E_Message_ExtensionDefaultedSint32) proto.RegisterExtension(E_Message_ExtensionDefaultedUint32) proto.RegisterExtension(E_Message_ExtensionDefaultedInt64) proto.RegisterExtension(E_Message_ExtensionDefaultedSint64) proto.RegisterExtension(E_Message_ExtensionDefaultedUint64) proto.RegisterExtension(E_Message_ExtensionDefaultedFixed32) proto.RegisterExtension(E_Message_ExtensionDefaultedSfixed32) proto.RegisterExtension(E_Message_ExtensionDefaultedFloat) proto.RegisterExtension(E_Message_ExtensionDefaultedFixed64) proto.RegisterExtension(E_Message_ExtensionDefaultedSfixed64) proto.RegisterExtension(E_Message_ExtensionDefaultedDouble) proto.RegisterExtension(E_Message_ExtensionDefaultedString) proto.RegisterExtension(E_Message_ExtensionDefaultedBytes) proto.RegisterExtension(E_Message_ExtensionDefaultedChildEnum) proto.RegisterExtension(E_Message_ExtensionDefaultedSiblingEnum) proto.RegisterExtension(E_Message_ExtensionRepeatedBool) proto.RegisterExtension(E_Message_ExtensionRepeatedInt32) proto.RegisterExtension(E_Message_ExtensionRepeatedSint32) proto.RegisterExtension(E_Message_ExtensionRepeatedUint32) proto.RegisterExtension(E_Message_ExtensionRepeatedInt64) proto.RegisterExtension(E_Message_ExtensionRepeatedSint64) proto.RegisterExtension(E_Message_ExtensionRepeatedUint64) proto.RegisterExtension(E_Message_ExtensionRepeatedFixed32) proto.RegisterExtension(E_Message_ExtensionRepeatedSfixed32) proto.RegisterExtension(E_Message_ExtensionRepeatedFloat) proto.RegisterExtension(E_Message_ExtensionRepeatedFixed64) proto.RegisterExtension(E_Message_ExtensionRepeatedSfixed64) proto.RegisterExtension(E_Message_ExtensionRepeatedDouble) proto.RegisterExtension(E_Message_ExtensionRepeatedString) proto.RegisterExtension(E_Message_ExtensionRepeatedBytes) proto.RegisterExtension(E_Message_ExtensionRepeatedChildEnum) proto.RegisterExtension(E_Message_ExtensionRepeatedChildMessage) proto.RegisterExtension(E_Message_ExtensionRepeatedNamedGroup) proto.RegisterExtension(E_Message_ExtensionRepeatedSiblingEnum) proto.RegisterExtension(E_Message_ExtensionRepeatedSiblingMessage) proto.RegisterExtension(E_Message_Extensionrepeatedgroup) } func init() { proto.RegisterFile("proto2_20180814_aa810b61/test.proto", fileDescriptor_test_98b5676fa5dea40d) } var fileDescriptor_test_98b5676fa5dea40d = []byte{ // 4469 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5c, 0x69, 0x70, 0x23, 0xc7, 0x75, 0xe6, 0x00, 0x04, 0xb8, 0xec, 0x25, 0x48, 0x70, 0x76, 0x97, 0x9c, 0xa5, 0xa4, 0x08, 0x5e, 0x3b, 0x0e, 0xa2, 0x68, 0xb9, 0xe4, 0xb0, 0xb7, 0x77, 0x85, 0xe8, 0xf0, 0x52, 0x5a, 0x19, 0x72, 0x2c, 0xc8, 0x35, 0xaa, 0x4d, 0xa5, 0x52, 0xaa, 0x30, 0xe0, 0x12, 0xe4, 0x52, 0xc2, 0x41, 0x91, 0x80, 0xa4, 0x8d, 0x9d, 0xd2, 0xc6, 0x39, 0x7f, 0xca, 0xf7, 0x05, 0xdb, 0xb2, 0x6e, 0x5b, 0xa7, 0xef, 0x4b, 0x97, 0x8f, 0x24, 0xf2, 0x7d, 0xe5, 0x70, 0x2e, 0xe7, 0xbe, 0x9c, 0xfb, 0xbe, 0x8f, 0xea, 0x7e, 0xdd, 0xd3, 0xdd, 0x33, 0x3d, 0x20, 0x7b, 0xe0, 0xd2, 0x0f, 0x55, 0x69, 0x1b, 0xaf, 0xdf, 0xd7, 0xef, 0x43, 0xbf, 0xf7, 0x3e, 0xf6, 0x4c, 0x03, 0xbd, 0x74, 0x6b, 0xbb, 0xd3, 0xed, 0xf8, 0x2b, 0xfe, 0xc2, 0xe2, 0xc9, 0x85, 0x93, 0x8b, 0x78, 0xa5, 0x5e, 0x3f, 0xb9, 0xb8, 0xb0, 0x4a, 0x16, 0x8f, 0x75, 0x1b, 0x3b, 0xdd, 0x79, 0xf6, 0xa9, 0xfb, 0x92, 0x8d, 0x4e, 0x67, 0xa3, 0xd9, 0x98, 0xdf, 0xe8, 0x34, 0xeb, 0xed, 0x8d, 0xf9, 0xce, 0xf6, 0xc6, 0x7c, 0x64, 0xda, 0x91, 0xd7, 0xa1, 0xc9, 0x9b, 0x37, 0x57, 0x9b, 0x9b, 0xed, 0x8d, 0x1b, 0x1b, 0x3b, 0x3b, 0xf5, 0x8d, 0x86, 0x3b, 0x89, 0x32, 0xeb, 0x8b, 0x9e, 0x53, 0x72, 0xca, 0xe3, 0x41, 0x66, 0x7d, 0x91, 0xfd, 0xdb, 0xf7, 0x32, 0xa5, 0x0c, 0xfb, 0xb7, 0xcf, 0xfe, 0xbd, 0xe4, 0x65, 0x4b, 0x59, 0xf6, 0xef, 0x25, 0xb7, 0x82, 0x32, 0xeb, 0xd8, 0x1b, 0x2d, 0x39, 0xe5, 0xfd, 0xfe, 0x65, 0xf3, 0xbb, 0x22, 0xce, 0x73, 0x9c, 0x20, 0xb3, 0x8e, 0x8f, 0x7c, 0xe7, 0x51, 0x07, 0x8d, 0x09, 0xe0, 0x33, 0x08, 0xb5, 0xeb, 0xad, 0xc6, 0xda, 0xc6, 0x76, 0xa7, 0xb7, 0xc5, 0x16, 0x80, 0xfc, 0xe3, 0x7b, 0x77, 0x38, 0x5f, 0xa3, 0x93, 0x5f, 0x49, 0x27, 0x07, 0x8a, 0x23, 0xf7, 0xa5, 0xa8, 0xd0, 0xd9, 0xea, 0x6e, 0x76, 0xda, 0xf5, 0xe6, 0xca, 0x6a, 0xa7, 0xd3, 0xf4, 0xd6, 0x4a, 0x4e, 0x79, 0x5f, 0x30, 0x21, 0x06, 0x97, 0x3b, 0x9d, 0xa6, 0xfb, 0xfd, 0x68, 0x32, 0x34, 0xda, 0x6c, 0x77, 0x97, 0x7c, 0xaf, 0x51, 0x72, 0xca, 0xb9, 0x20, 0x9c, 0x7a, 0x03, 0x1d, 0x74, 0x7f, 0x00, 0x4d, 0x85, 0x66, 0x3b, 0x60, 0xb7, 0x5e, 0x72, 0xca, 0xd3, 0x41, 0x38, 0xfb, 0xe6, 0xcd, 0x98, 0x61, 0x0f, 0x0c, 0x37, 0x4a, 0x4e, 0xb9, 0x20, 0x0d, 0xcf, 0x80, 0x61, 0x04, 0x98, 0x60, 0xef, 0x5c, 0xc9, 0x29, 0x67, 0x35, 0x60, 0x82, 0x63, 0xc0, 0x04, 0x7b, 0x9b, 0x25, 0xa7, 0xec, 0xea, 0xc0, 0x11, 0xc3, 0x1e, 0x18, 0xde, 0x5a, 0x72, 0xca, 0xa3, 0x3a, 0x30, 0xc1, 0xee, 0x0f, 0xa2, 0x62, 0x68, 0xb8, 0xbe, 0x79, 0x57, 0x63, 0x6d, 0xc9, 0xf7, 0x6e, 0x2b, 0x39, 0xe5, 0xb1, 0x20, 0x74, 0x70, 0x3d, 0x0c, 0xbb, 0x3f, 0x84, 0xa6, 0x25, 0xb8, 0xb0, 0x6d, 0x96, 0x9c, 0xf2, 0x54, 0x10, 0xfa, 0xb8, 0x99, 0x8f, 0x6b, 0x01, 0xad, 0x37, 0x3b, 0xf5, 0xae, 0xd7, 0x2a, 0x39, 0xe5, 0x8c, 0x0c, 0xe8, 0x7a, 0x3a, 0x18, 0x87, 0x27, 0xd8, 0x6b, 0x97, 0x9c, 0x72, 0x3e, 0x02, 0x4f, 0xb0, 0x01, 0x9e, 0x60, 0xaf, 0x53, 0x72, 0xca, 0xc5, 0x28, 0x7c, 0x24, 0xfe, 0xb5, 0x4e, 0x6f, 0xb5, 0xd9, 0xf0, 0xb6, 0x4a, 0x4e, 0xd9, 0x91, 0xf1, 0x5f, 0xc7, 0x46, 0x75, 0x46, 0xbb, 0xdb, 0x9b, 0xed, 0x0d, 0xef, 0x76, 0xb6, 0xe7, 0x25, 0xa3, 0x6c, 0x54, 0x0b, 0x68, 0xf5, 0x7c, 0xb7, 0xb1, 0xe3, 0x6d, 0x97, 0x9c, 0xf2, 0x84, 0x0c, 0x68, 0x99, 0x0e, 0xba, 0x6b, 0xe8, 0x40, 0x68, 0x76, 0xf6, 0xdc, 0x66, 0x73, 0x6d, 0xa5, 0xd1, 0xee, 0xb5, 0xbc, 0x9d, 0x92, 0x53, 0x9e, 0xf4, 0xb1, 0xc5, 0x36, 0xbe, 0x96, 0x4e, 0x3e, 0xdd, 0xee, 0xb5, 0x82, 0x30, 0xec, 0x70, 0xc8, 0x6d, 0xa1, 0x99, 0x08, 0x4a, 0x0b, 0xa6, 0x79, 0x5d, 0x96, 0x80, 0x27, 0x6c, 0x81, 0x44, 0x36, 0x1e, 0xd4, 0xb0, 0x44, 0x4a, 0x6e, 0xa0, 0x70, 0x7c, 0x85, 0xa5, 0xd4, 0x0a, 0x24, 0x67, 0x8f, 0x81, 0xa5, 0x4c, 0x4e, 0x57, 0xb8, 0x94, 0x63, 0xee, 0x2a, 0x3a, 0xa4, 0xec, 0x6f, 0x56, 0x8f, 0x80, 0xbf, 0x3b, 0x18, 0x7f, 0xf3, 0x7b, 0x40, 0xe2, 0x65, 0x8c, 0x31, 0x77, 0x40, 0x66, 0x45, 0x38, 0xe8, 0xde, 0x86, 0xbc, 0x18, 0x86, 0x60, 0xef, 0x4e, 0x16, 0xd0, 0xe2, 0xde, 0x61, 0x04, 0x6f, 0x33, 0x11, 0x24, 0xc1, 0xdc, 0x4f, 0xc8, 0xaa, 0x03, 0x94, 0xdd, 0xc5, 0xea, 0xd9, 0x49, 0x0b, 0xca, 0x6e, 0xe2, 0xf3, 0x81, 0x35, 0xdd, 0x9d, 0x7b, 0x39, 0x9a, 0x5c, 0x6b, 0xac, 0xd7, 0x7b, 0xcd, 0x6e, 0x63, 0x0d, 0xca, 0xda, 0x0b, 0xb4, 0x62, 0xee, 0xab, 0x8c, 0x76, 0xb7, 0x7b, 0x8d, 0xa0, 0x10, 0x7e, 0xc8, 0xca, 0xdb, 0x02, 0x9a, 0x92, 0xd6, 0x50, 0x8e, 0xbe, 0x40, 0xcd, 0x73, 0x95, 0xfc, 0xd1, 0x45, 0x7f, 0x09, 0x1f, 0x0f, 0xa4, 0x37, 0xa8, 0x74, 0x8b, 0xa8, 0x28, 0x67, 0xf0, 0x52, 0xf7, 0x45, 0x3a, 0x65, 0xba, 0x92, 0x3b, 0xba, 0xe4, 0x2f, 0x2c, 0x04, 0xd2, 0x23, 0xaf, 0x79, 0x0b, 0xea, 0x14, 0x5e, 0xf4, 0xbe, 0x44, 0xa7, 0x14, 0x2a, 0xa3, 0x91, 0x19, 0xbc, 0xf8, 0xe1, 0xc8, 0xb2, 0x08, 0xf6, 0xbe, 0x4c, 0x27, 0x64, 0x2b, 0x08, 0x96, 0x45, 0x4e, 0x9c, 0xbc, 0x42, 0x5f, 0x1a, 0xc1, 0xf1, 0xa5, 0x11, 0xec, 0x7d, 0x85, 0x4e, 0x73, 0x2b, 0xb9, 0xa3, 0x04, 0xc7, 0x96, 0x46, 0x70, 0x7c, 0x69, 0x04, 0x7b, 0x5f, 0xa5, 0x53, 0x46, 0x2b, 0xa3, 0x91, 0x19, 0xbc, 0x3c, 0x62, 0x34, 0x2d, 0x67, 0x88, 0x9a, 0xf7, 0x35, 0x3a, 0x65, 0xac, 0x92, 0xa7, 0xd1, 0x2c, 0x2c, 0x04, 0xd2, 0xa7, 0xa8, 0x94, 0x27, 0x90, 0xab, 0x2c, 0x4d, 0x4c, 0xfb, 0x3a, 0x9d, 0x36, 0x55, 0x19, 0x3b, 0xca, 0xe7, 0x49, 0xcf, 0x61, 0xd5, 0x5c, 0x54, 0x99, 0x80, 0xb2, 0xf9, 0x0d, 0x3a, 0x2b, 0x53, 0x19, 0x5b, 0x9a, 0x5f, 0xc4, 0x8b, 0xc7, 0x55, 0x1a, 0xa0, 0x82, 0xc6, 0x57, 0x48, 0xb0, 0xf7, 0x4d, 0x3a, 0x29, 0x5f, 0xc9, 0xd3, 0xa0, 0xe2, 0x2b, 0x24, 0xd8, 0xb4, 0x42, 0x82, 0xbd, 0x6f, 0xd1, 0x69, 0xc5, 0xca, 0xd8, 0x51, 0x3e, 0x2f, 0xba, 0x42, 0x82, 0xdd, 0x2b, 0x54, 0x0a, 0x79, 0x65, 0xfd, 0x35, 0x3a, 0xcd, 0xa9, 0x14, 0xf8, 0x12, 0x7d, 0x72, 0x7c, 0xe9, 0xf8, 0x15, 0x0a, 0x97, 0xbc, 0xd4, 0x5e, 0xa9, 0x7d, 0x61, 0x50, 0x6b, 0x7f, 0x9d, 0x09, 0x8c, 0x4a, 0xf1, 0x5c, 0xa3, 0xd9, 0xec, 0x5c, 0x5e, 0x3a, 0x72, 0x67, 0x67, 0xbb, 0xb9, 0xf6, 0x92, 0x23, 0x48, 0xfd, 0xee, 0xa0, 0xfe, 0x2e, 0xab, 0xd4, 0x40, 0x01, 0xfe, 0x0d, 0x3a, 0x79, 0xa2, 0xe2, 0xad, 0x35, 0xea, 0x6b, 0xb7, 0x2c, 0x2d, 0x91, 0x5b, 0xfc, 0xe3, 0xc7, 0x6f, 0xf1, 0x4f, 0x90, 0x5b, 0x96, 0x8e, 0x9f, 0x58, 0x6d, 0x34, 0xd6, 0x15, 0xae, 0xa0, 0x38, 0xb7, 0xd1, 0x41, 0xe9, 0x43, 0xa9, 0xce, 0xbf, 0xe9, 0xa4, 0x2f, 0xcf, 0x95, 0xdc, 0xa9, 0x57, 0xbf, 0xa6, 0x7a, 0x2a, 0x90, 0x7c, 0xca, 0x32, 0xdd, 0x44, 0x33, 0xea, 0x16, 0x55, 0xea, 0xd9, 0xb7, 0x9d, 0x34, 0x05, 0x4d, 0x60, 0x1d, 0x54, 0x36, 0xb6, 0x2c, 0x6c, 0x2f, 0x43, 0x85, 0xed, 0xc6, 0xed, 0xbd, 0xcd, 0x6d, 0x51, 0x0a, 0x1e, 0xa3, 0x6a, 0x6d, 0x5f, 0x30, 0x21, 0x46, 0x59, 0x0d, 0x78, 0x39, 0x9a, 0x0c, 0xad, 0x20, 0x39, 0x1f, 0xa7, 0x66, 0xb9, 0x20, 0x9c, 0x0c, 0x99, 0x5f, 0x46, 0x53, 0xa1, 0x1d, 0x4f, 0xfc, 0x27, 0xa8, 0xe1, 0x74, 0x10, 0xce, 0xe7, 0x09, 0xaf, 0x5a, 0xf2, 0x7c, 0x7f, 0x92, 0x5a, 0x16, 0xa4, 0x25, 0x4f, 0xf4, 0x08, 0x36, 0xc1, 0xde, 0x53, 0xd4, 0x30, 0xab, 0x61, 0x13, 0x1c, 0xc3, 0x26, 0xd8, 0xfb, 0x20, 0x35, 0x74, 0x75, 0xec, 0x88, 0x25, 0x4f, 0xe8, 0x0f, 0x51, 0xcb, 0x51, 0x1d, 0x9b, 0x60, 0xf7, 0x32, 0x54, 0x0c, 0x2d, 0x45, 0x46, 0x7e, 0x98, 0x9a, 0x8e, 0x05, 0xa1, 0x0b, 0x91, 0xbf, 0x97, 0xa3, 0x69, 0x89, 0x2f, 0x8c, 0x3f, 0x42, 0x8d, 0xa7, 0x82, 0xd0, 0x4b, 0x98, 0xb4, 0x6a, 0x54, 0x90, 0xb3, 0x1f, 0xa5, 0xa6, 0x19, 0x19, 0x15, 0x64, 0x6a, 0x6c, 0x05, 0x04, 0x7b, 0x1f, 0xa3, 0x96, 0xf9, 0xc8, 0x0a, 0x08, 0x36, 0xac, 0x80, 0x60, 0xef, 0xe3, 0xd4, 0xb8, 0x18, 0x5d, 0x41, 0x84, 0x05, 0x9e, 0x93, 0x9f, 0xa0, 0xb6, 0x8e, 0x64, 0x81, 0xe7, 0xa0, 0xc6, 0x2c, 0xa4, 0xe0, 0x27, 0x41, 0xd3, 0x4b, 0x66, 0x21, 0xdf, 0xd4, 0xa8, 0x20, 0xdd, 0x3e, 0x45, 0x0d, 0x27, 0x64, 0x54, 0x90, 0x53, 0x0d, 0x74, 0x20, 0xb4, 0x53, 0x52, 0xea, 0xd3, 0xd4, 0x38, 0xb5, 0xe2, 0x11, 0x1e, 0x65, 0x2a, 0xb5, 0xd1, 0x4c, 0x04, 0x46, 0xf4, 0xec, 0xa7, 0x29, 0xd2, 0x30, 0x92, 0x47, 0x03, 0x13, 0x8d, 0xfb, 0x1c, 0x0a, 0xc7, 0x35, 0xc9, 0xf3, 0x0c, 0xa0, 0xa5, 0xd5, 0x3c, 0xc2, 0xa7, 0xa2, 0x79, 0xce, 0xa2, 0x43, 0xca, 0x66, 0x57, 0x6a, 0xc4, 0xb3, 0x40, 0xa1, 0xb5, 0xe8, 0x91, 0x29, 0x22, 0x6b, 0x43, 0x13, 0x79, 0x31, 0x10, 0x41, 0xe0, 0x73, 0x10, 0x52, 0x1a, 0xd5, 0x13, 0x81, 0x12, 0xe4, 0xad, 0xc8, 0x4a, 0x04, 0xac, 0x3d, 0x4f, 0x21, 0xec, 0x64, 0x4f, 0xc0, 0x1d, 0x70, 0xd9, 0xa3, 0xf9, 0x73, 0xaf, 0x42, 0xb3, 0x72, 0xc3, 0xeb, 0xfa, 0xe7, 0x9e, 0x2c, 0x2d, 0x7a, 0x5c, 0xff, 0x84, 0xcc, 0x5e, 0xa7, 0xe9, 0xa0, 0x53, 0x0a, 0x1b, 0x51, 0x41, 0xf4, 0x06, 0x3a, 0x5f, 0x0a, 0xa2, 0x99, 0x98, 0x07, 0x28, 0x8f, 0xcb, 0xe8, 0xb0, 0xc1, 0x05, 0x2f, 0x94, 0x6f, 0xa4, 0x3e, 0x42, 0x85, 0x34, 0x1b, 0x73, 0xc1, 0x0b, 0xe7, 0x29, 0xa3, 0x0f, 0x5e, 0x42, 0xdf, 0x44, 0x7d, 0x08, 0xc9, 0x14, 0x77, 0xc1, 0x2b, 0xea, 0xe9, 0xa4, 0x48, 0x08, 0xf6, 0xde, 0x4c, 0x3d, 0xe8, 0x1a, 0xca, 0x18, 0x0d, 0xc1, 0x03, 0xa2, 0x21, 0xd8, 0x7b, 0x0b, 0xf5, 0x13, 0x8a, 0x2a, 0x73, 0x34, 0x04, 0x0f, 0x88, 0x86, 0x60, 0xef, 0xad, 0xd4, 0x87, 0x50, 0x59, 0xe6, 0x68, 0x08, 0x76, 0x4f, 0xa3, 0x39, 0x83, 0x0b, 0x51, 0x80, 0xdf, 0x46, 0x7d, 0x48, 0xd9, 0xe5, 0xc5, 0xbc, 0x88, 0xf2, 0x5d, 0x45, 0x17, 0x99, 0xa2, 0x11, 0x7e, 0xde, 0x4e, 0xfd, 0x28, 0x3a, 0xec, 0x70, 0x3c, 0x22, 0x51, 0xda, 0x97, 0x8d, 0xf4, 0x42, 0x91, 0x7f, 0x07, 0x75, 0xa3, 0x08, 0xb3, 0x38, 0xb7, 0x50, 0xf6, 0x07, 0x04, 0x45, 0xb0, 0xf7, 0x4e, 0xea, 0x45, 0x2a, 0xb5, 0x84, 0xa0, 0x08, 0x1e, 0x18, 0x14, 0xc1, 0xde, 0xbb, 0xa8, 0x1f, 0x45, 0xba, 0x25, 0x05, 0x45, 0xb0, 0xfb, 0x2a, 0xe3, 0x17, 0xc5, 0xfb, 0x46, 0x9f, 0xfa, 0x89, 0x69, 0xb9, 0xf8, 0x37, 0xc6, 0xfb, 0xc9, 0x8d, 0xe6, 0x8d, 0x03, 0x9d, 0xe5, 0xdd, 0xd4, 0x97, 0x49, 0xdc, 0x19, 0xf6, 0x10, 0x34, 0x9d, 0x9b, 0x8d, 0x7c, 0x43, 0xfb, 0x79, 0x0f, 0xf5, 0x36, 0x48, 0xed, 0xc5, 0xbf, 0x00, 0xe8, 0x50, 0x77, 0xa3, 0x4b, 0x0c, 0x4e, 0x95, 0x5e, 0xf5, 0xde, 0x6c, 0xfa, 0x5e, 0x25, 0x24, 0xd9, 0x5c, 0x0c, 0x5c, 0xf6, 0xae, 0x9f, 0x46, 0x97, 0x1a, 0xb3, 0x4b, 0xa9, 0xf5, 0xf7, 0x66, 0xd3, 0xd4, 0x7a, 0x01, 0x7e, 0xb1, 0x21, 0x27, 0x23, 0xba, 0x70, 0xab, 0x51, 0x0f, 0x4b, 0xe4, 0x3f, 0x67, 0x4b, 0x59, 0xd0, 0x85, 0x30, 0x2a, 0x75, 0x21, 0xb7, 0x82, 0x0a, 0xf4, 0x2f, 0xd4, 0x8c, 0xe9, 0x42, 0x18, 0x56, 0x74, 0x21, 0xb7, 0xe3, 0xe5, 0xee, 0x5f, 0xa9, 0x21, 0xd3, 0x85, 0x30, 0xae, 0xea, 0x42, 0x6e, 0xc9, 0x8b, 0xda, 0xbf, 0x51, 0xcb, 0x82, 0xb4, 0x54, 0x75, 0xa1, 0xc4, 0x26, 0xd8, 0xfb, 0x77, 0x6a, 0x98, 0xd5, 0xb0, 0x85, 0xce, 0x51, 0xb0, 0x09, 0xf6, 0xfe, 0x83, 0x1a, 0xba, 0x3a, 0x76, 0xc4, 0x92, 0x97, 0xa0, 0xff, 0xa4, 0x96, 0xa3, 0x3a, 0xb6, 0xd0, 0x85, 0xdc, 0x52, 0x54, 0x88, 0xff, 0xa2, 0xa6, 0x4c, 0x17, 0xc2, 0x07, 0x9a, 0x2e, 0x14, 0xf8, 0xc2, 0xf8, 0xbf, 0xa9, 0x31, 0xd3, 0x85, 0x7c, 0x05, 0x9a, 0x2e, 0x14, 0x9e, 0x59, 0xc9, 0xf8, 0x1f, 0x6a, 0x9a, 0x91, 0x51, 0x29, 0xba, 0x50, 0x5d, 0x01, 0xc1, 0xde, 0xff, 0x52, 0xcb, 0x7c, 0x64, 0x05, 0x42, 0x17, 0x6a, 0x2b, 0x20, 0xd8, 0xfb, 0x3f, 0x6a, 0x5c, 0x8c, 0xae, 0x20, 0xc2, 0x02, 0xcf, 0xef, 0x0b, 0xa3, 0xa5, 0x2c, 0xe8, 0x42, 0x18, 0x57, 0x75, 0xa1, 0xf0, 0x0b, 0xd9, 0xfb, 0x33, 0xa3, 0xec, 0x6c, 0x57, 0x32, 0xab, 0xe8, 0x42, 0xb1, 0x9b, 0x58, 0x62, 0xbe, 0x9e, 0x1a, 0x4e, 0xc8, 0xa8, 0x14, 0x5d, 0xc8, 0xed, 0x94, 0x5c, 0xfb, 0x59, 0x6a, 0x3c, 0x84, 0x2e, 0x04, 0x8f, 0x11, 0x5d, 0xa8, 0xc1, 0x08, 0x59, 0xf3, 0x73, 0x14, 0x69, 0x38, 0x5d, 0xa8, 0x80, 0x69, 0xba, 0x90, 0xe3, 0xa9, 0xba, 0xf0, 0xe7, 0x01, 0x2d, 0xbd, 0x2e, 0x04, 0x9f, 0x51, 0x5d, 0x18, 0x6e, 0x76, 0xa5, 0x56, 0xfc, 0x02, 0x50, 0x98, 0x42, 0x17, 0x8a, 0x14, 0x89, 0xe8, 0xc2, 0x08, 0x88, 0x20, 0xf0, 0x17, 0x21, 0xa4, 0x74, 0xba, 0x50, 0x83, 0xd2, 0x74, 0x21, 0x7c, 0x02, 0xac, 0xfd, 0x12, 0x85, 0xb0, 0xd5, 0x85, 0xe0, 0x20, 0xd4, 0x85, 0x8a, 0x3f, 0xf7, 0x27, 0x51, 0xa1, 0x55, 0xdf, 0x62, 0x55, 0x0e, 0x4a, 0xdd, 0xb7, 0x21, 0x86, 0x1f, 0xb6, 0x00, 0xb8, 0xb1, 0xbe, 0x45, 0x0b, 0x22, 0xfd, 0xef, 0x74, 0xbb, 0xbb, 0x7d, 0x3e, 0xd8, 0xdf, 0x92, 0x23, 0xee, 0x59, 0x34, 0x19, 0x22, 0x40, 0x4d, 0xfb, 0x2d, 0x80, 0xb8, 0xd2, 0x1e, 0x82, 0x15, 0x54, 0xc0, 0x98, 0x68, 0x29, 0x43, 0xee, 0x3a, 0x9a, 0x0a, 0x41, 0x78, 0x8d, 0xfd, 0x6d, 0x40, 0xb9, 0xca, 0x1e, 0x05, 0xaa, 0x31, 0xc0, 0x14, 0x5a, 0xea, 0x98, 0x86, 0xc3, 0x2b, 0xf4, 0xef, 0xa4, 0xc6, 0x39, 0x63, 0xc0, 0xe1, 0xf5, 0x3d, 0x42, 0x1a, 0xc1, 0xde, 0xef, 0x0e, 0x43, 0x1a, 0xc1, 0x31, 0xd2, 0x08, 0x8e, 0x91, 0x46, 0xb0, 0xf7, 0x7b, 0x43, 0x91, 0x26, 0x60, 0x54, 0xd2, 0x22, 0x38, 0xbc, 0xb5, 0x7c, 0x67, 0x28, 0xd2, 0xa2, 0x38, 0xbc, 0x31, 0x6d, 0xa2, 0x62, 0x88, 0x23, 0x7a, 0xcd, 0xef, 0x03, 0xd0, 0xd5, 0xf6, 0x40, 0xbc, 0x85, 0x01, 0xd2, 0x64, 0x4b, 0x1b, 0x74, 0x9b, 0x68, 0x5a, 0x52, 0x27, 0xb0, 0xfe, 0x00, 0xb0, 0xae, 0x49, 0x41, 0xde, 0xba, 0x0a, 0x36, 0xd5, 0xd2, 0x47, 0xb5, 0xdd, 0x00, 0x7d, 0xf1, 0x0f, 0x53, 0xef, 0x06, 0xd6, 0x41, 0xf5, 0xdd, 0x00, 0x4d, 0x35, 0xc6, 0x1e, 0xc1, 0xde, 0x1f, 0x0d, 0xc7, 0x9e, 0xf8, 0x9e, 0x34, 0xf6, 0x08, 0x36, 0xb0, 0x47, 0xb0, 0xf7, 0xc7, 0x43, 0xb2, 0x27, 0xc0, 0x74, 0xf6, 0x22, 0xdb, 0x8f, 0xf7, 0xf4, 0x3f, 0x49, 0xbd, 0xfd, 0xa0, 0xfb, 0xeb, 0xdb, 0x8f, 0x2b, 0x02, 0x2d, 0x9d, 0x40, 0x11, 0xfc, 0x69, 0xfa, 0x74, 0x62, 0x0e, 0x22, 0xe9, 0x04, 0x7a, 0x42, 0xdd, 0x0d, 0xa0, 0x27, 0xfe, 0x2c, 0xf5, 0x6e, 0x60, 0xca, 0x43, 0xdf, 0x0d, 0x20, 0x46, 0xb6, 0xd0, 0x81, 0x10, 0x44, 0x11, 0x23, 0x7f, 0x0e, 0x48, 0xaf, 0xb0, 0x47, 0x0a, 0x05, 0x08, 0xa0, 0x15, 0x5b, 0x91, 0x61, 0xf7, 0x3c, 0x9a, 0x89, 0x20, 0x8a, 0xb6, 0xfa, 0x17, 0x00, 0x7a, 0x6d, 0x4a, 0x50, 0x3e, 0x06, 0xb8, 0x07, 0x5a, 0xf1, 0x4f, 0xdc, 0x1d, 0x74, 0x30, 0x84, 0x56, 0x25, 0xca, 0x5f, 0x02, 0xf0, 0x29, 0x7b, 0x60, 0xa9, 0x4a, 0x00, 0x76, 0xba, 0x15, 0x1d, 0x77, 0xef, 0x40, 0x87, 0x94, 0xea, 0xab, 0xa8, 0x95, 0xef, 0x02, 0xea, 0x72, 0x9a, 0x1a, 0x1c, 0xea, 0x14, 0x80, 0x75, 0x5b, 0xb1, 0x0f, 0xdc, 0xbb, 0x91, 0x17, 0xc3, 0x15, 0x4c, 0xff, 0x15, 0x40, 0x9f, 0x4e, 0x0d, 0xad, 0x71, 0x7d, 0xa8, 0x65, 0xfa, 0x4c, 0xec, 0x5f, 0xd6, 0xe8, 0x40, 0x73, 0xfc, 0x75, 0xaa, 0xfd, 0xcb, 0x3a, 0xbf, 0x14, 0x1d, 0x74, 0xff, 0x86, 0x43, 0x22, 0x19, 0x77, 0x14, 0x94, 0xbf, 0x49, 0x95, 0x8c, 0xd0, 0xf8, 0x25, 0x0c, 0x4d, 0x46, 0x39, 0x26, 0x70, 0x7a, 0x0a, 0xce, 0xdf, 0xa6, 0xc2, 0x39, 0x63, 0xc0, 0x91, 0x63, 0x0a, 0x69, 0x04, 0x03, 0xcc, 0xdf, 0xa5, 0x25, 0x8d, 0xe0, 0x18, 0x69, 0x30, 0xa4, 0x92, 0x26, 0x50, 0xfe, 0x3e, 0x35, 0x69, 0x2a, 0x8c, 0x20, 0x4d, 0xc7, 0xe9, 0x29, 0x38, 0xff, 0x90, 0x9a, 0xb4, 0x28, 0x8e, 0x1c, 0x13, 0x2d, 0x8d, 0xb7, 0x51, 0x00, 0xfa, 0xc7, 0x54, 0x2d, 0x8d, 0xf7, 0x7d, 0x89, 0x44, 0xbf, 0x0d, 0x65, 0x30, 0xa4, 0x8e, 0x95, 0x68, 0x40, 0xfa, 0xa7, 0x74, 0xd4, 0x31, 0x0f, 0x11, 0xea, 0xc2, 0x31, 0xb7, 0x84, 0x50, 0xa7, 0xdd, 0xe8, 0xac, 0x03, 0xc4, 0xd3, 0xb9, 0x92, 0x53, 0xde, 0x57, 0x1d, 0x09, 0xc6, 0xd9, 0x20, 0xb3, 0x38, 0x82, 0xf6, 0x83, 0x05, 0xc8, 0xd3, 0x67, 0xa8, 0x49, 0xae, 0x3a, 0x12, 0xc0, 0x3c, 0x90, 0xcb, 0x2f, 0x43, 0x13, 0x60, 0xc3, 0xb5, 0xf2, 0xb3, 0xd4, 0x68, 0xba, 0x3a, 0x12, 0xc0, 0x54, 0x2e, 0x76, 0x43, 0x2b, 0xae, 0x74, 0x9f, 0xa3, 0x56, 0x85, 0xd0, 0x8a, 0x4b, 0x55, 0x15, 0x8f, 0x60, 0xef, 0x79, 0x6a, 0x94, 0x55, 0xf1, 0x08, 0xd6, 0xf1, 0x08, 0xf6, 0x3e, 0x43, 0x8d, 0x5c, 0x0d, 0x4f, 0xb5, 0xe2, 0x22, 0xf1, 0xb3, 0xd4, 0x6a, 0x54, 0xc3, 0x23, 0xd8, 0x7d, 0x39, 0x2a, 0x80, 0x95, 0x90, 0x5d, 0x9f, 0xa3, 0x66, 0x63, 0xd5, 0x91, 0x00, 0x66, 0x0b, 0x89, 0x56, 0x46, 0x93, 0x1c, 0x53, 0x18, 0x7e, 0x9e, 0x1a, 0x4e, 0x55, 0x47, 0x02, 0x70, 0x10, 0xca, 0xab, 0x30, 0x02, 0xd0, 0x56, 0xbf, 0x4c, 0xcd, 0x32, 0x61, 0x04, 0xa0, 0x8e, 0x74, 0x54, 0x82, 0xbd, 0x5f, 0xa1, 0x56, 0x79, 0x1d, 0x95, 0x1d, 0x20, 0x68, 0xa8, 0x04, 0x7b, 0xbf, 0x4a, 0x0d, 0x8b, 0x11, 0x54, 0x35, 0x5a, 0xae, 0x49, 0x5e, 0xa0, 0x76, 0x4e, 0x18, 0x2d, 0x17, 0x15, 0x92, 0x39, 0x50, 0x14, 0x5f, 0xa0, 0x56, 0xe3, 0x92, 0x39, 0x90, 0x04, 0x61, 0x04, 0xa0, 0x07, 0xbe, 0x48, 0x8d, 0x26, 0xc2, 0x08, 0xa0, 0xa3, 0xd7, 0x51, 0x11, 0x6c, 0x94, 0x76, 0xfe, 0xa5, 0x5c, 0xfa, 0xc7, 0xb8, 0xd5, 0x91, 0x00, 0x42, 0x95, 0x2d, 0xfc, 0x56, 0x74, 0x40, 0x85, 0x10, 0x5d, 0xe5, 0xcb, 0xb9, 0xa1, 0x5e, 0xb1, 0xa9, 0x8e, 0x04, 0xd3, 0x12, 0x48, 0x74, 0x91, 0x35, 0x04, 0x83, 0x5a, 0xc3, 0xfe, 0x4a, 0x6e, 0x88, 0xf7, 0x6b, 0xaa, 0x23, 0xc1, 0x14, 0x73, 0xa9, 0x34, 0xe9, 0x15, 0xe4, 0x8a, 0x8d, 0xab, 0x74, 0xe8, 0xaf, 0xe6, 0xd2, 0x3c, 0x8b, 0xae, 0x8e, 0x04, 0x45, 0xbe, 0xdd, 0x65, 0x37, 0x3e, 0x87, 0x0e, 0xe9, 0x00, 0x82, 0xb4, 0xaf, 0xe5, 0x52, 0xbe, 0x59, 0x53, 0x1d, 0x09, 0x0e, 0xa8, 0x30, 0x82, 0xb0, 0x1f, 0xe3, 0x95, 0x03, 0x98, 0xfa, 0x7a, 0xce, 0xfa, 0x35, 0xc1, 0x9b, 0xe8, 0x6c, 0xc1, 0x94, 0xe2, 0x4b, 0xe6, 0x06, 0xec, 0xd1, 0x45, 0xef, 0x1b, 0x62, 0x93, 0x4e, 0x28, 0x9b, 0x74, 0x31, 0x6a, 0xe7, 0x7b, 0xdf, 0x34, 0xd9, 0xf9, 0x51, 0xbb, 0x25, 0xef, 0x5b, 0x26, 0xbb, 0x25, 0xf7, 0x0a, 0x74, 0x90, 0x67, 0x90, 0xfe, 0x40, 0xeb, 0xde, 0xbc, 0x7c, 0xa1, 0xa7, 0xea, 0x04, 0xf0, 0x0d, 0xea, 0xcf, 0xb3, 0xae, 0x12, 0xb4, 0x47, 0x1f, 0x66, 0xbd, 0x2f, 0xaf, 0xbe, 0xdd, 0x53, 0x75, 0x38, 0x97, 0x91, 0x67, 0x59, 0x57, 0xa3, 0x99, 0xe8, 0x74, 0x5e, 0x49, 0xef, 0xcb, 0x2b, 0xaf, 0xfa, 0x54, 0x9d, 0xe0, 0xa0, 0x3e, 0x9d, 0x57, 0xd6, 0xab, 0xe2, 0xf3, 0x79, 0x8d, 0xbd, 0x3f, 0x2f, 0xdf, 0xfb, 0x89, 0x4f, 0x3f, 0x23, 0x1e, 0x83, 0x99, 0x56, 0x4f, 0xb0, 0xf7, 0x40, 0x3e, 0xfa, 0x12, 0x90, 0x31, 0x02, 0x82, 0x93, 0x22, 0x20, 0xd8, 0x7b, 0x30, 0xaf, 0xbc, 0x11, 0x64, 0x8e, 0x80, 0xe0, 0xa4, 0x08, 0x08, 0xf6, 0x1e, 0xca, 0xcb, 0xd7, 0x83, 0xcc, 0x11, 0xb0, 0x47, 0x5f, 0xb3, 0xd1, 0xe9, 0xa2, 0x4a, 0x3f, 0x9c, 0x57, 0xdf, 0x15, 0xaa, 0x3a, 0xc1, 0x21, 0xdd, 0x83, 0xa8, 0xef, 0xd7, 0x21, 0x2f, 0x16, 0x81, 0xf0, 0xf1, 0x48, 0x5e, 0x7b, 0x71, 0xa8, 0xea, 0x04, 0x33, 0x91, 0x28, 0x44, 0xed, 0xbf, 0x3a, 0x4e, 0x25, 0x74, 0x81, 0xf7, 0xe7, 0xb5, 0xb7, 0x88, 0xe2, 0x3c, 0x42, 0x5f, 0x48, 0x0a, 0x84, 0x60, 0xef, 0x03, 0x79, 0xf5, 0x95, 0xa2, 0x84, 0x40, 0x08, 0x4e, 0x0e, 0x84, 0x60, 0xef, 0xd1, 0xbc, 0xf6, 0x7e, 0x51, 0x52, 0x20, 0x04, 0xbb, 0xd7, 0xc7, 0xbf, 0x10, 0xde, 0x58, 0x1e, 0xcb, 0x1b, 0x5e, 0x36, 0x8a, 0x7f, 0x33, 0xbc, 0xe1, 0xdc, 0x60, 0xd8, 0x18, 0xd0, 0x7a, 0x1e, 0xcf, 0x9b, 0xdf, 0x3c, 0x32, 0xec, 0x11, 0xe8, 0x4a, 0x37, 0xc5, 0xb9, 0x85, 0xfe, 0xf4, 0x44, 0x7e, 0xf0, 0x6b, 0x48, 0x71, 0xb2, 0xa1, 0x85, 0xbd, 0x16, 0xcd, 0x45, 0x1d, 0x2a, 0xcd, 0xec, 0xc9, 0xfc, 0xd0, 0xef, 0x24, 0x55, 0x9d, 0x60, 0x56, 0x07, 0x56, 0xff, 0x3e, 0xbd, 0x38, 0x9e, 0x31, 0x4a, 0x53, 0x78, 0x2a, 0x3f, 0xc4, 0x0b, 0x4a, 0x55, 0x27, 0x38, 0x1c, 0xcd, 0xb3, 0xd0, 0x66, 0xee, 0xa7, 0xd0, 0x84, 0xd6, 0xfb, 0x5e, 0xc4, 0x37, 0xcd, 0xe7, 0xee, 0x42, 0x48, 0xe9, 0x87, 0x2f, 0x26, 0xf2, 0x35, 0xa8, 0xa0, 0xbd, 0xc9, 0x69, 0x0b, 0x4e, 0x1d, 0x68, 0xef, 0x44, 0xa4, 0x73, 0xa0, 0x1c, 0x9e, 0x5b, 0x3b, 0xb8, 0x1a, 0x15, 0xa3, 0x87, 0xe3, 0x6e, 0x11, 0x65, 0x6f, 0x6b, 0x9c, 0x67, 0x4e, 0xf6, 0x05, 0xf4, 0x7f, 0xdd, 0x83, 0x28, 0x77, 0x47, 0xbd, 0xd9, 0x6b, 0x78, 0x19, 0x36, 0x06, 0xff, 0xa8, 0x64, 0x4e, 0x3a, 0x73, 0xd7, 0xa0, 0xe9, 0xd8, 0xc9, 0xf7, 0x6e, 0x0e, 0x72, 0xaa, 0x83, 0x57, 0x20, 0x37, 0x7e, 0xa8, 0xbd, 0x9b, 0x87, 0x69, 0xb3, 0x87, 0x33, 0x7b, 0xf7, 0x50, 0x48, 0x0c, 0x82, 0x9f, 0xd2, 0xed, 0xe6, 0x20, 0x9b, 0x1c, 0xc4, 0x1e, 0x3d, 0xb8, 0xc9, 0x41, 0xec, 0xd1, 0xc3, 0xa8, 0xea, 0xe1, 0x14, 0x3a, 0x60, 0x38, 0x17, 0xde, 0xcd, 0xc5, 0x98, 0xea, 0x62, 0x19, 0x1d, 0x34, 0x1d, 0xf7, 0xee, 0xe6, 0x63, 0xca, 0xcc, 0xa5, 0x3c, 0xc7, 0xdd, 0xcd, 0x41, 0x66, 0x40, 0x1c, 0x7b, 0xa4, 0x22, 0x3f, 0x28, 0x8e, 0x3d, 0xfa, 0x28, 0x9a, 0xbf, 0x10, 0xe5, 0x40, 0x75, 0x37, 0x0f, 0x4e, 0xc2, 0xa6, 0x90, 0x47, 0xa5, 0xbb, 0x79, 0x18, 0x37, 0x73, 0x29, 0x4f, 0x41, 0x77, 0x73, 0x30, 0xa1, 0x3a, 0x38, 0x8f, 0x0e, 0x19, 0x0f, 0x37, 0x0d, 0x4e, 0x5e, 0xa5, 0x3a, 0x49, 0xfb, 0x30, 0x57, 0x81, 0xbe, 0x1b, 0x79, 0x49, 0x47, 0x9c, 0x06, 0xf4, 0x1b, 0x55, 0xf4, 0x21, 0x1e, 0xf0, 0x2a, 0x0b, 0x78, 0x2d, 0x9a, 0x31, 0x1f, 0x75, 0x1a, 0xe0, 0x7f, 0x44, 0x87, 0x4f, 0xf9, 0xc4, 0x57, 0x01, 0xef, 0xa1, 0xd9, 0x84, 0x13, 0x4f, 0x03, 0xfa, 0x75, 0x3a, 0xf5, 0xb6, 0x0f, 0x81, 0xb5, 0x98, 0xe7, 0x92, 0x4f, 0x3b, 0x0d, 0xc8, 0xaf, 0xd4, 0xe3, 0x4e, 0xf1, 0x58, 0x38, 0xb6, 0x5b, 0xf5, 0x33, 0x4f, 0x15, 0x33, 0xb7, 0x5b, 0x2f, 0x81, 0x84, 0x89, 0x1c, 0x67, 0xaa, 0x1e, 0xa6, 0xf7, 0xe6, 0xe1, 0x4c, 0xb2, 0x87, 0xc2, 0xde, 0xfa, 0x99, 0x7e, 0x06, 0xa9, 0x3a, 0xc8, 0xee, 0x3d, 0x88, 0x04, 0x0f, 0xee, 0xde, 0x83, 0x48, 0xf0, 0x30, 0xba, 0x9b, 0x07, 0x28, 0xa1, 0xd1, 0x13, 0x41, 0xd5, 0xc5, 0xd8, 0x1e, 0xc3, 0xd0, 0x8f, 0xfa, 0x54, 0x0f, 0xe3, 0xbb, 0x79, 0xb8, 0x12, 0x21, 0xf9, 0xf7, 0xb8, 0xb5, 0x2e, 0xa9, 0xa2, 0x99, 0xd3, 0x77, 0x75, 0x1b, 0xed, 0x9d, 0xcd, 0x4e, 0x7b, 0x38, 0x8d, 0xa5, 0x7a, 0x1a, 0x4a, 0x2b, 0x1d, 0x99, 0x47, 0xe3, 0x52, 0x6c, 0x8f, 0x23, 0xd0, 0xc5, 0xc5, 0x11, 0xfa, 0xbf, 0xcb, 0xc1, 0xa9, 0x1f, 0xbd, 0xa9, 0xe8, 0xb8, 0xfb, 0xd1, 0xd8, 0xb5, 0xd5, 0x53, 0xc1, 0xab, 0x6f, 0x38, 0x5d, 0xcc, 0x5c, 0x36, 0xbe, 0xef, 0x9e, 0x5a, 0xf1, 0xc2, 0x85, 0x0b, 0x17, 0x32, 0xfe, 0x59, 0x34, 0xdb, 0x10, 0x8b, 0x58, 0xd1, 0xee, 0x2c, 0xba, 0x16, 0xa2, 0xd3, 0xbb, 0xa7, 0xc6, 0x58, 0x3e, 0xd4, 0x88, 0x52, 0x43, 0xbf, 0x22, 0xbf, 0x81, 0x3c, 0x03, 0x08, 0xfc, 0x41, 0x6e, 0x83, 0xf2, 0x86, 0x1a, 0xcb, 0xd6, 0x99, 0x18, 0x0a, 0xcb, 0x6d, 0x7f, 0x03, 0x1d, 0x36, 0xc0, 0xec, 0xd8, 0xe3, 0xbc, 0xb1, 0xc6, 0x72, 0x7a, 0x36, 0x86, 0x03, 0x25, 0x20, 0x01, 0xa8, 0x67, 0x0f, 0xf4, 0xa6, 0x1a, 0x4b, 0xfd, 0x38, 0x10, 0x54, 0x8a, 0x64, 0xe2, 0x08, 0xb6, 0xc2, 0x79, 0x73, 0x8d, 0x55, 0x08, 0x23, 0x71, 0x04, 0x0f, 0x20, 0xce, 0x12, 0xe7, 0x2d, 0x35, 0x56, 0x47, 0xcc, 0xc4, 0x25, 0x02, 0xf5, 0xec, 0x81, 0xde, 0x5a, 0x63, 0xe5, 0xc6, 0x4c, 0x1c, 0xc1, 0xfe, 0x26, 0x9a, 0x33, 0x00, 0x89, 0x93, 0x0b, 0x1b, 0xa4, 0xb7, 0xd5, 0x58, 0x55, 0xf2, 0x62, 0x48, 0xbc, 0x8a, 0xf9, 0xb7, 0xa1, 0x8b, 0x4c, 0xe4, 0xa5, 0xc1, 0x7a, 0x7b, 0x8d, 0x89, 0xd6, 0xc3, 0x71, 0xfa, 0xb8, 0xb7, 0x84, 0x0d, 0xb1, 0x0e, 0xaf, 0xf6, 0x59, 0x20, 0xbd, 0xa3, 0xc6, 0xd4, 0x6d, 0x7c, 0x43, 0x30, 0x6d, 0x3c, 0x88, 0x3e, 0xcb, 0x2f, 0xea, 0x9d, 0x35, 0xa6, 0x81, 0x13, 0xe8, 0x23, 0x78, 0x20, 0x7d, 0x96, 0x58, 0xef, 0xaa, 0x31, 0xad, 0x9c, 0x44, 0x5f, 0xe2, 0xfe, 0x83, 0xc3, 0x1e, 0x2b, 0xa8, 0x7e, 0x8d, 0x89, 0xea, 0xf8, 0xfe, 0x03, 0x4d, 0x9e, 0x94, 0x51, 0x70, 0xb8, 0x63, 0x03, 0xf4, 0xee, 0x1a, 0xeb, 0x02, 0x86, 0x8c, 0x82, 0x13, 0x5f, 0xf3, 0x86, 0x60, 0x67, 0x45, 0x56, 0x38, 0xef, 0xa9, 0x31, 0x89, 0x1e, 0xdf, 0x10, 0x4c, 0xe0, 0xfb, 0x0f, 0x38, 0xe8, 0x12, 0x03, 0x8e, 0x3c, 0x42, 0xb2, 0x02, 0x7b, 0x6f, 0x6d, 0x08, 0x29, 0x3f, 0x17, 0x5b, 0x62, 0xf8, 0x99, 0xff, 0xb8, 0x83, 0x4a, 0x89, 0xcb, 0xe4, 0x8f, 0x07, 0xac, 0x56, 0x7a, 0x6f, 0x6d, 0x38, 0xd9, 0x7f, 0x89, 0x79, 0xb1, 0xfc, 0x63, 0xff, 0x61, 0x07, 0x7d, 0x9f, 0x61, 0xbd, 0xca, 0x73, 0x19, 0xab, 0xd5, 0xbe, 0xaf, 0x36, 0xcc, 0x5f, 0x09, 0x17, 0xc5, 0xd6, 0x2a, 0x3f, 0xf4, 0xef, 0x73, 0xd0, 0xa5, 0xc6, 0x1e, 0x21, 0x8f, 0xf1, 0xac, 0x96, 0x7a, 0x5f, 0x2d, 0xd5, 0x9f, 0x14, 0x17, 0x1b, 0x3a, 0x4b, 0xf8, 0xa9, 0xff, 0xa8, 0x83, 0x8e, 0x0c, 0x58, 0x64, 0x9a, 0x0d, 0x70, 0x7f, 0x2d, 0xed, 0x1f, 0x20, 0x97, 0x26, 0x2d, 0x55, 0x7c, 0xf9, 0x0f, 0x39, 0x48, 0xa6, 0x9b, 0x7e, 0xd3, 0xda, 0x66, 0x85, 0x0f, 0xd4, 0xd8, 0xe3, 0x28, 0x9b, 0x37, 0x6d, 0xcc, 0x02, 0x36, 0x48, 0x58, 0x8d, 0xdf, 0x54, 0x6b, 0x8c, 0xfe, 0xc0, 0xc8, 0x2e, 0x99, 0xfa, 0xea, 0x75, 0x71, 0x89, 0xa6, 0x3d, 0x5f, 0xf2, 0xb7, 0xd4, 0xd2, 0x19, 0x79, 0xc6, 0x64, 0x97, 0x0d, 0x7d, 0xfd, 0xba, 0xf9, 0x6c, 0x1c, 0x10, 0x74, 0xe3, 0xed, 0x6a, 0xb7, 0x8b, 0x3e, 0x96, 0xb2, 0xdb, 0xd5, 0x7d, 0xed, 0xba, 0xba, 0x17, 0x47, 0xe4, 0x0a, 0x72, 0xcb, 0x0c, 0x99, 0x42, 0x42, 0xde, 0xdf, 0x57, 0xaf, 0xbb, 0x1b, 0x10, 0xb9, 0x94, 0xec, 0x26, 0xd2, 0x6a, 0xd9, 0x65, 0x1f, 0xe8, 0xc7, 0xaf, 0xcb, 0x9b, 0xa9, 0x25, 0x78, 0x10, 0xb5, 0x96, 0xb0, 0x0f, 0xf6, 0xb5, 0xeb, 0xf6, 0x09, 0xd4, 0x12, 0x3c, 0x88, 0x5a, 0x4b, 0xc8, 0x87, 0xfa, 0xea, 0x75, 0xfd, 0x04, 0x6a, 0x09, 0xf6, 0xbb, 0xaa, 0x84, 0x89, 0x3d, 0x95, 0xb3, 0x82, 0x7c, 0xb8, 0xaf, 0x5f, 0xf7, 0x3f, 0x1c, 0x07, 0x15, 0xba, 0xf3, 0x4e, 0x74, 0xb1, 0x91, 0xda, 0x34, 0xb0, 0x8f, 0xf4, 0x23, 0x3f, 0x17, 0x30, 0x67, 0xa0, 0x57, 0x68, 0xd0, 0xdb, 0xcd, 0x3b, 0xc9, 0x5e, 0x84, 0xbe, 0xbf, 0x1f, 0xf9, 0xb9, 0x01, 0xc3, 0x36, 0x02, 0x3d, 0x3a, 0x88, 0x61, 0xcb, 0x2f, 0xf5, 0x03, 0x7d, 0xfd, 0xe7, 0x0a, 0x92, 0x18, 0x26, 0x78, 0x30, 0xc3, 0x96, 0xb0, 0x8f, 0xf6, 0x23, 0x3f, 0x77, 0x90, 0xc8, 0x30, 0xc1, 0xfe, 0x79, 0xf3, 0x16, 0x4e, 0xa1, 0x53, 0x1f, 0xeb, 0x1b, 0x7f, 0x2e, 0xc1, 0xb0, 0x97, 0xb9, 0x70, 0x7d, 0x5d, 0x42, 0xc2, 0xda, 0x2b, 0xd7, 0xc7, 0xfb, 0x49, 0x3f, 0xb7, 0x60, 0xca, 0x5d, 0x50, 0xb3, 0xaf, 0x77, 0xcc, 0x7b, 0xcb, 0x5e, 0xcf, 0x3e, 0xd1, 0xdf, 0xed, 0xf7, 0x1a, 0x0c, 0x9b, 0x0d, 0xb4, 0xee, 0x13, 0x9a, 0x28, 0x33, 0x3d, 0x2f, 0xb5, 0x5a, 0xc9, 0x93, 0xfd, 0xef, 0xc1, 0x0f, 0x3e, 0x5c, 0x14, 0x5f, 0xac, 0x54, 0xbd, 0x8f, 0x69, 0xaa, 0xd7, 0xfc, 0x8c, 0xd5, 0x6a, 0xc9, 0x4f, 0xf5, 0x87, 0xfa, 0xc5, 0x88, 0x4b, 0x4c, 0xb5, 0x59, 0xaa, 0xb4, 0x35, 0xf5, 0xc8, 0x49, 0xbb, 0x2c, 0x68, 0xb7, 0xc8, 0xef, 0x3a, 0xec, 0x66, 0xa1, 0x3c, 0x73, 0x0a, 0x94, 0x2b, 0x86, 0xfe, 0xba, 0x2a, 0x5a, 0xf4, 0xcb, 0x86, 0x56, 0x30, 0x1f, 0x64, 0x30, 0xea, 0xa1, 0x53, 0xa0, 0x5e, 0x51, 0xf4, 0xcf, 0xa9, 0x3b, 0x36, 0x72, 0x59, 0xd1, 0x0a, 0xe8, 0x43, 0x0c, 0x48, 0x3d, 0x75, 0x0a, 0xb4, 0x2b, 0x8e, 0x09, 0x48, 0x29, 0x24, 0xc3, 0x87, 0x19, 0x52, 0xc1, 0x80, 0xc4, 0xb5, 0x42, 0x22, 0x77, 0x96, 0x45, 0xef, 0x23, 0x0c, 0x28, 0x6b, 0xe6, 0x8e, 0xe0, 0x01, 0xdc, 0x59, 0x02, 0x7d, 0x94, 0x01, 0xb9, 0x09, 0xdc, 0x25, 0x22, 0xa5, 0xd0, 0x04, 0x1f, 0x63, 0x48, 0xa3, 0x09, 0xdc, 0x11, 0xec, 0xdf, 0xaa, 0x16, 0xd0, 0xe8, 0x65, 0x4f, 0x2b, 0xa8, 0x8f, 0x33, 0x28, 0xf5, 0xe8, 0x29, 0xd0, 0xaf, 0x88, 0xfa, 0x4d, 0xb5, 0x2d, 0xc6, 0x2e, 0x8b, 0x5a, 0x81, 0x7d, 0x82, 0x81, 0xa9, 0x67, 0x4f, 0x41, 0xe4, 0x8a, 0x69, 0xc2, 0xae, 0xb0, 0x6f, 0xfb, 0x9f, 0x64, 0x50, 0x19, 0xc3, 0xae, 0x80, 0x66, 0x3f, 0x80, 0x41, 0xcb, 0x2f, 0xeb, 0x53, 0x0c, 0x29, 0x9f, 0xc4, 0x20, 0xc1, 0x03, 0x19, 0xb4, 0x04, 0xfb, 0x34, 0x03, 0x2b, 0x26, 0x32, 0x98, 0xb8, 0x0b, 0x53, 0xb4, 0xf5, 0xa7, 0x19, 0x96, 0x63, 0xd8, 0x85, 0xbc, 0x8d, 0x27, 0x64, 0x96, 0x7d, 0x17, 0x7f, 0x86, 0x21, 0x8d, 0x9b, 0x32, 0x0b, 0x5a, 0xb6, 0x79, 0x57, 0xd8, 0x37, 0xec, 0x67, 0x19, 0xd0, 0x84, 0x61, 0x57, 0x40, 0x57, 0x7e, 0x50, 0x3b, 0x81, 0x32, 0xdc, 0xf6, 0xb5, 0x42, 0x7b, 0x8e, 0xa1, 0x0d, 0x7f, 0x04, 0x15, 0x44, 0xef, 0x08, 0x53, 0xf5, 0x50, 0x4a, 0x5c, 0x67, 0x9a, 0x13, 0x88, 0xe7, 0xd9, 0x52, 0xbf, 0x27, 0x67, 0x50, 0x81, 0xe1, 0x92, 0xb1, 0xff, 0x88, 0x26, 0x77, 0x4c, 0xf7, 0x8d, 0xad, 0x96, 0xfb, 0x19, 0xbe, 0xdc, 0xa1, 0x0f, 0xa1, 0x82, 0xd8, 0x2d, 0x65, 0xff, 0x7e, 0xed, 0x10, 0xca, 0x78, 0x61, 0xd9, 0x6a, 0xad, 0x9f, 0xe5, 0xbb, 0x20, 0xfd, 0x29, 0x54, 0x10, 0xbf, 0xe6, 0x4c, 0xe5, 0xd8, 0x91, 0x01, 0xab, 0x4c, 0xb3, 0x07, 0x3e, 0xc7, 0x49, 0x1d, 0xea, 0x18, 0x2a, 0x30, 0xde, 0x93, 0xf6, 0x1f, 0x56, 0x8f, 0xa1, 0xf4, 0x1b, 0xce, 0x36, 0x4b, 0xfc, 0x3c, 0x5b, 0x62, 0xca, 0x73, 0x28, 0xfd, 0x9e, 0x75, 0xc2, 0x72, 0x96, 0x0b, 0xe2, 0x55, 0xfd, 0x5e, 0x7b, 0xb3, 0xd3, 0x5e, 0x9e, 0x8d, 0xbf, 0x23, 0xc9, 0x3e, 0xb8, 0x6c, 0x11, 0xed, 0x57, 0xdf, 0x13, 0x37, 0x3d, 0x10, 0x45, 0xee, 0x84, 0x7c, 0x20, 0xfa, 0x82, 0xb3, 0xfc, 0x9a, 0x1f, 0xaf, 0xc5, 0x96, 0x7d, 0x8c, 0x2d, 0x7b, 0xb5, 0xb7, 0x7e, 0x6c, 0xb3, 0xdd, 0x6d, 0x6c, 0xb7, 0xeb, 0x4d, 0xf6, 0x3b, 0xb7, 0x6c, 0x74, 0xe7, 0x58, 0xb3, 0xb1, 0x51, 0x3f, 0x7b, 0xfe, 0x58, 0xd2, 0x4f, 0xe2, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe2, 0xf2, 0x23, 0x9e, 0x2d, 0x57, 0x00, 0x00, } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto2_20180814_aa810b61/test.proto000066400000000000000000000341021411250152500311460ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package google.golang.org.proto2_20180814; option go_package = "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20180814_aa810b61"; enum SiblingEnum { ALPHA = 0; BRAVO = 10; CHARLIE = 200; } message SiblingMessage { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; optional Message f4 = 4; } message Message { enum ChildEnum { ALPHA = 0; BRAVO = 1; CHARLIE = 2; } message ChildMessage { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; optional Message f4 = 4; } optional group NamedGroup = 1 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; optional Message f4 = 4; } // Optional fields. optional bool optional_bool = 100; optional int32 optional_int32 = 101; optional sint32 optional_sint32 = 102; optional uint32 optional_uint32 = 103; optional int64 optional_int64 = 104; optional sint64 optional_sint64 = 105; optional uint64 optional_uint64 = 106; optional fixed32 optional_fixed32 = 107; optional sfixed32 optional_sfixed32 = 108; optional float optional_float = 109; optional fixed64 optional_fixed64 = 110; optional sfixed64 optional_sfixed64 = 111; optional double optional_double = 112; optional string optional_string = 113; optional bytes optional_bytes = 114; optional ChildEnum optional_child_enum = 115; optional ChildMessage optional_child_message = 116; optional NamedGroup optional_named_group = 117; optional SiblingEnum optional_sibling_enum = 118; optional SiblingMessage optional_sibling_message = 119; optional group OptionalGroup = 120 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Optional default fields. optional bool defaulted_bool = 200 [default = true]; optional int32 defaulted_int32 = 201 [default = -12345]; optional sint32 defaulted_sint32 = 202 [default = -3200]; optional uint32 defaulted_uint32 = 203 [default = 3200]; optional int64 defaulted_int64 = 204 [default = -123456789]; optional sint64 defaulted_sint64 = 205 [default = -6400]; optional uint64 defaulted_uint64 = 206 [default = 6400]; optional fixed32 defaulted_fixed32 = 207 [default = 320000]; optional sfixed32 defaulted_sfixed32 = 208 [default = -320000]; optional float defaulted_float = 209 [default = 3.14159]; optional fixed64 defaulted_fixed64 = 210 [default = 640000]; optional sfixed64 defaulted_sfixed64 = 211 [default = -640000]; optional double defaulted_double = 212 [default = 3.14159265359]; optional string defaulted_string = 213 [default = "hello, \"world!\"\n"]; optional bytes defaulted_bytes = 214 [default = "dead\xde\xad\xbe\xefbeef"]; optional ChildEnum defaulted_child_enum = 215 [default = ALPHA]; optional SiblingEnum defaulted_sibling_enum = 216 [default = ALPHA]; // Required fields. required bool required_bool = 300; required int32 required_int32 = 301; required sint32 required_sint32 = 302; required uint32 required_uint32 = 303; required int64 required_int64 = 304; required sint64 required_sint64 = 305; required uint64 required_uint64 = 306; required fixed32 required_fixed32 = 307; required sfixed32 required_sfixed32 = 308; required float required_float = 309; required fixed64 required_fixed64 = 310; required sfixed64 required_sfixed64 = 311; required double required_double = 312; required string required_string = 313; required bytes required_bytes = 314; required ChildEnum required_child_enum = 315; required ChildMessage required_child_message = 316; required NamedGroup required_named_group = 317; required SiblingEnum required_sibling_enum = 318; required SiblingMessage required_sibling_message = 319; required group RequiredGroup = 320 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Required default fields. required bool required_defaulted_bool = 400 [default = true]; required int32 required_defaulted_int32 = 401 [default = -12345]; required sint32 required_defaulted_sint32 = 402 [default = -3200]; required uint32 required_defaulted_uint32 = 403 [default = 3200]; required int64 required_defaulted_int64 = 404 [default = -123456789]; required sint64 required_defaulted_sint64 = 405 [default = -6400]; required uint64 required_defaulted_uint64 = 406 [default = 6400]; required fixed32 required_defaulted_fixed32 = 407 [default = 320000]; required sfixed32 required_defaulted_sfixed32 = 408 [default = -320000]; required float required_defaulted_float = 409 [default = 3.14159]; required fixed64 required_defaulted_fixed64 = 410 [default = 640000]; required sfixed64 required_defaulted_sfixed64 = 411 [default = -640000]; required double required_defaulted_double = 412 [default = 3.14159265359]; required string required_defaulted_string = 413 [default = "hello, \"world!\"\n"]; required bytes required_defaulted_bytes = 414 [default = "dead\xde\xad\xbe\xefbeef"]; required ChildEnum required_defaulted_child_enum = 415 [default = ALPHA]; required SiblingEnum required_defaulted_sibling_enum = 416 [default = ALPHA]; // Repeated fields. repeated bool repeated_bool = 500; repeated int32 repeated_int32 = 501; repeated sint32 repeated_sint32 = 502; repeated uint32 repeated_uint32 = 503; repeated int64 repeated_int64 = 504; repeated sint64 repeated_sint64 = 505; repeated uint64 repeated_uint64 = 506; repeated fixed32 repeated_fixed32 = 507; repeated sfixed32 repeated_sfixed32 = 508; repeated float repeated_float = 509; repeated fixed64 repeated_fixed64 = 510; repeated sfixed64 repeated_sfixed64 = 511; repeated double repeated_double = 512; repeated string repeated_string = 513; repeated bytes repeated_bytes = 514; repeated ChildEnum repeated_child_enum = 515; repeated ChildMessage repeated_child_message = 516; repeated NamedGroup repeated_named_group = 517; repeated SiblingEnum repeated_sibling_enum = 518; repeated SiblingMessage repeated_sibling_message = 519; repeated group RepeatedGroup = 520 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Map fields. map map_bool_bool = 600; map map_bool_int32 = 601; map map_bool_sint32 = 602; map map_bool_uint32 = 603; map map_bool_int64 = 604; map map_bool_sint64 = 605; map map_bool_uint64 = 606; map map_bool_fixed32 = 607; map map_bool_sfixed32 = 608; map map_bool_float = 609; map map_bool_fixed64 = 610; map map_bool_sfixed64 = 611; map map_bool_double = 612; map map_bool_string = 613; map map_bool_bytes = 614; map map_bool_child_enum = 615; map map_bool_child_message = 616; map map_bool_named_group = 617; map map_bool_sibling_enum = 618; map map_bool_sibling_message = 619; map map_int32_bool = 620; map map_sint32_bool = 621; map map_uint32_bool = 622; map map_int64_bool = 623; map map_sint64_bool = 624; map map_uint64_bool = 625; map map_fixed32_bool = 626; map map_string_bool = 627; // Oneof fields. oneof oneof_union { bool oneof_bool = 700; int32 oneof_int32 = 701; sint32 oneof_sint32 = 702; uint32 oneof_uint32 = 703; int64 oneof_int64 = 704; sint64 oneof_sint64 = 705; uint64 oneof_uint64 = 706; fixed32 oneof_fixed32 = 707; sfixed32 oneof_sfixed32 = 708; float oneof_float = 709; fixed64 oneof_fixed64 = 710; sfixed64 oneof_sfixed64 = 711; double oneof_double = 712; string oneof_string = 713; bytes oneof_bytes = 714; ChildEnum oneof_child_enum = 715; ChildMessage oneof_child_message = 716; NamedGroup oneof_named_group = 717; SiblingEnum oneof_sibling_enum = 718; SiblingMessage oneof_sibling_message = 719; group OneofGroup = 720 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } string oneof_string1 = 721; string oneof_string2 = 722; string oneof_string3 = 723; } // Oneof default fields. oneof oneof_defaulted_union { bool oneof_defaulted_bool = 800 [default = true]; int32 oneof_defaulted_int32 = 801 [default = -12345]; sint32 oneof_defaulted_sint32 = 802 [default = -3200]; uint32 oneof_defaulted_uint32 = 803 [default = 3200]; int64 oneof_defaulted_int64 = 804 [default = -123456789]; sint64 oneof_defaulted_sint64 = 805 [default = -6400]; uint64 oneof_defaulted_uint64 = 806 [default = 6400]; fixed32 oneof_defaulted_fixed32 = 807 [default = 320000]; sfixed32 oneof_defaulted_sfixed32 = 808 [default = -320000]; float oneof_defaulted_float = 809 [default = 3.14159]; fixed64 oneof_defaulted_fixed64 = 810 [default = 640000]; sfixed64 oneof_defaulted_sfixed64 = 811 [default = -640000]; double oneof_defaulted_double = 812 [default = 3.14159265359]; string oneof_defaulted_string = 813 [default = "hello, \"world!\"\n"]; bytes oneof_defaulted_bytes = 814 [default = "dead\xde\xad\xbe\xefbeef"]; ChildEnum oneof_defaulted_child_enum = 815 [default = ALPHA]; SiblingEnum oneof_defaulted_sibling_enum = 816 [default = ALPHA]; } // Extension fields. extend Message { // Optional fields. optional bool extension_optional_bool = 10000; optional int32 extension_optional_int32 = 10001; optional sint32 extension_optional_sint32 = 10002; optional uint32 extension_optional_uint32 = 10003; optional int64 extension_optional_int64 = 10004; optional sint64 extension_optional_sint64 = 10005; optional uint64 extension_optional_uint64 = 10006; optional fixed32 extension_optional_fixed32 = 10007; optional sfixed32 extension_optional_sfixed32 = 10008; optional float extension_optional_float = 10009; optional fixed64 extension_optional_fixed64 = 10010; optional sfixed64 extension_optional_sfixed64 = 10011; optional double extension_optional_double = 10012; optional string extension_optional_string = 10013; optional bytes extension_optional_bytes = 10014; optional ChildEnum extension_optional_child_enum = 10015; optional ChildMessage extension_optional_child_message = 10016; optional NamedGroup extension_optional_named_group = 10017; optional SiblingEnum extension_optional_sibling_enum = 10018; optional SiblingMessage extension_optional_sibling_message = 10019; optional group ExtensionOptionalGroup = 10020 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Optional default fields. optional bool extension_defaulted_bool = 20000 [default = true]; optional int32 extension_defaulted_int32 = 20001 [default = -12345]; optional sint32 extension_defaulted_sint32 = 20002 [default = -3200]; optional uint32 extension_defaulted_uint32 = 20003 [default = 3200]; optional int64 extension_defaulted_int64 = 20004 [default = -123456789]; optional sint64 extension_defaulted_sint64 = 20005 [default = -6400]; optional uint64 extension_defaulted_uint64 = 20006 [default = 6400]; optional fixed32 extension_defaulted_fixed32 = 20007 [default = 320000]; optional sfixed32 extension_defaulted_sfixed32 = 20008 [default = -320000]; optional float extension_defaulted_float = 20009 [default = 3.14159]; optional fixed64 extension_defaulted_fixed64 = 20010 [default = 640000]; optional sfixed64 extension_defaulted_sfixed64 = 20011 [default = -640000]; optional double extension_defaulted_double = 20012 [default = 3.14159265359]; optional string extension_defaulted_string = 20013 [default = "hello, \"world!\"\n"]; optional bytes extension_defaulted_bytes = 20014 [default = "dead\xde\xad\xbe\xefbeef"]; optional ChildEnum extension_defaulted_child_enum = 20015 [default = ALPHA]; optional SiblingEnum extension_defaulted_sibling_enum = 20016 [default = ALPHA]; // Repeated fields. repeated bool extension_repeated_bool = 30000; repeated int32 extension_repeated_int32 = 30001; repeated sint32 extension_repeated_sint32 = 30002; repeated uint32 extension_repeated_uint32 = 30003; repeated int64 extension_repeated_int64 = 30004; repeated sint64 extension_repeated_sint64 = 30005; repeated uint64 extension_repeated_uint64 = 30006; repeated fixed32 extension_repeated_fixed32 = 30007; repeated sfixed32 extension_repeated_sfixed32 = 30008; repeated float extension_repeated_float = 30009; repeated fixed64 extension_repeated_fixed64 = 30010; repeated sfixed64 extension_repeated_sfixed64 = 30011; repeated double extension_repeated_double = 30012; repeated string extension_repeated_string = 30013; repeated bytes extension_repeated_bytes = 30014; repeated ChildEnum extension_repeated_child_enum = 30015; repeated ChildMessage extension_repeated_child_message = 30016; repeated NamedGroup extension_repeated_named_group = 30017; repeated SiblingEnum extension_repeated_sibling_enum = 30018; repeated SiblingMessage extension_repeated_sibling_message = 30019; repeated group ExtensionRepeatedGroup = 30020 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } } extensions 10000 to max; } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto2_20190205_c823c79e/000077500000000000000000000000001411250152500271215ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto2_20190205_c823c79e/test.pb.go000066400000000000000000004253711411250152500310430ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: proto2_20190205_c823c79e/test.proto package proto2_20190205_c823c79e import ( fmt "fmt" math "math" proto "google.golang.org/protobuf/internal/protolegacy" ) // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. // A compilation error at this line likely means your copy of the // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package type SiblingEnum int32 const ( SiblingEnum_ALPHA SiblingEnum = 0 SiblingEnum_BRAVO SiblingEnum = 10 SiblingEnum_CHARLIE SiblingEnum = 200 ) var SiblingEnum_name = map[int32]string{ 0: "ALPHA", 10: "BRAVO", 200: "CHARLIE", } var SiblingEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 10, "CHARLIE": 200, } func (x SiblingEnum) Enum() *SiblingEnum { p := new(SiblingEnum) *p = x return p } func (x SiblingEnum) String() string { return proto.EnumName(SiblingEnum_name, int32(x)) } func (x *SiblingEnum) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(SiblingEnum_value, data, "SiblingEnum") if err != nil { return err } *x = SiblingEnum(value) return nil } func (SiblingEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor_3a17e2c63b2b3424, []int{0} } type Message_ChildEnum int32 const ( Message_ALPHA Message_ChildEnum = 0 Message_BRAVO Message_ChildEnum = 1 Message_CHARLIE Message_ChildEnum = 2 ) var Message_ChildEnum_name = map[int32]string{ 0: "ALPHA", 1: "BRAVO", 2: "CHARLIE", } var Message_ChildEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 1, "CHARLIE": 2, } func (x Message_ChildEnum) Enum() *Message_ChildEnum { p := new(Message_ChildEnum) *p = x return p } func (x Message_ChildEnum) String() string { return proto.EnumName(Message_ChildEnum_name, int32(x)) } func (x *Message_ChildEnum) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(Message_ChildEnum_value, data, "Message_ChildEnum") if err != nil { return err } *x = Message_ChildEnum(value) return nil } func (Message_ChildEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor_3a17e2c63b2b3424, []int{1, 0} } type SiblingMessage struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` F4 *Message `protobuf:"bytes,4,opt,name=f4" json:"f4,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *SiblingMessage) Reset() { *m = SiblingMessage{} } func (m *SiblingMessage) String() string { return proto.CompactTextString(m) } func (*SiblingMessage) ProtoMessage() {} func (*SiblingMessage) Descriptor() ([]byte, []int) { return fileDescriptor_3a17e2c63b2b3424, []int{0} } func (m *SiblingMessage) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SiblingMessage.Unmarshal(m, b) } func (m *SiblingMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_SiblingMessage.Marshal(b, m, deterministic) } func (m *SiblingMessage) XXX_Merge(src proto.Message) { xxx_messageInfo_SiblingMessage.Merge(m, src) } func (m *SiblingMessage) XXX_Size() int { return xxx_messageInfo_SiblingMessage.Size(m) } func (m *SiblingMessage) XXX_DiscardUnknown() { xxx_messageInfo_SiblingMessage.DiscardUnknown(m) } var xxx_messageInfo_SiblingMessage proto.InternalMessageInfo func (m *SiblingMessage) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *SiblingMessage) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *SiblingMessage) GetF3() []string { if m != nil { return m.F3 } return nil } func (m *SiblingMessage) GetF4() *Message { if m != nil { return m.F4 } return nil } type Message struct { Namedgroup *Message_NamedGroup `protobuf:"group,1,opt,name=NamedGroup,json=namedgroup" json:"namedgroup,omitempty"` // Optional fields. OptionalBool *bool `protobuf:"varint,100,opt,name=optional_bool,json=optionalBool" json:"optional_bool,omitempty"` OptionalInt32 *int32 `protobuf:"varint,101,opt,name=optional_int32,json=optionalInt32" json:"optional_int32,omitempty"` OptionalSint32 *int32 `protobuf:"zigzag32,102,opt,name=optional_sint32,json=optionalSint32" json:"optional_sint32,omitempty"` OptionalUint32 *uint32 `protobuf:"varint,103,opt,name=optional_uint32,json=optionalUint32" json:"optional_uint32,omitempty"` OptionalInt64 *int64 `protobuf:"varint,104,opt,name=optional_int64,json=optionalInt64" json:"optional_int64,omitempty"` OptionalSint64 *int64 `protobuf:"zigzag64,105,opt,name=optional_sint64,json=optionalSint64" json:"optional_sint64,omitempty"` OptionalUint64 *uint64 `protobuf:"varint,106,opt,name=optional_uint64,json=optionalUint64" json:"optional_uint64,omitempty"` OptionalFixed32 *uint32 `protobuf:"fixed32,107,opt,name=optional_fixed32,json=optionalFixed32" json:"optional_fixed32,omitempty"` OptionalSfixed32 *int32 `protobuf:"fixed32,108,opt,name=optional_sfixed32,json=optionalSfixed32" json:"optional_sfixed32,omitempty"` OptionalFloat *float32 `protobuf:"fixed32,109,opt,name=optional_float,json=optionalFloat" json:"optional_float,omitempty"` OptionalFixed64 *uint64 `protobuf:"fixed64,110,opt,name=optional_fixed64,json=optionalFixed64" json:"optional_fixed64,omitempty"` OptionalSfixed64 *int64 `protobuf:"fixed64,111,opt,name=optional_sfixed64,json=optionalSfixed64" json:"optional_sfixed64,omitempty"` OptionalDouble *float64 `protobuf:"fixed64,112,opt,name=optional_double,json=optionalDouble" json:"optional_double,omitempty"` OptionalString *string `protobuf:"bytes,113,opt,name=optional_string,json=optionalString" json:"optional_string,omitempty"` OptionalBytes []byte `protobuf:"bytes,114,opt,name=optional_bytes,json=optionalBytes" json:"optional_bytes,omitempty"` OptionalChildEnum *Message_ChildEnum `protobuf:"varint,115,opt,name=optional_child_enum,json=optionalChildEnum,enum=google.golang.org.proto2_20190205.Message_ChildEnum" json:"optional_child_enum,omitempty"` OptionalChildMessage *Message_ChildMessage `protobuf:"bytes,116,opt,name=optional_child_message,json=optionalChildMessage" json:"optional_child_message,omitempty"` OptionalNamedGroup *Message_NamedGroup `protobuf:"bytes,117,opt,name=optional_named_group,json=optionalNamedGroup" json:"optional_named_group,omitempty"` OptionalSiblingEnum *SiblingEnum `protobuf:"varint,118,opt,name=optional_sibling_enum,json=optionalSiblingEnum,enum=google.golang.org.proto2_20190205.SiblingEnum" json:"optional_sibling_enum,omitempty"` OptionalSiblingMessage *SiblingMessage `protobuf:"bytes,119,opt,name=optional_sibling_message,json=optionalSiblingMessage" json:"optional_sibling_message,omitempty"` Optionalgroup *Message_OptionalGroup `protobuf:"group,120,opt,name=OptionalGroup,json=optionalgroup" json:"optionalgroup,omitempty"` // Optional default fields. DefaultedBool *bool `protobuf:"varint,200,opt,name=defaulted_bool,json=defaultedBool,def=1" json:"defaulted_bool,omitempty"` DefaultedInt32 *int32 `protobuf:"varint,201,opt,name=defaulted_int32,json=defaultedInt32,def=-12345" json:"defaulted_int32,omitempty"` DefaultedSint32 *int32 `protobuf:"zigzag32,202,opt,name=defaulted_sint32,json=defaultedSint32,def=-3200" json:"defaulted_sint32,omitempty"` DefaultedUint32 *uint32 `protobuf:"varint,203,opt,name=defaulted_uint32,json=defaultedUint32,def=3200" json:"defaulted_uint32,omitempty"` DefaultedInt64 *int64 `protobuf:"varint,204,opt,name=defaulted_int64,json=defaultedInt64,def=-123456789" json:"defaulted_int64,omitempty"` DefaultedSint64 *int64 `protobuf:"zigzag64,205,opt,name=defaulted_sint64,json=defaultedSint64,def=-6400" json:"defaulted_sint64,omitempty"` DefaultedUint64 *uint64 `protobuf:"varint,206,opt,name=defaulted_uint64,json=defaultedUint64,def=6400" json:"defaulted_uint64,omitempty"` DefaultedFixed32 *uint32 `protobuf:"fixed32,207,opt,name=defaulted_fixed32,json=defaultedFixed32,def=320000" json:"defaulted_fixed32,omitempty"` DefaultedSfixed32 *int32 `protobuf:"fixed32,208,opt,name=defaulted_sfixed32,json=defaultedSfixed32,def=-320000" json:"defaulted_sfixed32,omitempty"` DefaultedFloat *float32 `protobuf:"fixed32,209,opt,name=defaulted_float,json=defaultedFloat,def=3.14159" json:"defaulted_float,omitempty"` DefaultedFixed64 *uint64 `protobuf:"fixed64,210,opt,name=defaulted_fixed64,json=defaultedFixed64,def=640000" json:"defaulted_fixed64,omitempty"` DefaultedSfixed64 *int64 `protobuf:"fixed64,211,opt,name=defaulted_sfixed64,json=defaultedSfixed64,def=-640000" json:"defaulted_sfixed64,omitempty"` DefaultedDouble *float64 `protobuf:"fixed64,212,opt,name=defaulted_double,json=defaultedDouble,def=3.14159265359" json:"defaulted_double,omitempty"` DefaultedString *string `protobuf:"bytes,213,opt,name=defaulted_string,json=defaultedString,def=hello, \"world!\"\n" json:"defaulted_string,omitempty"` DefaultedBytes []byte `protobuf:"bytes,214,opt,name=defaulted_bytes,json=defaultedBytes,def=dead\\336\\255\\276\\357beef" json:"defaulted_bytes,omitempty"` DefaultedChildEnum *Message_ChildEnum `protobuf:"varint,215,opt,name=defaulted_child_enum,json=defaultedChildEnum,enum=google.golang.org.proto2_20190205.Message_ChildEnum,def=0" json:"defaulted_child_enum,omitempty"` DefaultedSiblingEnum *SiblingEnum `protobuf:"varint,216,opt,name=defaulted_sibling_enum,json=defaultedSiblingEnum,enum=google.golang.org.proto2_20190205.SiblingEnum,def=0" json:"defaulted_sibling_enum,omitempty"` // Required fields. RequiredBool *bool `protobuf:"varint,300,req,name=required_bool,json=requiredBool" json:"required_bool,omitempty"` RequiredInt32 *int32 `protobuf:"varint,301,req,name=required_int32,json=requiredInt32" json:"required_int32,omitempty"` RequiredSint32 *int32 `protobuf:"zigzag32,302,req,name=required_sint32,json=requiredSint32" json:"required_sint32,omitempty"` RequiredUint32 *uint32 `protobuf:"varint,303,req,name=required_uint32,json=requiredUint32" json:"required_uint32,omitempty"` RequiredInt64 *int64 `protobuf:"varint,304,req,name=required_int64,json=requiredInt64" json:"required_int64,omitempty"` RequiredSint64 *int64 `protobuf:"zigzag64,305,req,name=required_sint64,json=requiredSint64" json:"required_sint64,omitempty"` RequiredUint64 *uint64 `protobuf:"varint,306,req,name=required_uint64,json=requiredUint64" json:"required_uint64,omitempty"` RequiredFixed32 *uint32 `protobuf:"fixed32,307,req,name=required_fixed32,json=requiredFixed32" json:"required_fixed32,omitempty"` RequiredSfixed32 *int32 `protobuf:"fixed32,308,req,name=required_sfixed32,json=requiredSfixed32" json:"required_sfixed32,omitempty"` RequiredFloat *float32 `protobuf:"fixed32,309,req,name=required_float,json=requiredFloat" json:"required_float,omitempty"` RequiredFixed64 *uint64 `protobuf:"fixed64,310,req,name=required_fixed64,json=requiredFixed64" json:"required_fixed64,omitempty"` RequiredSfixed64 *int64 `protobuf:"fixed64,311,req,name=required_sfixed64,json=requiredSfixed64" json:"required_sfixed64,omitempty"` RequiredDouble *float64 `protobuf:"fixed64,312,req,name=required_double,json=requiredDouble" json:"required_double,omitempty"` RequiredString *string `protobuf:"bytes,313,req,name=required_string,json=requiredString" json:"required_string,omitempty"` RequiredBytes []byte `protobuf:"bytes,314,req,name=required_bytes,json=requiredBytes" json:"required_bytes,omitempty"` RequiredChildEnum *Message_ChildEnum `protobuf:"varint,315,req,name=required_child_enum,json=requiredChildEnum,enum=google.golang.org.proto2_20190205.Message_ChildEnum" json:"required_child_enum,omitempty"` RequiredChildMessage *Message_ChildMessage `protobuf:"bytes,316,req,name=required_child_message,json=requiredChildMessage" json:"required_child_message,omitempty"` RequiredNamedGroup *Message_NamedGroup `protobuf:"bytes,317,req,name=required_named_group,json=requiredNamedGroup" json:"required_named_group,omitempty"` RequiredSiblingEnum *SiblingEnum `protobuf:"varint,318,req,name=required_sibling_enum,json=requiredSiblingEnum,enum=google.golang.org.proto2_20190205.SiblingEnum" json:"required_sibling_enum,omitempty"` RequiredSiblingMessage *SiblingMessage `protobuf:"bytes,319,req,name=required_sibling_message,json=requiredSiblingMessage" json:"required_sibling_message,omitempty"` Requiredgroup *Message_RequiredGroup `protobuf:"group,320,req,name=RequiredGroup,json=requiredgroup" json:"requiredgroup,omitempty"` // Required default fields. RequiredDefaultedBool *bool `protobuf:"varint,400,req,name=required_defaulted_bool,json=requiredDefaultedBool,def=1" json:"required_defaulted_bool,omitempty"` RequiredDefaultedInt32 *int32 `protobuf:"varint,401,req,name=required_defaulted_int32,json=requiredDefaultedInt32,def=-12345" json:"required_defaulted_int32,omitempty"` RequiredDefaultedSint32 *int32 `protobuf:"zigzag32,402,req,name=required_defaulted_sint32,json=requiredDefaultedSint32,def=-3200" json:"required_defaulted_sint32,omitempty"` RequiredDefaultedUint32 *uint32 `protobuf:"varint,403,req,name=required_defaulted_uint32,json=requiredDefaultedUint32,def=3200" json:"required_defaulted_uint32,omitempty"` RequiredDefaultedInt64 *int64 `protobuf:"varint,404,req,name=required_defaulted_int64,json=requiredDefaultedInt64,def=-123456789" json:"required_defaulted_int64,omitempty"` RequiredDefaultedSint64 *int64 `protobuf:"zigzag64,405,req,name=required_defaulted_sint64,json=requiredDefaultedSint64,def=-6400" json:"required_defaulted_sint64,omitempty"` RequiredDefaultedUint64 *uint64 `protobuf:"varint,406,req,name=required_defaulted_uint64,json=requiredDefaultedUint64,def=6400" json:"required_defaulted_uint64,omitempty"` RequiredDefaultedFixed32 *uint32 `protobuf:"fixed32,407,req,name=required_defaulted_fixed32,json=requiredDefaultedFixed32,def=320000" json:"required_defaulted_fixed32,omitempty"` RequiredDefaultedSfixed32 *int32 `protobuf:"fixed32,408,req,name=required_defaulted_sfixed32,json=requiredDefaultedSfixed32,def=-320000" json:"required_defaulted_sfixed32,omitempty"` RequiredDefaultedFloat *float32 `protobuf:"fixed32,409,req,name=required_defaulted_float,json=requiredDefaultedFloat,def=3.14159" json:"required_defaulted_float,omitempty"` RequiredDefaultedFixed64 *uint64 `protobuf:"fixed64,410,req,name=required_defaulted_fixed64,json=requiredDefaultedFixed64,def=640000" json:"required_defaulted_fixed64,omitempty"` RequiredDefaultedSfixed64 *int64 `protobuf:"fixed64,411,req,name=required_defaulted_sfixed64,json=requiredDefaultedSfixed64,def=-640000" json:"required_defaulted_sfixed64,omitempty"` RequiredDefaultedDouble *float64 `protobuf:"fixed64,412,req,name=required_defaulted_double,json=requiredDefaultedDouble,def=3.14159265359" json:"required_defaulted_double,omitempty"` RequiredDefaultedString *string `protobuf:"bytes,413,req,name=required_defaulted_string,json=requiredDefaultedString,def=hello, \"world!\"\n" json:"required_defaulted_string,omitempty"` RequiredDefaultedBytes []byte `protobuf:"bytes,414,req,name=required_defaulted_bytes,json=requiredDefaultedBytes,def=dead\\336\\255\\276\\357beef" json:"required_defaulted_bytes,omitempty"` RequiredDefaultedChildEnum *Message_ChildEnum `protobuf:"varint,415,req,name=required_defaulted_child_enum,json=requiredDefaultedChildEnum,enum=google.golang.org.proto2_20190205.Message_ChildEnum,def=0" json:"required_defaulted_child_enum,omitempty"` RequiredDefaultedSiblingEnum *SiblingEnum `protobuf:"varint,416,req,name=required_defaulted_sibling_enum,json=requiredDefaultedSiblingEnum,enum=google.golang.org.proto2_20190205.SiblingEnum,def=0" json:"required_defaulted_sibling_enum,omitempty"` // Repeated fields. RepeatedBool []bool `protobuf:"varint,500,rep,name=repeated_bool,json=repeatedBool" json:"repeated_bool,omitempty"` RepeatedInt32 []int32 `protobuf:"varint,501,rep,name=repeated_int32,json=repeatedInt32" json:"repeated_int32,omitempty"` RepeatedSint32 []int32 `protobuf:"zigzag32,502,rep,name=repeated_sint32,json=repeatedSint32" json:"repeated_sint32,omitempty"` RepeatedUint32 []uint32 `protobuf:"varint,503,rep,name=repeated_uint32,json=repeatedUint32" json:"repeated_uint32,omitempty"` RepeatedInt64 []int64 `protobuf:"varint,504,rep,name=repeated_int64,json=repeatedInt64" json:"repeated_int64,omitempty"` RepeatedSint64 []int64 `protobuf:"zigzag64,505,rep,name=repeated_sint64,json=repeatedSint64" json:"repeated_sint64,omitempty"` RepeatedUint64 []uint64 `protobuf:"varint,506,rep,name=repeated_uint64,json=repeatedUint64" json:"repeated_uint64,omitempty"` RepeatedFixed32 []uint32 `protobuf:"fixed32,507,rep,name=repeated_fixed32,json=repeatedFixed32" json:"repeated_fixed32,omitempty"` RepeatedSfixed32 []int32 `protobuf:"fixed32,508,rep,name=repeated_sfixed32,json=repeatedSfixed32" json:"repeated_sfixed32,omitempty"` RepeatedFloat []float32 `protobuf:"fixed32,509,rep,name=repeated_float,json=repeatedFloat" json:"repeated_float,omitempty"` RepeatedFixed64 []uint64 `protobuf:"fixed64,510,rep,name=repeated_fixed64,json=repeatedFixed64" json:"repeated_fixed64,omitempty"` RepeatedSfixed64 []int64 `protobuf:"fixed64,511,rep,name=repeated_sfixed64,json=repeatedSfixed64" json:"repeated_sfixed64,omitempty"` RepeatedDouble []float64 `protobuf:"fixed64,512,rep,name=repeated_double,json=repeatedDouble" json:"repeated_double,omitempty"` RepeatedString []string `protobuf:"bytes,513,rep,name=repeated_string,json=repeatedString" json:"repeated_string,omitempty"` RepeatedBytes [][]byte `protobuf:"bytes,514,rep,name=repeated_bytes,json=repeatedBytes" json:"repeated_bytes,omitempty"` RepeatedChildEnum []Message_ChildEnum `protobuf:"varint,515,rep,name=repeated_child_enum,json=repeatedChildEnum,enum=google.golang.org.proto2_20190205.Message_ChildEnum" json:"repeated_child_enum,omitempty"` RepeatedChildMessage []*Message_ChildMessage `protobuf:"bytes,516,rep,name=repeated_child_message,json=repeatedChildMessage" json:"repeated_child_message,omitempty"` RepeatedNamedGroup []*Message_NamedGroup `protobuf:"bytes,517,rep,name=repeated_named_group,json=repeatedNamedGroup" json:"repeated_named_group,omitempty"` RepeatedSiblingEnum []SiblingEnum `protobuf:"varint,518,rep,name=repeated_sibling_enum,json=repeatedSiblingEnum,enum=google.golang.org.proto2_20190205.SiblingEnum" json:"repeated_sibling_enum,omitempty"` RepeatedSiblingMessage []*SiblingMessage `protobuf:"bytes,519,rep,name=repeated_sibling_message,json=repeatedSiblingMessage" json:"repeated_sibling_message,omitempty"` Repeatedgroup []*Message_RepeatedGroup `protobuf:"group,520,rep,name=RepeatedGroup,json=repeatedgroup" json:"repeatedgroup,omitempty"` // Map fields. MapBoolBool map[bool]bool `protobuf:"bytes,600,rep,name=map_bool_bool,json=mapBoolBool" json:"map_bool_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolInt32 map[bool]int32 `protobuf:"bytes,601,rep,name=map_bool_int32,json=mapBoolInt32" json:"map_bool_int32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolSint32 map[bool]int32 `protobuf:"bytes,602,rep,name=map_bool_sint32,json=mapBoolSint32" json:"map_bool_sint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` MapBoolUint32 map[bool]uint32 `protobuf:"bytes,603,rep,name=map_bool_uint32,json=mapBoolUint32" json:"map_bool_uint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolInt64 map[bool]int64 `protobuf:"bytes,604,rep,name=map_bool_int64,json=mapBoolInt64" json:"map_bool_int64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolSint64 map[bool]int64 `protobuf:"bytes,605,rep,name=map_bool_sint64,json=mapBoolSint64" json:"map_bool_sint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` MapBoolUint64 map[bool]uint64 `protobuf:"bytes,606,rep,name=map_bool_uint64,json=mapBoolUint64" json:"map_bool_uint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolFixed32 map[bool]uint32 `protobuf:"bytes,607,rep,name=map_bool_fixed32,json=mapBoolFixed32" json:"map_bool_fixed32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolSfixed32 map[bool]int32 `protobuf:"bytes,608,rep,name=map_bool_sfixed32,json=mapBoolSfixed32" json:"map_bool_sfixed32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolFloat map[bool]float32 `protobuf:"bytes,609,rep,name=map_bool_float,json=mapBoolFloat" json:"map_bool_float,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolFixed64 map[bool]uint64 `protobuf:"bytes,610,rep,name=map_bool_fixed64,json=mapBoolFixed64" json:"map_bool_fixed64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolSfixed64 map[bool]int64 `protobuf:"bytes,611,rep,name=map_bool_sfixed64,json=mapBoolSfixed64" json:"map_bool_sfixed64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolDouble map[bool]float64 `protobuf:"bytes,612,rep,name=map_bool_double,json=mapBoolDouble" json:"map_bool_double,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolString map[bool]string `protobuf:"bytes,613,rep,name=map_bool_string,json=mapBoolString" json:"map_bool_string,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolBytes map[bool][]byte `protobuf:"bytes,614,rep,name=map_bool_bytes,json=mapBoolBytes" json:"map_bool_bytes,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolChildEnum map[bool]Message_ChildEnum `protobuf:"bytes,615,rep,name=map_bool_child_enum,json=mapBoolChildEnum" json:"map_bool_child_enum,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.golang.org.proto2_20190205.Message_ChildEnum"` MapBoolChildMessage map[bool]*Message_ChildMessage `protobuf:"bytes,616,rep,name=map_bool_child_message,json=mapBoolChildMessage" json:"map_bool_child_message,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolNamedGroup map[bool]*Message_NamedGroup `protobuf:"bytes,617,rep,name=map_bool_named_group,json=mapBoolNamedGroup" json:"map_bool_named_group,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolSiblingEnum map[bool]SiblingEnum `protobuf:"bytes,618,rep,name=map_bool_sibling_enum,json=mapBoolSiblingEnum" json:"map_bool_sibling_enum,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.golang.org.proto2_20190205.SiblingEnum"` MapBoolSiblingMessage map[bool]*SiblingMessage `protobuf:"bytes,619,rep,name=map_bool_sibling_message,json=mapBoolSiblingMessage" json:"map_bool_sibling_message,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapInt32Bool map[int32]bool `protobuf:"bytes,620,rep,name=map_int32_bool,json=mapInt32Bool" json:"map_int32_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapSint32Bool map[int32]bool `protobuf:"bytes,621,rep,name=map_sint32_bool,json=mapSint32Bool" json:"map_sint32_bool,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint32Bool map[uint32]bool `protobuf:"bytes,622,rep,name=map_uint32_bool,json=mapUint32Bool" json:"map_uint32_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapInt64Bool map[int64]bool `protobuf:"bytes,623,rep,name=map_int64_bool,json=mapInt64Bool" json:"map_int64_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapSint64Bool map[int64]bool `protobuf:"bytes,624,rep,name=map_sint64_bool,json=mapSint64Bool" json:"map_sint64_bool,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint64Bool map[uint64]bool `protobuf:"bytes,625,rep,name=map_uint64_bool,json=mapUint64Bool" json:"map_uint64_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapFixed32Bool map[uint32]bool `protobuf:"bytes,626,rep,name=map_fixed32_bool,json=mapFixed32Bool" json:"map_fixed32_bool,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapStringBool map[string]bool `protobuf:"bytes,627,rep,name=map_string_bool,json=mapStringBool" json:"map_string_bool,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // Oneof fields. // // Types that are valid to be assigned to OneofUnion: // *Message_OneofBool // *Message_OneofInt32 // *Message_OneofSint32 // *Message_OneofUint32 // *Message_OneofInt64 // *Message_OneofSint64 // *Message_OneofUint64 // *Message_OneofFixed32 // *Message_OneofSfixed32 // *Message_OneofFloat // *Message_OneofFixed64 // *Message_OneofSfixed64 // *Message_OneofDouble // *Message_OneofString // *Message_OneofBytes // *Message_OneofChildEnum // *Message_OneofChildMessage // *Message_OneofNamedGroup // *Message_OneofSiblingEnum // *Message_OneofSiblingMessage // *Message_Oneofgroup // *Message_OneofString1 // *Message_OneofString2 // *Message_OneofString3 OneofUnion isMessage_OneofUnion `protobuf_oneof:"oneof_union"` // Oneof default fields. // // Types that are valid to be assigned to OneofDefaultedUnion: // *Message_OneofDefaultedBool // *Message_OneofDefaultedInt32 // *Message_OneofDefaultedSint32 // *Message_OneofDefaultedUint32 // *Message_OneofDefaultedInt64 // *Message_OneofDefaultedSint64 // *Message_OneofDefaultedUint64 // *Message_OneofDefaultedFixed32 // *Message_OneofDefaultedSfixed32 // *Message_OneofDefaultedFloat // *Message_OneofDefaultedFixed64 // *Message_OneofDefaultedSfixed64 // *Message_OneofDefaultedDouble // *Message_OneofDefaultedString // *Message_OneofDefaultedBytes // *Message_OneofDefaultedChildEnum // *Message_OneofDefaultedSiblingEnum OneofDefaultedUnion isMessage_OneofDefaultedUnion `protobuf_oneof:"oneof_defaulted_union"` XXX_NoUnkeyedLiteral struct{} `json:"-"` proto.XXX_InternalExtensions `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message) Reset() { *m = Message{} } func (m *Message) String() string { return proto.CompactTextString(m) } func (*Message) ProtoMessage() {} func (*Message) Descriptor() ([]byte, []int) { return fileDescriptor_3a17e2c63b2b3424, []int{1} } var extRange_Message = []proto.ExtensionRange{ {Start: 10000, End: 536870911}, } func (*Message) ExtensionRangeArray() []proto.ExtensionRange { return extRange_Message } func (m *Message) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message.Unmarshal(m, b) } func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message.Marshal(b, m, deterministic) } func (m *Message) XXX_Merge(src proto.Message) { xxx_messageInfo_Message.Merge(m, src) } func (m *Message) XXX_Size() int { return xxx_messageInfo_Message.Size(m) } func (m *Message) XXX_DiscardUnknown() { xxx_messageInfo_Message.DiscardUnknown(m) } var xxx_messageInfo_Message proto.InternalMessageInfo const Default_Message_DefaultedBool bool = true const Default_Message_DefaultedInt32 int32 = -12345 const Default_Message_DefaultedSint32 int32 = -3200 const Default_Message_DefaultedUint32 uint32 = 3200 const Default_Message_DefaultedInt64 int64 = -123456789 const Default_Message_DefaultedSint64 int64 = -6400 const Default_Message_DefaultedUint64 uint64 = 6400 const Default_Message_DefaultedFixed32 uint32 = 320000 const Default_Message_DefaultedSfixed32 int32 = -320000 const Default_Message_DefaultedFloat float32 = 3.14159 const Default_Message_DefaultedFixed64 uint64 = 640000 const Default_Message_DefaultedSfixed64 int64 = -640000 const Default_Message_DefaultedDouble float64 = 3.14159265359 const Default_Message_DefaultedString string = "hello, \"world!\"\n" var Default_Message_DefaultedBytes []byte = []byte("deadޭ\xbe\xefbeef") const Default_Message_DefaultedChildEnum Message_ChildEnum = Message_ALPHA const Default_Message_DefaultedSiblingEnum SiblingEnum = SiblingEnum_ALPHA const Default_Message_RequiredDefaultedBool bool = true const Default_Message_RequiredDefaultedInt32 int32 = -12345 const Default_Message_RequiredDefaultedSint32 int32 = -3200 const Default_Message_RequiredDefaultedUint32 uint32 = 3200 const Default_Message_RequiredDefaultedInt64 int64 = -123456789 const Default_Message_RequiredDefaultedSint64 int64 = -6400 const Default_Message_RequiredDefaultedUint64 uint64 = 6400 const Default_Message_RequiredDefaultedFixed32 uint32 = 320000 const Default_Message_RequiredDefaultedSfixed32 int32 = -320000 const Default_Message_RequiredDefaultedFloat float32 = 3.14159 const Default_Message_RequiredDefaultedFixed64 uint64 = 640000 const Default_Message_RequiredDefaultedSfixed64 int64 = -640000 const Default_Message_RequiredDefaultedDouble float64 = 3.14159265359 const Default_Message_RequiredDefaultedString string = "hello, \"world!\"\n" var Default_Message_RequiredDefaultedBytes []byte = []byte("deadޭ\xbe\xefbeef") const Default_Message_RequiredDefaultedChildEnum Message_ChildEnum = Message_ALPHA const Default_Message_RequiredDefaultedSiblingEnum SiblingEnum = SiblingEnum_ALPHA const Default_Message_OneofDefaultedBool bool = true const Default_Message_OneofDefaultedInt32 int32 = -12345 const Default_Message_OneofDefaultedSint32 int32 = -3200 const Default_Message_OneofDefaultedUint32 uint32 = 3200 const Default_Message_OneofDefaultedInt64 int64 = -123456789 const Default_Message_OneofDefaultedSint64 int64 = -6400 const Default_Message_OneofDefaultedUint64 uint64 = 6400 const Default_Message_OneofDefaultedFixed32 uint32 = 320000 const Default_Message_OneofDefaultedSfixed32 int32 = -320000 const Default_Message_OneofDefaultedFloat float32 = 3.14159 const Default_Message_OneofDefaultedFixed64 uint64 = 640000 const Default_Message_OneofDefaultedSfixed64 int64 = -640000 const Default_Message_OneofDefaultedDouble float64 = 3.14159265359 const Default_Message_OneofDefaultedString string = "hello, \"world!\"\n" var Default_Message_OneofDefaultedBytes []byte = []byte("deadޭ\xbe\xefbeef") const Default_Message_OneofDefaultedChildEnum Message_ChildEnum = Message_ALPHA const Default_Message_OneofDefaultedSiblingEnum SiblingEnum = SiblingEnum_ALPHA func (m *Message) GetNamedgroup() *Message_NamedGroup { if m != nil { return m.Namedgroup } return nil } func (m *Message) GetOptionalBool() bool { if m != nil && m.OptionalBool != nil { return *m.OptionalBool } return false } func (m *Message) GetOptionalInt32() int32 { if m != nil && m.OptionalInt32 != nil { return *m.OptionalInt32 } return 0 } func (m *Message) GetOptionalSint32() int32 { if m != nil && m.OptionalSint32 != nil { return *m.OptionalSint32 } return 0 } func (m *Message) GetOptionalUint32() uint32 { if m != nil && m.OptionalUint32 != nil { return *m.OptionalUint32 } return 0 } func (m *Message) GetOptionalInt64() int64 { if m != nil && m.OptionalInt64 != nil { return *m.OptionalInt64 } return 0 } func (m *Message) GetOptionalSint64() int64 { if m != nil && m.OptionalSint64 != nil { return *m.OptionalSint64 } return 0 } func (m *Message) GetOptionalUint64() uint64 { if m != nil && m.OptionalUint64 != nil { return *m.OptionalUint64 } return 0 } func (m *Message) GetOptionalFixed32() uint32 { if m != nil && m.OptionalFixed32 != nil { return *m.OptionalFixed32 } return 0 } func (m *Message) GetOptionalSfixed32() int32 { if m != nil && m.OptionalSfixed32 != nil { return *m.OptionalSfixed32 } return 0 } func (m *Message) GetOptionalFloat() float32 { if m != nil && m.OptionalFloat != nil { return *m.OptionalFloat } return 0 } func (m *Message) GetOptionalFixed64() uint64 { if m != nil && m.OptionalFixed64 != nil { return *m.OptionalFixed64 } return 0 } func (m *Message) GetOptionalSfixed64() int64 { if m != nil && m.OptionalSfixed64 != nil { return *m.OptionalSfixed64 } return 0 } func (m *Message) GetOptionalDouble() float64 { if m != nil && m.OptionalDouble != nil { return *m.OptionalDouble } return 0 } func (m *Message) GetOptionalString() string { if m != nil && m.OptionalString != nil { return *m.OptionalString } return "" } func (m *Message) GetOptionalBytes() []byte { if m != nil { return m.OptionalBytes } return nil } func (m *Message) GetOptionalChildEnum() Message_ChildEnum { if m != nil && m.OptionalChildEnum != nil { return *m.OptionalChildEnum } return Message_ALPHA } func (m *Message) GetOptionalChildMessage() *Message_ChildMessage { if m != nil { return m.OptionalChildMessage } return nil } func (m *Message) GetOptionalNamedGroup() *Message_NamedGroup { if m != nil { return m.OptionalNamedGroup } return nil } func (m *Message) GetOptionalSiblingEnum() SiblingEnum { if m != nil && m.OptionalSiblingEnum != nil { return *m.OptionalSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetOptionalSiblingMessage() *SiblingMessage { if m != nil { return m.OptionalSiblingMessage } return nil } func (m *Message) GetOptionalgroup() *Message_OptionalGroup { if m != nil { return m.Optionalgroup } return nil } func (m *Message) GetDefaultedBool() bool { if m != nil && m.DefaultedBool != nil { return *m.DefaultedBool } return Default_Message_DefaultedBool } func (m *Message) GetDefaultedInt32() int32 { if m != nil && m.DefaultedInt32 != nil { return *m.DefaultedInt32 } return Default_Message_DefaultedInt32 } func (m *Message) GetDefaultedSint32() int32 { if m != nil && m.DefaultedSint32 != nil { return *m.DefaultedSint32 } return Default_Message_DefaultedSint32 } func (m *Message) GetDefaultedUint32() uint32 { if m != nil && m.DefaultedUint32 != nil { return *m.DefaultedUint32 } return Default_Message_DefaultedUint32 } func (m *Message) GetDefaultedInt64() int64 { if m != nil && m.DefaultedInt64 != nil { return *m.DefaultedInt64 } return Default_Message_DefaultedInt64 } func (m *Message) GetDefaultedSint64() int64 { if m != nil && m.DefaultedSint64 != nil { return *m.DefaultedSint64 } return Default_Message_DefaultedSint64 } func (m *Message) GetDefaultedUint64() uint64 { if m != nil && m.DefaultedUint64 != nil { return *m.DefaultedUint64 } return Default_Message_DefaultedUint64 } func (m *Message) GetDefaultedFixed32() uint32 { if m != nil && m.DefaultedFixed32 != nil { return *m.DefaultedFixed32 } return Default_Message_DefaultedFixed32 } func (m *Message) GetDefaultedSfixed32() int32 { if m != nil && m.DefaultedSfixed32 != nil { return *m.DefaultedSfixed32 } return Default_Message_DefaultedSfixed32 } func (m *Message) GetDefaultedFloat() float32 { if m != nil && m.DefaultedFloat != nil { return *m.DefaultedFloat } return Default_Message_DefaultedFloat } func (m *Message) GetDefaultedFixed64() uint64 { if m != nil && m.DefaultedFixed64 != nil { return *m.DefaultedFixed64 } return Default_Message_DefaultedFixed64 } func (m *Message) GetDefaultedSfixed64() int64 { if m != nil && m.DefaultedSfixed64 != nil { return *m.DefaultedSfixed64 } return Default_Message_DefaultedSfixed64 } func (m *Message) GetDefaultedDouble() float64 { if m != nil && m.DefaultedDouble != nil { return *m.DefaultedDouble } return Default_Message_DefaultedDouble } func (m *Message) GetDefaultedString() string { if m != nil && m.DefaultedString != nil { return *m.DefaultedString } return Default_Message_DefaultedString } func (m *Message) GetDefaultedBytes() []byte { if m != nil && m.DefaultedBytes != nil { return m.DefaultedBytes } return append([]byte(nil), Default_Message_DefaultedBytes...) } func (m *Message) GetDefaultedChildEnum() Message_ChildEnum { if m != nil && m.DefaultedChildEnum != nil { return *m.DefaultedChildEnum } return Default_Message_DefaultedChildEnum } func (m *Message) GetDefaultedSiblingEnum() SiblingEnum { if m != nil && m.DefaultedSiblingEnum != nil { return *m.DefaultedSiblingEnum } return Default_Message_DefaultedSiblingEnum } func (m *Message) GetRequiredBool() bool { if m != nil && m.RequiredBool != nil { return *m.RequiredBool } return false } func (m *Message) GetRequiredInt32() int32 { if m != nil && m.RequiredInt32 != nil { return *m.RequiredInt32 } return 0 } func (m *Message) GetRequiredSint32() int32 { if m != nil && m.RequiredSint32 != nil { return *m.RequiredSint32 } return 0 } func (m *Message) GetRequiredUint32() uint32 { if m != nil && m.RequiredUint32 != nil { return *m.RequiredUint32 } return 0 } func (m *Message) GetRequiredInt64() int64 { if m != nil && m.RequiredInt64 != nil { return *m.RequiredInt64 } return 0 } func (m *Message) GetRequiredSint64() int64 { if m != nil && m.RequiredSint64 != nil { return *m.RequiredSint64 } return 0 } func (m *Message) GetRequiredUint64() uint64 { if m != nil && m.RequiredUint64 != nil { return *m.RequiredUint64 } return 0 } func (m *Message) GetRequiredFixed32() uint32 { if m != nil && m.RequiredFixed32 != nil { return *m.RequiredFixed32 } return 0 } func (m *Message) GetRequiredSfixed32() int32 { if m != nil && m.RequiredSfixed32 != nil { return *m.RequiredSfixed32 } return 0 } func (m *Message) GetRequiredFloat() float32 { if m != nil && m.RequiredFloat != nil { return *m.RequiredFloat } return 0 } func (m *Message) GetRequiredFixed64() uint64 { if m != nil && m.RequiredFixed64 != nil { return *m.RequiredFixed64 } return 0 } func (m *Message) GetRequiredSfixed64() int64 { if m != nil && m.RequiredSfixed64 != nil { return *m.RequiredSfixed64 } return 0 } func (m *Message) GetRequiredDouble() float64 { if m != nil && m.RequiredDouble != nil { return *m.RequiredDouble } return 0 } func (m *Message) GetRequiredString() string { if m != nil && m.RequiredString != nil { return *m.RequiredString } return "" } func (m *Message) GetRequiredBytes() []byte { if m != nil { return m.RequiredBytes } return nil } func (m *Message) GetRequiredChildEnum() Message_ChildEnum { if m != nil && m.RequiredChildEnum != nil { return *m.RequiredChildEnum } return Message_ALPHA } func (m *Message) GetRequiredChildMessage() *Message_ChildMessage { if m != nil { return m.RequiredChildMessage } return nil } func (m *Message) GetRequiredNamedGroup() *Message_NamedGroup { if m != nil { return m.RequiredNamedGroup } return nil } func (m *Message) GetRequiredSiblingEnum() SiblingEnum { if m != nil && m.RequiredSiblingEnum != nil { return *m.RequiredSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetRequiredSiblingMessage() *SiblingMessage { if m != nil { return m.RequiredSiblingMessage } return nil } func (m *Message) GetRequiredgroup() *Message_RequiredGroup { if m != nil { return m.Requiredgroup } return nil } func (m *Message) GetRequiredDefaultedBool() bool { if m != nil && m.RequiredDefaultedBool != nil { return *m.RequiredDefaultedBool } return Default_Message_RequiredDefaultedBool } func (m *Message) GetRequiredDefaultedInt32() int32 { if m != nil && m.RequiredDefaultedInt32 != nil { return *m.RequiredDefaultedInt32 } return Default_Message_RequiredDefaultedInt32 } func (m *Message) GetRequiredDefaultedSint32() int32 { if m != nil && m.RequiredDefaultedSint32 != nil { return *m.RequiredDefaultedSint32 } return Default_Message_RequiredDefaultedSint32 } func (m *Message) GetRequiredDefaultedUint32() uint32 { if m != nil && m.RequiredDefaultedUint32 != nil { return *m.RequiredDefaultedUint32 } return Default_Message_RequiredDefaultedUint32 } func (m *Message) GetRequiredDefaultedInt64() int64 { if m != nil && m.RequiredDefaultedInt64 != nil { return *m.RequiredDefaultedInt64 } return Default_Message_RequiredDefaultedInt64 } func (m *Message) GetRequiredDefaultedSint64() int64 { if m != nil && m.RequiredDefaultedSint64 != nil { return *m.RequiredDefaultedSint64 } return Default_Message_RequiredDefaultedSint64 } func (m *Message) GetRequiredDefaultedUint64() uint64 { if m != nil && m.RequiredDefaultedUint64 != nil { return *m.RequiredDefaultedUint64 } return Default_Message_RequiredDefaultedUint64 } func (m *Message) GetRequiredDefaultedFixed32() uint32 { if m != nil && m.RequiredDefaultedFixed32 != nil { return *m.RequiredDefaultedFixed32 } return Default_Message_RequiredDefaultedFixed32 } func (m *Message) GetRequiredDefaultedSfixed32() int32 { if m != nil && m.RequiredDefaultedSfixed32 != nil { return *m.RequiredDefaultedSfixed32 } return Default_Message_RequiredDefaultedSfixed32 } func (m *Message) GetRequiredDefaultedFloat() float32 { if m != nil && m.RequiredDefaultedFloat != nil { return *m.RequiredDefaultedFloat } return Default_Message_RequiredDefaultedFloat } func (m *Message) GetRequiredDefaultedFixed64() uint64 { if m != nil && m.RequiredDefaultedFixed64 != nil { return *m.RequiredDefaultedFixed64 } return Default_Message_RequiredDefaultedFixed64 } func (m *Message) GetRequiredDefaultedSfixed64() int64 { if m != nil && m.RequiredDefaultedSfixed64 != nil { return *m.RequiredDefaultedSfixed64 } return Default_Message_RequiredDefaultedSfixed64 } func (m *Message) GetRequiredDefaultedDouble() float64 { if m != nil && m.RequiredDefaultedDouble != nil { return *m.RequiredDefaultedDouble } return Default_Message_RequiredDefaultedDouble } func (m *Message) GetRequiredDefaultedString() string { if m != nil && m.RequiredDefaultedString != nil { return *m.RequiredDefaultedString } return Default_Message_RequiredDefaultedString } func (m *Message) GetRequiredDefaultedBytes() []byte { if m != nil && m.RequiredDefaultedBytes != nil { return m.RequiredDefaultedBytes } return append([]byte(nil), Default_Message_RequiredDefaultedBytes...) } func (m *Message) GetRequiredDefaultedChildEnum() Message_ChildEnum { if m != nil && m.RequiredDefaultedChildEnum != nil { return *m.RequiredDefaultedChildEnum } return Default_Message_RequiredDefaultedChildEnum } func (m *Message) GetRequiredDefaultedSiblingEnum() SiblingEnum { if m != nil && m.RequiredDefaultedSiblingEnum != nil { return *m.RequiredDefaultedSiblingEnum } return Default_Message_RequiredDefaultedSiblingEnum } func (m *Message) GetRepeatedBool() []bool { if m != nil { return m.RepeatedBool } return nil } func (m *Message) GetRepeatedInt32() []int32 { if m != nil { return m.RepeatedInt32 } return nil } func (m *Message) GetRepeatedSint32() []int32 { if m != nil { return m.RepeatedSint32 } return nil } func (m *Message) GetRepeatedUint32() []uint32 { if m != nil { return m.RepeatedUint32 } return nil } func (m *Message) GetRepeatedInt64() []int64 { if m != nil { return m.RepeatedInt64 } return nil } func (m *Message) GetRepeatedSint64() []int64 { if m != nil { return m.RepeatedSint64 } return nil } func (m *Message) GetRepeatedUint64() []uint64 { if m != nil { return m.RepeatedUint64 } return nil } func (m *Message) GetRepeatedFixed32() []uint32 { if m != nil { return m.RepeatedFixed32 } return nil } func (m *Message) GetRepeatedSfixed32() []int32 { if m != nil { return m.RepeatedSfixed32 } return nil } func (m *Message) GetRepeatedFloat() []float32 { if m != nil { return m.RepeatedFloat } return nil } func (m *Message) GetRepeatedFixed64() []uint64 { if m != nil { return m.RepeatedFixed64 } return nil } func (m *Message) GetRepeatedSfixed64() []int64 { if m != nil { return m.RepeatedSfixed64 } return nil } func (m *Message) GetRepeatedDouble() []float64 { if m != nil { return m.RepeatedDouble } return nil } func (m *Message) GetRepeatedString() []string { if m != nil { return m.RepeatedString } return nil } func (m *Message) GetRepeatedBytes() [][]byte { if m != nil { return m.RepeatedBytes } return nil } func (m *Message) GetRepeatedChildEnum() []Message_ChildEnum { if m != nil { return m.RepeatedChildEnum } return nil } func (m *Message) GetRepeatedChildMessage() []*Message_ChildMessage { if m != nil { return m.RepeatedChildMessage } return nil } func (m *Message) GetRepeatedNamedGroup() []*Message_NamedGroup { if m != nil { return m.RepeatedNamedGroup } return nil } func (m *Message) GetRepeatedSiblingEnum() []SiblingEnum { if m != nil { return m.RepeatedSiblingEnum } return nil } func (m *Message) GetRepeatedSiblingMessage() []*SiblingMessage { if m != nil { return m.RepeatedSiblingMessage } return nil } func (m *Message) GetRepeatedgroup() []*Message_RepeatedGroup { if m != nil { return m.Repeatedgroup } return nil } func (m *Message) GetMapBoolBool() map[bool]bool { if m != nil { return m.MapBoolBool } return nil } func (m *Message) GetMapBoolInt32() map[bool]int32 { if m != nil { return m.MapBoolInt32 } return nil } func (m *Message) GetMapBoolSint32() map[bool]int32 { if m != nil { return m.MapBoolSint32 } return nil } func (m *Message) GetMapBoolUint32() map[bool]uint32 { if m != nil { return m.MapBoolUint32 } return nil } func (m *Message) GetMapBoolInt64() map[bool]int64 { if m != nil { return m.MapBoolInt64 } return nil } func (m *Message) GetMapBoolSint64() map[bool]int64 { if m != nil { return m.MapBoolSint64 } return nil } func (m *Message) GetMapBoolUint64() map[bool]uint64 { if m != nil { return m.MapBoolUint64 } return nil } func (m *Message) GetMapBoolFixed32() map[bool]uint32 { if m != nil { return m.MapBoolFixed32 } return nil } func (m *Message) GetMapBoolSfixed32() map[bool]int32 { if m != nil { return m.MapBoolSfixed32 } return nil } func (m *Message) GetMapBoolFloat() map[bool]float32 { if m != nil { return m.MapBoolFloat } return nil } func (m *Message) GetMapBoolFixed64() map[bool]uint64 { if m != nil { return m.MapBoolFixed64 } return nil } func (m *Message) GetMapBoolSfixed64() map[bool]int64 { if m != nil { return m.MapBoolSfixed64 } return nil } func (m *Message) GetMapBoolDouble() map[bool]float64 { if m != nil { return m.MapBoolDouble } return nil } func (m *Message) GetMapBoolString() map[bool]string { if m != nil { return m.MapBoolString } return nil } func (m *Message) GetMapBoolBytes() map[bool][]byte { if m != nil { return m.MapBoolBytes } return nil } func (m *Message) GetMapBoolChildEnum() map[bool]Message_ChildEnum { if m != nil { return m.MapBoolChildEnum } return nil } func (m *Message) GetMapBoolChildMessage() map[bool]*Message_ChildMessage { if m != nil { return m.MapBoolChildMessage } return nil } func (m *Message) GetMapBoolNamedGroup() map[bool]*Message_NamedGroup { if m != nil { return m.MapBoolNamedGroup } return nil } func (m *Message) GetMapBoolSiblingEnum() map[bool]SiblingEnum { if m != nil { return m.MapBoolSiblingEnum } return nil } func (m *Message) GetMapBoolSiblingMessage() map[bool]*SiblingMessage { if m != nil { return m.MapBoolSiblingMessage } return nil } func (m *Message) GetMapInt32Bool() map[int32]bool { if m != nil { return m.MapInt32Bool } return nil } func (m *Message) GetMapSint32Bool() map[int32]bool { if m != nil { return m.MapSint32Bool } return nil } func (m *Message) GetMapUint32Bool() map[uint32]bool { if m != nil { return m.MapUint32Bool } return nil } func (m *Message) GetMapInt64Bool() map[int64]bool { if m != nil { return m.MapInt64Bool } return nil } func (m *Message) GetMapSint64Bool() map[int64]bool { if m != nil { return m.MapSint64Bool } return nil } func (m *Message) GetMapUint64Bool() map[uint64]bool { if m != nil { return m.MapUint64Bool } return nil } func (m *Message) GetMapFixed32Bool() map[uint32]bool { if m != nil { return m.MapFixed32Bool } return nil } func (m *Message) GetMapStringBool() map[string]bool { if m != nil { return m.MapStringBool } return nil } type isMessage_OneofUnion interface { isMessage_OneofUnion() } type Message_OneofBool struct { OneofBool bool `protobuf:"varint,700,opt,name=oneof_bool,json=oneofBool,oneof"` } type Message_OneofInt32 struct { OneofInt32 int32 `protobuf:"varint,701,opt,name=oneof_int32,json=oneofInt32,oneof"` } type Message_OneofSint32 struct { OneofSint32 int32 `protobuf:"zigzag32,702,opt,name=oneof_sint32,json=oneofSint32,oneof"` } type Message_OneofUint32 struct { OneofUint32 uint32 `protobuf:"varint,703,opt,name=oneof_uint32,json=oneofUint32,oneof"` } type Message_OneofInt64 struct { OneofInt64 int64 `protobuf:"varint,704,opt,name=oneof_int64,json=oneofInt64,oneof"` } type Message_OneofSint64 struct { OneofSint64 int64 `protobuf:"zigzag64,705,opt,name=oneof_sint64,json=oneofSint64,oneof"` } type Message_OneofUint64 struct { OneofUint64 uint64 `protobuf:"varint,706,opt,name=oneof_uint64,json=oneofUint64,oneof"` } type Message_OneofFixed32 struct { OneofFixed32 uint32 `protobuf:"fixed32,707,opt,name=oneof_fixed32,json=oneofFixed32,oneof"` } type Message_OneofSfixed32 struct { OneofSfixed32 int32 `protobuf:"fixed32,708,opt,name=oneof_sfixed32,json=oneofSfixed32,oneof"` } type Message_OneofFloat struct { OneofFloat float32 `protobuf:"fixed32,709,opt,name=oneof_float,json=oneofFloat,oneof"` } type Message_OneofFixed64 struct { OneofFixed64 uint64 `protobuf:"fixed64,710,opt,name=oneof_fixed64,json=oneofFixed64,oneof"` } type Message_OneofSfixed64 struct { OneofSfixed64 int64 `protobuf:"fixed64,711,opt,name=oneof_sfixed64,json=oneofSfixed64,oneof"` } type Message_OneofDouble struct { OneofDouble float64 `protobuf:"fixed64,712,opt,name=oneof_double,json=oneofDouble,oneof"` } type Message_OneofString struct { OneofString string `protobuf:"bytes,713,opt,name=oneof_string,json=oneofString,oneof"` } type Message_OneofBytes struct { OneofBytes []byte `protobuf:"bytes,714,opt,name=oneof_bytes,json=oneofBytes,oneof"` } type Message_OneofChildEnum struct { OneofChildEnum Message_ChildEnum `protobuf:"varint,715,opt,name=oneof_child_enum,json=oneofChildEnum,enum=google.golang.org.proto2_20190205.Message_ChildEnum,oneof"` } type Message_OneofChildMessage struct { OneofChildMessage *Message_ChildMessage `protobuf:"bytes,716,opt,name=oneof_child_message,json=oneofChildMessage,oneof"` } type Message_OneofNamedGroup struct { OneofNamedGroup *Message_NamedGroup `protobuf:"bytes,717,opt,name=oneof_named_group,json=oneofNamedGroup,oneof"` } type Message_OneofSiblingEnum struct { OneofSiblingEnum SiblingEnum `protobuf:"varint,718,opt,name=oneof_sibling_enum,json=oneofSiblingEnum,enum=google.golang.org.proto2_20190205.SiblingEnum,oneof"` } type Message_OneofSiblingMessage struct { OneofSiblingMessage *SiblingMessage `protobuf:"bytes,719,opt,name=oneof_sibling_message,json=oneofSiblingMessage,oneof"` } type Message_Oneofgroup struct { Oneofgroup *Message_OneofGroup `protobuf:"group,720,opt,name=OneofGroup,json=oneofgroup,oneof"` } type Message_OneofString1 struct { OneofString1 string `protobuf:"bytes,721,opt,name=oneof_string1,json=oneofString1,oneof"` } type Message_OneofString2 struct { OneofString2 string `protobuf:"bytes,722,opt,name=oneof_string2,json=oneofString2,oneof"` } type Message_OneofString3 struct { OneofString3 string `protobuf:"bytes,723,opt,name=oneof_string3,json=oneofString3,oneof"` } func (*Message_OneofBool) isMessage_OneofUnion() {} func (*Message_OneofInt32) isMessage_OneofUnion() {} func (*Message_OneofSint32) isMessage_OneofUnion() {} func (*Message_OneofUint32) isMessage_OneofUnion() {} func (*Message_OneofInt64) isMessage_OneofUnion() {} func (*Message_OneofSint64) isMessage_OneofUnion() {} func (*Message_OneofUint64) isMessage_OneofUnion() {} func (*Message_OneofFixed32) isMessage_OneofUnion() {} func (*Message_OneofSfixed32) isMessage_OneofUnion() {} func (*Message_OneofFloat) isMessage_OneofUnion() {} func (*Message_OneofFixed64) isMessage_OneofUnion() {} func (*Message_OneofSfixed64) isMessage_OneofUnion() {} func (*Message_OneofDouble) isMessage_OneofUnion() {} func (*Message_OneofString) isMessage_OneofUnion() {} func (*Message_OneofBytes) isMessage_OneofUnion() {} func (*Message_OneofChildEnum) isMessage_OneofUnion() {} func (*Message_OneofChildMessage) isMessage_OneofUnion() {} func (*Message_OneofNamedGroup) isMessage_OneofUnion() {} func (*Message_OneofSiblingEnum) isMessage_OneofUnion() {} func (*Message_OneofSiblingMessage) isMessage_OneofUnion() {} func (*Message_Oneofgroup) isMessage_OneofUnion() {} func (*Message_OneofString1) isMessage_OneofUnion() {} func (*Message_OneofString2) isMessage_OneofUnion() {} func (*Message_OneofString3) isMessage_OneofUnion() {} func (m *Message) GetOneofUnion() isMessage_OneofUnion { if m != nil { return m.OneofUnion } return nil } func (m *Message) GetOneofBool() bool { if x, ok := m.GetOneofUnion().(*Message_OneofBool); ok { return x.OneofBool } return false } func (m *Message) GetOneofInt32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofInt32); ok { return x.OneofInt32 } return 0 } func (m *Message) GetOneofSint32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSint32); ok { return x.OneofSint32 } return 0 } func (m *Message) GetOneofUint32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofUint32); ok { return x.OneofUint32 } return 0 } func (m *Message) GetOneofInt64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofInt64); ok { return x.OneofInt64 } return 0 } func (m *Message) GetOneofSint64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSint64); ok { return x.OneofSint64 } return 0 } func (m *Message) GetOneofUint64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofUint64); ok { return x.OneofUint64 } return 0 } func (m *Message) GetOneofFixed32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed32); ok { return x.OneofFixed32 } return 0 } func (m *Message) GetOneofSfixed32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed32); ok { return x.OneofSfixed32 } return 0 } func (m *Message) GetOneofFloat() float32 { if x, ok := m.GetOneofUnion().(*Message_OneofFloat); ok { return x.OneofFloat } return 0 } func (m *Message) GetOneofFixed64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed64); ok { return x.OneofFixed64 } return 0 } func (m *Message) GetOneofSfixed64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed64); ok { return x.OneofSfixed64 } return 0 } func (m *Message) GetOneofDouble() float64 { if x, ok := m.GetOneofUnion().(*Message_OneofDouble); ok { return x.OneofDouble } return 0 } func (m *Message) GetOneofString() string { if x, ok := m.GetOneofUnion().(*Message_OneofString); ok { return x.OneofString } return "" } func (m *Message) GetOneofBytes() []byte { if x, ok := m.GetOneofUnion().(*Message_OneofBytes); ok { return x.OneofBytes } return nil } func (m *Message) GetOneofChildEnum() Message_ChildEnum { if x, ok := m.GetOneofUnion().(*Message_OneofChildEnum); ok { return x.OneofChildEnum } return Message_ALPHA } func (m *Message) GetOneofChildMessage() *Message_ChildMessage { if x, ok := m.GetOneofUnion().(*Message_OneofChildMessage); ok { return x.OneofChildMessage } return nil } func (m *Message) GetOneofNamedGroup() *Message_NamedGroup { if x, ok := m.GetOneofUnion().(*Message_OneofNamedGroup); ok { return x.OneofNamedGroup } return nil } func (m *Message) GetOneofSiblingEnum() SiblingEnum { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingEnum); ok { return x.OneofSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetOneofSiblingMessage() *SiblingMessage { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingMessage); ok { return x.OneofSiblingMessage } return nil } func (m *Message) GetOneofgroup() *Message_OneofGroup { if x, ok := m.GetOneofUnion().(*Message_Oneofgroup); ok { return x.Oneofgroup } return nil } func (m *Message) GetOneofString1() string { if x, ok := m.GetOneofUnion().(*Message_OneofString1); ok { return x.OneofString1 } return "" } func (m *Message) GetOneofString2() string { if x, ok := m.GetOneofUnion().(*Message_OneofString2); ok { return x.OneofString2 } return "" } func (m *Message) GetOneofString3() string { if x, ok := m.GetOneofUnion().(*Message_OneofString3); ok { return x.OneofString3 } return "" } type isMessage_OneofDefaultedUnion interface { isMessage_OneofDefaultedUnion() } type Message_OneofDefaultedBool struct { OneofDefaultedBool bool `protobuf:"varint,800,opt,name=oneof_defaulted_bool,json=oneofDefaultedBool,oneof,def=1"` } type Message_OneofDefaultedInt32 struct { OneofDefaultedInt32 int32 `protobuf:"varint,801,opt,name=oneof_defaulted_int32,json=oneofDefaultedInt32,oneof,def=-12345"` } type Message_OneofDefaultedSint32 struct { OneofDefaultedSint32 int32 `protobuf:"zigzag32,802,opt,name=oneof_defaulted_sint32,json=oneofDefaultedSint32,oneof,def=-3200"` } type Message_OneofDefaultedUint32 struct { OneofDefaultedUint32 uint32 `protobuf:"varint,803,opt,name=oneof_defaulted_uint32,json=oneofDefaultedUint32,oneof,def=3200"` } type Message_OneofDefaultedInt64 struct { OneofDefaultedInt64 int64 `protobuf:"varint,804,opt,name=oneof_defaulted_int64,json=oneofDefaultedInt64,oneof,def=-123456789"` } type Message_OneofDefaultedSint64 struct { OneofDefaultedSint64 int64 `protobuf:"zigzag64,805,opt,name=oneof_defaulted_sint64,json=oneofDefaultedSint64,oneof,def=-6400"` } type Message_OneofDefaultedUint64 struct { OneofDefaultedUint64 uint64 `protobuf:"varint,806,opt,name=oneof_defaulted_uint64,json=oneofDefaultedUint64,oneof,def=6400"` } type Message_OneofDefaultedFixed32 struct { OneofDefaultedFixed32 uint32 `protobuf:"fixed32,807,opt,name=oneof_defaulted_fixed32,json=oneofDefaultedFixed32,oneof,def=320000"` } type Message_OneofDefaultedSfixed32 struct { OneofDefaultedSfixed32 int32 `protobuf:"fixed32,808,opt,name=oneof_defaulted_sfixed32,json=oneofDefaultedSfixed32,oneof,def=-320000"` } type Message_OneofDefaultedFloat struct { OneofDefaultedFloat float32 `protobuf:"fixed32,809,opt,name=oneof_defaulted_float,json=oneofDefaultedFloat,oneof,def=3.14159"` } type Message_OneofDefaultedFixed64 struct { OneofDefaultedFixed64 uint64 `protobuf:"fixed64,810,opt,name=oneof_defaulted_fixed64,json=oneofDefaultedFixed64,oneof,def=640000"` } type Message_OneofDefaultedSfixed64 struct { OneofDefaultedSfixed64 int64 `protobuf:"fixed64,811,opt,name=oneof_defaulted_sfixed64,json=oneofDefaultedSfixed64,oneof,def=-640000"` } type Message_OneofDefaultedDouble struct { OneofDefaultedDouble float64 `protobuf:"fixed64,812,opt,name=oneof_defaulted_double,json=oneofDefaultedDouble,oneof,def=3.14159265359"` } type Message_OneofDefaultedString struct { OneofDefaultedString string `protobuf:"bytes,813,opt,name=oneof_defaulted_string,json=oneofDefaultedString,oneof,def=hello, \"world!\"\n"` } type Message_OneofDefaultedBytes struct { OneofDefaultedBytes []byte `protobuf:"bytes,814,opt,name=oneof_defaulted_bytes,json=oneofDefaultedBytes,oneof,def=dead\\336\\255\\276\\357beef"` } type Message_OneofDefaultedChildEnum struct { OneofDefaultedChildEnum Message_ChildEnum `protobuf:"varint,815,opt,name=oneof_defaulted_child_enum,json=oneofDefaultedChildEnum,enum=google.golang.org.proto2_20190205.Message_ChildEnum,oneof,def=0"` } type Message_OneofDefaultedSiblingEnum struct { OneofDefaultedSiblingEnum SiblingEnum `protobuf:"varint,816,opt,name=oneof_defaulted_sibling_enum,json=oneofDefaultedSiblingEnum,enum=google.golang.org.proto2_20190205.SiblingEnum,oneof,def=0"` } func (*Message_OneofDefaultedBool) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedInt32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSint32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedUint32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedInt64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSint64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedUint64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedFixed32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSfixed32) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedFloat) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedFixed64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSfixed64) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedDouble) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedString) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedBytes) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedChildEnum) isMessage_OneofDefaultedUnion() {} func (*Message_OneofDefaultedSiblingEnum) isMessage_OneofDefaultedUnion() {} func (m *Message) GetOneofDefaultedUnion() isMessage_OneofDefaultedUnion { if m != nil { return m.OneofDefaultedUnion } return nil } func (m *Message) GetOneofDefaultedBool() bool { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedBool); ok { return x.OneofDefaultedBool } return Default_Message_OneofDefaultedBool } func (m *Message) GetOneofDefaultedInt32() int32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedInt32); ok { return x.OneofDefaultedInt32 } return Default_Message_OneofDefaultedInt32 } func (m *Message) GetOneofDefaultedSint32() int32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSint32); ok { return x.OneofDefaultedSint32 } return Default_Message_OneofDefaultedSint32 } func (m *Message) GetOneofDefaultedUint32() uint32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedUint32); ok { return x.OneofDefaultedUint32 } return Default_Message_OneofDefaultedUint32 } func (m *Message) GetOneofDefaultedInt64() int64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedInt64); ok { return x.OneofDefaultedInt64 } return Default_Message_OneofDefaultedInt64 } func (m *Message) GetOneofDefaultedSint64() int64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSint64); ok { return x.OneofDefaultedSint64 } return Default_Message_OneofDefaultedSint64 } func (m *Message) GetOneofDefaultedUint64() uint64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedUint64); ok { return x.OneofDefaultedUint64 } return Default_Message_OneofDefaultedUint64 } func (m *Message) GetOneofDefaultedFixed32() uint32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedFixed32); ok { return x.OneofDefaultedFixed32 } return Default_Message_OneofDefaultedFixed32 } func (m *Message) GetOneofDefaultedSfixed32() int32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSfixed32); ok { return x.OneofDefaultedSfixed32 } return Default_Message_OneofDefaultedSfixed32 } func (m *Message) GetOneofDefaultedFloat() float32 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedFloat); ok { return x.OneofDefaultedFloat } return Default_Message_OneofDefaultedFloat } func (m *Message) GetOneofDefaultedFixed64() uint64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedFixed64); ok { return x.OneofDefaultedFixed64 } return Default_Message_OneofDefaultedFixed64 } func (m *Message) GetOneofDefaultedSfixed64() int64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSfixed64); ok { return x.OneofDefaultedSfixed64 } return Default_Message_OneofDefaultedSfixed64 } func (m *Message) GetOneofDefaultedDouble() float64 { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedDouble); ok { return x.OneofDefaultedDouble } return Default_Message_OneofDefaultedDouble } func (m *Message) GetOneofDefaultedString() string { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedString); ok { return x.OneofDefaultedString } return Default_Message_OneofDefaultedString } func (m *Message) GetOneofDefaultedBytes() []byte { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedBytes); ok { return x.OneofDefaultedBytes } return append([]byte(nil), Default_Message_OneofDefaultedBytes...) } func (m *Message) GetOneofDefaultedChildEnum() Message_ChildEnum { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedChildEnum); ok { return x.OneofDefaultedChildEnum } return Default_Message_OneofDefaultedChildEnum } func (m *Message) GetOneofDefaultedSiblingEnum() SiblingEnum { if x, ok := m.GetOneofDefaultedUnion().(*Message_OneofDefaultedSiblingEnum); ok { return x.OneofDefaultedSiblingEnum } return Default_Message_OneofDefaultedSiblingEnum } // XXX_OneofWrappers is for the internal use of the proto package. func (*Message) XXX_OneofWrappers() []interface{} { return []interface{}{ (*Message_OneofBool)(nil), (*Message_OneofInt32)(nil), (*Message_OneofSint32)(nil), (*Message_OneofUint32)(nil), (*Message_OneofInt64)(nil), (*Message_OneofSint64)(nil), (*Message_OneofUint64)(nil), (*Message_OneofFixed32)(nil), (*Message_OneofSfixed32)(nil), (*Message_OneofFloat)(nil), (*Message_OneofFixed64)(nil), (*Message_OneofSfixed64)(nil), (*Message_OneofDouble)(nil), (*Message_OneofString)(nil), (*Message_OneofBytes)(nil), (*Message_OneofChildEnum)(nil), (*Message_OneofChildMessage)(nil), (*Message_OneofNamedGroup)(nil), (*Message_OneofSiblingEnum)(nil), (*Message_OneofSiblingMessage)(nil), (*Message_Oneofgroup)(nil), (*Message_OneofString1)(nil), (*Message_OneofString2)(nil), (*Message_OneofString3)(nil), (*Message_OneofDefaultedBool)(nil), (*Message_OneofDefaultedInt32)(nil), (*Message_OneofDefaultedSint32)(nil), (*Message_OneofDefaultedUint32)(nil), (*Message_OneofDefaultedInt64)(nil), (*Message_OneofDefaultedSint64)(nil), (*Message_OneofDefaultedUint64)(nil), (*Message_OneofDefaultedFixed32)(nil), (*Message_OneofDefaultedSfixed32)(nil), (*Message_OneofDefaultedFloat)(nil), (*Message_OneofDefaultedFixed64)(nil), (*Message_OneofDefaultedSfixed64)(nil), (*Message_OneofDefaultedDouble)(nil), (*Message_OneofDefaultedString)(nil), (*Message_OneofDefaultedBytes)(nil), (*Message_OneofDefaultedChildEnum)(nil), (*Message_OneofDefaultedSiblingEnum)(nil), } } var E_Message_ExtensionOptionalBool = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*bool)(nil), Field: 10000, Name: "google.golang.org.proto2_20190205.Message.extension_optional_bool", Tag: "varint,10000,opt,name=extension_optional_bool", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionOptionalInt32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 10001, Name: "google.golang.org.proto2_20190205.Message.extension_optional_int32", Tag: "varint,10001,opt,name=extension_optional_int32", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionOptionalSint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 10002, Name: "google.golang.org.proto2_20190205.Message.extension_optional_sint32", Tag: "zigzag32,10002,opt,name=extension_optional_sint32", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionOptionalUint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 10003, Name: "google.golang.org.proto2_20190205.Message.extension_optional_uint32", Tag: "varint,10003,opt,name=extension_optional_uint32", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionOptionalInt64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 10004, Name: "google.golang.org.proto2_20190205.Message.extension_optional_int64", Tag: "varint,10004,opt,name=extension_optional_int64", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionOptionalSint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 10005, Name: "google.golang.org.proto2_20190205.Message.extension_optional_sint64", Tag: "zigzag64,10005,opt,name=extension_optional_sint64", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionOptionalUint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 10006, Name: "google.golang.org.proto2_20190205.Message.extension_optional_uint64", Tag: "varint,10006,opt,name=extension_optional_uint64", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionOptionalFixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 10007, Name: "google.golang.org.proto2_20190205.Message.extension_optional_fixed32", Tag: "fixed32,10007,opt,name=extension_optional_fixed32", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionOptionalSfixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 10008, Name: "google.golang.org.proto2_20190205.Message.extension_optional_sfixed32", Tag: "fixed32,10008,opt,name=extension_optional_sfixed32", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionOptionalFloat = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float32)(nil), Field: 10009, Name: "google.golang.org.proto2_20190205.Message.extension_optional_float", Tag: "fixed32,10009,opt,name=extension_optional_float", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionOptionalFixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 10010, Name: "google.golang.org.proto2_20190205.Message.extension_optional_fixed64", Tag: "fixed64,10010,opt,name=extension_optional_fixed64", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionOptionalSfixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 10011, Name: "google.golang.org.proto2_20190205.Message.extension_optional_sfixed64", Tag: "fixed64,10011,opt,name=extension_optional_sfixed64", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionOptionalDouble = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float64)(nil), Field: 10012, Name: "google.golang.org.proto2_20190205.Message.extension_optional_double", Tag: "fixed64,10012,opt,name=extension_optional_double", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionOptionalString = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*string)(nil), Field: 10013, Name: "google.golang.org.proto2_20190205.Message.extension_optional_string", Tag: "bytes,10013,opt,name=extension_optional_string", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionOptionalBytes = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]byte)(nil), Field: 10014, Name: "google.golang.org.proto2_20190205.Message.extension_optional_bytes", Tag: "bytes,10014,opt,name=extension_optional_bytes", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionOptionalChildEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ChildEnum)(nil), Field: 10015, Name: "google.golang.org.proto2_20190205.Message.extension_optional_child_enum", Tag: "varint,10015,opt,name=extension_optional_child_enum,enum=google.golang.org.proto2_20190205.Message_ChildEnum", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionOptionalChildMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ChildMessage)(nil), Field: 10016, Name: "google.golang.org.proto2_20190205.Message.extension_optional_child_message", Tag: "bytes,10016,opt,name=extension_optional_child_message", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionOptionalNamedGroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_NamedGroup)(nil), Field: 10017, Name: "google.golang.org.proto2_20190205.Message.extension_optional_named_group", Tag: "bytes,10017,opt,name=extension_optional_named_group", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionOptionalSiblingEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*SiblingEnum)(nil), Field: 10018, Name: "google.golang.org.proto2_20190205.Message.extension_optional_sibling_enum", Tag: "varint,10018,opt,name=extension_optional_sibling_enum,enum=google.golang.org.proto2_20190205.SiblingEnum", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionOptionalSiblingMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*SiblingMessage)(nil), Field: 10019, Name: "google.golang.org.proto2_20190205.Message.extension_optional_sibling_message", Tag: "bytes,10019,opt,name=extension_optional_sibling_message", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_Extensionoptionalgroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ExtensionOptionalGroup)(nil), Field: 10020, Name: "google.golang.org.proto2_20190205.Message.extensionoptionalgroup", Tag: "group,10020,opt,name=ExtensionOptionalGroup", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionDefaultedBool = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*bool)(nil), Field: 20000, Name: "google.golang.org.proto2_20190205.Message.extension_defaulted_bool", Tag: "varint,20000,opt,name=extension_defaulted_bool,def=1", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionDefaultedInt32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 20001, Name: "google.golang.org.proto2_20190205.Message.extension_defaulted_int32", Tag: "varint,20001,opt,name=extension_defaulted_int32,def=-12345", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionDefaultedSint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 20002, Name: "google.golang.org.proto2_20190205.Message.extension_defaulted_sint32", Tag: "zigzag32,20002,opt,name=extension_defaulted_sint32,def=-3200", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionDefaultedUint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 20003, Name: "google.golang.org.proto2_20190205.Message.extension_defaulted_uint32", Tag: "varint,20003,opt,name=extension_defaulted_uint32,def=3200", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionDefaultedInt64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 20004, Name: "google.golang.org.proto2_20190205.Message.extension_defaulted_int64", Tag: "varint,20004,opt,name=extension_defaulted_int64,def=-123456789", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionDefaultedSint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 20005, Name: "google.golang.org.proto2_20190205.Message.extension_defaulted_sint64", Tag: "zigzag64,20005,opt,name=extension_defaulted_sint64,def=-6400", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionDefaultedUint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 20006, Name: "google.golang.org.proto2_20190205.Message.extension_defaulted_uint64", Tag: "varint,20006,opt,name=extension_defaulted_uint64,def=6400", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionDefaultedFixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint32)(nil), Field: 20007, Name: "google.golang.org.proto2_20190205.Message.extension_defaulted_fixed32", Tag: "fixed32,20007,opt,name=extension_defaulted_fixed32,def=320000", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionDefaultedSfixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int32)(nil), Field: 20008, Name: "google.golang.org.proto2_20190205.Message.extension_defaulted_sfixed32", Tag: "fixed32,20008,opt,name=extension_defaulted_sfixed32,def=-320000", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionDefaultedFloat = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float32)(nil), Field: 20009, Name: "google.golang.org.proto2_20190205.Message.extension_defaulted_float", Tag: "fixed32,20009,opt,name=extension_defaulted_float,def=3.14159", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionDefaultedFixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*uint64)(nil), Field: 20010, Name: "google.golang.org.proto2_20190205.Message.extension_defaulted_fixed64", Tag: "fixed64,20010,opt,name=extension_defaulted_fixed64,def=640000", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionDefaultedSfixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*int64)(nil), Field: 20011, Name: "google.golang.org.proto2_20190205.Message.extension_defaulted_sfixed64", Tag: "fixed64,20011,opt,name=extension_defaulted_sfixed64,def=-640000", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionDefaultedDouble = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*float64)(nil), Field: 20012, Name: "google.golang.org.proto2_20190205.Message.extension_defaulted_double", Tag: "fixed64,20012,opt,name=extension_defaulted_double,def=3.14159265359", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionDefaultedString = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*string)(nil), Field: 20013, Name: "google.golang.org.proto2_20190205.Message.extension_defaulted_string", Tag: "bytes,20013,opt,name=extension_defaulted_string,def=hello, \"world!\"\n", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionDefaultedBytes = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]byte)(nil), Field: 20014, Name: "google.golang.org.proto2_20190205.Message.extension_defaulted_bytes", Tag: "bytes,20014,opt,name=extension_defaulted_bytes,def=dead\\336\\255\\276\\357beef", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionDefaultedChildEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*Message_ChildEnum)(nil), Field: 20015, Name: "google.golang.org.proto2_20190205.Message.extension_defaulted_child_enum", Tag: "varint,20015,opt,name=extension_defaulted_child_enum,enum=google.golang.org.proto2_20190205.Message_ChildEnum,def=0", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionDefaultedSiblingEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: (*SiblingEnum)(nil), Field: 20016, Name: "google.golang.org.proto2_20190205.Message.extension_defaulted_sibling_enum", Tag: "varint,20016,opt,name=extension_defaulted_sibling_enum,enum=google.golang.org.proto2_20190205.SiblingEnum,def=0", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionRepeatedBool = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]bool)(nil), Field: 30000, Name: "google.golang.org.proto2_20190205.Message.extension_repeated_bool", Tag: "varint,30000,rep,name=extension_repeated_bool", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionRepeatedInt32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int32)(nil), Field: 30001, Name: "google.golang.org.proto2_20190205.Message.extension_repeated_int32", Tag: "varint,30001,rep,name=extension_repeated_int32", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionRepeatedSint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int32)(nil), Field: 30002, Name: "google.golang.org.proto2_20190205.Message.extension_repeated_sint32", Tag: "zigzag32,30002,rep,name=extension_repeated_sint32", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionRepeatedUint32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint32)(nil), Field: 30003, Name: "google.golang.org.proto2_20190205.Message.extension_repeated_uint32", Tag: "varint,30003,rep,name=extension_repeated_uint32", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionRepeatedInt64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int64)(nil), Field: 30004, Name: "google.golang.org.proto2_20190205.Message.extension_repeated_int64", Tag: "varint,30004,rep,name=extension_repeated_int64", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionRepeatedSint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int64)(nil), Field: 30005, Name: "google.golang.org.proto2_20190205.Message.extension_repeated_sint64", Tag: "zigzag64,30005,rep,name=extension_repeated_sint64", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionRepeatedUint64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint64)(nil), Field: 30006, Name: "google.golang.org.proto2_20190205.Message.extension_repeated_uint64", Tag: "varint,30006,rep,name=extension_repeated_uint64", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionRepeatedFixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint32)(nil), Field: 30007, Name: "google.golang.org.proto2_20190205.Message.extension_repeated_fixed32", Tag: "fixed32,30007,rep,name=extension_repeated_fixed32", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionRepeatedSfixed32 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int32)(nil), Field: 30008, Name: "google.golang.org.proto2_20190205.Message.extension_repeated_sfixed32", Tag: "fixed32,30008,rep,name=extension_repeated_sfixed32", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionRepeatedFloat = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]float32)(nil), Field: 30009, Name: "google.golang.org.proto2_20190205.Message.extension_repeated_float", Tag: "fixed32,30009,rep,name=extension_repeated_float", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionRepeatedFixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]uint64)(nil), Field: 30010, Name: "google.golang.org.proto2_20190205.Message.extension_repeated_fixed64", Tag: "fixed64,30010,rep,name=extension_repeated_fixed64", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionRepeatedSfixed64 = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]int64)(nil), Field: 30011, Name: "google.golang.org.proto2_20190205.Message.extension_repeated_sfixed64", Tag: "fixed64,30011,rep,name=extension_repeated_sfixed64", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionRepeatedDouble = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]float64)(nil), Field: 30012, Name: "google.golang.org.proto2_20190205.Message.extension_repeated_double", Tag: "fixed64,30012,rep,name=extension_repeated_double", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionRepeatedString = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]string)(nil), Field: 30013, Name: "google.golang.org.proto2_20190205.Message.extension_repeated_string", Tag: "bytes,30013,rep,name=extension_repeated_string", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionRepeatedBytes = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([][]byte)(nil), Field: 30014, Name: "google.golang.org.proto2_20190205.Message.extension_repeated_bytes", Tag: "bytes,30014,rep,name=extension_repeated_bytes", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionRepeatedChildEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]Message_ChildEnum)(nil), Field: 30015, Name: "google.golang.org.proto2_20190205.Message.extension_repeated_child_enum", Tag: "varint,30015,rep,name=extension_repeated_child_enum,enum=google.golang.org.proto2_20190205.Message_ChildEnum", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionRepeatedChildMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*Message_ChildMessage)(nil), Field: 30016, Name: "google.golang.org.proto2_20190205.Message.extension_repeated_child_message", Tag: "bytes,30016,rep,name=extension_repeated_child_message", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionRepeatedNamedGroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*Message_NamedGroup)(nil), Field: 30017, Name: "google.golang.org.proto2_20190205.Message.extension_repeated_named_group", Tag: "bytes,30017,rep,name=extension_repeated_named_group", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionRepeatedSiblingEnum = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]SiblingEnum)(nil), Field: 30018, Name: "google.golang.org.proto2_20190205.Message.extension_repeated_sibling_enum", Tag: "varint,30018,rep,name=extension_repeated_sibling_enum,enum=google.golang.org.proto2_20190205.SiblingEnum", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_ExtensionRepeatedSiblingMessage = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*SiblingMessage)(nil), Field: 30019, Name: "google.golang.org.proto2_20190205.Message.extension_repeated_sibling_message", Tag: "bytes,30019,rep,name=extension_repeated_sibling_message", Filename: "proto2_20190205_c823c79e/test.proto", } var E_Message_Extensionrepeatedgroup = &proto.ExtensionDesc{ ExtendedType: (*Message)(nil), ExtensionType: ([]*Message_ExtensionRepeatedGroup)(nil), Field: 30020, Name: "google.golang.org.proto2_20190205.Message.extensionrepeatedgroup", Tag: "group,30020,rep,name=ExtensionRepeatedGroup", Filename: "proto2_20190205_c823c79e/test.proto", } type Message_ChildMessage struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` F4 *Message `protobuf:"bytes,4,opt,name=f4" json:"f4,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_ChildMessage) Reset() { *m = Message_ChildMessage{} } func (m *Message_ChildMessage) String() string { return proto.CompactTextString(m) } func (*Message_ChildMessage) ProtoMessage() {} func (*Message_ChildMessage) Descriptor() ([]byte, []int) { return fileDescriptor_3a17e2c63b2b3424, []int{1, 0} } func (m *Message_ChildMessage) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_ChildMessage.Unmarshal(m, b) } func (m *Message_ChildMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_ChildMessage.Marshal(b, m, deterministic) } func (m *Message_ChildMessage) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_ChildMessage.Merge(m, src) } func (m *Message_ChildMessage) XXX_Size() int { return xxx_messageInfo_Message_ChildMessage.Size(m) } func (m *Message_ChildMessage) XXX_DiscardUnknown() { xxx_messageInfo_Message_ChildMessage.DiscardUnknown(m) } var xxx_messageInfo_Message_ChildMessage proto.InternalMessageInfo func (m *Message_ChildMessage) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_ChildMessage) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_ChildMessage) GetF3() []string { if m != nil { return m.F3 } return nil } func (m *Message_ChildMessage) GetF4() *Message { if m != nil { return m.F4 } return nil } type Message_NamedGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` F4 *Message `protobuf:"bytes,4,opt,name=f4" json:"f4,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_NamedGroup) Reset() { *m = Message_NamedGroup{} } func (m *Message_NamedGroup) String() string { return proto.CompactTextString(m) } func (*Message_NamedGroup) ProtoMessage() {} func (*Message_NamedGroup) Descriptor() ([]byte, []int) { return fileDescriptor_3a17e2c63b2b3424, []int{1, 1} } func (m *Message_NamedGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_NamedGroup.Unmarshal(m, b) } func (m *Message_NamedGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_NamedGroup.Marshal(b, m, deterministic) } func (m *Message_NamedGroup) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_NamedGroup.Merge(m, src) } func (m *Message_NamedGroup) XXX_Size() int { return xxx_messageInfo_Message_NamedGroup.Size(m) } func (m *Message_NamedGroup) XXX_DiscardUnknown() { xxx_messageInfo_Message_NamedGroup.DiscardUnknown(m) } var xxx_messageInfo_Message_NamedGroup proto.InternalMessageInfo func (m *Message_NamedGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_NamedGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_NamedGroup) GetF3() []string { if m != nil { return m.F3 } return nil } func (m *Message_NamedGroup) GetF4() *Message { if m != nil { return m.F4 } return nil } type Message_OptionalGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_OptionalGroup) Reset() { *m = Message_OptionalGroup{} } func (m *Message_OptionalGroup) String() string { return proto.CompactTextString(m) } func (*Message_OptionalGroup) ProtoMessage() {} func (*Message_OptionalGroup) Descriptor() ([]byte, []int) { return fileDescriptor_3a17e2c63b2b3424, []int{1, 2} } func (m *Message_OptionalGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_OptionalGroup.Unmarshal(m, b) } func (m *Message_OptionalGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_OptionalGroup.Marshal(b, m, deterministic) } func (m *Message_OptionalGroup) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_OptionalGroup.Merge(m, src) } func (m *Message_OptionalGroup) XXX_Size() int { return xxx_messageInfo_Message_OptionalGroup.Size(m) } func (m *Message_OptionalGroup) XXX_DiscardUnknown() { xxx_messageInfo_Message_OptionalGroup.DiscardUnknown(m) } var xxx_messageInfo_Message_OptionalGroup proto.InternalMessageInfo func (m *Message_OptionalGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_OptionalGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_OptionalGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_RequiredGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_RequiredGroup) Reset() { *m = Message_RequiredGroup{} } func (m *Message_RequiredGroup) String() string { return proto.CompactTextString(m) } func (*Message_RequiredGroup) ProtoMessage() {} func (*Message_RequiredGroup) Descriptor() ([]byte, []int) { return fileDescriptor_3a17e2c63b2b3424, []int{1, 3} } func (m *Message_RequiredGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_RequiredGroup.Unmarshal(m, b) } func (m *Message_RequiredGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_RequiredGroup.Marshal(b, m, deterministic) } func (m *Message_RequiredGroup) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_RequiredGroup.Merge(m, src) } func (m *Message_RequiredGroup) XXX_Size() int { return xxx_messageInfo_Message_RequiredGroup.Size(m) } func (m *Message_RequiredGroup) XXX_DiscardUnknown() { xxx_messageInfo_Message_RequiredGroup.DiscardUnknown(m) } var xxx_messageInfo_Message_RequiredGroup proto.InternalMessageInfo func (m *Message_RequiredGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_RequiredGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_RequiredGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_RepeatedGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_RepeatedGroup) Reset() { *m = Message_RepeatedGroup{} } func (m *Message_RepeatedGroup) String() string { return proto.CompactTextString(m) } func (*Message_RepeatedGroup) ProtoMessage() {} func (*Message_RepeatedGroup) Descriptor() ([]byte, []int) { return fileDescriptor_3a17e2c63b2b3424, []int{1, 4} } func (m *Message_RepeatedGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_RepeatedGroup.Unmarshal(m, b) } func (m *Message_RepeatedGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_RepeatedGroup.Marshal(b, m, deterministic) } func (m *Message_RepeatedGroup) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_RepeatedGroup.Merge(m, src) } func (m *Message_RepeatedGroup) XXX_Size() int { return xxx_messageInfo_Message_RepeatedGroup.Size(m) } func (m *Message_RepeatedGroup) XXX_DiscardUnknown() { xxx_messageInfo_Message_RepeatedGroup.DiscardUnknown(m) } var xxx_messageInfo_Message_RepeatedGroup proto.InternalMessageInfo func (m *Message_RepeatedGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_RepeatedGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_RepeatedGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_OneofGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_OneofGroup) Reset() { *m = Message_OneofGroup{} } func (m *Message_OneofGroup) String() string { return proto.CompactTextString(m) } func (*Message_OneofGroup) ProtoMessage() {} func (*Message_OneofGroup) Descriptor() ([]byte, []int) { return fileDescriptor_3a17e2c63b2b3424, []int{1, 33} } func (m *Message_OneofGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_OneofGroup.Unmarshal(m, b) } func (m *Message_OneofGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_OneofGroup.Marshal(b, m, deterministic) } func (m *Message_OneofGroup) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_OneofGroup.Merge(m, src) } func (m *Message_OneofGroup) XXX_Size() int { return xxx_messageInfo_Message_OneofGroup.Size(m) } func (m *Message_OneofGroup) XXX_DiscardUnknown() { xxx_messageInfo_Message_OneofGroup.DiscardUnknown(m) } var xxx_messageInfo_Message_OneofGroup proto.InternalMessageInfo func (m *Message_OneofGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_OneofGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_OneofGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_ExtensionOptionalGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_ExtensionOptionalGroup) Reset() { *m = Message_ExtensionOptionalGroup{} } func (m *Message_ExtensionOptionalGroup) String() string { return proto.CompactTextString(m) } func (*Message_ExtensionOptionalGroup) ProtoMessage() {} func (*Message_ExtensionOptionalGroup) Descriptor() ([]byte, []int) { return fileDescriptor_3a17e2c63b2b3424, []int{1, 34} } func (m *Message_ExtensionOptionalGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_ExtensionOptionalGroup.Unmarshal(m, b) } func (m *Message_ExtensionOptionalGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_ExtensionOptionalGroup.Marshal(b, m, deterministic) } func (m *Message_ExtensionOptionalGroup) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_ExtensionOptionalGroup.Merge(m, src) } func (m *Message_ExtensionOptionalGroup) XXX_Size() int { return xxx_messageInfo_Message_ExtensionOptionalGroup.Size(m) } func (m *Message_ExtensionOptionalGroup) XXX_DiscardUnknown() { xxx_messageInfo_Message_ExtensionOptionalGroup.DiscardUnknown(m) } var xxx_messageInfo_Message_ExtensionOptionalGroup proto.InternalMessageInfo func (m *Message_ExtensionOptionalGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_ExtensionOptionalGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_ExtensionOptionalGroup) GetF3() []string { if m != nil { return m.F3 } return nil } type Message_ExtensionRepeatedGroup struct { F1 *string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 *string `protobuf:"bytes,2,req,name=f2" json:"f2,omitempty"` F3 []string `protobuf:"bytes,3,rep,name=f3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_ExtensionRepeatedGroup) Reset() { *m = Message_ExtensionRepeatedGroup{} } func (m *Message_ExtensionRepeatedGroup) String() string { return proto.CompactTextString(m) } func (*Message_ExtensionRepeatedGroup) ProtoMessage() {} func (*Message_ExtensionRepeatedGroup) Descriptor() ([]byte, []int) { return fileDescriptor_3a17e2c63b2b3424, []int{1, 35} } func (m *Message_ExtensionRepeatedGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_ExtensionRepeatedGroup.Unmarshal(m, b) } func (m *Message_ExtensionRepeatedGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_ExtensionRepeatedGroup.Marshal(b, m, deterministic) } func (m *Message_ExtensionRepeatedGroup) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_ExtensionRepeatedGroup.Merge(m, src) } func (m *Message_ExtensionRepeatedGroup) XXX_Size() int { return xxx_messageInfo_Message_ExtensionRepeatedGroup.Size(m) } func (m *Message_ExtensionRepeatedGroup) XXX_DiscardUnknown() { xxx_messageInfo_Message_ExtensionRepeatedGroup.DiscardUnknown(m) } var xxx_messageInfo_Message_ExtensionRepeatedGroup proto.InternalMessageInfo func (m *Message_ExtensionRepeatedGroup) GetF1() string { if m != nil && m.F1 != nil { return *m.F1 } return "" } func (m *Message_ExtensionRepeatedGroup) GetF2() string { if m != nil && m.F2 != nil { return *m.F2 } return "" } func (m *Message_ExtensionRepeatedGroup) GetF3() []string { if m != nil { return m.F3 } return nil } func init() { proto.RegisterEnum("google.golang.org.proto2_20190205.SiblingEnum", SiblingEnum_name, SiblingEnum_value) proto.RegisterEnum("google.golang.org.proto2_20190205.Message_ChildEnum", Message_ChildEnum_name, Message_ChildEnum_value) proto.RegisterType((*SiblingMessage)(nil), "google.golang.org.proto2_20190205.SiblingMessage") proto.RegisterExtension(E_Message_ExtensionOptionalBool) proto.RegisterExtension(E_Message_ExtensionOptionalInt32) proto.RegisterExtension(E_Message_ExtensionOptionalSint32) proto.RegisterExtension(E_Message_ExtensionOptionalUint32) proto.RegisterExtension(E_Message_ExtensionOptionalInt64) proto.RegisterExtension(E_Message_ExtensionOptionalSint64) proto.RegisterExtension(E_Message_ExtensionOptionalUint64) proto.RegisterExtension(E_Message_ExtensionOptionalFixed32) proto.RegisterExtension(E_Message_ExtensionOptionalSfixed32) proto.RegisterExtension(E_Message_ExtensionOptionalFloat) proto.RegisterExtension(E_Message_ExtensionOptionalFixed64) proto.RegisterExtension(E_Message_ExtensionOptionalSfixed64) proto.RegisterExtension(E_Message_ExtensionOptionalDouble) proto.RegisterExtension(E_Message_ExtensionOptionalString) proto.RegisterExtension(E_Message_ExtensionOptionalBytes) proto.RegisterExtension(E_Message_ExtensionOptionalChildEnum) proto.RegisterExtension(E_Message_ExtensionOptionalChildMessage) proto.RegisterExtension(E_Message_ExtensionOptionalNamedGroup) proto.RegisterExtension(E_Message_ExtensionOptionalSiblingEnum) proto.RegisterExtension(E_Message_ExtensionOptionalSiblingMessage) proto.RegisterExtension(E_Message_Extensionoptionalgroup) proto.RegisterExtension(E_Message_ExtensionDefaultedBool) proto.RegisterExtension(E_Message_ExtensionDefaultedInt32) proto.RegisterExtension(E_Message_ExtensionDefaultedSint32) proto.RegisterExtension(E_Message_ExtensionDefaultedUint32) proto.RegisterExtension(E_Message_ExtensionDefaultedInt64) proto.RegisterExtension(E_Message_ExtensionDefaultedSint64) proto.RegisterExtension(E_Message_ExtensionDefaultedUint64) proto.RegisterExtension(E_Message_ExtensionDefaultedFixed32) proto.RegisterExtension(E_Message_ExtensionDefaultedSfixed32) proto.RegisterExtension(E_Message_ExtensionDefaultedFloat) proto.RegisterExtension(E_Message_ExtensionDefaultedFixed64) proto.RegisterExtension(E_Message_ExtensionDefaultedSfixed64) proto.RegisterExtension(E_Message_ExtensionDefaultedDouble) proto.RegisterExtension(E_Message_ExtensionDefaultedString) proto.RegisterExtension(E_Message_ExtensionDefaultedBytes) proto.RegisterExtension(E_Message_ExtensionDefaultedChildEnum) proto.RegisterExtension(E_Message_ExtensionDefaultedSiblingEnum) proto.RegisterExtension(E_Message_ExtensionRepeatedBool) proto.RegisterExtension(E_Message_ExtensionRepeatedInt32) proto.RegisterExtension(E_Message_ExtensionRepeatedSint32) proto.RegisterExtension(E_Message_ExtensionRepeatedUint32) proto.RegisterExtension(E_Message_ExtensionRepeatedInt64) proto.RegisterExtension(E_Message_ExtensionRepeatedSint64) proto.RegisterExtension(E_Message_ExtensionRepeatedUint64) proto.RegisterExtension(E_Message_ExtensionRepeatedFixed32) proto.RegisterExtension(E_Message_ExtensionRepeatedSfixed32) proto.RegisterExtension(E_Message_ExtensionRepeatedFloat) proto.RegisterExtension(E_Message_ExtensionRepeatedFixed64) proto.RegisterExtension(E_Message_ExtensionRepeatedSfixed64) proto.RegisterExtension(E_Message_ExtensionRepeatedDouble) proto.RegisterExtension(E_Message_ExtensionRepeatedString) proto.RegisterExtension(E_Message_ExtensionRepeatedBytes) proto.RegisterExtension(E_Message_ExtensionRepeatedChildEnum) proto.RegisterExtension(E_Message_ExtensionRepeatedChildMessage) proto.RegisterExtension(E_Message_ExtensionRepeatedNamedGroup) proto.RegisterExtension(E_Message_ExtensionRepeatedSiblingEnum) proto.RegisterExtension(E_Message_ExtensionRepeatedSiblingMessage) proto.RegisterExtension(E_Message_Extensionrepeatedgroup) proto.RegisterType((*Message)(nil), "google.golang.org.proto2_20190205.Message") proto.RegisterMapType((map[bool]bool)(nil), "google.golang.org.proto2_20190205.Message.MapBoolBoolEntry") proto.RegisterMapType((map[bool][]byte)(nil), "google.golang.org.proto2_20190205.Message.MapBoolBytesEntry") proto.RegisterMapType((map[bool]Message_ChildEnum)(nil), "google.golang.org.proto2_20190205.Message.MapBoolChildEnumEntry") proto.RegisterMapType((map[bool]*Message_ChildMessage)(nil), "google.golang.org.proto2_20190205.Message.MapBoolChildMessageEntry") proto.RegisterMapType((map[bool]float64)(nil), "google.golang.org.proto2_20190205.Message.MapBoolDoubleEntry") proto.RegisterMapType((map[bool]uint32)(nil), "google.golang.org.proto2_20190205.Message.MapBoolFixed32Entry") proto.RegisterMapType((map[bool]uint64)(nil), "google.golang.org.proto2_20190205.Message.MapBoolFixed64Entry") proto.RegisterMapType((map[bool]float32)(nil), "google.golang.org.proto2_20190205.Message.MapBoolFloatEntry") proto.RegisterMapType((map[bool]int32)(nil), "google.golang.org.proto2_20190205.Message.MapBoolInt32Entry") proto.RegisterMapType((map[bool]int64)(nil), "google.golang.org.proto2_20190205.Message.MapBoolInt64Entry") proto.RegisterMapType((map[bool]*Message_NamedGroup)(nil), "google.golang.org.proto2_20190205.Message.MapBoolNamedGroupEntry") proto.RegisterMapType((map[bool]int32)(nil), "google.golang.org.proto2_20190205.Message.MapBoolSfixed32Entry") proto.RegisterMapType((map[bool]int64)(nil), "google.golang.org.proto2_20190205.Message.MapBoolSfixed64Entry") proto.RegisterMapType((map[bool]SiblingEnum)(nil), "google.golang.org.proto2_20190205.Message.MapBoolSiblingEnumEntry") proto.RegisterMapType((map[bool]*SiblingMessage)(nil), "google.golang.org.proto2_20190205.Message.MapBoolSiblingMessageEntry") proto.RegisterMapType((map[bool]int32)(nil), "google.golang.org.proto2_20190205.Message.MapBoolSint32Entry") proto.RegisterMapType((map[bool]int64)(nil), "google.golang.org.proto2_20190205.Message.MapBoolSint64Entry") proto.RegisterMapType((map[bool]string)(nil), "google.golang.org.proto2_20190205.Message.MapBoolStringEntry") proto.RegisterMapType((map[bool]uint32)(nil), "google.golang.org.proto2_20190205.Message.MapBoolUint32Entry") proto.RegisterMapType((map[bool]uint64)(nil), "google.golang.org.proto2_20190205.Message.MapBoolUint64Entry") proto.RegisterMapType((map[uint32]bool)(nil), "google.golang.org.proto2_20190205.Message.MapFixed32BoolEntry") proto.RegisterMapType((map[int32]bool)(nil), "google.golang.org.proto2_20190205.Message.MapInt32BoolEntry") proto.RegisterMapType((map[int64]bool)(nil), "google.golang.org.proto2_20190205.Message.MapInt64BoolEntry") proto.RegisterMapType((map[int32]bool)(nil), "google.golang.org.proto2_20190205.Message.MapSint32BoolEntry") proto.RegisterMapType((map[int64]bool)(nil), "google.golang.org.proto2_20190205.Message.MapSint64BoolEntry") proto.RegisterMapType((map[string]bool)(nil), "google.golang.org.proto2_20190205.Message.MapStringBoolEntry") proto.RegisterMapType((map[uint32]bool)(nil), "google.golang.org.proto2_20190205.Message.MapUint32BoolEntry") proto.RegisterMapType((map[uint64]bool)(nil), "google.golang.org.proto2_20190205.Message.MapUint64BoolEntry") proto.RegisterType((*Message_ChildMessage)(nil), "google.golang.org.proto2_20190205.Message.ChildMessage") proto.RegisterType((*Message_NamedGroup)(nil), "google.golang.org.proto2_20190205.Message.NamedGroup") proto.RegisterType((*Message_OptionalGroup)(nil), "google.golang.org.proto2_20190205.Message.OptionalGroup") proto.RegisterType((*Message_RequiredGroup)(nil), "google.golang.org.proto2_20190205.Message.RequiredGroup") proto.RegisterType((*Message_RepeatedGroup)(nil), "google.golang.org.proto2_20190205.Message.RepeatedGroup") proto.RegisterType((*Message_OneofGroup)(nil), "google.golang.org.proto2_20190205.Message.OneofGroup") proto.RegisterType((*Message_ExtensionOptionalGroup)(nil), "google.golang.org.proto2_20190205.Message.ExtensionOptionalGroup") proto.RegisterType((*Message_ExtensionRepeatedGroup)(nil), "google.golang.org.proto2_20190205.Message.ExtensionRepeatedGroup") } func init() { proto.RegisterFile("proto2_20190205_c823c79e/test.proto", fileDescriptor_3a17e2c63b2b3424) } var fileDescriptor_3a17e2c63b2b3424 = []byte{ // 4469 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5c, 0x67, 0x70, 0x24, 0xc7, 0x75, 0xc6, 0xec, 0x62, 0x17, 0x87, 0x3e, 0x2c, 0xb0, 0x98, 0xbb, 0x03, 0xe6, 0x40, 0xd2, 0x5c, 0x41, 0xb2, 0xbc, 0xa6, 0x79, 0x38, 0x60, 0xd0, 0xe8, 0xe3, 0xad, 0x19, 0x04, 0x90, 0x47, 0x2d, 0x65, 0x71, 0xa9, 0x1a, 0xd6, 0xb9, 0x5c, 0x2e, 0x96, 0x61, 0xdc, 0x61, 0x81, 0x03, 0xb9, 0x01, 0x04, 0x76, 0x49, 0x9e, 0x25, 0x17, 0xcf, 0x72, 0xfc, 0x49, 0xe5, 0xb4, 0x92, 0x28, 0x66, 0x89, 0x51, 0x39, 0x31, 0x29, 0xd8, 0xa6, 0x72, 0x72, 0x90, 0x93, 0x9c, 0x93, 0x9c, 0x73, 0x0e, 0xd5, 0xfd, 0xba, 0xa7, 0xbb, 0x67, 0x7a, 0x16, 0xe8, 0x59, 0x15, 0x7f, 0xb0, 0x8a, 0xd7, 0xfb, 0xfa, 0x7d, 0xfd, 0xbe, 0xed, 0xf7, 0xde, 0x87, 0x9e, 0xe9, 0x45, 0x2f, 0xdd, 0xde, 0x69, 0x77, 0xda, 0xfe, 0xaa, 0x3f, 0xbf, 0x70, 0x72, 0xde, 0x9f, 0x5f, 0x5a, 0x3d, 0x7b, 0x85, 0xbf, 0x78, 0xf6, 0xc4, 0xc9, 0xfa, 0xf1, 0x4e, 0x7d, 0xb7, 0x33, 0xc7, 0x3e, 0x75, 0x5f, 0xb2, 0xd9, 0x6e, 0x6f, 0x36, 0xea, 0x73, 0x9b, 0xed, 0xc6, 0x5a, 0x6b, 0x73, 0xae, 0xbd, 0xb3, 0x39, 0x17, 0x99, 0x36, 0xfb, 0x3a, 0x34, 0x7e, 0xf3, 0xd6, 0x99, 0xc6, 0x56, 0x6b, 0xf3, 0xc6, 0xfa, 0xee, 0xee, 0xda, 0x66, 0xdd, 0x1d, 0x47, 0x99, 0x8d, 0x05, 0xcf, 0x29, 0x39, 0xe5, 0xd1, 0x20, 0xb3, 0xb1, 0xc0, 0xfe, 0xed, 0x7b, 0x99, 0x52, 0x86, 0xfd, 0xdb, 0x67, 0xff, 0x5e, 0xf4, 0xb2, 0xa5, 0x2c, 0xfb, 0xf7, 0xa2, 0x5b, 0x41, 0x99, 0x0d, 0xec, 0x0d, 0x97, 0x9c, 0xf2, 0x41, 0xff, 0xb2, 0xb9, 0x3d, 0x11, 0xe7, 0x38, 0x4e, 0x90, 0xd9, 0xc0, 0xb3, 0xdf, 0x79, 0xd4, 0x41, 0x23, 0x02, 0xf8, 0x34, 0x42, 0xad, 0xb5, 0x66, 0x7d, 0x7d, 0x73, 0xa7, 0xdd, 0xdd, 0x66, 0x0b, 0x40, 0xfe, 0xd2, 0xfe, 0x1d, 0xce, 0xd5, 0xe8, 0xe4, 0x57, 0xd2, 0xc9, 0x81, 0xe2, 0xc8, 0x7d, 0x29, 0x2a, 0xb4, 0xb7, 0x3b, 0x5b, 0xed, 0xd6, 0x5a, 0x63, 0xf5, 0x4c, 0xbb, 0xdd, 0xf0, 0xd6, 0x4b, 0x4e, 0xf9, 0x40, 0x30, 0x26, 0x06, 0x57, 0xda, 0xed, 0x86, 0xfb, 0xfd, 0x68, 0x3c, 0x34, 0xda, 0x6a, 0x75, 0x16, 0x7d, 0xaf, 0x5e, 0x72, 0xca, 0xb9, 0x20, 0x9c, 0x7a, 0x03, 0x1d, 0x74, 0x7f, 0x00, 0x4d, 0x84, 0x66, 0xbb, 0x60, 0xb7, 0x51, 0x72, 0xca, 0x93, 0x41, 0x38, 0xfb, 0xe6, 0xad, 0x98, 0x61, 0x17, 0x0c, 0x37, 0x4b, 0x4e, 0xb9, 0x20, 0x0d, 0x4f, 0x83, 0x61, 0x04, 0x98, 0x60, 0xef, 0x5c, 0xc9, 0x29, 0x67, 0x35, 0x60, 0x82, 0x63, 0xc0, 0x04, 0x7b, 0x5b, 0x25, 0xa7, 0xec, 0xea, 0xc0, 0x11, 0xc3, 0x2e, 0x18, 0xde, 0x5a, 0x72, 0xca, 0xc3, 0x3a, 0x30, 0xc1, 0xee, 0x0f, 0xa2, 0x62, 0x68, 0xb8, 0xb1, 0x75, 0x57, 0x7d, 0x7d, 0xd1, 0xf7, 0x6e, 0x2b, 0x39, 0xe5, 0x91, 0x20, 0x74, 0x70, 0x3d, 0x0c, 0xbb, 0x3f, 0x84, 0x26, 0x25, 0xb8, 0xb0, 0x6d, 0x94, 0x9c, 0xf2, 0x44, 0x10, 0xfa, 0xb8, 0x99, 0x8f, 0x6b, 0x01, 0x6d, 0x34, 0xda, 0x6b, 0x1d, 0xaf, 0x59, 0x72, 0xca, 0x19, 0x19, 0xd0, 0xf5, 0x74, 0x30, 0x0e, 0x4f, 0xb0, 0xd7, 0x2a, 0x39, 0xe5, 0x7c, 0x04, 0x9e, 0x60, 0x03, 0x3c, 0xc1, 0x5e, 0xbb, 0xe4, 0x94, 0x8b, 0x51, 0xf8, 0x48, 0xfc, 0xeb, 0xed, 0xee, 0x99, 0x46, 0xdd, 0xdb, 0x2e, 0x39, 0x65, 0x47, 0xc6, 0x7f, 0x1d, 0x1b, 0xd5, 0x19, 0xed, 0xec, 0x6c, 0xb5, 0x36, 0xbd, 0xdb, 0xd9, 0x9e, 0x97, 0x8c, 0xb2, 0x51, 0x2d, 0xa0, 0x33, 0xe7, 0x3b, 0xf5, 0x5d, 0x6f, 0xa7, 0xe4, 0x94, 0xc7, 0x64, 0x40, 0x2b, 0x74, 0xd0, 0x5d, 0x47, 0x87, 0x42, 0xb3, 0xb3, 0xe7, 0xb6, 0x1a, 0xeb, 0xab, 0xf5, 0x56, 0xb7, 0xe9, 0xed, 0x96, 0x9c, 0xf2, 0xb8, 0x8f, 0x2d, 0xb6, 0xf1, 0xb5, 0x74, 0xf2, 0xa9, 0x56, 0xb7, 0x19, 0x84, 0x61, 0x87, 0x43, 0x6e, 0x13, 0x4d, 0x45, 0x50, 0x9a, 0x30, 0xcd, 0xeb, 0xb0, 0x04, 0x3c, 0x61, 0x0b, 0x24, 0xb2, 0xf1, 0xb0, 0x86, 0x25, 0x52, 0x72, 0x13, 0x85, 0xe3, 0xab, 0x2c, 0xa5, 0x56, 0x21, 0x39, 0xbb, 0x0c, 0x2c, 0x65, 0x72, 0xba, 0xc2, 0xa5, 0x1c, 0x73, 0xcf, 0xa0, 0x23, 0xca, 0xfe, 0x66, 0xf5, 0x08, 0xf8, 0xbb, 0x83, 0xf1, 0x37, 0xb7, 0x0f, 0x24, 0x5e, 0xc6, 0x18, 0x73, 0x87, 0x64, 0x56, 0x84, 0x83, 0xee, 0x6d, 0xc8, 0x8b, 0x61, 0x08, 0xf6, 0xee, 0x64, 0x01, 0x2d, 0xec, 0x1f, 0x46, 0xf0, 0x36, 0x15, 0x41, 0x12, 0xcc, 0xfd, 0x84, 0xac, 0x3a, 0x40, 0xd9, 0x5d, 0xac, 0x9e, 0x5d, 0x61, 0x41, 0xd9, 0x4d, 0x7c, 0x3e, 0xb0, 0xa6, 0xbb, 0x73, 0x2f, 0x47, 0xe3, 0xeb, 0xf5, 0x8d, 0xb5, 0x6e, 0xa3, 0x53, 0x5f, 0x87, 0xb2, 0xf6, 0x02, 0xad, 0x98, 0x07, 0x2a, 0xc3, 0x9d, 0x9d, 0x6e, 0x3d, 0x28, 0x84, 0x1f, 0xb2, 0xf2, 0x36, 0x8f, 0x26, 0xa4, 0x35, 0x94, 0xa3, 0x2f, 0x50, 0xf3, 0x5c, 0x25, 0x7f, 0x6c, 0xc1, 0x5f, 0xc4, 0x4b, 0x81, 0xf4, 0x06, 0x95, 0x6e, 0x01, 0x15, 0xe5, 0x0c, 0x5e, 0xea, 0xbe, 0x48, 0xa7, 0x4c, 0x56, 0x72, 0xc7, 0x16, 0xfd, 0xf9, 0xf9, 0x40, 0x7a, 0xe4, 0x35, 0x6f, 0x5e, 0x9d, 0xc2, 0x8b, 0xde, 0x97, 0xe8, 0x94, 0x42, 0x65, 0x38, 0x32, 0x83, 0x17, 0x3f, 0x1c, 0x59, 0x16, 0xc1, 0xde, 0x97, 0xe9, 0x84, 0x6c, 0x05, 0xc1, 0xb2, 0xc8, 0x89, 0x2b, 0x4e, 0xea, 0x4b, 0x23, 0x38, 0xbe, 0x34, 0x82, 0xbd, 0xaf, 0xd0, 0x69, 0x6e, 0x25, 0x77, 0x8c, 0xe0, 0xd8, 0xd2, 0x08, 0x8e, 0x2f, 0x8d, 0x60, 0xef, 0xab, 0x74, 0xca, 0x70, 0x65, 0x38, 0x32, 0x83, 0x97, 0x47, 0x8c, 0x26, 0xe5, 0x0c, 0x51, 0xf3, 0xbe, 0x46, 0xa7, 0x8c, 0x54, 0xf2, 0x34, 0x9a, 0xf9, 0xf9, 0x40, 0xfa, 0x14, 0x95, 0xf2, 0x04, 0x72, 0x95, 0xa5, 0x89, 0x69, 0x5f, 0xa7, 0xd3, 0x26, 0x2a, 0x23, 0xc7, 0xf8, 0x3c, 0xe9, 0x39, 0xac, 0x9a, 0x0b, 0x2a, 0x13, 0x50, 0x36, 0xbf, 0x41, 0x67, 0x65, 0x2a, 0x23, 0x8b, 0x73, 0x0b, 0x78, 0x61, 0x49, 0xa5, 0x01, 0x2a, 0x68, 0x7c, 0x85, 0x04, 0x7b, 0xdf, 0xa4, 0x93, 0xf2, 0x95, 0x3c, 0x0d, 0x2a, 0xbe, 0x42, 0x82, 0x4d, 0x2b, 0x24, 0xd8, 0xfb, 0x16, 0x9d, 0x56, 0xac, 0x8c, 0x1c, 0xe3, 0xf3, 0xa2, 0x2b, 0x24, 0xd8, 0x3d, 0xa9, 0x52, 0xc8, 0x2b, 0xeb, 0xaf, 0xd1, 0x69, 0x4e, 0xa5, 0xc0, 0x97, 0xe8, 0x93, 0xa5, 0xc5, 0xa5, 0x93, 0x0a, 0x97, 0xbc, 0xd4, 0x5e, 0xa9, 0x7d, 0x61, 0x50, 0x6b, 0x7f, 0x9d, 0x09, 0x8c, 0x4a, 0xf1, 0x5c, 0xbd, 0xd1, 0x68, 0x5f, 0x5e, 0x9a, 0xbd, 0xb3, 0xbd, 0xd3, 0x58, 0x7f, 0xc9, 0x2c, 0x52, 0xbf, 0x3b, 0xa8, 0xbf, 0x2b, 0x2a, 0x35, 0x50, 0x80, 0x7f, 0x83, 0x4e, 0x1e, 0xab, 0x78, 0xeb, 0xf5, 0xb5, 0xf5, 0x5b, 0x16, 0x17, 0xc9, 0x2d, 0xfe, 0xd2, 0xd2, 0x2d, 0xfe, 0x09, 0x72, 0xcb, 0xe2, 0xd2, 0x89, 0x33, 0xf5, 0xfa, 0x86, 0xc2, 0x15, 0x14, 0xe7, 0x16, 0x3a, 0x2c, 0x7d, 0x28, 0xd5, 0xf9, 0x37, 0x9d, 0xf4, 0xe5, 0xb9, 0x92, 0x5b, 0x7e, 0xf5, 0x6b, 0xaa, 0xcb, 0x81, 0xe4, 0x53, 0x96, 0xe9, 0x06, 0x9a, 0x52, 0xb7, 0xa8, 0x52, 0xcf, 0xbe, 0xed, 0xa4, 0x29, 0x68, 0x02, 0xeb, 0xb0, 0xb2, 0xb1, 0x65, 0x61, 0x7b, 0x19, 0x2a, 0xec, 0xd4, 0x6f, 0xef, 0x6e, 0xed, 0x88, 0x52, 0xf0, 0x18, 0x55, 0x6b, 0x07, 0x82, 0x31, 0x31, 0xca, 0x6a, 0xc0, 0xcb, 0xd1, 0x78, 0x68, 0x05, 0xc9, 0xf9, 0x38, 0x35, 0xcb, 0x05, 0xe1, 0x64, 0xc8, 0xfc, 0x32, 0x9a, 0x08, 0xed, 0x78, 0xe2, 0x3f, 0x41, 0x0d, 0x27, 0x83, 0x70, 0x3e, 0x4f, 0x78, 0xd5, 0x92, 0xe7, 0xfb, 0x93, 0xd4, 0xb2, 0x20, 0x2d, 0x79, 0xa2, 0x47, 0xb0, 0x09, 0xf6, 0x9e, 0xa2, 0x86, 0x59, 0x0d, 0x9b, 0xe0, 0x18, 0x36, 0xc1, 0xde, 0x07, 0xa9, 0xa1, 0xab, 0x63, 0x47, 0x2c, 0x79, 0x42, 0x7f, 0x88, 0x5a, 0x0e, 0xeb, 0xd8, 0x04, 0xbb, 0x97, 0xa1, 0x62, 0x68, 0x29, 0x32, 0xf2, 0xc3, 0xd4, 0x74, 0x24, 0x08, 0x5d, 0x88, 0xfc, 0xbd, 0x1c, 0x4d, 0x4a, 0x7c, 0x61, 0xfc, 0x11, 0x6a, 0x3c, 0x11, 0x84, 0x5e, 0xc2, 0xa4, 0x55, 0xa3, 0x82, 0x9c, 0xfd, 0x28, 0x35, 0xcd, 0xc8, 0xa8, 0x20, 0x53, 0x63, 0x2b, 0x20, 0xd8, 0xfb, 0x18, 0xb5, 0xcc, 0x47, 0x56, 0x40, 0xb0, 0x61, 0x05, 0x04, 0x7b, 0x1f, 0xa7, 0xc6, 0xc5, 0xe8, 0x0a, 0x22, 0x2c, 0xf0, 0x9c, 0xfc, 0x04, 0xb5, 0x75, 0x24, 0x0b, 0x3c, 0x07, 0x35, 0x66, 0x21, 0x05, 0x3f, 0x09, 0x9a, 0x5e, 0x32, 0x0b, 0xf9, 0xa6, 0x46, 0x05, 0xe9, 0xf6, 0x29, 0x6a, 0x38, 0x26, 0xa3, 0x82, 0x9c, 0xaa, 0xa3, 0x43, 0xa1, 0x9d, 0x92, 0x52, 0x9f, 0xa6, 0xc6, 0xa9, 0x15, 0x8f, 0xf0, 0x28, 0x53, 0xa9, 0x85, 0xa6, 0x22, 0x30, 0xa2, 0x67, 0x3f, 0x4d, 0x91, 0x06, 0x91, 0x3c, 0x1a, 0x98, 0x68, 0xdc, 0xe7, 0x50, 0x38, 0xae, 0x49, 0x9e, 0x67, 0x00, 0x2d, 0xad, 0xe6, 0x11, 0x3e, 0x15, 0xcd, 0x73, 0x16, 0x1d, 0x51, 0x36, 0xbb, 0x52, 0x23, 0x9e, 0x05, 0x0a, 0xad, 0x45, 0x8f, 0x4c, 0x11, 0x59, 0x1b, 0x1a, 0xc8, 0x8b, 0x81, 0x08, 0x02, 0x9f, 0x83, 0x90, 0xd2, 0xa8, 0x9e, 0x08, 0x94, 0x20, 0x6f, 0x55, 0x56, 0x22, 0x60, 0xed, 0x79, 0x0a, 0x61, 0x27, 0x7b, 0x02, 0xee, 0x80, 0xcb, 0x1e, 0xcd, 0x9f, 0x7b, 0x15, 0x9a, 0x96, 0x1b, 0x5e, 0xd7, 0x3f, 0xf7, 0x64, 0x69, 0xd1, 0xe3, 0xfa, 0x27, 0x64, 0xf6, 0x3a, 0x4d, 0x07, 0x2d, 0x2b, 0x6c, 0x44, 0x05, 0xd1, 0x1b, 0xe8, 0x7c, 0x29, 0x88, 0xa6, 0x62, 0x1e, 0xa0, 0x3c, 0xae, 0xa0, 0xa3, 0x06, 0x17, 0xbc, 0x50, 0xbe, 0x91, 0xfa, 0x08, 0x15, 0xd2, 0x74, 0xcc, 0x05, 0x2f, 0x9c, 0xcb, 0x46, 0x1f, 0xbc, 0x84, 0xbe, 0x89, 0xfa, 0x10, 0x92, 0x29, 0xee, 0x82, 0x57, 0xd4, 0x53, 0x49, 0x91, 0x10, 0xec, 0xbd, 0x99, 0x7a, 0xd0, 0x35, 0x94, 0x31, 0x1a, 0x82, 0xfb, 0x44, 0x43, 0xb0, 0xf7, 0x16, 0xea, 0x27, 0x14, 0x55, 0xe6, 0x68, 0x08, 0xee, 0x13, 0x0d, 0xc1, 0xde, 0x5b, 0xa9, 0x0f, 0xa1, 0xb2, 0xcc, 0xd1, 0x10, 0xec, 0x9e, 0x42, 0x33, 0x06, 0x17, 0xa2, 0x00, 0xbf, 0x8d, 0xfa, 0x90, 0xb2, 0xcb, 0x8b, 0x79, 0x11, 0xe5, 0xbb, 0x8a, 0x2e, 0x32, 0x45, 0x23, 0xfc, 0xbc, 0x9d, 0xfa, 0x51, 0x74, 0xd8, 0xd1, 0x78, 0x44, 0xa2, 0xb4, 0xaf, 0x18, 0xe9, 0x85, 0x22, 0xff, 0x0e, 0xea, 0x46, 0x11, 0x66, 0x71, 0x6e, 0xa1, 0xec, 0xf7, 0x09, 0x8a, 0x60, 0xef, 0x9d, 0xd4, 0x8b, 0x54, 0x6a, 0x09, 0x41, 0x11, 0xdc, 0x37, 0x28, 0x82, 0xbd, 0x77, 0x51, 0x3f, 0x8a, 0x74, 0x4b, 0x0a, 0x8a, 0x60, 0xf7, 0x55, 0xc6, 0x2f, 0x8a, 0xf7, 0x8d, 0x1e, 0xf5, 0x13, 0xd3, 0x72, 0xf1, 0x6f, 0x8c, 0xf7, 0x93, 0x1b, 0xcd, 0x1b, 0x07, 0x3a, 0xcb, 0xbb, 0xa9, 0x2f, 0x93, 0xb8, 0x33, 0xec, 0x21, 0x68, 0x3a, 0x37, 0x1b, 0xf9, 0x86, 0xf6, 0xf3, 0x1e, 0xea, 0xad, 0x9f, 0xda, 0x8b, 0x7f, 0x01, 0xd0, 0xa1, 0xee, 0x46, 0x97, 0x18, 0x9c, 0x2a, 0xbd, 0xea, 0xbd, 0xd9, 0xf4, 0xbd, 0x4a, 0x48, 0xb2, 0x99, 0x18, 0xb8, 0xec, 0x5d, 0x3f, 0x8d, 0x2e, 0x35, 0x66, 0x97, 0x52, 0xeb, 0xef, 0xcd, 0xa6, 0xa9, 0xf5, 0x02, 0xfc, 0x62, 0x43, 0x4e, 0x46, 0x74, 0xe1, 0x76, 0x7d, 0x2d, 0x2c, 0x91, 0xff, 0x9c, 0x2d, 0x65, 0x41, 0x17, 0xc2, 0xa8, 0xd4, 0x85, 0xdc, 0x0a, 0x2a, 0xd0, 0xbf, 0x50, 0x33, 0xa6, 0x0b, 0x61, 0x58, 0xd1, 0x85, 0xdc, 0x8e, 0x97, 0xbb, 0x7f, 0xa5, 0x86, 0x4c, 0x17, 0xc2, 0xb8, 0xaa, 0x0b, 0xb9, 0x25, 0x2f, 0x6a, 0xff, 0x46, 0x2d, 0x0b, 0xd2, 0x52, 0xd5, 0x85, 0x12, 0x9b, 0x60, 0xef, 0xdf, 0xa9, 0x61, 0x56, 0xc3, 0x16, 0x3a, 0x47, 0xc1, 0x26, 0xd8, 0xfb, 0x0f, 0x6a, 0xe8, 0xea, 0xd8, 0x11, 0x4b, 0x5e, 0x82, 0xfe, 0x93, 0x5a, 0x0e, 0xeb, 0xd8, 0x42, 0x17, 0x72, 0x4b, 0x51, 0x21, 0xfe, 0x8b, 0x9a, 0x32, 0x5d, 0x08, 0x1f, 0x68, 0xba, 0x50, 0xe0, 0x0b, 0xe3, 0xff, 0xa6, 0xc6, 0x4c, 0x17, 0xf2, 0x15, 0x68, 0xba, 0x50, 0x78, 0x66, 0x25, 0xe3, 0x7f, 0xa8, 0x69, 0x46, 0x46, 0xa5, 0xe8, 0x42, 0x75, 0x05, 0x04, 0x7b, 0xff, 0x4b, 0x2d, 0xf3, 0x91, 0x15, 0x08, 0x5d, 0xa8, 0xad, 0x80, 0x60, 0xef, 0xff, 0xa8, 0x71, 0x31, 0xba, 0x82, 0x08, 0x0b, 0x3c, 0xbf, 0x2f, 0x0c, 0x97, 0xb2, 0xa0, 0x0b, 0x61, 0x5c, 0xd5, 0x85, 0xc2, 0x2f, 0x64, 0xef, 0xcf, 0x0c, 0xb3, 0xb3, 0x5d, 0xc9, 0xac, 0xa2, 0x0b, 0xc5, 0x6e, 0x62, 0x89, 0xf9, 0x7a, 0x6a, 0x38, 0x26, 0xa3, 0x52, 0x74, 0x21, 0xb7, 0x53, 0x72, 0xed, 0x67, 0xa9, 0xf1, 0x00, 0xba, 0x10, 0x3c, 0x46, 0x74, 0xa1, 0x06, 0x23, 0x64, 0xcd, 0xcf, 0x51, 0xa4, 0xc1, 0x74, 0xa1, 0x02, 0xa6, 0xe9, 0x42, 0x8e, 0xa7, 0xea, 0xc2, 0x9f, 0x07, 0xb4, 0xf4, 0xba, 0x10, 0x7c, 0x46, 0x75, 0x61, 0xb8, 0xd9, 0x95, 0x5a, 0xf1, 0x0b, 0x40, 0x61, 0x0a, 0x5d, 0x28, 0x52, 0x24, 0xa2, 0x0b, 0x23, 0x20, 0x82, 0xc0, 0x5f, 0x84, 0x90, 0xd2, 0xe9, 0x42, 0x0d, 0x4a, 0xd3, 0x85, 0xf0, 0x09, 0xb0, 0xf6, 0x4b, 0x14, 0xc2, 0x56, 0x17, 0x82, 0x83, 0x50, 0x17, 0x2a, 0xfe, 0xdc, 0x9f, 0x44, 0x85, 0xe6, 0xda, 0x36, 0xab, 0x72, 0x50, 0xea, 0xbe, 0x0d, 0x31, 0xfc, 0xb0, 0x05, 0xc0, 0x8d, 0x6b, 0xdb, 0xb4, 0x20, 0xd2, 0xff, 0x4e, 0xb5, 0x3a, 0x3b, 0xe7, 0x83, 0x83, 0x4d, 0x39, 0xe2, 0x9e, 0x45, 0xe3, 0x21, 0x02, 0xd4, 0xb4, 0xdf, 0x02, 0x88, 0x2b, 0xed, 0x21, 0x58, 0x41, 0x05, 0x8c, 0xb1, 0xa6, 0x32, 0xe4, 0x6e, 0xa0, 0x89, 0x10, 0x84, 0xd7, 0xd8, 0xdf, 0x06, 0x94, 0xab, 0xec, 0x51, 0xa0, 0x1a, 0x03, 0x4c, 0xa1, 0xa9, 0x8e, 0x69, 0x38, 0xbc, 0x42, 0xff, 0x4e, 0x6a, 0x9c, 0xd3, 0x06, 0x1c, 0x5e, 0xdf, 0x23, 0xa4, 0x11, 0xec, 0xfd, 0xee, 0x20, 0xa4, 0x11, 0x1c, 0x23, 0x8d, 0xe0, 0x18, 0x69, 0x04, 0x7b, 0xbf, 0x37, 0x10, 0x69, 0x02, 0x46, 0x25, 0x2d, 0x82, 0xc3, 0x5b, 0xcb, 0x77, 0x06, 0x22, 0x2d, 0x8a, 0xc3, 0x1b, 0xd3, 0x16, 0x2a, 0x86, 0x38, 0xa2, 0xd7, 0xfc, 0x3e, 0x00, 0x5d, 0x6d, 0x0f, 0xc4, 0x5b, 0x18, 0x20, 0x8d, 0x37, 0xb5, 0x41, 0xb7, 0x81, 0x26, 0x25, 0x75, 0x02, 0xeb, 0x0f, 0x00, 0xeb, 0x9a, 0x14, 0xe4, 0x6d, 0xa8, 0x60, 0x13, 0x4d, 0x7d, 0x54, 0xdb, 0x0d, 0xd0, 0x17, 0xff, 0x30, 0xf5, 0x6e, 0x60, 0x1d, 0x54, 0xdf, 0x0d, 0xd0, 0x54, 0x63, 0xec, 0x11, 0xec, 0xfd, 0xd1, 0x60, 0xec, 0x89, 0xef, 0x49, 0x63, 0x8f, 0x60, 0x03, 0x7b, 0x04, 0x7b, 0x7f, 0x3c, 0x20, 0x7b, 0x02, 0x4c, 0x67, 0x2f, 0xb2, 0xfd, 0x78, 0x4f, 0xff, 0x93, 0xd4, 0xdb, 0x0f, 0xba, 0xbf, 0xbe, 0xfd, 0xb8, 0x22, 0xd0, 0xd2, 0x09, 0x14, 0xc1, 0x9f, 0xa6, 0x4f, 0x27, 0xe6, 0x20, 0x92, 0x4e, 0xa0, 0x27, 0xd4, 0xdd, 0x00, 0x7a, 0xe2, 0xcf, 0x52, 0xef, 0x06, 0xa6, 0x3c, 0xf4, 0xdd, 0x00, 0x62, 0x64, 0x1b, 0x1d, 0x0a, 0x41, 0x14, 0x31, 0xf2, 0xe7, 0x80, 0xf4, 0x0a, 0x7b, 0xa4, 0x50, 0x80, 0x00, 0x5a, 0xb1, 0x19, 0x19, 0x76, 0xcf, 0xa3, 0xa9, 0x08, 0xa2, 0x68, 0xab, 0x7f, 0x01, 0xa0, 0xd7, 0xa6, 0x04, 0xe5, 0x63, 0x80, 0x7b, 0xa8, 0x19, 0xff, 0xc4, 0xdd, 0x45, 0x87, 0x43, 0x68, 0x55, 0xa2, 0xfc, 0x25, 0x00, 0x2f, 0xdb, 0x03, 0x4b, 0x55, 0x02, 0xb0, 0x93, 0xcd, 0xe8, 0xb8, 0x7b, 0x07, 0x3a, 0xa2, 0x54, 0x5f, 0x45, 0xad, 0x7c, 0x17, 0x50, 0x57, 0xd2, 0xd4, 0xe0, 0x50, 0xa7, 0x00, 0xac, 0xdb, 0x8c, 0x7d, 0xe0, 0xde, 0x8d, 0xbc, 0x18, 0xae, 0x60, 0xfa, 0xaf, 0x00, 0xfa, 0x54, 0x6a, 0x68, 0x8d, 0xeb, 0x23, 0x4d, 0xd3, 0x67, 0x62, 0xff, 0xb2, 0x46, 0x07, 0x9a, 0xe3, 0xaf, 0x53, 0xed, 0x5f, 0xd6, 0xf9, 0xa5, 0xe8, 0xa0, 0xfb, 0x37, 0x1c, 0x12, 0xc9, 0xb8, 0xab, 0xa0, 0xfc, 0x4d, 0xaa, 0x64, 0x84, 0xc6, 0x2f, 0x61, 0x68, 0x32, 0xca, 0x31, 0x81, 0xd3, 0x55, 0x70, 0xfe, 0x36, 0x15, 0xce, 0x69, 0x03, 0x8e, 0x1c, 0x53, 0x48, 0x23, 0x18, 0x60, 0xfe, 0x2e, 0x2d, 0x69, 0x04, 0xc7, 0x48, 0x83, 0x21, 0x95, 0x34, 0x81, 0xf2, 0xf7, 0xa9, 0x49, 0x53, 0x61, 0x04, 0x69, 0x3a, 0x4e, 0x57, 0xc1, 0xf9, 0x87, 0xd4, 0xa4, 0x45, 0x71, 0xe4, 0x98, 0x68, 0x69, 0xbc, 0x8d, 0x02, 0xd0, 0x3f, 0xa6, 0x6a, 0x69, 0xbc, 0xef, 0x4b, 0x24, 0xfa, 0x6d, 0x28, 0x83, 0x21, 0x75, 0xac, 0x44, 0x03, 0xd2, 0x3f, 0xa5, 0xa3, 0x8e, 0x79, 0x88, 0x50, 0x17, 0x8e, 0xb9, 0x25, 0x84, 0xda, 0xad, 0x7a, 0x7b, 0x03, 0x20, 0x9e, 0xce, 0x95, 0x9c, 0xf2, 0x81, 0xea, 0x50, 0x30, 0xca, 0x06, 0x99, 0xc5, 0x2c, 0x3a, 0x08, 0x16, 0x20, 0x4f, 0x9f, 0xa1, 0x26, 0xb9, 0xea, 0x50, 0x00, 0xf3, 0x40, 0x2e, 0xbf, 0x0c, 0x8d, 0x81, 0x0d, 0xd7, 0xca, 0xcf, 0x52, 0xa3, 0xc9, 0xea, 0x50, 0x00, 0x53, 0xb9, 0xd8, 0x0d, 0xad, 0xb8, 0xd2, 0x7d, 0x8e, 0x5a, 0x15, 0x42, 0x2b, 0x2e, 0x55, 0x55, 0x3c, 0x82, 0xbd, 0xe7, 0xa9, 0x51, 0x56, 0xc5, 0x23, 0x58, 0xc7, 0x23, 0xd8, 0xfb, 0x0c, 0x35, 0x72, 0x35, 0x3c, 0xd5, 0x8a, 0x8b, 0xc4, 0xcf, 0x52, 0xab, 0x61, 0x0d, 0x8f, 0x60, 0xf7, 0xe5, 0xa8, 0x00, 0x56, 0x42, 0x76, 0x7d, 0x8e, 0x9a, 0x8d, 0x54, 0x87, 0x02, 0x98, 0x2d, 0x24, 0x5a, 0x19, 0x8d, 0x73, 0x4c, 0x61, 0xf8, 0x79, 0x6a, 0x38, 0x51, 0x1d, 0x0a, 0xc0, 0x41, 0x28, 0xaf, 0xc2, 0x08, 0x40, 0x5b, 0xfd, 0x32, 0x35, 0xcb, 0x84, 0x11, 0x80, 0x3a, 0xd2, 0x51, 0x09, 0xf6, 0x7e, 0x85, 0x5a, 0xe5, 0x75, 0x54, 0x76, 0x80, 0xa0, 0xa1, 0x12, 0xec, 0xfd, 0x2a, 0x35, 0x2c, 0x46, 0x50, 0xd5, 0x68, 0xb9, 0x26, 0x79, 0x81, 0xda, 0x39, 0x61, 0xb4, 0x5c, 0x54, 0x48, 0xe6, 0x40, 0x51, 0x7c, 0x81, 0x5a, 0x8d, 0x4a, 0xe6, 0x40, 0x12, 0x84, 0x11, 0x80, 0x1e, 0xf8, 0x22, 0x35, 0x1a, 0x0b, 0x23, 0x80, 0x8e, 0xbe, 0x86, 0x8a, 0x60, 0xa3, 0xb4, 0xf3, 0x2f, 0xe5, 0xd2, 0x3f, 0xc6, 0xad, 0x0e, 0x05, 0x10, 0xaa, 0x6c, 0xe1, 0xb7, 0xa2, 0x43, 0x2a, 0x84, 0xe8, 0x2a, 0x5f, 0xce, 0x0d, 0xf4, 0x8a, 0x4d, 0x75, 0x28, 0x98, 0x94, 0x40, 0xa2, 0x8b, 0xac, 0x23, 0x18, 0xd4, 0x1a, 0xf6, 0x57, 0x72, 0x03, 0xbc, 0x5f, 0x53, 0x1d, 0x0a, 0x26, 0x98, 0x4b, 0xa5, 0x49, 0xaf, 0x22, 0x57, 0x6c, 0x5c, 0xa5, 0x43, 0x7f, 0x35, 0x97, 0xe6, 0x59, 0x74, 0x75, 0x28, 0x28, 0xf2, 0xed, 0x2e, 0xbb, 0xf1, 0x39, 0x74, 0x44, 0x07, 0x10, 0xa4, 0x7d, 0x2d, 0x97, 0xf2, 0xcd, 0x9a, 0xea, 0x50, 0x70, 0x48, 0x85, 0x11, 0x84, 0xfd, 0x18, 0xaf, 0x1c, 0xc0, 0xd4, 0xd7, 0x73, 0xd6, 0xaf, 0x09, 0xde, 0x44, 0x67, 0x0b, 0xa6, 0x14, 0x5f, 0x32, 0x37, 0x60, 0x8f, 0x2e, 0x78, 0xdf, 0x10, 0x9b, 0x74, 0x4c, 0xd9, 0xa4, 0x0b, 0x51, 0x3b, 0xdf, 0xfb, 0xa6, 0xc9, 0xce, 0x8f, 0xda, 0x2d, 0x7a, 0xdf, 0x32, 0xd9, 0x2d, 0xba, 0x27, 0xd1, 0x61, 0x9e, 0x41, 0xfa, 0x03, 0xad, 0x7b, 0xf3, 0xf2, 0x85, 0x9e, 0xaa, 0x13, 0xc0, 0x37, 0xa8, 0x3f, 0xcf, 0xba, 0x4a, 0xd0, 0x1e, 0x7d, 0x98, 0xf5, 0xbe, 0xbc, 0xfa, 0x76, 0x4f, 0xd5, 0xe1, 0x5c, 0x46, 0x9e, 0x65, 0x5d, 0x8d, 0xa6, 0xa2, 0xd3, 0x79, 0x25, 0xbd, 0x2f, 0xaf, 0xbc, 0xea, 0x53, 0x75, 0x82, 0xc3, 0xfa, 0x74, 0x5e, 0x59, 0xaf, 0x8a, 0xcf, 0xe7, 0x35, 0xf6, 0xfe, 0xbc, 0x7c, 0xef, 0x27, 0x3e, 0xfd, 0xb4, 0x78, 0x0c, 0x66, 0x5a, 0x3d, 0xc1, 0xde, 0x03, 0xf9, 0xe8, 0x4b, 0x40, 0xc6, 0x08, 0x08, 0x4e, 0x8a, 0x80, 0x60, 0xef, 0xc1, 0xbc, 0xf2, 0x46, 0x90, 0x39, 0x02, 0x82, 0x93, 0x22, 0x20, 0xd8, 0x7b, 0x28, 0x2f, 0x5f, 0x0f, 0x32, 0x47, 0xc0, 0x1e, 0x7d, 0x4d, 0x47, 0xa7, 0x8b, 0x2a, 0xfd, 0x70, 0x5e, 0x7d, 0x57, 0xa8, 0xea, 0x04, 0x47, 0x74, 0x0f, 0xa2, 0xbe, 0x5f, 0x87, 0xbc, 0x58, 0x04, 0xc2, 0xc7, 0x23, 0x79, 0xed, 0xc5, 0xa1, 0xaa, 0x13, 0x4c, 0x45, 0xa2, 0x10, 0xb5, 0xff, 0xea, 0x38, 0x95, 0xd0, 0x05, 0xde, 0x9f, 0xd7, 0xde, 0x22, 0x8a, 0xf3, 0x08, 0x7d, 0x21, 0x29, 0x10, 0x82, 0xbd, 0x0f, 0xe4, 0xd5, 0x57, 0x8a, 0x12, 0x02, 0x21, 0x38, 0x39, 0x10, 0x82, 0xbd, 0x47, 0xf3, 0xda, 0xfb, 0x45, 0x49, 0x81, 0x10, 0xec, 0x5e, 0x1f, 0xff, 0x42, 0x78, 0x63, 0x79, 0x2c, 0x6f, 0x78, 0xd9, 0x28, 0xfe, 0xcd, 0xf0, 0x86, 0x73, 0x83, 0x61, 0x63, 0x40, 0xeb, 0x79, 0x3c, 0x6f, 0x7e, 0xf3, 0xc8, 0xb0, 0x47, 0xa0, 0x2b, 0xdd, 0x14, 0xe7, 0x16, 0xfa, 0xd3, 0x13, 0xf9, 0xfe, 0xaf, 0x21, 0xc5, 0xc9, 0x86, 0x16, 0xf6, 0x5a, 0x34, 0x13, 0x75, 0xa8, 0x34, 0xb3, 0x27, 0xf3, 0x03, 0xbf, 0x93, 0x54, 0x75, 0x82, 0x69, 0x1d, 0x58, 0xfd, 0xfb, 0xf4, 0xe2, 0x78, 0xc6, 0x28, 0x4d, 0xe1, 0xa9, 0xfc, 0x00, 0x2f, 0x28, 0x55, 0x9d, 0xe0, 0x68, 0x34, 0xcf, 0x42, 0x9b, 0x99, 0x9f, 0x42, 0x63, 0x5a, 0xef, 0x7b, 0x11, 0xdf, 0x34, 0x9f, 0xb9, 0x0b, 0x21, 0xa5, 0x1f, 0xbe, 0x98, 0xc8, 0xd7, 0xa0, 0x82, 0xf6, 0x26, 0xa7, 0x2d, 0x38, 0x75, 0xa0, 0xbd, 0x13, 0x91, 0xce, 0x81, 0x72, 0x78, 0x6e, 0xed, 0xe0, 0x6a, 0x54, 0x8c, 0x1e, 0x8e, 0xbb, 0x45, 0x94, 0xbd, 0xad, 0x7e, 0x9e, 0x39, 0x39, 0x10, 0xd0, 0xff, 0x75, 0x0f, 0xa3, 0xdc, 0x1d, 0x6b, 0x8d, 0x6e, 0xdd, 0xcb, 0xb0, 0x31, 0xf8, 0x47, 0x25, 0x73, 0x85, 0x33, 0x73, 0x0d, 0x9a, 0x8c, 0x9d, 0x7c, 0xef, 0xe5, 0x20, 0xa7, 0x3a, 0x78, 0x05, 0x72, 0xe3, 0x87, 0xda, 0x7b, 0x79, 0x98, 0x34, 0x7b, 0x38, 0xbd, 0x7f, 0x0f, 0x85, 0xc4, 0x20, 0xf8, 0x29, 0xdd, 0x5e, 0x0e, 0xb2, 0xc9, 0x41, 0xec, 0xd3, 0x83, 0x9b, 0x1c, 0xc4, 0x3e, 0x3d, 0x0c, 0xab, 0x1e, 0x96, 0xd1, 0x21, 0xc3, 0xb9, 0xf0, 0x5e, 0x2e, 0x46, 0x54, 0x17, 0x2b, 0xe8, 0xb0, 0xe9, 0xb8, 0x77, 0x2f, 0x1f, 0x13, 0x66, 0x2e, 0xe5, 0x39, 0xee, 0x5e, 0x0e, 0x32, 0x7d, 0xe2, 0xd8, 0x27, 0x15, 0xf9, 0x7e, 0x71, 0xec, 0xd3, 0x47, 0xd1, 0xfc, 0x85, 0x28, 0x07, 0xaa, 0x7b, 0x79, 0x70, 0x12, 0x36, 0x85, 0x3c, 0x2a, 0xdd, 0xcb, 0xc3, 0xa8, 0x99, 0x4b, 0x79, 0x0a, 0xba, 0x97, 0x83, 0x31, 0xd5, 0xc1, 0x79, 0x74, 0xc4, 0x78, 0xb8, 0x69, 0x70, 0xf2, 0x2a, 0xd5, 0x49, 0xda, 0x87, 0xb9, 0x0a, 0xf4, 0xdd, 0xc8, 0x4b, 0x3a, 0xe2, 0x34, 0xa0, 0xdf, 0xa8, 0xa2, 0x0f, 0xf0, 0x80, 0x57, 0x59, 0xc0, 0x6b, 0xd1, 0x94, 0xf9, 0xa8, 0xd3, 0x00, 0xff, 0x23, 0x3a, 0x7c, 0xca, 0x27, 0xbe, 0x0a, 0x78, 0x17, 0x4d, 0x27, 0x9c, 0x78, 0x1a, 0xd0, 0xaf, 0xd3, 0xa9, 0xb7, 0x7d, 0x08, 0xac, 0xc5, 0x3c, 0x93, 0x7c, 0xda, 0x69, 0x40, 0x7e, 0xa5, 0x1e, 0x77, 0x8a, 0xc7, 0xc2, 0xb1, 0xdd, 0xaa, 0x9f, 0x79, 0xaa, 0x98, 0xb9, 0xbd, 0x7a, 0x09, 0x24, 0x4c, 0xe4, 0x38, 0x53, 0xf5, 0x30, 0xb9, 0x3f, 0x0f, 0xa7, 0x93, 0x3d, 0x14, 0xf6, 0xd7, 0xcf, 0xf4, 0x33, 0x48, 0xd5, 0x41, 0x76, 0xff, 0x41, 0x24, 0x78, 0x70, 0xf7, 0x1f, 0x44, 0x82, 0x87, 0xe1, 0xbd, 0x3c, 0x40, 0x09, 0x8d, 0x9e, 0x08, 0xaa, 0x2e, 0x46, 0xf6, 0x19, 0x86, 0x7e, 0xd4, 0xa7, 0x7a, 0x18, 0xdd, 0xcb, 0xc3, 0x95, 0x08, 0xc9, 0xbf, 0xc7, 0xad, 0x75, 0x49, 0x15, 0x4d, 0x9d, 0xba, 0xab, 0x53, 0x6f, 0xed, 0x6e, 0xb5, 0x5b, 0x83, 0x69, 0x2c, 0xd5, 0xd3, 0x40, 0x5a, 0x69, 0x76, 0x0e, 0x8d, 0x4a, 0xb1, 0x3d, 0x8a, 0x40, 0x17, 0x17, 0x87, 0xe8, 0xff, 0xae, 0x04, 0xcb, 0x3f, 0x7a, 0x53, 0xd1, 0x71, 0x0f, 0xa2, 0x91, 0x6b, 0xab, 0xcb, 0xc1, 0xab, 0x6f, 0x38, 0x55, 0xcc, 0x5c, 0x36, 0x7a, 0xe0, 0x9e, 0x5a, 0xf1, 0xc2, 0x85, 0x0b, 0x17, 0x32, 0xfe, 0x59, 0x34, 0x5d, 0x17, 0x8b, 0x58, 0xd5, 0xee, 0x2c, 0xba, 0x16, 0xa2, 0xd3, 0xbb, 0xa7, 0xc6, 0x58, 0x3e, 0x52, 0x8f, 0x52, 0x43, 0xbf, 0x22, 0xbf, 0x8e, 0x3c, 0x03, 0x08, 0xfc, 0x41, 0x6e, 0x83, 0xf2, 0x86, 0x1a, 0xcb, 0xd6, 0xa9, 0x18, 0x0a, 0xcb, 0x6d, 0x7f, 0x13, 0x1d, 0x35, 0xc0, 0xec, 0xda, 0xe3, 0xbc, 0xb1, 0xc6, 0x72, 0x7a, 0x3a, 0x86, 0x03, 0x25, 0x20, 0x01, 0xa8, 0x6b, 0x0f, 0xf4, 0xa6, 0x1a, 0x4b, 0xfd, 0x38, 0x10, 0x54, 0x8a, 0x64, 0xe2, 0x08, 0xb6, 0xc2, 0x79, 0x73, 0x8d, 0x55, 0x08, 0x23, 0x71, 0x04, 0xf7, 0x21, 0xce, 0x12, 0xe7, 0x2d, 0x35, 0x56, 0x47, 0xcc, 0xc4, 0x25, 0x02, 0x75, 0xed, 0x81, 0xde, 0x5a, 0x63, 0xe5, 0xc6, 0x4c, 0x1c, 0xc1, 0xfe, 0x16, 0x9a, 0x31, 0x00, 0x89, 0x93, 0x0b, 0x1b, 0xa4, 0xb7, 0xd5, 0x58, 0x55, 0xf2, 0x62, 0x48, 0xbc, 0x8a, 0xf9, 0xb7, 0xa1, 0x8b, 0x4c, 0xe4, 0xa5, 0xc1, 0x7a, 0x7b, 0x8d, 0x89, 0xd6, 0xa3, 0x71, 0xfa, 0xb8, 0xb7, 0x84, 0x0d, 0xb1, 0x01, 0xaf, 0xf6, 0x59, 0x20, 0xbd, 0xa3, 0xc6, 0xd4, 0x6d, 0x7c, 0x43, 0x30, 0x6d, 0xdc, 0x8f, 0x3e, 0xcb, 0x2f, 0xea, 0x9d, 0x35, 0xa6, 0x81, 0x13, 0xe8, 0x23, 0xb8, 0x2f, 0x7d, 0x96, 0x58, 0xef, 0xaa, 0x31, 0xad, 0x9c, 0x44, 0x5f, 0xe2, 0xfe, 0x83, 0xc3, 0x1e, 0x2b, 0xa8, 0x5e, 0x8d, 0x89, 0xea, 0xf8, 0xfe, 0x03, 0x4d, 0x9e, 0x94, 0x51, 0x70, 0xb8, 0x63, 0x03, 0xf4, 0xee, 0x1a, 0xeb, 0x02, 0x86, 0x8c, 0x82, 0x13, 0x5f, 0xf3, 0x86, 0x60, 0x67, 0x45, 0x56, 0x38, 0xef, 0xa9, 0x31, 0x89, 0x1e, 0xdf, 0x10, 0x4c, 0xe0, 0xfb, 0x0f, 0x38, 0xe8, 0x12, 0x03, 0x8e, 0x3c, 0x42, 0xb2, 0x02, 0x7b, 0x6f, 0x6d, 0x00, 0x29, 0x3f, 0x13, 0x5b, 0x62, 0xf8, 0x99, 0xff, 0xb8, 0x83, 0x4a, 0x89, 0xcb, 0xe4, 0x8f, 0x07, 0xac, 0x56, 0x7a, 0x6f, 0x6d, 0x30, 0xd9, 0x7f, 0x89, 0x79, 0xb1, 0xfc, 0x63, 0xff, 0x61, 0x07, 0x7d, 0x9f, 0x61, 0xbd, 0xca, 0x73, 0x19, 0xab, 0xd5, 0xbe, 0xaf, 0x36, 0xc8, 0x5f, 0x09, 0x17, 0xc5, 0xd6, 0x2a, 0x3f, 0xf4, 0xef, 0x73, 0xd0, 0xa5, 0xc6, 0x1e, 0x21, 0x8f, 0xf1, 0xac, 0x96, 0x7a, 0x5f, 0x2d, 0xd5, 0x9f, 0x14, 0x17, 0x1b, 0x3a, 0x4b, 0xf8, 0xa9, 0xff, 0xa8, 0x83, 0x66, 0xfb, 0x2c, 0x32, 0xcd, 0x06, 0xb8, 0xbf, 0x96, 0xf6, 0x0f, 0x90, 0x4b, 0x93, 0x96, 0x2a, 0xbe, 0xfc, 0x87, 0x1c, 0x24, 0xd3, 0x4d, 0xbf, 0x69, 0x6d, 0xb3, 0xc2, 0x07, 0x6a, 0xec, 0x71, 0x94, 0xcd, 0x9b, 0x36, 0x66, 0x01, 0x1b, 0x24, 0xac, 0xc6, 0x6f, 0xa8, 0x35, 0x46, 0x7f, 0x60, 0x64, 0x97, 0x4c, 0x3d, 0xf5, 0xba, 0xb8, 0x44, 0xd3, 0x9e, 0x2f, 0xf9, 0xdb, 0x6a, 0xe9, 0x8c, 0x3c, 0x63, 0xb2, 0xcb, 0x86, 0x9e, 0x7e, 0xdd, 0x7c, 0x3a, 0x0e, 0x08, 0xba, 0xf1, 0x76, 0xb5, 0xdb, 0x45, 0x1f, 0x4b, 0xd9, 0xed, 0xea, 0x9e, 0x76, 0x5d, 0xdd, 0x8b, 0x23, 0x72, 0x05, 0xb9, 0x6d, 0x86, 0x4c, 0x21, 0x21, 0xef, 0xef, 0xa9, 0xd7, 0xdd, 0x0d, 0x88, 0x5c, 0x4a, 0x76, 0x12, 0x69, 0xb5, 0xec, 0xb2, 0x0f, 0xf4, 0xe2, 0xd7, 0xe5, 0xcd, 0xd4, 0x12, 0xdc, 0x8f, 0x5a, 0x4b, 0xd8, 0x07, 0x7b, 0xda, 0x75, 0xfb, 0x04, 0x6a, 0x09, 0xee, 0x47, 0xad, 0x25, 0xe4, 0x43, 0x3d, 0xf5, 0xba, 0x7e, 0x02, 0xb5, 0x04, 0xfb, 0x1d, 0x55, 0xc2, 0xc4, 0x9e, 0xca, 0x59, 0x41, 0x3e, 0xdc, 0xd3, 0xaf, 0xfb, 0x1f, 0x8d, 0x83, 0x0a, 0xdd, 0x79, 0x27, 0xba, 0xd8, 0x48, 0x6d, 0x1a, 0xd8, 0x47, 0x7a, 0x91, 0x9f, 0x0b, 0x98, 0x31, 0xd0, 0x2b, 0x34, 0xe8, 0xed, 0xe6, 0x9d, 0x64, 0x2f, 0x42, 0xdf, 0xdf, 0x8b, 0xfc, 0xdc, 0x80, 0x61, 0x1b, 0x81, 0x1e, 0xed, 0xc7, 0xb0, 0xe5, 0x97, 0xfa, 0x81, 0x9e, 0xfe, 0x73, 0x05, 0x49, 0x0c, 0x13, 0xdc, 0x9f, 0x61, 0x4b, 0xd8, 0x47, 0x7b, 0x91, 0x9f, 0x3b, 0x48, 0x64, 0x98, 0x60, 0xff, 0xbc, 0x79, 0x0b, 0xa7, 0xd0, 0xa9, 0x8f, 0xf5, 0x8c, 0x3f, 0x97, 0x60, 0xd8, 0xcb, 0x5c, 0xb8, 0xbe, 0x2e, 0x21, 0x61, 0xed, 0x95, 0xeb, 0xe3, 0xbd, 0xa4, 0x9f, 0x5b, 0x30, 0xe5, 0x2e, 0xa8, 0xd9, 0xd7, 0x3b, 0xe6, 0xbd, 0x65, 0xaf, 0x67, 0x9f, 0xe8, 0xed, 0xf5, 0x7b, 0x0d, 0x86, 0xcd, 0x06, 0x5a, 0xf7, 0x09, 0x4d, 0x94, 0x99, 0x9e, 0x97, 0x5a, 0xad, 0xe4, 0xc9, 0xde, 0xf7, 0xe0, 0x07, 0x1f, 0x2e, 0x8a, 0x2f, 0x56, 0xaa, 0xde, 0xc7, 0x34, 0xd5, 0x6b, 0x7e, 0xc6, 0x6a, 0xb5, 0xe4, 0xa7, 0x7a, 0x03, 0xfd, 0x62, 0xc4, 0x25, 0xa6, 0xda, 0x2c, 0x55, 0xda, 0xba, 0x7a, 0xe4, 0xa4, 0x5d, 0x16, 0xb4, 0x5b, 0xe4, 0x77, 0x1d, 0x76, 0xb3, 0x50, 0x9e, 0x39, 0x05, 0xca, 0x15, 0x43, 0x7f, 0x43, 0x15, 0x2d, 0xfa, 0x65, 0x43, 0x2b, 0x98, 0x0f, 0x32, 0x18, 0xf5, 0xd0, 0x29, 0x50, 0xaf, 0x28, 0xfa, 0xe7, 0xd4, 0x1d, 0x1b, 0xb9, 0xac, 0x68, 0x05, 0xf4, 0x21, 0x06, 0xa4, 0x9e, 0x3a, 0x05, 0xda, 0x15, 0xc7, 0x04, 0xa4, 0x14, 0x92, 0xe1, 0xc3, 0x0c, 0xa9, 0x60, 0x40, 0xe2, 0x5a, 0x21, 0x91, 0x3b, 0xcb, 0xa2, 0xf7, 0x11, 0x06, 0x94, 0x35, 0x73, 0x47, 0x70, 0x1f, 0xee, 0x2c, 0x81, 0x3e, 0xca, 0x80, 0xdc, 0x04, 0xee, 0x12, 0x91, 0x52, 0x68, 0x82, 0x8f, 0x31, 0xa4, 0xe1, 0x04, 0xee, 0x08, 0xf6, 0x6f, 0x55, 0x0b, 0x68, 0xf4, 0xb2, 0xa7, 0x15, 0xd4, 0xc7, 0x19, 0x94, 0x7a, 0xf4, 0x14, 0xe8, 0x57, 0x44, 0xfd, 0x86, 0xda, 0x16, 0x63, 0x97, 0x45, 0xad, 0xc0, 0x3e, 0xc1, 0xc0, 0xd4, 0xb3, 0xa7, 0x20, 0x72, 0xc5, 0x34, 0x61, 0x57, 0xd8, 0xb7, 0xfd, 0x4f, 0x32, 0xa8, 0x8c, 0x61, 0x57, 0x40, 0xb3, 0xef, 0xc3, 0xa0, 0xe5, 0x97, 0xf5, 0x29, 0x86, 0x94, 0x4f, 0x62, 0x90, 0xe0, 0xbe, 0x0c, 0x5a, 0x82, 0x7d, 0x9a, 0x81, 0x15, 0x13, 0x19, 0x4c, 0xdc, 0x85, 0x29, 0xda, 0xfa, 0xd3, 0x0c, 0xcb, 0x31, 0xec, 0x42, 0xde, 0xc6, 0x13, 0x32, 0xcb, 0xbe, 0x8b, 0x3f, 0xc3, 0x90, 0x46, 0x4d, 0x99, 0x05, 0x2d, 0xdb, 0xbc, 0x2b, 0xec, 0x1b, 0xf6, 0xb3, 0x0c, 0x68, 0xcc, 0xb0, 0x2b, 0xa0, 0x2b, 0x3f, 0xa8, 0x9d, 0x40, 0x19, 0x6e, 0xfb, 0x5a, 0xa1, 0x3d, 0xc7, 0xd0, 0x06, 0x3f, 0x82, 0x0a, 0xa2, 0x77, 0x84, 0xa9, 0x7a, 0x28, 0x25, 0xae, 0x33, 0xcd, 0x09, 0xc4, 0xf3, 0x6c, 0xa9, 0xdf, 0x93, 0x33, 0xa8, 0xc0, 0x70, 0xc9, 0xd8, 0x7f, 0x44, 0x93, 0x3b, 0xa6, 0xfb, 0xc6, 0x56, 0xcb, 0xfd, 0x0c, 0x5f, 0xee, 0xc0, 0x87, 0x50, 0x41, 0xec, 0x96, 0xb2, 0x7f, 0xbf, 0x76, 0x08, 0x65, 0xbc, 0xb0, 0x6c, 0xb5, 0xd6, 0xcf, 0xf2, 0x5d, 0x90, 0xfe, 0x14, 0x2a, 0x88, 0x5f, 0x73, 0xa6, 0x72, 0x6c, 0xb6, 0xcf, 0x2a, 0xd3, 0xec, 0x81, 0xcf, 0x71, 0x52, 0x07, 0x3a, 0x86, 0x0a, 0x8c, 0xf7, 0xa4, 0xfd, 0x87, 0xd5, 0x63, 0x28, 0xfd, 0x86, 0xb3, 0xcd, 0x12, 0x3f, 0xcf, 0x96, 0x98, 0xf2, 0x1c, 0x4a, 0xbf, 0x67, 0x9d, 0xb0, 0x9c, 0x95, 0x82, 0x78, 0x55, 0xbf, 0xdb, 0xda, 0x6a, 0xb7, 0x56, 0xa6, 0xe3, 0xef, 0x48, 0xb2, 0x0f, 0x2e, 0x5b, 0x40, 0x07, 0xd5, 0xf7, 0xc4, 0x4d, 0x0f, 0x44, 0x91, 0x3b, 0x26, 0x1f, 0x88, 0xbe, 0xe0, 0xac, 0xbc, 0xe6, 0xc7, 0x6b, 0xb1, 0x65, 0x1f, 0x67, 0xcb, 0x3e, 0xd3, 0xdd, 0x38, 0xbe, 0xd5, 0xea, 0xd4, 0x77, 0x5a, 0x6b, 0x0d, 0xf6, 0x3b, 0xb7, 0x6c, 0x74, 0xf7, 0x78, 0xa3, 0xbe, 0xb9, 0x76, 0xf6, 0xfc, 0xf1, 0xa4, 0x9f, 0xc4, 0xfd, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x51, 0x2c, 0x45, 0xc2, 0x2d, 0x57, 0x00, 0x00, } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto2_20190205_c823c79e/test.proto000066400000000000000000000341021411250152500311650ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package google.golang.org.proto2_20190205; option go_package = "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20190205_c823c79e"; enum SiblingEnum { ALPHA = 0; BRAVO = 10; CHARLIE = 200; } message SiblingMessage { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; optional Message f4 = 4; } message Message { enum ChildEnum { ALPHA = 0; BRAVO = 1; CHARLIE = 2; } message ChildMessage { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; optional Message f4 = 4; } optional group NamedGroup = 1 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; optional Message f4 = 4; } // Optional fields. optional bool optional_bool = 100; optional int32 optional_int32 = 101; optional sint32 optional_sint32 = 102; optional uint32 optional_uint32 = 103; optional int64 optional_int64 = 104; optional sint64 optional_sint64 = 105; optional uint64 optional_uint64 = 106; optional fixed32 optional_fixed32 = 107; optional sfixed32 optional_sfixed32 = 108; optional float optional_float = 109; optional fixed64 optional_fixed64 = 110; optional sfixed64 optional_sfixed64 = 111; optional double optional_double = 112; optional string optional_string = 113; optional bytes optional_bytes = 114; optional ChildEnum optional_child_enum = 115; optional ChildMessage optional_child_message = 116; optional NamedGroup optional_named_group = 117; optional SiblingEnum optional_sibling_enum = 118; optional SiblingMessage optional_sibling_message = 119; optional group OptionalGroup = 120 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Optional default fields. optional bool defaulted_bool = 200 [default = true]; optional int32 defaulted_int32 = 201 [default = -12345]; optional sint32 defaulted_sint32 = 202 [default = -3200]; optional uint32 defaulted_uint32 = 203 [default = 3200]; optional int64 defaulted_int64 = 204 [default = -123456789]; optional sint64 defaulted_sint64 = 205 [default = -6400]; optional uint64 defaulted_uint64 = 206 [default = 6400]; optional fixed32 defaulted_fixed32 = 207 [default = 320000]; optional sfixed32 defaulted_sfixed32 = 208 [default = -320000]; optional float defaulted_float = 209 [default = 3.14159]; optional fixed64 defaulted_fixed64 = 210 [default = 640000]; optional sfixed64 defaulted_sfixed64 = 211 [default = -640000]; optional double defaulted_double = 212 [default = 3.14159265359]; optional string defaulted_string = 213 [default = "hello, \"world!\"\n"]; optional bytes defaulted_bytes = 214 [default = "dead\xde\xad\xbe\xefbeef"]; optional ChildEnum defaulted_child_enum = 215 [default = ALPHA]; optional SiblingEnum defaulted_sibling_enum = 216 [default = ALPHA]; // Required fields. required bool required_bool = 300; required int32 required_int32 = 301; required sint32 required_sint32 = 302; required uint32 required_uint32 = 303; required int64 required_int64 = 304; required sint64 required_sint64 = 305; required uint64 required_uint64 = 306; required fixed32 required_fixed32 = 307; required sfixed32 required_sfixed32 = 308; required float required_float = 309; required fixed64 required_fixed64 = 310; required sfixed64 required_sfixed64 = 311; required double required_double = 312; required string required_string = 313; required bytes required_bytes = 314; required ChildEnum required_child_enum = 315; required ChildMessage required_child_message = 316; required NamedGroup required_named_group = 317; required SiblingEnum required_sibling_enum = 318; required SiblingMessage required_sibling_message = 319; required group RequiredGroup = 320 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Required default fields. required bool required_defaulted_bool = 400 [default = true]; required int32 required_defaulted_int32 = 401 [default = -12345]; required sint32 required_defaulted_sint32 = 402 [default = -3200]; required uint32 required_defaulted_uint32 = 403 [default = 3200]; required int64 required_defaulted_int64 = 404 [default = -123456789]; required sint64 required_defaulted_sint64 = 405 [default = -6400]; required uint64 required_defaulted_uint64 = 406 [default = 6400]; required fixed32 required_defaulted_fixed32 = 407 [default = 320000]; required sfixed32 required_defaulted_sfixed32 = 408 [default = -320000]; required float required_defaulted_float = 409 [default = 3.14159]; required fixed64 required_defaulted_fixed64 = 410 [default = 640000]; required sfixed64 required_defaulted_sfixed64 = 411 [default = -640000]; required double required_defaulted_double = 412 [default = 3.14159265359]; required string required_defaulted_string = 413 [default = "hello, \"world!\"\n"]; required bytes required_defaulted_bytes = 414 [default = "dead\xde\xad\xbe\xefbeef"]; required ChildEnum required_defaulted_child_enum = 415 [default = ALPHA]; required SiblingEnum required_defaulted_sibling_enum = 416 [default = ALPHA]; // Repeated fields. repeated bool repeated_bool = 500; repeated int32 repeated_int32 = 501; repeated sint32 repeated_sint32 = 502; repeated uint32 repeated_uint32 = 503; repeated int64 repeated_int64 = 504; repeated sint64 repeated_sint64 = 505; repeated uint64 repeated_uint64 = 506; repeated fixed32 repeated_fixed32 = 507; repeated sfixed32 repeated_sfixed32 = 508; repeated float repeated_float = 509; repeated fixed64 repeated_fixed64 = 510; repeated sfixed64 repeated_sfixed64 = 511; repeated double repeated_double = 512; repeated string repeated_string = 513; repeated bytes repeated_bytes = 514; repeated ChildEnum repeated_child_enum = 515; repeated ChildMessage repeated_child_message = 516; repeated NamedGroup repeated_named_group = 517; repeated SiblingEnum repeated_sibling_enum = 518; repeated SiblingMessage repeated_sibling_message = 519; repeated group RepeatedGroup = 520 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Map fields. map map_bool_bool = 600; map map_bool_int32 = 601; map map_bool_sint32 = 602; map map_bool_uint32 = 603; map map_bool_int64 = 604; map map_bool_sint64 = 605; map map_bool_uint64 = 606; map map_bool_fixed32 = 607; map map_bool_sfixed32 = 608; map map_bool_float = 609; map map_bool_fixed64 = 610; map map_bool_sfixed64 = 611; map map_bool_double = 612; map map_bool_string = 613; map map_bool_bytes = 614; map map_bool_child_enum = 615; map map_bool_child_message = 616; map map_bool_named_group = 617; map map_bool_sibling_enum = 618; map map_bool_sibling_message = 619; map map_int32_bool = 620; map map_sint32_bool = 621; map map_uint32_bool = 622; map map_int64_bool = 623; map map_sint64_bool = 624; map map_uint64_bool = 625; map map_fixed32_bool = 626; map map_string_bool = 627; // Oneof fields. oneof oneof_union { bool oneof_bool = 700; int32 oneof_int32 = 701; sint32 oneof_sint32 = 702; uint32 oneof_uint32 = 703; int64 oneof_int64 = 704; sint64 oneof_sint64 = 705; uint64 oneof_uint64 = 706; fixed32 oneof_fixed32 = 707; sfixed32 oneof_sfixed32 = 708; float oneof_float = 709; fixed64 oneof_fixed64 = 710; sfixed64 oneof_sfixed64 = 711; double oneof_double = 712; string oneof_string = 713; bytes oneof_bytes = 714; ChildEnum oneof_child_enum = 715; ChildMessage oneof_child_message = 716; NamedGroup oneof_named_group = 717; SiblingEnum oneof_sibling_enum = 718; SiblingMessage oneof_sibling_message = 719; group OneofGroup = 720 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } string oneof_string1 = 721; string oneof_string2 = 722; string oneof_string3 = 723; } // Oneof default fields. oneof oneof_defaulted_union { bool oneof_defaulted_bool = 800 [default = true]; int32 oneof_defaulted_int32 = 801 [default = -12345]; sint32 oneof_defaulted_sint32 = 802 [default = -3200]; uint32 oneof_defaulted_uint32 = 803 [default = 3200]; int64 oneof_defaulted_int64 = 804 [default = -123456789]; sint64 oneof_defaulted_sint64 = 805 [default = -6400]; uint64 oneof_defaulted_uint64 = 806 [default = 6400]; fixed32 oneof_defaulted_fixed32 = 807 [default = 320000]; sfixed32 oneof_defaulted_sfixed32 = 808 [default = -320000]; float oneof_defaulted_float = 809 [default = 3.14159]; fixed64 oneof_defaulted_fixed64 = 810 [default = 640000]; sfixed64 oneof_defaulted_sfixed64 = 811 [default = -640000]; double oneof_defaulted_double = 812 [default = 3.14159265359]; string oneof_defaulted_string = 813 [default = "hello, \"world!\"\n"]; bytes oneof_defaulted_bytes = 814 [default = "dead\xde\xad\xbe\xefbeef"]; ChildEnum oneof_defaulted_child_enum = 815 [default = ALPHA]; SiblingEnum oneof_defaulted_sibling_enum = 816 [default = ALPHA]; } // Extension fields. extend Message { // Optional fields. optional bool extension_optional_bool = 10000; optional int32 extension_optional_int32 = 10001; optional sint32 extension_optional_sint32 = 10002; optional uint32 extension_optional_uint32 = 10003; optional int64 extension_optional_int64 = 10004; optional sint64 extension_optional_sint64 = 10005; optional uint64 extension_optional_uint64 = 10006; optional fixed32 extension_optional_fixed32 = 10007; optional sfixed32 extension_optional_sfixed32 = 10008; optional float extension_optional_float = 10009; optional fixed64 extension_optional_fixed64 = 10010; optional sfixed64 extension_optional_sfixed64 = 10011; optional double extension_optional_double = 10012; optional string extension_optional_string = 10013; optional bytes extension_optional_bytes = 10014; optional ChildEnum extension_optional_child_enum = 10015; optional ChildMessage extension_optional_child_message = 10016; optional NamedGroup extension_optional_named_group = 10017; optional SiblingEnum extension_optional_sibling_enum = 10018; optional SiblingMessage extension_optional_sibling_message = 10019; optional group ExtensionOptionalGroup = 10020 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } // Optional default fields. optional bool extension_defaulted_bool = 20000 [default = true]; optional int32 extension_defaulted_int32 = 20001 [default = -12345]; optional sint32 extension_defaulted_sint32 = 20002 [default = -3200]; optional uint32 extension_defaulted_uint32 = 20003 [default = 3200]; optional int64 extension_defaulted_int64 = 20004 [default = -123456789]; optional sint64 extension_defaulted_sint64 = 20005 [default = -6400]; optional uint64 extension_defaulted_uint64 = 20006 [default = 6400]; optional fixed32 extension_defaulted_fixed32 = 20007 [default = 320000]; optional sfixed32 extension_defaulted_sfixed32 = 20008 [default = -320000]; optional float extension_defaulted_float = 20009 [default = 3.14159]; optional fixed64 extension_defaulted_fixed64 = 20010 [default = 640000]; optional sfixed64 extension_defaulted_sfixed64 = 20011 [default = -640000]; optional double extension_defaulted_double = 20012 [default = 3.14159265359]; optional string extension_defaulted_string = 20013 [default = "hello, \"world!\"\n"]; optional bytes extension_defaulted_bytes = 20014 [default = "dead\xde\xad\xbe\xefbeef"]; optional ChildEnum extension_defaulted_child_enum = 20015 [default = ALPHA]; optional SiblingEnum extension_defaulted_sibling_enum = 20016 [default = ALPHA]; // Repeated fields. repeated bool extension_repeated_bool = 30000; repeated int32 extension_repeated_int32 = 30001; repeated sint32 extension_repeated_sint32 = 30002; repeated uint32 extension_repeated_uint32 = 30003; repeated int64 extension_repeated_int64 = 30004; repeated sint64 extension_repeated_sint64 = 30005; repeated uint64 extension_repeated_uint64 = 30006; repeated fixed32 extension_repeated_fixed32 = 30007; repeated sfixed32 extension_repeated_sfixed32 = 30008; repeated float extension_repeated_float = 30009; repeated fixed64 extension_repeated_fixed64 = 30010; repeated sfixed64 extension_repeated_sfixed64 = 30011; repeated double extension_repeated_double = 30012; repeated string extension_repeated_string = 30013; repeated bytes extension_repeated_bytes = 30014; repeated ChildEnum extension_repeated_child_enum = 30015; repeated ChildMessage extension_repeated_child_message = 30016; repeated NamedGroup extension_repeated_named_group = 30017; repeated SiblingEnum extension_repeated_sibling_enum = 30018; repeated SiblingMessage extension_repeated_sibling_message = 30019; repeated group ExtensionRepeatedGroup = 30020 { optional string f1 = 1; required string f2 = 2; repeated string f3 = 3; } } extensions 10000 to max; } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto3_20160225_2fc053c5/000077500000000000000000000000001411250152500271045ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto3_20160225_2fc053c5/test.pb.go000066400000000000000000001472041411250152500310220ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. // source: proto3_20160225_2fc053c5/test.proto // DO NOT EDIT! /* Package proto3_20160225_2fc053c5 is a generated protocol buffer package. It is generated from these files: proto3_20160225_2fc053c5/test.proto It has these top-level messages: SiblingMessage Message */ package proto3_20160225_2fc053c5 import proto "google.golang.org/protobuf/internal/protolegacy" import fmt "fmt" import math "math" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. const _ = proto.ProtoPackageIsVersion1 type SiblingEnum int32 const ( SiblingEnum_ALPHA SiblingEnum = 0 SiblingEnum_BRAVO SiblingEnum = 10 SiblingEnum_CHARLIE SiblingEnum = 200 ) var SiblingEnum_name = map[int32]string{ 0: "ALPHA", 10: "BRAVO", 200: "CHARLIE", } var SiblingEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 10, "CHARLIE": 200, } func (x SiblingEnum) String() string { return proto.EnumName(SiblingEnum_name, int32(x)) } func (SiblingEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } type Message_ChildEnum int32 const ( Message_ALPHA Message_ChildEnum = 0 Message_BRAVO Message_ChildEnum = 1 Message_CHARLIE Message_ChildEnum = 2 ) var Message_ChildEnum_name = map[int32]string{ 0: "ALPHA", 1: "BRAVO", 2: "CHARLIE", } var Message_ChildEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 1, "CHARLIE": 2, } func (x Message_ChildEnum) String() string { return proto.EnumName(Message_ChildEnum_name, int32(x)) } func (Message_ChildEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 0} } type SiblingMessage struct { F1 string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 []string `protobuf:"bytes,2,rep,name=f2" json:"f2,omitempty"` F3 *Message `protobuf:"bytes,3,opt,name=f3" json:"f3,omitempty"` } func (m *SiblingMessage) Reset() { *m = SiblingMessage{} } func (m *SiblingMessage) String() string { return proto.CompactTextString(m) } func (*SiblingMessage) ProtoMessage() {} func (*SiblingMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } func (m *SiblingMessage) GetF3() *Message { if m != nil { return m.F3 } return nil } type Message struct { // Optional fields. OptionalBool bool `protobuf:"varint,100,opt,name=optional_bool,json=optionalBool" json:"optional_bool,omitempty"` OptionalInt32 int32 `protobuf:"varint,101,opt,name=optional_int32,json=optionalInt32" json:"optional_int32,omitempty"` OptionalSint32 int32 `protobuf:"zigzag32,102,opt,name=optional_sint32,json=optionalSint32" json:"optional_sint32,omitempty"` OptionalUint32 uint32 `protobuf:"varint,103,opt,name=optional_uint32,json=optionalUint32" json:"optional_uint32,omitempty"` OptionalInt64 int64 `protobuf:"varint,104,opt,name=optional_int64,json=optionalInt64" json:"optional_int64,omitempty"` OptionalSint64 int64 `protobuf:"zigzag64,105,opt,name=optional_sint64,json=optionalSint64" json:"optional_sint64,omitempty"` OptionalUint64 uint64 `protobuf:"varint,106,opt,name=optional_uint64,json=optionalUint64" json:"optional_uint64,omitempty"` OptionalFixed32 uint32 `protobuf:"fixed32,107,opt,name=optional_fixed32,json=optionalFixed32" json:"optional_fixed32,omitempty"` OptionalSfixed32 int32 `protobuf:"fixed32,108,opt,name=optional_sfixed32,json=optionalSfixed32" json:"optional_sfixed32,omitempty"` OptionalFloat float32 `protobuf:"fixed32,109,opt,name=optional_float,json=optionalFloat" json:"optional_float,omitempty"` OptionalFixed64 uint64 `protobuf:"fixed64,110,opt,name=optional_fixed64,json=optionalFixed64" json:"optional_fixed64,omitempty"` OptionalSfixed64 int64 `protobuf:"fixed64,111,opt,name=optional_sfixed64,json=optionalSfixed64" json:"optional_sfixed64,omitempty"` OptionalDouble float64 `protobuf:"fixed64,112,opt,name=optional_double,json=optionalDouble" json:"optional_double,omitempty"` OptionalString string `protobuf:"bytes,113,opt,name=optional_string,json=optionalString" json:"optional_string,omitempty"` OptionalBytes []byte `protobuf:"bytes,114,opt,name=optional_bytes,json=optionalBytes,proto3" json:"optional_bytes,omitempty"` OptionalChildEnum Message_ChildEnum `protobuf:"varint,115,opt,name=optional_child_enum,json=optionalChildEnum,enum=google.golang.org.proto3_20160225.Message_ChildEnum" json:"optional_child_enum,omitempty"` OptionalChildMessage *Message_ChildMessage `protobuf:"bytes,116,opt,name=optional_child_message,json=optionalChildMessage" json:"optional_child_message,omitempty"` OptionalSiblingEnum SiblingEnum `protobuf:"varint,117,opt,name=optional_sibling_enum,json=optionalSiblingEnum,enum=google.golang.org.proto3_20160225.SiblingEnum" json:"optional_sibling_enum,omitempty"` OptionalSiblingMessage *SiblingMessage `protobuf:"bytes,118,opt,name=optional_sibling_message,json=optionalSiblingMessage" json:"optional_sibling_message,omitempty"` // Repeated fields. RepeatedBool []bool `protobuf:"varint,200,rep,name=repeated_bool,json=repeatedBool" json:"repeated_bool,omitempty"` RepeatedInt32 []int32 `protobuf:"varint,201,rep,name=repeated_int32,json=repeatedInt32" json:"repeated_int32,omitempty"` RepeatedSint32 []int32 `protobuf:"zigzag32,202,rep,name=repeated_sint32,json=repeatedSint32" json:"repeated_sint32,omitempty"` RepeatedUint32 []uint32 `protobuf:"varint,203,rep,name=repeated_uint32,json=repeatedUint32" json:"repeated_uint32,omitempty"` RepeatedInt64 []int64 `protobuf:"varint,204,rep,name=repeated_int64,json=repeatedInt64" json:"repeated_int64,omitempty"` RepeatedSint64 []int64 `protobuf:"zigzag64,205,rep,name=repeated_sint64,json=repeatedSint64" json:"repeated_sint64,omitempty"` RepeatedUint64 []uint64 `protobuf:"varint,206,rep,name=repeated_uint64,json=repeatedUint64" json:"repeated_uint64,omitempty"` RepeatedFixed32 []uint32 `protobuf:"fixed32,207,rep,name=repeated_fixed32,json=repeatedFixed32" json:"repeated_fixed32,omitempty"` RepeatedSfixed32 []int32 `protobuf:"fixed32,208,rep,name=repeated_sfixed32,json=repeatedSfixed32" json:"repeated_sfixed32,omitempty"` RepeatedFloat []float32 `protobuf:"fixed32,209,rep,name=repeated_float,json=repeatedFloat" json:"repeated_float,omitempty"` RepeatedFixed64 []uint64 `protobuf:"fixed64,210,rep,name=repeated_fixed64,json=repeatedFixed64" json:"repeated_fixed64,omitempty"` RepeatedSfixed64 []int64 `protobuf:"fixed64,211,rep,name=repeated_sfixed64,json=repeatedSfixed64" json:"repeated_sfixed64,omitempty"` RepeatedDouble []float64 `protobuf:"fixed64,212,rep,name=repeated_double,json=repeatedDouble" json:"repeated_double,omitempty"` RepeatedString []string `protobuf:"bytes,213,rep,name=repeated_string,json=repeatedString" json:"repeated_string,omitempty"` RepeatedBytes [][]byte `protobuf:"bytes,214,rep,name=repeated_bytes,json=repeatedBytes,proto3" json:"repeated_bytes,omitempty"` RepeatedChildEnum []Message_ChildEnum `protobuf:"varint,215,rep,name=repeated_child_enum,json=repeatedChildEnum,enum=google.golang.org.proto3_20160225.Message_ChildEnum" json:"repeated_child_enum,omitempty"` RepeatedChildMessage []*Message_ChildMessage `protobuf:"bytes,216,rep,name=repeated_child_message,json=repeatedChildMessage" json:"repeated_child_message,omitempty"` RepeatedSiblingEnum []SiblingEnum `protobuf:"varint,217,rep,name=repeated_sibling_enum,json=repeatedSiblingEnum,enum=google.golang.org.proto3_20160225.SiblingEnum" json:"repeated_sibling_enum,omitempty"` RepeatedSiblingMessage []*SiblingMessage `protobuf:"bytes,218,rep,name=repeated_sibling_message,json=repeatedSiblingMessage" json:"repeated_sibling_message,omitempty"` // Map fields. MapBoolBool map[bool]bool `protobuf:"bytes,300,rep,name=map_bool_bool,json=mapBoolBool" json:"map_bool_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolInt32 map[bool]int32 `protobuf:"bytes,301,rep,name=map_bool_int32,json=mapBoolInt32" json:"map_bool_int32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolSint32 map[bool]int32 `protobuf:"bytes,302,rep,name=map_bool_sint32,json=mapBoolSint32" json:"map_bool_sint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` MapBoolUint32 map[bool]uint32 `protobuf:"bytes,303,rep,name=map_bool_uint32,json=mapBoolUint32" json:"map_bool_uint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolInt64 map[bool]int64 `protobuf:"bytes,304,rep,name=map_bool_int64,json=mapBoolInt64" json:"map_bool_int64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolSint64 map[bool]int64 `protobuf:"bytes,305,rep,name=map_bool_sint64,json=mapBoolSint64" json:"map_bool_sint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` MapBoolUint64 map[bool]uint64 `protobuf:"bytes,306,rep,name=map_bool_uint64,json=mapBoolUint64" json:"map_bool_uint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolFixed32 map[bool]uint32 `protobuf:"bytes,307,rep,name=map_bool_fixed32,json=mapBoolFixed32" json:"map_bool_fixed32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolSfixed32 map[bool]int32 `protobuf:"bytes,308,rep,name=map_bool_sfixed32,json=mapBoolSfixed32" json:"map_bool_sfixed32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolFloat map[bool]float32 `protobuf:"bytes,309,rep,name=map_bool_float,json=mapBoolFloat" json:"map_bool_float,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolFixed64 map[bool]uint64 `protobuf:"bytes,310,rep,name=map_bool_fixed64,json=mapBoolFixed64" json:"map_bool_fixed64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolSfixed64 map[bool]int64 `protobuf:"bytes,311,rep,name=map_bool_sfixed64,json=mapBoolSfixed64" json:"map_bool_sfixed64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolDouble map[bool]float64 `protobuf:"bytes,312,rep,name=map_bool_double,json=mapBoolDouble" json:"map_bool_double,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolString map[bool]string `protobuf:"bytes,313,rep,name=map_bool_string,json=mapBoolString" json:"map_bool_string,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolBytes map[bool][]byte `protobuf:"bytes,314,rep,name=map_bool_bytes,json=mapBoolBytes" json:"map_bool_bytes,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value,proto3"` MapBoolChildEnum map[bool]Message_ChildEnum `protobuf:"bytes,315,rep,name=map_bool_child_enum,json=mapBoolChildEnum" json:"map_bool_child_enum,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.golang.org.proto3_20160225.Message_ChildEnum"` MapBoolChildMessage map[bool]*Message_ChildMessage `protobuf:"bytes,316,rep,name=map_bool_child_message,json=mapBoolChildMessage" json:"map_bool_child_message,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolSiblingEnum map[bool]SiblingEnum `protobuf:"bytes,317,rep,name=map_bool_sibling_enum,json=mapBoolSiblingEnum" json:"map_bool_sibling_enum,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.golang.org.proto3_20160225.SiblingEnum"` MapBoolSiblingMessage map[bool]*SiblingMessage `protobuf:"bytes,318,rep,name=map_bool_sibling_message,json=mapBoolSiblingMessage" json:"map_bool_sibling_message,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapInt32Bool map[int32]bool `protobuf:"bytes,319,rep,name=map_int32_bool,json=mapInt32Bool" json:"map_int32_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapSint32Bool map[int32]bool `protobuf:"bytes,320,rep,name=map_sint32_bool,json=mapSint32Bool" json:"map_sint32_bool,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint32Bool map[uint32]bool `protobuf:"bytes,321,rep,name=map_uint32_bool,json=mapUint32Bool" json:"map_uint32_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapInt64Bool map[int64]bool `protobuf:"bytes,322,rep,name=map_int64_bool,json=mapInt64Bool" json:"map_int64_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapSint64Bool map[int64]bool `protobuf:"bytes,323,rep,name=map_sint64_bool,json=mapSint64Bool" json:"map_sint64_bool,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint64Bool map[uint64]bool `protobuf:"bytes,324,rep,name=map_uint64_bool,json=mapUint64Bool" json:"map_uint64_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapFixed32Bool map[uint32]bool `protobuf:"bytes,325,rep,name=map_fixed32_bool,json=mapFixed32Bool" json:"map_fixed32_bool,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapStringBool map[string]bool `protobuf:"bytes,326,rep,name=map_string_bool,json=mapStringBool" json:"map_string_bool,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // Oneof fields. // // Types that are valid to be assigned to OneofUnion: // *Message_OneofBool // *Message_OneofInt32 // *Message_OneofSint32 // *Message_OneofUint32 // *Message_OneofInt64 // *Message_OneofSint64 // *Message_OneofUint64 // *Message_OneofFixed32 // *Message_OneofSfixed32 // *Message_OneofFloat // *Message_OneofFixed64 // *Message_OneofSfixed64 // *Message_OneofDouble // *Message_OneofString // *Message_OneofBytes // *Message_OneofChildEnum // *Message_OneofChildMessage // *Message_OneofSiblingEnum // *Message_OneofSiblingMessage // *Message_OneofString1 // *Message_OneofString2 // *Message_OneofString3 OneofUnion isMessage_OneofUnion `protobuf_oneof:"oneof_union"` } func (m *Message) Reset() { *m = Message{} } func (m *Message) String() string { return proto.CompactTextString(m) } func (*Message) ProtoMessage() {} func (*Message) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } type isMessage_OneofUnion interface{ isMessage_OneofUnion() } type Message_OneofBool struct { OneofBool bool `protobuf:"varint,400,opt,name=oneof_bool,json=oneofBool,oneof"` } type Message_OneofInt32 struct { OneofInt32 int32 `protobuf:"varint,401,opt,name=oneof_int32,json=oneofInt32,oneof"` } type Message_OneofSint32 struct { OneofSint32 int32 `protobuf:"zigzag32,402,opt,name=oneof_sint32,json=oneofSint32,oneof"` } type Message_OneofUint32 struct { OneofUint32 uint32 `protobuf:"varint,403,opt,name=oneof_uint32,json=oneofUint32,oneof"` } type Message_OneofInt64 struct { OneofInt64 int64 `protobuf:"varint,404,opt,name=oneof_int64,json=oneofInt64,oneof"` } type Message_OneofSint64 struct { OneofSint64 int64 `protobuf:"zigzag64,405,opt,name=oneof_sint64,json=oneofSint64,oneof"` } type Message_OneofUint64 struct { OneofUint64 uint64 `protobuf:"varint,406,opt,name=oneof_uint64,json=oneofUint64,oneof"` } type Message_OneofFixed32 struct { OneofFixed32 uint32 `protobuf:"fixed32,407,opt,name=oneof_fixed32,json=oneofFixed32,oneof"` } type Message_OneofSfixed32 struct { OneofSfixed32 int32 `protobuf:"fixed32,408,opt,name=oneof_sfixed32,json=oneofSfixed32,oneof"` } type Message_OneofFloat struct { OneofFloat float32 `protobuf:"fixed32,409,opt,name=oneof_float,json=oneofFloat,oneof"` } type Message_OneofFixed64 struct { OneofFixed64 uint64 `protobuf:"fixed64,410,opt,name=oneof_fixed64,json=oneofFixed64,oneof"` } type Message_OneofSfixed64 struct { OneofSfixed64 int64 `protobuf:"fixed64,411,opt,name=oneof_sfixed64,json=oneofSfixed64,oneof"` } type Message_OneofDouble struct { OneofDouble float64 `protobuf:"fixed64,412,opt,name=oneof_double,json=oneofDouble,oneof"` } type Message_OneofString struct { OneofString string `protobuf:"bytes,413,opt,name=oneof_string,json=oneofString,oneof"` } type Message_OneofBytes struct { OneofBytes []byte `protobuf:"bytes,414,opt,name=oneof_bytes,json=oneofBytes,proto3,oneof"` } type Message_OneofChildEnum struct { OneofChildEnum Message_ChildEnum `protobuf:"varint,415,opt,name=oneof_child_enum,json=oneofChildEnum,enum=google.golang.org.proto3_20160225.Message_ChildEnum,oneof"` } type Message_OneofChildMessage struct { OneofChildMessage *Message_ChildMessage `protobuf:"bytes,416,opt,name=oneof_child_message,json=oneofChildMessage,oneof"` } type Message_OneofSiblingEnum struct { OneofSiblingEnum SiblingEnum `protobuf:"varint,417,opt,name=oneof_sibling_enum,json=oneofSiblingEnum,enum=google.golang.org.proto3_20160225.SiblingEnum,oneof"` } type Message_OneofSiblingMessage struct { OneofSiblingMessage *SiblingMessage `protobuf:"bytes,418,opt,name=oneof_sibling_message,json=oneofSiblingMessage,oneof"` } type Message_OneofString1 struct { OneofString1 string `protobuf:"bytes,419,opt,name=oneof_string1,json=oneofString1,oneof"` } type Message_OneofString2 struct { OneofString2 string `protobuf:"bytes,420,opt,name=oneof_string2,json=oneofString2,oneof"` } type Message_OneofString3 struct { OneofString3 string `protobuf:"bytes,421,opt,name=oneof_string3,json=oneofString3,oneof"` } func (*Message_OneofBool) isMessage_OneofUnion() {} func (*Message_OneofInt32) isMessage_OneofUnion() {} func (*Message_OneofSint32) isMessage_OneofUnion() {} func (*Message_OneofUint32) isMessage_OneofUnion() {} func (*Message_OneofInt64) isMessage_OneofUnion() {} func (*Message_OneofSint64) isMessage_OneofUnion() {} func (*Message_OneofUint64) isMessage_OneofUnion() {} func (*Message_OneofFixed32) isMessage_OneofUnion() {} func (*Message_OneofSfixed32) isMessage_OneofUnion() {} func (*Message_OneofFloat) isMessage_OneofUnion() {} func (*Message_OneofFixed64) isMessage_OneofUnion() {} func (*Message_OneofSfixed64) isMessage_OneofUnion() {} func (*Message_OneofDouble) isMessage_OneofUnion() {} func (*Message_OneofString) isMessage_OneofUnion() {} func (*Message_OneofBytes) isMessage_OneofUnion() {} func (*Message_OneofChildEnum) isMessage_OneofUnion() {} func (*Message_OneofChildMessage) isMessage_OneofUnion() {} func (*Message_OneofSiblingEnum) isMessage_OneofUnion() {} func (*Message_OneofSiblingMessage) isMessage_OneofUnion() {} func (*Message_OneofString1) isMessage_OneofUnion() {} func (*Message_OneofString2) isMessage_OneofUnion() {} func (*Message_OneofString3) isMessage_OneofUnion() {} func (m *Message) GetOneofUnion() isMessage_OneofUnion { if m != nil { return m.OneofUnion } return nil } func (m *Message) GetOptionalChildMessage() *Message_ChildMessage { if m != nil { return m.OptionalChildMessage } return nil } func (m *Message) GetOptionalSiblingMessage() *SiblingMessage { if m != nil { return m.OptionalSiblingMessage } return nil } func (m *Message) GetRepeatedChildMessage() []*Message_ChildMessage { if m != nil { return m.RepeatedChildMessage } return nil } func (m *Message) GetRepeatedSiblingMessage() []*SiblingMessage { if m != nil { return m.RepeatedSiblingMessage } return nil } func (m *Message) GetMapBoolBool() map[bool]bool { if m != nil { return m.MapBoolBool } return nil } func (m *Message) GetMapBoolInt32() map[bool]int32 { if m != nil { return m.MapBoolInt32 } return nil } func (m *Message) GetMapBoolSint32() map[bool]int32 { if m != nil { return m.MapBoolSint32 } return nil } func (m *Message) GetMapBoolUint32() map[bool]uint32 { if m != nil { return m.MapBoolUint32 } return nil } func (m *Message) GetMapBoolInt64() map[bool]int64 { if m != nil { return m.MapBoolInt64 } return nil } func (m *Message) GetMapBoolSint64() map[bool]int64 { if m != nil { return m.MapBoolSint64 } return nil } func (m *Message) GetMapBoolUint64() map[bool]uint64 { if m != nil { return m.MapBoolUint64 } return nil } func (m *Message) GetMapBoolFixed32() map[bool]uint32 { if m != nil { return m.MapBoolFixed32 } return nil } func (m *Message) GetMapBoolSfixed32() map[bool]int32 { if m != nil { return m.MapBoolSfixed32 } return nil } func (m *Message) GetMapBoolFloat() map[bool]float32 { if m != nil { return m.MapBoolFloat } return nil } func (m *Message) GetMapBoolFixed64() map[bool]uint64 { if m != nil { return m.MapBoolFixed64 } return nil } func (m *Message) GetMapBoolSfixed64() map[bool]int64 { if m != nil { return m.MapBoolSfixed64 } return nil } func (m *Message) GetMapBoolDouble() map[bool]float64 { if m != nil { return m.MapBoolDouble } return nil } func (m *Message) GetMapBoolString() map[bool]string { if m != nil { return m.MapBoolString } return nil } func (m *Message) GetMapBoolBytes() map[bool][]byte { if m != nil { return m.MapBoolBytes } return nil } func (m *Message) GetMapBoolChildEnum() map[bool]Message_ChildEnum { if m != nil { return m.MapBoolChildEnum } return nil } func (m *Message) GetMapBoolChildMessage() map[bool]*Message_ChildMessage { if m != nil { return m.MapBoolChildMessage } return nil } func (m *Message) GetMapBoolSiblingEnum() map[bool]SiblingEnum { if m != nil { return m.MapBoolSiblingEnum } return nil } func (m *Message) GetMapBoolSiblingMessage() map[bool]*SiblingMessage { if m != nil { return m.MapBoolSiblingMessage } return nil } func (m *Message) GetMapInt32Bool() map[int32]bool { if m != nil { return m.MapInt32Bool } return nil } func (m *Message) GetMapSint32Bool() map[int32]bool { if m != nil { return m.MapSint32Bool } return nil } func (m *Message) GetMapUint32Bool() map[uint32]bool { if m != nil { return m.MapUint32Bool } return nil } func (m *Message) GetMapInt64Bool() map[int64]bool { if m != nil { return m.MapInt64Bool } return nil } func (m *Message) GetMapSint64Bool() map[int64]bool { if m != nil { return m.MapSint64Bool } return nil } func (m *Message) GetMapUint64Bool() map[uint64]bool { if m != nil { return m.MapUint64Bool } return nil } func (m *Message) GetMapFixed32Bool() map[uint32]bool { if m != nil { return m.MapFixed32Bool } return nil } func (m *Message) GetMapStringBool() map[string]bool { if m != nil { return m.MapStringBool } return nil } func (m *Message) GetOneofBool() bool { if x, ok := m.GetOneofUnion().(*Message_OneofBool); ok { return x.OneofBool } return false } func (m *Message) GetOneofInt32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofInt32); ok { return x.OneofInt32 } return 0 } func (m *Message) GetOneofSint32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSint32); ok { return x.OneofSint32 } return 0 } func (m *Message) GetOneofUint32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofUint32); ok { return x.OneofUint32 } return 0 } func (m *Message) GetOneofInt64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofInt64); ok { return x.OneofInt64 } return 0 } func (m *Message) GetOneofSint64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSint64); ok { return x.OneofSint64 } return 0 } func (m *Message) GetOneofUint64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofUint64); ok { return x.OneofUint64 } return 0 } func (m *Message) GetOneofFixed32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed32); ok { return x.OneofFixed32 } return 0 } func (m *Message) GetOneofSfixed32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed32); ok { return x.OneofSfixed32 } return 0 } func (m *Message) GetOneofFloat() float32 { if x, ok := m.GetOneofUnion().(*Message_OneofFloat); ok { return x.OneofFloat } return 0 } func (m *Message) GetOneofFixed64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed64); ok { return x.OneofFixed64 } return 0 } func (m *Message) GetOneofSfixed64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed64); ok { return x.OneofSfixed64 } return 0 } func (m *Message) GetOneofDouble() float64 { if x, ok := m.GetOneofUnion().(*Message_OneofDouble); ok { return x.OneofDouble } return 0 } func (m *Message) GetOneofString() string { if x, ok := m.GetOneofUnion().(*Message_OneofString); ok { return x.OneofString } return "" } func (m *Message) GetOneofBytes() []byte { if x, ok := m.GetOneofUnion().(*Message_OneofBytes); ok { return x.OneofBytes } return nil } func (m *Message) GetOneofChildEnum() Message_ChildEnum { if x, ok := m.GetOneofUnion().(*Message_OneofChildEnum); ok { return x.OneofChildEnum } return Message_ALPHA } func (m *Message) GetOneofChildMessage() *Message_ChildMessage { if x, ok := m.GetOneofUnion().(*Message_OneofChildMessage); ok { return x.OneofChildMessage } return nil } func (m *Message) GetOneofSiblingEnum() SiblingEnum { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingEnum); ok { return x.OneofSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetOneofSiblingMessage() *SiblingMessage { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingMessage); ok { return x.OneofSiblingMessage } return nil } func (m *Message) GetOneofString1() string { if x, ok := m.GetOneofUnion().(*Message_OneofString1); ok { return x.OneofString1 } return "" } func (m *Message) GetOneofString2() string { if x, ok := m.GetOneofUnion().(*Message_OneofString2); ok { return x.OneofString2 } return "" } func (m *Message) GetOneofString3() string { if x, ok := m.GetOneofUnion().(*Message_OneofString3); ok { return x.OneofString3 } return "" } // XXX_OneofFuncs is for the internal use of the proto package. func (*Message) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { return _Message_OneofMarshaler, _Message_OneofUnmarshaler, _Message_OneofSizer, []interface{}{ (*Message_OneofBool)(nil), (*Message_OneofInt32)(nil), (*Message_OneofSint32)(nil), (*Message_OneofUint32)(nil), (*Message_OneofInt64)(nil), (*Message_OneofSint64)(nil), (*Message_OneofUint64)(nil), (*Message_OneofFixed32)(nil), (*Message_OneofSfixed32)(nil), (*Message_OneofFloat)(nil), (*Message_OneofFixed64)(nil), (*Message_OneofSfixed64)(nil), (*Message_OneofDouble)(nil), (*Message_OneofString)(nil), (*Message_OneofBytes)(nil), (*Message_OneofChildEnum)(nil), (*Message_OneofChildMessage)(nil), (*Message_OneofSiblingEnum)(nil), (*Message_OneofSiblingMessage)(nil), (*Message_OneofString1)(nil), (*Message_OneofString2)(nil), (*Message_OneofString3)(nil), } } func _Message_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { m := msg.(*Message) // oneof_union switch x := m.OneofUnion.(type) { case *Message_OneofBool: t := uint64(0) if x.OneofBool { t = 1 } b.EncodeVarint(400<<3 | proto.WireVarint) b.EncodeVarint(t) case *Message_OneofInt32: b.EncodeVarint(401<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofInt32)) case *Message_OneofSint32: b.EncodeVarint(402<<3 | proto.WireVarint) b.EncodeZigzag32(uint64(x.OneofSint32)) case *Message_OneofUint32: b.EncodeVarint(403<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofUint32)) case *Message_OneofInt64: b.EncodeVarint(404<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofInt64)) case *Message_OneofSint64: b.EncodeVarint(405<<3 | proto.WireVarint) b.EncodeZigzag64(uint64(x.OneofSint64)) case *Message_OneofUint64: b.EncodeVarint(406<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofUint64)) case *Message_OneofFixed32: b.EncodeVarint(407<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofFixed32)) case *Message_OneofSfixed32: b.EncodeVarint(408<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofSfixed32)) case *Message_OneofFloat: b.EncodeVarint(409<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(math.Float32bits(x.OneofFloat))) case *Message_OneofFixed64: b.EncodeVarint(410<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofFixed64)) case *Message_OneofSfixed64: b.EncodeVarint(411<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofSfixed64)) case *Message_OneofDouble: b.EncodeVarint(412<<3 | proto.WireFixed64) b.EncodeFixed64(math.Float64bits(x.OneofDouble)) case *Message_OneofString: b.EncodeVarint(413<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString) case *Message_OneofBytes: b.EncodeVarint(414<<3 | proto.WireBytes) b.EncodeRawBytes(x.OneofBytes) case *Message_OneofChildEnum: b.EncodeVarint(415<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofChildEnum)) case *Message_OneofChildMessage: b.EncodeVarint(416<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofChildMessage); err != nil { return err } case *Message_OneofSiblingEnum: b.EncodeVarint(417<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofSiblingEnum)) case *Message_OneofSiblingMessage: b.EncodeVarint(418<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofSiblingMessage); err != nil { return err } case *Message_OneofString1: b.EncodeVarint(419<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString1) case *Message_OneofString2: b.EncodeVarint(420<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString2) case *Message_OneofString3: b.EncodeVarint(421<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString3) case nil: default: return fmt.Errorf("Message.OneofUnion has unexpected type %T", x) } return nil } func _Message_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { m := msg.(*Message) switch tag { case 400: // oneof_union.oneof_bool if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofBool{x != 0} return true, err case 401: // oneof_union.oneof_int32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofInt32{int32(x)} return true, err case 402: // oneof_union.oneof_sint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag32() m.OneofUnion = &Message_OneofSint32{int32(x)} return true, err case 403: // oneof_union.oneof_uint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofUint32{uint32(x)} return true, err case 404: // oneof_union.oneof_int64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofInt64{int64(x)} return true, err case 405: // oneof_union.oneof_sint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag64() m.OneofUnion = &Message_OneofSint64{int64(x)} return true, err case 406: // oneof_union.oneof_uint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofUint64{x} return true, err case 407: // oneof_union.oneof_fixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofFixed32{uint32(x)} return true, err case 408: // oneof_union.oneof_sfixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofSfixed32{int32(x)} return true, err case 409: // oneof_union.oneof_float if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofFloat{math.Float32frombits(uint32(x))} return true, err case 410: // oneof_union.oneof_fixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofFixed64{x} return true, err case 411: // oneof_union.oneof_sfixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofSfixed64{int64(x)} return true, err case 412: // oneof_union.oneof_double if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofDouble{math.Float64frombits(x)} return true, err case 413: // oneof_union.oneof_string if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString{x} return true, err case 414: // oneof_union.oneof_bytes if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeRawBytes(true) m.OneofUnion = &Message_OneofBytes{x} return true, err case 415: // oneof_union.oneof_child_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofChildEnum{Message_ChildEnum(x)} return true, err case 416: // oneof_union.oneof_child_message if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(Message_ChildMessage) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofChildMessage{msg} return true, err case 417: // oneof_union.oneof_sibling_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofSiblingEnum{SiblingEnum(x)} return true, err case 418: // oneof_union.oneof_sibling_message if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(SiblingMessage) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofSiblingMessage{msg} return true, err case 419: // oneof_union.oneof_string1 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString1{x} return true, err case 420: // oneof_union.oneof_string2 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString2{x} return true, err case 421: // oneof_union.oneof_string3 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString3{x} return true, err default: return false, nil } } func _Message_OneofSizer(msg proto.Message) (n int) { m := msg.(*Message) // oneof_union switch x := m.OneofUnion.(type) { case *Message_OneofBool: n += proto.SizeVarint(400<<3 | proto.WireVarint) n += 1 case *Message_OneofInt32: n += proto.SizeVarint(401<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofInt32)) case *Message_OneofSint32: n += proto.SizeVarint(402<<3 | proto.WireVarint) n += proto.SizeVarint(uint64((uint32(x.OneofSint32) << 1) ^ uint32((int32(x.OneofSint32) >> 31)))) case *Message_OneofUint32: n += proto.SizeVarint(403<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofUint32)) case *Message_OneofInt64: n += proto.SizeVarint(404<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofInt64)) case *Message_OneofSint64: n += proto.SizeVarint(405<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(uint64(x.OneofSint64<<1) ^ uint64((int64(x.OneofSint64) >> 63)))) case *Message_OneofUint64: n += proto.SizeVarint(406<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofUint64)) case *Message_OneofFixed32: n += proto.SizeVarint(407<<3 | proto.WireFixed32) n += 4 case *Message_OneofSfixed32: n += proto.SizeVarint(408<<3 | proto.WireFixed32) n += 4 case *Message_OneofFloat: n += proto.SizeVarint(409<<3 | proto.WireFixed32) n += 4 case *Message_OneofFixed64: n += proto.SizeVarint(410<<3 | proto.WireFixed64) n += 8 case *Message_OneofSfixed64: n += proto.SizeVarint(411<<3 | proto.WireFixed64) n += 8 case *Message_OneofDouble: n += proto.SizeVarint(412<<3 | proto.WireFixed64) n += 8 case *Message_OneofString: n += proto.SizeVarint(413<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString))) n += len(x.OneofString) case *Message_OneofBytes: n += proto.SizeVarint(414<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofBytes))) n += len(x.OneofBytes) case *Message_OneofChildEnum: n += proto.SizeVarint(415<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofChildEnum)) case *Message_OneofChildMessage: s := proto.Size(x.OneofChildMessage) n += proto.SizeVarint(416<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case *Message_OneofSiblingEnum: n += proto.SizeVarint(417<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofSiblingEnum)) case *Message_OneofSiblingMessage: s := proto.Size(x.OneofSiblingMessage) n += proto.SizeVarint(418<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case *Message_OneofString1: n += proto.SizeVarint(419<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString1))) n += len(x.OneofString1) case *Message_OneofString2: n += proto.SizeVarint(420<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString2))) n += len(x.OneofString2) case *Message_OneofString3: n += proto.SizeVarint(421<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString3))) n += len(x.OneofString3) case nil: default: panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) } return n } type Message_ChildMessage struct { F1 string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 []string `protobuf:"bytes,2,rep,name=f2" json:"f2,omitempty"` F3 *Message `protobuf:"bytes,3,opt,name=f3" json:"f3,omitempty"` } func (m *Message_ChildMessage) Reset() { *m = Message_ChildMessage{} } func (m *Message_ChildMessage) String() string { return proto.CompactTextString(m) } func (*Message_ChildMessage) ProtoMessage() {} func (*Message_ChildMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 0} } func (m *Message_ChildMessage) GetF3() *Message { if m != nil { return m.F3 } return nil } func init() { proto.RegisterType((*SiblingMessage)(nil), "google.golang.org.proto3_20160225.SiblingMessage") proto.RegisterType((*Message)(nil), "google.golang.org.proto3_20160225.Message") proto.RegisterType((*Message_ChildMessage)(nil), "google.golang.org.proto3_20160225.Message.ChildMessage") proto.RegisterEnum("google.golang.org.proto3_20160225.SiblingEnum", SiblingEnum_name, SiblingEnum_value) proto.RegisterEnum("google.golang.org.proto3_20160225.Message_ChildEnum", Message_ChildEnum_name, Message_ChildEnum_value) } var fileDescriptor0 = []byte{ // 1946 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x9a, 0x57, 0x73, 0xdb, 0xca, 0x15, 0xc7, 0x09, 0x52, 0xc5, 0x5a, 0xb1, 0x82, 0x96, 0xb2, 0xa3, 0x27, 0x44, 0x76, 0x1c, 0xc4, 0xc9, 0x50, 0x16, 0x09, 0x23, 0x19, 0x27, 0xb1, 0x2d, 0xd9, 0x72, 0xe8, 0x8c, 0x9d, 0x78, 0xe0, 0x51, 0x1e, 0xf2, 0xa2, 0x50, 0x12, 0x48, 0xd3, 0x06, 0x09, 0x45, 0x24, 0x3d, 0xd1, 0xe4, 0xc1, 0x5f, 0x21, 0xf5, 0xf6, 0x5e, 0xde, 0x6e, 0xef, 0xbd, 0xfb, 0x8e, 0x6f, 0xef, 0xf5, 0xd3, 0xdc, 0x59, 0x1c, 0x6c, 0x03, 0x40, 0x93, 0x04, 0xe7, 0x3e, 0x78, 0x46, 0x3a, 0xfc, 0xef, 0xf9, 0xf1, 0x1c, 0x9c, 0x3d, 0x67, 0x17, 0x16, 0x3a, 0xb0, 0xb3, 0xeb, 0x76, 0xdd, 0xca, 0x46, 0xf9, 0xc8, 0xb2, 0x79, 0xa4, 0x5c, 0x3e, 0xba, 0x51, 0xae, 0x6f, 0x1d, 0x39, 0x5a, 0xd9, 0x3a, 0xba, 0xd4, 0xb5, 0x3b, 0xdd, 0x92, 0xf7, 0xa9, 0xfa, 0xd3, 0x86, 0xeb, 0x36, 0x1c, 0xbb, 0xd4, 0x70, 0x9d, 0x5a, 0xbb, 0x51, 0x72, 0x77, 0x1b, 0xa5, 0xc0, 0xb2, 0x45, 0x07, 0x65, 0x2f, 0x36, 0x37, 0x9d, 0x66, 0xbb, 0x71, 0xde, 0xee, 0x74, 0x6a, 0x0d, 0x5b, 0xcd, 0xa2, 0x64, 0x7d, 0x19, 0x2b, 0x9a, 0xa2, 0xcf, 0x58, 0xc9, 0xfa, 0xb2, 0xf7, 0x7b, 0x19, 0x27, 0xb5, 0x94, 0xf7, 0x7b, 0x59, 0x3d, 0x86, 0x92, 0xf5, 0x0a, 0x4e, 0x69, 0x8a, 0x3e, 0x5b, 0x3e, 0x5c, 0x1a, 0x48, 0x28, 0xf9, 0x7e, 0xad, 0x64, 0xbd, 0xb2, 0x78, 0xfd, 0x24, 0x9a, 0xa6, 0x9c, 0x03, 0x28, 0xe3, 0xee, 0x74, 0x9b, 0x6e, 0xbb, 0xe6, 0x6c, 0x6c, 0xba, 0xae, 0x83, 0xb7, 0x35, 0x45, 0xdf, 0x67, 0xa5, 0xa9, 0x71, 0xd5, 0x75, 0x1d, 0xf5, 0x67, 0x28, 0xcb, 0x44, 0xcd, 0x76, 0xb7, 0x52, 0xc6, 0xb6, 0xa6, 0xe8, 0x93, 0x16, 0x5b, 0x7a, 0x96, 0x18, 0xd5, 0x9f, 0xa3, 0x1c, 0x93, 0x75, 0x40, 0x57, 0xd7, 0x14, 0xbd, 0x60, 0xb1, 0xd5, 0x17, 0x9b, 0x21, 0x61, 0x0f, 0x84, 0x0d, 0x4d, 0xd1, 0x33, 0x5c, 0xb8, 0x0e, 0xc2, 0x00, 0xd8, 0x34, 0xf0, 0x25, 0x4d, 0xd1, 0x53, 0x12, 0xd8, 0x34, 0x42, 0x60, 0xd3, 0xc0, 0x4d, 0x4d, 0xd1, 0x55, 0x19, 0x1c, 0x10, 0xf6, 0x40, 0x78, 0x59, 0x53, 0xf4, 0x09, 0x19, 0x6c, 0x1a, 0xea, 0x2f, 0x50, 0x9e, 0x09, 0xeb, 0xcd, 0x7f, 0xd8, 0xdb, 0x95, 0x32, 0xbe, 0xa2, 0x29, 0xfa, 0xb4, 0xc5, 0x1c, 0x9c, 0x01, 0xb3, 0xfa, 0x4b, 0x54, 0xe0, 0x70, 0xaa, 0x75, 0x34, 0x45, 0xcf, 0x59, 0xcc, 0xc7, 0x45, 0xdf, 0x2e, 0x05, 0x54, 0x77, 0xdc, 0x5a, 0x17, 0xb7, 0x34, 0x45, 0x4f, 0xf2, 0x80, 0xce, 0x10, 0x63, 0x18, 0x6f, 0x1a, 0xb8, 0xad, 0x29, 0xfa, 0x54, 0x00, 0x6f, 0x1a, 0x11, 0x78, 0xd3, 0xc0, 0xae, 0xa6, 0xe8, 0xf9, 0x20, 0x3e, 0x10, 0xff, 0xb6, 0xdb, 0xdb, 0x74, 0x6c, 0xbc, 0xa3, 0x29, 0xba, 0xc2, 0xe3, 0x3f, 0xed, 0x59, 0xe5, 0x8c, 0x76, 0x77, 0x9b, 0xed, 0x06, 0xfe, 0xbb, 0x57, 0x8b, 0x3c, 0xa3, 0x9e, 0x55, 0x0a, 0x68, 0x73, 0xaf, 0x6b, 0x77, 0xf0, 0xae, 0xa6, 0xe8, 0x69, 0x1e, 0xd0, 0x2a, 0x31, 0xaa, 0xdb, 0xa8, 0xc8, 0x64, 0x5b, 0x97, 0x9a, 0xce, 0xf6, 0x86, 0xdd, 0xee, 0xb5, 0x70, 0x47, 0x53, 0xf4, 0x6c, 0xd9, 0x18, 0xbe, 0x7e, 0x4b, 0xa7, 0xc8, 0xe2, 0xb5, 0x76, 0xaf, 0x65, 0xb1, 0xb0, 0x99, 0x49, 0x6d, 0xa1, 0xf9, 0x00, 0xa5, 0x05, 0xcb, 0x70, 0xd7, 0xdb, 0x28, 0xbf, 0x1e, 0x15, 0x44, 0x77, 0xcd, 0x7e, 0x89, 0x45, 0xf7, 0xce, 0x26, 0x9a, 0x13, 0xca, 0xce, 0xdb, 0xbe, 0x10, 0x56, 0xcf, 0x0b, 0xab, 0x34, 0x04, 0xcd, 0xdf, 0xf5, 0x5e, 0x40, 0x45, 0x5e, 0xac, 0xcc, 0xa8, 0x5e, 0x41, 0x38, 0xc4, 0xa0, 0x41, 0x5d, 0xf5, 0x82, 0x5a, 0x1e, 0x1e, 0x43, 0xc3, 0x99, 0x0f, 0x90, 0x68, 0x40, 0x07, 0x51, 0x66, 0xd7, 0xde, 0xb1, 0x6b, 0x5d, 0x7b, 0x1b, 0x9a, 0xc1, 0x0d, 0x45, 0x4b, 0x91, 0x6e, 0x40, 0xad, 0x5e, 0x37, 0x38, 0x84, 0xb2, 0x4c, 0x05, 0x9b, 0xf7, 0x3d, 0x22, 0x9b, 0xb4, 0xd8, 0x62, 0x68, 0x07, 0x3a, 0xca, 0x31, 0x9d, 0xdf, 0x0e, 0xde, 0x27, 0xc2, 0x82, 0xc5, 0xd6, 0xfb, 0xfd, 0x40, 0x54, 0xfa, 0xfd, 0xe0, 0x03, 0xa2, 0xcc, 0x70, 0xa5, 0xdf, 0x10, 0x02, 0x6c, 0xd3, 0xc0, 0x1f, 0x12, 0x61, 0x4a, 0x62, 0x9b, 0x46, 0x88, 0x6d, 0x1a, 0xf8, 0x23, 0x22, 0x54, 0x65, 0x76, 0x40, 0xe9, 0xb7, 0x84, 0x8f, 0x89, 0x72, 0x42, 0x66, 0x9b, 0x86, 0x7a, 0x18, 0xe5, 0x99, 0x92, 0xee, 0xf3, 0x4f, 0x88, 0x74, 0xda, 0x62, 0x2e, 0x68, 0x53, 0xf8, 0x15, 0x2a, 0x70, 0x3e, 0x15, 0x7f, 0x4a, 0xc4, 0x39, 0x8b, 0x79, 0x61, 0x5d, 0x41, 0x8c, 0x0a, 0xba, 0xc2, 0x67, 0x44, 0x9a, 0xe4, 0x51, 0x41, 0x5b, 0x08, 0x7d, 0x03, 0xd3, 0xc0, 0x9f, 0x13, 0xe5, 0x54, 0xe0, 0x1b, 0x98, 0x46, 0xc4, 0x37, 0x30, 0x0d, 0xfc, 0x05, 0x11, 0xe7, 0x83, 0xdf, 0x20, 0x90, 0x05, 0xbf, 0x31, 0x7c, 0x49, 0xb4, 0x0a, 0xcf, 0x82, 0xdf, 0x19, 0xa4, 0xcc, 0x42, 0x67, 0xf8, 0x4a, 0xf1, 0xc6, 0x12, 0xcf, 0x2c, 0xb4, 0x06, 0x31, 0x2a, 0x68, 0x0d, 0x5f, 0x13, 0x61, 0x9a, 0x47, 0x05, 0xbd, 0xc1, 0x46, 0x45, 0xa6, 0x13, 0x7a, 0xc3, 0x37, 0x44, 0x1c, 0xbb, 0x39, 0x50, 0x8f, 0xbc, 0x39, 0xb4, 0xd1, 0x7c, 0x00, 0x43, 0xf7, 0xd1, 0xb7, 0x84, 0x34, 0x4e, 0x77, 0x90, 0x60, 0x74, 0x33, 0x6d, 0xa1, 0x39, 0xa1, 0x04, 0x85, 0xee, 0xf0, 0x1d, 0x04, 0x36, 0x72, 0x7b, 0xe0, 0x85, 0xcb, 0xdb, 0x83, 0x83, 0x70, 0x08, 0x42, 0xc3, 0xfa, 0x1e, 0xc2, 0x8a, 0xd3, 0x1f, 0x02, 0x28, 0x1a, 0xd2, 0xdf, 0x50, 0xa6, 0x55, 0xdb, 0xf1, 0x5a, 0x03, 0xf4, 0x87, 0x47, 0x92, 0x1e, 0xe2, 0xb7, 0x23, 0x64, 0xee, 0x7c, 0x6d, 0x87, 0x74, 0x11, 0xf2, 0x6f, 0xad, 0xdd, 0xdd, 0xdd, 0xb3, 0x66, 0x5b, 0xdc, 0xa2, 0x6e, 0xa1, 0x2c, 0x23, 0x40, 0x23, 0x78, 0x14, 0x10, 0xbf, 0x1b, 0x1d, 0xe1, 0x75, 0x21, 0x60, 0xa4, 0x5b, 0x82, 0x49, 0xad, 0xa3, 0x1c, 0x83, 0xf8, 0x8d, 0xe9, 0x31, 0xa0, 0xfc, 0x7e, 0x74, 0x0a, 0xb4, 0x30, 0xc0, 0x64, 0x5a, 0xa2, 0x4d, 0xe2, 0xf8, 0x6d, 0xed, 0xf1, 0xd8, 0x9c, 0xf5, 0x08, 0x8e, 0xdf, 0x14, 0x03, 0x49, 0x33, 0x0d, 0xfc, 0xc4, 0x38, 0x49, 0x33, 0x8d, 0x50, 0xd2, 0x4c, 0x23, 0x94, 0x34, 0xd3, 0xc0, 0x4f, 0x8e, 0x95, 0x34, 0x8a, 0x11, 0x93, 0x16, 0xe0, 0xf8, 0xfd, 0xf8, 0xa9, 0xb1, 0x92, 0x16, 0xe4, 0xf8, 0xdd, 0xbc, 0x89, 0xf2, 0x8c, 0x43, 0x1b, 0xf4, 0xd3, 0x00, 0x3a, 0x3e, 0x3a, 0xc8, 0xef, 0xfb, 0x40, 0xca, 0xb6, 0x24, 0xa3, 0xea, 0xa0, 0x02, 0x4f, 0x1d, 0x65, 0x3d, 0x03, 0xac, 0x13, 0x31, 0x92, 0x57, 0x17, 0x61, 0xb9, 0x96, 0x6c, 0x95, 0xaa, 0x01, 0x86, 0xc9, 0xb3, 0xb1, 0xab, 0xc1, 0x1b, 0x3b, 0x72, 0x35, 0xc0, 0x24, 0x0a, 0x65, 0xcf, 0x34, 0xf0, 0x73, 0xe3, 0x65, 0x8f, 0x3e, 0x27, 0x29, 0x7b, 0xa6, 0x11, 0x91, 0x3d, 0xd3, 0xc0, 0xcf, 0x8f, 0x99, 0x3d, 0x0a, 0x93, 0xb3, 0x17, 0x28, 0x3f, 0x7f, 0x10, 0xbe, 0x10, 0xbb, 0xfc, 0x60, 0x64, 0xca, 0xe5, 0xe7, 0x8f, 0x51, 0x69, 0x3b, 0xc1, 0x18, 0x7d, 0x31, 0xfe, 0x76, 0xf2, 0x1c, 0x04, 0xb6, 0x13, 0x0c, 0x61, 0xb1, 0x1a, 0x60, 0x08, 0xbf, 0x14, 0xbb, 0x1a, 0xbc, 0x71, 0x2d, 0x57, 0x03, 0x4c, 0xf0, 0x1d, 0x54, 0x64, 0x10, 0x61, 0x82, 0xbf, 0x0c, 0xa4, 0x93, 0xa3, 0x93, 0xd8, 0xd4, 0x06, 0x5a, 0xbe, 0x15, 0x30, 0xab, 0x7b, 0x68, 0x3e, 0x40, 0xa4, 0x53, 0xef, 0x15, 0x80, 0x9e, 0x8a, 0x09, 0xf5, 0x6d, 0xc0, 0x2d, 0xb6, 0xc2, 0x9f, 0xa8, 0x57, 0xd1, 0x9c, 0xd0, 0x08, 0x85, 0xb9, 0xfe, 0x2a, 0x90, 0x57, 0xe3, 0xb4, 0x43, 0x36, 0xd1, 0x01, 0xac, 0xb6, 0x42, 0x1f, 0xa8, 0xd7, 0x10, 0x0e, 0x71, 0x69, 0xd0, 0xaf, 0x01, 0x7a, 0x2d, 0x36, 0x5a, 0x0a, 0x7b, 0xae, 0x15, 0xf5, 0x19, 0x2d, 0x25, 0x6f, 0xe6, 0xc0, 0xf8, 0x7f, 0x3d, 0x56, 0x29, 0x79, 0x43, 0x98, 0xcf, 0x7f, 0x52, 0x4a, 0xcc, 0x44, 0xf7, 0x45, 0x47, 0xa0, 0xbc, 0x11, 0x6b, 0x5f, 0xc0, 0x0c, 0xe6, 0x18, 0xb2, 0x2f, 0xb8, 0x8d, 0x72, 0x7a, 0x02, 0xe7, 0xcd, 0x58, 0x9c, 0xf5, 0x08, 0x0e, 0xb7, 0x09, 0x49, 0x33, 0x0d, 0xc0, 0xbc, 0x15, 0x37, 0x69, 0xa6, 0x11, 0x4a, 0x1a, 0x98, 0xc4, 0xa4, 0x51, 0xca, 0xdb, 0xb1, 0x93, 0x26, 0x62, 0x68, 0xd2, 0x64, 0x4e, 0x4f, 0xe0, 0xbc, 0x13, 0x3b, 0x69, 0x41, 0x0e, 0xb7, 0xd1, 0xe9, 0xe2, 0x4f, 0x34, 0x00, 0x5d, 0x8f, 0x35, 0x5d, 0xfc, 0x11, 0xcc, 0x49, 0xe4, 0x69, 0x08, 0x46, 0x96, 0x3a, 0xaf, 0x5b, 0x02, 0xe9, 0xdd, 0x78, 0xa9, 0xf3, 0x3c, 0x04, 0x52, 0xc7, 0x6c, 0xaa, 0x86, 0x90, 0xdb, 0xb6, 0xdd, 0x3a, 0x20, 0xfe, 0x95, 0xd2, 0x14, 0x7d, 0x5f, 0x35, 0x61, 0xcd, 0x78, 0x46, 0x4f, 0xb1, 0x88, 0x66, 0x41, 0x01, 0x27, 0xc5, 0x7f, 0x13, 0xc9, 0x64, 0x35, 0x61, 0xc1, 0x3a, 0x38, 0xb9, 0x1e, 0x44, 0x69, 0xd0, 0xf8, 0xc7, 0xd6, 0xff, 0x10, 0x51, 0xa1, 0x9a, 0xb0, 0x60, 0xa9, 0x7f, 0xee, 0x64, 0x2a, 0xff, 0xd0, 0xf9, 0x5f, 0xa2, 0xca, 0x30, 0x95, 0x7f, 0x6a, 0x14, 0x79, 0xa6, 0x81, 0xff, 0x47, 0x44, 0x29, 0x91, 0x67, 0x1a, 0x32, 0xcf, 0x34, 0xf0, 0xff, 0x89, 0x48, 0x95, 0x78, 0xa2, 0xca, 0x3f, 0xaf, 0xdd, 0x42, 0x54, 0x13, 0x12, 0xcf, 0x34, 0xd4, 0x43, 0x28, 0x03, 0x2a, 0x7a, 0x02, 0xba, 0x95, 0xc8, 0xa6, 0xab, 0x09, 0x0b, 0x56, 0xd3, 0xd3, 0x92, 0x8e, 0xb2, 0x3e, 0x93, 0x0a, 0x6f, 0x23, 0xc2, 0x5c, 0x35, 0x61, 0x81, 0x03, 0x76, 0xd2, 0x61, 0x11, 0xc0, 0x31, 0xe7, 0x76, 0x22, 0x4b, 0xb2, 0x08, 0xe0, 0xa0, 0x22, 0x53, 0x4d, 0x03, 0xdf, 0x41, 0x54, 0x53, 0x32, 0xd5, 0xbb, 0x00, 0x4b, 0x54, 0xd3, 0xc0, 0x77, 0x12, 0x61, 0x3e, 0x40, 0x15, 0xa3, 0xf5, 0x8f, 0x07, 0x77, 0x11, 0x9d, 0xc2, 0xa2, 0xf5, 0xe7, 0x3b, 0xcf, 0x1c, 0x0c, 0xf7, 0xbb, 0x89, 0x6a, 0x86, 0x67, 0x0e, 0xa6, 0x33, 0x8b, 0x00, 0x46, 0xf3, 0x3d, 0x44, 0x94, 0x66, 0x11, 0xc0, 0x70, 0xad, 0xa1, 0x3c, 0x68, 0x84, 0xc9, 0x7a, 0x6f, 0x2a, 0xfe, 0x8b, 0xb3, 0x6a, 0xc2, 0x82, 0x50, 0xf9, 0x34, 0xbd, 0x8c, 0x8a, 0x22, 0x82, 0x4e, 0x95, 0xfb, 0x52, 0x63, 0xbd, 0x35, 0xab, 0x26, 0xac, 0x02, 0x07, 0xd1, 0x29, 0xb2, 0x81, 0x54, 0x5a, 0x52, 0xc2, 0xec, 0xbc, 0x3f, 0x15, 0xe7, 0x95, 0x59, 0x35, 0x61, 0xe5, 0xfd, 0x42, 0xe4, 0x73, 0xf2, 0x12, 0x9a, 0x93, 0x01, 0x34, 0x9c, 0x07, 0x52, 0x31, 0xdf, 0x97, 0x55, 0x13, 0x56, 0x51, 0xc4, 0xd0, 0x50, 0x58, 0x6d, 0xc1, 0x33, 0x5e, 0xc6, 0x0f, 0xd2, 0x87, 0x9c, 0x16, 0x1e, 0xf2, 0x72, 0x50, 0x57, 0xc6, 0x0f, 0x45, 0xe9, 0xca, 0x41, 0x5d, 0x05, 0x3f, 0x1c, 0xa5, 0xab, 0x2c, 0x5c, 0x46, 0x69, 0x29, 0xa5, 0x3f, 0xe2, 0xff, 0x15, 0x2c, 0x1c, 0x47, 0xf9, 0xe0, 0x8d, 0x5d, 0xcd, 0xa3, 0xd4, 0x15, 0x7b, 0xcf, 0x03, 0xee, 0xb3, 0xc8, 0x8f, 0xea, 0x7e, 0x34, 0x79, 0xb5, 0xe6, 0xf4, 0x6c, 0x9c, 0xf4, 0x6c, 0xf0, 0xcb, 0xb1, 0xe4, 0x6f, 0x94, 0x85, 0x13, 0xa8, 0x10, 0xba, 0x8e, 0x0f, 0x72, 0x30, 0x29, 0x3a, 0x38, 0x89, 0xd4, 0xf0, 0x4d, 0x7b, 0x90, 0x87, 0x42, 0xb4, 0x87, 0xf5, 0xe1, 0x3d, 0x64, 0xfa, 0x06, 0xe1, 0x5f, 0x1d, 0x06, 0x39, 0x48, 0xf5, 0x0f, 0x62, 0x48, 0x0f, 0x6a, 0xff, 0x20, 0x86, 0xf4, 0x30, 0x21, 0x7a, 0x58, 0x41, 0xc5, 0x88, 0xcb, 0xea, 0x20, 0x17, 0xd3, 0xa2, 0x8b, 0x55, 0xb4, 0x3f, 0xea, 0x0e, 0x3a, 0xc8, 0x47, 0x2e, 0x3a, 0x97, 0xfc, 0x72, 0x39, 0xc8, 0x41, 0xf2, 0x26, 0x71, 0x0c, 0x99, 0x8a, 0xa9, 0x9b, 0xc5, 0x31, 0xa4, 0x8f, 0x7c, 0xf4, 0x03, 0x11, 0x6e, 0x79, 0x83, 0x3c, 0x28, 0x7d, 0x8a, 0x82, 0xdf, 0xdf, 0x06, 0x79, 0x98, 0x89, 0xce, 0x25, 0xbf, 0x9a, 0x0d, 0x72, 0x90, 0x16, 0x1d, 0xec, 0xa1, 0xb9, 0xc8, 0x1b, 0x57, 0x84, 0x93, 0x3f, 0x8a, 0x4e, 0xe2, 0xbe, 0x96, 0x15, 0xd0, 0xd7, 0x10, 0xee, 0x77, 0xef, 0x8a, 0xa0, 0x9f, 0x17, 0xe9, 0x63, 0xbc, 0xaa, 0x15, 0xbe, 0x40, 0x0f, 0xfd, 0xa4, 0xcf, 0xf5, 0x2b, 0x82, 0x7f, 0x5a, 0x8e, 0x7e, 0xd4, 0x77, 0xb7, 0x02, 0xf6, 0x9f, 0x68, 0xa1, 0xff, 0xd5, 0x2b, 0x82, 0xfc, 0x07, 0x39, 0xf2, 0x18, 0x6f, 0x73, 0x43, 0x05, 0x23, 0x5f, 0xc0, 0x44, 0xe6, 0xe4, 0xa0, 0x76, 0x0e, 0x35, 0x1b, 0xb8, 0x5b, 0x89, 0x1e, 0x0a, 0xc3, 0x79, 0x58, 0xef, 0xef, 0x21, 0x33, 0xdc, 0x48, 0x91, 0x2f, 0x44, 0xa2, 0x83, 0xd4, 0xf0, 0x41, 0xf4, 0xf1, 0xa0, 0x0e, 0x1f, 0x44, 0x1f, 0x0f, 0x13, 0x83, 0x3c, 0x40, 0x17, 0x0b, 0x5e, 0x4f, 0x44, 0x17, 0xd3, 0x43, 0x86, 0x21, 0xdf, 0x3b, 0x44, 0x0f, 0x33, 0x03, 0x3c, 0x2c, 0x96, 0xd0, 0x0c, 0x3f, 0x04, 0xce, 0xa0, 0xc9, 0x95, 0x73, 0x17, 0xaa, 0x2b, 0xf9, 0x04, 0xf9, 0x71, 0xd5, 0x5a, 0xf9, 0xcb, 0x9f, 0xf3, 0x8a, 0x3a, 0x8b, 0xa6, 0x4f, 0x55, 0x57, 0xac, 0x73, 0x67, 0xd7, 0xf2, 0xc9, 0xd5, 0x0c, 0x3d, 0xae, 0xf6, 0xda, 0x4d, 0xb7, 0x7d, 0x78, 0x19, 0xcd, 0x8a, 0x07, 0xaf, 0x28, 0x07, 0x48, 0x4d, 0x73, 0x07, 0x37, 0x94, 0xd5, 0x0b, 0x7f, 0xfd, 0x53, 0xa8, 0x7e, 0x97, 0xbc, 0xfa, 0xdd, 0xec, 0xd5, 0x97, 0x9a, 0xed, 0xae, 0xbd, 0xdb, 0xae, 0x39, 0xde, 0x5f, 0x4f, 0x78, 0xd6, 0xce, 0x92, 0x63, 0x37, 0x6a, 0x5b, 0x7b, 0x4b, 0xfd, 0xfe, 0xd0, 0x62, 0x73, 0x0a, 0x3e, 0xf9, 0x21, 0x00, 0x00, 0xff, 0xff, 0x64, 0x49, 0xbf, 0xf0, 0x8b, 0x21, 0x00, 0x00, } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto3_20160225_2fc053c5/test.proto000066400000000000000000000105411411250152500311510ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package google.golang.org.proto3_20160225; option go_package = "google.golang.org/protobuf/internal/testprotos/legacy/proto3_20160225_2fc053c5"; enum SiblingEnum { ALPHA = 0; BRAVO = 10; CHARLIE = 200; } message SiblingMessage { string f1 = 1; repeated string f2 = 2; Message f3 = 3; } message Message { enum ChildEnum { ALPHA = 0; BRAVO = 1; CHARLIE = 2; } message ChildMessage { string f1 = 1; repeated string f2 = 2; Message f3 = 3; } // Optional fields. bool optional_bool = 100; int32 optional_int32 = 101; sint32 optional_sint32 = 102; uint32 optional_uint32 = 103; int64 optional_int64 = 104; sint64 optional_sint64 = 105; uint64 optional_uint64 = 106; fixed32 optional_fixed32 = 107; sfixed32 optional_sfixed32 = 108; float optional_float = 109; fixed64 optional_fixed64 = 110; sfixed64 optional_sfixed64 = 111; double optional_double = 112; string optional_string = 113; bytes optional_bytes = 114; ChildEnum optional_child_enum = 115; ChildMessage optional_child_message = 116; SiblingEnum optional_sibling_enum = 117; SiblingMessage optional_sibling_message = 118; // Repeated fields. repeated bool repeated_bool = 200; repeated int32 repeated_int32 = 201; repeated sint32 repeated_sint32 = 202; repeated uint32 repeated_uint32 = 203; repeated int64 repeated_int64 = 204; repeated sint64 repeated_sint64 = 205; repeated uint64 repeated_uint64 = 206; repeated fixed32 repeated_fixed32 = 207; repeated sfixed32 repeated_sfixed32 = 208; repeated float repeated_float = 209; repeated fixed64 repeated_fixed64 = 210; repeated sfixed64 repeated_sfixed64 = 211; repeated double repeated_double = 212; repeated string repeated_string = 213; repeated bytes repeated_bytes = 214; repeated ChildEnum repeated_child_enum = 215; repeated ChildMessage repeated_child_message = 216; repeated SiblingEnum repeated_sibling_enum = 217; repeated SiblingMessage repeated_sibling_message = 218; // Map fields. map map_bool_bool = 300; map map_bool_int32 = 301; map map_bool_sint32 = 302; map map_bool_uint32 = 303; map map_bool_int64 = 304; map map_bool_sint64 = 305; map map_bool_uint64 = 306; map map_bool_fixed32 = 307; map map_bool_sfixed32 = 308; map map_bool_float = 309; map map_bool_fixed64 = 310; map map_bool_sfixed64 = 311; map map_bool_double = 312; map map_bool_string = 313; map map_bool_bytes = 314; map map_bool_child_enum = 315; map map_bool_child_message = 316; map map_bool_sibling_enum = 317; map map_bool_sibling_message = 318; map map_int32_bool = 319; map map_sint32_bool = 320; map map_uint32_bool = 321; map map_int64_bool = 322; map map_sint64_bool = 323; map map_uint64_bool = 324; map map_fixed32_bool = 325; map map_string_bool = 326; // Oneof fields. oneof oneof_union { bool oneof_bool = 400; int32 oneof_int32 = 401; sint32 oneof_sint32 = 402; uint32 oneof_uint32 = 403; int64 oneof_int64 = 404; sint64 oneof_sint64 = 405; uint64 oneof_uint64 = 406; fixed32 oneof_fixed32 = 407; sfixed32 oneof_sfixed32 = 408; float oneof_float = 409; fixed64 oneof_fixed64 = 410; sfixed64 oneof_sfixed64 = 411; double oneof_double = 412; string oneof_string = 413; bytes oneof_bytes = 414; ChildEnum oneof_child_enum = 415; ChildMessage oneof_child_message = 416; SiblingEnum oneof_sibling_enum = 417; SiblingMessage oneof_sibling_message = 418; string oneof_string1 = 419; string oneof_string2 = 420; string oneof_string3 = 421; } } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto3_20160519_a4ab9ec5/000077500000000000000000000000001411250152500272555ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto3_20160519_a4ab9ec5/test.pb.go000066400000000000000000001472121411250152500311720ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. // source: proto3_20160519_a4ab9ec5/test.proto // DO NOT EDIT! /* Package proto3_20160519_a4ab9ec5 is a generated protocol buffer package. It is generated from these files: proto3_20160519_a4ab9ec5/test.proto It has these top-level messages: SiblingMessage Message */ package proto3_20160519_a4ab9ec5 import proto "google.golang.org/protobuf/internal/protolegacy" import fmt "fmt" import math "math" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. const _ = proto.ProtoPackageIsVersion1 type SiblingEnum int32 const ( SiblingEnum_ALPHA SiblingEnum = 0 SiblingEnum_BRAVO SiblingEnum = 10 SiblingEnum_CHARLIE SiblingEnum = 200 ) var SiblingEnum_name = map[int32]string{ 0: "ALPHA", 10: "BRAVO", 200: "CHARLIE", } var SiblingEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 10, "CHARLIE": 200, } func (x SiblingEnum) String() string { return proto.EnumName(SiblingEnum_name, int32(x)) } func (SiblingEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } type Message_ChildEnum int32 const ( Message_ALPHA Message_ChildEnum = 0 Message_BRAVO Message_ChildEnum = 1 Message_CHARLIE Message_ChildEnum = 2 ) var Message_ChildEnum_name = map[int32]string{ 0: "ALPHA", 1: "BRAVO", 2: "CHARLIE", } var Message_ChildEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 1, "CHARLIE": 2, } func (x Message_ChildEnum) String() string { return proto.EnumName(Message_ChildEnum_name, int32(x)) } func (Message_ChildEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 0} } type SiblingMessage struct { F1 string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 []string `protobuf:"bytes,2,rep,name=f2" json:"f2,omitempty"` F3 *Message `protobuf:"bytes,3,opt,name=f3" json:"f3,omitempty"` } func (m *SiblingMessage) Reset() { *m = SiblingMessage{} } func (m *SiblingMessage) String() string { return proto.CompactTextString(m) } func (*SiblingMessage) ProtoMessage() {} func (*SiblingMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } func (m *SiblingMessage) GetF3() *Message { if m != nil { return m.F3 } return nil } type Message struct { // Optional fields. OptionalBool bool `protobuf:"varint,100,opt,name=optional_bool,json=optionalBool" json:"optional_bool,omitempty"` OptionalInt32 int32 `protobuf:"varint,101,opt,name=optional_int32,json=optionalInt32" json:"optional_int32,omitempty"` OptionalSint32 int32 `protobuf:"zigzag32,102,opt,name=optional_sint32,json=optionalSint32" json:"optional_sint32,omitempty"` OptionalUint32 uint32 `protobuf:"varint,103,opt,name=optional_uint32,json=optionalUint32" json:"optional_uint32,omitempty"` OptionalInt64 int64 `protobuf:"varint,104,opt,name=optional_int64,json=optionalInt64" json:"optional_int64,omitempty"` OptionalSint64 int64 `protobuf:"zigzag64,105,opt,name=optional_sint64,json=optionalSint64" json:"optional_sint64,omitempty"` OptionalUint64 uint64 `protobuf:"varint,106,opt,name=optional_uint64,json=optionalUint64" json:"optional_uint64,omitempty"` OptionalFixed32 uint32 `protobuf:"fixed32,107,opt,name=optional_fixed32,json=optionalFixed32" json:"optional_fixed32,omitempty"` OptionalSfixed32 int32 `protobuf:"fixed32,108,opt,name=optional_sfixed32,json=optionalSfixed32" json:"optional_sfixed32,omitempty"` OptionalFloat float32 `protobuf:"fixed32,109,opt,name=optional_float,json=optionalFloat" json:"optional_float,omitempty"` OptionalFixed64 uint64 `protobuf:"fixed64,110,opt,name=optional_fixed64,json=optionalFixed64" json:"optional_fixed64,omitempty"` OptionalSfixed64 int64 `protobuf:"fixed64,111,opt,name=optional_sfixed64,json=optionalSfixed64" json:"optional_sfixed64,omitempty"` OptionalDouble float64 `protobuf:"fixed64,112,opt,name=optional_double,json=optionalDouble" json:"optional_double,omitempty"` OptionalString string `protobuf:"bytes,113,opt,name=optional_string,json=optionalString" json:"optional_string,omitempty"` OptionalBytes []byte `protobuf:"bytes,114,opt,name=optional_bytes,json=optionalBytes,proto3" json:"optional_bytes,omitempty"` OptionalChildEnum Message_ChildEnum `protobuf:"varint,115,opt,name=optional_child_enum,json=optionalChildEnum,enum=google.golang.org.proto3_20160519.Message_ChildEnum" json:"optional_child_enum,omitempty"` OptionalChildMessage *Message_ChildMessage `protobuf:"bytes,116,opt,name=optional_child_message,json=optionalChildMessage" json:"optional_child_message,omitempty"` OptionalSiblingEnum SiblingEnum `protobuf:"varint,117,opt,name=optional_sibling_enum,json=optionalSiblingEnum,enum=google.golang.org.proto3_20160519.SiblingEnum" json:"optional_sibling_enum,omitempty"` OptionalSiblingMessage *SiblingMessage `protobuf:"bytes,118,opt,name=optional_sibling_message,json=optionalSiblingMessage" json:"optional_sibling_message,omitempty"` // Repeated fields. RepeatedBool []bool `protobuf:"varint,200,rep,name=repeated_bool,json=repeatedBool" json:"repeated_bool,omitempty"` RepeatedInt32 []int32 `protobuf:"varint,201,rep,name=repeated_int32,json=repeatedInt32" json:"repeated_int32,omitempty"` RepeatedSint32 []int32 `protobuf:"zigzag32,202,rep,name=repeated_sint32,json=repeatedSint32" json:"repeated_sint32,omitempty"` RepeatedUint32 []uint32 `protobuf:"varint,203,rep,name=repeated_uint32,json=repeatedUint32" json:"repeated_uint32,omitempty"` RepeatedInt64 []int64 `protobuf:"varint,204,rep,name=repeated_int64,json=repeatedInt64" json:"repeated_int64,omitempty"` RepeatedSint64 []int64 `protobuf:"zigzag64,205,rep,name=repeated_sint64,json=repeatedSint64" json:"repeated_sint64,omitempty"` RepeatedUint64 []uint64 `protobuf:"varint,206,rep,name=repeated_uint64,json=repeatedUint64" json:"repeated_uint64,omitempty"` RepeatedFixed32 []uint32 `protobuf:"fixed32,207,rep,name=repeated_fixed32,json=repeatedFixed32" json:"repeated_fixed32,omitempty"` RepeatedSfixed32 []int32 `protobuf:"fixed32,208,rep,name=repeated_sfixed32,json=repeatedSfixed32" json:"repeated_sfixed32,omitempty"` RepeatedFloat []float32 `protobuf:"fixed32,209,rep,name=repeated_float,json=repeatedFloat" json:"repeated_float,omitempty"` RepeatedFixed64 []uint64 `protobuf:"fixed64,210,rep,name=repeated_fixed64,json=repeatedFixed64" json:"repeated_fixed64,omitempty"` RepeatedSfixed64 []int64 `protobuf:"fixed64,211,rep,name=repeated_sfixed64,json=repeatedSfixed64" json:"repeated_sfixed64,omitempty"` RepeatedDouble []float64 `protobuf:"fixed64,212,rep,name=repeated_double,json=repeatedDouble" json:"repeated_double,omitempty"` RepeatedString []string `protobuf:"bytes,213,rep,name=repeated_string,json=repeatedString" json:"repeated_string,omitempty"` RepeatedBytes [][]byte `protobuf:"bytes,214,rep,name=repeated_bytes,json=repeatedBytes,proto3" json:"repeated_bytes,omitempty"` RepeatedChildEnum []Message_ChildEnum `protobuf:"varint,215,rep,name=repeated_child_enum,json=repeatedChildEnum,enum=google.golang.org.proto3_20160519.Message_ChildEnum" json:"repeated_child_enum,omitempty"` RepeatedChildMessage []*Message_ChildMessage `protobuf:"bytes,216,rep,name=repeated_child_message,json=repeatedChildMessage" json:"repeated_child_message,omitempty"` RepeatedSiblingEnum []SiblingEnum `protobuf:"varint,217,rep,name=repeated_sibling_enum,json=repeatedSiblingEnum,enum=google.golang.org.proto3_20160519.SiblingEnum" json:"repeated_sibling_enum,omitempty"` RepeatedSiblingMessage []*SiblingMessage `protobuf:"bytes,218,rep,name=repeated_sibling_message,json=repeatedSiblingMessage" json:"repeated_sibling_message,omitempty"` // Map fields. MapBoolBool map[bool]bool `protobuf:"bytes,300,rep,name=map_bool_bool,json=mapBoolBool" json:"map_bool_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolInt32 map[bool]int32 `protobuf:"bytes,301,rep,name=map_bool_int32,json=mapBoolInt32" json:"map_bool_int32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolSint32 map[bool]int32 `protobuf:"bytes,302,rep,name=map_bool_sint32,json=mapBoolSint32" json:"map_bool_sint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` MapBoolUint32 map[bool]uint32 `protobuf:"bytes,303,rep,name=map_bool_uint32,json=mapBoolUint32" json:"map_bool_uint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolInt64 map[bool]int64 `protobuf:"bytes,304,rep,name=map_bool_int64,json=mapBoolInt64" json:"map_bool_int64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolSint64 map[bool]int64 `protobuf:"bytes,305,rep,name=map_bool_sint64,json=mapBoolSint64" json:"map_bool_sint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` MapBoolUint64 map[bool]uint64 `protobuf:"bytes,306,rep,name=map_bool_uint64,json=mapBoolUint64" json:"map_bool_uint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolFixed32 map[bool]uint32 `protobuf:"bytes,307,rep,name=map_bool_fixed32,json=mapBoolFixed32" json:"map_bool_fixed32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolSfixed32 map[bool]int32 `protobuf:"bytes,308,rep,name=map_bool_sfixed32,json=mapBoolSfixed32" json:"map_bool_sfixed32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolFloat map[bool]float32 `protobuf:"bytes,309,rep,name=map_bool_float,json=mapBoolFloat" json:"map_bool_float,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolFixed64 map[bool]uint64 `protobuf:"bytes,310,rep,name=map_bool_fixed64,json=mapBoolFixed64" json:"map_bool_fixed64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolSfixed64 map[bool]int64 `protobuf:"bytes,311,rep,name=map_bool_sfixed64,json=mapBoolSfixed64" json:"map_bool_sfixed64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolDouble map[bool]float64 `protobuf:"bytes,312,rep,name=map_bool_double,json=mapBoolDouble" json:"map_bool_double,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolString map[bool]string `protobuf:"bytes,313,rep,name=map_bool_string,json=mapBoolString" json:"map_bool_string,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolBytes map[bool][]byte `protobuf:"bytes,314,rep,name=map_bool_bytes,json=mapBoolBytes" json:"map_bool_bytes,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value,proto3"` MapBoolChildEnum map[bool]Message_ChildEnum `protobuf:"bytes,315,rep,name=map_bool_child_enum,json=mapBoolChildEnum" json:"map_bool_child_enum,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.golang.org.proto3_20160519.Message_ChildEnum"` MapBoolChildMessage map[bool]*Message_ChildMessage `protobuf:"bytes,316,rep,name=map_bool_child_message,json=mapBoolChildMessage" json:"map_bool_child_message,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolSiblingEnum map[bool]SiblingEnum `protobuf:"bytes,317,rep,name=map_bool_sibling_enum,json=mapBoolSiblingEnum" json:"map_bool_sibling_enum,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.golang.org.proto3_20160519.SiblingEnum"` MapBoolSiblingMessage map[bool]*SiblingMessage `protobuf:"bytes,318,rep,name=map_bool_sibling_message,json=mapBoolSiblingMessage" json:"map_bool_sibling_message,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapInt32Bool map[int32]bool `protobuf:"bytes,319,rep,name=map_int32_bool,json=mapInt32Bool" json:"map_int32_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapSint32Bool map[int32]bool `protobuf:"bytes,320,rep,name=map_sint32_bool,json=mapSint32Bool" json:"map_sint32_bool,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint32Bool map[uint32]bool `protobuf:"bytes,321,rep,name=map_uint32_bool,json=mapUint32Bool" json:"map_uint32_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapInt64Bool map[int64]bool `protobuf:"bytes,322,rep,name=map_int64_bool,json=mapInt64Bool" json:"map_int64_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapSint64Bool map[int64]bool `protobuf:"bytes,323,rep,name=map_sint64_bool,json=mapSint64Bool" json:"map_sint64_bool,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint64Bool map[uint64]bool `protobuf:"bytes,324,rep,name=map_uint64_bool,json=mapUint64Bool" json:"map_uint64_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapFixed32Bool map[uint32]bool `protobuf:"bytes,325,rep,name=map_fixed32_bool,json=mapFixed32Bool" json:"map_fixed32_bool,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapStringBool map[string]bool `protobuf:"bytes,326,rep,name=map_string_bool,json=mapStringBool" json:"map_string_bool,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // Oneof fields. // // Types that are valid to be assigned to OneofUnion: // *Message_OneofBool // *Message_OneofInt32 // *Message_OneofSint32 // *Message_OneofUint32 // *Message_OneofInt64 // *Message_OneofSint64 // *Message_OneofUint64 // *Message_OneofFixed32 // *Message_OneofSfixed32 // *Message_OneofFloat // *Message_OneofFixed64 // *Message_OneofSfixed64 // *Message_OneofDouble // *Message_OneofString // *Message_OneofBytes // *Message_OneofChildEnum // *Message_OneofChildMessage // *Message_OneofSiblingEnum // *Message_OneofSiblingMessage // *Message_OneofString1 // *Message_OneofString2 // *Message_OneofString3 OneofUnion isMessage_OneofUnion `protobuf_oneof:"oneof_union"` } func (m *Message) Reset() { *m = Message{} } func (m *Message) String() string { return proto.CompactTextString(m) } func (*Message) ProtoMessage() {} func (*Message) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } type isMessage_OneofUnion interface{ isMessage_OneofUnion() } type Message_OneofBool struct { OneofBool bool `protobuf:"varint,400,opt,name=oneof_bool,json=oneofBool,oneof"` } type Message_OneofInt32 struct { OneofInt32 int32 `protobuf:"varint,401,opt,name=oneof_int32,json=oneofInt32,oneof"` } type Message_OneofSint32 struct { OneofSint32 int32 `protobuf:"zigzag32,402,opt,name=oneof_sint32,json=oneofSint32,oneof"` } type Message_OneofUint32 struct { OneofUint32 uint32 `protobuf:"varint,403,opt,name=oneof_uint32,json=oneofUint32,oneof"` } type Message_OneofInt64 struct { OneofInt64 int64 `protobuf:"varint,404,opt,name=oneof_int64,json=oneofInt64,oneof"` } type Message_OneofSint64 struct { OneofSint64 int64 `protobuf:"zigzag64,405,opt,name=oneof_sint64,json=oneofSint64,oneof"` } type Message_OneofUint64 struct { OneofUint64 uint64 `protobuf:"varint,406,opt,name=oneof_uint64,json=oneofUint64,oneof"` } type Message_OneofFixed32 struct { OneofFixed32 uint32 `protobuf:"fixed32,407,opt,name=oneof_fixed32,json=oneofFixed32,oneof"` } type Message_OneofSfixed32 struct { OneofSfixed32 int32 `protobuf:"fixed32,408,opt,name=oneof_sfixed32,json=oneofSfixed32,oneof"` } type Message_OneofFloat struct { OneofFloat float32 `protobuf:"fixed32,409,opt,name=oneof_float,json=oneofFloat,oneof"` } type Message_OneofFixed64 struct { OneofFixed64 uint64 `protobuf:"fixed64,410,opt,name=oneof_fixed64,json=oneofFixed64,oneof"` } type Message_OneofSfixed64 struct { OneofSfixed64 int64 `protobuf:"fixed64,411,opt,name=oneof_sfixed64,json=oneofSfixed64,oneof"` } type Message_OneofDouble struct { OneofDouble float64 `protobuf:"fixed64,412,opt,name=oneof_double,json=oneofDouble,oneof"` } type Message_OneofString struct { OneofString string `protobuf:"bytes,413,opt,name=oneof_string,json=oneofString,oneof"` } type Message_OneofBytes struct { OneofBytes []byte `protobuf:"bytes,414,opt,name=oneof_bytes,json=oneofBytes,proto3,oneof"` } type Message_OneofChildEnum struct { OneofChildEnum Message_ChildEnum `protobuf:"varint,415,opt,name=oneof_child_enum,json=oneofChildEnum,enum=google.golang.org.proto3_20160519.Message_ChildEnum,oneof"` } type Message_OneofChildMessage struct { OneofChildMessage *Message_ChildMessage `protobuf:"bytes,416,opt,name=oneof_child_message,json=oneofChildMessage,oneof"` } type Message_OneofSiblingEnum struct { OneofSiblingEnum SiblingEnum `protobuf:"varint,417,opt,name=oneof_sibling_enum,json=oneofSiblingEnum,enum=google.golang.org.proto3_20160519.SiblingEnum,oneof"` } type Message_OneofSiblingMessage struct { OneofSiblingMessage *SiblingMessage `protobuf:"bytes,418,opt,name=oneof_sibling_message,json=oneofSiblingMessage,oneof"` } type Message_OneofString1 struct { OneofString1 string `protobuf:"bytes,419,opt,name=oneof_string1,json=oneofString1,oneof"` } type Message_OneofString2 struct { OneofString2 string `protobuf:"bytes,420,opt,name=oneof_string2,json=oneofString2,oneof"` } type Message_OneofString3 struct { OneofString3 string `protobuf:"bytes,421,opt,name=oneof_string3,json=oneofString3,oneof"` } func (*Message_OneofBool) isMessage_OneofUnion() {} func (*Message_OneofInt32) isMessage_OneofUnion() {} func (*Message_OneofSint32) isMessage_OneofUnion() {} func (*Message_OneofUint32) isMessage_OneofUnion() {} func (*Message_OneofInt64) isMessage_OneofUnion() {} func (*Message_OneofSint64) isMessage_OneofUnion() {} func (*Message_OneofUint64) isMessage_OneofUnion() {} func (*Message_OneofFixed32) isMessage_OneofUnion() {} func (*Message_OneofSfixed32) isMessage_OneofUnion() {} func (*Message_OneofFloat) isMessage_OneofUnion() {} func (*Message_OneofFixed64) isMessage_OneofUnion() {} func (*Message_OneofSfixed64) isMessage_OneofUnion() {} func (*Message_OneofDouble) isMessage_OneofUnion() {} func (*Message_OneofString) isMessage_OneofUnion() {} func (*Message_OneofBytes) isMessage_OneofUnion() {} func (*Message_OneofChildEnum) isMessage_OneofUnion() {} func (*Message_OneofChildMessage) isMessage_OneofUnion() {} func (*Message_OneofSiblingEnum) isMessage_OneofUnion() {} func (*Message_OneofSiblingMessage) isMessage_OneofUnion() {} func (*Message_OneofString1) isMessage_OneofUnion() {} func (*Message_OneofString2) isMessage_OneofUnion() {} func (*Message_OneofString3) isMessage_OneofUnion() {} func (m *Message) GetOneofUnion() isMessage_OneofUnion { if m != nil { return m.OneofUnion } return nil } func (m *Message) GetOptionalChildMessage() *Message_ChildMessage { if m != nil { return m.OptionalChildMessage } return nil } func (m *Message) GetOptionalSiblingMessage() *SiblingMessage { if m != nil { return m.OptionalSiblingMessage } return nil } func (m *Message) GetRepeatedChildMessage() []*Message_ChildMessage { if m != nil { return m.RepeatedChildMessage } return nil } func (m *Message) GetRepeatedSiblingMessage() []*SiblingMessage { if m != nil { return m.RepeatedSiblingMessage } return nil } func (m *Message) GetMapBoolBool() map[bool]bool { if m != nil { return m.MapBoolBool } return nil } func (m *Message) GetMapBoolInt32() map[bool]int32 { if m != nil { return m.MapBoolInt32 } return nil } func (m *Message) GetMapBoolSint32() map[bool]int32 { if m != nil { return m.MapBoolSint32 } return nil } func (m *Message) GetMapBoolUint32() map[bool]uint32 { if m != nil { return m.MapBoolUint32 } return nil } func (m *Message) GetMapBoolInt64() map[bool]int64 { if m != nil { return m.MapBoolInt64 } return nil } func (m *Message) GetMapBoolSint64() map[bool]int64 { if m != nil { return m.MapBoolSint64 } return nil } func (m *Message) GetMapBoolUint64() map[bool]uint64 { if m != nil { return m.MapBoolUint64 } return nil } func (m *Message) GetMapBoolFixed32() map[bool]uint32 { if m != nil { return m.MapBoolFixed32 } return nil } func (m *Message) GetMapBoolSfixed32() map[bool]int32 { if m != nil { return m.MapBoolSfixed32 } return nil } func (m *Message) GetMapBoolFloat() map[bool]float32 { if m != nil { return m.MapBoolFloat } return nil } func (m *Message) GetMapBoolFixed64() map[bool]uint64 { if m != nil { return m.MapBoolFixed64 } return nil } func (m *Message) GetMapBoolSfixed64() map[bool]int64 { if m != nil { return m.MapBoolSfixed64 } return nil } func (m *Message) GetMapBoolDouble() map[bool]float64 { if m != nil { return m.MapBoolDouble } return nil } func (m *Message) GetMapBoolString() map[bool]string { if m != nil { return m.MapBoolString } return nil } func (m *Message) GetMapBoolBytes() map[bool][]byte { if m != nil { return m.MapBoolBytes } return nil } func (m *Message) GetMapBoolChildEnum() map[bool]Message_ChildEnum { if m != nil { return m.MapBoolChildEnum } return nil } func (m *Message) GetMapBoolChildMessage() map[bool]*Message_ChildMessage { if m != nil { return m.MapBoolChildMessage } return nil } func (m *Message) GetMapBoolSiblingEnum() map[bool]SiblingEnum { if m != nil { return m.MapBoolSiblingEnum } return nil } func (m *Message) GetMapBoolSiblingMessage() map[bool]*SiblingMessage { if m != nil { return m.MapBoolSiblingMessage } return nil } func (m *Message) GetMapInt32Bool() map[int32]bool { if m != nil { return m.MapInt32Bool } return nil } func (m *Message) GetMapSint32Bool() map[int32]bool { if m != nil { return m.MapSint32Bool } return nil } func (m *Message) GetMapUint32Bool() map[uint32]bool { if m != nil { return m.MapUint32Bool } return nil } func (m *Message) GetMapInt64Bool() map[int64]bool { if m != nil { return m.MapInt64Bool } return nil } func (m *Message) GetMapSint64Bool() map[int64]bool { if m != nil { return m.MapSint64Bool } return nil } func (m *Message) GetMapUint64Bool() map[uint64]bool { if m != nil { return m.MapUint64Bool } return nil } func (m *Message) GetMapFixed32Bool() map[uint32]bool { if m != nil { return m.MapFixed32Bool } return nil } func (m *Message) GetMapStringBool() map[string]bool { if m != nil { return m.MapStringBool } return nil } func (m *Message) GetOneofBool() bool { if x, ok := m.GetOneofUnion().(*Message_OneofBool); ok { return x.OneofBool } return false } func (m *Message) GetOneofInt32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofInt32); ok { return x.OneofInt32 } return 0 } func (m *Message) GetOneofSint32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSint32); ok { return x.OneofSint32 } return 0 } func (m *Message) GetOneofUint32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofUint32); ok { return x.OneofUint32 } return 0 } func (m *Message) GetOneofInt64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofInt64); ok { return x.OneofInt64 } return 0 } func (m *Message) GetOneofSint64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSint64); ok { return x.OneofSint64 } return 0 } func (m *Message) GetOneofUint64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofUint64); ok { return x.OneofUint64 } return 0 } func (m *Message) GetOneofFixed32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed32); ok { return x.OneofFixed32 } return 0 } func (m *Message) GetOneofSfixed32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed32); ok { return x.OneofSfixed32 } return 0 } func (m *Message) GetOneofFloat() float32 { if x, ok := m.GetOneofUnion().(*Message_OneofFloat); ok { return x.OneofFloat } return 0 } func (m *Message) GetOneofFixed64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed64); ok { return x.OneofFixed64 } return 0 } func (m *Message) GetOneofSfixed64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed64); ok { return x.OneofSfixed64 } return 0 } func (m *Message) GetOneofDouble() float64 { if x, ok := m.GetOneofUnion().(*Message_OneofDouble); ok { return x.OneofDouble } return 0 } func (m *Message) GetOneofString() string { if x, ok := m.GetOneofUnion().(*Message_OneofString); ok { return x.OneofString } return "" } func (m *Message) GetOneofBytes() []byte { if x, ok := m.GetOneofUnion().(*Message_OneofBytes); ok { return x.OneofBytes } return nil } func (m *Message) GetOneofChildEnum() Message_ChildEnum { if x, ok := m.GetOneofUnion().(*Message_OneofChildEnum); ok { return x.OneofChildEnum } return Message_ALPHA } func (m *Message) GetOneofChildMessage() *Message_ChildMessage { if x, ok := m.GetOneofUnion().(*Message_OneofChildMessage); ok { return x.OneofChildMessage } return nil } func (m *Message) GetOneofSiblingEnum() SiblingEnum { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingEnum); ok { return x.OneofSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetOneofSiblingMessage() *SiblingMessage { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingMessage); ok { return x.OneofSiblingMessage } return nil } func (m *Message) GetOneofString1() string { if x, ok := m.GetOneofUnion().(*Message_OneofString1); ok { return x.OneofString1 } return "" } func (m *Message) GetOneofString2() string { if x, ok := m.GetOneofUnion().(*Message_OneofString2); ok { return x.OneofString2 } return "" } func (m *Message) GetOneofString3() string { if x, ok := m.GetOneofUnion().(*Message_OneofString3); ok { return x.OneofString3 } return "" } // XXX_OneofFuncs is for the internal use of the proto package. func (*Message) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { return _Message_OneofMarshaler, _Message_OneofUnmarshaler, _Message_OneofSizer, []interface{}{ (*Message_OneofBool)(nil), (*Message_OneofInt32)(nil), (*Message_OneofSint32)(nil), (*Message_OneofUint32)(nil), (*Message_OneofInt64)(nil), (*Message_OneofSint64)(nil), (*Message_OneofUint64)(nil), (*Message_OneofFixed32)(nil), (*Message_OneofSfixed32)(nil), (*Message_OneofFloat)(nil), (*Message_OneofFixed64)(nil), (*Message_OneofSfixed64)(nil), (*Message_OneofDouble)(nil), (*Message_OneofString)(nil), (*Message_OneofBytes)(nil), (*Message_OneofChildEnum)(nil), (*Message_OneofChildMessage)(nil), (*Message_OneofSiblingEnum)(nil), (*Message_OneofSiblingMessage)(nil), (*Message_OneofString1)(nil), (*Message_OneofString2)(nil), (*Message_OneofString3)(nil), } } func _Message_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { m := msg.(*Message) // oneof_union switch x := m.OneofUnion.(type) { case *Message_OneofBool: t := uint64(0) if x.OneofBool { t = 1 } b.EncodeVarint(400<<3 | proto.WireVarint) b.EncodeVarint(t) case *Message_OneofInt32: b.EncodeVarint(401<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofInt32)) case *Message_OneofSint32: b.EncodeVarint(402<<3 | proto.WireVarint) b.EncodeZigzag32(uint64(x.OneofSint32)) case *Message_OneofUint32: b.EncodeVarint(403<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofUint32)) case *Message_OneofInt64: b.EncodeVarint(404<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofInt64)) case *Message_OneofSint64: b.EncodeVarint(405<<3 | proto.WireVarint) b.EncodeZigzag64(uint64(x.OneofSint64)) case *Message_OneofUint64: b.EncodeVarint(406<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofUint64)) case *Message_OneofFixed32: b.EncodeVarint(407<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofFixed32)) case *Message_OneofSfixed32: b.EncodeVarint(408<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofSfixed32)) case *Message_OneofFloat: b.EncodeVarint(409<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(math.Float32bits(x.OneofFloat))) case *Message_OneofFixed64: b.EncodeVarint(410<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofFixed64)) case *Message_OneofSfixed64: b.EncodeVarint(411<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofSfixed64)) case *Message_OneofDouble: b.EncodeVarint(412<<3 | proto.WireFixed64) b.EncodeFixed64(math.Float64bits(x.OneofDouble)) case *Message_OneofString: b.EncodeVarint(413<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString) case *Message_OneofBytes: b.EncodeVarint(414<<3 | proto.WireBytes) b.EncodeRawBytes(x.OneofBytes) case *Message_OneofChildEnum: b.EncodeVarint(415<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofChildEnum)) case *Message_OneofChildMessage: b.EncodeVarint(416<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofChildMessage); err != nil { return err } case *Message_OneofSiblingEnum: b.EncodeVarint(417<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofSiblingEnum)) case *Message_OneofSiblingMessage: b.EncodeVarint(418<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofSiblingMessage); err != nil { return err } case *Message_OneofString1: b.EncodeVarint(419<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString1) case *Message_OneofString2: b.EncodeVarint(420<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString2) case *Message_OneofString3: b.EncodeVarint(421<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString3) case nil: default: return fmt.Errorf("Message.OneofUnion has unexpected type %T", x) } return nil } func _Message_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { m := msg.(*Message) switch tag { case 400: // oneof_union.oneof_bool if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofBool{x != 0} return true, err case 401: // oneof_union.oneof_int32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofInt32{int32(x)} return true, err case 402: // oneof_union.oneof_sint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag32() m.OneofUnion = &Message_OneofSint32{int32(x)} return true, err case 403: // oneof_union.oneof_uint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofUint32{uint32(x)} return true, err case 404: // oneof_union.oneof_int64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofInt64{int64(x)} return true, err case 405: // oneof_union.oneof_sint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag64() m.OneofUnion = &Message_OneofSint64{int64(x)} return true, err case 406: // oneof_union.oneof_uint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofUint64{x} return true, err case 407: // oneof_union.oneof_fixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofFixed32{uint32(x)} return true, err case 408: // oneof_union.oneof_sfixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofSfixed32{int32(x)} return true, err case 409: // oneof_union.oneof_float if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofFloat{math.Float32frombits(uint32(x))} return true, err case 410: // oneof_union.oneof_fixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofFixed64{x} return true, err case 411: // oneof_union.oneof_sfixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofSfixed64{int64(x)} return true, err case 412: // oneof_union.oneof_double if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofDouble{math.Float64frombits(x)} return true, err case 413: // oneof_union.oneof_string if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString{x} return true, err case 414: // oneof_union.oneof_bytes if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeRawBytes(true) m.OneofUnion = &Message_OneofBytes{x} return true, err case 415: // oneof_union.oneof_child_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofChildEnum{Message_ChildEnum(x)} return true, err case 416: // oneof_union.oneof_child_message if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(Message_ChildMessage) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofChildMessage{msg} return true, err case 417: // oneof_union.oneof_sibling_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofSiblingEnum{SiblingEnum(x)} return true, err case 418: // oneof_union.oneof_sibling_message if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(SiblingMessage) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofSiblingMessage{msg} return true, err case 419: // oneof_union.oneof_string1 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString1{x} return true, err case 420: // oneof_union.oneof_string2 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString2{x} return true, err case 421: // oneof_union.oneof_string3 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString3{x} return true, err default: return false, nil } } func _Message_OneofSizer(msg proto.Message) (n int) { m := msg.(*Message) // oneof_union switch x := m.OneofUnion.(type) { case *Message_OneofBool: n += proto.SizeVarint(400<<3 | proto.WireVarint) n += 1 case *Message_OneofInt32: n += proto.SizeVarint(401<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofInt32)) case *Message_OneofSint32: n += proto.SizeVarint(402<<3 | proto.WireVarint) n += proto.SizeVarint(uint64((uint32(x.OneofSint32) << 1) ^ uint32((int32(x.OneofSint32) >> 31)))) case *Message_OneofUint32: n += proto.SizeVarint(403<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofUint32)) case *Message_OneofInt64: n += proto.SizeVarint(404<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofInt64)) case *Message_OneofSint64: n += proto.SizeVarint(405<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(uint64(x.OneofSint64<<1) ^ uint64((int64(x.OneofSint64) >> 63)))) case *Message_OneofUint64: n += proto.SizeVarint(406<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofUint64)) case *Message_OneofFixed32: n += proto.SizeVarint(407<<3 | proto.WireFixed32) n += 4 case *Message_OneofSfixed32: n += proto.SizeVarint(408<<3 | proto.WireFixed32) n += 4 case *Message_OneofFloat: n += proto.SizeVarint(409<<3 | proto.WireFixed32) n += 4 case *Message_OneofFixed64: n += proto.SizeVarint(410<<3 | proto.WireFixed64) n += 8 case *Message_OneofSfixed64: n += proto.SizeVarint(411<<3 | proto.WireFixed64) n += 8 case *Message_OneofDouble: n += proto.SizeVarint(412<<3 | proto.WireFixed64) n += 8 case *Message_OneofString: n += proto.SizeVarint(413<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString))) n += len(x.OneofString) case *Message_OneofBytes: n += proto.SizeVarint(414<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofBytes))) n += len(x.OneofBytes) case *Message_OneofChildEnum: n += proto.SizeVarint(415<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofChildEnum)) case *Message_OneofChildMessage: s := proto.Size(x.OneofChildMessage) n += proto.SizeVarint(416<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case *Message_OneofSiblingEnum: n += proto.SizeVarint(417<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofSiblingEnum)) case *Message_OneofSiblingMessage: s := proto.Size(x.OneofSiblingMessage) n += proto.SizeVarint(418<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case *Message_OneofString1: n += proto.SizeVarint(419<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString1))) n += len(x.OneofString1) case *Message_OneofString2: n += proto.SizeVarint(420<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString2))) n += len(x.OneofString2) case *Message_OneofString3: n += proto.SizeVarint(421<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString3))) n += len(x.OneofString3) case nil: default: panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) } return n } type Message_ChildMessage struct { F1 string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 []string `protobuf:"bytes,2,rep,name=f2" json:"f2,omitempty"` F3 *Message `protobuf:"bytes,3,opt,name=f3" json:"f3,omitempty"` } func (m *Message_ChildMessage) Reset() { *m = Message_ChildMessage{} } func (m *Message_ChildMessage) String() string { return proto.CompactTextString(m) } func (*Message_ChildMessage) ProtoMessage() {} func (*Message_ChildMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 0} } func (m *Message_ChildMessage) GetF3() *Message { if m != nil { return m.F3 } return nil } func init() { proto.RegisterType((*SiblingMessage)(nil), "google.golang.org.proto3_20160519.SiblingMessage") proto.RegisterType((*Message)(nil), "google.golang.org.proto3_20160519.Message") proto.RegisterType((*Message_ChildMessage)(nil), "google.golang.org.proto3_20160519.Message.ChildMessage") proto.RegisterEnum("google.golang.org.proto3_20160519.SiblingEnum", SiblingEnum_name, SiblingEnum_value) proto.RegisterEnum("google.golang.org.proto3_20160519.Message_ChildEnum", Message_ChildEnum_name, Message_ChildEnum_value) } var fileDescriptor0 = []byte{ // 1947 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x9a, 0x57, 0x73, 0xdb, 0xca, 0x15, 0xc7, 0x09, 0x52, 0xc5, 0x5a, 0xb1, 0x82, 0x96, 0xb2, 0xa3, 0x27, 0x44, 0x76, 0x1c, 0xc4, 0xc9, 0x50, 0x26, 0x05, 0x23, 0xb1, 0x93, 0xd8, 0x96, 0x6c, 0x39, 0x74, 0xc6, 0x4e, 0x3c, 0xf0, 0x28, 0x0f, 0x79, 0x51, 0x48, 0x09, 0xa4, 0x69, 0x83, 0x84, 0x22, 0x92, 0x9e, 0x68, 0xf2, 0xe0, 0xaf, 0x90, 0xde, 0xeb, 0x2d, 0x6f, 0xb7, 0xf7, 0xde, 0x7d, 0xc7, 0xb7, 0xf7, 0xfa, 0x69, 0xee, 0x2c, 0x0e, 0xb6, 0x01, 0xa0, 0x49, 0x82, 0x73, 0x1f, 0x3c, 0x23, 0x1d, 0xfe, 0xf7, 0xfc, 0x78, 0x0e, 0xce, 0x9e, 0xb3, 0x0b, 0x0b, 0x1d, 0xda, 0xdd, 0x73, 0x7b, 0xee, 0xea, 0x56, 0xe5, 0x58, 0xd9, 0x3c, 0x76, 0xbc, 0x7c, 0x62, 0xab, 0x66, 0xd4, 0xea, 0x27, 0xec, 0xed, 0xe3, 0x2b, 0x3d, 0xbb, 0xdb, 0x2b, 0x79, 0x9f, 0xaa, 0xdf, 0x6c, 0xba, 0x6e, 0xd3, 0xb1, 0x4b, 0x4d, 0xd7, 0xa9, 0x75, 0x9a, 0x25, 0x77, 0xaf, 0x59, 0x0a, 0x2c, 0x5b, 0x76, 0x50, 0xf6, 0x4a, 0xab, 0xee, 0xb4, 0x3a, 0xcd, 0x4b, 0x76, 0xb7, 0x5b, 0x6b, 0xda, 0x6a, 0x16, 0x25, 0x1b, 0x65, 0xac, 0x68, 0x8a, 0x3e, 0x67, 0x25, 0x1b, 0x65, 0xef, 0xf7, 0x0a, 0x4e, 0x6a, 0x29, 0xef, 0xf7, 0x8a, 0x7a, 0x12, 0x25, 0x1b, 0xab, 0x38, 0xa5, 0x29, 0xfa, 0x7c, 0xe5, 0x68, 0x69, 0x28, 0xa1, 0xe4, 0xfb, 0xb5, 0x92, 0x8d, 0xd5, 0xe5, 0x5b, 0x67, 0xd0, 0x2c, 0xe5, 0x1c, 0x42, 0x19, 0x77, 0xb7, 0xd7, 0x72, 0x3b, 0x35, 0x67, 0xab, 0xee, 0xba, 0x0e, 0xde, 0xd1, 0x14, 0xfd, 0x80, 0x95, 0xa6, 0xc6, 0x75, 0xd7, 0x75, 0xd4, 0x6f, 0xa1, 0x2c, 0x13, 0xb5, 0x3a, 0xbd, 0xd5, 0x0a, 0xb6, 0x35, 0x45, 0x9f, 0xb6, 0xd8, 0xd2, 0x0b, 0xc4, 0xa8, 0x7e, 0x1b, 0xe5, 0x98, 0xac, 0x0b, 0xba, 0x86, 0xa6, 0xe8, 0x05, 0x8b, 0xad, 0xbe, 0xd2, 0x0a, 0x09, 0xfb, 0x20, 0x6c, 0x6a, 0x8a, 0x9e, 0xe1, 0xc2, 0x4d, 0x10, 0x06, 0xc0, 0xa6, 0x81, 0xaf, 0x6a, 0x8a, 0x9e, 0x92, 0xc0, 0xa6, 0x11, 0x02, 0x9b, 0x06, 0x6e, 0x69, 0x8a, 0xae, 0xca, 0xe0, 0x80, 0xb0, 0x0f, 0xc2, 0x6b, 0x9a, 0xa2, 0x4f, 0xc9, 0x60, 0xd3, 0x50, 0xbf, 0x83, 0xf2, 0x4c, 0xd8, 0x68, 0xfd, 0xc6, 0xde, 0x59, 0xad, 0xe0, 0xeb, 0x9a, 0xa2, 0xcf, 0x5a, 0xcc, 0xc1, 0x79, 0x30, 0xab, 0xdf, 0x45, 0x05, 0x0e, 0xa7, 0x5a, 0x47, 0x53, 0xf4, 0x9c, 0xc5, 0x7c, 0x5c, 0xf1, 0xed, 0x52, 0x40, 0x0d, 0xc7, 0xad, 0xf5, 0x70, 0x5b, 0x53, 0xf4, 0x24, 0x0f, 0xe8, 0x3c, 0x31, 0x86, 0xf1, 0xa6, 0x81, 0x3b, 0x9a, 0xa2, 0xcf, 0x04, 0xf0, 0xa6, 0x11, 0x81, 0x37, 0x0d, 0xec, 0x6a, 0x8a, 0x9e, 0x0f, 0xe2, 0x03, 0xf1, 0xef, 0xb8, 0xfd, 0xba, 0x63, 0xe3, 0x5d, 0x4d, 0xd1, 0x15, 0x1e, 0xff, 0x39, 0xcf, 0x2a, 0x67, 0xb4, 0xb7, 0xd7, 0xea, 0x34, 0xf1, 0xaf, 0xbd, 0x5a, 0xe4, 0x19, 0xf5, 0xac, 0x52, 0x40, 0xf5, 0xfd, 0x9e, 0xdd, 0xc5, 0x7b, 0x9a, 0xa2, 0xa7, 0x79, 0x40, 0xeb, 0xc4, 0xa8, 0xee, 0xa0, 0x22, 0x93, 0x6d, 0x5f, 0x6d, 0x39, 0x3b, 0x5b, 0x76, 0xa7, 0xdf, 0xc6, 0x5d, 0x4d, 0xd1, 0xb3, 0x15, 0x63, 0xf4, 0xfa, 0x2d, 0x9d, 0x25, 0x8b, 0x37, 0x3a, 0xfd, 0xb6, 0xc5, 0xc2, 0x66, 0x26, 0xb5, 0x8d, 0x16, 0x03, 0x94, 0x36, 0x2c, 0xc3, 0x3d, 0x6f, 0xa3, 0x7c, 0x7f, 0x5c, 0x10, 0xdd, 0x35, 0x07, 0x25, 0x16, 0xdd, 0x3b, 0x75, 0xb4, 0x20, 0x94, 0x9d, 0xb7, 0x7d, 0x21, 0xac, 0xbe, 0x17, 0x56, 0x69, 0x04, 0x9a, 0xbf, 0xeb, 0xbd, 0x80, 0x8a, 0xbc, 0x58, 0x99, 0x51, 0xbd, 0x8e, 0x70, 0x88, 0x41, 0x83, 0xba, 0xe1, 0x05, 0x55, 0x1e, 0x1d, 0x43, 0xc3, 0x59, 0x0c, 0x90, 0x68, 0x40, 0x87, 0x51, 0x66, 0xcf, 0xde, 0xb5, 0x6b, 0x3d, 0x7b, 0x07, 0x9a, 0xc1, 0x6d, 0x45, 0x4b, 0x91, 0x6e, 0x40, 0xad, 0x5e, 0x37, 0x38, 0x82, 0xb2, 0x4c, 0x05, 0x9b, 0xf7, 0x0d, 0x22, 0x9b, 0xb6, 0xd8, 0x62, 0x68, 0x07, 0x3a, 0xca, 0x31, 0x9d, 0xdf, 0x0e, 0xde, 0x24, 0xc2, 0x82, 0xc5, 0xd6, 0xfb, 0xfd, 0x40, 0x54, 0xfa, 0xfd, 0xe0, 0x2d, 0xa2, 0xcc, 0x70, 0xa5, 0xdf, 0x10, 0x02, 0x6c, 0xd3, 0xc0, 0x6f, 0x13, 0x61, 0x4a, 0x62, 0x9b, 0x46, 0x88, 0x6d, 0x1a, 0xf8, 0x1d, 0x22, 0x54, 0x65, 0x76, 0x40, 0xe9, 0xb7, 0x84, 0x77, 0x89, 0x72, 0x4a, 0x66, 0x9b, 0x86, 0x7a, 0x14, 0xe5, 0x99, 0x92, 0xee, 0xf3, 0xf7, 0x88, 0x74, 0xd6, 0x62, 0x2e, 0x68, 0x53, 0xf8, 0x1e, 0x2a, 0x70, 0x3e, 0x15, 0xbf, 0x4f, 0xc4, 0x39, 0x8b, 0x79, 0x61, 0x5d, 0x41, 0x8c, 0x0a, 0xba, 0xc2, 0x07, 0x44, 0x9a, 0xe4, 0x51, 0x41, 0x5b, 0x08, 0x7d, 0x03, 0xd3, 0xc0, 0x1f, 0x12, 0xe5, 0x4c, 0xe0, 0x1b, 0x98, 0x46, 0xc4, 0x37, 0x30, 0x0d, 0xfc, 0x11, 0x11, 0xe7, 0x83, 0xdf, 0x20, 0x90, 0x05, 0xbf, 0x31, 0x7c, 0x4c, 0xb4, 0x0a, 0xcf, 0x82, 0xdf, 0x19, 0xa4, 0xcc, 0x42, 0x67, 0xf8, 0x44, 0xf1, 0xc6, 0x12, 0xcf, 0x2c, 0xb4, 0x06, 0x31, 0x2a, 0x68, 0x0d, 0x9f, 0x12, 0x61, 0x9a, 0x47, 0x05, 0xbd, 0xc1, 0x46, 0x45, 0xa6, 0x13, 0x7a, 0xc3, 0x67, 0x44, 0x1c, 0xbb, 0x39, 0x50, 0x8f, 0xbc, 0x39, 0x74, 0xd0, 0x62, 0x00, 0x43, 0xf7, 0xd1, 0xe7, 0x84, 0x34, 0x49, 0x77, 0x90, 0x60, 0x74, 0x33, 0x6d, 0xa3, 0x05, 0xa1, 0x04, 0x85, 0xee, 0xf0, 0x05, 0x04, 0x36, 0x76, 0x7b, 0xe0, 0x85, 0xcb, 0xdb, 0x83, 0x83, 0x70, 0x08, 0x42, 0xc3, 0xfa, 0x12, 0xc2, 0x8a, 0xd3, 0x1f, 0x02, 0x28, 0x1a, 0xd2, 0xaf, 0x50, 0xa6, 0x5d, 0xdb, 0xf5, 0x5a, 0x03, 0xf4, 0x87, 0xfb, 0x92, 0x1e, 0xe2, 0x87, 0x63, 0x64, 0xee, 0x52, 0x6d, 0x97, 0x74, 0x11, 0xf2, 0x6f, 0xa3, 0xd3, 0xdb, 0xdb, 0xb7, 0xe6, 0xdb, 0xdc, 0xa2, 0x6e, 0xa3, 0x2c, 0x23, 0x40, 0x23, 0xb8, 0x1f, 0x10, 0x3f, 0x1a, 0x1f, 0xe1, 0x75, 0x21, 0x60, 0xa4, 0xdb, 0x82, 0x49, 0x6d, 0xa0, 0x1c, 0x83, 0xf8, 0x8d, 0xe9, 0x01, 0xa0, 0xfc, 0x78, 0x7c, 0x0a, 0xb4, 0x30, 0xc0, 0x64, 0xda, 0xa2, 0x4d, 0xe2, 0xf8, 0x6d, 0xed, 0xc1, 0xd8, 0x9c, 0xcd, 0x08, 0x8e, 0xdf, 0x14, 0x03, 0x49, 0x33, 0x0d, 0xfc, 0xd0, 0x24, 0x49, 0x33, 0x8d, 0x50, 0xd2, 0x4c, 0x23, 0x94, 0x34, 0xd3, 0xc0, 0x0f, 0x4f, 0x94, 0x34, 0x8a, 0x11, 0x93, 0x16, 0xe0, 0xf8, 0xfd, 0xf8, 0x91, 0x89, 0x92, 0x16, 0xe4, 0xf8, 0xdd, 0xbc, 0x85, 0xf2, 0x8c, 0x43, 0x1b, 0xf4, 0xa3, 0x00, 0x3a, 0x35, 0x3e, 0xc8, 0xef, 0xfb, 0x40, 0xca, 0xb6, 0x25, 0xa3, 0xea, 0xa0, 0x02, 0x4f, 0x1d, 0x65, 0x3d, 0x06, 0xac, 0xd3, 0x31, 0x92, 0xd7, 0x10, 0x61, 0xb9, 0xb6, 0x6c, 0x95, 0xaa, 0x01, 0x86, 0xc9, 0xe3, 0xb1, 0xab, 0xc1, 0x1b, 0x3b, 0x72, 0x35, 0xc0, 0x24, 0x0a, 0x65, 0xcf, 0x34, 0xf0, 0x13, 0x93, 0x65, 0x8f, 0x3e, 0x27, 0x29, 0x7b, 0xa6, 0x11, 0x91, 0x3d, 0xd3, 0xc0, 0x4f, 0x4e, 0x98, 0x3d, 0x0a, 0x93, 0xb3, 0x17, 0x28, 0x3f, 0x7f, 0x10, 0x3e, 0x15, 0xbb, 0xfc, 0x60, 0x64, 0xca, 0xe5, 0xe7, 0x8f, 0x51, 0x69, 0x3b, 0xc1, 0x18, 0x7d, 0x3a, 0xfe, 0x76, 0xf2, 0x1c, 0x04, 0xb6, 0x13, 0x0c, 0x61, 0xb1, 0x1a, 0x60, 0x08, 0x3f, 0x13, 0xbb, 0x1a, 0xbc, 0x71, 0x2d, 0x57, 0x03, 0x4c, 0xf0, 0x5d, 0x54, 0x64, 0x10, 0x61, 0x82, 0x3f, 0x0b, 0xa4, 0x33, 0xe3, 0x93, 0xd8, 0xd4, 0x06, 0x5a, 0xbe, 0x1d, 0x30, 0xab, 0xfb, 0x68, 0x31, 0x40, 0xa4, 0x53, 0xef, 0x39, 0x80, 0x9e, 0x8d, 0x09, 0xf5, 0x6d, 0xc0, 0x2d, 0xb6, 0xc3, 0x9f, 0xa8, 0x37, 0xd0, 0x82, 0xd0, 0x08, 0x85, 0xb9, 0xfe, 0x3c, 0x90, 0xd7, 0xe3, 0xb4, 0x43, 0x36, 0xd1, 0x01, 0xac, 0xb6, 0x43, 0x1f, 0xa8, 0x37, 0x11, 0x0e, 0x71, 0x69, 0xd0, 0x2f, 0x00, 0x7a, 0x23, 0x36, 0x5a, 0x0a, 0x7b, 0xa1, 0x1d, 0xf5, 0x19, 0x2d, 0x25, 0x6f, 0xe6, 0xc0, 0xf8, 0x7f, 0x31, 0x56, 0x29, 0x79, 0x43, 0x98, 0xcf, 0x7f, 0x52, 0x4a, 0xcc, 0x44, 0xf7, 0x45, 0x57, 0xa0, 0xbc, 0x14, 0x6b, 0x5f, 0xc0, 0x0c, 0xe6, 0x18, 0xb2, 0x2f, 0xb8, 0x8d, 0x72, 0xfa, 0x02, 0xe7, 0xe5, 0x58, 0x9c, 0xcd, 0x08, 0x0e, 0xb7, 0x09, 0x49, 0x33, 0x0d, 0xc0, 0xbc, 0x12, 0x37, 0x69, 0xa6, 0x11, 0x4a, 0x1a, 0x98, 0xc4, 0xa4, 0x51, 0xca, 0xab, 0xb1, 0x93, 0x26, 0x62, 0x68, 0xd2, 0x64, 0x4e, 0x5f, 0xe0, 0xbc, 0x16, 0x3b, 0x69, 0x41, 0x0e, 0xb7, 0xd1, 0xe9, 0xe2, 0x4f, 0x34, 0x00, 0xdd, 0x8a, 0x35, 0x5d, 0xfc, 0x11, 0xcc, 0x49, 0xe4, 0x69, 0x08, 0x46, 0x96, 0x3a, 0xaf, 0x5b, 0x02, 0xe9, 0xf5, 0x78, 0xa9, 0xf3, 0x3c, 0x04, 0x52, 0xc7, 0x6c, 0xaa, 0x86, 0x90, 0xdb, 0xb1, 0xdd, 0x06, 0x20, 0x7e, 0x97, 0xd2, 0x14, 0xfd, 0x40, 0x35, 0x61, 0xcd, 0x79, 0x46, 0x4f, 0xb1, 0x8c, 0xe6, 0x41, 0x01, 0x27, 0xc5, 0xdf, 0x13, 0xc9, 0x74, 0x35, 0x61, 0xc1, 0x3a, 0x38, 0xb9, 0x1e, 0x46, 0x69, 0xd0, 0xf8, 0xc7, 0xd6, 0x3f, 0x10, 0x51, 0xa1, 0x9a, 0xb0, 0x60, 0xa9, 0x7f, 0xee, 0x64, 0x2a, 0xff, 0xd0, 0xf9, 0x47, 0xa2, 0xca, 0x30, 0x95, 0x7f, 0x6a, 0x14, 0x79, 0xa6, 0x81, 0xff, 0x44, 0x44, 0x29, 0x91, 0x67, 0x1a, 0x32, 0xcf, 0x34, 0xf0, 0x9f, 0x89, 0x48, 0x95, 0x78, 0xa2, 0xca, 0x3f, 0xaf, 0xfd, 0x85, 0xa8, 0xa6, 0x24, 0x9e, 0x69, 0xa8, 0x47, 0x50, 0x06, 0x54, 0xf4, 0x04, 0xf4, 0x57, 0x22, 0x9b, 0xad, 0x26, 0x2c, 0x58, 0x4d, 0x4f, 0x4b, 0x3a, 0xca, 0xfa, 0x4c, 0x2a, 0xfc, 0x1b, 0x11, 0xe6, 0xaa, 0x09, 0x0b, 0x1c, 0xb0, 0x93, 0x0e, 0x8b, 0x00, 0x8e, 0x39, 0x7f, 0x27, 0xb2, 0x24, 0x8b, 0x00, 0x0e, 0x2a, 0x32, 0xd5, 0x34, 0xf0, 0x3f, 0x88, 0x6a, 0x46, 0xa6, 0x7a, 0x17, 0x60, 0x89, 0x6a, 0x1a, 0xf8, 0x9f, 0x44, 0x98, 0x0f, 0x50, 0xc5, 0x68, 0xfd, 0xe3, 0xc1, 0xbf, 0x88, 0x4e, 0x61, 0xd1, 0xfa, 0xf3, 0x9d, 0x67, 0x0e, 0x86, 0xfb, 0xbf, 0x89, 0x6a, 0x8e, 0x67, 0x0e, 0xa6, 0x33, 0x8b, 0x00, 0x46, 0xf3, 0x7f, 0x88, 0x28, 0xcd, 0x22, 0x80, 0xe1, 0x5a, 0x43, 0x79, 0xd0, 0x08, 0x93, 0xf5, 0xbf, 0xa9, 0xf8, 0x2f, 0xce, 0xaa, 0x09, 0x0b, 0x42, 0xe5, 0xd3, 0xf4, 0x1a, 0x2a, 0x8a, 0x08, 0x3a, 0x55, 0xfe, 0x97, 0x9a, 0xe8, 0xad, 0x59, 0x35, 0x61, 0x15, 0x38, 0x88, 0x4e, 0x91, 0x2d, 0xa4, 0xd2, 0x92, 0x12, 0x66, 0xe7, 0xff, 0x53, 0x71, 0x5e, 0x99, 0x55, 0x13, 0x56, 0xde, 0x2f, 0x44, 0x3e, 0x27, 0xaf, 0xa2, 0x05, 0x19, 0x40, 0xc3, 0xb9, 0x2b, 0x15, 0xf3, 0x7d, 0x59, 0x35, 0x61, 0x15, 0x45, 0x0c, 0x0d, 0x85, 0xd5, 0x16, 0x3c, 0xe3, 0x32, 0xbe, 0x9b, 0x3e, 0xe4, 0xb4, 0xf0, 0x90, 0xcb, 0x41, 0x5d, 0x05, 0xdf, 0x13, 0xa5, 0xab, 0x04, 0x75, 0xab, 0xf8, 0xde, 0x28, 0xdd, 0xea, 0xd2, 0x35, 0x94, 0x96, 0x52, 0xfa, 0x35, 0xfe, 0x5f, 0xc1, 0xd2, 0x29, 0x94, 0x0f, 0xde, 0xd8, 0xd5, 0x3c, 0x4a, 0x5d, 0xb7, 0xf7, 0x3d, 0xe0, 0x01, 0x8b, 0xfc, 0xa8, 0x1e, 0x44, 0xd3, 0x37, 0x6a, 0x4e, 0xdf, 0xc6, 0x49, 0xcf, 0x06, 0xbf, 0x9c, 0x4c, 0xfe, 0x40, 0x59, 0x3a, 0x8d, 0x0a, 0xa1, 0xeb, 0xf8, 0x30, 0x07, 0xd3, 0xa2, 0x83, 0x33, 0x48, 0x0d, 0xdf, 0xb4, 0x87, 0x79, 0x28, 0x44, 0x7b, 0xd8, 0x1c, 0xdd, 0x43, 0x66, 0x60, 0x10, 0xfe, 0xd5, 0x61, 0x98, 0x83, 0xd4, 0xe0, 0x20, 0x46, 0xf4, 0xa0, 0x0e, 0x0e, 0x62, 0x44, 0x0f, 0x53, 0xa2, 0x87, 0x35, 0x54, 0x8c, 0xb8, 0xac, 0x0e, 0x73, 0x31, 0x2b, 0xba, 0x58, 0x47, 0x07, 0xa3, 0xee, 0xa0, 0xc3, 0x7c, 0xe4, 0xa2, 0x73, 0xc9, 0x2f, 0x97, 0xc3, 0x1c, 0x24, 0xef, 0x10, 0xc7, 0x88, 0xa9, 0x98, 0xb9, 0x53, 0x1c, 0x23, 0xfa, 0xc8, 0x47, 0x3f, 0x10, 0xe1, 0x96, 0x37, 0xcc, 0x83, 0x32, 0xa0, 0x28, 0xf8, 0xfd, 0x6d, 0x98, 0x87, 0xb9, 0xe8, 0x5c, 0xf2, 0xab, 0xd9, 0x30, 0x07, 0x69, 0xd1, 0xc1, 0x3e, 0x5a, 0x88, 0xbc, 0x71, 0x45, 0x38, 0xf9, 0xa9, 0xe8, 0x24, 0xee, 0x6b, 0x59, 0x01, 0x7d, 0x13, 0xe1, 0x41, 0xf7, 0xae, 0x08, 0xfa, 0x25, 0x91, 0x3e, 0xc1, 0xab, 0x5a, 0xe1, 0x0b, 0xf4, 0xd1, 0x37, 0x06, 0x5c, 0xbf, 0x22, 0xf8, 0xe7, 0xe4, 0xe8, 0xc7, 0x7d, 0x77, 0x2b, 0x60, 0x7f, 0x8b, 0x96, 0x06, 0x5f, 0xbd, 0x22, 0xc8, 0x3f, 0x91, 0x23, 0x8f, 0xf1, 0x36, 0x37, 0x54, 0x30, 0xf2, 0x05, 0x4c, 0x64, 0x4e, 0x0f, 0x6b, 0xe7, 0x50, 0xb3, 0x81, 0xbb, 0x95, 0xe8, 0xa1, 0x30, 0x9a, 0x87, 0xcd, 0xc1, 0x1e, 0x32, 0xa3, 0x8d, 0x14, 0xf9, 0x42, 0x24, 0x3a, 0x48, 0x8d, 0x1e, 0xc4, 0x00, 0x0f, 0xea, 0xe8, 0x41, 0x0c, 0xf0, 0x30, 0x35, 0xcc, 0x03, 0x74, 0xb1, 0xe0, 0xf5, 0x44, 0x74, 0x31, 0x3b, 0x62, 0x18, 0xf2, 0xbd, 0x43, 0xf4, 0x30, 0x37, 0xc4, 0xc3, 0x72, 0x09, 0xcd, 0xf1, 0x43, 0xe0, 0x1c, 0x9a, 0x5e, 0xbb, 0x78, 0xb9, 0xba, 0x96, 0x4f, 0x90, 0x1f, 0xd7, 0xad, 0xb5, 0x5f, 0xfc, 0x3c, 0xaf, 0xa8, 0xf3, 0x68, 0xf6, 0x6c, 0x75, 0xcd, 0xba, 0x78, 0x61, 0x23, 0x9f, 0x5c, 0xcf, 0xd0, 0xe3, 0x6a, 0xbf, 0xd3, 0x72, 0x3b, 0x47, 0xcb, 0x68, 0x5e, 0x3c, 0x78, 0x45, 0x39, 0x40, 0x6a, 0x9a, 0x3b, 0xb8, 0xad, 0xac, 0x5f, 0xfe, 0xe5, 0xcf, 0x42, 0xf5, 0xbb, 0xe2, 0xd5, 0x6f, 0xbd, 0xdf, 0x58, 0x69, 0x75, 0x7a, 0xf6, 0x5e, 0xa7, 0xe6, 0x78, 0x7f, 0x3d, 0xe1, 0x59, 0xbb, 0x2b, 0x8e, 0xdd, 0xac, 0x6d, 0xef, 0xaf, 0x0c, 0xfa, 0x43, 0x8b, 0xfa, 0x0c, 0x7c, 0xf2, 0x55, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb9, 0x46, 0x32, 0x11, 0x8b, 0x21, 0x00, 0x00, } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto3_20160519_a4ab9ec5/test.proto000066400000000000000000000105411411250152500313220ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package google.golang.org.proto3_20160519; option go_package = "google.golang.org/protobuf/internal/testprotos/legacy/proto3_20160519_a4ab9ec5"; enum SiblingEnum { ALPHA = 0; BRAVO = 10; CHARLIE = 200; } message SiblingMessage { string f1 = 1; repeated string f2 = 2; Message f3 = 3; } message Message { enum ChildEnum { ALPHA = 0; BRAVO = 1; CHARLIE = 2; } message ChildMessage { string f1 = 1; repeated string f2 = 2; Message f3 = 3; } // Optional fields. bool optional_bool = 100; int32 optional_int32 = 101; sint32 optional_sint32 = 102; uint32 optional_uint32 = 103; int64 optional_int64 = 104; sint64 optional_sint64 = 105; uint64 optional_uint64 = 106; fixed32 optional_fixed32 = 107; sfixed32 optional_sfixed32 = 108; float optional_float = 109; fixed64 optional_fixed64 = 110; sfixed64 optional_sfixed64 = 111; double optional_double = 112; string optional_string = 113; bytes optional_bytes = 114; ChildEnum optional_child_enum = 115; ChildMessage optional_child_message = 116; SiblingEnum optional_sibling_enum = 117; SiblingMessage optional_sibling_message = 118; // Repeated fields. repeated bool repeated_bool = 200; repeated int32 repeated_int32 = 201; repeated sint32 repeated_sint32 = 202; repeated uint32 repeated_uint32 = 203; repeated int64 repeated_int64 = 204; repeated sint64 repeated_sint64 = 205; repeated uint64 repeated_uint64 = 206; repeated fixed32 repeated_fixed32 = 207; repeated sfixed32 repeated_sfixed32 = 208; repeated float repeated_float = 209; repeated fixed64 repeated_fixed64 = 210; repeated sfixed64 repeated_sfixed64 = 211; repeated double repeated_double = 212; repeated string repeated_string = 213; repeated bytes repeated_bytes = 214; repeated ChildEnum repeated_child_enum = 215; repeated ChildMessage repeated_child_message = 216; repeated SiblingEnum repeated_sibling_enum = 217; repeated SiblingMessage repeated_sibling_message = 218; // Map fields. map map_bool_bool = 300; map map_bool_int32 = 301; map map_bool_sint32 = 302; map map_bool_uint32 = 303; map map_bool_int64 = 304; map map_bool_sint64 = 305; map map_bool_uint64 = 306; map map_bool_fixed32 = 307; map map_bool_sfixed32 = 308; map map_bool_float = 309; map map_bool_fixed64 = 310; map map_bool_sfixed64 = 311; map map_bool_double = 312; map map_bool_string = 313; map map_bool_bytes = 314; map map_bool_child_enum = 315; map map_bool_child_message = 316; map map_bool_sibling_enum = 317; map map_bool_sibling_message = 318; map map_int32_bool = 319; map map_sint32_bool = 320; map map_uint32_bool = 321; map map_int64_bool = 322; map map_sint64_bool = 323; map map_uint64_bool = 324; map map_fixed32_bool = 325; map map_string_bool = 326; // Oneof fields. oneof oneof_union { bool oneof_bool = 400; int32 oneof_int32 = 401; sint32 oneof_sint32 = 402; uint32 oneof_uint32 = 403; int64 oneof_int64 = 404; sint64 oneof_sint64 = 405; uint64 oneof_uint64 = 406; fixed32 oneof_fixed32 = 407; sfixed32 oneof_sfixed32 = 408; float oneof_float = 409; fixed64 oneof_fixed64 = 410; sfixed64 oneof_sfixed64 = 411; double oneof_double = 412; string oneof_string = 413; bytes oneof_bytes = 414; ChildEnum oneof_child_enum = 415; ChildMessage oneof_child_message = 416; SiblingEnum oneof_sibling_enum = 417; SiblingMessage oneof_sibling_message = 418; string oneof_string1 = 419; string oneof_string2 = 420; string oneof_string3 = 421; } } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto3_20180125_92554152/000077500000000000000000000000001411250152500266735ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto3_20180125_92554152/test.pb.go000066400000000000000000001576651411250152500306250ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: proto3_20180125_92554152/test.proto /* Package proto3_20180125_92554152 is a generated protocol buffer package. It is generated from these files: proto3_20180125_92554152/test.proto It has these top-level messages: SiblingMessage Message */ package proto3_20180125_92554152 import proto "google.golang.org/protobuf/internal/protolegacy" import fmt "fmt" import math "math" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. // A compilation error at this line likely means your copy of the // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type SiblingEnum int32 const ( SiblingEnum_ALPHA SiblingEnum = 0 SiblingEnum_BRAVO SiblingEnum = 10 SiblingEnum_CHARLIE SiblingEnum = 200 ) var SiblingEnum_name = map[int32]string{ 0: "ALPHA", 10: "BRAVO", 200: "CHARLIE", } var SiblingEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 10, "CHARLIE": 200, } func (x SiblingEnum) String() string { return proto.EnumName(SiblingEnum_name, int32(x)) } func (SiblingEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } type Message_ChildEnum int32 const ( Message_ALPHA Message_ChildEnum = 0 Message_BRAVO Message_ChildEnum = 1 Message_CHARLIE Message_ChildEnum = 2 ) var Message_ChildEnum_name = map[int32]string{ 0: "ALPHA", 1: "BRAVO", 2: "CHARLIE", } var Message_ChildEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 1, "CHARLIE": 2, } func (x Message_ChildEnum) String() string { return proto.EnumName(Message_ChildEnum_name, int32(x)) } func (Message_ChildEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 0} } type SiblingMessage struct { F1 string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 []string `protobuf:"bytes,2,rep,name=f2" json:"f2,omitempty"` F3 *Message `protobuf:"bytes,3,opt,name=f3" json:"f3,omitempty"` } func (m *SiblingMessage) Reset() { *m = SiblingMessage{} } func (m *SiblingMessage) String() string { return proto.CompactTextString(m) } func (*SiblingMessage) ProtoMessage() {} func (*SiblingMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } func (m *SiblingMessage) GetF1() string { if m != nil { return m.F1 } return "" } func (m *SiblingMessage) GetF2() []string { if m != nil { return m.F2 } return nil } func (m *SiblingMessage) GetF3() *Message { if m != nil { return m.F3 } return nil } type Message struct { // Optional fields. OptionalBool bool `protobuf:"varint,100,opt,name=optional_bool,json=optionalBool" json:"optional_bool,omitempty"` OptionalInt32 int32 `protobuf:"varint,101,opt,name=optional_int32,json=optionalInt32" json:"optional_int32,omitempty"` OptionalSint32 int32 `protobuf:"zigzag32,102,opt,name=optional_sint32,json=optionalSint32" json:"optional_sint32,omitempty"` OptionalUint32 uint32 `protobuf:"varint,103,opt,name=optional_uint32,json=optionalUint32" json:"optional_uint32,omitempty"` OptionalInt64 int64 `protobuf:"varint,104,opt,name=optional_int64,json=optionalInt64" json:"optional_int64,omitempty"` OptionalSint64 int64 `protobuf:"zigzag64,105,opt,name=optional_sint64,json=optionalSint64" json:"optional_sint64,omitempty"` OptionalUint64 uint64 `protobuf:"varint,106,opt,name=optional_uint64,json=optionalUint64" json:"optional_uint64,omitempty"` OptionalFixed32 uint32 `protobuf:"fixed32,107,opt,name=optional_fixed32,json=optionalFixed32" json:"optional_fixed32,omitempty"` OptionalSfixed32 int32 `protobuf:"fixed32,108,opt,name=optional_sfixed32,json=optionalSfixed32" json:"optional_sfixed32,omitempty"` OptionalFloat float32 `protobuf:"fixed32,109,opt,name=optional_float,json=optionalFloat" json:"optional_float,omitempty"` OptionalFixed64 uint64 `protobuf:"fixed64,110,opt,name=optional_fixed64,json=optionalFixed64" json:"optional_fixed64,omitempty"` OptionalSfixed64 int64 `protobuf:"fixed64,111,opt,name=optional_sfixed64,json=optionalSfixed64" json:"optional_sfixed64,omitempty"` OptionalDouble float64 `protobuf:"fixed64,112,opt,name=optional_double,json=optionalDouble" json:"optional_double,omitempty"` OptionalString string `protobuf:"bytes,113,opt,name=optional_string,json=optionalString" json:"optional_string,omitempty"` OptionalBytes []byte `protobuf:"bytes,114,opt,name=optional_bytes,json=optionalBytes,proto3" json:"optional_bytes,omitempty"` OptionalChildEnum Message_ChildEnum `protobuf:"varint,115,opt,name=optional_child_enum,json=optionalChildEnum,enum=google.golang.org.proto3_20180125.Message_ChildEnum" json:"optional_child_enum,omitempty"` OptionalChildMessage *Message_ChildMessage `protobuf:"bytes,116,opt,name=optional_child_message,json=optionalChildMessage" json:"optional_child_message,omitempty"` OptionalSiblingEnum SiblingEnum `protobuf:"varint,117,opt,name=optional_sibling_enum,json=optionalSiblingEnum,enum=google.golang.org.proto3_20180125.SiblingEnum" json:"optional_sibling_enum,omitempty"` OptionalSiblingMessage *SiblingMessage `protobuf:"bytes,118,opt,name=optional_sibling_message,json=optionalSiblingMessage" json:"optional_sibling_message,omitempty"` // Repeated fields. RepeatedBool []bool `protobuf:"varint,200,rep,packed,name=repeated_bool,json=repeatedBool" json:"repeated_bool,omitempty"` RepeatedInt32 []int32 `protobuf:"varint,201,rep,packed,name=repeated_int32,json=repeatedInt32" json:"repeated_int32,omitempty"` RepeatedSint32 []int32 `protobuf:"zigzag32,202,rep,packed,name=repeated_sint32,json=repeatedSint32" json:"repeated_sint32,omitempty"` RepeatedUint32 []uint32 `protobuf:"varint,203,rep,packed,name=repeated_uint32,json=repeatedUint32" json:"repeated_uint32,omitempty"` RepeatedInt64 []int64 `protobuf:"varint,204,rep,packed,name=repeated_int64,json=repeatedInt64" json:"repeated_int64,omitempty"` RepeatedSint64 []int64 `protobuf:"zigzag64,205,rep,packed,name=repeated_sint64,json=repeatedSint64" json:"repeated_sint64,omitempty"` RepeatedUint64 []uint64 `protobuf:"varint,206,rep,packed,name=repeated_uint64,json=repeatedUint64" json:"repeated_uint64,omitempty"` RepeatedFixed32 []uint32 `protobuf:"fixed32,207,rep,packed,name=repeated_fixed32,json=repeatedFixed32" json:"repeated_fixed32,omitempty"` RepeatedSfixed32 []int32 `protobuf:"fixed32,208,rep,packed,name=repeated_sfixed32,json=repeatedSfixed32" json:"repeated_sfixed32,omitempty"` RepeatedFloat []float32 `protobuf:"fixed32,209,rep,packed,name=repeated_float,json=repeatedFloat" json:"repeated_float,omitempty"` RepeatedFixed64 []uint64 `protobuf:"fixed64,210,rep,packed,name=repeated_fixed64,json=repeatedFixed64" json:"repeated_fixed64,omitempty"` RepeatedSfixed64 []int64 `protobuf:"fixed64,211,rep,packed,name=repeated_sfixed64,json=repeatedSfixed64" json:"repeated_sfixed64,omitempty"` RepeatedDouble []float64 `protobuf:"fixed64,212,rep,packed,name=repeated_double,json=repeatedDouble" json:"repeated_double,omitempty"` RepeatedString []string `protobuf:"bytes,213,rep,name=repeated_string,json=repeatedString" json:"repeated_string,omitempty"` RepeatedBytes [][]byte `protobuf:"bytes,214,rep,name=repeated_bytes,json=repeatedBytes,proto3" json:"repeated_bytes,omitempty"` RepeatedChildEnum []Message_ChildEnum `protobuf:"varint,215,rep,packed,name=repeated_child_enum,json=repeatedChildEnum,enum=google.golang.org.proto3_20180125.Message_ChildEnum" json:"repeated_child_enum,omitempty"` RepeatedChildMessage []*Message_ChildMessage `protobuf:"bytes,216,rep,name=repeated_child_message,json=repeatedChildMessage" json:"repeated_child_message,omitempty"` RepeatedSiblingEnum []SiblingEnum `protobuf:"varint,217,rep,packed,name=repeated_sibling_enum,json=repeatedSiblingEnum,enum=google.golang.org.proto3_20180125.SiblingEnum" json:"repeated_sibling_enum,omitempty"` RepeatedSiblingMessage []*SiblingMessage `protobuf:"bytes,218,rep,name=repeated_sibling_message,json=repeatedSiblingMessage" json:"repeated_sibling_message,omitempty"` // Map fields. MapBoolBool map[bool]bool `protobuf:"bytes,300,rep,name=map_bool_bool,json=mapBoolBool" json:"map_bool_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolInt32 map[bool]int32 `protobuf:"bytes,301,rep,name=map_bool_int32,json=mapBoolInt32" json:"map_bool_int32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolSint32 map[bool]int32 `protobuf:"bytes,302,rep,name=map_bool_sint32,json=mapBoolSint32" json:"map_bool_sint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` MapBoolUint32 map[bool]uint32 `protobuf:"bytes,303,rep,name=map_bool_uint32,json=mapBoolUint32" json:"map_bool_uint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolInt64 map[bool]int64 `protobuf:"bytes,304,rep,name=map_bool_int64,json=mapBoolInt64" json:"map_bool_int64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolSint64 map[bool]int64 `protobuf:"bytes,305,rep,name=map_bool_sint64,json=mapBoolSint64" json:"map_bool_sint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` MapBoolUint64 map[bool]uint64 `protobuf:"bytes,306,rep,name=map_bool_uint64,json=mapBoolUint64" json:"map_bool_uint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolFixed32 map[bool]uint32 `protobuf:"bytes,307,rep,name=map_bool_fixed32,json=mapBoolFixed32" json:"map_bool_fixed32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolSfixed32 map[bool]int32 `protobuf:"bytes,308,rep,name=map_bool_sfixed32,json=mapBoolSfixed32" json:"map_bool_sfixed32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolFloat map[bool]float32 `protobuf:"bytes,309,rep,name=map_bool_float,json=mapBoolFloat" json:"map_bool_float,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolFixed64 map[bool]uint64 `protobuf:"bytes,310,rep,name=map_bool_fixed64,json=mapBoolFixed64" json:"map_bool_fixed64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolSfixed64 map[bool]int64 `protobuf:"bytes,311,rep,name=map_bool_sfixed64,json=mapBoolSfixed64" json:"map_bool_sfixed64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolDouble map[bool]float64 `protobuf:"bytes,312,rep,name=map_bool_double,json=mapBoolDouble" json:"map_bool_double,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolString map[bool]string `protobuf:"bytes,313,rep,name=map_bool_string,json=mapBoolString" json:"map_bool_string,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolBytes map[bool][]byte `protobuf:"bytes,314,rep,name=map_bool_bytes,json=mapBoolBytes" json:"map_bool_bytes,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value,proto3"` MapBoolChildEnum map[bool]Message_ChildEnum `protobuf:"bytes,315,rep,name=map_bool_child_enum,json=mapBoolChildEnum" json:"map_bool_child_enum,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.golang.org.proto3_20180125.Message_ChildEnum"` MapBoolChildMessage map[bool]*Message_ChildMessage `protobuf:"bytes,316,rep,name=map_bool_child_message,json=mapBoolChildMessage" json:"map_bool_child_message,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolSiblingEnum map[bool]SiblingEnum `protobuf:"bytes,317,rep,name=map_bool_sibling_enum,json=mapBoolSiblingEnum" json:"map_bool_sibling_enum,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.golang.org.proto3_20180125.SiblingEnum"` MapBoolSiblingMessage map[bool]*SiblingMessage `protobuf:"bytes,318,rep,name=map_bool_sibling_message,json=mapBoolSiblingMessage" json:"map_bool_sibling_message,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapInt32Bool map[int32]bool `protobuf:"bytes,319,rep,name=map_int32_bool,json=mapInt32Bool" json:"map_int32_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapSint32Bool map[int32]bool `protobuf:"bytes,320,rep,name=map_sint32_bool,json=mapSint32Bool" json:"map_sint32_bool,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint32Bool map[uint32]bool `protobuf:"bytes,321,rep,name=map_uint32_bool,json=mapUint32Bool" json:"map_uint32_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapInt64Bool map[int64]bool `protobuf:"bytes,322,rep,name=map_int64_bool,json=mapInt64Bool" json:"map_int64_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapSint64Bool map[int64]bool `protobuf:"bytes,323,rep,name=map_sint64_bool,json=mapSint64Bool" json:"map_sint64_bool,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint64Bool map[uint64]bool `protobuf:"bytes,324,rep,name=map_uint64_bool,json=mapUint64Bool" json:"map_uint64_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapFixed32Bool map[uint32]bool `protobuf:"bytes,325,rep,name=map_fixed32_bool,json=mapFixed32Bool" json:"map_fixed32_bool,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapStringBool map[string]bool `protobuf:"bytes,326,rep,name=map_string_bool,json=mapStringBool" json:"map_string_bool,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // Oneof fields. // // Types that are valid to be assigned to OneofUnion: // *Message_OneofBool // *Message_OneofInt32 // *Message_OneofSint32 // *Message_OneofUint32 // *Message_OneofInt64 // *Message_OneofSint64 // *Message_OneofUint64 // *Message_OneofFixed32 // *Message_OneofSfixed32 // *Message_OneofFloat // *Message_OneofFixed64 // *Message_OneofSfixed64 // *Message_OneofDouble // *Message_OneofString // *Message_OneofBytes // *Message_OneofChildEnum // *Message_OneofChildMessage // *Message_OneofSiblingEnum // *Message_OneofSiblingMessage // *Message_OneofString1 // *Message_OneofString2 // *Message_OneofString3 OneofUnion isMessage_OneofUnion `protobuf_oneof:"oneof_union"` } func (m *Message) Reset() { *m = Message{} } func (m *Message) String() string { return proto.CompactTextString(m) } func (*Message) ProtoMessage() {} func (*Message) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } type isMessage_OneofUnion interface{ isMessage_OneofUnion() } type Message_OneofBool struct { OneofBool bool `protobuf:"varint,400,opt,name=oneof_bool,json=oneofBool,oneof"` } type Message_OneofInt32 struct { OneofInt32 int32 `protobuf:"varint,401,opt,name=oneof_int32,json=oneofInt32,oneof"` } type Message_OneofSint32 struct { OneofSint32 int32 `protobuf:"zigzag32,402,opt,name=oneof_sint32,json=oneofSint32,oneof"` } type Message_OneofUint32 struct { OneofUint32 uint32 `protobuf:"varint,403,opt,name=oneof_uint32,json=oneofUint32,oneof"` } type Message_OneofInt64 struct { OneofInt64 int64 `protobuf:"varint,404,opt,name=oneof_int64,json=oneofInt64,oneof"` } type Message_OneofSint64 struct { OneofSint64 int64 `protobuf:"zigzag64,405,opt,name=oneof_sint64,json=oneofSint64,oneof"` } type Message_OneofUint64 struct { OneofUint64 uint64 `protobuf:"varint,406,opt,name=oneof_uint64,json=oneofUint64,oneof"` } type Message_OneofFixed32 struct { OneofFixed32 uint32 `protobuf:"fixed32,407,opt,name=oneof_fixed32,json=oneofFixed32,oneof"` } type Message_OneofSfixed32 struct { OneofSfixed32 int32 `protobuf:"fixed32,408,opt,name=oneof_sfixed32,json=oneofSfixed32,oneof"` } type Message_OneofFloat struct { OneofFloat float32 `protobuf:"fixed32,409,opt,name=oneof_float,json=oneofFloat,oneof"` } type Message_OneofFixed64 struct { OneofFixed64 uint64 `protobuf:"fixed64,410,opt,name=oneof_fixed64,json=oneofFixed64,oneof"` } type Message_OneofSfixed64 struct { OneofSfixed64 int64 `protobuf:"fixed64,411,opt,name=oneof_sfixed64,json=oneofSfixed64,oneof"` } type Message_OneofDouble struct { OneofDouble float64 `protobuf:"fixed64,412,opt,name=oneof_double,json=oneofDouble,oneof"` } type Message_OneofString struct { OneofString string `protobuf:"bytes,413,opt,name=oneof_string,json=oneofString,oneof"` } type Message_OneofBytes struct { OneofBytes []byte `protobuf:"bytes,414,opt,name=oneof_bytes,json=oneofBytes,proto3,oneof"` } type Message_OneofChildEnum struct { OneofChildEnum Message_ChildEnum `protobuf:"varint,415,opt,name=oneof_child_enum,json=oneofChildEnum,enum=google.golang.org.proto3_20180125.Message_ChildEnum,oneof"` } type Message_OneofChildMessage struct { OneofChildMessage *Message_ChildMessage `protobuf:"bytes,416,opt,name=oneof_child_message,json=oneofChildMessage,oneof"` } type Message_OneofSiblingEnum struct { OneofSiblingEnum SiblingEnum `protobuf:"varint,417,opt,name=oneof_sibling_enum,json=oneofSiblingEnum,enum=google.golang.org.proto3_20180125.SiblingEnum,oneof"` } type Message_OneofSiblingMessage struct { OneofSiblingMessage *SiblingMessage `protobuf:"bytes,418,opt,name=oneof_sibling_message,json=oneofSiblingMessage,oneof"` } type Message_OneofString1 struct { OneofString1 string `protobuf:"bytes,419,opt,name=oneof_string1,json=oneofString1,oneof"` } type Message_OneofString2 struct { OneofString2 string `protobuf:"bytes,420,opt,name=oneof_string2,json=oneofString2,oneof"` } type Message_OneofString3 struct { OneofString3 string `protobuf:"bytes,421,opt,name=oneof_string3,json=oneofString3,oneof"` } func (*Message_OneofBool) isMessage_OneofUnion() {} func (*Message_OneofInt32) isMessage_OneofUnion() {} func (*Message_OneofSint32) isMessage_OneofUnion() {} func (*Message_OneofUint32) isMessage_OneofUnion() {} func (*Message_OneofInt64) isMessage_OneofUnion() {} func (*Message_OneofSint64) isMessage_OneofUnion() {} func (*Message_OneofUint64) isMessage_OneofUnion() {} func (*Message_OneofFixed32) isMessage_OneofUnion() {} func (*Message_OneofSfixed32) isMessage_OneofUnion() {} func (*Message_OneofFloat) isMessage_OneofUnion() {} func (*Message_OneofFixed64) isMessage_OneofUnion() {} func (*Message_OneofSfixed64) isMessage_OneofUnion() {} func (*Message_OneofDouble) isMessage_OneofUnion() {} func (*Message_OneofString) isMessage_OneofUnion() {} func (*Message_OneofBytes) isMessage_OneofUnion() {} func (*Message_OneofChildEnum) isMessage_OneofUnion() {} func (*Message_OneofChildMessage) isMessage_OneofUnion() {} func (*Message_OneofSiblingEnum) isMessage_OneofUnion() {} func (*Message_OneofSiblingMessage) isMessage_OneofUnion() {} func (*Message_OneofString1) isMessage_OneofUnion() {} func (*Message_OneofString2) isMessage_OneofUnion() {} func (*Message_OneofString3) isMessage_OneofUnion() {} func (m *Message) GetOneofUnion() isMessage_OneofUnion { if m != nil { return m.OneofUnion } return nil } func (m *Message) GetOptionalBool() bool { if m != nil { return m.OptionalBool } return false } func (m *Message) GetOptionalInt32() int32 { if m != nil { return m.OptionalInt32 } return 0 } func (m *Message) GetOptionalSint32() int32 { if m != nil { return m.OptionalSint32 } return 0 } func (m *Message) GetOptionalUint32() uint32 { if m != nil { return m.OptionalUint32 } return 0 } func (m *Message) GetOptionalInt64() int64 { if m != nil { return m.OptionalInt64 } return 0 } func (m *Message) GetOptionalSint64() int64 { if m != nil { return m.OptionalSint64 } return 0 } func (m *Message) GetOptionalUint64() uint64 { if m != nil { return m.OptionalUint64 } return 0 } func (m *Message) GetOptionalFixed32() uint32 { if m != nil { return m.OptionalFixed32 } return 0 } func (m *Message) GetOptionalSfixed32() int32 { if m != nil { return m.OptionalSfixed32 } return 0 } func (m *Message) GetOptionalFloat() float32 { if m != nil { return m.OptionalFloat } return 0 } func (m *Message) GetOptionalFixed64() uint64 { if m != nil { return m.OptionalFixed64 } return 0 } func (m *Message) GetOptionalSfixed64() int64 { if m != nil { return m.OptionalSfixed64 } return 0 } func (m *Message) GetOptionalDouble() float64 { if m != nil { return m.OptionalDouble } return 0 } func (m *Message) GetOptionalString() string { if m != nil { return m.OptionalString } return "" } func (m *Message) GetOptionalBytes() []byte { if m != nil { return m.OptionalBytes } return nil } func (m *Message) GetOptionalChildEnum() Message_ChildEnum { if m != nil { return m.OptionalChildEnum } return Message_ALPHA } func (m *Message) GetOptionalChildMessage() *Message_ChildMessage { if m != nil { return m.OptionalChildMessage } return nil } func (m *Message) GetOptionalSiblingEnum() SiblingEnum { if m != nil { return m.OptionalSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetOptionalSiblingMessage() *SiblingMessage { if m != nil { return m.OptionalSiblingMessage } return nil } func (m *Message) GetRepeatedBool() []bool { if m != nil { return m.RepeatedBool } return nil } func (m *Message) GetRepeatedInt32() []int32 { if m != nil { return m.RepeatedInt32 } return nil } func (m *Message) GetRepeatedSint32() []int32 { if m != nil { return m.RepeatedSint32 } return nil } func (m *Message) GetRepeatedUint32() []uint32 { if m != nil { return m.RepeatedUint32 } return nil } func (m *Message) GetRepeatedInt64() []int64 { if m != nil { return m.RepeatedInt64 } return nil } func (m *Message) GetRepeatedSint64() []int64 { if m != nil { return m.RepeatedSint64 } return nil } func (m *Message) GetRepeatedUint64() []uint64 { if m != nil { return m.RepeatedUint64 } return nil } func (m *Message) GetRepeatedFixed32() []uint32 { if m != nil { return m.RepeatedFixed32 } return nil } func (m *Message) GetRepeatedSfixed32() []int32 { if m != nil { return m.RepeatedSfixed32 } return nil } func (m *Message) GetRepeatedFloat() []float32 { if m != nil { return m.RepeatedFloat } return nil } func (m *Message) GetRepeatedFixed64() []uint64 { if m != nil { return m.RepeatedFixed64 } return nil } func (m *Message) GetRepeatedSfixed64() []int64 { if m != nil { return m.RepeatedSfixed64 } return nil } func (m *Message) GetRepeatedDouble() []float64 { if m != nil { return m.RepeatedDouble } return nil } func (m *Message) GetRepeatedString() []string { if m != nil { return m.RepeatedString } return nil } func (m *Message) GetRepeatedBytes() [][]byte { if m != nil { return m.RepeatedBytes } return nil } func (m *Message) GetRepeatedChildEnum() []Message_ChildEnum { if m != nil { return m.RepeatedChildEnum } return nil } func (m *Message) GetRepeatedChildMessage() []*Message_ChildMessage { if m != nil { return m.RepeatedChildMessage } return nil } func (m *Message) GetRepeatedSiblingEnum() []SiblingEnum { if m != nil { return m.RepeatedSiblingEnum } return nil } func (m *Message) GetRepeatedSiblingMessage() []*SiblingMessage { if m != nil { return m.RepeatedSiblingMessage } return nil } func (m *Message) GetMapBoolBool() map[bool]bool { if m != nil { return m.MapBoolBool } return nil } func (m *Message) GetMapBoolInt32() map[bool]int32 { if m != nil { return m.MapBoolInt32 } return nil } func (m *Message) GetMapBoolSint32() map[bool]int32 { if m != nil { return m.MapBoolSint32 } return nil } func (m *Message) GetMapBoolUint32() map[bool]uint32 { if m != nil { return m.MapBoolUint32 } return nil } func (m *Message) GetMapBoolInt64() map[bool]int64 { if m != nil { return m.MapBoolInt64 } return nil } func (m *Message) GetMapBoolSint64() map[bool]int64 { if m != nil { return m.MapBoolSint64 } return nil } func (m *Message) GetMapBoolUint64() map[bool]uint64 { if m != nil { return m.MapBoolUint64 } return nil } func (m *Message) GetMapBoolFixed32() map[bool]uint32 { if m != nil { return m.MapBoolFixed32 } return nil } func (m *Message) GetMapBoolSfixed32() map[bool]int32 { if m != nil { return m.MapBoolSfixed32 } return nil } func (m *Message) GetMapBoolFloat() map[bool]float32 { if m != nil { return m.MapBoolFloat } return nil } func (m *Message) GetMapBoolFixed64() map[bool]uint64 { if m != nil { return m.MapBoolFixed64 } return nil } func (m *Message) GetMapBoolSfixed64() map[bool]int64 { if m != nil { return m.MapBoolSfixed64 } return nil } func (m *Message) GetMapBoolDouble() map[bool]float64 { if m != nil { return m.MapBoolDouble } return nil } func (m *Message) GetMapBoolString() map[bool]string { if m != nil { return m.MapBoolString } return nil } func (m *Message) GetMapBoolBytes() map[bool][]byte { if m != nil { return m.MapBoolBytes } return nil } func (m *Message) GetMapBoolChildEnum() map[bool]Message_ChildEnum { if m != nil { return m.MapBoolChildEnum } return nil } func (m *Message) GetMapBoolChildMessage() map[bool]*Message_ChildMessage { if m != nil { return m.MapBoolChildMessage } return nil } func (m *Message) GetMapBoolSiblingEnum() map[bool]SiblingEnum { if m != nil { return m.MapBoolSiblingEnum } return nil } func (m *Message) GetMapBoolSiblingMessage() map[bool]*SiblingMessage { if m != nil { return m.MapBoolSiblingMessage } return nil } func (m *Message) GetMapInt32Bool() map[int32]bool { if m != nil { return m.MapInt32Bool } return nil } func (m *Message) GetMapSint32Bool() map[int32]bool { if m != nil { return m.MapSint32Bool } return nil } func (m *Message) GetMapUint32Bool() map[uint32]bool { if m != nil { return m.MapUint32Bool } return nil } func (m *Message) GetMapInt64Bool() map[int64]bool { if m != nil { return m.MapInt64Bool } return nil } func (m *Message) GetMapSint64Bool() map[int64]bool { if m != nil { return m.MapSint64Bool } return nil } func (m *Message) GetMapUint64Bool() map[uint64]bool { if m != nil { return m.MapUint64Bool } return nil } func (m *Message) GetMapFixed32Bool() map[uint32]bool { if m != nil { return m.MapFixed32Bool } return nil } func (m *Message) GetMapStringBool() map[string]bool { if m != nil { return m.MapStringBool } return nil } func (m *Message) GetOneofBool() bool { if x, ok := m.GetOneofUnion().(*Message_OneofBool); ok { return x.OneofBool } return false } func (m *Message) GetOneofInt32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofInt32); ok { return x.OneofInt32 } return 0 } func (m *Message) GetOneofSint32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSint32); ok { return x.OneofSint32 } return 0 } func (m *Message) GetOneofUint32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofUint32); ok { return x.OneofUint32 } return 0 } func (m *Message) GetOneofInt64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofInt64); ok { return x.OneofInt64 } return 0 } func (m *Message) GetOneofSint64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSint64); ok { return x.OneofSint64 } return 0 } func (m *Message) GetOneofUint64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofUint64); ok { return x.OneofUint64 } return 0 } func (m *Message) GetOneofFixed32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed32); ok { return x.OneofFixed32 } return 0 } func (m *Message) GetOneofSfixed32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed32); ok { return x.OneofSfixed32 } return 0 } func (m *Message) GetOneofFloat() float32 { if x, ok := m.GetOneofUnion().(*Message_OneofFloat); ok { return x.OneofFloat } return 0 } func (m *Message) GetOneofFixed64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed64); ok { return x.OneofFixed64 } return 0 } func (m *Message) GetOneofSfixed64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed64); ok { return x.OneofSfixed64 } return 0 } func (m *Message) GetOneofDouble() float64 { if x, ok := m.GetOneofUnion().(*Message_OneofDouble); ok { return x.OneofDouble } return 0 } func (m *Message) GetOneofString() string { if x, ok := m.GetOneofUnion().(*Message_OneofString); ok { return x.OneofString } return "" } func (m *Message) GetOneofBytes() []byte { if x, ok := m.GetOneofUnion().(*Message_OneofBytes); ok { return x.OneofBytes } return nil } func (m *Message) GetOneofChildEnum() Message_ChildEnum { if x, ok := m.GetOneofUnion().(*Message_OneofChildEnum); ok { return x.OneofChildEnum } return Message_ALPHA } func (m *Message) GetOneofChildMessage() *Message_ChildMessage { if x, ok := m.GetOneofUnion().(*Message_OneofChildMessage); ok { return x.OneofChildMessage } return nil } func (m *Message) GetOneofSiblingEnum() SiblingEnum { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingEnum); ok { return x.OneofSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetOneofSiblingMessage() *SiblingMessage { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingMessage); ok { return x.OneofSiblingMessage } return nil } func (m *Message) GetOneofString1() string { if x, ok := m.GetOneofUnion().(*Message_OneofString1); ok { return x.OneofString1 } return "" } func (m *Message) GetOneofString2() string { if x, ok := m.GetOneofUnion().(*Message_OneofString2); ok { return x.OneofString2 } return "" } func (m *Message) GetOneofString3() string { if x, ok := m.GetOneofUnion().(*Message_OneofString3); ok { return x.OneofString3 } return "" } // XXX_OneofFuncs is for the internal use of the proto package. func (*Message) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { return _Message_OneofMarshaler, _Message_OneofUnmarshaler, _Message_OneofSizer, []interface{}{ (*Message_OneofBool)(nil), (*Message_OneofInt32)(nil), (*Message_OneofSint32)(nil), (*Message_OneofUint32)(nil), (*Message_OneofInt64)(nil), (*Message_OneofSint64)(nil), (*Message_OneofUint64)(nil), (*Message_OneofFixed32)(nil), (*Message_OneofSfixed32)(nil), (*Message_OneofFloat)(nil), (*Message_OneofFixed64)(nil), (*Message_OneofSfixed64)(nil), (*Message_OneofDouble)(nil), (*Message_OneofString)(nil), (*Message_OneofBytes)(nil), (*Message_OneofChildEnum)(nil), (*Message_OneofChildMessage)(nil), (*Message_OneofSiblingEnum)(nil), (*Message_OneofSiblingMessage)(nil), (*Message_OneofString1)(nil), (*Message_OneofString2)(nil), (*Message_OneofString3)(nil), } } func _Message_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { m := msg.(*Message) // oneof_union switch x := m.OneofUnion.(type) { case *Message_OneofBool: t := uint64(0) if x.OneofBool { t = 1 } b.EncodeVarint(400<<3 | proto.WireVarint) b.EncodeVarint(t) case *Message_OneofInt32: b.EncodeVarint(401<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofInt32)) case *Message_OneofSint32: b.EncodeVarint(402<<3 | proto.WireVarint) b.EncodeZigzag32(uint64(x.OneofSint32)) case *Message_OneofUint32: b.EncodeVarint(403<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofUint32)) case *Message_OneofInt64: b.EncodeVarint(404<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofInt64)) case *Message_OneofSint64: b.EncodeVarint(405<<3 | proto.WireVarint) b.EncodeZigzag64(uint64(x.OneofSint64)) case *Message_OneofUint64: b.EncodeVarint(406<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofUint64)) case *Message_OneofFixed32: b.EncodeVarint(407<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofFixed32)) case *Message_OneofSfixed32: b.EncodeVarint(408<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofSfixed32)) case *Message_OneofFloat: b.EncodeVarint(409<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(math.Float32bits(x.OneofFloat))) case *Message_OneofFixed64: b.EncodeVarint(410<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofFixed64)) case *Message_OneofSfixed64: b.EncodeVarint(411<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofSfixed64)) case *Message_OneofDouble: b.EncodeVarint(412<<3 | proto.WireFixed64) b.EncodeFixed64(math.Float64bits(x.OneofDouble)) case *Message_OneofString: b.EncodeVarint(413<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString) case *Message_OneofBytes: b.EncodeVarint(414<<3 | proto.WireBytes) b.EncodeRawBytes(x.OneofBytes) case *Message_OneofChildEnum: b.EncodeVarint(415<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofChildEnum)) case *Message_OneofChildMessage: b.EncodeVarint(416<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofChildMessage); err != nil { return err } case *Message_OneofSiblingEnum: b.EncodeVarint(417<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofSiblingEnum)) case *Message_OneofSiblingMessage: b.EncodeVarint(418<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofSiblingMessage); err != nil { return err } case *Message_OneofString1: b.EncodeVarint(419<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString1) case *Message_OneofString2: b.EncodeVarint(420<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString2) case *Message_OneofString3: b.EncodeVarint(421<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString3) case nil: default: return fmt.Errorf("Message.OneofUnion has unexpected type %T", x) } return nil } func _Message_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { m := msg.(*Message) switch tag { case 400: // oneof_union.oneof_bool if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofBool{x != 0} return true, err case 401: // oneof_union.oneof_int32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofInt32{int32(x)} return true, err case 402: // oneof_union.oneof_sint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag32() m.OneofUnion = &Message_OneofSint32{int32(x)} return true, err case 403: // oneof_union.oneof_uint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofUint32{uint32(x)} return true, err case 404: // oneof_union.oneof_int64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofInt64{int64(x)} return true, err case 405: // oneof_union.oneof_sint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag64() m.OneofUnion = &Message_OneofSint64{int64(x)} return true, err case 406: // oneof_union.oneof_uint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofUint64{x} return true, err case 407: // oneof_union.oneof_fixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofFixed32{uint32(x)} return true, err case 408: // oneof_union.oneof_sfixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofSfixed32{int32(x)} return true, err case 409: // oneof_union.oneof_float if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofFloat{math.Float32frombits(uint32(x))} return true, err case 410: // oneof_union.oneof_fixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofFixed64{x} return true, err case 411: // oneof_union.oneof_sfixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofSfixed64{int64(x)} return true, err case 412: // oneof_union.oneof_double if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofDouble{math.Float64frombits(x)} return true, err case 413: // oneof_union.oneof_string if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString{x} return true, err case 414: // oneof_union.oneof_bytes if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeRawBytes(true) m.OneofUnion = &Message_OneofBytes{x} return true, err case 415: // oneof_union.oneof_child_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofChildEnum{Message_ChildEnum(x)} return true, err case 416: // oneof_union.oneof_child_message if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(Message_ChildMessage) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofChildMessage{msg} return true, err case 417: // oneof_union.oneof_sibling_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofSiblingEnum{SiblingEnum(x)} return true, err case 418: // oneof_union.oneof_sibling_message if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(SiblingMessage) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofSiblingMessage{msg} return true, err case 419: // oneof_union.oneof_string1 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString1{x} return true, err case 420: // oneof_union.oneof_string2 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString2{x} return true, err case 421: // oneof_union.oneof_string3 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString3{x} return true, err default: return false, nil } } func _Message_OneofSizer(msg proto.Message) (n int) { m := msg.(*Message) // oneof_union switch x := m.OneofUnion.(type) { case *Message_OneofBool: n += proto.SizeVarint(400<<3 | proto.WireVarint) n += 1 case *Message_OneofInt32: n += proto.SizeVarint(401<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofInt32)) case *Message_OneofSint32: n += proto.SizeVarint(402<<3 | proto.WireVarint) n += proto.SizeVarint(uint64((uint32(x.OneofSint32) << 1) ^ uint32((int32(x.OneofSint32) >> 31)))) case *Message_OneofUint32: n += proto.SizeVarint(403<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofUint32)) case *Message_OneofInt64: n += proto.SizeVarint(404<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofInt64)) case *Message_OneofSint64: n += proto.SizeVarint(405<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(uint64(x.OneofSint64<<1) ^ uint64((int64(x.OneofSint64) >> 63)))) case *Message_OneofUint64: n += proto.SizeVarint(406<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofUint64)) case *Message_OneofFixed32: n += proto.SizeVarint(407<<3 | proto.WireFixed32) n += 4 case *Message_OneofSfixed32: n += proto.SizeVarint(408<<3 | proto.WireFixed32) n += 4 case *Message_OneofFloat: n += proto.SizeVarint(409<<3 | proto.WireFixed32) n += 4 case *Message_OneofFixed64: n += proto.SizeVarint(410<<3 | proto.WireFixed64) n += 8 case *Message_OneofSfixed64: n += proto.SizeVarint(411<<3 | proto.WireFixed64) n += 8 case *Message_OneofDouble: n += proto.SizeVarint(412<<3 | proto.WireFixed64) n += 8 case *Message_OneofString: n += proto.SizeVarint(413<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString))) n += len(x.OneofString) case *Message_OneofBytes: n += proto.SizeVarint(414<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofBytes))) n += len(x.OneofBytes) case *Message_OneofChildEnum: n += proto.SizeVarint(415<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofChildEnum)) case *Message_OneofChildMessage: s := proto.Size(x.OneofChildMessage) n += proto.SizeVarint(416<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case *Message_OneofSiblingEnum: n += proto.SizeVarint(417<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.OneofSiblingEnum)) case *Message_OneofSiblingMessage: s := proto.Size(x.OneofSiblingMessage) n += proto.SizeVarint(418<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case *Message_OneofString1: n += proto.SizeVarint(419<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString1))) n += len(x.OneofString1) case *Message_OneofString2: n += proto.SizeVarint(420<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString2))) n += len(x.OneofString2) case *Message_OneofString3: n += proto.SizeVarint(421<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.OneofString3))) n += len(x.OneofString3) case nil: default: panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) } return n } type Message_ChildMessage struct { F1 string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 []string `protobuf:"bytes,2,rep,name=f2" json:"f2,omitempty"` F3 *Message `protobuf:"bytes,3,opt,name=f3" json:"f3,omitempty"` } func (m *Message_ChildMessage) Reset() { *m = Message_ChildMessage{} } func (m *Message_ChildMessage) String() string { return proto.CompactTextString(m) } func (*Message_ChildMessage) ProtoMessage() {} func (*Message_ChildMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 0} } func (m *Message_ChildMessage) GetF1() string { if m != nil { return m.F1 } return "" } func (m *Message_ChildMessage) GetF2() []string { if m != nil { return m.F2 } return nil } func (m *Message_ChildMessage) GetF3() *Message { if m != nil { return m.F3 } return nil } func init() { proto.RegisterType((*SiblingMessage)(nil), "google.golang.org.proto3_20180125.SiblingMessage") proto.RegisterType((*Message)(nil), "google.golang.org.proto3_20180125.Message") proto.RegisterType((*Message_ChildMessage)(nil), "google.golang.org.proto3_20180125.Message.ChildMessage") proto.RegisterEnum("google.golang.org.proto3_20180125.SiblingEnum", SiblingEnum_name, SiblingEnum_value) proto.RegisterEnum("google.golang.org.proto3_20180125.Message_ChildEnum", Message_ChildEnum_name, Message_ChildEnum_value) } func init() { proto.RegisterFile("proto3_20180125_92554152/test.proto", fileDescriptor0) } var fileDescriptor0 = []byte{ // 1947 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x9a, 0x59, 0x73, 0xdb, 0xc8, 0x11, 0xc7, 0x09, 0x52, 0x87, 0x35, 0xe2, 0x09, 0x5a, 0xca, 0x94, 0x9e, 0x10, 0xd9, 0x71, 0x10, 0x27, 0x45, 0x99, 0x14, 0x84, 0x38, 0x4e, 0x62, 0x5b, 0xb2, 0xe5, 0xd0, 0x29, 0x3b, 0x71, 0xc1, 0xa5, 0x3c, 0xe4, 0x45, 0xa1, 0x24, 0x90, 0xa6, 0x0d, 0x12, 0x8a, 0x48, 0xba, 0xa2, 0xca, 0x83, 0xbf, 0x42, 0xee, 0x3b, 0x7b, 0xef, 0xdb, 0xde, 0xf7, 0x7d, 0x7b, 0xcb, 0x7b, 0xdf, 0xe7, 0xa7, 0xd9, 0x1a, 0x34, 0xe6, 0x02, 0x40, 0x93, 0x04, 0x6b, 0x1f, 0x5c, 0x25, 0x35, 0xff, 0xd3, 0x3f, 0x76, 0xa3, 0xa7, 0x7b, 0x06, 0x16, 0x3a, 0xb4, 0xbb, 0xe7, 0x76, 0xdd, 0xe5, 0xcd, 0xca, 0xb1, 0xf2, 0xf1, 0x63, 0xe5, 0xca, 0xca, 0xe6, 0x4f, 0x2a, 0x2b, 0x2b, 0x46, 0x79, 0xa5, 0xb2, 0xd4, 0xb5, 0x3b, 0xdd, 0x92, 0xf7, 0xa9, 0xfa, 0xdd, 0x86, 0xeb, 0x36, 0x1c, 0xbb, 0xd4, 0x70, 0x9d, 0x5a, 0xbb, 0x51, 0x72, 0xf7, 0x1a, 0xa5, 0xc0, 0xb2, 0x45, 0x07, 0x65, 0x2f, 0x37, 0xb7, 0x9c, 0x66, 0xbb, 0x71, 0xd1, 0xee, 0x74, 0x6a, 0x0d, 0x5b, 0xcd, 0xa2, 0x64, 0xbd, 0x8c, 0x15, 0x4d, 0xd1, 0x67, 0xac, 0x64, 0xbd, 0xec, 0xfd, 0x5e, 0xc1, 0x49, 0x2d, 0xe5, 0xfd, 0x5e, 0x51, 0x4f, 0xa0, 0x64, 0x7d, 0x19, 0xa7, 0x34, 0x45, 0x9f, 0xad, 0x1c, 0x2d, 0x0d, 0x24, 0x94, 0x7c, 0xbf, 0x56, 0xb2, 0xbe, 0xbc, 0x78, 0xf3, 0x34, 0x9a, 0xa6, 0x9c, 0x43, 0x28, 0xe3, 0xee, 0x76, 0x9b, 0x6e, 0xbb, 0xe6, 0x6c, 0x6e, 0xb9, 0xae, 0x83, 0x77, 0x34, 0x45, 0x3f, 0x60, 0xa5, 0xa9, 0x71, 0xcd, 0x75, 0x1d, 0xf5, 0x7b, 0x28, 0xcb, 0x44, 0xcd, 0x76, 0x77, 0xb9, 0x82, 0x6d, 0x4d, 0xd1, 0x27, 0x2d, 0xb6, 0xf4, 0x3c, 0x31, 0xaa, 0xdf, 0x47, 0x39, 0x26, 0xeb, 0x80, 0xae, 0xae, 0x29, 0x7a, 0xc1, 0x62, 0xab, 0x2f, 0x37, 0x43, 0xc2, 0x1e, 0x08, 0x1b, 0x9a, 0xa2, 0x67, 0xb8, 0x70, 0x03, 0x84, 0x01, 0xb0, 0x69, 0xe0, 0x2b, 0x9a, 0xa2, 0xa7, 0x24, 0xb0, 0x69, 0x84, 0xc0, 0xa6, 0x81, 0x9b, 0x9a, 0xa2, 0xab, 0x32, 0x38, 0x20, 0xec, 0x81, 0xf0, 0xaa, 0xa6, 0xe8, 0x13, 0x32, 0xd8, 0x34, 0xd4, 0x1f, 0xa0, 0x3c, 0x13, 0xd6, 0x9b, 0x7f, 0xb0, 0x77, 0x96, 0x2b, 0xf8, 0x9a, 0xa6, 0xe8, 0xd3, 0x16, 0x73, 0x70, 0x0e, 0xcc, 0xea, 0x0f, 0x51, 0x81, 0xc3, 0xa9, 0xd6, 0xd1, 0x14, 0x3d, 0x67, 0x31, 0x1f, 0x97, 0x7d, 0xbb, 0x14, 0x50, 0xdd, 0x71, 0x6b, 0x5d, 0xdc, 0xd2, 0x14, 0x3d, 0xc9, 0x03, 0x3a, 0x47, 0x8c, 0x61, 0xbc, 0x69, 0xe0, 0xb6, 0xa6, 0xe8, 0x53, 0x01, 0xbc, 0x69, 0x44, 0xe0, 0x4d, 0x03, 0xbb, 0x9a, 0xa2, 0xe7, 0x83, 0xf8, 0x40, 0xfc, 0x3b, 0x6e, 0x6f, 0xcb, 0xb1, 0xf1, 0xae, 0xa6, 0xe8, 0x0a, 0x8f, 0xff, 0xac, 0x67, 0x95, 0x33, 0xda, 0xdd, 0x6b, 0xb6, 0x1b, 0xf8, 0xf7, 0x5e, 0x2d, 0xf2, 0x8c, 0x7a, 0x56, 0x29, 0xa0, 0xad, 0xfd, 0xae, 0xdd, 0xc1, 0x7b, 0x9a, 0xa2, 0xa7, 0x79, 0x40, 0x6b, 0xc4, 0xa8, 0xee, 0xa0, 0x22, 0x93, 0x6d, 0x5f, 0x69, 0x3a, 0x3b, 0x9b, 0x76, 0xbb, 0xd7, 0xc2, 0x1d, 0x4d, 0xd1, 0xb3, 0x15, 0x63, 0xf8, 0xfa, 0x2d, 0x9d, 0x21, 0x8b, 0xd7, 0xdb, 0xbd, 0x96, 0xc5, 0xc2, 0x66, 0x26, 0xb5, 0x85, 0xe6, 0x03, 0x94, 0x16, 0x2c, 0xc3, 0x5d, 0x6f, 0xa3, 0xfc, 0x78, 0x54, 0x10, 0xdd, 0x35, 0x07, 0x25, 0x16, 0xdd, 0x3b, 0x5b, 0x68, 0x4e, 0x28, 0x3b, 0x6f, 0xfb, 0x42, 0x58, 0x3d, 0x2f, 0xac, 0xd2, 0x10, 0x34, 0x7f, 0xd7, 0x7b, 0x01, 0x15, 0x79, 0xb1, 0x32, 0xa3, 0x7a, 0x0d, 0xe1, 0x10, 0x83, 0x06, 0x75, 0xdd, 0x0b, 0xaa, 0x3c, 0x3c, 0x86, 0x86, 0x33, 0x1f, 0x20, 0xd1, 0x80, 0x0e, 0xa3, 0xcc, 0x9e, 0xbd, 0x6b, 0xd7, 0xba, 0xf6, 0x0e, 0x34, 0x83, 0x5b, 0x8a, 0x96, 0x22, 0xdd, 0x80, 0x5a, 0xbd, 0x6e, 0x70, 0x04, 0x65, 0x99, 0x0a, 0x36, 0xef, 0x5b, 0x44, 0x36, 0x69, 0xb1, 0xc5, 0xd0, 0x0e, 0x74, 0x94, 0x63, 0x3a, 0xbf, 0x1d, 0xbc, 0x4d, 0x84, 0x05, 0x8b, 0xad, 0xf7, 0xfb, 0x81, 0xa8, 0xf4, 0xfb, 0xc1, 0x3b, 0x44, 0x99, 0xe1, 0x4a, 0xbf, 0x21, 0x04, 0xd8, 0xa6, 0x81, 0xdf, 0x25, 0xc2, 0x94, 0xc4, 0x36, 0x8d, 0x10, 0xdb, 0x34, 0xf0, 0x7b, 0x44, 0xa8, 0xca, 0xec, 0x80, 0xd2, 0x6f, 0x09, 0xef, 0x13, 0xe5, 0x84, 0xcc, 0x36, 0x0d, 0xf5, 0x28, 0xca, 0x33, 0x25, 0xdd, 0xe7, 0x1f, 0x10, 0xe9, 0xb4, 0xc5, 0x5c, 0xd0, 0xa6, 0xf0, 0x23, 0x54, 0xe0, 0x7c, 0x2a, 0xfe, 0x90, 0x88, 0x73, 0x16, 0xf3, 0xc2, 0xba, 0x82, 0x18, 0x15, 0x74, 0x85, 0x8f, 0x88, 0x34, 0xc9, 0xa3, 0x82, 0xb6, 0x10, 0xfa, 0x06, 0xa6, 0x81, 0x3f, 0x26, 0xca, 0xa9, 0xc0, 0x37, 0x30, 0x8d, 0x88, 0x6f, 0x60, 0x1a, 0xf8, 0x13, 0x22, 0xce, 0x07, 0xbf, 0x41, 0x20, 0x0b, 0x7e, 0x63, 0xf8, 0x94, 0x68, 0x15, 0x9e, 0x05, 0xbf, 0x33, 0x48, 0x99, 0x85, 0xce, 0xf0, 0x99, 0xe2, 0x8d, 0x25, 0x9e, 0x59, 0x68, 0x0d, 0x62, 0x54, 0xd0, 0x1a, 0x3e, 0x27, 0xc2, 0x34, 0x8f, 0x0a, 0x7a, 0x83, 0x8d, 0x8a, 0x4c, 0x27, 0xf4, 0x86, 0x2f, 0x88, 0x38, 0x76, 0x73, 0xa0, 0x1e, 0x79, 0x73, 0x68, 0xa3, 0xf9, 0x00, 0x86, 0xee, 0xa3, 0x2f, 0x09, 0x69, 0x9c, 0xee, 0x20, 0xc1, 0xe8, 0x66, 0xda, 0x46, 0x73, 0x42, 0x09, 0x0a, 0xdd, 0xe1, 0x2b, 0x08, 0x6c, 0xe4, 0xf6, 0xc0, 0x0b, 0x97, 0xb7, 0x07, 0x07, 0xe1, 0x10, 0x84, 0x86, 0xf5, 0x35, 0x84, 0x15, 0xa7, 0x3f, 0x04, 0x50, 0x34, 0xa4, 0xdf, 0xa1, 0x4c, 0xab, 0xb6, 0xeb, 0xb5, 0x06, 0xe8, 0x0f, 0x0f, 0x24, 0x3d, 0xc4, 0x4f, 0x47, 0xc8, 0xdc, 0xc5, 0xda, 0x2e, 0xe9, 0x22, 0xe4, 0xdf, 0x7a, 0xbb, 0xbb, 0xb7, 0x6f, 0xcd, 0xb6, 0xb8, 0x45, 0xdd, 0x46, 0x59, 0x46, 0x80, 0x46, 0xf0, 0x20, 0x20, 0x7e, 0x36, 0x3a, 0xc2, 0xeb, 0x42, 0xc0, 0x48, 0xb7, 0x04, 0x93, 0x5a, 0x47, 0x39, 0x06, 0xf1, 0x1b, 0xd3, 0x43, 0x40, 0xf9, 0xf9, 0xe8, 0x14, 0x68, 0x61, 0x80, 0xc9, 0xb4, 0x44, 0x9b, 0xc4, 0xf1, 0xdb, 0xda, 0xc3, 0xb1, 0x39, 0x1b, 0x11, 0x1c, 0xbf, 0x29, 0x06, 0x92, 0x66, 0x1a, 0xf8, 0x91, 0x71, 0x92, 0x66, 0x1a, 0xa1, 0xa4, 0x99, 0x46, 0x28, 0x69, 0xa6, 0x81, 0x1f, 0x1d, 0x2b, 0x69, 0x14, 0x23, 0x26, 0x2d, 0xc0, 0xf1, 0xfb, 0xf1, 0x63, 0x63, 0x25, 0x2d, 0xc8, 0xf1, 0xbb, 0x79, 0x13, 0xe5, 0x19, 0x87, 0x36, 0xe8, 0xc7, 0x01, 0x74, 0x72, 0x74, 0x90, 0xdf, 0xf7, 0x81, 0x94, 0x6d, 0x49, 0x46, 0xd5, 0x41, 0x05, 0x9e, 0x3a, 0xca, 0x7a, 0x02, 0x58, 0xa7, 0x62, 0x24, 0xaf, 0x2e, 0xc2, 0x72, 0x2d, 0xd9, 0x2a, 0x55, 0x03, 0x0c, 0x93, 0x27, 0x63, 0x57, 0x83, 0x37, 0x76, 0xe4, 0x6a, 0x80, 0x49, 0x14, 0xca, 0x9e, 0x69, 0xe0, 0xa7, 0xc6, 0xcb, 0x1e, 0x7d, 0x4e, 0x52, 0xf6, 0x4c, 0x23, 0x22, 0x7b, 0xa6, 0x81, 0x9f, 0x1e, 0x33, 0x7b, 0x14, 0x26, 0x67, 0x2f, 0x50, 0x7e, 0xfe, 0x20, 0x7c, 0x26, 0x76, 0xf9, 0xc1, 0xc8, 0x94, 0xcb, 0xcf, 0x1f, 0xa3, 0xd2, 0x76, 0x82, 0x31, 0xfa, 0x6c, 0xfc, 0xed, 0xe4, 0x39, 0x08, 0x6c, 0x27, 0x18, 0xc2, 0x62, 0x35, 0xc0, 0x10, 0x7e, 0x2e, 0x76, 0x35, 0x78, 0xe3, 0x5a, 0xae, 0x06, 0x98, 0xe0, 0xbb, 0xa8, 0xc8, 0x20, 0xc2, 0x04, 0x7f, 0x1e, 0x48, 0xa7, 0x47, 0x27, 0xb1, 0xa9, 0x0d, 0xb4, 0x7c, 0x2b, 0x60, 0x56, 0xf7, 0xd1, 0x7c, 0x80, 0x48, 0xa7, 0xde, 0x0b, 0x00, 0x3d, 0x13, 0x13, 0xea, 0xdb, 0x80, 0x5b, 0x6c, 0x85, 0x3f, 0x51, 0xaf, 0xa3, 0x39, 0xa1, 0x11, 0x0a, 0x73, 0xfd, 0x45, 0x20, 0xaf, 0xc5, 0x69, 0x87, 0x6c, 0xa2, 0x03, 0x58, 0x6d, 0x85, 0x3e, 0x50, 0x6f, 0x20, 0x1c, 0xe2, 0xd2, 0xa0, 0x5f, 0x02, 0xf4, 0x7a, 0x6c, 0xb4, 0x14, 0xf6, 0x5c, 0x2b, 0xea, 0x33, 0x5a, 0x4a, 0xde, 0xcc, 0x81, 0xf1, 0xff, 0x72, 0xac, 0x52, 0xf2, 0x86, 0x30, 0x9f, 0xff, 0xa4, 0x94, 0x98, 0x89, 0xee, 0x8b, 0x8e, 0x40, 0x79, 0x25, 0xd6, 0xbe, 0x80, 0x19, 0xcc, 0x31, 0x64, 0x5f, 0x70, 0x1b, 0xe5, 0xf4, 0x04, 0xce, 0xab, 0xb1, 0x38, 0x1b, 0x11, 0x1c, 0x6e, 0x13, 0x92, 0x66, 0x1a, 0x80, 0x79, 0x2d, 0x6e, 0xd2, 0x4c, 0x23, 0x94, 0x34, 0x30, 0x89, 0x49, 0xa3, 0x94, 0xd7, 0x63, 0x27, 0x4d, 0xc4, 0xd0, 0xa4, 0xc9, 0x9c, 0x9e, 0xc0, 0x79, 0x23, 0x76, 0xd2, 0x82, 0x1c, 0x6e, 0xa3, 0xd3, 0xc5, 0x9f, 0x68, 0x00, 0xba, 0x19, 0x6b, 0xba, 0xf8, 0x23, 0x98, 0x93, 0xc8, 0xd3, 0x10, 0x8c, 0x2c, 0x75, 0x5e, 0xb7, 0x04, 0xd2, 0x9b, 0xf1, 0x52, 0xe7, 0x79, 0x08, 0xa4, 0x8e, 0xd9, 0x54, 0x0d, 0x21, 0xb7, 0x6d, 0xbb, 0x75, 0x40, 0xfc, 0x29, 0xa5, 0x29, 0xfa, 0x81, 0x6a, 0xc2, 0x9a, 0xf1, 0x8c, 0x9e, 0x62, 0x11, 0xcd, 0x82, 0x02, 0x4e, 0x8a, 0x7f, 0x26, 0x92, 0xc9, 0x6a, 0xc2, 0x82, 0x75, 0x70, 0x72, 0x3d, 0x8c, 0xd2, 0xa0, 0xf1, 0x8f, 0xad, 0x7f, 0x21, 0xa2, 0x42, 0x35, 0x61, 0xc1, 0x52, 0xff, 0xdc, 0xc9, 0x54, 0xfe, 0xa1, 0xf3, 0xaf, 0x44, 0x95, 0x61, 0x2a, 0xff, 0xd4, 0x28, 0xf2, 0x4c, 0x03, 0xff, 0x8d, 0x88, 0x52, 0x22, 0xcf, 0x34, 0x64, 0x9e, 0x69, 0xe0, 0xbf, 0x13, 0x91, 0x2a, 0xf1, 0x44, 0x95, 0x7f, 0x5e, 0xfb, 0x07, 0x51, 0x4d, 0x48, 0x3c, 0xd3, 0x50, 0x8f, 0xa0, 0x0c, 0xa8, 0xe8, 0x09, 0xe8, 0x9f, 0x44, 0x36, 0x5d, 0x4d, 0x58, 0xb0, 0x9a, 0x9e, 0x96, 0x74, 0x94, 0xf5, 0x99, 0x54, 0xf8, 0x2f, 0x22, 0xcc, 0x55, 0x13, 0x16, 0x38, 0x60, 0x27, 0x1d, 0x16, 0x01, 0x1c, 0x73, 0xfe, 0x4d, 0x64, 0x49, 0x16, 0x01, 0x1c, 0x54, 0x64, 0xaa, 0x69, 0xe0, 0xff, 0x10, 0xd5, 0x94, 0x4c, 0xf5, 0x2e, 0xc0, 0x12, 0xd5, 0x34, 0xf0, 0x7f, 0x89, 0x30, 0x1f, 0xa0, 0x8a, 0xd1, 0xfa, 0xc7, 0x83, 0xff, 0x11, 0x9d, 0xc2, 0xa2, 0xf5, 0xe7, 0x3b, 0xcf, 0x1c, 0x0c, 0xf7, 0xff, 0x13, 0xd5, 0x0c, 0xcf, 0x1c, 0x4c, 0x67, 0x16, 0x01, 0x8c, 0xe6, 0x3b, 0x88, 0x28, 0xcd, 0x22, 0x80, 0xe1, 0x5a, 0x43, 0x79, 0xd0, 0x08, 0x93, 0xf5, 0xce, 0x54, 0xfc, 0x17, 0x67, 0xd5, 0x84, 0x05, 0xa1, 0xf2, 0x69, 0x7a, 0x15, 0x15, 0x45, 0x04, 0x9d, 0x2a, 0x77, 0xa5, 0xc6, 0x7a, 0x6b, 0x56, 0x4d, 0x58, 0x05, 0x0e, 0xa2, 0x53, 0x64, 0x13, 0xa9, 0xb4, 0xa4, 0x84, 0xd9, 0x79, 0x77, 0x2a, 0xce, 0x2b, 0xb3, 0x6a, 0xc2, 0xca, 0xfb, 0x85, 0xc8, 0xe7, 0xe4, 0x15, 0x34, 0x27, 0x03, 0x68, 0x38, 0xf7, 0xa4, 0x62, 0xbe, 0x2f, 0xab, 0x26, 0xac, 0xa2, 0x88, 0xa1, 0xa1, 0xb0, 0xda, 0x82, 0x67, 0x5c, 0xc6, 0xf7, 0xd2, 0x87, 0x9c, 0x16, 0x1e, 0x72, 0x39, 0xa8, 0xab, 0xe0, 0xfb, 0xa2, 0x74, 0x95, 0xa0, 0x6e, 0x19, 0xdf, 0x1f, 0xa5, 0x5b, 0x5e, 0xb8, 0x8a, 0xd2, 0x52, 0x4a, 0xbf, 0xc5, 0xff, 0x2b, 0x58, 0x38, 0x89, 0xf2, 0xc1, 0x1b, 0xbb, 0x9a, 0x47, 0xa9, 0x6b, 0xf6, 0xbe, 0x07, 0x3c, 0x60, 0x91, 0x1f, 0xd5, 0x83, 0x68, 0xf2, 0x7a, 0xcd, 0xe9, 0xd9, 0x38, 0xe9, 0xd9, 0xe0, 0x97, 0x13, 0xc9, 0xe3, 0xca, 0xc2, 0x29, 0x54, 0x08, 0x5d, 0xc7, 0x07, 0x39, 0x98, 0x14, 0x1d, 0x9c, 0x46, 0x6a, 0xf8, 0xa6, 0x3d, 0xc8, 0x43, 0x21, 0xda, 0xc3, 0xc6, 0xf0, 0x1e, 0x32, 0x7d, 0x83, 0xf0, 0xaf, 0x0e, 0x83, 0x1c, 0xa4, 0xfa, 0x07, 0x31, 0xa4, 0x07, 0xb5, 0x7f, 0x10, 0x43, 0x7a, 0x98, 0x10, 0x3d, 0xac, 0xa2, 0x62, 0xc4, 0x65, 0x75, 0x90, 0x8b, 0x69, 0xd1, 0xc5, 0x1a, 0x3a, 0x18, 0x75, 0x07, 0x1d, 0xe4, 0x23, 0x17, 0x9d, 0x4b, 0x7e, 0xb9, 0x1c, 0xe4, 0x20, 0x79, 0x9b, 0x38, 0x86, 0x4c, 0xc5, 0xd4, 0xed, 0xe2, 0x18, 0xd2, 0x47, 0x3e, 0xfa, 0x81, 0x08, 0xb7, 0xbc, 0x41, 0x1e, 0x94, 0x3e, 0x45, 0xc1, 0xef, 0x6f, 0x83, 0x3c, 0xcc, 0x44, 0xe7, 0x92, 0x5f, 0xcd, 0x06, 0x39, 0x48, 0x8b, 0x0e, 0xf6, 0xd1, 0x5c, 0xe4, 0x8d, 0x2b, 0xc2, 0xc9, 0x2f, 0x45, 0x27, 0x71, 0x5f, 0xcb, 0x0a, 0xe8, 0x1b, 0x08, 0xf7, 0xbb, 0x77, 0x45, 0xd0, 0x2f, 0x8a, 0xf4, 0x31, 0x5e, 0xd5, 0x0a, 0x5f, 0xa0, 0x87, 0xbe, 0xd3, 0xe7, 0xfa, 0x15, 0xc1, 0x3f, 0x2b, 0x47, 0x3f, 0xea, 0xbb, 0x5b, 0x01, 0xfb, 0x47, 0xb4, 0xd0, 0xff, 0xea, 0x15, 0x41, 0xfe, 0x85, 0x1c, 0x79, 0x8c, 0xb7, 0xb9, 0xa1, 0x82, 0x91, 0x2f, 0x60, 0x22, 0x73, 0x72, 0x50, 0x3b, 0x87, 0x9a, 0x0d, 0xdc, 0xad, 0x44, 0x0f, 0x85, 0xe1, 0x3c, 0x6c, 0xf4, 0xf7, 0x90, 0x19, 0x6e, 0xa4, 0xc8, 0x17, 0x22, 0xd1, 0x41, 0x6a, 0xf8, 0x20, 0xfa, 0x78, 0x50, 0x87, 0x0f, 0xa2, 0x8f, 0x87, 0x89, 0x41, 0x1e, 0xa0, 0x8b, 0x05, 0xaf, 0x27, 0xa2, 0x8b, 0xe9, 0x21, 0xc3, 0x90, 0xef, 0x1d, 0xa2, 0x87, 0x99, 0x01, 0x1e, 0x16, 0x4b, 0x68, 0x86, 0x1f, 0x02, 0x67, 0xd0, 0xe4, 0xea, 0x85, 0x4b, 0xd5, 0xd5, 0x7c, 0x82, 0xfc, 0xb8, 0x66, 0xad, 0xfe, 0xe6, 0xd7, 0x79, 0x45, 0x9d, 0x45, 0xd3, 0x67, 0xaa, 0xab, 0xd6, 0x85, 0xf3, 0xeb, 0xf9, 0xe4, 0x5a, 0x86, 0x1e, 0x57, 0x7b, 0xed, 0xa6, 0xdb, 0x3e, 0x5a, 0x46, 0xb3, 0xe2, 0xc1, 0x2b, 0xca, 0x01, 0x52, 0xd3, 0xdc, 0xc1, 0x2d, 0x65, 0xed, 0xd2, 0x6f, 0x7f, 0x15, 0xaa, 0xdf, 0x25, 0xaf, 0x7e, 0xb7, 0x7a, 0xf5, 0xa5, 0x66, 0xbb, 0x6b, 0xef, 0xb5, 0x6b, 0x8e, 0xf7, 0xd7, 0x13, 0x9e, 0xb5, 0xb3, 0xe4, 0xd8, 0x8d, 0xda, 0xf6, 0xfe, 0x52, 0xbf, 0x3f, 0xb4, 0xd8, 0x9a, 0x82, 0x4f, 0xbe, 0x09, 0x00, 0x00, 0xff, 0xff, 0x64, 0xfb, 0xb5, 0x25, 0x8b, 0x21, 0x00, 0x00, } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto3_20180125_92554152/test.proto000066400000000000000000000105411411250152500307400ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package google.golang.org.proto3_20180125; option go_package = "google.golang.org/protobuf/internal/testprotos/legacy/proto3_20180125_92554152"; enum SiblingEnum { ALPHA = 0; BRAVO = 10; CHARLIE = 200; } message SiblingMessage { string f1 = 1; repeated string f2 = 2; Message f3 = 3; } message Message { enum ChildEnum { ALPHA = 0; BRAVO = 1; CHARLIE = 2; } message ChildMessage { string f1 = 1; repeated string f2 = 2; Message f3 = 3; } // Optional fields. bool optional_bool = 100; int32 optional_int32 = 101; sint32 optional_sint32 = 102; uint32 optional_uint32 = 103; int64 optional_int64 = 104; sint64 optional_sint64 = 105; uint64 optional_uint64 = 106; fixed32 optional_fixed32 = 107; sfixed32 optional_sfixed32 = 108; float optional_float = 109; fixed64 optional_fixed64 = 110; sfixed64 optional_sfixed64 = 111; double optional_double = 112; string optional_string = 113; bytes optional_bytes = 114; ChildEnum optional_child_enum = 115; ChildMessage optional_child_message = 116; SiblingEnum optional_sibling_enum = 117; SiblingMessage optional_sibling_message = 118; // Repeated fields. repeated bool repeated_bool = 200; repeated int32 repeated_int32 = 201; repeated sint32 repeated_sint32 = 202; repeated uint32 repeated_uint32 = 203; repeated int64 repeated_int64 = 204; repeated sint64 repeated_sint64 = 205; repeated uint64 repeated_uint64 = 206; repeated fixed32 repeated_fixed32 = 207; repeated sfixed32 repeated_sfixed32 = 208; repeated float repeated_float = 209; repeated fixed64 repeated_fixed64 = 210; repeated sfixed64 repeated_sfixed64 = 211; repeated double repeated_double = 212; repeated string repeated_string = 213; repeated bytes repeated_bytes = 214; repeated ChildEnum repeated_child_enum = 215; repeated ChildMessage repeated_child_message = 216; repeated SiblingEnum repeated_sibling_enum = 217; repeated SiblingMessage repeated_sibling_message = 218; // Map fields. map map_bool_bool = 300; map map_bool_int32 = 301; map map_bool_sint32 = 302; map map_bool_uint32 = 303; map map_bool_int64 = 304; map map_bool_sint64 = 305; map map_bool_uint64 = 306; map map_bool_fixed32 = 307; map map_bool_sfixed32 = 308; map map_bool_float = 309; map map_bool_fixed64 = 310; map map_bool_sfixed64 = 311; map map_bool_double = 312; map map_bool_string = 313; map map_bool_bytes = 314; map map_bool_child_enum = 315; map map_bool_child_message = 316; map map_bool_sibling_enum = 317; map map_bool_sibling_message = 318; map map_int32_bool = 319; map map_sint32_bool = 320; map map_uint32_bool = 321; map map_int64_bool = 322; map map_sint64_bool = 323; map map_uint64_bool = 324; map map_fixed32_bool = 325; map map_string_bool = 326; // Oneof fields. oneof oneof_union { bool oneof_bool = 400; int32 oneof_int32 = 401; sint32 oneof_sint32 = 402; uint32 oneof_uint32 = 403; int64 oneof_int64 = 404; sint64 oneof_sint64 = 405; uint64 oneof_uint64 = 406; fixed32 oneof_fixed32 = 407; sfixed32 oneof_sfixed32 = 408; float oneof_float = 409; fixed64 oneof_fixed64 = 410; sfixed64 oneof_sfixed64 = 411; double oneof_double = 412; string oneof_string = 413; bytes oneof_bytes = 414; ChildEnum oneof_child_enum = 415; ChildMessage oneof_child_message = 416; SiblingEnum oneof_sibling_enum = 417; SiblingMessage oneof_sibling_message = 418; string oneof_string1 = 419; string oneof_string2 = 420; string oneof_string3 = 421; } } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto3_20180430_b4deda09/000077500000000000000000000000001411250152500272465ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto3_20180430_b4deda09/test.pb.go000066400000000000000000001712101411250152500311560ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: proto3_20180430_b4deda09/test.proto package proto3_20180430_b4deda09 // import "google.golang.org/protobuf/internal/testprotos/legacy/proto3_20180430_b4deda09" import proto "google.golang.org/protobuf/internal/protolegacy" import fmt "fmt" import math "math" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. // A compilation error at this line likely means your copy of the // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type SiblingEnum int32 const ( SiblingEnum_ALPHA SiblingEnum = 0 SiblingEnum_BRAVO SiblingEnum = 10 SiblingEnum_CHARLIE SiblingEnum = 200 ) var SiblingEnum_name = map[int32]string{ 0: "ALPHA", 10: "BRAVO", 200: "CHARLIE", } var SiblingEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 10, "CHARLIE": 200, } func (x SiblingEnum) String() string { return proto.EnumName(SiblingEnum_name, int32(x)) } func (SiblingEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor_test_b39f8dbfc888d45a, []int{0} } type Message_ChildEnum int32 const ( Message_ALPHA Message_ChildEnum = 0 Message_BRAVO Message_ChildEnum = 1 Message_CHARLIE Message_ChildEnum = 2 ) var Message_ChildEnum_name = map[int32]string{ 0: "ALPHA", 1: "BRAVO", 2: "CHARLIE", } var Message_ChildEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 1, "CHARLIE": 2, } func (x Message_ChildEnum) String() string { return proto.EnumName(Message_ChildEnum_name, int32(x)) } func (Message_ChildEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor_test_b39f8dbfc888d45a, []int{1, 0} } type SiblingMessage struct { F1 string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 []string `protobuf:"bytes,2,rep,name=f2" json:"f2,omitempty"` F3 *Message `protobuf:"bytes,3,opt,name=f3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *SiblingMessage) Reset() { *m = SiblingMessage{} } func (m *SiblingMessage) String() string { return proto.CompactTextString(m) } func (*SiblingMessage) ProtoMessage() {} func (*SiblingMessage) Descriptor() ([]byte, []int) { return fileDescriptor_test_b39f8dbfc888d45a, []int{0} } func (m *SiblingMessage) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SiblingMessage.Unmarshal(m, b) } func (m *SiblingMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_SiblingMessage.Marshal(b, m, deterministic) } func (dst *SiblingMessage) XXX_Merge(src proto.Message) { xxx_messageInfo_SiblingMessage.Merge(dst, src) } func (m *SiblingMessage) XXX_Size() int { return xxx_messageInfo_SiblingMessage.Size(m) } func (m *SiblingMessage) XXX_DiscardUnknown() { xxx_messageInfo_SiblingMessage.DiscardUnknown(m) } var xxx_messageInfo_SiblingMessage proto.InternalMessageInfo func (m *SiblingMessage) GetF1() string { if m != nil { return m.F1 } return "" } func (m *SiblingMessage) GetF2() []string { if m != nil { return m.F2 } return nil } func (m *SiblingMessage) GetF3() *Message { if m != nil { return m.F3 } return nil } type Message struct { // Optional fields. OptionalBool bool `protobuf:"varint,100,opt,name=optional_bool,json=optionalBool" json:"optional_bool,omitempty"` OptionalInt32 int32 `protobuf:"varint,101,opt,name=optional_int32,json=optionalInt32" json:"optional_int32,omitempty"` OptionalSint32 int32 `protobuf:"zigzag32,102,opt,name=optional_sint32,json=optionalSint32" json:"optional_sint32,omitempty"` OptionalUint32 uint32 `protobuf:"varint,103,opt,name=optional_uint32,json=optionalUint32" json:"optional_uint32,omitempty"` OptionalInt64 int64 `protobuf:"varint,104,opt,name=optional_int64,json=optionalInt64" json:"optional_int64,omitempty"` OptionalSint64 int64 `protobuf:"zigzag64,105,opt,name=optional_sint64,json=optionalSint64" json:"optional_sint64,omitempty"` OptionalUint64 uint64 `protobuf:"varint,106,opt,name=optional_uint64,json=optionalUint64" json:"optional_uint64,omitempty"` OptionalFixed32 uint32 `protobuf:"fixed32,107,opt,name=optional_fixed32,json=optionalFixed32" json:"optional_fixed32,omitempty"` OptionalSfixed32 int32 `protobuf:"fixed32,108,opt,name=optional_sfixed32,json=optionalSfixed32" json:"optional_sfixed32,omitempty"` OptionalFloat float32 `protobuf:"fixed32,109,opt,name=optional_float,json=optionalFloat" json:"optional_float,omitempty"` OptionalFixed64 uint64 `protobuf:"fixed64,110,opt,name=optional_fixed64,json=optionalFixed64" json:"optional_fixed64,omitempty"` OptionalSfixed64 int64 `protobuf:"fixed64,111,opt,name=optional_sfixed64,json=optionalSfixed64" json:"optional_sfixed64,omitempty"` OptionalDouble float64 `protobuf:"fixed64,112,opt,name=optional_double,json=optionalDouble" json:"optional_double,omitempty"` OptionalString string `protobuf:"bytes,113,opt,name=optional_string,json=optionalString" json:"optional_string,omitempty"` OptionalBytes []byte `protobuf:"bytes,114,opt,name=optional_bytes,json=optionalBytes,proto3" json:"optional_bytes,omitempty"` OptionalChildEnum Message_ChildEnum `protobuf:"varint,115,opt,name=optional_child_enum,json=optionalChildEnum,enum=google.golang.org.proto3_20180430.Message_ChildEnum" json:"optional_child_enum,omitempty"` OptionalChildMessage *Message_ChildMessage `protobuf:"bytes,116,opt,name=optional_child_message,json=optionalChildMessage" json:"optional_child_message,omitempty"` OptionalSiblingEnum SiblingEnum `protobuf:"varint,117,opt,name=optional_sibling_enum,json=optionalSiblingEnum,enum=google.golang.org.proto3_20180430.SiblingEnum" json:"optional_sibling_enum,omitempty"` OptionalSiblingMessage *SiblingMessage `protobuf:"bytes,118,opt,name=optional_sibling_message,json=optionalSiblingMessage" json:"optional_sibling_message,omitempty"` // Repeated fields. RepeatedBool []bool `protobuf:"varint,200,rep,packed,name=repeated_bool,json=repeatedBool" json:"repeated_bool,omitempty"` RepeatedInt32 []int32 `protobuf:"varint,201,rep,packed,name=repeated_int32,json=repeatedInt32" json:"repeated_int32,omitempty"` RepeatedSint32 []int32 `protobuf:"zigzag32,202,rep,packed,name=repeated_sint32,json=repeatedSint32" json:"repeated_sint32,omitempty"` RepeatedUint32 []uint32 `protobuf:"varint,203,rep,packed,name=repeated_uint32,json=repeatedUint32" json:"repeated_uint32,omitempty"` RepeatedInt64 []int64 `protobuf:"varint,204,rep,packed,name=repeated_int64,json=repeatedInt64" json:"repeated_int64,omitempty"` RepeatedSint64 []int64 `protobuf:"zigzag64,205,rep,packed,name=repeated_sint64,json=repeatedSint64" json:"repeated_sint64,omitempty"` RepeatedUint64 []uint64 `protobuf:"varint,206,rep,packed,name=repeated_uint64,json=repeatedUint64" json:"repeated_uint64,omitempty"` RepeatedFixed32 []uint32 `protobuf:"fixed32,207,rep,packed,name=repeated_fixed32,json=repeatedFixed32" json:"repeated_fixed32,omitempty"` RepeatedSfixed32 []int32 `protobuf:"fixed32,208,rep,packed,name=repeated_sfixed32,json=repeatedSfixed32" json:"repeated_sfixed32,omitempty"` RepeatedFloat []float32 `protobuf:"fixed32,209,rep,packed,name=repeated_float,json=repeatedFloat" json:"repeated_float,omitempty"` RepeatedFixed64 []uint64 `protobuf:"fixed64,210,rep,packed,name=repeated_fixed64,json=repeatedFixed64" json:"repeated_fixed64,omitempty"` RepeatedSfixed64 []int64 `protobuf:"fixed64,211,rep,packed,name=repeated_sfixed64,json=repeatedSfixed64" json:"repeated_sfixed64,omitempty"` RepeatedDouble []float64 `protobuf:"fixed64,212,rep,packed,name=repeated_double,json=repeatedDouble" json:"repeated_double,omitempty"` RepeatedString []string `protobuf:"bytes,213,rep,name=repeated_string,json=repeatedString" json:"repeated_string,omitempty"` RepeatedBytes [][]byte `protobuf:"bytes,214,rep,name=repeated_bytes,json=repeatedBytes,proto3" json:"repeated_bytes,omitempty"` RepeatedChildEnum []Message_ChildEnum `protobuf:"varint,215,rep,packed,name=repeated_child_enum,json=repeatedChildEnum,enum=google.golang.org.proto3_20180430.Message_ChildEnum" json:"repeated_child_enum,omitempty"` RepeatedChildMessage []*Message_ChildMessage `protobuf:"bytes,216,rep,name=repeated_child_message,json=repeatedChildMessage" json:"repeated_child_message,omitempty"` RepeatedSiblingEnum []SiblingEnum `protobuf:"varint,217,rep,packed,name=repeated_sibling_enum,json=repeatedSiblingEnum,enum=google.golang.org.proto3_20180430.SiblingEnum" json:"repeated_sibling_enum,omitempty"` RepeatedSiblingMessage []*SiblingMessage `protobuf:"bytes,218,rep,name=repeated_sibling_message,json=repeatedSiblingMessage" json:"repeated_sibling_message,omitempty"` // Map fields. MapBoolBool map[bool]bool `protobuf:"bytes,300,rep,name=map_bool_bool,json=mapBoolBool" json:"map_bool_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolInt32 map[bool]int32 `protobuf:"bytes,301,rep,name=map_bool_int32,json=mapBoolInt32" json:"map_bool_int32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolSint32 map[bool]int32 `protobuf:"bytes,302,rep,name=map_bool_sint32,json=mapBoolSint32" json:"map_bool_sint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` MapBoolUint32 map[bool]uint32 `protobuf:"bytes,303,rep,name=map_bool_uint32,json=mapBoolUint32" json:"map_bool_uint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolInt64 map[bool]int64 `protobuf:"bytes,304,rep,name=map_bool_int64,json=mapBoolInt64" json:"map_bool_int64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolSint64 map[bool]int64 `protobuf:"bytes,305,rep,name=map_bool_sint64,json=mapBoolSint64" json:"map_bool_sint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` MapBoolUint64 map[bool]uint64 `protobuf:"bytes,306,rep,name=map_bool_uint64,json=mapBoolUint64" json:"map_bool_uint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapBoolFixed32 map[bool]uint32 `protobuf:"bytes,307,rep,name=map_bool_fixed32,json=mapBoolFixed32" json:"map_bool_fixed32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolSfixed32 map[bool]int32 `protobuf:"bytes,308,rep,name=map_bool_sfixed32,json=mapBoolSfixed32" json:"map_bool_sfixed32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolFloat map[bool]float32 `protobuf:"bytes,309,rep,name=map_bool_float,json=mapBoolFloat" json:"map_bool_float,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapBoolFixed64 map[bool]uint64 `protobuf:"bytes,310,rep,name=map_bool_fixed64,json=mapBoolFixed64" json:"map_bool_fixed64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolSfixed64 map[bool]int64 `protobuf:"bytes,311,rep,name=map_bool_sfixed64,json=mapBoolSfixed64" json:"map_bool_sfixed64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolDouble map[bool]float64 `protobuf:"bytes,312,rep,name=map_bool_double,json=mapBoolDouble" json:"map_bool_double,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolString map[bool]string `protobuf:"bytes,313,rep,name=map_bool_string,json=mapBoolString" json:"map_bool_string,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolBytes map[bool][]byte `protobuf:"bytes,314,rep,name=map_bool_bytes,json=mapBoolBytes" json:"map_bool_bytes,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value,proto3"` MapBoolChildEnum map[bool]Message_ChildEnum `protobuf:"bytes,315,rep,name=map_bool_child_enum,json=mapBoolChildEnum" json:"map_bool_child_enum,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.golang.org.proto3_20180430.Message_ChildEnum"` MapBoolChildMessage map[bool]*Message_ChildMessage `protobuf:"bytes,316,rep,name=map_bool_child_message,json=mapBoolChildMessage" json:"map_bool_child_message,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBoolSiblingEnum map[bool]SiblingEnum `protobuf:"bytes,317,rep,name=map_bool_sibling_enum,json=mapBoolSiblingEnum" json:"map_bool_sibling_enum,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.golang.org.proto3_20180430.SiblingEnum"` MapBoolSiblingMessage map[bool]*SiblingMessage `protobuf:"bytes,318,rep,name=map_bool_sibling_message,json=mapBoolSiblingMessage" json:"map_bool_sibling_message,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapInt32Bool map[int32]bool `protobuf:"bytes,319,rep,name=map_int32_bool,json=mapInt32Bool" json:"map_int32_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapSint32Bool map[int32]bool `protobuf:"bytes,320,rep,name=map_sint32_bool,json=mapSint32Bool" json:"map_sint32_bool,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint32Bool map[uint32]bool `protobuf:"bytes,321,rep,name=map_uint32_bool,json=mapUint32Bool" json:"map_uint32_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapInt64Bool map[int64]bool `protobuf:"bytes,322,rep,name=map_int64_bool,json=mapInt64Bool" json:"map_int64_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapSint64Bool map[int64]bool `protobuf:"bytes,323,rep,name=map_sint64_bool,json=mapSint64Bool" json:"map_sint64_bool,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint64Bool map[uint64]bool `protobuf:"bytes,324,rep,name=map_uint64_bool,json=mapUint64Bool" json:"map_uint64_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapFixed32Bool map[uint32]bool `protobuf:"bytes,325,rep,name=map_fixed32_bool,json=mapFixed32Bool" json:"map_fixed32_bool,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapStringBool map[string]bool `protobuf:"bytes,326,rep,name=map_string_bool,json=mapStringBool" json:"map_string_bool,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // Oneof fields. // // Types that are valid to be assigned to OneofUnion: // *Message_OneofBool // *Message_OneofInt32 // *Message_OneofSint32 // *Message_OneofUint32 // *Message_OneofInt64 // *Message_OneofSint64 // *Message_OneofUint64 // *Message_OneofFixed32 // *Message_OneofSfixed32 // *Message_OneofFloat // *Message_OneofFixed64 // *Message_OneofSfixed64 // *Message_OneofDouble // *Message_OneofString // *Message_OneofBytes // *Message_OneofChildEnum // *Message_OneofChildMessage // *Message_OneofSiblingEnum // *Message_OneofSiblingMessage // *Message_OneofString1 // *Message_OneofString2 // *Message_OneofString3 OneofUnion isMessage_OneofUnion `protobuf_oneof:"oneof_union"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message) Reset() { *m = Message{} } func (m *Message) String() string { return proto.CompactTextString(m) } func (*Message) ProtoMessage() {} func (*Message) Descriptor() ([]byte, []int) { return fileDescriptor_test_b39f8dbfc888d45a, []int{1} } func (m *Message) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message.Unmarshal(m, b) } func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message.Marshal(b, m, deterministic) } func (dst *Message) XXX_Merge(src proto.Message) { xxx_messageInfo_Message.Merge(dst, src) } func (m *Message) XXX_Size() int { return xxx_messageInfo_Message.Size(m) } func (m *Message) XXX_DiscardUnknown() { xxx_messageInfo_Message.DiscardUnknown(m) } var xxx_messageInfo_Message proto.InternalMessageInfo type isMessage_OneofUnion interface { isMessage_OneofUnion() } type Message_OneofBool struct { OneofBool bool `protobuf:"varint,400,opt,name=oneof_bool,json=oneofBool,oneof"` } type Message_OneofInt32 struct { OneofInt32 int32 `protobuf:"varint,401,opt,name=oneof_int32,json=oneofInt32,oneof"` } type Message_OneofSint32 struct { OneofSint32 int32 `protobuf:"zigzag32,402,opt,name=oneof_sint32,json=oneofSint32,oneof"` } type Message_OneofUint32 struct { OneofUint32 uint32 `protobuf:"varint,403,opt,name=oneof_uint32,json=oneofUint32,oneof"` } type Message_OneofInt64 struct { OneofInt64 int64 `protobuf:"varint,404,opt,name=oneof_int64,json=oneofInt64,oneof"` } type Message_OneofSint64 struct { OneofSint64 int64 `protobuf:"zigzag64,405,opt,name=oneof_sint64,json=oneofSint64,oneof"` } type Message_OneofUint64 struct { OneofUint64 uint64 `protobuf:"varint,406,opt,name=oneof_uint64,json=oneofUint64,oneof"` } type Message_OneofFixed32 struct { OneofFixed32 uint32 `protobuf:"fixed32,407,opt,name=oneof_fixed32,json=oneofFixed32,oneof"` } type Message_OneofSfixed32 struct { OneofSfixed32 int32 `protobuf:"fixed32,408,opt,name=oneof_sfixed32,json=oneofSfixed32,oneof"` } type Message_OneofFloat struct { OneofFloat float32 `protobuf:"fixed32,409,opt,name=oneof_float,json=oneofFloat,oneof"` } type Message_OneofFixed64 struct { OneofFixed64 uint64 `protobuf:"fixed64,410,opt,name=oneof_fixed64,json=oneofFixed64,oneof"` } type Message_OneofSfixed64 struct { OneofSfixed64 int64 `protobuf:"fixed64,411,opt,name=oneof_sfixed64,json=oneofSfixed64,oneof"` } type Message_OneofDouble struct { OneofDouble float64 `protobuf:"fixed64,412,opt,name=oneof_double,json=oneofDouble,oneof"` } type Message_OneofString struct { OneofString string `protobuf:"bytes,413,opt,name=oneof_string,json=oneofString,oneof"` } type Message_OneofBytes struct { OneofBytes []byte `protobuf:"bytes,414,opt,name=oneof_bytes,json=oneofBytes,proto3,oneof"` } type Message_OneofChildEnum struct { OneofChildEnum Message_ChildEnum `protobuf:"varint,415,opt,name=oneof_child_enum,json=oneofChildEnum,enum=google.golang.org.proto3_20180430.Message_ChildEnum,oneof"` } type Message_OneofChildMessage struct { OneofChildMessage *Message_ChildMessage `protobuf:"bytes,416,opt,name=oneof_child_message,json=oneofChildMessage,oneof"` } type Message_OneofSiblingEnum struct { OneofSiblingEnum SiblingEnum `protobuf:"varint,417,opt,name=oneof_sibling_enum,json=oneofSiblingEnum,enum=google.golang.org.proto3_20180430.SiblingEnum,oneof"` } type Message_OneofSiblingMessage struct { OneofSiblingMessage *SiblingMessage `protobuf:"bytes,418,opt,name=oneof_sibling_message,json=oneofSiblingMessage,oneof"` } type Message_OneofString1 struct { OneofString1 string `protobuf:"bytes,419,opt,name=oneof_string1,json=oneofString1,oneof"` } type Message_OneofString2 struct { OneofString2 string `protobuf:"bytes,420,opt,name=oneof_string2,json=oneofString2,oneof"` } type Message_OneofString3 struct { OneofString3 string `protobuf:"bytes,421,opt,name=oneof_string3,json=oneofString3,oneof"` } func (*Message_OneofBool) isMessage_OneofUnion() {} func (*Message_OneofInt32) isMessage_OneofUnion() {} func (*Message_OneofSint32) isMessage_OneofUnion() {} func (*Message_OneofUint32) isMessage_OneofUnion() {} func (*Message_OneofInt64) isMessage_OneofUnion() {} func (*Message_OneofSint64) isMessage_OneofUnion() {} func (*Message_OneofUint64) isMessage_OneofUnion() {} func (*Message_OneofFixed32) isMessage_OneofUnion() {} func (*Message_OneofSfixed32) isMessage_OneofUnion() {} func (*Message_OneofFloat) isMessage_OneofUnion() {} func (*Message_OneofFixed64) isMessage_OneofUnion() {} func (*Message_OneofSfixed64) isMessage_OneofUnion() {} func (*Message_OneofDouble) isMessage_OneofUnion() {} func (*Message_OneofString) isMessage_OneofUnion() {} func (*Message_OneofBytes) isMessage_OneofUnion() {} func (*Message_OneofChildEnum) isMessage_OneofUnion() {} func (*Message_OneofChildMessage) isMessage_OneofUnion() {} func (*Message_OneofSiblingEnum) isMessage_OneofUnion() {} func (*Message_OneofSiblingMessage) isMessage_OneofUnion() {} func (*Message_OneofString1) isMessage_OneofUnion() {} func (*Message_OneofString2) isMessage_OneofUnion() {} func (*Message_OneofString3) isMessage_OneofUnion() {} func (m *Message) GetOneofUnion() isMessage_OneofUnion { if m != nil { return m.OneofUnion } return nil } func (m *Message) GetOptionalBool() bool { if m != nil { return m.OptionalBool } return false } func (m *Message) GetOptionalInt32() int32 { if m != nil { return m.OptionalInt32 } return 0 } func (m *Message) GetOptionalSint32() int32 { if m != nil { return m.OptionalSint32 } return 0 } func (m *Message) GetOptionalUint32() uint32 { if m != nil { return m.OptionalUint32 } return 0 } func (m *Message) GetOptionalInt64() int64 { if m != nil { return m.OptionalInt64 } return 0 } func (m *Message) GetOptionalSint64() int64 { if m != nil { return m.OptionalSint64 } return 0 } func (m *Message) GetOptionalUint64() uint64 { if m != nil { return m.OptionalUint64 } return 0 } func (m *Message) GetOptionalFixed32() uint32 { if m != nil { return m.OptionalFixed32 } return 0 } func (m *Message) GetOptionalSfixed32() int32 { if m != nil { return m.OptionalSfixed32 } return 0 } func (m *Message) GetOptionalFloat() float32 { if m != nil { return m.OptionalFloat } return 0 } func (m *Message) GetOptionalFixed64() uint64 { if m != nil { return m.OptionalFixed64 } return 0 } func (m *Message) GetOptionalSfixed64() int64 { if m != nil { return m.OptionalSfixed64 } return 0 } func (m *Message) GetOptionalDouble() float64 { if m != nil { return m.OptionalDouble } return 0 } func (m *Message) GetOptionalString() string { if m != nil { return m.OptionalString } return "" } func (m *Message) GetOptionalBytes() []byte { if m != nil { return m.OptionalBytes } return nil } func (m *Message) GetOptionalChildEnum() Message_ChildEnum { if m != nil { return m.OptionalChildEnum } return Message_ALPHA } func (m *Message) GetOptionalChildMessage() *Message_ChildMessage { if m != nil { return m.OptionalChildMessage } return nil } func (m *Message) GetOptionalSiblingEnum() SiblingEnum { if m != nil { return m.OptionalSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetOptionalSiblingMessage() *SiblingMessage { if m != nil { return m.OptionalSiblingMessage } return nil } func (m *Message) GetRepeatedBool() []bool { if m != nil { return m.RepeatedBool } return nil } func (m *Message) GetRepeatedInt32() []int32 { if m != nil { return m.RepeatedInt32 } return nil } func (m *Message) GetRepeatedSint32() []int32 { if m != nil { return m.RepeatedSint32 } return nil } func (m *Message) GetRepeatedUint32() []uint32 { if m != nil { return m.RepeatedUint32 } return nil } func (m *Message) GetRepeatedInt64() []int64 { if m != nil { return m.RepeatedInt64 } return nil } func (m *Message) GetRepeatedSint64() []int64 { if m != nil { return m.RepeatedSint64 } return nil } func (m *Message) GetRepeatedUint64() []uint64 { if m != nil { return m.RepeatedUint64 } return nil } func (m *Message) GetRepeatedFixed32() []uint32 { if m != nil { return m.RepeatedFixed32 } return nil } func (m *Message) GetRepeatedSfixed32() []int32 { if m != nil { return m.RepeatedSfixed32 } return nil } func (m *Message) GetRepeatedFloat() []float32 { if m != nil { return m.RepeatedFloat } return nil } func (m *Message) GetRepeatedFixed64() []uint64 { if m != nil { return m.RepeatedFixed64 } return nil } func (m *Message) GetRepeatedSfixed64() []int64 { if m != nil { return m.RepeatedSfixed64 } return nil } func (m *Message) GetRepeatedDouble() []float64 { if m != nil { return m.RepeatedDouble } return nil } func (m *Message) GetRepeatedString() []string { if m != nil { return m.RepeatedString } return nil } func (m *Message) GetRepeatedBytes() [][]byte { if m != nil { return m.RepeatedBytes } return nil } func (m *Message) GetRepeatedChildEnum() []Message_ChildEnum { if m != nil { return m.RepeatedChildEnum } return nil } func (m *Message) GetRepeatedChildMessage() []*Message_ChildMessage { if m != nil { return m.RepeatedChildMessage } return nil } func (m *Message) GetRepeatedSiblingEnum() []SiblingEnum { if m != nil { return m.RepeatedSiblingEnum } return nil } func (m *Message) GetRepeatedSiblingMessage() []*SiblingMessage { if m != nil { return m.RepeatedSiblingMessage } return nil } func (m *Message) GetMapBoolBool() map[bool]bool { if m != nil { return m.MapBoolBool } return nil } func (m *Message) GetMapBoolInt32() map[bool]int32 { if m != nil { return m.MapBoolInt32 } return nil } func (m *Message) GetMapBoolSint32() map[bool]int32 { if m != nil { return m.MapBoolSint32 } return nil } func (m *Message) GetMapBoolUint32() map[bool]uint32 { if m != nil { return m.MapBoolUint32 } return nil } func (m *Message) GetMapBoolInt64() map[bool]int64 { if m != nil { return m.MapBoolInt64 } return nil } func (m *Message) GetMapBoolSint64() map[bool]int64 { if m != nil { return m.MapBoolSint64 } return nil } func (m *Message) GetMapBoolUint64() map[bool]uint64 { if m != nil { return m.MapBoolUint64 } return nil } func (m *Message) GetMapBoolFixed32() map[bool]uint32 { if m != nil { return m.MapBoolFixed32 } return nil } func (m *Message) GetMapBoolSfixed32() map[bool]int32 { if m != nil { return m.MapBoolSfixed32 } return nil } func (m *Message) GetMapBoolFloat() map[bool]float32 { if m != nil { return m.MapBoolFloat } return nil } func (m *Message) GetMapBoolFixed64() map[bool]uint64 { if m != nil { return m.MapBoolFixed64 } return nil } func (m *Message) GetMapBoolSfixed64() map[bool]int64 { if m != nil { return m.MapBoolSfixed64 } return nil } func (m *Message) GetMapBoolDouble() map[bool]float64 { if m != nil { return m.MapBoolDouble } return nil } func (m *Message) GetMapBoolString() map[bool]string { if m != nil { return m.MapBoolString } return nil } func (m *Message) GetMapBoolBytes() map[bool][]byte { if m != nil { return m.MapBoolBytes } return nil } func (m *Message) GetMapBoolChildEnum() map[bool]Message_ChildEnum { if m != nil { return m.MapBoolChildEnum } return nil } func (m *Message) GetMapBoolChildMessage() map[bool]*Message_ChildMessage { if m != nil { return m.MapBoolChildMessage } return nil } func (m *Message) GetMapBoolSiblingEnum() map[bool]SiblingEnum { if m != nil { return m.MapBoolSiblingEnum } return nil } func (m *Message) GetMapBoolSiblingMessage() map[bool]*SiblingMessage { if m != nil { return m.MapBoolSiblingMessage } return nil } func (m *Message) GetMapInt32Bool() map[int32]bool { if m != nil { return m.MapInt32Bool } return nil } func (m *Message) GetMapSint32Bool() map[int32]bool { if m != nil { return m.MapSint32Bool } return nil } func (m *Message) GetMapUint32Bool() map[uint32]bool { if m != nil { return m.MapUint32Bool } return nil } func (m *Message) GetMapInt64Bool() map[int64]bool { if m != nil { return m.MapInt64Bool } return nil } func (m *Message) GetMapSint64Bool() map[int64]bool { if m != nil { return m.MapSint64Bool } return nil } func (m *Message) GetMapUint64Bool() map[uint64]bool { if m != nil { return m.MapUint64Bool } return nil } func (m *Message) GetMapFixed32Bool() map[uint32]bool { if m != nil { return m.MapFixed32Bool } return nil } func (m *Message) GetMapStringBool() map[string]bool { if m != nil { return m.MapStringBool } return nil } func (m *Message) GetOneofBool() bool { if x, ok := m.GetOneofUnion().(*Message_OneofBool); ok { return x.OneofBool } return false } func (m *Message) GetOneofInt32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofInt32); ok { return x.OneofInt32 } return 0 } func (m *Message) GetOneofSint32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSint32); ok { return x.OneofSint32 } return 0 } func (m *Message) GetOneofUint32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofUint32); ok { return x.OneofUint32 } return 0 } func (m *Message) GetOneofInt64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofInt64); ok { return x.OneofInt64 } return 0 } func (m *Message) GetOneofSint64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSint64); ok { return x.OneofSint64 } return 0 } func (m *Message) GetOneofUint64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofUint64); ok { return x.OneofUint64 } return 0 } func (m *Message) GetOneofFixed32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed32); ok { return x.OneofFixed32 } return 0 } func (m *Message) GetOneofSfixed32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed32); ok { return x.OneofSfixed32 } return 0 } func (m *Message) GetOneofFloat() float32 { if x, ok := m.GetOneofUnion().(*Message_OneofFloat); ok { return x.OneofFloat } return 0 } func (m *Message) GetOneofFixed64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed64); ok { return x.OneofFixed64 } return 0 } func (m *Message) GetOneofSfixed64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed64); ok { return x.OneofSfixed64 } return 0 } func (m *Message) GetOneofDouble() float64 { if x, ok := m.GetOneofUnion().(*Message_OneofDouble); ok { return x.OneofDouble } return 0 } func (m *Message) GetOneofString() string { if x, ok := m.GetOneofUnion().(*Message_OneofString); ok { return x.OneofString } return "" } func (m *Message) GetOneofBytes() []byte { if x, ok := m.GetOneofUnion().(*Message_OneofBytes); ok { return x.OneofBytes } return nil } func (m *Message) GetOneofChildEnum() Message_ChildEnum { if x, ok := m.GetOneofUnion().(*Message_OneofChildEnum); ok { return x.OneofChildEnum } return Message_ALPHA } func (m *Message) GetOneofChildMessage() *Message_ChildMessage { if x, ok := m.GetOneofUnion().(*Message_OneofChildMessage); ok { return x.OneofChildMessage } return nil } func (m *Message) GetOneofSiblingEnum() SiblingEnum { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingEnum); ok { return x.OneofSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetOneofSiblingMessage() *SiblingMessage { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingMessage); ok { return x.OneofSiblingMessage } return nil } func (m *Message) GetOneofString1() string { if x, ok := m.GetOneofUnion().(*Message_OneofString1); ok { return x.OneofString1 } return "" } func (m *Message) GetOneofString2() string { if x, ok := m.GetOneofUnion().(*Message_OneofString2); ok { return x.OneofString2 } return "" } func (m *Message) GetOneofString3() string { if x, ok := m.GetOneofUnion().(*Message_OneofString3); ok { return x.OneofString3 } return "" } // XXX_OneofFuncs is for the internal use of the proto package. func (*Message) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { return _Message_OneofMarshaler, _Message_OneofUnmarshaler, _Message_OneofSizer, []interface{}{ (*Message_OneofBool)(nil), (*Message_OneofInt32)(nil), (*Message_OneofSint32)(nil), (*Message_OneofUint32)(nil), (*Message_OneofInt64)(nil), (*Message_OneofSint64)(nil), (*Message_OneofUint64)(nil), (*Message_OneofFixed32)(nil), (*Message_OneofSfixed32)(nil), (*Message_OneofFloat)(nil), (*Message_OneofFixed64)(nil), (*Message_OneofSfixed64)(nil), (*Message_OneofDouble)(nil), (*Message_OneofString)(nil), (*Message_OneofBytes)(nil), (*Message_OneofChildEnum)(nil), (*Message_OneofChildMessage)(nil), (*Message_OneofSiblingEnum)(nil), (*Message_OneofSiblingMessage)(nil), (*Message_OneofString1)(nil), (*Message_OneofString2)(nil), (*Message_OneofString3)(nil), } } func _Message_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { m := msg.(*Message) // oneof_union switch x := m.OneofUnion.(type) { case *Message_OneofBool: t := uint64(0) if x.OneofBool { t = 1 } b.EncodeVarint(400<<3 | proto.WireVarint) b.EncodeVarint(t) case *Message_OneofInt32: b.EncodeVarint(401<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofInt32)) case *Message_OneofSint32: b.EncodeVarint(402<<3 | proto.WireVarint) b.EncodeZigzag32(uint64(x.OneofSint32)) case *Message_OneofUint32: b.EncodeVarint(403<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofUint32)) case *Message_OneofInt64: b.EncodeVarint(404<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofInt64)) case *Message_OneofSint64: b.EncodeVarint(405<<3 | proto.WireVarint) b.EncodeZigzag64(uint64(x.OneofSint64)) case *Message_OneofUint64: b.EncodeVarint(406<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofUint64)) case *Message_OneofFixed32: b.EncodeVarint(407<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofFixed32)) case *Message_OneofSfixed32: b.EncodeVarint(408<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofSfixed32)) case *Message_OneofFloat: b.EncodeVarint(409<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(math.Float32bits(x.OneofFloat))) case *Message_OneofFixed64: b.EncodeVarint(410<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofFixed64)) case *Message_OneofSfixed64: b.EncodeVarint(411<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofSfixed64)) case *Message_OneofDouble: b.EncodeVarint(412<<3 | proto.WireFixed64) b.EncodeFixed64(math.Float64bits(x.OneofDouble)) case *Message_OneofString: b.EncodeVarint(413<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString) case *Message_OneofBytes: b.EncodeVarint(414<<3 | proto.WireBytes) b.EncodeRawBytes(x.OneofBytes) case *Message_OneofChildEnum: b.EncodeVarint(415<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofChildEnum)) case *Message_OneofChildMessage: b.EncodeVarint(416<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofChildMessage); err != nil { return err } case *Message_OneofSiblingEnum: b.EncodeVarint(417<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofSiblingEnum)) case *Message_OneofSiblingMessage: b.EncodeVarint(418<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofSiblingMessage); err != nil { return err } case *Message_OneofString1: b.EncodeVarint(419<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString1) case *Message_OneofString2: b.EncodeVarint(420<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString2) case *Message_OneofString3: b.EncodeVarint(421<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString3) case nil: default: return fmt.Errorf("Message.OneofUnion has unexpected type %T", x) } return nil } func _Message_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { m := msg.(*Message) switch tag { case 400: // oneof_union.oneof_bool if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofBool{x != 0} return true, err case 401: // oneof_union.oneof_int32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofInt32{int32(x)} return true, err case 402: // oneof_union.oneof_sint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag32() m.OneofUnion = &Message_OneofSint32{int32(x)} return true, err case 403: // oneof_union.oneof_uint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofUint32{uint32(x)} return true, err case 404: // oneof_union.oneof_int64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofInt64{int64(x)} return true, err case 405: // oneof_union.oneof_sint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag64() m.OneofUnion = &Message_OneofSint64{int64(x)} return true, err case 406: // oneof_union.oneof_uint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofUint64{x} return true, err case 407: // oneof_union.oneof_fixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofFixed32{uint32(x)} return true, err case 408: // oneof_union.oneof_sfixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofSfixed32{int32(x)} return true, err case 409: // oneof_union.oneof_float if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofFloat{math.Float32frombits(uint32(x))} return true, err case 410: // oneof_union.oneof_fixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofFixed64{x} return true, err case 411: // oneof_union.oneof_sfixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofSfixed64{int64(x)} return true, err case 412: // oneof_union.oneof_double if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofDouble{math.Float64frombits(x)} return true, err case 413: // oneof_union.oneof_string if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString{x} return true, err case 414: // oneof_union.oneof_bytes if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeRawBytes(true) m.OneofUnion = &Message_OneofBytes{x} return true, err case 415: // oneof_union.oneof_child_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofChildEnum{Message_ChildEnum(x)} return true, err case 416: // oneof_union.oneof_child_message if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(Message_ChildMessage) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofChildMessage{msg} return true, err case 417: // oneof_union.oneof_sibling_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofSiblingEnum{SiblingEnum(x)} return true, err case 418: // oneof_union.oneof_sibling_message if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(SiblingMessage) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofSiblingMessage{msg} return true, err case 419: // oneof_union.oneof_string1 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString1{x} return true, err case 420: // oneof_union.oneof_string2 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString2{x} return true, err case 421: // oneof_union.oneof_string3 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString3{x} return true, err default: return false, nil } } func _Message_OneofSizer(msg proto.Message) (n int) { m := msg.(*Message) // oneof_union switch x := m.OneofUnion.(type) { case *Message_OneofBool: n += 2 // tag and wire n += 1 case *Message_OneofInt32: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofInt32)) case *Message_OneofSint32: n += 2 // tag and wire n += proto.SizeVarint(uint64((uint32(x.OneofSint32) << 1) ^ uint32((int32(x.OneofSint32) >> 31)))) case *Message_OneofUint32: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofUint32)) case *Message_OneofInt64: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofInt64)) case *Message_OneofSint64: n += 2 // tag and wire n += proto.SizeVarint(uint64(uint64(x.OneofSint64<<1) ^ uint64((int64(x.OneofSint64) >> 63)))) case *Message_OneofUint64: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofUint64)) case *Message_OneofFixed32: n += 2 // tag and wire n += 4 case *Message_OneofSfixed32: n += 2 // tag and wire n += 4 case *Message_OneofFloat: n += 2 // tag and wire n += 4 case *Message_OneofFixed64: n += 2 // tag and wire n += 8 case *Message_OneofSfixed64: n += 2 // tag and wire n += 8 case *Message_OneofDouble: n += 2 // tag and wire n += 8 case *Message_OneofString: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofString))) n += len(x.OneofString) case *Message_OneofBytes: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofBytes))) n += len(x.OneofBytes) case *Message_OneofChildEnum: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofChildEnum)) case *Message_OneofChildMessage: s := proto.Size(x.OneofChildMessage) n += 2 // tag and wire n += proto.SizeVarint(uint64(s)) n += s case *Message_OneofSiblingEnum: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofSiblingEnum)) case *Message_OneofSiblingMessage: s := proto.Size(x.OneofSiblingMessage) n += 2 // tag and wire n += proto.SizeVarint(uint64(s)) n += s case *Message_OneofString1: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofString1))) n += len(x.OneofString1) case *Message_OneofString2: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofString2))) n += len(x.OneofString2) case *Message_OneofString3: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofString3))) n += len(x.OneofString3) case nil: default: panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) } return n } type Message_ChildMessage struct { F1 string `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"` F2 []string `protobuf:"bytes,2,rep,name=f2" json:"f2,omitempty"` F3 *Message `protobuf:"bytes,3,opt,name=f3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_ChildMessage) Reset() { *m = Message_ChildMessage{} } func (m *Message_ChildMessage) String() string { return proto.CompactTextString(m) } func (*Message_ChildMessage) ProtoMessage() {} func (*Message_ChildMessage) Descriptor() ([]byte, []int) { return fileDescriptor_test_b39f8dbfc888d45a, []int{1, 0} } func (m *Message_ChildMessage) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_ChildMessage.Unmarshal(m, b) } func (m *Message_ChildMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_ChildMessage.Marshal(b, m, deterministic) } func (dst *Message_ChildMessage) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_ChildMessage.Merge(dst, src) } func (m *Message_ChildMessage) XXX_Size() int { return xxx_messageInfo_Message_ChildMessage.Size(m) } func (m *Message_ChildMessage) XXX_DiscardUnknown() { xxx_messageInfo_Message_ChildMessage.DiscardUnknown(m) } var xxx_messageInfo_Message_ChildMessage proto.InternalMessageInfo func (m *Message_ChildMessage) GetF1() string { if m != nil { return m.F1 } return "" } func (m *Message_ChildMessage) GetF2() []string { if m != nil { return m.F2 } return nil } func (m *Message_ChildMessage) GetF3() *Message { if m != nil { return m.F3 } return nil } func init() { proto.RegisterType((*SiblingMessage)(nil), "google.golang.org.proto3_20180430.SiblingMessage") proto.RegisterType((*Message)(nil), "google.golang.org.proto3_20180430.Message") proto.RegisterMapType((map[bool]bool)(nil), "google.golang.org.proto3_20180430.Message.MapBoolBoolEntry") proto.RegisterMapType((map[bool][]byte)(nil), "google.golang.org.proto3_20180430.Message.MapBoolBytesEntry") proto.RegisterMapType((map[bool]Message_ChildEnum)(nil), "google.golang.org.proto3_20180430.Message.MapBoolChildEnumEntry") proto.RegisterMapType((map[bool]*Message_ChildMessage)(nil), "google.golang.org.proto3_20180430.Message.MapBoolChildMessageEntry") proto.RegisterMapType((map[bool]float64)(nil), "google.golang.org.proto3_20180430.Message.MapBoolDoubleEntry") proto.RegisterMapType((map[bool]uint32)(nil), "google.golang.org.proto3_20180430.Message.MapBoolFixed32Entry") proto.RegisterMapType((map[bool]uint64)(nil), "google.golang.org.proto3_20180430.Message.MapBoolFixed64Entry") proto.RegisterMapType((map[bool]float32)(nil), "google.golang.org.proto3_20180430.Message.MapBoolFloatEntry") proto.RegisterMapType((map[bool]int32)(nil), "google.golang.org.proto3_20180430.Message.MapBoolInt32Entry") proto.RegisterMapType((map[bool]int64)(nil), "google.golang.org.proto3_20180430.Message.MapBoolInt64Entry") proto.RegisterMapType((map[bool]int32)(nil), "google.golang.org.proto3_20180430.Message.MapBoolSfixed32Entry") proto.RegisterMapType((map[bool]int64)(nil), "google.golang.org.proto3_20180430.Message.MapBoolSfixed64Entry") proto.RegisterMapType((map[bool]SiblingEnum)(nil), "google.golang.org.proto3_20180430.Message.MapBoolSiblingEnumEntry") proto.RegisterMapType((map[bool]*SiblingMessage)(nil), "google.golang.org.proto3_20180430.Message.MapBoolSiblingMessageEntry") proto.RegisterMapType((map[bool]int32)(nil), "google.golang.org.proto3_20180430.Message.MapBoolSint32Entry") proto.RegisterMapType((map[bool]int64)(nil), "google.golang.org.proto3_20180430.Message.MapBoolSint64Entry") proto.RegisterMapType((map[bool]string)(nil), "google.golang.org.proto3_20180430.Message.MapBoolStringEntry") proto.RegisterMapType((map[bool]uint32)(nil), "google.golang.org.proto3_20180430.Message.MapBoolUint32Entry") proto.RegisterMapType((map[bool]uint64)(nil), "google.golang.org.proto3_20180430.Message.MapBoolUint64Entry") proto.RegisterMapType((map[uint32]bool)(nil), "google.golang.org.proto3_20180430.Message.MapFixed32BoolEntry") proto.RegisterMapType((map[int32]bool)(nil), "google.golang.org.proto3_20180430.Message.MapInt32BoolEntry") proto.RegisterMapType((map[int64]bool)(nil), "google.golang.org.proto3_20180430.Message.MapInt64BoolEntry") proto.RegisterMapType((map[int32]bool)(nil), "google.golang.org.proto3_20180430.Message.MapSint32BoolEntry") proto.RegisterMapType((map[int64]bool)(nil), "google.golang.org.proto3_20180430.Message.MapSint64BoolEntry") proto.RegisterMapType((map[string]bool)(nil), "google.golang.org.proto3_20180430.Message.MapStringBoolEntry") proto.RegisterMapType((map[uint32]bool)(nil), "google.golang.org.proto3_20180430.Message.MapUint32BoolEntry") proto.RegisterMapType((map[uint64]bool)(nil), "google.golang.org.proto3_20180430.Message.MapUint64BoolEntry") proto.RegisterType((*Message_ChildMessage)(nil), "google.golang.org.proto3_20180430.Message.ChildMessage") proto.RegisterEnum("google.golang.org.proto3_20180430.SiblingEnum", SiblingEnum_name, SiblingEnum_value) proto.RegisterEnum("google.golang.org.proto3_20180430.Message_ChildEnum", Message_ChildEnum_name, Message_ChildEnum_value) } func init() { proto.RegisterFile("proto3_20180430_b4deda09/test.proto", fileDescriptor_test_b39f8dbfc888d45a) } var fileDescriptor_test_b39f8dbfc888d45a = []byte{ // 1946 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x9a, 0x57, 0x73, 0xdb, 0xca, 0x15, 0xc7, 0x09, 0x52, 0xc5, 0x5a, 0xb1, 0x82, 0x96, 0xb2, 0xa3, 0x27, 0x44, 0x76, 0x1c, 0xc4, 0xc9, 0x50, 0x12, 0xb9, 0x83, 0x38, 0x4e, 0x62, 0x5b, 0xb2, 0xe5, 0xd0, 0x19, 0x3b, 0xf1, 0xc0, 0xa3, 0x3c, 0xe4, 0x45, 0x21, 0x45, 0x90, 0xa6, 0x0d, 0x12, 0x8a, 0x48, 0x7a, 0xa2, 0xc9, 0x83, 0xbf, 0x42, 0x7a, 0xef, 0xe5, 0x2d, 0xbd, 0xf7, 0xee, 0x8c, 0xd3, 0xcb, 0xed, 0xf7, 0xd3, 0xdc, 0x59, 0x1c, 0x6c, 0x03, 0x40, 0x93, 0x04, 0xe7, 0x3e, 0x78, 0x46, 0x3a, 0xfc, 0xef, 0xf9, 0xf1, 0x1c, 0x9c, 0x3d, 0x67, 0x17, 0x16, 0x3a, 0x77, 0x7c, 0xe2, 0x0d, 0xbd, 0xda, 0x61, 0x75, 0x7b, 0xe7, 0xd2, 0x36, 0xa9, 0x6d, 0x1f, 0x36, 0x49, 0xcb, 0x69, 0x35, 0xb6, 0xdf, 0xb1, 0x35, 0x74, 0x06, 0xc3, 0x8a, 0xff, 0xa9, 0xfe, 0xc6, 0x8e, 0xe7, 0x75, 0x5c, 0xa7, 0xd2, 0xf1, 0xdc, 0x46, 0xbf, 0x53, 0xf1, 0x4e, 0x3a, 0x95, 0xd0, 0xb2, 0x4d, 0x17, 0xe5, 0xef, 0x75, 0x9b, 0x6e, 0xb7, 0xdf, 0xb9, 0xe3, 0x0c, 0x06, 0x8d, 0x8e, 0xa3, 0xe7, 0x51, 0xba, 0xbd, 0x83, 0x35, 0x43, 0x33, 0x57, 0xec, 0x74, 0x7b, 0xc7, 0xff, 0xbd, 0x8a, 0xd3, 0x46, 0xc6, 0xff, 0xbd, 0xaa, 0x5f, 0x46, 0xe9, 0x76, 0x0d, 0x67, 0x0c, 0xcd, 0x5c, 0xad, 0x5e, 0xac, 0x4c, 0x24, 0x54, 0x02, 0xbf, 0x76, 0xba, 0x5d, 0xdb, 0x7c, 0x72, 0x0d, 0x2d, 0x33, 0xce, 0x39, 0x94, 0xf3, 0x8e, 0x87, 0x5d, 0xaf, 0xdf, 0x70, 0x0f, 0x9b, 0x9e, 0xe7, 0xe2, 0x96, 0xa1, 0x99, 0x67, 0xec, 0x2c, 0x33, 0xee, 0x79, 0x9e, 0xab, 0xbf, 0x09, 0xe5, 0xb9, 0xa8, 0xdb, 0x1f, 0xd6, 0xaa, 0xd8, 0x31, 0x34, 0x73, 0xd1, 0xe6, 0x4b, 0x6f, 0x51, 0xa3, 0xfe, 0x66, 0x54, 0xe0, 0xb2, 0x01, 0xe8, 0xda, 0x86, 0x66, 0x96, 0x6c, 0xbe, 0xfa, 0x5e, 0x37, 0x22, 0x1c, 0x81, 0xb0, 0x63, 0x68, 0x66, 0x4e, 0x08, 0x0f, 0x40, 0x18, 0x02, 0x5b, 0x04, 0xdf, 0x37, 0x34, 0x33, 0xa3, 0x80, 0x2d, 0x12, 0x01, 0x5b, 0x04, 0x77, 0x0d, 0xcd, 0xd4, 0x55, 0x70, 0x48, 0x38, 0x02, 0xe1, 0x03, 0x43, 0x33, 0x17, 0x54, 0xb0, 0x45, 0xf4, 0xb7, 0xa0, 0x22, 0x17, 0xb6, 0xbb, 0x1f, 0x71, 0x5a, 0xb5, 0x2a, 0x7e, 0x68, 0x68, 0xe6, 0xb2, 0xcd, 0x1d, 0xdc, 0x04, 0xb3, 0xfe, 0x56, 0x54, 0x12, 0x70, 0xa6, 0x75, 0x0d, 0xcd, 0x2c, 0xd8, 0xdc, 0xc7, 0xbd, 0xc0, 0xae, 0x04, 0xd4, 0x76, 0xbd, 0xc6, 0x10, 0xf7, 0x0c, 0xcd, 0x4c, 0x8b, 0x80, 0x6e, 0x52, 0x63, 0x14, 0x6f, 0x11, 0xdc, 0x37, 0x34, 0x73, 0x29, 0x84, 0xb7, 0x48, 0x0c, 0xde, 0x22, 0xd8, 0x33, 0x34, 0xb3, 0x18, 0xc6, 0x87, 0xe2, 0x6f, 0x79, 0xa3, 0xa6, 0xeb, 0xe0, 0x63, 0x43, 0x33, 0x35, 0x11, 0xff, 0x0d, 0xdf, 0xaa, 0x66, 0x74, 0x78, 0xd2, 0xed, 0x77, 0xf0, 0x87, 0xfd, 0x5a, 0x14, 0x19, 0xf5, 0xad, 0x4a, 0x40, 0xcd, 0xd3, 0xa1, 0x33, 0xc0, 0x27, 0x86, 0x66, 0x66, 0x45, 0x40, 0x7b, 0xd4, 0xa8, 0xb7, 0x50, 0x99, 0xcb, 0x8e, 0xee, 0x77, 0xdd, 0xd6, 0xa1, 0xd3, 0x1f, 0xf5, 0xf0, 0xc0, 0xd0, 0xcc, 0x7c, 0x95, 0x4c, 0x5f, 0xbf, 0x95, 0xeb, 0x74, 0xf1, 0x7e, 0x7f, 0xd4, 0xb3, 0x79, 0xd8, 0xdc, 0xa4, 0xf7, 0xd0, 0x7a, 0x88, 0xd2, 0x83, 0x65, 0x78, 0xe8, 0x6f, 0x94, 0xb7, 0xcf, 0x0a, 0x62, 0xbb, 0xe6, 0xac, 0xc2, 0x62, 0x7b, 0xa7, 0x89, 0xd6, 0xa4, 0xb2, 0xf3, 0xb7, 0x2f, 0x84, 0x35, 0xf2, 0xc3, 0xaa, 0x4c, 0x41, 0x0b, 0x76, 0xbd, 0x1f, 0x50, 0x59, 0x14, 0x2b, 0x37, 0xea, 0x0f, 0x11, 0x8e, 0x30, 0x58, 0x50, 0x8f, 0xfc, 0xa0, 0x76, 0xa6, 0xc7, 0xb0, 0x70, 0xd6, 0x43, 0x24, 0x16, 0xd0, 0x79, 0x94, 0x3b, 0x71, 0x8e, 0x9d, 0xc6, 0xd0, 0x69, 0x41, 0x33, 0x78, 0xaa, 0x19, 0x19, 0xda, 0x0d, 0x98, 0xd5, 0xef, 0x06, 0x17, 0x50, 0x9e, 0xab, 0x60, 0xf3, 0xfe, 0x8d, 0xca, 0x16, 0x6d, 0xbe, 0x18, 0xda, 0x81, 0x89, 0x0a, 0x5c, 0x17, 0xb4, 0x83, 0xbf, 0x53, 0x61, 0xc9, 0xe6, 0xeb, 0x83, 0x7e, 0x20, 0x2b, 0x83, 0x7e, 0xf0, 0x0f, 0xaa, 0xcc, 0x09, 0x65, 0xd0, 0x10, 0x42, 0x6c, 0x8b, 0xe0, 0x7f, 0x52, 0x61, 0x46, 0x61, 0x5b, 0x24, 0xc2, 0xb6, 0x08, 0xfe, 0x17, 0x15, 0xea, 0x2a, 0x3b, 0xa4, 0x0c, 0x5a, 0xc2, 0xbf, 0xa9, 0x72, 0x41, 0x65, 0x5b, 0x44, 0xbf, 0x88, 0x8a, 0x5c, 0xc9, 0xf6, 0xf9, 0x7f, 0xa8, 0x74, 0xd9, 0xe6, 0x2e, 0x58, 0x53, 0x78, 0x1b, 0x2a, 0x09, 0x3e, 0x13, 0xff, 0x97, 0x8a, 0x0b, 0x36, 0xf7, 0xc2, 0xbb, 0x82, 0x1c, 0x15, 0x74, 0x85, 0xff, 0x51, 0x69, 0x5a, 0x44, 0x05, 0x6d, 0x21, 0xf2, 0x0d, 0x2c, 0x82, 0xff, 0x4f, 0x95, 0x4b, 0xa1, 0x6f, 0x60, 0x91, 0x98, 0x6f, 0x60, 0x11, 0xfc, 0x1c, 0x15, 0x17, 0xc3, 0xdf, 0x20, 0x94, 0x85, 0xa0, 0x31, 0x3c, 0x4f, 0xb5, 0x9a, 0xc8, 0x42, 0xd0, 0x19, 0x94, 0xcc, 0x42, 0x67, 0x78, 0x41, 0xf3, 0xc7, 0x92, 0xc8, 0x2c, 0xb4, 0x06, 0x39, 0x2a, 0x68, 0x0d, 0x2f, 0x52, 0x61, 0x56, 0x44, 0x05, 0xbd, 0xc1, 0x41, 0x65, 0xae, 0x93, 0x7a, 0xc3, 0x4b, 0x54, 0x9c, 0xb8, 0x39, 0x30, 0x8f, 0xa2, 0x39, 0xf4, 0xd1, 0x7a, 0x08, 0xc3, 0xf6, 0xd1, 0xcb, 0x94, 0x34, 0x4f, 0x77, 0x50, 0x60, 0x6c, 0x33, 0x1d, 0xa1, 0x35, 0xa9, 0x04, 0xa5, 0xee, 0xf0, 0x0a, 0x04, 0x36, 0x73, 0x7b, 0x10, 0x85, 0x2b, 0xda, 0x83, 0x8b, 0x70, 0x04, 0xc2, 0xc2, 0x7a, 0x15, 0xc2, 0x4a, 0xd2, 0x1f, 0x42, 0x28, 0x16, 0xd2, 0x87, 0x50, 0xae, 0xd7, 0x38, 0xf6, 0x5b, 0x03, 0xf4, 0x87, 0xef, 0xa4, 0x7d, 0xc4, 0x3b, 0x67, 0xc8, 0xdc, 0x9d, 0xc6, 0x31, 0xed, 0x22, 0xf4, 0xdf, 0x7e, 0x7f, 0x78, 0x72, 0x6a, 0xaf, 0xf6, 0x84, 0x45, 0x3f, 0x42, 0x79, 0x4e, 0x80, 0x46, 0xf0, 0x5d, 0x40, 0xbc, 0x6b, 0x76, 0x84, 0xdf, 0x85, 0x80, 0x91, 0xed, 0x49, 0x26, 0xbd, 0x8d, 0x0a, 0x1c, 0x12, 0x34, 0xa6, 0xef, 0x01, 0xe5, 0xdd, 0xb3, 0x53, 0xa0, 0x85, 0x01, 0x26, 0xd7, 0x93, 0x6d, 0x0a, 0x27, 0x68, 0x6b, 0xdf, 0x4f, 0xcc, 0x39, 0x88, 0xe1, 0x04, 0x4d, 0x31, 0x94, 0x34, 0x8b, 0xe0, 0x1f, 0xcc, 0x93, 0x34, 0x8b, 0x44, 0x92, 0x66, 0x91, 0x48, 0xd2, 0x2c, 0x82, 0x7f, 0x38, 0x57, 0xd2, 0x18, 0x46, 0x4e, 0x5a, 0x88, 0x13, 0xf4, 0xe3, 0x1f, 0xcd, 0x95, 0xb4, 0x30, 0x27, 0xe8, 0xe6, 0x5d, 0x54, 0xe4, 0x1c, 0xd6, 0xa0, 0x7f, 0x0c, 0xa0, 0x2b, 0xb3, 0x83, 0x82, 0xbe, 0x0f, 0xa4, 0x7c, 0x4f, 0x31, 0xea, 0x2e, 0x2a, 0x89, 0xd4, 0x31, 0xd6, 0x4f, 0x80, 0x75, 0x35, 0x41, 0xf2, 0xda, 0x32, 0xac, 0xd0, 0x53, 0xad, 0x4a, 0x35, 0xc0, 0x30, 0xf9, 0x69, 0xe2, 0x6a, 0xf0, 0xc7, 0x8e, 0x5a, 0x0d, 0x30, 0x89, 0x22, 0xd9, 0xb3, 0x08, 0xfe, 0xd9, 0x7c, 0xd9, 0x63, 0xcf, 0x49, 0xc9, 0x9e, 0x45, 0x62, 0xb2, 0x67, 0x11, 0xfc, 0xf3, 0x39, 0xb3, 0xc7, 0x60, 0x6a, 0xf6, 0x42, 0xe5, 0x17, 0x0c, 0xc2, 0x5f, 0x24, 0x2e, 0x3f, 0x18, 0x99, 0x6a, 0xf9, 0x05, 0x63, 0x54, 0xd9, 0x4e, 0x30, 0x46, 0x7f, 0x99, 0x7c, 0x3b, 0xf9, 0x0e, 0x42, 0xdb, 0x09, 0x86, 0xb0, 0x5c, 0x0d, 0x30, 0x84, 0x7f, 0x95, 0xb8, 0x1a, 0xfc, 0x71, 0xad, 0x56, 0x03, 0x4c, 0xf0, 0x63, 0x54, 0xe6, 0x10, 0x69, 0x82, 0xff, 0x1a, 0x48, 0xd7, 0x66, 0x27, 0xf1, 0xa9, 0x0d, 0xb4, 0x62, 0x2f, 0x64, 0xd6, 0x4f, 0xd1, 0x7a, 0x88, 0xc8, 0xa6, 0xde, 0x6f, 0x00, 0x7a, 0x3d, 0x21, 0x34, 0xb0, 0x01, 0xb7, 0xdc, 0x8b, 0x7e, 0xa2, 0x3f, 0x42, 0x6b, 0x52, 0x23, 0x94, 0xe6, 0xfa, 0x6f, 0x81, 0xbc, 0x97, 0xa4, 0x1d, 0xf2, 0x89, 0x0e, 0x60, 0xbd, 0x17, 0xf9, 0x40, 0x7f, 0x8c, 0x70, 0x84, 0xcb, 0x82, 0xfe, 0x1d, 0xa0, 0xf7, 0x13, 0xa3, 0x95, 0xb0, 0xd7, 0x7a, 0x71, 0x9f, 0xb1, 0x52, 0xf2, 0x67, 0x0e, 0x8c, 0xff, 0xdf, 0x27, 0x2a, 0x25, 0x7f, 0x08, 0x8b, 0xf9, 0x4f, 0x4b, 0x89, 0x9b, 0xd8, 0xbe, 0x18, 0x48, 0x94, 0x3f, 0x24, 0xda, 0x17, 0x30, 0x83, 0x05, 0x86, 0xee, 0x0b, 0x61, 0x63, 0x9c, 0x91, 0xc4, 0xf9, 0x63, 0x22, 0xce, 0x41, 0x0c, 0x47, 0xd8, 0xa4, 0xa4, 0x59, 0x04, 0x30, 0x7f, 0x4a, 0x9a, 0x34, 0x8b, 0x44, 0x92, 0x06, 0x26, 0x39, 0x69, 0x8c, 0xf2, 0xe7, 0xc4, 0x49, 0x93, 0x31, 0x2c, 0x69, 0x2a, 0x67, 0x24, 0x71, 0xfe, 0x92, 0x38, 0x69, 0x61, 0x8e, 0xb0, 0xb1, 0xe9, 0x12, 0x4c, 0x34, 0x00, 0x3d, 0x49, 0x34, 0x5d, 0x82, 0x11, 0x2c, 0x48, 0xf4, 0x69, 0x48, 0x46, 0x9e, 0x3a, 0xbf, 0x5b, 0x02, 0xe9, 0xaf, 0xc9, 0x52, 0xe7, 0x7b, 0x08, 0xa5, 0x8e, 0xdb, 0x74, 0x03, 0x21, 0xaf, 0xef, 0x78, 0x6d, 0x40, 0x7c, 0x2c, 0x63, 0x68, 0xe6, 0x99, 0x7a, 0xca, 0x5e, 0xf1, 0x8d, 0xbe, 0x62, 0x13, 0xad, 0x82, 0x02, 0x4e, 0x8a, 0x1f, 0xa7, 0x92, 0xc5, 0x7a, 0xca, 0x86, 0x75, 0x70, 0x72, 0x3d, 0x8f, 0xb2, 0xa0, 0x09, 0x8e, 0xad, 0x9f, 0xa0, 0xa2, 0x52, 0x3d, 0x65, 0xc3, 0xd2, 0xe0, 0xdc, 0xc9, 0x55, 0xc1, 0xa1, 0xf3, 0x93, 0x54, 0x95, 0xe3, 0xaa, 0xe0, 0xd4, 0x28, 0xf3, 0x2c, 0x82, 0x3f, 0x45, 0x45, 0x19, 0x99, 0x67, 0x11, 0x95, 0x67, 0x11, 0xfc, 0x69, 0x2a, 0xd2, 0x15, 0x9e, 0xac, 0x0a, 0xce, 0x6b, 0x9f, 0xa1, 0xaa, 0x05, 0x85, 0x67, 0x11, 0xfd, 0x02, 0xca, 0x81, 0x8a, 0x9d, 0x80, 0x3e, 0x4b, 0x65, 0xcb, 0xf5, 0x94, 0x0d, 0xab, 0xd9, 0x69, 0xc9, 0x44, 0xf9, 0x80, 0xc9, 0x84, 0x9f, 0xa3, 0xc2, 0x42, 0x3d, 0x65, 0x83, 0x03, 0x7e, 0xd2, 0xe1, 0x11, 0xc0, 0x31, 0xe7, 0xf3, 0x54, 0x96, 0xe6, 0x11, 0xc0, 0x41, 0x45, 0xa5, 0x5a, 0x04, 0x7f, 0x81, 0xaa, 0x96, 0x54, 0xaa, 0x7f, 0x01, 0x56, 0xa8, 0x16, 0xc1, 0x5f, 0xa4, 0xc2, 0x62, 0x88, 0x2a, 0x47, 0x1b, 0x1c, 0x0f, 0xbe, 0x44, 0x75, 0x1a, 0x8f, 0x36, 0x98, 0xef, 0x22, 0x73, 0x30, 0xdc, 0xbf, 0x4c, 0x55, 0x2b, 0x22, 0x73, 0x30, 0x9d, 0x79, 0x04, 0x30, 0x9a, 0xbf, 0x42, 0x45, 0x59, 0x1e, 0x01, 0x0c, 0xd7, 0x06, 0x2a, 0x82, 0x46, 0x9a, 0xac, 0x5f, 0xcd, 0x24, 0x7f, 0x71, 0x56, 0x4f, 0xd9, 0x10, 0xaa, 0x98, 0xa6, 0x0f, 0x50, 0x59, 0x46, 0xb0, 0xa9, 0xf2, 0xb5, 0xcc, 0x5c, 0x6f, 0xcd, 0xea, 0x29, 0xbb, 0x24, 0x40, 0x6c, 0x8a, 0x1c, 0x22, 0x9d, 0x95, 0x94, 0x34, 0x3b, 0xbf, 0x9e, 0x49, 0xf2, 0xca, 0xac, 0x9e, 0xb2, 0x8b, 0x41, 0x21, 0x8a, 0x39, 0x79, 0x1f, 0xad, 0xa9, 0x00, 0x16, 0xce, 0x37, 0x32, 0x09, 0xdf, 0x97, 0xd5, 0x53, 0x76, 0x59, 0xc6, 0xb0, 0x50, 0x78, 0x6d, 0xc1, 0x33, 0xde, 0xc1, 0xdf, 0x64, 0x0f, 0x39, 0x2b, 0x3d, 0xe4, 0x9d, 0xb0, 0xae, 0x8a, 0xbf, 0x15, 0xa7, 0xab, 0x86, 0x75, 0x35, 0xfc, 0xed, 0x38, 0x5d, 0x6d, 0xe3, 0x01, 0xca, 0x2a, 0x29, 0x7d, 0x1d, 0xff, 0xaf, 0x60, 0xe3, 0x0a, 0x2a, 0x86, 0x6f, 0xec, 0x7a, 0x11, 0x65, 0x1e, 0x3a, 0xa7, 0x3e, 0xf0, 0x8c, 0x4d, 0x7f, 0xd4, 0xcf, 0xa2, 0xc5, 0x47, 0x0d, 0x77, 0xe4, 0xe0, 0xb4, 0x6f, 0x83, 0x5f, 0x2e, 0xa7, 0x2f, 0x69, 0x1b, 0x57, 0x51, 0x29, 0x72, 0x1d, 0x9f, 0xe4, 0x60, 0x51, 0x76, 0x70, 0x0d, 0xe9, 0xd1, 0x9b, 0xf6, 0x24, 0x0f, 0xa5, 0x78, 0x0f, 0x07, 0xd3, 0x7b, 0xc8, 0x8d, 0x0d, 0x22, 0xb8, 0x3a, 0x4c, 0x72, 0x90, 0x19, 0x1f, 0xc4, 0x94, 0x1e, 0xf4, 0xf1, 0x41, 0x4c, 0xe9, 0x61, 0x41, 0xf6, 0xb0, 0x8b, 0xca, 0x31, 0x97, 0xd5, 0x49, 0x2e, 0x96, 0x65, 0x17, 0x7b, 0xe8, 0x6c, 0xdc, 0x1d, 0x74, 0x92, 0x8f, 0x42, 0x7c, 0x2e, 0xc5, 0xe5, 0x72, 0x92, 0x83, 0xf4, 0x33, 0xe2, 0x98, 0x32, 0x15, 0x4b, 0xcf, 0x8a, 0x63, 0x4a, 0x1f, 0xc5, 0xf8, 0x07, 0x22, 0xdd, 0xf2, 0x26, 0x79, 0xd0, 0xc6, 0x14, 0x85, 0xb8, 0xbf, 0x4d, 0xf2, 0xb0, 0x12, 0x9f, 0x4b, 0x71, 0x35, 0x9b, 0xe4, 0x20, 0x2b, 0x3b, 0x38, 0x45, 0x6b, 0xb1, 0x37, 0xae, 0x18, 0x27, 0xef, 0x95, 0x9d, 0x24, 0x7d, 0x2d, 0x2b, 0xa1, 0x1f, 0x23, 0x3c, 0xee, 0xde, 0x15, 0x43, 0xbf, 0x23, 0xd3, 0xe7, 0x78, 0x55, 0x2b, 0x7d, 0x81, 0x11, 0x7a, 0xc3, 0x98, 0xeb, 0x57, 0x0c, 0xff, 0x86, 0x1a, 0xfd, 0xac, 0xef, 0x6e, 0x25, 0xec, 0x47, 0xd1, 0xc6, 0xf8, 0xab, 0x57, 0x0c, 0xf9, 0x3d, 0x6a, 0xe4, 0x09, 0xde, 0xe6, 0x46, 0x0a, 0x46, 0xbd, 0x80, 0xc9, 0xcc, 0xc5, 0x49, 0xed, 0x1c, 0x6a, 0x36, 0x74, 0xb7, 0x92, 0x3d, 0x94, 0xa6, 0xf3, 0x70, 0x30, 0xde, 0x43, 0x6e, 0xba, 0x91, 0xa2, 0x5e, 0x88, 0x64, 0x07, 0x99, 0xe9, 0x83, 0x18, 0xe3, 0x41, 0x9f, 0x3e, 0x88, 0x31, 0x1e, 0x16, 0x26, 0x79, 0x80, 0x2e, 0x16, 0xbe, 0x9e, 0xc8, 0x2e, 0x96, 0xa7, 0x0c, 0x43, 0xbd, 0x77, 0xc8, 0x1e, 0x56, 0x26, 0x78, 0xd8, 0xac, 0xa0, 0x15, 0x71, 0x08, 0x5c, 0x41, 0x8b, 0xbb, 0xb7, 0xef, 0xd6, 0x77, 0x8b, 0x29, 0xfa, 0xe3, 0x9e, 0xbd, 0xfb, 0x81, 0xf7, 0x17, 0x35, 0x7d, 0x15, 0x2d, 0x5f, 0xaf, 0xef, 0xda, 0xb7, 0x6f, 0xed, 0x17, 0xd3, 0x7b, 0x39, 0x76, 0x5c, 0x1d, 0xf5, 0xbb, 0x5e, 0xff, 0xe2, 0x0e, 0x5a, 0x95, 0x0f, 0x5e, 0x71, 0x0e, 0x90, 0x9e, 0x15, 0x0e, 0x9e, 0x6a, 0x7b, 0x77, 0x3f, 0xf8, 0xbe, 0x48, 0xfd, 0x6e, 0xf9, 0xf5, 0xdb, 0x1c, 0xb5, 0xb7, 0xba, 0xfd, 0xa1, 0x73, 0xd2, 0x6f, 0xb8, 0xfe, 0x5f, 0x4f, 0xf8, 0xd6, 0xc1, 0x96, 0xeb, 0x74, 0x1a, 0x47, 0xa7, 0x5b, 0xe3, 0xfe, 0xd0, 0xa2, 0xb9, 0x04, 0x9f, 0xbc, 0x16, 0x00, 0x00, 0xff, 0xff, 0xc9, 0x66, 0x05, 0xd3, 0x8b, 0x21, 0x00, 0x00, } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto3_20180430_b4deda09/test.proto000066400000000000000000000105411411250152500313130ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package google.golang.org.proto3_20180430; option go_package = "google.golang.org/protobuf/internal/testprotos/legacy/proto3_20180430_b4deda09"; enum SiblingEnum { ALPHA = 0; BRAVO = 10; CHARLIE = 200; } message SiblingMessage { string f1 = 1; repeated string f2 = 2; Message f3 = 3; } message Message { enum ChildEnum { ALPHA = 0; BRAVO = 1; CHARLIE = 2; } message ChildMessage { string f1 = 1; repeated string f2 = 2; Message f3 = 3; } // Optional fields. bool optional_bool = 100; int32 optional_int32 = 101; sint32 optional_sint32 = 102; uint32 optional_uint32 = 103; int64 optional_int64 = 104; sint64 optional_sint64 = 105; uint64 optional_uint64 = 106; fixed32 optional_fixed32 = 107; sfixed32 optional_sfixed32 = 108; float optional_float = 109; fixed64 optional_fixed64 = 110; sfixed64 optional_sfixed64 = 111; double optional_double = 112; string optional_string = 113; bytes optional_bytes = 114; ChildEnum optional_child_enum = 115; ChildMessage optional_child_message = 116; SiblingEnum optional_sibling_enum = 117; SiblingMessage optional_sibling_message = 118; // Repeated fields. repeated bool repeated_bool = 200; repeated int32 repeated_int32 = 201; repeated sint32 repeated_sint32 = 202; repeated uint32 repeated_uint32 = 203; repeated int64 repeated_int64 = 204; repeated sint64 repeated_sint64 = 205; repeated uint64 repeated_uint64 = 206; repeated fixed32 repeated_fixed32 = 207; repeated sfixed32 repeated_sfixed32 = 208; repeated float repeated_float = 209; repeated fixed64 repeated_fixed64 = 210; repeated sfixed64 repeated_sfixed64 = 211; repeated double repeated_double = 212; repeated string repeated_string = 213; repeated bytes repeated_bytes = 214; repeated ChildEnum repeated_child_enum = 215; repeated ChildMessage repeated_child_message = 216; repeated SiblingEnum repeated_sibling_enum = 217; repeated SiblingMessage repeated_sibling_message = 218; // Map fields. map map_bool_bool = 300; map map_bool_int32 = 301; map map_bool_sint32 = 302; map map_bool_uint32 = 303; map map_bool_int64 = 304; map map_bool_sint64 = 305; map map_bool_uint64 = 306; map map_bool_fixed32 = 307; map map_bool_sfixed32 = 308; map map_bool_float = 309; map map_bool_fixed64 = 310; map map_bool_sfixed64 = 311; map map_bool_double = 312; map map_bool_string = 313; map map_bool_bytes = 314; map map_bool_child_enum = 315; map map_bool_child_message = 316; map map_bool_sibling_enum = 317; map map_bool_sibling_message = 318; map map_int32_bool = 319; map map_sint32_bool = 320; map map_uint32_bool = 321; map map_int64_bool = 322; map map_sint64_bool = 323; map map_uint64_bool = 324; map map_fixed32_bool = 325; map map_string_bool = 326; // Oneof fields. oneof oneof_union { bool oneof_bool = 400; int32 oneof_int32 = 401; sint32 oneof_sint32 = 402; uint32 oneof_uint32 = 403; int64 oneof_int64 = 404; sint64 oneof_sint64 = 405; uint64 oneof_uint64 = 406; fixed32 oneof_fixed32 = 407; sfixed32 oneof_sfixed32 = 408; float oneof_float = 409; fixed64 oneof_fixed64 = 410; sfixed64 oneof_sfixed64 = 411; double oneof_double = 412; string oneof_string = 413; bytes oneof_bytes = 414; ChildEnum oneof_child_enum = 415; ChildMessage oneof_child_message = 416; SiblingEnum oneof_sibling_enum = 417; SiblingMessage oneof_sibling_message = 418; string oneof_string1 = 419; string oneof_string2 = 420; string oneof_string3 = 421; } } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto3_20180814_aa810b61/000077500000000000000000000000001411250152500271035ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto3_20180814_aa810b61/test.pb.go000066400000000000000000001730041411250152500310160ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: proto3_20180814_aa810b61/test.proto package proto3_20180814_aa810b61 // import "google.golang.org/protobuf/internal/testprotos/legacy/proto3_20180814_aa810b61" import proto "google.golang.org/protobuf/internal/protolegacy" import fmt "fmt" import math "math" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. // A compilation error at this line likely means your copy of the // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type SiblingEnum int32 const ( SiblingEnum_ALPHA SiblingEnum = 0 SiblingEnum_BRAVO SiblingEnum = 10 SiblingEnum_CHARLIE SiblingEnum = 200 ) var SiblingEnum_name = map[int32]string{ 0: "ALPHA", 10: "BRAVO", 200: "CHARLIE", } var SiblingEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 10, "CHARLIE": 200, } func (x SiblingEnum) String() string { return proto.EnumName(SiblingEnum_name, int32(x)) } func (SiblingEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor_test_14f9d28b9a7006c3, []int{0} } type Message_ChildEnum int32 const ( Message_ALPHA Message_ChildEnum = 0 Message_BRAVO Message_ChildEnum = 1 Message_CHARLIE Message_ChildEnum = 2 ) var Message_ChildEnum_name = map[int32]string{ 0: "ALPHA", 1: "BRAVO", 2: "CHARLIE", } var Message_ChildEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 1, "CHARLIE": 2, } func (x Message_ChildEnum) String() string { return proto.EnumName(Message_ChildEnum_name, int32(x)) } func (Message_ChildEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor_test_14f9d28b9a7006c3, []int{1, 0} } type SiblingMessage struct { F1 string `protobuf:"bytes,1,opt,name=f1,proto3" json:"f1,omitempty"` F2 []string `protobuf:"bytes,2,rep,name=f2,proto3" json:"f2,omitempty"` F3 *Message `protobuf:"bytes,3,opt,name=f3,proto3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *SiblingMessage) Reset() { *m = SiblingMessage{} } func (m *SiblingMessage) String() string { return proto.CompactTextString(m) } func (*SiblingMessage) ProtoMessage() {} func (*SiblingMessage) Descriptor() ([]byte, []int) { return fileDescriptor_test_14f9d28b9a7006c3, []int{0} } func (m *SiblingMessage) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SiblingMessage.Unmarshal(m, b) } func (m *SiblingMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_SiblingMessage.Marshal(b, m, deterministic) } func (dst *SiblingMessage) XXX_Merge(src proto.Message) { xxx_messageInfo_SiblingMessage.Merge(dst, src) } func (m *SiblingMessage) XXX_Size() int { return xxx_messageInfo_SiblingMessage.Size(m) } func (m *SiblingMessage) XXX_DiscardUnknown() { xxx_messageInfo_SiblingMessage.DiscardUnknown(m) } var xxx_messageInfo_SiblingMessage proto.InternalMessageInfo func (m *SiblingMessage) GetF1() string { if m != nil { return m.F1 } return "" } func (m *SiblingMessage) GetF2() []string { if m != nil { return m.F2 } return nil } func (m *SiblingMessage) GetF3() *Message { if m != nil { return m.F3 } return nil } type Message struct { // Optional fields. OptionalBool bool `protobuf:"varint,100,opt,name=optional_bool,json=optionalBool,proto3" json:"optional_bool,omitempty"` OptionalInt32 int32 `protobuf:"varint,101,opt,name=optional_int32,json=optionalInt32,proto3" json:"optional_int32,omitempty"` OptionalSint32 int32 `protobuf:"zigzag32,102,opt,name=optional_sint32,json=optionalSint32,proto3" json:"optional_sint32,omitempty"` OptionalUint32 uint32 `protobuf:"varint,103,opt,name=optional_uint32,json=optionalUint32,proto3" json:"optional_uint32,omitempty"` OptionalInt64 int64 `protobuf:"varint,104,opt,name=optional_int64,json=optionalInt64,proto3" json:"optional_int64,omitempty"` OptionalSint64 int64 `protobuf:"zigzag64,105,opt,name=optional_sint64,json=optionalSint64,proto3" json:"optional_sint64,omitempty"` OptionalUint64 uint64 `protobuf:"varint,106,opt,name=optional_uint64,json=optionalUint64,proto3" json:"optional_uint64,omitempty"` OptionalFixed32 uint32 `protobuf:"fixed32,107,opt,name=optional_fixed32,json=optionalFixed32,proto3" json:"optional_fixed32,omitempty"` OptionalSfixed32 int32 `protobuf:"fixed32,108,opt,name=optional_sfixed32,json=optionalSfixed32,proto3" json:"optional_sfixed32,omitempty"` OptionalFloat float32 `protobuf:"fixed32,109,opt,name=optional_float,json=optionalFloat,proto3" json:"optional_float,omitempty"` OptionalFixed64 uint64 `protobuf:"fixed64,110,opt,name=optional_fixed64,json=optionalFixed64,proto3" json:"optional_fixed64,omitempty"` OptionalSfixed64 int64 `protobuf:"fixed64,111,opt,name=optional_sfixed64,json=optionalSfixed64,proto3" json:"optional_sfixed64,omitempty"` OptionalDouble float64 `protobuf:"fixed64,112,opt,name=optional_double,json=optionalDouble,proto3" json:"optional_double,omitempty"` OptionalString string `protobuf:"bytes,113,opt,name=optional_string,json=optionalString,proto3" json:"optional_string,omitempty"` OptionalBytes []byte `protobuf:"bytes,114,opt,name=optional_bytes,json=optionalBytes,proto3" json:"optional_bytes,omitempty"` OptionalChildEnum Message_ChildEnum `protobuf:"varint,115,opt,name=optional_child_enum,json=optionalChildEnum,proto3,enum=google.golang.org.proto3_20180814.Message_ChildEnum" json:"optional_child_enum,omitempty"` OptionalChildMessage *Message_ChildMessage `protobuf:"bytes,116,opt,name=optional_child_message,json=optionalChildMessage,proto3" json:"optional_child_message,omitempty"` OptionalSiblingEnum SiblingEnum `protobuf:"varint,117,opt,name=optional_sibling_enum,json=optionalSiblingEnum,proto3,enum=google.golang.org.proto3_20180814.SiblingEnum" json:"optional_sibling_enum,omitempty"` OptionalSiblingMessage *SiblingMessage `protobuf:"bytes,118,opt,name=optional_sibling_message,json=optionalSiblingMessage,proto3" json:"optional_sibling_message,omitempty"` // Repeated fields. RepeatedBool []bool `protobuf:"varint,200,rep,packed,name=repeated_bool,json=repeatedBool,proto3" json:"repeated_bool,omitempty"` RepeatedInt32 []int32 `protobuf:"varint,201,rep,packed,name=repeated_int32,json=repeatedInt32,proto3" json:"repeated_int32,omitempty"` RepeatedSint32 []int32 `protobuf:"zigzag32,202,rep,packed,name=repeated_sint32,json=repeatedSint32,proto3" json:"repeated_sint32,omitempty"` RepeatedUint32 []uint32 `protobuf:"varint,203,rep,packed,name=repeated_uint32,json=repeatedUint32,proto3" json:"repeated_uint32,omitempty"` RepeatedInt64 []int64 `protobuf:"varint,204,rep,packed,name=repeated_int64,json=repeatedInt64,proto3" json:"repeated_int64,omitempty"` RepeatedSint64 []int64 `protobuf:"zigzag64,205,rep,packed,name=repeated_sint64,json=repeatedSint64,proto3" json:"repeated_sint64,omitempty"` RepeatedUint64 []uint64 `protobuf:"varint,206,rep,packed,name=repeated_uint64,json=repeatedUint64,proto3" json:"repeated_uint64,omitempty"` RepeatedFixed32 []uint32 `protobuf:"fixed32,207,rep,packed,name=repeated_fixed32,json=repeatedFixed32,proto3" json:"repeated_fixed32,omitempty"` RepeatedSfixed32 []int32 `protobuf:"fixed32,208,rep,packed,name=repeated_sfixed32,json=repeatedSfixed32,proto3" json:"repeated_sfixed32,omitempty"` RepeatedFloat []float32 `protobuf:"fixed32,209,rep,packed,name=repeated_float,json=repeatedFloat,proto3" json:"repeated_float,omitempty"` RepeatedFixed64 []uint64 `protobuf:"fixed64,210,rep,packed,name=repeated_fixed64,json=repeatedFixed64,proto3" json:"repeated_fixed64,omitempty"` RepeatedSfixed64 []int64 `protobuf:"fixed64,211,rep,packed,name=repeated_sfixed64,json=repeatedSfixed64,proto3" json:"repeated_sfixed64,omitempty"` RepeatedDouble []float64 `protobuf:"fixed64,212,rep,packed,name=repeated_double,json=repeatedDouble,proto3" json:"repeated_double,omitempty"` RepeatedString []string `protobuf:"bytes,213,rep,name=repeated_string,json=repeatedString,proto3" json:"repeated_string,omitempty"` RepeatedBytes [][]byte `protobuf:"bytes,214,rep,name=repeated_bytes,json=repeatedBytes,proto3" json:"repeated_bytes,omitempty"` RepeatedChildEnum []Message_ChildEnum `protobuf:"varint,215,rep,packed,name=repeated_child_enum,json=repeatedChildEnum,proto3,enum=google.golang.org.proto3_20180814.Message_ChildEnum" json:"repeated_child_enum,omitempty"` RepeatedChildMessage []*Message_ChildMessage `protobuf:"bytes,216,rep,name=repeated_child_message,json=repeatedChildMessage,proto3" json:"repeated_child_message,omitempty"` RepeatedSiblingEnum []SiblingEnum `protobuf:"varint,217,rep,packed,name=repeated_sibling_enum,json=repeatedSiblingEnum,proto3,enum=google.golang.org.proto3_20180814.SiblingEnum" json:"repeated_sibling_enum,omitempty"` RepeatedSiblingMessage []*SiblingMessage `protobuf:"bytes,218,rep,name=repeated_sibling_message,json=repeatedSiblingMessage,proto3" json:"repeated_sibling_message,omitempty"` // Map fields. MapBoolBool map[bool]bool `protobuf:"bytes,300,rep,name=map_bool_bool,json=mapBoolBool,proto3" json:"map_bool_bool,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapBoolInt32 map[bool]int32 `protobuf:"bytes,301,rep,name=map_bool_int32,json=mapBoolInt32,proto3" json:"map_bool_int32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapBoolSint32 map[bool]int32 `protobuf:"bytes,302,rep,name=map_bool_sint32,json=mapBoolSint32,proto3" json:"map_bool_sint32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` MapBoolUint32 map[bool]uint32 `protobuf:"bytes,303,rep,name=map_bool_uint32,json=mapBoolUint32,proto3" json:"map_bool_uint32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapBoolInt64 map[bool]int64 `protobuf:"bytes,304,rep,name=map_bool_int64,json=mapBoolInt64,proto3" json:"map_bool_int64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapBoolSint64 map[bool]int64 `protobuf:"bytes,305,rep,name=map_bool_sint64,json=mapBoolSint64,proto3" json:"map_bool_sint64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` MapBoolUint64 map[bool]uint64 `protobuf:"bytes,306,rep,name=map_bool_uint64,json=mapBoolUint64,proto3" json:"map_bool_uint64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapBoolFixed32 map[bool]uint32 `protobuf:"bytes,307,rep,name=map_bool_fixed32,json=mapBoolFixed32,proto3" json:"map_bool_fixed32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` MapBoolSfixed32 map[bool]int32 `protobuf:"bytes,308,rep,name=map_bool_sfixed32,json=mapBoolSfixed32,proto3" json:"map_bool_sfixed32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` MapBoolFloat map[bool]float32 `protobuf:"bytes,309,rep,name=map_bool_float,json=mapBoolFloat,proto3" json:"map_bool_float,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` MapBoolFixed64 map[bool]uint64 `protobuf:"bytes,310,rep,name=map_bool_fixed64,json=mapBoolFixed64,proto3" json:"map_bool_fixed64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` MapBoolSfixed64 map[bool]int64 `protobuf:"bytes,311,rep,name=map_bool_sfixed64,json=mapBoolSfixed64,proto3" json:"map_bool_sfixed64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` MapBoolDouble map[bool]float64 `protobuf:"bytes,312,rep,name=map_bool_double,json=mapBoolDouble,proto3" json:"map_bool_double,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` MapBoolString map[bool]string `protobuf:"bytes,313,rep,name=map_bool_string,json=mapBoolString,proto3" json:"map_bool_string,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` MapBoolBytes map[bool][]byte `protobuf:"bytes,314,rep,name=map_bool_bytes,json=mapBoolBytes,proto3" json:"map_bool_bytes,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` MapBoolChildEnum map[bool]Message_ChildEnum `protobuf:"bytes,315,rep,name=map_bool_child_enum,json=mapBoolChildEnum,proto3" json:"map_bool_child_enum,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=google.golang.org.proto3_20180814.Message_ChildEnum"` MapBoolChildMessage map[bool]*Message_ChildMessage `protobuf:"bytes,316,rep,name=map_bool_child_message,json=mapBoolChildMessage,proto3" json:"map_bool_child_message,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` MapBoolSiblingEnum map[bool]SiblingEnum `protobuf:"bytes,317,rep,name=map_bool_sibling_enum,json=mapBoolSiblingEnum,proto3" json:"map_bool_sibling_enum,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=google.golang.org.proto3_20180814.SiblingEnum"` MapBoolSiblingMessage map[bool]*SiblingMessage `protobuf:"bytes,318,rep,name=map_bool_sibling_message,json=mapBoolSiblingMessage,proto3" json:"map_bool_sibling_message,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` MapInt32Bool map[int32]bool `protobuf:"bytes,319,rep,name=map_int32_bool,json=mapInt32Bool,proto3" json:"map_int32_bool,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapSint32Bool map[int32]bool `protobuf:"bytes,320,rep,name=map_sint32_bool,json=mapSint32Bool,proto3" json:"map_sint32_bool,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapUint32Bool map[uint32]bool `protobuf:"bytes,321,rep,name=map_uint32_bool,json=mapUint32Bool,proto3" json:"map_uint32_bool,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapInt64Bool map[int64]bool `protobuf:"bytes,322,rep,name=map_int64_bool,json=mapInt64Bool,proto3" json:"map_int64_bool,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapSint64Bool map[int64]bool `protobuf:"bytes,323,rep,name=map_sint64_bool,json=mapSint64Bool,proto3" json:"map_sint64_bool,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapUint64Bool map[uint64]bool `protobuf:"bytes,324,rep,name=map_uint64_bool,json=mapUint64Bool,proto3" json:"map_uint64_bool,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapFixed32Bool map[uint32]bool `protobuf:"bytes,325,rep,name=map_fixed32_bool,json=mapFixed32Bool,proto3" json:"map_fixed32_bool,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapStringBool map[string]bool `protobuf:"bytes,326,rep,name=map_string_bool,json=mapStringBool,proto3" json:"map_string_bool,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // Oneof fields. // // Types that are valid to be assigned to OneofUnion: // *Message_OneofBool // *Message_OneofInt32 // *Message_OneofSint32 // *Message_OneofUint32 // *Message_OneofInt64 // *Message_OneofSint64 // *Message_OneofUint64 // *Message_OneofFixed32 // *Message_OneofSfixed32 // *Message_OneofFloat // *Message_OneofFixed64 // *Message_OneofSfixed64 // *Message_OneofDouble // *Message_OneofString // *Message_OneofBytes // *Message_OneofChildEnum // *Message_OneofChildMessage // *Message_OneofSiblingEnum // *Message_OneofSiblingMessage // *Message_OneofString1 // *Message_OneofString2 // *Message_OneofString3 OneofUnion isMessage_OneofUnion `protobuf_oneof:"oneof_union"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message) Reset() { *m = Message{} } func (m *Message) String() string { return proto.CompactTextString(m) } func (*Message) ProtoMessage() {} func (*Message) Descriptor() ([]byte, []int) { return fileDescriptor_test_14f9d28b9a7006c3, []int{1} } func (m *Message) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message.Unmarshal(m, b) } func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message.Marshal(b, m, deterministic) } func (dst *Message) XXX_Merge(src proto.Message) { xxx_messageInfo_Message.Merge(dst, src) } func (m *Message) XXX_Size() int { return xxx_messageInfo_Message.Size(m) } func (m *Message) XXX_DiscardUnknown() { xxx_messageInfo_Message.DiscardUnknown(m) } var xxx_messageInfo_Message proto.InternalMessageInfo func (m *Message) GetOptionalBool() bool { if m != nil { return m.OptionalBool } return false } func (m *Message) GetOptionalInt32() int32 { if m != nil { return m.OptionalInt32 } return 0 } func (m *Message) GetOptionalSint32() int32 { if m != nil { return m.OptionalSint32 } return 0 } func (m *Message) GetOptionalUint32() uint32 { if m != nil { return m.OptionalUint32 } return 0 } func (m *Message) GetOptionalInt64() int64 { if m != nil { return m.OptionalInt64 } return 0 } func (m *Message) GetOptionalSint64() int64 { if m != nil { return m.OptionalSint64 } return 0 } func (m *Message) GetOptionalUint64() uint64 { if m != nil { return m.OptionalUint64 } return 0 } func (m *Message) GetOptionalFixed32() uint32 { if m != nil { return m.OptionalFixed32 } return 0 } func (m *Message) GetOptionalSfixed32() int32 { if m != nil { return m.OptionalSfixed32 } return 0 } func (m *Message) GetOptionalFloat() float32 { if m != nil { return m.OptionalFloat } return 0 } func (m *Message) GetOptionalFixed64() uint64 { if m != nil { return m.OptionalFixed64 } return 0 } func (m *Message) GetOptionalSfixed64() int64 { if m != nil { return m.OptionalSfixed64 } return 0 } func (m *Message) GetOptionalDouble() float64 { if m != nil { return m.OptionalDouble } return 0 } func (m *Message) GetOptionalString() string { if m != nil { return m.OptionalString } return "" } func (m *Message) GetOptionalBytes() []byte { if m != nil { return m.OptionalBytes } return nil } func (m *Message) GetOptionalChildEnum() Message_ChildEnum { if m != nil { return m.OptionalChildEnum } return Message_ALPHA } func (m *Message) GetOptionalChildMessage() *Message_ChildMessage { if m != nil { return m.OptionalChildMessage } return nil } func (m *Message) GetOptionalSiblingEnum() SiblingEnum { if m != nil { return m.OptionalSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetOptionalSiblingMessage() *SiblingMessage { if m != nil { return m.OptionalSiblingMessage } return nil } func (m *Message) GetRepeatedBool() []bool { if m != nil { return m.RepeatedBool } return nil } func (m *Message) GetRepeatedInt32() []int32 { if m != nil { return m.RepeatedInt32 } return nil } func (m *Message) GetRepeatedSint32() []int32 { if m != nil { return m.RepeatedSint32 } return nil } func (m *Message) GetRepeatedUint32() []uint32 { if m != nil { return m.RepeatedUint32 } return nil } func (m *Message) GetRepeatedInt64() []int64 { if m != nil { return m.RepeatedInt64 } return nil } func (m *Message) GetRepeatedSint64() []int64 { if m != nil { return m.RepeatedSint64 } return nil } func (m *Message) GetRepeatedUint64() []uint64 { if m != nil { return m.RepeatedUint64 } return nil } func (m *Message) GetRepeatedFixed32() []uint32 { if m != nil { return m.RepeatedFixed32 } return nil } func (m *Message) GetRepeatedSfixed32() []int32 { if m != nil { return m.RepeatedSfixed32 } return nil } func (m *Message) GetRepeatedFloat() []float32 { if m != nil { return m.RepeatedFloat } return nil } func (m *Message) GetRepeatedFixed64() []uint64 { if m != nil { return m.RepeatedFixed64 } return nil } func (m *Message) GetRepeatedSfixed64() []int64 { if m != nil { return m.RepeatedSfixed64 } return nil } func (m *Message) GetRepeatedDouble() []float64 { if m != nil { return m.RepeatedDouble } return nil } func (m *Message) GetRepeatedString() []string { if m != nil { return m.RepeatedString } return nil } func (m *Message) GetRepeatedBytes() [][]byte { if m != nil { return m.RepeatedBytes } return nil } func (m *Message) GetRepeatedChildEnum() []Message_ChildEnum { if m != nil { return m.RepeatedChildEnum } return nil } func (m *Message) GetRepeatedChildMessage() []*Message_ChildMessage { if m != nil { return m.RepeatedChildMessage } return nil } func (m *Message) GetRepeatedSiblingEnum() []SiblingEnum { if m != nil { return m.RepeatedSiblingEnum } return nil } func (m *Message) GetRepeatedSiblingMessage() []*SiblingMessage { if m != nil { return m.RepeatedSiblingMessage } return nil } func (m *Message) GetMapBoolBool() map[bool]bool { if m != nil { return m.MapBoolBool } return nil } func (m *Message) GetMapBoolInt32() map[bool]int32 { if m != nil { return m.MapBoolInt32 } return nil } func (m *Message) GetMapBoolSint32() map[bool]int32 { if m != nil { return m.MapBoolSint32 } return nil } func (m *Message) GetMapBoolUint32() map[bool]uint32 { if m != nil { return m.MapBoolUint32 } return nil } func (m *Message) GetMapBoolInt64() map[bool]int64 { if m != nil { return m.MapBoolInt64 } return nil } func (m *Message) GetMapBoolSint64() map[bool]int64 { if m != nil { return m.MapBoolSint64 } return nil } func (m *Message) GetMapBoolUint64() map[bool]uint64 { if m != nil { return m.MapBoolUint64 } return nil } func (m *Message) GetMapBoolFixed32() map[bool]uint32 { if m != nil { return m.MapBoolFixed32 } return nil } func (m *Message) GetMapBoolSfixed32() map[bool]int32 { if m != nil { return m.MapBoolSfixed32 } return nil } func (m *Message) GetMapBoolFloat() map[bool]float32 { if m != nil { return m.MapBoolFloat } return nil } func (m *Message) GetMapBoolFixed64() map[bool]uint64 { if m != nil { return m.MapBoolFixed64 } return nil } func (m *Message) GetMapBoolSfixed64() map[bool]int64 { if m != nil { return m.MapBoolSfixed64 } return nil } func (m *Message) GetMapBoolDouble() map[bool]float64 { if m != nil { return m.MapBoolDouble } return nil } func (m *Message) GetMapBoolString() map[bool]string { if m != nil { return m.MapBoolString } return nil } func (m *Message) GetMapBoolBytes() map[bool][]byte { if m != nil { return m.MapBoolBytes } return nil } func (m *Message) GetMapBoolChildEnum() map[bool]Message_ChildEnum { if m != nil { return m.MapBoolChildEnum } return nil } func (m *Message) GetMapBoolChildMessage() map[bool]*Message_ChildMessage { if m != nil { return m.MapBoolChildMessage } return nil } func (m *Message) GetMapBoolSiblingEnum() map[bool]SiblingEnum { if m != nil { return m.MapBoolSiblingEnum } return nil } func (m *Message) GetMapBoolSiblingMessage() map[bool]*SiblingMessage { if m != nil { return m.MapBoolSiblingMessage } return nil } func (m *Message) GetMapInt32Bool() map[int32]bool { if m != nil { return m.MapInt32Bool } return nil } func (m *Message) GetMapSint32Bool() map[int32]bool { if m != nil { return m.MapSint32Bool } return nil } func (m *Message) GetMapUint32Bool() map[uint32]bool { if m != nil { return m.MapUint32Bool } return nil } func (m *Message) GetMapInt64Bool() map[int64]bool { if m != nil { return m.MapInt64Bool } return nil } func (m *Message) GetMapSint64Bool() map[int64]bool { if m != nil { return m.MapSint64Bool } return nil } func (m *Message) GetMapUint64Bool() map[uint64]bool { if m != nil { return m.MapUint64Bool } return nil } func (m *Message) GetMapFixed32Bool() map[uint32]bool { if m != nil { return m.MapFixed32Bool } return nil } func (m *Message) GetMapStringBool() map[string]bool { if m != nil { return m.MapStringBool } return nil } type isMessage_OneofUnion interface { isMessage_OneofUnion() } type Message_OneofBool struct { OneofBool bool `protobuf:"varint,400,opt,name=oneof_bool,json=oneofBool,proto3,oneof"` } type Message_OneofInt32 struct { OneofInt32 int32 `protobuf:"varint,401,opt,name=oneof_int32,json=oneofInt32,proto3,oneof"` } type Message_OneofSint32 struct { OneofSint32 int32 `protobuf:"zigzag32,402,opt,name=oneof_sint32,json=oneofSint32,proto3,oneof"` } type Message_OneofUint32 struct { OneofUint32 uint32 `protobuf:"varint,403,opt,name=oneof_uint32,json=oneofUint32,proto3,oneof"` } type Message_OneofInt64 struct { OneofInt64 int64 `protobuf:"varint,404,opt,name=oneof_int64,json=oneofInt64,proto3,oneof"` } type Message_OneofSint64 struct { OneofSint64 int64 `protobuf:"zigzag64,405,opt,name=oneof_sint64,json=oneofSint64,proto3,oneof"` } type Message_OneofUint64 struct { OneofUint64 uint64 `protobuf:"varint,406,opt,name=oneof_uint64,json=oneofUint64,proto3,oneof"` } type Message_OneofFixed32 struct { OneofFixed32 uint32 `protobuf:"fixed32,407,opt,name=oneof_fixed32,json=oneofFixed32,proto3,oneof"` } type Message_OneofSfixed32 struct { OneofSfixed32 int32 `protobuf:"fixed32,408,opt,name=oneof_sfixed32,json=oneofSfixed32,proto3,oneof"` } type Message_OneofFloat struct { OneofFloat float32 `protobuf:"fixed32,409,opt,name=oneof_float,json=oneofFloat,proto3,oneof"` } type Message_OneofFixed64 struct { OneofFixed64 uint64 `protobuf:"fixed64,410,opt,name=oneof_fixed64,json=oneofFixed64,proto3,oneof"` } type Message_OneofSfixed64 struct { OneofSfixed64 int64 `protobuf:"fixed64,411,opt,name=oneof_sfixed64,json=oneofSfixed64,proto3,oneof"` } type Message_OneofDouble struct { OneofDouble float64 `protobuf:"fixed64,412,opt,name=oneof_double,json=oneofDouble,proto3,oneof"` } type Message_OneofString struct { OneofString string `protobuf:"bytes,413,opt,name=oneof_string,json=oneofString,proto3,oneof"` } type Message_OneofBytes struct { OneofBytes []byte `protobuf:"bytes,414,opt,name=oneof_bytes,json=oneofBytes,proto3,oneof"` } type Message_OneofChildEnum struct { OneofChildEnum Message_ChildEnum `protobuf:"varint,415,opt,name=oneof_child_enum,json=oneofChildEnum,proto3,enum=google.golang.org.proto3_20180814.Message_ChildEnum,oneof"` } type Message_OneofChildMessage struct { OneofChildMessage *Message_ChildMessage `protobuf:"bytes,416,opt,name=oneof_child_message,json=oneofChildMessage,proto3,oneof"` } type Message_OneofSiblingEnum struct { OneofSiblingEnum SiblingEnum `protobuf:"varint,417,opt,name=oneof_sibling_enum,json=oneofSiblingEnum,proto3,enum=google.golang.org.proto3_20180814.SiblingEnum,oneof"` } type Message_OneofSiblingMessage struct { OneofSiblingMessage *SiblingMessage `protobuf:"bytes,418,opt,name=oneof_sibling_message,json=oneofSiblingMessage,proto3,oneof"` } type Message_OneofString1 struct { OneofString1 string `protobuf:"bytes,419,opt,name=oneof_string1,json=oneofString1,proto3,oneof"` } type Message_OneofString2 struct { OneofString2 string `protobuf:"bytes,420,opt,name=oneof_string2,json=oneofString2,proto3,oneof"` } type Message_OneofString3 struct { OneofString3 string `protobuf:"bytes,421,opt,name=oneof_string3,json=oneofString3,proto3,oneof"` } func (*Message_OneofBool) isMessage_OneofUnion() {} func (*Message_OneofInt32) isMessage_OneofUnion() {} func (*Message_OneofSint32) isMessage_OneofUnion() {} func (*Message_OneofUint32) isMessage_OneofUnion() {} func (*Message_OneofInt64) isMessage_OneofUnion() {} func (*Message_OneofSint64) isMessage_OneofUnion() {} func (*Message_OneofUint64) isMessage_OneofUnion() {} func (*Message_OneofFixed32) isMessage_OneofUnion() {} func (*Message_OneofSfixed32) isMessage_OneofUnion() {} func (*Message_OneofFloat) isMessage_OneofUnion() {} func (*Message_OneofFixed64) isMessage_OneofUnion() {} func (*Message_OneofSfixed64) isMessage_OneofUnion() {} func (*Message_OneofDouble) isMessage_OneofUnion() {} func (*Message_OneofString) isMessage_OneofUnion() {} func (*Message_OneofBytes) isMessage_OneofUnion() {} func (*Message_OneofChildEnum) isMessage_OneofUnion() {} func (*Message_OneofChildMessage) isMessage_OneofUnion() {} func (*Message_OneofSiblingEnum) isMessage_OneofUnion() {} func (*Message_OneofSiblingMessage) isMessage_OneofUnion() {} func (*Message_OneofString1) isMessage_OneofUnion() {} func (*Message_OneofString2) isMessage_OneofUnion() {} func (*Message_OneofString3) isMessage_OneofUnion() {} func (m *Message) GetOneofUnion() isMessage_OneofUnion { if m != nil { return m.OneofUnion } return nil } func (m *Message) GetOneofBool() bool { if x, ok := m.GetOneofUnion().(*Message_OneofBool); ok { return x.OneofBool } return false } func (m *Message) GetOneofInt32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofInt32); ok { return x.OneofInt32 } return 0 } func (m *Message) GetOneofSint32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSint32); ok { return x.OneofSint32 } return 0 } func (m *Message) GetOneofUint32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofUint32); ok { return x.OneofUint32 } return 0 } func (m *Message) GetOneofInt64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofInt64); ok { return x.OneofInt64 } return 0 } func (m *Message) GetOneofSint64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSint64); ok { return x.OneofSint64 } return 0 } func (m *Message) GetOneofUint64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofUint64); ok { return x.OneofUint64 } return 0 } func (m *Message) GetOneofFixed32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed32); ok { return x.OneofFixed32 } return 0 } func (m *Message) GetOneofSfixed32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed32); ok { return x.OneofSfixed32 } return 0 } func (m *Message) GetOneofFloat() float32 { if x, ok := m.GetOneofUnion().(*Message_OneofFloat); ok { return x.OneofFloat } return 0 } func (m *Message) GetOneofFixed64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed64); ok { return x.OneofFixed64 } return 0 } func (m *Message) GetOneofSfixed64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed64); ok { return x.OneofSfixed64 } return 0 } func (m *Message) GetOneofDouble() float64 { if x, ok := m.GetOneofUnion().(*Message_OneofDouble); ok { return x.OneofDouble } return 0 } func (m *Message) GetOneofString() string { if x, ok := m.GetOneofUnion().(*Message_OneofString); ok { return x.OneofString } return "" } func (m *Message) GetOneofBytes() []byte { if x, ok := m.GetOneofUnion().(*Message_OneofBytes); ok { return x.OneofBytes } return nil } func (m *Message) GetOneofChildEnum() Message_ChildEnum { if x, ok := m.GetOneofUnion().(*Message_OneofChildEnum); ok { return x.OneofChildEnum } return Message_ALPHA } func (m *Message) GetOneofChildMessage() *Message_ChildMessage { if x, ok := m.GetOneofUnion().(*Message_OneofChildMessage); ok { return x.OneofChildMessage } return nil } func (m *Message) GetOneofSiblingEnum() SiblingEnum { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingEnum); ok { return x.OneofSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetOneofSiblingMessage() *SiblingMessage { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingMessage); ok { return x.OneofSiblingMessage } return nil } func (m *Message) GetOneofString1() string { if x, ok := m.GetOneofUnion().(*Message_OneofString1); ok { return x.OneofString1 } return "" } func (m *Message) GetOneofString2() string { if x, ok := m.GetOneofUnion().(*Message_OneofString2); ok { return x.OneofString2 } return "" } func (m *Message) GetOneofString3() string { if x, ok := m.GetOneofUnion().(*Message_OneofString3); ok { return x.OneofString3 } return "" } // XXX_OneofFuncs is for the internal use of the proto package. func (*Message) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { return _Message_OneofMarshaler, _Message_OneofUnmarshaler, _Message_OneofSizer, []interface{}{ (*Message_OneofBool)(nil), (*Message_OneofInt32)(nil), (*Message_OneofSint32)(nil), (*Message_OneofUint32)(nil), (*Message_OneofInt64)(nil), (*Message_OneofSint64)(nil), (*Message_OneofUint64)(nil), (*Message_OneofFixed32)(nil), (*Message_OneofSfixed32)(nil), (*Message_OneofFloat)(nil), (*Message_OneofFixed64)(nil), (*Message_OneofSfixed64)(nil), (*Message_OneofDouble)(nil), (*Message_OneofString)(nil), (*Message_OneofBytes)(nil), (*Message_OneofChildEnum)(nil), (*Message_OneofChildMessage)(nil), (*Message_OneofSiblingEnum)(nil), (*Message_OneofSiblingMessage)(nil), (*Message_OneofString1)(nil), (*Message_OneofString2)(nil), (*Message_OneofString3)(nil), } } func _Message_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { m := msg.(*Message) // oneof_union switch x := m.OneofUnion.(type) { case *Message_OneofBool: t := uint64(0) if x.OneofBool { t = 1 } b.EncodeVarint(400<<3 | proto.WireVarint) b.EncodeVarint(t) case *Message_OneofInt32: b.EncodeVarint(401<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofInt32)) case *Message_OneofSint32: b.EncodeVarint(402<<3 | proto.WireVarint) b.EncodeZigzag32(uint64(x.OneofSint32)) case *Message_OneofUint32: b.EncodeVarint(403<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofUint32)) case *Message_OneofInt64: b.EncodeVarint(404<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofInt64)) case *Message_OneofSint64: b.EncodeVarint(405<<3 | proto.WireVarint) b.EncodeZigzag64(uint64(x.OneofSint64)) case *Message_OneofUint64: b.EncodeVarint(406<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofUint64)) case *Message_OneofFixed32: b.EncodeVarint(407<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofFixed32)) case *Message_OneofSfixed32: b.EncodeVarint(408<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(x.OneofSfixed32)) case *Message_OneofFloat: b.EncodeVarint(409<<3 | proto.WireFixed32) b.EncodeFixed32(uint64(math.Float32bits(x.OneofFloat))) case *Message_OneofFixed64: b.EncodeVarint(410<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofFixed64)) case *Message_OneofSfixed64: b.EncodeVarint(411<<3 | proto.WireFixed64) b.EncodeFixed64(uint64(x.OneofSfixed64)) case *Message_OneofDouble: b.EncodeVarint(412<<3 | proto.WireFixed64) b.EncodeFixed64(math.Float64bits(x.OneofDouble)) case *Message_OneofString: b.EncodeVarint(413<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString) case *Message_OneofBytes: b.EncodeVarint(414<<3 | proto.WireBytes) b.EncodeRawBytes(x.OneofBytes) case *Message_OneofChildEnum: b.EncodeVarint(415<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofChildEnum)) case *Message_OneofChildMessage: b.EncodeVarint(416<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofChildMessage); err != nil { return err } case *Message_OneofSiblingEnum: b.EncodeVarint(417<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.OneofSiblingEnum)) case *Message_OneofSiblingMessage: b.EncodeVarint(418<<3 | proto.WireBytes) if err := b.EncodeMessage(x.OneofSiblingMessage); err != nil { return err } case *Message_OneofString1: b.EncodeVarint(419<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString1) case *Message_OneofString2: b.EncodeVarint(420<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString2) case *Message_OneofString3: b.EncodeVarint(421<<3 | proto.WireBytes) b.EncodeStringBytes(x.OneofString3) case nil: default: return fmt.Errorf("Message.OneofUnion has unexpected type %T", x) } return nil } func _Message_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { m := msg.(*Message) switch tag { case 400: // oneof_union.oneof_bool if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofBool{x != 0} return true, err case 401: // oneof_union.oneof_int32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofInt32{int32(x)} return true, err case 402: // oneof_union.oneof_sint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag32() m.OneofUnion = &Message_OneofSint32{int32(x)} return true, err case 403: // oneof_union.oneof_uint32 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofUint32{uint32(x)} return true, err case 404: // oneof_union.oneof_int64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofInt64{int64(x)} return true, err case 405: // oneof_union.oneof_sint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeZigzag64() m.OneofUnion = &Message_OneofSint64{int64(x)} return true, err case 406: // oneof_union.oneof_uint64 if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofUint64{x} return true, err case 407: // oneof_union.oneof_fixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofFixed32{uint32(x)} return true, err case 408: // oneof_union.oneof_sfixed32 if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofSfixed32{int32(x)} return true, err case 409: // oneof_union.oneof_float if wire != proto.WireFixed32 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed32() m.OneofUnion = &Message_OneofFloat{math.Float32frombits(uint32(x))} return true, err case 410: // oneof_union.oneof_fixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofFixed64{x} return true, err case 411: // oneof_union.oneof_sfixed64 if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofSfixed64{int64(x)} return true, err case 412: // oneof_union.oneof_double if wire != proto.WireFixed64 { return true, proto.ErrInternalBadWireType } x, err := b.DecodeFixed64() m.OneofUnion = &Message_OneofDouble{math.Float64frombits(x)} return true, err case 413: // oneof_union.oneof_string if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString{x} return true, err case 414: // oneof_union.oneof_bytes if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeRawBytes(true) m.OneofUnion = &Message_OneofBytes{x} return true, err case 415: // oneof_union.oneof_child_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofChildEnum{Message_ChildEnum(x)} return true, err case 416: // oneof_union.oneof_child_message if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(Message_ChildMessage) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofChildMessage{msg} return true, err case 417: // oneof_union.oneof_sibling_enum if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.OneofUnion = &Message_OneofSiblingEnum{SiblingEnum(x)} return true, err case 418: // oneof_union.oneof_sibling_message if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(SiblingMessage) err := b.DecodeMessage(msg) m.OneofUnion = &Message_OneofSiblingMessage{msg} return true, err case 419: // oneof_union.oneof_string1 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString1{x} return true, err case 420: // oneof_union.oneof_string2 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString2{x} return true, err case 421: // oneof_union.oneof_string3 if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } x, err := b.DecodeStringBytes() m.OneofUnion = &Message_OneofString3{x} return true, err default: return false, nil } } func _Message_OneofSizer(msg proto.Message) (n int) { m := msg.(*Message) // oneof_union switch x := m.OneofUnion.(type) { case *Message_OneofBool: n += 2 // tag and wire n += 1 case *Message_OneofInt32: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofInt32)) case *Message_OneofSint32: n += 2 // tag and wire n += proto.SizeVarint(uint64((uint32(x.OneofSint32) << 1) ^ uint32((int32(x.OneofSint32) >> 31)))) case *Message_OneofUint32: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofUint32)) case *Message_OneofInt64: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofInt64)) case *Message_OneofSint64: n += 2 // tag and wire n += proto.SizeVarint(uint64(uint64(x.OneofSint64<<1) ^ uint64((int64(x.OneofSint64) >> 63)))) case *Message_OneofUint64: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofUint64)) case *Message_OneofFixed32: n += 2 // tag and wire n += 4 case *Message_OneofSfixed32: n += 2 // tag and wire n += 4 case *Message_OneofFloat: n += 2 // tag and wire n += 4 case *Message_OneofFixed64: n += 2 // tag and wire n += 8 case *Message_OneofSfixed64: n += 2 // tag and wire n += 8 case *Message_OneofDouble: n += 2 // tag and wire n += 8 case *Message_OneofString: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofString))) n += len(x.OneofString) case *Message_OneofBytes: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofBytes))) n += len(x.OneofBytes) case *Message_OneofChildEnum: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofChildEnum)) case *Message_OneofChildMessage: s := proto.Size(x.OneofChildMessage) n += 2 // tag and wire n += proto.SizeVarint(uint64(s)) n += s case *Message_OneofSiblingEnum: n += 2 // tag and wire n += proto.SizeVarint(uint64(x.OneofSiblingEnum)) case *Message_OneofSiblingMessage: s := proto.Size(x.OneofSiblingMessage) n += 2 // tag and wire n += proto.SizeVarint(uint64(s)) n += s case *Message_OneofString1: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofString1))) n += len(x.OneofString1) case *Message_OneofString2: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofString2))) n += len(x.OneofString2) case *Message_OneofString3: n += 2 // tag and wire n += proto.SizeVarint(uint64(len(x.OneofString3))) n += len(x.OneofString3) case nil: default: panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) } return n } type Message_ChildMessage struct { F1 string `protobuf:"bytes,1,opt,name=f1,proto3" json:"f1,omitempty"` F2 []string `protobuf:"bytes,2,rep,name=f2,proto3" json:"f2,omitempty"` F3 *Message `protobuf:"bytes,3,opt,name=f3,proto3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_ChildMessage) Reset() { *m = Message_ChildMessage{} } func (m *Message_ChildMessage) String() string { return proto.CompactTextString(m) } func (*Message_ChildMessage) ProtoMessage() {} func (*Message_ChildMessage) Descriptor() ([]byte, []int) { return fileDescriptor_test_14f9d28b9a7006c3, []int{1, 0} } func (m *Message_ChildMessage) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_ChildMessage.Unmarshal(m, b) } func (m *Message_ChildMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_ChildMessage.Marshal(b, m, deterministic) } func (dst *Message_ChildMessage) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_ChildMessage.Merge(dst, src) } func (m *Message_ChildMessage) XXX_Size() int { return xxx_messageInfo_Message_ChildMessage.Size(m) } func (m *Message_ChildMessage) XXX_DiscardUnknown() { xxx_messageInfo_Message_ChildMessage.DiscardUnknown(m) } var xxx_messageInfo_Message_ChildMessage proto.InternalMessageInfo func (m *Message_ChildMessage) GetF1() string { if m != nil { return m.F1 } return "" } func (m *Message_ChildMessage) GetF2() []string { if m != nil { return m.F2 } return nil } func (m *Message_ChildMessage) GetF3() *Message { if m != nil { return m.F3 } return nil } func init() { proto.RegisterType((*SiblingMessage)(nil), "google.golang.org.proto3_20180814.SiblingMessage") proto.RegisterType((*Message)(nil), "google.golang.org.proto3_20180814.Message") proto.RegisterMapType((map[bool]bool)(nil), "google.golang.org.proto3_20180814.Message.MapBoolBoolEntry") proto.RegisterMapType((map[bool][]byte)(nil), "google.golang.org.proto3_20180814.Message.MapBoolBytesEntry") proto.RegisterMapType((map[bool]Message_ChildEnum)(nil), "google.golang.org.proto3_20180814.Message.MapBoolChildEnumEntry") proto.RegisterMapType((map[bool]*Message_ChildMessage)(nil), "google.golang.org.proto3_20180814.Message.MapBoolChildMessageEntry") proto.RegisterMapType((map[bool]float64)(nil), "google.golang.org.proto3_20180814.Message.MapBoolDoubleEntry") proto.RegisterMapType((map[bool]uint32)(nil), "google.golang.org.proto3_20180814.Message.MapBoolFixed32Entry") proto.RegisterMapType((map[bool]uint64)(nil), "google.golang.org.proto3_20180814.Message.MapBoolFixed64Entry") proto.RegisterMapType((map[bool]float32)(nil), "google.golang.org.proto3_20180814.Message.MapBoolFloatEntry") proto.RegisterMapType((map[bool]int32)(nil), "google.golang.org.proto3_20180814.Message.MapBoolInt32Entry") proto.RegisterMapType((map[bool]int64)(nil), "google.golang.org.proto3_20180814.Message.MapBoolInt64Entry") proto.RegisterMapType((map[bool]int32)(nil), "google.golang.org.proto3_20180814.Message.MapBoolSfixed32Entry") proto.RegisterMapType((map[bool]int64)(nil), "google.golang.org.proto3_20180814.Message.MapBoolSfixed64Entry") proto.RegisterMapType((map[bool]SiblingEnum)(nil), "google.golang.org.proto3_20180814.Message.MapBoolSiblingEnumEntry") proto.RegisterMapType((map[bool]*SiblingMessage)(nil), "google.golang.org.proto3_20180814.Message.MapBoolSiblingMessageEntry") proto.RegisterMapType((map[bool]int32)(nil), "google.golang.org.proto3_20180814.Message.MapBoolSint32Entry") proto.RegisterMapType((map[bool]int64)(nil), "google.golang.org.proto3_20180814.Message.MapBoolSint64Entry") proto.RegisterMapType((map[bool]string)(nil), "google.golang.org.proto3_20180814.Message.MapBoolStringEntry") proto.RegisterMapType((map[bool]uint32)(nil), "google.golang.org.proto3_20180814.Message.MapBoolUint32Entry") proto.RegisterMapType((map[bool]uint64)(nil), "google.golang.org.proto3_20180814.Message.MapBoolUint64Entry") proto.RegisterMapType((map[uint32]bool)(nil), "google.golang.org.proto3_20180814.Message.MapFixed32BoolEntry") proto.RegisterMapType((map[int32]bool)(nil), "google.golang.org.proto3_20180814.Message.MapInt32BoolEntry") proto.RegisterMapType((map[int64]bool)(nil), "google.golang.org.proto3_20180814.Message.MapInt64BoolEntry") proto.RegisterMapType((map[int32]bool)(nil), "google.golang.org.proto3_20180814.Message.MapSint32BoolEntry") proto.RegisterMapType((map[int64]bool)(nil), "google.golang.org.proto3_20180814.Message.MapSint64BoolEntry") proto.RegisterMapType((map[string]bool)(nil), "google.golang.org.proto3_20180814.Message.MapStringBoolEntry") proto.RegisterMapType((map[uint32]bool)(nil), "google.golang.org.proto3_20180814.Message.MapUint32BoolEntry") proto.RegisterMapType((map[uint64]bool)(nil), "google.golang.org.proto3_20180814.Message.MapUint64BoolEntry") proto.RegisterType((*Message_ChildMessage)(nil), "google.golang.org.proto3_20180814.Message.ChildMessage") proto.RegisterEnum("google.golang.org.proto3_20180814.SiblingEnum", SiblingEnum_name, SiblingEnum_value) proto.RegisterEnum("google.golang.org.proto3_20180814.Message_ChildEnum", Message_ChildEnum_name, Message_ChildEnum_value) } func init() { proto.RegisterFile("proto3_20180814_aa810b61/test.proto", fileDescriptor_test_14f9d28b9a7006c3) } var fileDescriptor_test_14f9d28b9a7006c3 = []byte{ // 1946 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x9a, 0x57, 0x73, 0xdb, 0xca, 0x15, 0xc7, 0x09, 0x52, 0xc5, 0x5a, 0xb1, 0x82, 0x96, 0xb2, 0xa3, 0x27, 0x44, 0x76, 0x1c, 0xc4, 0xc9, 0x50, 0x26, 0x85, 0x41, 0x34, 0x4e, 0x62, 0x5b, 0xb2, 0xe5, 0xd0, 0x19, 0x3b, 0xf1, 0xc0, 0xa3, 0x3c, 0xe4, 0x45, 0x21, 0x25, 0x90, 0xa6, 0x0d, 0x12, 0x8a, 0x48, 0x7a, 0xa2, 0xc9, 0x83, 0xbf, 0x42, 0x7a, 0x6f, 0xb7, 0xbd, 0xdd, 0xde, 0x7b, 0xf7, 0x1d, 0xdf, 0xde, 0xeb, 0xa7, 0xb9, 0xb3, 0x38, 0xd8, 0x06, 0x80, 0x26, 0x09, 0xce, 0x7d, 0xf0, 0x8c, 0x74, 0xf8, 0xdf, 0xf3, 0xe3, 0x39, 0x38, 0x7b, 0xce, 0x2e, 0x2c, 0x74, 0x64, 0x6f, 0xdf, 0xed, 0xb9, 0xab, 0xdb, 0x95, 0x13, 0xe5, 0xb5, 0x13, 0x6b, 0x65, 0x63, 0xbb, 0x56, 0x5b, 0x2b, 0x9f, 0xa8, 0x9b, 0xe5, 0x95, 0x9e, 0xdd, 0xed, 0x95, 0xbc, 0x4f, 0xd5, 0x6f, 0x37, 0x5d, 0xb7, 0xe9, 0xd8, 0xa5, 0xa6, 0xeb, 0xd4, 0x3a, 0xcd, 0x92, 0xbb, 0xdf, 0x2c, 0x05, 0x96, 0x2d, 0x3b, 0x28, 0x7b, 0xa5, 0x55, 0x77, 0x5a, 0x9d, 0xe6, 0x25, 0xbb, 0xdb, 0xad, 0x35, 0x6d, 0x35, 0x8b, 0x92, 0x8d, 0x32, 0x56, 0x34, 0x45, 0x9f, 0xb3, 0x92, 0x8d, 0xb2, 0xf7, 0x7b, 0x05, 0x27, 0xb5, 0x94, 0xf7, 0x7b, 0x45, 0x3d, 0x89, 0x92, 0x8d, 0x55, 0x9c, 0xd2, 0x14, 0x7d, 0xbe, 0x72, 0xbc, 0x34, 0x94, 0x50, 0xf2, 0xfd, 0x5a, 0xc9, 0xc6, 0xea, 0xf2, 0xad, 0x33, 0x68, 0x96, 0x72, 0x8e, 0xa0, 0x8c, 0xbb, 0xd7, 0x6b, 0xb9, 0x9d, 0x9a, 0xb3, 0x5d, 0x77, 0x5d, 0x07, 0xef, 0x6a, 0x8a, 0x7e, 0xc8, 0x4a, 0x53, 0xe3, 0x86, 0xeb, 0x3a, 0xea, 0x77, 0x50, 0x96, 0x89, 0x5a, 0x9d, 0xde, 0x6a, 0x05, 0xdb, 0x9a, 0xa2, 0x4f, 0x5b, 0x6c, 0xe9, 0x05, 0x62, 0x54, 0xbf, 0x8b, 0x72, 0x4c, 0xd6, 0x05, 0x5d, 0x43, 0x53, 0xf4, 0x82, 0xc5, 0x56, 0x5f, 0x69, 0x85, 0x84, 0x7d, 0x10, 0x36, 0x35, 0x45, 0xcf, 0x70, 0xe1, 0x16, 0x08, 0x03, 0x60, 0xd3, 0xc0, 0x57, 0x35, 0x45, 0x4f, 0x49, 0x60, 0xd3, 0x08, 0x81, 0x4d, 0x03, 0xb7, 0x34, 0x45, 0x57, 0x65, 0x70, 0x40, 0xd8, 0x07, 0xe1, 0x35, 0x4d, 0xd1, 0xa7, 0x64, 0xb0, 0x69, 0xa8, 0xdf, 0x43, 0x79, 0x26, 0x6c, 0xb4, 0x7e, 0x6b, 0xef, 0xae, 0x56, 0xf0, 0x75, 0x4d, 0xd1, 0x67, 0x2d, 0xe6, 0xe0, 0x3c, 0x98, 0xd5, 0xef, 0xa3, 0x02, 0x87, 0x53, 0xad, 0xa3, 0x29, 0x7a, 0xce, 0x62, 0x3e, 0xae, 0xf8, 0x76, 0x29, 0xa0, 0x86, 0xe3, 0xd6, 0x7a, 0xb8, 0xad, 0x29, 0x7a, 0x92, 0x07, 0x74, 0x9e, 0x18, 0xc3, 0x78, 0xd3, 0xc0, 0x1d, 0x4d, 0xd1, 0x67, 0x02, 0x78, 0xd3, 0x88, 0xc0, 0x9b, 0x06, 0x76, 0x35, 0x45, 0xcf, 0x07, 0xf1, 0x81, 0xf8, 0x77, 0xdd, 0x7e, 0xdd, 0xb1, 0xf1, 0x9e, 0xa6, 0xe8, 0x0a, 0x8f, 0xff, 0x9c, 0x67, 0x95, 0x33, 0xda, 0xdb, 0x6f, 0x75, 0x9a, 0xf8, 0x37, 0x5e, 0x2d, 0xf2, 0x8c, 0x7a, 0x56, 0x29, 0xa0, 0xfa, 0x41, 0xcf, 0xee, 0xe2, 0x7d, 0x4d, 0xd1, 0xd3, 0x3c, 0xa0, 0x0d, 0x62, 0x54, 0x77, 0x51, 0x91, 0xc9, 0x76, 0xae, 0xb6, 0x9c, 0xdd, 0x6d, 0xbb, 0xd3, 0x6f, 0xe3, 0xae, 0xa6, 0xe8, 0xd9, 0x8a, 0x31, 0x7a, 0xfd, 0x96, 0xce, 0x92, 0xc5, 0x9b, 0x9d, 0x7e, 0xdb, 0x62, 0x61, 0x33, 0x93, 0xda, 0x46, 0x8b, 0x01, 0x4a, 0x1b, 0x96, 0xe1, 0x9e, 0xb7, 0x51, 0x7e, 0x38, 0x2e, 0x88, 0xee, 0x9a, 0xc3, 0x12, 0x8b, 0xee, 0x9d, 0x3a, 0x5a, 0x10, 0xca, 0xce, 0xdb, 0xbe, 0x10, 0x56, 0xdf, 0x0b, 0xab, 0x34, 0x02, 0xcd, 0xdf, 0xf5, 0x5e, 0x40, 0x45, 0x5e, 0xac, 0xcc, 0xa8, 0x5e, 0x47, 0x38, 0xc4, 0xa0, 0x41, 0xdd, 0xf0, 0x82, 0x2a, 0x8f, 0x8e, 0xa1, 0xe1, 0x2c, 0x06, 0x48, 0x34, 0xa0, 0xa3, 0x28, 0xb3, 0x6f, 0xef, 0xd9, 0xb5, 0x9e, 0xbd, 0x0b, 0xcd, 0xe0, 0xb6, 0xa2, 0xa5, 0x48, 0x37, 0xa0, 0x56, 0xaf, 0x1b, 0x1c, 0x43, 0x59, 0xa6, 0x82, 0xcd, 0xfb, 0x26, 0x91, 0x4d, 0x5b, 0x6c, 0x31, 0xb4, 0x03, 0x1d, 0xe5, 0x98, 0xce, 0x6f, 0x07, 0x6f, 0x11, 0x61, 0xc1, 0x62, 0xeb, 0xfd, 0x7e, 0x20, 0x2a, 0xfd, 0x7e, 0xf0, 0x36, 0x51, 0x66, 0xb8, 0xd2, 0x6f, 0x08, 0x01, 0xb6, 0x69, 0xe0, 0x77, 0x88, 0x30, 0x25, 0xb1, 0x4d, 0x23, 0xc4, 0x36, 0x0d, 0xfc, 0x2e, 0x11, 0xaa, 0x32, 0x3b, 0xa0, 0xf4, 0x5b, 0xc2, 0x7b, 0x44, 0x39, 0x25, 0xb3, 0x4d, 0x43, 0x3d, 0x8e, 0xf2, 0x4c, 0x49, 0xf7, 0xf9, 0xfb, 0x44, 0x3a, 0x6b, 0x31, 0x17, 0xb4, 0x29, 0xfc, 0x00, 0x15, 0x38, 0x9f, 0x8a, 0x3f, 0x20, 0xe2, 0x9c, 0xc5, 0xbc, 0xb0, 0xae, 0x20, 0x46, 0x05, 0x5d, 0xe1, 0x43, 0x22, 0x4d, 0xf2, 0xa8, 0xa0, 0x2d, 0x84, 0xbe, 0x81, 0x69, 0xe0, 0x8f, 0x88, 0x72, 0x26, 0xf0, 0x0d, 0x4c, 0x23, 0xe2, 0x1b, 0x98, 0x06, 0xfe, 0x98, 0x88, 0xf3, 0xc1, 0x6f, 0x10, 0xc8, 0x82, 0xdf, 0x18, 0x3e, 0x21, 0x5a, 0x85, 0x67, 0xc1, 0xef, 0x0c, 0x52, 0x66, 0xa1, 0x33, 0x7c, 0xaa, 0x78, 0x63, 0x89, 0x67, 0x16, 0x5a, 0x83, 0x18, 0x15, 0xb4, 0x86, 0xcf, 0x88, 0x30, 0xcd, 0xa3, 0x82, 0xde, 0x60, 0xa3, 0x22, 0xd3, 0x09, 0xbd, 0xe1, 0x73, 0x22, 0x8e, 0xdd, 0x1c, 0xa8, 0x47, 0xde, 0x1c, 0x3a, 0x68, 0x31, 0x80, 0xa1, 0xfb, 0xe8, 0x0b, 0x42, 0x9a, 0xa4, 0x3b, 0x48, 0x30, 0xba, 0x99, 0x76, 0xd0, 0x82, 0x50, 0x82, 0x42, 0x77, 0xf8, 0x12, 0x02, 0x1b, 0xbb, 0x3d, 0xf0, 0xc2, 0xe5, 0xed, 0xc1, 0x41, 0x38, 0x04, 0xa1, 0x61, 0x7d, 0x05, 0x61, 0xc5, 0xe9, 0x0f, 0x01, 0x14, 0x0d, 0xe9, 0xd7, 0x28, 0xd3, 0xae, 0xed, 0x79, 0xad, 0x01, 0xfa, 0xc3, 0xfd, 0x49, 0x0f, 0xf1, 0xa3, 0x31, 0x32, 0x77, 0xa9, 0xb6, 0x47, 0xba, 0x08, 0xf9, 0xb7, 0xd9, 0xe9, 0xed, 0x1f, 0x58, 0xf3, 0x6d, 0x6e, 0x51, 0x77, 0x50, 0x96, 0x11, 0xa0, 0x11, 0x3c, 0x00, 0x88, 0x1f, 0x8f, 0x8f, 0xf0, 0xba, 0x10, 0x30, 0xd2, 0x6d, 0xc1, 0xa4, 0x36, 0x50, 0x8e, 0x41, 0xfc, 0xc6, 0xf4, 0x20, 0x50, 0x7e, 0x32, 0x3e, 0x05, 0x5a, 0x18, 0x60, 0x32, 0x6d, 0xd1, 0x26, 0x71, 0xfc, 0xb6, 0xf6, 0x50, 0x6c, 0xce, 0x56, 0x04, 0xc7, 0x6f, 0x8a, 0x81, 0xa4, 0x99, 0x06, 0x7e, 0x78, 0x92, 0xa4, 0x99, 0x46, 0x28, 0x69, 0xa6, 0x11, 0x4a, 0x9a, 0x69, 0xe0, 0x47, 0x26, 0x4a, 0x1a, 0xc5, 0x88, 0x49, 0x0b, 0x70, 0xfc, 0x7e, 0xfc, 0xe8, 0x44, 0x49, 0x0b, 0x72, 0xfc, 0x6e, 0xde, 0x42, 0x79, 0xc6, 0xa1, 0x0d, 0xfa, 0x31, 0x00, 0x9d, 0x1a, 0x1f, 0xe4, 0xf7, 0x7d, 0x20, 0x65, 0xdb, 0x92, 0x51, 0x75, 0x50, 0x81, 0xa7, 0x8e, 0xb2, 0x1e, 0x07, 0xd6, 0xe9, 0x18, 0xc9, 0x6b, 0x88, 0xb0, 0x5c, 0x5b, 0xb6, 0x4a, 0xd5, 0x00, 0xc3, 0xe4, 0x89, 0xd8, 0xd5, 0xe0, 0x8d, 0x1d, 0xb9, 0x1a, 0x60, 0x12, 0x85, 0xb2, 0x67, 0x1a, 0xf8, 0xc9, 0xc9, 0xb2, 0x47, 0x9f, 0x93, 0x94, 0x3d, 0xd3, 0x88, 0xc8, 0x9e, 0x69, 0xe0, 0xa7, 0x26, 0xcc, 0x1e, 0x85, 0xc9, 0xd9, 0x0b, 0x94, 0x9f, 0x3f, 0x08, 0x9f, 0x8e, 0x5d, 0x7e, 0x30, 0x32, 0xe5, 0xf2, 0xf3, 0xc7, 0xa8, 0xb4, 0x9d, 0x60, 0x8c, 0x3e, 0x13, 0x7f, 0x3b, 0x79, 0x0e, 0x02, 0xdb, 0x09, 0x86, 0xb0, 0x58, 0x0d, 0x30, 0x84, 0x9f, 0x8d, 0x5d, 0x0d, 0xde, 0xb8, 0x96, 0xab, 0x01, 0x26, 0xf8, 0x1e, 0x2a, 0x32, 0x88, 0x30, 0xc1, 0x9f, 0x03, 0xd2, 0x99, 0xf1, 0x49, 0x6c, 0x6a, 0x03, 0x2d, 0xdf, 0x0e, 0x98, 0xd5, 0x03, 0xb4, 0x18, 0x20, 0xd2, 0xa9, 0xf7, 0x3c, 0x40, 0xcf, 0xc6, 0x84, 0xfa, 0x36, 0xe0, 0x16, 0xdb, 0xe1, 0x4f, 0xd4, 0x1b, 0x68, 0x41, 0x68, 0x84, 0xc2, 0x5c, 0x7f, 0x01, 0xc8, 0x1b, 0x71, 0xda, 0x21, 0x9b, 0xe8, 0x00, 0x56, 0xdb, 0xa1, 0x0f, 0xd4, 0x9b, 0x08, 0x87, 0xb8, 0x34, 0xe8, 0x17, 0x01, 0xbd, 0x19, 0x1b, 0x2d, 0x85, 0xbd, 0xd0, 0x8e, 0xfa, 0x8c, 0x96, 0x92, 0x37, 0x73, 0x60, 0xfc, 0xbf, 0x14, 0xab, 0x94, 0xbc, 0x21, 0xcc, 0xe7, 0x3f, 0x29, 0x25, 0x66, 0xa2, 0xfb, 0xa2, 0x2b, 0x50, 0x5e, 0x8e, 0xb5, 0x2f, 0x60, 0x06, 0x73, 0x0c, 0xd9, 0x17, 0xdc, 0x46, 0x39, 0x7d, 0x81, 0xf3, 0x4a, 0x2c, 0xce, 0x56, 0x04, 0x87, 0xdb, 0x84, 0xa4, 0x99, 0x06, 0x60, 0x5e, 0x8d, 0x9b, 0x34, 0xd3, 0x08, 0x25, 0x0d, 0x4c, 0x62, 0xd2, 0x28, 0xe5, 0xb5, 0xd8, 0x49, 0x13, 0x31, 0x34, 0x69, 0x32, 0xa7, 0x2f, 0x70, 0x5e, 0x8f, 0x9d, 0xb4, 0x20, 0x87, 0xdb, 0xe8, 0x74, 0xf1, 0x27, 0x1a, 0x80, 0x6e, 0xc5, 0x9a, 0x2e, 0xfe, 0x08, 0xe6, 0x24, 0xf2, 0x34, 0x04, 0x23, 0x4b, 0x9d, 0xd7, 0x2d, 0x81, 0xf4, 0x46, 0xbc, 0xd4, 0x79, 0x1e, 0x02, 0xa9, 0x63, 0x36, 0x55, 0x43, 0xc8, 0xed, 0xd8, 0x6e, 0x03, 0x10, 0xbf, 0x4f, 0x69, 0x8a, 0x7e, 0xa8, 0x9a, 0xb0, 0xe6, 0x3c, 0xa3, 0xa7, 0x58, 0x46, 0xf3, 0xa0, 0x80, 0x93, 0xe2, 0x1f, 0x88, 0x64, 0xba, 0x9a, 0xb0, 0x60, 0x1d, 0x9c, 0x5c, 0x8f, 0xa2, 0x34, 0x68, 0xfc, 0x63, 0xeb, 0x1f, 0x89, 0xa8, 0x50, 0x4d, 0x58, 0xb0, 0xd4, 0x3f, 0x77, 0x32, 0x95, 0x7f, 0xe8, 0xfc, 0x13, 0x51, 0x65, 0x98, 0xca, 0x3f, 0x35, 0x8a, 0x3c, 0xd3, 0xc0, 0x7f, 0x26, 0xa2, 0x94, 0xc8, 0x33, 0x0d, 0x99, 0x67, 0x1a, 0xf8, 0x2f, 0x44, 0xa4, 0x4a, 0x3c, 0x51, 0xe5, 0x9f, 0xd7, 0xfe, 0x4a, 0x54, 0x53, 0x12, 0xcf, 0x34, 0xd4, 0x63, 0x28, 0x03, 0x2a, 0x7a, 0x02, 0xfa, 0x1b, 0x91, 0xcd, 0x56, 0x13, 0x16, 0xac, 0xa6, 0xa7, 0x25, 0x1d, 0x65, 0x7d, 0x26, 0x15, 0xfe, 0x9d, 0x08, 0x73, 0xd5, 0x84, 0x05, 0x0e, 0xd8, 0x49, 0x87, 0x45, 0x00, 0xc7, 0x9c, 0x7f, 0x10, 0x59, 0x92, 0x45, 0x00, 0x07, 0x15, 0x99, 0x6a, 0x1a, 0xf8, 0x9f, 0x44, 0x35, 0x23, 0x53, 0xbd, 0x0b, 0xb0, 0x44, 0x35, 0x0d, 0xfc, 0x2f, 0x22, 0xcc, 0x07, 0xa8, 0x62, 0xb4, 0xfe, 0xf1, 0xe0, 0xdf, 0x44, 0xa7, 0xb0, 0x68, 0xfd, 0xf9, 0xce, 0x33, 0x07, 0xc3, 0xfd, 0x3f, 0x44, 0x35, 0xc7, 0x33, 0x07, 0xd3, 0x99, 0x45, 0x00, 0xa3, 0xf9, 0xbf, 0x44, 0x94, 0x66, 0x11, 0xc0, 0x70, 0xad, 0xa1, 0x3c, 0x68, 0x84, 0xc9, 0xfa, 0xbf, 0x54, 0xfc, 0x17, 0x67, 0xd5, 0x84, 0x05, 0xa1, 0xf2, 0x69, 0x7a, 0x0d, 0x15, 0x45, 0x04, 0x9d, 0x2a, 0xff, 0x4f, 0x4d, 0xf4, 0xd6, 0xac, 0x9a, 0xb0, 0x0a, 0x1c, 0x44, 0xa7, 0xc8, 0x36, 0x52, 0x69, 0x49, 0x09, 0xb3, 0xf3, 0xae, 0x54, 0x9c, 0x57, 0x66, 0xd5, 0x84, 0x95, 0xf7, 0x0b, 0x91, 0xcf, 0xc9, 0xab, 0x68, 0x41, 0x06, 0xd0, 0x70, 0xee, 0x4e, 0xc5, 0x7c, 0x5f, 0x56, 0x4d, 0x58, 0x45, 0x11, 0x43, 0x43, 0x61, 0xb5, 0x05, 0xcf, 0xb8, 0x8c, 0xef, 0xa1, 0x0f, 0x39, 0x2d, 0x3c, 0xe4, 0x72, 0x50, 0x57, 0xc1, 0xf7, 0x46, 0xe9, 0x2a, 0x41, 0xdd, 0x2a, 0xbe, 0x2f, 0x4a, 0xb7, 0xba, 0x74, 0x0d, 0xa5, 0xa5, 0x94, 0x7e, 0x83, 0xff, 0x57, 0xb0, 0x74, 0x0a, 0xe5, 0x83, 0x37, 0x76, 0x35, 0x8f, 0x52, 0xd7, 0xed, 0x03, 0x0f, 0x78, 0xc8, 0x22, 0x3f, 0xaa, 0x87, 0xd1, 0xf4, 0x8d, 0x9a, 0xd3, 0xb7, 0x71, 0xd2, 0xb3, 0xc1, 0x2f, 0x27, 0x93, 0x6b, 0xca, 0xd2, 0x69, 0x54, 0x08, 0x5d, 0xc7, 0x87, 0x39, 0x98, 0x16, 0x1d, 0x9c, 0x41, 0x6a, 0xf8, 0xa6, 0x3d, 0xcc, 0x43, 0x21, 0xda, 0xc3, 0xd6, 0xe8, 0x1e, 0x32, 0x03, 0x83, 0xf0, 0xaf, 0x0e, 0xc3, 0x1c, 0xa4, 0x06, 0x07, 0x31, 0xa2, 0x07, 0x75, 0x70, 0x10, 0x23, 0x7a, 0x98, 0x12, 0x3d, 0xac, 0xa3, 0x62, 0xc4, 0x65, 0x75, 0x98, 0x8b, 0x59, 0xd1, 0xc5, 0x06, 0x3a, 0x1c, 0x75, 0x07, 0x1d, 0xe6, 0x23, 0x17, 0x9d, 0x4b, 0x7e, 0xb9, 0x1c, 0xe6, 0x20, 0x79, 0x87, 0x38, 0x46, 0x4c, 0xc5, 0xcc, 0x9d, 0xe2, 0x18, 0xd1, 0x47, 0x3e, 0xfa, 0x81, 0x08, 0xb7, 0xbc, 0x61, 0x1e, 0x94, 0x01, 0x45, 0xc1, 0xef, 0x6f, 0xc3, 0x3c, 0xcc, 0x45, 0xe7, 0x92, 0x5f, 0xcd, 0x86, 0x39, 0x48, 0x8b, 0x0e, 0x0e, 0xd0, 0x42, 0xe4, 0x8d, 0x2b, 0xc2, 0xc9, 0xcf, 0x44, 0x27, 0x71, 0x5f, 0xcb, 0x0a, 0xe8, 0x9b, 0x08, 0x0f, 0xba, 0x77, 0x45, 0xd0, 0x2f, 0x89, 0xf4, 0x09, 0x5e, 0xd5, 0x0a, 0x5f, 0xa0, 0x8f, 0xbe, 0x35, 0xe0, 0xfa, 0x15, 0xc1, 0x3f, 0x27, 0x47, 0x3f, 0xee, 0xbb, 0x5b, 0x01, 0xfb, 0x3b, 0xb4, 0x34, 0xf8, 0xea, 0x15, 0x41, 0xfe, 0xa9, 0x1c, 0x79, 0x8c, 0xb7, 0xb9, 0xa1, 0x82, 0x91, 0x2f, 0x60, 0x22, 0x73, 0x7a, 0x58, 0x3b, 0x87, 0x9a, 0x0d, 0xdc, 0xad, 0x44, 0x0f, 0x85, 0xd1, 0x3c, 0x6c, 0x0d, 0xf6, 0x90, 0x19, 0x6d, 0xa4, 0xc8, 0x17, 0x22, 0xd1, 0x41, 0x6a, 0xf4, 0x20, 0x06, 0x78, 0x50, 0x47, 0x0f, 0x62, 0x80, 0x87, 0xa9, 0x61, 0x1e, 0xa0, 0x8b, 0x05, 0xaf, 0x27, 0xa2, 0x8b, 0xd9, 0x11, 0xc3, 0x90, 0xef, 0x1d, 0xa2, 0x87, 0xb9, 0x21, 0x1e, 0x96, 0x4b, 0x68, 0x8e, 0x1f, 0x02, 0xe7, 0xd0, 0xf4, 0xfa, 0xc5, 0xcb, 0xd5, 0xf5, 0x7c, 0x82, 0xfc, 0xb8, 0x61, 0xad, 0xff, 0xf2, 0x17, 0x79, 0x45, 0x9d, 0x47, 0xb3, 0x67, 0xab, 0xeb, 0xd6, 0xc5, 0x0b, 0x9b, 0xf9, 0xe4, 0x46, 0x86, 0x1e, 0x57, 0xfb, 0x9d, 0x96, 0xdb, 0x39, 0x5e, 0x46, 0xf3, 0xe2, 0xc1, 0x2b, 0xca, 0x01, 0x52, 0xd3, 0xdc, 0xc1, 0x6d, 0x65, 0xe3, 0xf2, 0xaf, 0x7e, 0x1e, 0xaa, 0xdf, 0x15, 0xaf, 0x7e, 0xeb, 0xfd, 0xc6, 0x4a, 0xab, 0xd3, 0xb3, 0xf7, 0x3b, 0x35, 0xc7, 0xfb, 0xeb, 0x09, 0xcf, 0xda, 0x5d, 0x71, 0xec, 0x66, 0x6d, 0xe7, 0x60, 0x65, 0xd0, 0x1f, 0x5a, 0xd4, 0x67, 0xe0, 0x93, 0xaf, 0x03, 0x00, 0x00, 0xff, 0xff, 0xe8, 0x29, 0x22, 0xf1, 0x8b, 0x21, 0x00, 0x00, } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto3_20180814_aa810b61/test.proto000066400000000000000000000105411411250152500311500ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package google.golang.org.proto3_20180814; option go_package = "google.golang.org/protobuf/internal/testprotos/legacy/proto3_20180814_aa810b61"; enum SiblingEnum { ALPHA = 0; BRAVO = 10; CHARLIE = 200; } message SiblingMessage { string f1 = 1; repeated string f2 = 2; Message f3 = 3; } message Message { enum ChildEnum { ALPHA = 0; BRAVO = 1; CHARLIE = 2; } message ChildMessage { string f1 = 1; repeated string f2 = 2; Message f3 = 3; } // Optional fields. bool optional_bool = 100; int32 optional_int32 = 101; sint32 optional_sint32 = 102; uint32 optional_uint32 = 103; int64 optional_int64 = 104; sint64 optional_sint64 = 105; uint64 optional_uint64 = 106; fixed32 optional_fixed32 = 107; sfixed32 optional_sfixed32 = 108; float optional_float = 109; fixed64 optional_fixed64 = 110; sfixed64 optional_sfixed64 = 111; double optional_double = 112; string optional_string = 113; bytes optional_bytes = 114; ChildEnum optional_child_enum = 115; ChildMessage optional_child_message = 116; SiblingEnum optional_sibling_enum = 117; SiblingMessage optional_sibling_message = 118; // Repeated fields. repeated bool repeated_bool = 200; repeated int32 repeated_int32 = 201; repeated sint32 repeated_sint32 = 202; repeated uint32 repeated_uint32 = 203; repeated int64 repeated_int64 = 204; repeated sint64 repeated_sint64 = 205; repeated uint64 repeated_uint64 = 206; repeated fixed32 repeated_fixed32 = 207; repeated sfixed32 repeated_sfixed32 = 208; repeated float repeated_float = 209; repeated fixed64 repeated_fixed64 = 210; repeated sfixed64 repeated_sfixed64 = 211; repeated double repeated_double = 212; repeated string repeated_string = 213; repeated bytes repeated_bytes = 214; repeated ChildEnum repeated_child_enum = 215; repeated ChildMessage repeated_child_message = 216; repeated SiblingEnum repeated_sibling_enum = 217; repeated SiblingMessage repeated_sibling_message = 218; // Map fields. map map_bool_bool = 300; map map_bool_int32 = 301; map map_bool_sint32 = 302; map map_bool_uint32 = 303; map map_bool_int64 = 304; map map_bool_sint64 = 305; map map_bool_uint64 = 306; map map_bool_fixed32 = 307; map map_bool_sfixed32 = 308; map map_bool_float = 309; map map_bool_fixed64 = 310; map map_bool_sfixed64 = 311; map map_bool_double = 312; map map_bool_string = 313; map map_bool_bytes = 314; map map_bool_child_enum = 315; map map_bool_child_message = 316; map map_bool_sibling_enum = 317; map map_bool_sibling_message = 318; map map_int32_bool = 319; map map_sint32_bool = 320; map map_uint32_bool = 321; map map_int64_bool = 322; map map_sint64_bool = 323; map map_uint64_bool = 324; map map_fixed32_bool = 325; map map_string_bool = 326; // Oneof fields. oneof oneof_union { bool oneof_bool = 400; int32 oneof_int32 = 401; sint32 oneof_sint32 = 402; uint32 oneof_uint32 = 403; int64 oneof_int64 = 404; sint64 oneof_sint64 = 405; uint64 oneof_uint64 = 406; fixed32 oneof_fixed32 = 407; sfixed32 oneof_sfixed32 = 408; float oneof_float = 409; fixed64 oneof_fixed64 = 410; sfixed64 oneof_sfixed64 = 411; double oneof_double = 412; string oneof_string = 413; bytes oneof_bytes = 414; ChildEnum oneof_child_enum = 415; ChildMessage oneof_child_message = 416; SiblingEnum oneof_sibling_enum = 417; SiblingMessage oneof_sibling_message = 418; string oneof_string1 = 419; string oneof_string2 = 420; string oneof_string3 = 421; } } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto3_20190205_c823c79e/000077500000000000000000000000001411250152500271225ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto3_20190205_c823c79e/test.pb.go000066400000000000000000001456561411250152500310510ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: proto3_20190205_c823c79e/test.proto package proto3_20190205_c823c79e import ( fmt "fmt" math "math" proto "google.golang.org/protobuf/internal/protolegacy" ) // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. // A compilation error at this line likely means your copy of the // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package type SiblingEnum int32 const ( SiblingEnum_ALPHA SiblingEnum = 0 SiblingEnum_BRAVO SiblingEnum = 10 SiblingEnum_CHARLIE SiblingEnum = 200 ) var SiblingEnum_name = map[int32]string{ 0: "ALPHA", 10: "BRAVO", 200: "CHARLIE", } var SiblingEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 10, "CHARLIE": 200, } func (x SiblingEnum) String() string { return proto.EnumName(SiblingEnum_name, int32(x)) } func (SiblingEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor_95cd555ff3d1bc43, []int{0} } type Message_ChildEnum int32 const ( Message_ALPHA Message_ChildEnum = 0 Message_BRAVO Message_ChildEnum = 1 Message_CHARLIE Message_ChildEnum = 2 ) var Message_ChildEnum_name = map[int32]string{ 0: "ALPHA", 1: "BRAVO", 2: "CHARLIE", } var Message_ChildEnum_value = map[string]int32{ "ALPHA": 0, "BRAVO": 1, "CHARLIE": 2, } func (x Message_ChildEnum) String() string { return proto.EnumName(Message_ChildEnum_name, int32(x)) } func (Message_ChildEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor_95cd555ff3d1bc43, []int{1, 0} } type SiblingMessage struct { F1 string `protobuf:"bytes,1,opt,name=f1,proto3" json:"f1,omitempty"` F2 []string `protobuf:"bytes,2,rep,name=f2,proto3" json:"f2,omitempty"` F3 *Message `protobuf:"bytes,3,opt,name=f3,proto3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *SiblingMessage) Reset() { *m = SiblingMessage{} } func (m *SiblingMessage) String() string { return proto.CompactTextString(m) } func (*SiblingMessage) ProtoMessage() {} func (*SiblingMessage) Descriptor() ([]byte, []int) { return fileDescriptor_95cd555ff3d1bc43, []int{0} } func (m *SiblingMessage) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SiblingMessage.Unmarshal(m, b) } func (m *SiblingMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_SiblingMessage.Marshal(b, m, deterministic) } func (m *SiblingMessage) XXX_Merge(src proto.Message) { xxx_messageInfo_SiblingMessage.Merge(m, src) } func (m *SiblingMessage) XXX_Size() int { return xxx_messageInfo_SiblingMessage.Size(m) } func (m *SiblingMessage) XXX_DiscardUnknown() { xxx_messageInfo_SiblingMessage.DiscardUnknown(m) } var xxx_messageInfo_SiblingMessage proto.InternalMessageInfo func (m *SiblingMessage) GetF1() string { if m != nil { return m.F1 } return "" } func (m *SiblingMessage) GetF2() []string { if m != nil { return m.F2 } return nil } func (m *SiblingMessage) GetF3() *Message { if m != nil { return m.F3 } return nil } type Message struct { // Optional fields. OptionalBool bool `protobuf:"varint,100,opt,name=optional_bool,json=optionalBool,proto3" json:"optional_bool,omitempty"` OptionalInt32 int32 `protobuf:"varint,101,opt,name=optional_int32,json=optionalInt32,proto3" json:"optional_int32,omitempty"` OptionalSint32 int32 `protobuf:"zigzag32,102,opt,name=optional_sint32,json=optionalSint32,proto3" json:"optional_sint32,omitempty"` OptionalUint32 uint32 `protobuf:"varint,103,opt,name=optional_uint32,json=optionalUint32,proto3" json:"optional_uint32,omitempty"` OptionalInt64 int64 `protobuf:"varint,104,opt,name=optional_int64,json=optionalInt64,proto3" json:"optional_int64,omitempty"` OptionalSint64 int64 `protobuf:"zigzag64,105,opt,name=optional_sint64,json=optionalSint64,proto3" json:"optional_sint64,omitempty"` OptionalUint64 uint64 `protobuf:"varint,106,opt,name=optional_uint64,json=optionalUint64,proto3" json:"optional_uint64,omitempty"` OptionalFixed32 uint32 `protobuf:"fixed32,107,opt,name=optional_fixed32,json=optionalFixed32,proto3" json:"optional_fixed32,omitempty"` OptionalSfixed32 int32 `protobuf:"fixed32,108,opt,name=optional_sfixed32,json=optionalSfixed32,proto3" json:"optional_sfixed32,omitempty"` OptionalFloat float32 `protobuf:"fixed32,109,opt,name=optional_float,json=optionalFloat,proto3" json:"optional_float,omitempty"` OptionalFixed64 uint64 `protobuf:"fixed64,110,opt,name=optional_fixed64,json=optionalFixed64,proto3" json:"optional_fixed64,omitempty"` OptionalSfixed64 int64 `protobuf:"fixed64,111,opt,name=optional_sfixed64,json=optionalSfixed64,proto3" json:"optional_sfixed64,omitempty"` OptionalDouble float64 `protobuf:"fixed64,112,opt,name=optional_double,json=optionalDouble,proto3" json:"optional_double,omitempty"` OptionalString string `protobuf:"bytes,113,opt,name=optional_string,json=optionalString,proto3" json:"optional_string,omitempty"` OptionalBytes []byte `protobuf:"bytes,114,opt,name=optional_bytes,json=optionalBytes,proto3" json:"optional_bytes,omitempty"` OptionalChildEnum Message_ChildEnum `protobuf:"varint,115,opt,name=optional_child_enum,json=optionalChildEnum,proto3,enum=google.golang.org.proto3_20190205.Message_ChildEnum" json:"optional_child_enum,omitempty"` OptionalChildMessage *Message_ChildMessage `protobuf:"bytes,116,opt,name=optional_child_message,json=optionalChildMessage,proto3" json:"optional_child_message,omitempty"` OptionalSiblingEnum SiblingEnum `protobuf:"varint,117,opt,name=optional_sibling_enum,json=optionalSiblingEnum,proto3,enum=google.golang.org.proto3_20190205.SiblingEnum" json:"optional_sibling_enum,omitempty"` OptionalSiblingMessage *SiblingMessage `protobuf:"bytes,118,opt,name=optional_sibling_message,json=optionalSiblingMessage,proto3" json:"optional_sibling_message,omitempty"` // Repeated fields. RepeatedBool []bool `protobuf:"varint,200,rep,packed,name=repeated_bool,json=repeatedBool,proto3" json:"repeated_bool,omitempty"` RepeatedInt32 []int32 `protobuf:"varint,201,rep,packed,name=repeated_int32,json=repeatedInt32,proto3" json:"repeated_int32,omitempty"` RepeatedSint32 []int32 `protobuf:"zigzag32,202,rep,packed,name=repeated_sint32,json=repeatedSint32,proto3" json:"repeated_sint32,omitempty"` RepeatedUint32 []uint32 `protobuf:"varint,203,rep,packed,name=repeated_uint32,json=repeatedUint32,proto3" json:"repeated_uint32,omitempty"` RepeatedInt64 []int64 `protobuf:"varint,204,rep,packed,name=repeated_int64,json=repeatedInt64,proto3" json:"repeated_int64,omitempty"` RepeatedSint64 []int64 `protobuf:"zigzag64,205,rep,packed,name=repeated_sint64,json=repeatedSint64,proto3" json:"repeated_sint64,omitempty"` RepeatedUint64 []uint64 `protobuf:"varint,206,rep,packed,name=repeated_uint64,json=repeatedUint64,proto3" json:"repeated_uint64,omitempty"` RepeatedFixed32 []uint32 `protobuf:"fixed32,207,rep,packed,name=repeated_fixed32,json=repeatedFixed32,proto3" json:"repeated_fixed32,omitempty"` RepeatedSfixed32 []int32 `protobuf:"fixed32,208,rep,packed,name=repeated_sfixed32,json=repeatedSfixed32,proto3" json:"repeated_sfixed32,omitempty"` RepeatedFloat []float32 `protobuf:"fixed32,209,rep,packed,name=repeated_float,json=repeatedFloat,proto3" json:"repeated_float,omitempty"` RepeatedFixed64 []uint64 `protobuf:"fixed64,210,rep,packed,name=repeated_fixed64,json=repeatedFixed64,proto3" json:"repeated_fixed64,omitempty"` RepeatedSfixed64 []int64 `protobuf:"fixed64,211,rep,packed,name=repeated_sfixed64,json=repeatedSfixed64,proto3" json:"repeated_sfixed64,omitempty"` RepeatedDouble []float64 `protobuf:"fixed64,212,rep,packed,name=repeated_double,json=repeatedDouble,proto3" json:"repeated_double,omitempty"` RepeatedString []string `protobuf:"bytes,213,rep,name=repeated_string,json=repeatedString,proto3" json:"repeated_string,omitempty"` RepeatedBytes [][]byte `protobuf:"bytes,214,rep,name=repeated_bytes,json=repeatedBytes,proto3" json:"repeated_bytes,omitempty"` RepeatedChildEnum []Message_ChildEnum `protobuf:"varint,215,rep,packed,name=repeated_child_enum,json=repeatedChildEnum,proto3,enum=google.golang.org.proto3_20190205.Message_ChildEnum" json:"repeated_child_enum,omitempty"` RepeatedChildMessage []*Message_ChildMessage `protobuf:"bytes,216,rep,name=repeated_child_message,json=repeatedChildMessage,proto3" json:"repeated_child_message,omitempty"` RepeatedSiblingEnum []SiblingEnum `protobuf:"varint,217,rep,packed,name=repeated_sibling_enum,json=repeatedSiblingEnum,proto3,enum=google.golang.org.proto3_20190205.SiblingEnum" json:"repeated_sibling_enum,omitempty"` RepeatedSiblingMessage []*SiblingMessage `protobuf:"bytes,218,rep,name=repeated_sibling_message,json=repeatedSiblingMessage,proto3" json:"repeated_sibling_message,omitempty"` // Map fields. MapBoolBool map[bool]bool `protobuf:"bytes,300,rep,name=map_bool_bool,json=mapBoolBool,proto3" json:"map_bool_bool,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapBoolInt32 map[bool]int32 `protobuf:"bytes,301,rep,name=map_bool_int32,json=mapBoolInt32,proto3" json:"map_bool_int32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapBoolSint32 map[bool]int32 `protobuf:"bytes,302,rep,name=map_bool_sint32,json=mapBoolSint32,proto3" json:"map_bool_sint32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` MapBoolUint32 map[bool]uint32 `protobuf:"bytes,303,rep,name=map_bool_uint32,json=mapBoolUint32,proto3" json:"map_bool_uint32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapBoolInt64 map[bool]int64 `protobuf:"bytes,304,rep,name=map_bool_int64,json=mapBoolInt64,proto3" json:"map_bool_int64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapBoolSint64 map[bool]int64 `protobuf:"bytes,305,rep,name=map_bool_sint64,json=mapBoolSint64,proto3" json:"map_bool_sint64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` MapBoolUint64 map[bool]uint64 `protobuf:"bytes,306,rep,name=map_bool_uint64,json=mapBoolUint64,proto3" json:"map_bool_uint64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapBoolFixed32 map[bool]uint32 `protobuf:"bytes,307,rep,name=map_bool_fixed32,json=mapBoolFixed32,proto3" json:"map_bool_fixed32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` MapBoolSfixed32 map[bool]int32 `protobuf:"bytes,308,rep,name=map_bool_sfixed32,json=mapBoolSfixed32,proto3" json:"map_bool_sfixed32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` MapBoolFloat map[bool]float32 `protobuf:"bytes,309,rep,name=map_bool_float,json=mapBoolFloat,proto3" json:"map_bool_float,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` MapBoolFixed64 map[bool]uint64 `protobuf:"bytes,310,rep,name=map_bool_fixed64,json=mapBoolFixed64,proto3" json:"map_bool_fixed64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` MapBoolSfixed64 map[bool]int64 `protobuf:"bytes,311,rep,name=map_bool_sfixed64,json=mapBoolSfixed64,proto3" json:"map_bool_sfixed64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` MapBoolDouble map[bool]float64 `protobuf:"bytes,312,rep,name=map_bool_double,json=mapBoolDouble,proto3" json:"map_bool_double,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` MapBoolString map[bool]string `protobuf:"bytes,313,rep,name=map_bool_string,json=mapBoolString,proto3" json:"map_bool_string,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` MapBoolBytes map[bool][]byte `protobuf:"bytes,314,rep,name=map_bool_bytes,json=mapBoolBytes,proto3" json:"map_bool_bytes,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` MapBoolChildEnum map[bool]Message_ChildEnum `protobuf:"bytes,315,rep,name=map_bool_child_enum,json=mapBoolChildEnum,proto3" json:"map_bool_child_enum,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=google.golang.org.proto3_20190205.Message_ChildEnum"` MapBoolChildMessage map[bool]*Message_ChildMessage `protobuf:"bytes,316,rep,name=map_bool_child_message,json=mapBoolChildMessage,proto3" json:"map_bool_child_message,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` MapBoolSiblingEnum map[bool]SiblingEnum `protobuf:"bytes,317,rep,name=map_bool_sibling_enum,json=mapBoolSiblingEnum,proto3" json:"map_bool_sibling_enum,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=google.golang.org.proto3_20190205.SiblingEnum"` MapBoolSiblingMessage map[bool]*SiblingMessage `protobuf:"bytes,318,rep,name=map_bool_sibling_message,json=mapBoolSiblingMessage,proto3" json:"map_bool_sibling_message,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` MapInt32Bool map[int32]bool `protobuf:"bytes,319,rep,name=map_int32_bool,json=mapInt32Bool,proto3" json:"map_int32_bool,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapSint32Bool map[int32]bool `protobuf:"bytes,320,rep,name=map_sint32_bool,json=mapSint32Bool,proto3" json:"map_sint32_bool,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapUint32Bool map[uint32]bool `protobuf:"bytes,321,rep,name=map_uint32_bool,json=mapUint32Bool,proto3" json:"map_uint32_bool,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapInt64Bool map[int64]bool `protobuf:"bytes,322,rep,name=map_int64_bool,json=mapInt64Bool,proto3" json:"map_int64_bool,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapSint64Bool map[int64]bool `protobuf:"bytes,323,rep,name=map_sint64_bool,json=mapSint64Bool,proto3" json:"map_sint64_bool,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapUint64Bool map[uint64]bool `protobuf:"bytes,324,rep,name=map_uint64_bool,json=mapUint64Bool,proto3" json:"map_uint64_bool,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapFixed32Bool map[uint32]bool `protobuf:"bytes,325,rep,name=map_fixed32_bool,json=mapFixed32Bool,proto3" json:"map_fixed32_bool,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapStringBool map[string]bool `protobuf:"bytes,326,rep,name=map_string_bool,json=mapStringBool,proto3" json:"map_string_bool,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // Oneof fields. // // Types that are valid to be assigned to OneofUnion: // *Message_OneofBool // *Message_OneofInt32 // *Message_OneofSint32 // *Message_OneofUint32 // *Message_OneofInt64 // *Message_OneofSint64 // *Message_OneofUint64 // *Message_OneofFixed32 // *Message_OneofSfixed32 // *Message_OneofFloat // *Message_OneofFixed64 // *Message_OneofSfixed64 // *Message_OneofDouble // *Message_OneofString // *Message_OneofBytes // *Message_OneofChildEnum // *Message_OneofChildMessage // *Message_OneofSiblingEnum // *Message_OneofSiblingMessage // *Message_OneofString1 // *Message_OneofString2 // *Message_OneofString3 OneofUnion isMessage_OneofUnion `protobuf_oneof:"oneof_union"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message) Reset() { *m = Message{} } func (m *Message) String() string { return proto.CompactTextString(m) } func (*Message) ProtoMessage() {} func (*Message) Descriptor() ([]byte, []int) { return fileDescriptor_95cd555ff3d1bc43, []int{1} } func (m *Message) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message.Unmarshal(m, b) } func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message.Marshal(b, m, deterministic) } func (m *Message) XXX_Merge(src proto.Message) { xxx_messageInfo_Message.Merge(m, src) } func (m *Message) XXX_Size() int { return xxx_messageInfo_Message.Size(m) } func (m *Message) XXX_DiscardUnknown() { xxx_messageInfo_Message.DiscardUnknown(m) } var xxx_messageInfo_Message proto.InternalMessageInfo func (m *Message) GetOptionalBool() bool { if m != nil { return m.OptionalBool } return false } func (m *Message) GetOptionalInt32() int32 { if m != nil { return m.OptionalInt32 } return 0 } func (m *Message) GetOptionalSint32() int32 { if m != nil { return m.OptionalSint32 } return 0 } func (m *Message) GetOptionalUint32() uint32 { if m != nil { return m.OptionalUint32 } return 0 } func (m *Message) GetOptionalInt64() int64 { if m != nil { return m.OptionalInt64 } return 0 } func (m *Message) GetOptionalSint64() int64 { if m != nil { return m.OptionalSint64 } return 0 } func (m *Message) GetOptionalUint64() uint64 { if m != nil { return m.OptionalUint64 } return 0 } func (m *Message) GetOptionalFixed32() uint32 { if m != nil { return m.OptionalFixed32 } return 0 } func (m *Message) GetOptionalSfixed32() int32 { if m != nil { return m.OptionalSfixed32 } return 0 } func (m *Message) GetOptionalFloat() float32 { if m != nil { return m.OptionalFloat } return 0 } func (m *Message) GetOptionalFixed64() uint64 { if m != nil { return m.OptionalFixed64 } return 0 } func (m *Message) GetOptionalSfixed64() int64 { if m != nil { return m.OptionalSfixed64 } return 0 } func (m *Message) GetOptionalDouble() float64 { if m != nil { return m.OptionalDouble } return 0 } func (m *Message) GetOptionalString() string { if m != nil { return m.OptionalString } return "" } func (m *Message) GetOptionalBytes() []byte { if m != nil { return m.OptionalBytes } return nil } func (m *Message) GetOptionalChildEnum() Message_ChildEnum { if m != nil { return m.OptionalChildEnum } return Message_ALPHA } func (m *Message) GetOptionalChildMessage() *Message_ChildMessage { if m != nil { return m.OptionalChildMessage } return nil } func (m *Message) GetOptionalSiblingEnum() SiblingEnum { if m != nil { return m.OptionalSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetOptionalSiblingMessage() *SiblingMessage { if m != nil { return m.OptionalSiblingMessage } return nil } func (m *Message) GetRepeatedBool() []bool { if m != nil { return m.RepeatedBool } return nil } func (m *Message) GetRepeatedInt32() []int32 { if m != nil { return m.RepeatedInt32 } return nil } func (m *Message) GetRepeatedSint32() []int32 { if m != nil { return m.RepeatedSint32 } return nil } func (m *Message) GetRepeatedUint32() []uint32 { if m != nil { return m.RepeatedUint32 } return nil } func (m *Message) GetRepeatedInt64() []int64 { if m != nil { return m.RepeatedInt64 } return nil } func (m *Message) GetRepeatedSint64() []int64 { if m != nil { return m.RepeatedSint64 } return nil } func (m *Message) GetRepeatedUint64() []uint64 { if m != nil { return m.RepeatedUint64 } return nil } func (m *Message) GetRepeatedFixed32() []uint32 { if m != nil { return m.RepeatedFixed32 } return nil } func (m *Message) GetRepeatedSfixed32() []int32 { if m != nil { return m.RepeatedSfixed32 } return nil } func (m *Message) GetRepeatedFloat() []float32 { if m != nil { return m.RepeatedFloat } return nil } func (m *Message) GetRepeatedFixed64() []uint64 { if m != nil { return m.RepeatedFixed64 } return nil } func (m *Message) GetRepeatedSfixed64() []int64 { if m != nil { return m.RepeatedSfixed64 } return nil } func (m *Message) GetRepeatedDouble() []float64 { if m != nil { return m.RepeatedDouble } return nil } func (m *Message) GetRepeatedString() []string { if m != nil { return m.RepeatedString } return nil } func (m *Message) GetRepeatedBytes() [][]byte { if m != nil { return m.RepeatedBytes } return nil } func (m *Message) GetRepeatedChildEnum() []Message_ChildEnum { if m != nil { return m.RepeatedChildEnum } return nil } func (m *Message) GetRepeatedChildMessage() []*Message_ChildMessage { if m != nil { return m.RepeatedChildMessage } return nil } func (m *Message) GetRepeatedSiblingEnum() []SiblingEnum { if m != nil { return m.RepeatedSiblingEnum } return nil } func (m *Message) GetRepeatedSiblingMessage() []*SiblingMessage { if m != nil { return m.RepeatedSiblingMessage } return nil } func (m *Message) GetMapBoolBool() map[bool]bool { if m != nil { return m.MapBoolBool } return nil } func (m *Message) GetMapBoolInt32() map[bool]int32 { if m != nil { return m.MapBoolInt32 } return nil } func (m *Message) GetMapBoolSint32() map[bool]int32 { if m != nil { return m.MapBoolSint32 } return nil } func (m *Message) GetMapBoolUint32() map[bool]uint32 { if m != nil { return m.MapBoolUint32 } return nil } func (m *Message) GetMapBoolInt64() map[bool]int64 { if m != nil { return m.MapBoolInt64 } return nil } func (m *Message) GetMapBoolSint64() map[bool]int64 { if m != nil { return m.MapBoolSint64 } return nil } func (m *Message) GetMapBoolUint64() map[bool]uint64 { if m != nil { return m.MapBoolUint64 } return nil } func (m *Message) GetMapBoolFixed32() map[bool]uint32 { if m != nil { return m.MapBoolFixed32 } return nil } func (m *Message) GetMapBoolSfixed32() map[bool]int32 { if m != nil { return m.MapBoolSfixed32 } return nil } func (m *Message) GetMapBoolFloat() map[bool]float32 { if m != nil { return m.MapBoolFloat } return nil } func (m *Message) GetMapBoolFixed64() map[bool]uint64 { if m != nil { return m.MapBoolFixed64 } return nil } func (m *Message) GetMapBoolSfixed64() map[bool]int64 { if m != nil { return m.MapBoolSfixed64 } return nil } func (m *Message) GetMapBoolDouble() map[bool]float64 { if m != nil { return m.MapBoolDouble } return nil } func (m *Message) GetMapBoolString() map[bool]string { if m != nil { return m.MapBoolString } return nil } func (m *Message) GetMapBoolBytes() map[bool][]byte { if m != nil { return m.MapBoolBytes } return nil } func (m *Message) GetMapBoolChildEnum() map[bool]Message_ChildEnum { if m != nil { return m.MapBoolChildEnum } return nil } func (m *Message) GetMapBoolChildMessage() map[bool]*Message_ChildMessage { if m != nil { return m.MapBoolChildMessage } return nil } func (m *Message) GetMapBoolSiblingEnum() map[bool]SiblingEnum { if m != nil { return m.MapBoolSiblingEnum } return nil } func (m *Message) GetMapBoolSiblingMessage() map[bool]*SiblingMessage { if m != nil { return m.MapBoolSiblingMessage } return nil } func (m *Message) GetMapInt32Bool() map[int32]bool { if m != nil { return m.MapInt32Bool } return nil } func (m *Message) GetMapSint32Bool() map[int32]bool { if m != nil { return m.MapSint32Bool } return nil } func (m *Message) GetMapUint32Bool() map[uint32]bool { if m != nil { return m.MapUint32Bool } return nil } func (m *Message) GetMapInt64Bool() map[int64]bool { if m != nil { return m.MapInt64Bool } return nil } func (m *Message) GetMapSint64Bool() map[int64]bool { if m != nil { return m.MapSint64Bool } return nil } func (m *Message) GetMapUint64Bool() map[uint64]bool { if m != nil { return m.MapUint64Bool } return nil } func (m *Message) GetMapFixed32Bool() map[uint32]bool { if m != nil { return m.MapFixed32Bool } return nil } func (m *Message) GetMapStringBool() map[string]bool { if m != nil { return m.MapStringBool } return nil } type isMessage_OneofUnion interface { isMessage_OneofUnion() } type Message_OneofBool struct { OneofBool bool `protobuf:"varint,400,opt,name=oneof_bool,json=oneofBool,proto3,oneof"` } type Message_OneofInt32 struct { OneofInt32 int32 `protobuf:"varint,401,opt,name=oneof_int32,json=oneofInt32,proto3,oneof"` } type Message_OneofSint32 struct { OneofSint32 int32 `protobuf:"zigzag32,402,opt,name=oneof_sint32,json=oneofSint32,proto3,oneof"` } type Message_OneofUint32 struct { OneofUint32 uint32 `protobuf:"varint,403,opt,name=oneof_uint32,json=oneofUint32,proto3,oneof"` } type Message_OneofInt64 struct { OneofInt64 int64 `protobuf:"varint,404,opt,name=oneof_int64,json=oneofInt64,proto3,oneof"` } type Message_OneofSint64 struct { OneofSint64 int64 `protobuf:"zigzag64,405,opt,name=oneof_sint64,json=oneofSint64,proto3,oneof"` } type Message_OneofUint64 struct { OneofUint64 uint64 `protobuf:"varint,406,opt,name=oneof_uint64,json=oneofUint64,proto3,oneof"` } type Message_OneofFixed32 struct { OneofFixed32 uint32 `protobuf:"fixed32,407,opt,name=oneof_fixed32,json=oneofFixed32,proto3,oneof"` } type Message_OneofSfixed32 struct { OneofSfixed32 int32 `protobuf:"fixed32,408,opt,name=oneof_sfixed32,json=oneofSfixed32,proto3,oneof"` } type Message_OneofFloat struct { OneofFloat float32 `protobuf:"fixed32,409,opt,name=oneof_float,json=oneofFloat,proto3,oneof"` } type Message_OneofFixed64 struct { OneofFixed64 uint64 `protobuf:"fixed64,410,opt,name=oneof_fixed64,json=oneofFixed64,proto3,oneof"` } type Message_OneofSfixed64 struct { OneofSfixed64 int64 `protobuf:"fixed64,411,opt,name=oneof_sfixed64,json=oneofSfixed64,proto3,oneof"` } type Message_OneofDouble struct { OneofDouble float64 `protobuf:"fixed64,412,opt,name=oneof_double,json=oneofDouble,proto3,oneof"` } type Message_OneofString struct { OneofString string `protobuf:"bytes,413,opt,name=oneof_string,json=oneofString,proto3,oneof"` } type Message_OneofBytes struct { OneofBytes []byte `protobuf:"bytes,414,opt,name=oneof_bytes,json=oneofBytes,proto3,oneof"` } type Message_OneofChildEnum struct { OneofChildEnum Message_ChildEnum `protobuf:"varint,415,opt,name=oneof_child_enum,json=oneofChildEnum,proto3,enum=google.golang.org.proto3_20190205.Message_ChildEnum,oneof"` } type Message_OneofChildMessage struct { OneofChildMessage *Message_ChildMessage `protobuf:"bytes,416,opt,name=oneof_child_message,json=oneofChildMessage,proto3,oneof"` } type Message_OneofSiblingEnum struct { OneofSiblingEnum SiblingEnum `protobuf:"varint,417,opt,name=oneof_sibling_enum,json=oneofSiblingEnum,proto3,enum=google.golang.org.proto3_20190205.SiblingEnum,oneof"` } type Message_OneofSiblingMessage struct { OneofSiblingMessage *SiblingMessage `protobuf:"bytes,418,opt,name=oneof_sibling_message,json=oneofSiblingMessage,proto3,oneof"` } type Message_OneofString1 struct { OneofString1 string `protobuf:"bytes,419,opt,name=oneof_string1,json=oneofString1,proto3,oneof"` } type Message_OneofString2 struct { OneofString2 string `protobuf:"bytes,420,opt,name=oneof_string2,json=oneofString2,proto3,oneof"` } type Message_OneofString3 struct { OneofString3 string `protobuf:"bytes,421,opt,name=oneof_string3,json=oneofString3,proto3,oneof"` } func (*Message_OneofBool) isMessage_OneofUnion() {} func (*Message_OneofInt32) isMessage_OneofUnion() {} func (*Message_OneofSint32) isMessage_OneofUnion() {} func (*Message_OneofUint32) isMessage_OneofUnion() {} func (*Message_OneofInt64) isMessage_OneofUnion() {} func (*Message_OneofSint64) isMessage_OneofUnion() {} func (*Message_OneofUint64) isMessage_OneofUnion() {} func (*Message_OneofFixed32) isMessage_OneofUnion() {} func (*Message_OneofSfixed32) isMessage_OneofUnion() {} func (*Message_OneofFloat) isMessage_OneofUnion() {} func (*Message_OneofFixed64) isMessage_OneofUnion() {} func (*Message_OneofSfixed64) isMessage_OneofUnion() {} func (*Message_OneofDouble) isMessage_OneofUnion() {} func (*Message_OneofString) isMessage_OneofUnion() {} func (*Message_OneofBytes) isMessage_OneofUnion() {} func (*Message_OneofChildEnum) isMessage_OneofUnion() {} func (*Message_OneofChildMessage) isMessage_OneofUnion() {} func (*Message_OneofSiblingEnum) isMessage_OneofUnion() {} func (*Message_OneofSiblingMessage) isMessage_OneofUnion() {} func (*Message_OneofString1) isMessage_OneofUnion() {} func (*Message_OneofString2) isMessage_OneofUnion() {} func (*Message_OneofString3) isMessage_OneofUnion() {} func (m *Message) GetOneofUnion() isMessage_OneofUnion { if m != nil { return m.OneofUnion } return nil } func (m *Message) GetOneofBool() bool { if x, ok := m.GetOneofUnion().(*Message_OneofBool); ok { return x.OneofBool } return false } func (m *Message) GetOneofInt32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofInt32); ok { return x.OneofInt32 } return 0 } func (m *Message) GetOneofSint32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSint32); ok { return x.OneofSint32 } return 0 } func (m *Message) GetOneofUint32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofUint32); ok { return x.OneofUint32 } return 0 } func (m *Message) GetOneofInt64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofInt64); ok { return x.OneofInt64 } return 0 } func (m *Message) GetOneofSint64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSint64); ok { return x.OneofSint64 } return 0 } func (m *Message) GetOneofUint64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofUint64); ok { return x.OneofUint64 } return 0 } func (m *Message) GetOneofFixed32() uint32 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed32); ok { return x.OneofFixed32 } return 0 } func (m *Message) GetOneofSfixed32() int32 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed32); ok { return x.OneofSfixed32 } return 0 } func (m *Message) GetOneofFloat() float32 { if x, ok := m.GetOneofUnion().(*Message_OneofFloat); ok { return x.OneofFloat } return 0 } func (m *Message) GetOneofFixed64() uint64 { if x, ok := m.GetOneofUnion().(*Message_OneofFixed64); ok { return x.OneofFixed64 } return 0 } func (m *Message) GetOneofSfixed64() int64 { if x, ok := m.GetOneofUnion().(*Message_OneofSfixed64); ok { return x.OneofSfixed64 } return 0 } func (m *Message) GetOneofDouble() float64 { if x, ok := m.GetOneofUnion().(*Message_OneofDouble); ok { return x.OneofDouble } return 0 } func (m *Message) GetOneofString() string { if x, ok := m.GetOneofUnion().(*Message_OneofString); ok { return x.OneofString } return "" } func (m *Message) GetOneofBytes() []byte { if x, ok := m.GetOneofUnion().(*Message_OneofBytes); ok { return x.OneofBytes } return nil } func (m *Message) GetOneofChildEnum() Message_ChildEnum { if x, ok := m.GetOneofUnion().(*Message_OneofChildEnum); ok { return x.OneofChildEnum } return Message_ALPHA } func (m *Message) GetOneofChildMessage() *Message_ChildMessage { if x, ok := m.GetOneofUnion().(*Message_OneofChildMessage); ok { return x.OneofChildMessage } return nil } func (m *Message) GetOneofSiblingEnum() SiblingEnum { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingEnum); ok { return x.OneofSiblingEnum } return SiblingEnum_ALPHA } func (m *Message) GetOneofSiblingMessage() *SiblingMessage { if x, ok := m.GetOneofUnion().(*Message_OneofSiblingMessage); ok { return x.OneofSiblingMessage } return nil } func (m *Message) GetOneofString1() string { if x, ok := m.GetOneofUnion().(*Message_OneofString1); ok { return x.OneofString1 } return "" } func (m *Message) GetOneofString2() string { if x, ok := m.GetOneofUnion().(*Message_OneofString2); ok { return x.OneofString2 } return "" } func (m *Message) GetOneofString3() string { if x, ok := m.GetOneofUnion().(*Message_OneofString3); ok { return x.OneofString3 } return "" } // XXX_OneofWrappers is for the internal use of the proto package. func (*Message) XXX_OneofWrappers() []interface{} { return []interface{}{ (*Message_OneofBool)(nil), (*Message_OneofInt32)(nil), (*Message_OneofSint32)(nil), (*Message_OneofUint32)(nil), (*Message_OneofInt64)(nil), (*Message_OneofSint64)(nil), (*Message_OneofUint64)(nil), (*Message_OneofFixed32)(nil), (*Message_OneofSfixed32)(nil), (*Message_OneofFloat)(nil), (*Message_OneofFixed64)(nil), (*Message_OneofSfixed64)(nil), (*Message_OneofDouble)(nil), (*Message_OneofString)(nil), (*Message_OneofBytes)(nil), (*Message_OneofChildEnum)(nil), (*Message_OneofChildMessage)(nil), (*Message_OneofSiblingEnum)(nil), (*Message_OneofSiblingMessage)(nil), (*Message_OneofString1)(nil), (*Message_OneofString2)(nil), (*Message_OneofString3)(nil), } } type Message_ChildMessage struct { F1 string `protobuf:"bytes,1,opt,name=f1,proto3" json:"f1,omitempty"` F2 []string `protobuf:"bytes,2,rep,name=f2,proto3" json:"f2,omitempty"` F3 *Message `protobuf:"bytes,3,opt,name=f3,proto3" json:"f3,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Message_ChildMessage) Reset() { *m = Message_ChildMessage{} } func (m *Message_ChildMessage) String() string { return proto.CompactTextString(m) } func (*Message_ChildMessage) ProtoMessage() {} func (*Message_ChildMessage) Descriptor() ([]byte, []int) { return fileDescriptor_95cd555ff3d1bc43, []int{1, 0} } func (m *Message_ChildMessage) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message_ChildMessage.Unmarshal(m, b) } func (m *Message_ChildMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message_ChildMessage.Marshal(b, m, deterministic) } func (m *Message_ChildMessage) XXX_Merge(src proto.Message) { xxx_messageInfo_Message_ChildMessage.Merge(m, src) } func (m *Message_ChildMessage) XXX_Size() int { return xxx_messageInfo_Message_ChildMessage.Size(m) } func (m *Message_ChildMessage) XXX_DiscardUnknown() { xxx_messageInfo_Message_ChildMessage.DiscardUnknown(m) } var xxx_messageInfo_Message_ChildMessage proto.InternalMessageInfo func (m *Message_ChildMessage) GetF1() string { if m != nil { return m.F1 } return "" } func (m *Message_ChildMessage) GetF2() []string { if m != nil { return m.F2 } return nil } func (m *Message_ChildMessage) GetF3() *Message { if m != nil { return m.F3 } return nil } func init() { proto.RegisterEnum("google.golang.org.proto3_20190205.SiblingEnum", SiblingEnum_name, SiblingEnum_value) proto.RegisterEnum("google.golang.org.proto3_20190205.Message_ChildEnum", Message_ChildEnum_name, Message_ChildEnum_value) proto.RegisterType((*SiblingMessage)(nil), "google.golang.org.proto3_20190205.SiblingMessage") proto.RegisterType((*Message)(nil), "google.golang.org.proto3_20190205.Message") proto.RegisterMapType((map[bool]bool)(nil), "google.golang.org.proto3_20190205.Message.MapBoolBoolEntry") proto.RegisterMapType((map[bool][]byte)(nil), "google.golang.org.proto3_20190205.Message.MapBoolBytesEntry") proto.RegisterMapType((map[bool]Message_ChildEnum)(nil), "google.golang.org.proto3_20190205.Message.MapBoolChildEnumEntry") proto.RegisterMapType((map[bool]*Message_ChildMessage)(nil), "google.golang.org.proto3_20190205.Message.MapBoolChildMessageEntry") proto.RegisterMapType((map[bool]float64)(nil), "google.golang.org.proto3_20190205.Message.MapBoolDoubleEntry") proto.RegisterMapType((map[bool]uint32)(nil), "google.golang.org.proto3_20190205.Message.MapBoolFixed32Entry") proto.RegisterMapType((map[bool]uint64)(nil), "google.golang.org.proto3_20190205.Message.MapBoolFixed64Entry") proto.RegisterMapType((map[bool]float32)(nil), "google.golang.org.proto3_20190205.Message.MapBoolFloatEntry") proto.RegisterMapType((map[bool]int32)(nil), "google.golang.org.proto3_20190205.Message.MapBoolInt32Entry") proto.RegisterMapType((map[bool]int64)(nil), "google.golang.org.proto3_20190205.Message.MapBoolInt64Entry") proto.RegisterMapType((map[bool]int32)(nil), "google.golang.org.proto3_20190205.Message.MapBoolSfixed32Entry") proto.RegisterMapType((map[bool]int64)(nil), "google.golang.org.proto3_20190205.Message.MapBoolSfixed64Entry") proto.RegisterMapType((map[bool]SiblingEnum)(nil), "google.golang.org.proto3_20190205.Message.MapBoolSiblingEnumEntry") proto.RegisterMapType((map[bool]*SiblingMessage)(nil), "google.golang.org.proto3_20190205.Message.MapBoolSiblingMessageEntry") proto.RegisterMapType((map[bool]int32)(nil), "google.golang.org.proto3_20190205.Message.MapBoolSint32Entry") proto.RegisterMapType((map[bool]int64)(nil), "google.golang.org.proto3_20190205.Message.MapBoolSint64Entry") proto.RegisterMapType((map[bool]string)(nil), "google.golang.org.proto3_20190205.Message.MapBoolStringEntry") proto.RegisterMapType((map[bool]uint32)(nil), "google.golang.org.proto3_20190205.Message.MapBoolUint32Entry") proto.RegisterMapType((map[bool]uint64)(nil), "google.golang.org.proto3_20190205.Message.MapBoolUint64Entry") proto.RegisterMapType((map[uint32]bool)(nil), "google.golang.org.proto3_20190205.Message.MapFixed32BoolEntry") proto.RegisterMapType((map[int32]bool)(nil), "google.golang.org.proto3_20190205.Message.MapInt32BoolEntry") proto.RegisterMapType((map[int64]bool)(nil), "google.golang.org.proto3_20190205.Message.MapInt64BoolEntry") proto.RegisterMapType((map[int32]bool)(nil), "google.golang.org.proto3_20190205.Message.MapSint32BoolEntry") proto.RegisterMapType((map[int64]bool)(nil), "google.golang.org.proto3_20190205.Message.MapSint64BoolEntry") proto.RegisterMapType((map[string]bool)(nil), "google.golang.org.proto3_20190205.Message.MapStringBoolEntry") proto.RegisterMapType((map[uint32]bool)(nil), "google.golang.org.proto3_20190205.Message.MapUint32BoolEntry") proto.RegisterMapType((map[uint64]bool)(nil), "google.golang.org.proto3_20190205.Message.MapUint64BoolEntry") proto.RegisterType((*Message_ChildMessage)(nil), "google.golang.org.proto3_20190205.Message.ChildMessage") } func init() { proto.RegisterFile("proto3_20190205_c823c79e/test.proto", fileDescriptor_95cd555ff3d1bc43) } var fileDescriptor_95cd555ff3d1bc43 = []byte{ // 1947 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x9a, 0x59, 0x73, 0xdb, 0xc8, 0x11, 0xc7, 0x09, 0x52, 0x87, 0x35, 0xe2, 0x09, 0x5a, 0xca, 0x94, 0x9e, 0x10, 0xd9, 0x71, 0x10, 0x27, 0x45, 0x59, 0x24, 0x02, 0x1f, 0x49, 0x6c, 0x4b, 0xb6, 0x1c, 0x3a, 0x65, 0x27, 0x2e, 0xb8, 0x94, 0x87, 0xbc, 0x28, 0x94, 0x04, 0xd2, 0xb4, 0x41, 0x42, 0x11, 0x49, 0x57, 0x54, 0x79, 0xf0, 0x57, 0xc8, 0x7d, 0xef, 0xbd, 0xfb, 0xb6, 0xf7, 0x7d, 0xdf, 0xde, 0xf2, 0xde, 0xf7, 0xf9, 0x69, 0xb6, 0x06, 0x8d, 0xb9, 0x00, 0xd0, 0x24, 0xc1, 0xda, 0x07, 0x57, 0x49, 0xcd, 0xff, 0xf4, 0x8f, 0xdd, 0xe8, 0xe9, 0x9e, 0x81, 0x85, 0x0e, 0xec, 0xec, 0xba, 0x5d, 0xb7, 0xb2, 0x51, 0x3e, 0xb2, 0x7c, 0xfc, 0x48, 0xf9, 0xc8, 0x4f, 0x37, 0xb6, 0x8e, 0x95, 0x2b, 0x5b, 0x47, 0x8f, 0xdb, 0x4b, 0x5d, 0xbb, 0xd3, 0x2d, 0x79, 0x9f, 0xaa, 0xdf, 0x6f, 0xb8, 0x6e, 0xc3, 0xb1, 0x4b, 0x0d, 0xd7, 0xa9, 0xb5, 0x1b, 0x25, 0x77, 0xb7, 0x51, 0x0a, 0x2c, 0x5b, 0x74, 0x50, 0xf6, 0x72, 0x73, 0xd3, 0x69, 0xb6, 0x1b, 0x17, 0xed, 0x4e, 0xa7, 0xd6, 0xb0, 0xd5, 0x2c, 0x4a, 0xd6, 0x97, 0xb1, 0xa2, 0x29, 0xfa, 0x8c, 0x95, 0xac, 0x2f, 0x7b, 0xbf, 0x97, 0x71, 0x52, 0x4b, 0x79, 0xbf, 0x97, 0xd5, 0x13, 0x28, 0x59, 0xaf, 0xe0, 0x94, 0xa6, 0xe8, 0xb3, 0xe5, 0xc3, 0xa5, 0x81, 0x84, 0x92, 0xef, 0xd7, 0x4a, 0xd6, 0x2b, 0x8b, 0x37, 0x4f, 0xa3, 0x69, 0xca, 0x39, 0x80, 0x32, 0xee, 0x4e, 0xb7, 0xe9, 0xb6, 0x6b, 0xce, 0xc6, 0xa6, 0xeb, 0x3a, 0x78, 0x5b, 0x53, 0xf4, 0x7d, 0x56, 0x9a, 0x1a, 0x57, 0x5d, 0xd7, 0x51, 0x7f, 0x80, 0xb2, 0x4c, 0xd4, 0x6c, 0x77, 0x2b, 0x65, 0x6c, 0x6b, 0x8a, 0x3e, 0x69, 0xb1, 0xa5, 0xe7, 0x89, 0x51, 0xfd, 0x21, 0xca, 0x31, 0x59, 0x07, 0x74, 0x75, 0x4d, 0xd1, 0x0b, 0x16, 0x5b, 0x7d, 0xb9, 0x19, 0x12, 0xf6, 0x40, 0xd8, 0xd0, 0x14, 0x3d, 0xc3, 0x85, 0xeb, 0x20, 0x0c, 0x80, 0x4d, 0x03, 0x5f, 0xd1, 0x14, 0x3d, 0x25, 0x81, 0x4d, 0x23, 0x04, 0x36, 0x0d, 0xdc, 0xd4, 0x14, 0x5d, 0x95, 0xc1, 0x01, 0x61, 0x0f, 0x84, 0x57, 0x35, 0x45, 0x9f, 0x90, 0xc1, 0xa6, 0xa1, 0xfe, 0x08, 0xe5, 0x99, 0xb0, 0xde, 0xfc, 0xa3, 0xbd, 0x5d, 0x29, 0xe3, 0x6b, 0x9a, 0xa2, 0x4f, 0x5b, 0xcc, 0xc1, 0x39, 0x30, 0xab, 0x3f, 0x46, 0x05, 0x0e, 0xa7, 0x5a, 0x47, 0x53, 0xf4, 0x9c, 0xc5, 0x7c, 0x5c, 0xf6, 0xed, 0x52, 0x40, 0x75, 0xc7, 0xad, 0x75, 0x71, 0x4b, 0x53, 0xf4, 0x24, 0x0f, 0xe8, 0x1c, 0x31, 0x86, 0xf1, 0xa6, 0x81, 0xdb, 0x9a, 0xa2, 0x4f, 0x05, 0xf0, 0xa6, 0x11, 0x81, 0x37, 0x0d, 0xec, 0x6a, 0x8a, 0x9e, 0x0f, 0xe2, 0x03, 0xf1, 0x6f, 0xbb, 0xbd, 0x4d, 0xc7, 0xc6, 0x3b, 0x9a, 0xa2, 0x2b, 0x3c, 0xfe, 0xb3, 0x9e, 0x55, 0xce, 0x68, 0x77, 0xb7, 0xd9, 0x6e, 0xe0, 0x3f, 0x78, 0xb5, 0xc8, 0x33, 0xea, 0x59, 0xa5, 0x80, 0x36, 0xf7, 0xba, 0x76, 0x07, 0xef, 0x6a, 0x8a, 0x9e, 0xe6, 0x01, 0xad, 0x12, 0xa3, 0xba, 0x8d, 0x8a, 0x4c, 0xb6, 0x75, 0xa5, 0xe9, 0x6c, 0x6f, 0xd8, 0xed, 0x5e, 0x0b, 0x77, 0x34, 0x45, 0xcf, 0x96, 0x8d, 0xe1, 0xeb, 0xb7, 0x74, 0x86, 0x2c, 0x5e, 0x6b, 0xf7, 0x5a, 0x16, 0x0b, 0x9b, 0x99, 0xd4, 0x16, 0x9a, 0x0f, 0x50, 0x5a, 0xb0, 0x0c, 0x77, 0xbd, 0x8d, 0x72, 0x74, 0x54, 0x10, 0xdd, 0x35, 0xfb, 0x25, 0x16, 0xdd, 0x3b, 0x9b, 0x68, 0x4e, 0x28, 0x3b, 0x6f, 0xfb, 0x42, 0x58, 0x3d, 0x2f, 0xac, 0xd2, 0x10, 0x34, 0x7f, 0xd7, 0x7b, 0x01, 0x15, 0x79, 0xb1, 0x32, 0xa3, 0x7a, 0x0d, 0xe1, 0x10, 0x83, 0x06, 0x75, 0xdd, 0x0b, 0x6a, 0x79, 0x78, 0x0c, 0x0d, 0x67, 0x3e, 0x40, 0xa2, 0x01, 0x1d, 0x44, 0x99, 0x5d, 0x7b, 0xc7, 0xae, 0x75, 0xed, 0x6d, 0x68, 0x06, 0xb7, 0x14, 0x2d, 0x45, 0xba, 0x01, 0xb5, 0x7a, 0xdd, 0xe0, 0x10, 0xca, 0x32, 0x15, 0x6c, 0xde, 0xb7, 0x89, 0x6c, 0xd2, 0x62, 0x8b, 0xa1, 0x1d, 0xe8, 0x28, 0xc7, 0x74, 0x7e, 0x3b, 0x78, 0x87, 0x08, 0x0b, 0x16, 0x5b, 0xef, 0xf7, 0x03, 0x51, 0xe9, 0xf7, 0x83, 0x77, 0x89, 0x32, 0xc3, 0x95, 0x7e, 0x43, 0x08, 0xb0, 0x4d, 0x03, 0xbf, 0x47, 0x84, 0x29, 0x89, 0x6d, 0x1a, 0x21, 0xb6, 0x69, 0xe0, 0xf7, 0x89, 0x50, 0x95, 0xd9, 0x01, 0xa5, 0xdf, 0x12, 0x3e, 0x20, 0xca, 0x09, 0x99, 0x6d, 0x1a, 0xea, 0x61, 0x94, 0x67, 0x4a, 0xba, 0xcf, 0x3f, 0x24, 0xd2, 0x69, 0x8b, 0xb9, 0xa0, 0x4d, 0xe1, 0x27, 0xa8, 0xc0, 0xf9, 0x54, 0xfc, 0x11, 0x11, 0xe7, 0x2c, 0xe6, 0x85, 0x75, 0x05, 0x31, 0x2a, 0xe8, 0x0a, 0x1f, 0x13, 0x69, 0x92, 0x47, 0x05, 0x6d, 0x21, 0xf4, 0x0d, 0x4c, 0x03, 0x7f, 0x42, 0x94, 0x53, 0x81, 0x6f, 0x60, 0x1a, 0x11, 0xdf, 0xc0, 0x34, 0xf0, 0xa7, 0x44, 0x9c, 0x0f, 0x7e, 0x83, 0x40, 0x16, 0xfc, 0xc6, 0xf0, 0x19, 0xd1, 0x2a, 0x3c, 0x0b, 0x7e, 0x67, 0x90, 0x32, 0x0b, 0x9d, 0xe1, 0x73, 0xc5, 0x1b, 0x4b, 0x3c, 0xb3, 0xd0, 0x1a, 0xc4, 0xa8, 0xa0, 0x35, 0x7c, 0x41, 0x84, 0x69, 0x1e, 0x15, 0xf4, 0x06, 0x1b, 0x15, 0x99, 0x4e, 0xe8, 0x0d, 0x5f, 0x12, 0x71, 0xec, 0xe6, 0x40, 0x3d, 0xf2, 0xe6, 0xd0, 0x46, 0xf3, 0x01, 0x0c, 0xdd, 0x47, 0x5f, 0x11, 0xd2, 0x38, 0xdd, 0x41, 0x82, 0xd1, 0xcd, 0xb4, 0x85, 0xe6, 0x84, 0x12, 0x14, 0xba, 0xc3, 0xd7, 0x10, 0xd8, 0xc8, 0xed, 0x81, 0x17, 0x2e, 0x6f, 0x0f, 0x0e, 0xc2, 0x21, 0x08, 0x0d, 0xeb, 0x1b, 0x08, 0x2b, 0x4e, 0x7f, 0x08, 0xa0, 0x68, 0x48, 0xbf, 0x47, 0x99, 0x56, 0x6d, 0xc7, 0x6b, 0x0d, 0xd0, 0x1f, 0x1e, 0x4c, 0x7a, 0x88, 0x9f, 0x8d, 0x90, 0xb9, 0x8b, 0xb5, 0x1d, 0xd2, 0x45, 0xc8, 0xbf, 0xb5, 0x76, 0x77, 0x77, 0xcf, 0x9a, 0x6d, 0x71, 0x8b, 0xba, 0x85, 0xb2, 0x8c, 0x00, 0x8d, 0xe0, 0x21, 0x40, 0xfc, 0x7c, 0x74, 0x84, 0xd7, 0x85, 0x80, 0x91, 0x6e, 0x09, 0x26, 0xb5, 0x8e, 0x72, 0x0c, 0xe2, 0x37, 0xa6, 0x87, 0x81, 0xf2, 0x8b, 0xd1, 0x29, 0xd0, 0xc2, 0x00, 0x93, 0x69, 0x89, 0x36, 0x89, 0xe3, 0xb7, 0xb5, 0x47, 0x62, 0x73, 0xd6, 0x23, 0x38, 0x7e, 0x53, 0x0c, 0x24, 0xcd, 0x34, 0xf0, 0xa3, 0xe3, 0x24, 0xcd, 0x34, 0x42, 0x49, 0x33, 0x8d, 0x50, 0xd2, 0x4c, 0x03, 0x3f, 0x36, 0x56, 0xd2, 0x28, 0x46, 0x4c, 0x5a, 0x80, 0xe3, 0xf7, 0xe3, 0xc7, 0xc7, 0x4a, 0x5a, 0x90, 0xe3, 0x77, 0xf3, 0x26, 0xca, 0x33, 0x0e, 0x6d, 0xd0, 0x4f, 0x00, 0xe8, 0xe4, 0xe8, 0x20, 0xbf, 0xef, 0x03, 0x29, 0xdb, 0x92, 0x8c, 0xaa, 0x83, 0x0a, 0x3c, 0x75, 0x94, 0xf5, 0x24, 0xb0, 0x4e, 0xc5, 0x48, 0x5e, 0x5d, 0x84, 0xe5, 0x5a, 0xb2, 0x55, 0xaa, 0x06, 0x18, 0x26, 0x4f, 0xc5, 0xae, 0x06, 0x6f, 0xec, 0xc8, 0xd5, 0x00, 0x93, 0x28, 0x94, 0x3d, 0xd3, 0xc0, 0x4f, 0x8f, 0x97, 0x3d, 0xfa, 0x9c, 0xa4, 0xec, 0x99, 0x46, 0x44, 0xf6, 0x4c, 0x03, 0x3f, 0x33, 0x66, 0xf6, 0x28, 0x4c, 0xce, 0x5e, 0xa0, 0xfc, 0xfc, 0x41, 0xf8, 0x6c, 0xec, 0xf2, 0x83, 0x91, 0x29, 0x97, 0x9f, 0x3f, 0x46, 0xa5, 0xed, 0x04, 0x63, 0xf4, 0xb9, 0xf8, 0xdb, 0xc9, 0x73, 0x10, 0xd8, 0x4e, 0x30, 0x84, 0xc5, 0x6a, 0x80, 0x21, 0xfc, 0x7c, 0xec, 0x6a, 0xf0, 0xc6, 0xb5, 0x5c, 0x0d, 0x30, 0xc1, 0x77, 0x50, 0x91, 0x41, 0x84, 0x09, 0xfe, 0x02, 0x90, 0x4e, 0x8f, 0x4e, 0x62, 0x53, 0x1b, 0x68, 0xf9, 0x56, 0xc0, 0xac, 0xee, 0xa1, 0xf9, 0x00, 0x91, 0x4e, 0xbd, 0x17, 0x01, 0x7a, 0x26, 0x26, 0xd4, 0xb7, 0x01, 0xb7, 0xd8, 0x0a, 0x7f, 0xa2, 0x5e, 0x47, 0x73, 0x42, 0x23, 0x14, 0xe6, 0xfa, 0x4b, 0x40, 0x5e, 0x8d, 0xd3, 0x0e, 0xd9, 0x44, 0x07, 0xb0, 0xda, 0x0a, 0x7d, 0xa0, 0xde, 0x40, 0x38, 0xc4, 0xa5, 0x41, 0xbf, 0x0c, 0xe8, 0xb5, 0xd8, 0x68, 0x29, 0xec, 0xb9, 0x56, 0xd4, 0x67, 0xb4, 0x94, 0xbc, 0x99, 0x03, 0xe3, 0xff, 0x95, 0x58, 0xa5, 0xe4, 0x0d, 0x61, 0x3e, 0xff, 0x49, 0x29, 0x31, 0x13, 0xdd, 0x17, 0x1d, 0x81, 0xf2, 0x6a, 0xac, 0x7d, 0x01, 0x33, 0x98, 0x63, 0xc8, 0xbe, 0xe0, 0x36, 0xca, 0xe9, 0x09, 0x9c, 0xd7, 0x62, 0x71, 0xd6, 0x23, 0x38, 0xdc, 0x26, 0x24, 0xcd, 0x34, 0x00, 0xf3, 0x7a, 0xdc, 0xa4, 0x99, 0x46, 0x28, 0x69, 0x60, 0x12, 0x93, 0x46, 0x29, 0x6f, 0xc4, 0x4e, 0x9a, 0x88, 0xa1, 0x49, 0x93, 0x39, 0x3d, 0x81, 0xf3, 0x66, 0xec, 0xa4, 0x05, 0x39, 0xdc, 0x46, 0xa7, 0x8b, 0x3f, 0xd1, 0x00, 0x74, 0x33, 0xd6, 0x74, 0xf1, 0x47, 0x30, 0x27, 0x91, 0xa7, 0x21, 0x18, 0x59, 0xea, 0xbc, 0x6e, 0x09, 0xa4, 0xb7, 0xe2, 0xa5, 0xce, 0xf3, 0x10, 0x48, 0x1d, 0xb3, 0xa9, 0x1a, 0x42, 0x6e, 0xdb, 0x76, 0xeb, 0x80, 0xf8, 0x73, 0x4a, 0x53, 0xf4, 0x7d, 0xd5, 0x84, 0x35, 0xe3, 0x19, 0x3d, 0xc5, 0x22, 0x9a, 0x05, 0x05, 0x9c, 0x14, 0xff, 0x42, 0x24, 0x93, 0xd5, 0x84, 0x05, 0xeb, 0xe0, 0xe4, 0x7a, 0x10, 0xa5, 0x41, 0xe3, 0x1f, 0x5b, 0xff, 0x4a, 0x44, 0x85, 0x6a, 0xc2, 0x82, 0xa5, 0xfe, 0xb9, 0x93, 0xa9, 0xfc, 0x43, 0xe7, 0xdf, 0x88, 0x2a, 0xc3, 0x54, 0xfe, 0xa9, 0x51, 0xe4, 0x99, 0x06, 0xfe, 0x3b, 0x11, 0xa5, 0x44, 0x9e, 0x69, 0xc8, 0x3c, 0xd3, 0xc0, 0xff, 0x20, 0x22, 0x55, 0xe2, 0x89, 0x2a, 0xff, 0xbc, 0xf6, 0x4f, 0xa2, 0x9a, 0x90, 0x78, 0xa6, 0xa1, 0x1e, 0x42, 0x19, 0x50, 0xd1, 0x13, 0xd0, 0xbf, 0x88, 0x6c, 0xba, 0x9a, 0xb0, 0x60, 0x35, 0x3d, 0x2d, 0xe9, 0x28, 0xeb, 0x33, 0xa9, 0xf0, 0xdf, 0x44, 0x98, 0xab, 0x26, 0x2c, 0x70, 0xc0, 0x4e, 0x3a, 0x2c, 0x02, 0x38, 0xe6, 0xfc, 0x87, 0xc8, 0x92, 0x2c, 0x02, 0x38, 0xa8, 0xc8, 0x54, 0xd3, 0xc0, 0xff, 0x25, 0xaa, 0x29, 0x99, 0xea, 0x5d, 0x80, 0x25, 0xaa, 0x69, 0xe0, 0xff, 0x11, 0x61, 0x3e, 0x40, 0x15, 0xa3, 0xf5, 0x8f, 0x07, 0xff, 0x27, 0x3a, 0x85, 0x45, 0xeb, 0xcf, 0x77, 0x9e, 0x39, 0x18, 0xee, 0x77, 0x10, 0xd5, 0x0c, 0xcf, 0x1c, 0x4c, 0x67, 0x16, 0x01, 0x8c, 0xe6, 0x3b, 0x89, 0x28, 0xcd, 0x22, 0x80, 0xe1, 0x5a, 0x43, 0x79, 0xd0, 0x08, 0x93, 0xf5, 0xae, 0x54, 0xfc, 0x17, 0x67, 0xd5, 0x84, 0x05, 0xa1, 0xf2, 0x69, 0x7a, 0x15, 0x15, 0x45, 0x04, 0x9d, 0x2a, 0x77, 0xa7, 0xc6, 0x7a, 0x6b, 0x56, 0x4d, 0x58, 0x05, 0x0e, 0xa2, 0x53, 0x64, 0x03, 0xa9, 0xb4, 0xa4, 0x84, 0xd9, 0x79, 0x4f, 0x2a, 0xce, 0x2b, 0xb3, 0x6a, 0xc2, 0xca, 0xfb, 0x85, 0xc8, 0xe7, 0xe4, 0x15, 0x34, 0x27, 0x03, 0x68, 0x38, 0xf7, 0xa6, 0x62, 0xbe, 0x2f, 0xab, 0x26, 0xac, 0xa2, 0x88, 0xa1, 0xa1, 0xb0, 0xda, 0x82, 0x67, 0xbc, 0x8c, 0xef, 0xa3, 0x0f, 0x39, 0x2d, 0x3c, 0xe4, 0xe5, 0xa0, 0xae, 0x8c, 0xef, 0x8f, 0xd2, 0x95, 0x83, 0xba, 0x0a, 0x7e, 0x20, 0x4a, 0x57, 0x59, 0xb8, 0x8a, 0xd2, 0x52, 0x4a, 0xbf, 0xc3, 0xff, 0x2b, 0x58, 0x38, 0x89, 0xf2, 0xc1, 0x1b, 0xbb, 0x9a, 0x47, 0xa9, 0x6b, 0xf6, 0x9e, 0x07, 0xdc, 0x67, 0x91, 0x1f, 0xd5, 0xfd, 0x68, 0xf2, 0x7a, 0xcd, 0xe9, 0xd9, 0x38, 0xe9, 0xd9, 0xe0, 0x97, 0x13, 0xc9, 0x63, 0xca, 0xc2, 0x29, 0x54, 0x08, 0x5d, 0xc7, 0x07, 0x39, 0x98, 0x14, 0x1d, 0x9c, 0x46, 0x6a, 0xf8, 0xa6, 0x3d, 0xc8, 0x43, 0x21, 0xda, 0xc3, 0xfa, 0xf0, 0x1e, 0x32, 0x7d, 0x83, 0xf0, 0xaf, 0x0e, 0x83, 0x1c, 0xa4, 0xfa, 0x07, 0x31, 0xa4, 0x07, 0xb5, 0x7f, 0x10, 0x43, 0x7a, 0x98, 0x10, 0x3d, 0xac, 0xa0, 0x62, 0xc4, 0x65, 0x75, 0x90, 0x8b, 0x69, 0xd1, 0xc5, 0x2a, 0xda, 0x1f, 0x75, 0x07, 0x1d, 0xe4, 0x23, 0x17, 0x9d, 0x4b, 0x7e, 0xb9, 0x1c, 0xe4, 0x20, 0x79, 0x9b, 0x38, 0x86, 0x4c, 0xc5, 0xd4, 0xed, 0xe2, 0x18, 0xd2, 0x47, 0x3e, 0xfa, 0x81, 0x08, 0xb7, 0xbc, 0x41, 0x1e, 0x94, 0x3e, 0x45, 0xc1, 0xef, 0x6f, 0x83, 0x3c, 0xcc, 0x44, 0xe7, 0x92, 0x5f, 0xcd, 0x06, 0x39, 0x48, 0x8b, 0x0e, 0xf6, 0xd0, 0x5c, 0xe4, 0x8d, 0x2b, 0xc2, 0xc9, 0xaf, 0x44, 0x27, 0x71, 0x5f, 0xcb, 0x0a, 0xe8, 0x1b, 0x08, 0xf7, 0xbb, 0x77, 0x45, 0xd0, 0x2f, 0x8a, 0xf4, 0x31, 0x5e, 0xd5, 0x0a, 0x5f, 0xa0, 0x87, 0xbe, 0xd7, 0xe7, 0xfa, 0x15, 0xc1, 0x3f, 0x2b, 0x47, 0x3f, 0xea, 0xbb, 0x5b, 0x01, 0xfb, 0x27, 0xb4, 0xd0, 0xff, 0xea, 0x15, 0x41, 0xfe, 0xa5, 0x1c, 0x79, 0x8c, 0xb7, 0xb9, 0xa1, 0x82, 0x91, 0x2f, 0x60, 0x22, 0x73, 0x72, 0x50, 0x3b, 0x87, 0x9a, 0x0d, 0xdc, 0xad, 0x44, 0x0f, 0x85, 0xe1, 0x3c, 0xac, 0xf7, 0xf7, 0x90, 0x19, 0x6e, 0xa4, 0xc8, 0x17, 0x22, 0xd1, 0x41, 0x6a, 0xf8, 0x20, 0xfa, 0x78, 0x50, 0x87, 0x0f, 0xa2, 0x8f, 0x87, 0x89, 0x41, 0x1e, 0xa0, 0x8b, 0x05, 0xaf, 0x27, 0xa2, 0x8b, 0xe9, 0x21, 0xc3, 0x90, 0xef, 0x1d, 0xa2, 0x87, 0x99, 0x01, 0x1e, 0x16, 0x4b, 0x68, 0x86, 0x1f, 0x02, 0x67, 0xd0, 0xe4, 0xca, 0x85, 0x4b, 0xd5, 0x95, 0x7c, 0x82, 0xfc, 0xb8, 0x6a, 0xad, 0xfc, 0xf6, 0x37, 0x79, 0x45, 0x9d, 0x45, 0xd3, 0x67, 0xaa, 0x2b, 0xd6, 0x85, 0xf3, 0x6b, 0xf9, 0xe4, 0x6a, 0x86, 0x1e, 0x57, 0x7b, 0xed, 0xa6, 0xdb, 0x3e, 0xbc, 0x8c, 0x66, 0xc5, 0x83, 0x57, 0x94, 0x03, 0xa4, 0xa6, 0xb9, 0x83, 0x5b, 0xca, 0xea, 0xa5, 0xdf, 0xfd, 0x3a, 0x54, 0xbf, 0x4b, 0x5e, 0xfd, 0x6e, 0xf6, 0xea, 0x4b, 0xcd, 0x76, 0xd7, 0xde, 0x6d, 0xd7, 0x1c, 0xef, 0xaf, 0x27, 0x3c, 0x6b, 0x67, 0xc9, 0xb1, 0x1b, 0xb5, 0xad, 0xbd, 0xa5, 0x7e, 0x7f, 0x68, 0xb1, 0x39, 0x05, 0x9f, 0x7c, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x57, 0xd9, 0x0f, 0xc0, 0x8b, 0x21, 0x00, 0x00, } golang-google-protobuf-1.27.1/internal/testprotos/legacy/proto3_20190205_c823c79e/test.proto000066400000000000000000000105411411250152500311670ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package google.golang.org.proto3_20190205; option go_package = "google.golang.org/protobuf/internal/testprotos/legacy/proto3_20190205_c823c79e"; enum SiblingEnum { ALPHA = 0; BRAVO = 10; CHARLIE = 200; } message SiblingMessage { string f1 = 1; repeated string f2 = 2; Message f3 = 3; } message Message { enum ChildEnum { ALPHA = 0; BRAVO = 1; CHARLIE = 2; } message ChildMessage { string f1 = 1; repeated string f2 = 2; Message f3 = 3; } // Optional fields. bool optional_bool = 100; int32 optional_int32 = 101; sint32 optional_sint32 = 102; uint32 optional_uint32 = 103; int64 optional_int64 = 104; sint64 optional_sint64 = 105; uint64 optional_uint64 = 106; fixed32 optional_fixed32 = 107; sfixed32 optional_sfixed32 = 108; float optional_float = 109; fixed64 optional_fixed64 = 110; sfixed64 optional_sfixed64 = 111; double optional_double = 112; string optional_string = 113; bytes optional_bytes = 114; ChildEnum optional_child_enum = 115; ChildMessage optional_child_message = 116; SiblingEnum optional_sibling_enum = 117; SiblingMessage optional_sibling_message = 118; // Repeated fields. repeated bool repeated_bool = 200; repeated int32 repeated_int32 = 201; repeated sint32 repeated_sint32 = 202; repeated uint32 repeated_uint32 = 203; repeated int64 repeated_int64 = 204; repeated sint64 repeated_sint64 = 205; repeated uint64 repeated_uint64 = 206; repeated fixed32 repeated_fixed32 = 207; repeated sfixed32 repeated_sfixed32 = 208; repeated float repeated_float = 209; repeated fixed64 repeated_fixed64 = 210; repeated sfixed64 repeated_sfixed64 = 211; repeated double repeated_double = 212; repeated string repeated_string = 213; repeated bytes repeated_bytes = 214; repeated ChildEnum repeated_child_enum = 215; repeated ChildMessage repeated_child_message = 216; repeated SiblingEnum repeated_sibling_enum = 217; repeated SiblingMessage repeated_sibling_message = 218; // Map fields. map map_bool_bool = 300; map map_bool_int32 = 301; map map_bool_sint32 = 302; map map_bool_uint32 = 303; map map_bool_int64 = 304; map map_bool_sint64 = 305; map map_bool_uint64 = 306; map map_bool_fixed32 = 307; map map_bool_sfixed32 = 308; map map_bool_float = 309; map map_bool_fixed64 = 310; map map_bool_sfixed64 = 311; map map_bool_double = 312; map map_bool_string = 313; map map_bool_bytes = 314; map map_bool_child_enum = 315; map map_bool_child_message = 316; map map_bool_sibling_enum = 317; map map_bool_sibling_message = 318; map map_int32_bool = 319; map map_sint32_bool = 320; map map_uint32_bool = 321; map map_int64_bool = 322; map map_sint64_bool = 323; map map_uint64_bool = 324; map map_fixed32_bool = 325; map map_string_bool = 326; // Oneof fields. oneof oneof_union { bool oneof_bool = 400; int32 oneof_int32 = 401; sint32 oneof_sint32 = 402; uint32 oneof_uint32 = 403; int64 oneof_int64 = 404; sint64 oneof_sint64 = 405; uint64 oneof_uint64 = 406; fixed32 oneof_fixed32 = 407; sfixed32 oneof_sfixed32 = 408; float oneof_float = 409; fixed64 oneof_fixed64 = 410; sfixed64 oneof_sfixed64 = 411; double oneof_double = 412; string oneof_string = 413; bytes oneof_bytes = 414; ChildEnum oneof_child_enum = 415; ChildMessage oneof_child_message = 416; SiblingEnum oneof_sibling_enum = 417; SiblingMessage oneof_sibling_message = 418; string oneof_string1 = 419; string oneof_string2 = 420; string oneof_string3 = 421; } } golang-google-protobuf-1.27.1/internal/testprotos/messageset/000077500000000000000000000000001411250152500243575ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/messageset/messagesetpb/000077500000000000000000000000001411250152500270415ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/messageset/messagesetpb/message_set.pb.go000066400000000000000000000202641411250152500322730ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/messageset/messagesetpb/message_set.proto package messagesetpb import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type MessageSet struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields } func (x *MessageSet) Reset() { *x = MessageSet{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_messageset_messagesetpb_message_set_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessageSet) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessageSet) ProtoMessage() {} func (x *MessageSet) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_messageset_messagesetpb_message_set_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MessageSet.ProtoReflect.Descriptor instead. func (*MessageSet) Descriptor() ([]byte, []int) { return file_internal_testprotos_messageset_messagesetpb_message_set_proto_rawDescGZIP(), []int{0} } type MessageSetContainer struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MessageSet *MessageSet `protobuf:"bytes,1,opt,name=message_set,json=messageSet" json:"message_set,omitempty"` } func (x *MessageSetContainer) Reset() { *x = MessageSetContainer{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_messageset_messagesetpb_message_set_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessageSetContainer) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessageSetContainer) ProtoMessage() {} func (x *MessageSetContainer) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_messageset_messagesetpb_message_set_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MessageSetContainer.ProtoReflect.Descriptor instead. func (*MessageSetContainer) Descriptor() ([]byte, []int) { return file_internal_testprotos_messageset_messagesetpb_message_set_proto_rawDescGZIP(), []int{1} } func (x *MessageSetContainer) GetMessageSet() *MessageSet { if x != nil { return x.MessageSet } return nil } var File_internal_testprotos_messageset_messagesetpb_message_set_proto protoreflect.FileDescriptor var file_internal_testprotos_messageset_messagesetpb_message_set_proto_rawDesc = []byte{ 0x0a, 0x3d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x65, 0x74, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x65, 0x74, 0x70, 0x62, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x65, 0x74, 0x22, 0x1a, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x2a, 0x08, 0x08, 0x04, 0x10, 0xff, 0xff, 0xff, 0xff, 0x07, 0x3a, 0x02, 0x08, 0x01, 0x22, 0x5c, 0x0a, 0x13, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x42, 0x48, 0x5a, 0x46, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x65, 0x74, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x65, 0x74, 0x70, 0x62, } var ( file_internal_testprotos_messageset_messagesetpb_message_set_proto_rawDescOnce sync.Once file_internal_testprotos_messageset_messagesetpb_message_set_proto_rawDescData = file_internal_testprotos_messageset_messagesetpb_message_set_proto_rawDesc ) func file_internal_testprotos_messageset_messagesetpb_message_set_proto_rawDescGZIP() []byte { file_internal_testprotos_messageset_messagesetpb_message_set_proto_rawDescOnce.Do(func() { file_internal_testprotos_messageset_messagesetpb_message_set_proto_rawDescData = protoimpl.X.CompressGZIP(file_internal_testprotos_messageset_messagesetpb_message_set_proto_rawDescData) }) return file_internal_testprotos_messageset_messagesetpb_message_set_proto_rawDescData } var file_internal_testprotos_messageset_messagesetpb_message_set_proto_msgTypes = make([]protoimpl.MessageInfo, 2) var file_internal_testprotos_messageset_messagesetpb_message_set_proto_goTypes = []interface{}{ (*MessageSet)(nil), // 0: goproto.proto.messageset.MessageSet (*MessageSetContainer)(nil), // 1: goproto.proto.messageset.MessageSetContainer } var file_internal_testprotos_messageset_messagesetpb_message_set_proto_depIdxs = []int32{ 0, // 0: goproto.proto.messageset.MessageSetContainer.message_set:type_name -> goproto.proto.messageset.MessageSet 1, // [1:1] is the sub-list for method output_type 1, // [1:1] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name 1, // [1:1] is the sub-list for extension extendee 0, // [0:1] is the sub-list for field type_name } func init() { file_internal_testprotos_messageset_messagesetpb_message_set_proto_init() } func file_internal_testprotos_messageset_messagesetpb_message_set_proto_init() { if File_internal_testprotos_messageset_messagesetpb_message_set_proto != nil { return } if !protoimpl.UnsafeEnabled { file_internal_testprotos_messageset_messagesetpb_message_set_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageSet); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_internal_testprotos_messageset_messagesetpb_message_set_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageSetContainer); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_messageset_messagesetpb_message_set_proto_rawDesc, NumEnums: 0, NumMessages: 2, NumExtensions: 0, NumServices: 0, }, GoTypes: file_internal_testprotos_messageset_messagesetpb_message_set_proto_goTypes, DependencyIndexes: file_internal_testprotos_messageset_messagesetpb_message_set_proto_depIdxs, MessageInfos: file_internal_testprotos_messageset_messagesetpb_message_set_proto_msgTypes, }.Build() File_internal_testprotos_messageset_messagesetpb_message_set_proto = out.File file_internal_testprotos_messageset_messagesetpb_message_set_proto_rawDesc = nil file_internal_testprotos_messageset_messagesetpb_message_set_proto_goTypes = nil file_internal_testprotos_messageset_messagesetpb_message_set_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/messageset/messagesetpb/message_set.proto000066400000000000000000000007251411250152500324310ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.proto.messageset; option go_package = "google.golang.org/protobuf/internal/testprotos/messageset/messagesetpb"; message MessageSet { option message_set_wire_format = true; extensions 4 to max; } message MessageSetContainer { optional MessageSet message_set = 1; } golang-google-protobuf-1.27.1/internal/testprotos/messageset/msetextpb/000077500000000000000000000000001411250152500263725ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/messageset/msetextpb/msetextpb.pb.go000066400000000000000000000445001411250152500313370ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/messageset/msetextpb/msetextpb.proto package msetextpb import ( messagesetpb "google.golang.org/protobuf/internal/testprotos/messageset/messagesetpb" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Ext1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ext1Field1 *int32 `protobuf:"varint,1,opt,name=ext1_field1,json=ext1Field1" json:"ext1_field1,omitempty"` Ext1Field2 *int32 `protobuf:"varint,2,opt,name=ext1_field2,json=ext1Field2" json:"ext1_field2,omitempty"` } func (x *Ext1) Reset() { *x = Ext1{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_messageset_msetextpb_msetextpb_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Ext1) String() string { return protoimpl.X.MessageStringOf(x) } func (*Ext1) ProtoMessage() {} func (x *Ext1) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_messageset_msetextpb_msetextpb_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Ext1.ProtoReflect.Descriptor instead. func (*Ext1) Descriptor() ([]byte, []int) { return file_internal_testprotos_messageset_msetextpb_msetextpb_proto_rawDescGZIP(), []int{0} } func (x *Ext1) GetExt1Field1() int32 { if x != nil && x.Ext1Field1 != nil { return *x.Ext1Field1 } return 0 } func (x *Ext1) GetExt1Field2() int32 { if x != nil && x.Ext1Field2 != nil { return *x.Ext1Field2 } return 0 } type Ext2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ext2Field1 *int32 `protobuf:"varint,1,opt,name=ext2_field1,json=ext2Field1" json:"ext2_field1,omitempty"` } func (x *Ext2) Reset() { *x = Ext2{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_messageset_msetextpb_msetextpb_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Ext2) String() string { return protoimpl.X.MessageStringOf(x) } func (*Ext2) ProtoMessage() {} func (x *Ext2) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_messageset_msetextpb_msetextpb_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Ext2.ProtoReflect.Descriptor instead. func (*Ext2) Descriptor() ([]byte, []int) { return file_internal_testprotos_messageset_msetextpb_msetextpb_proto_rawDescGZIP(), []int{1} } func (x *Ext2) GetExt2Field1() int32 { if x != nil && x.Ext2Field1 != nil { return *x.Ext2Field1 } return 0 } type ExtRequired struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RequiredField1 *int32 `protobuf:"varint,1,req,name=required_field1,json=requiredField1" json:"required_field1,omitempty"` } func (x *ExtRequired) Reset() { *x = ExtRequired{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_messageset_msetextpb_msetextpb_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExtRequired) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExtRequired) ProtoMessage() {} func (x *ExtRequired) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_messageset_msetextpb_msetextpb_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ExtRequired.ProtoReflect.Descriptor instead. func (*ExtRequired) Descriptor() ([]byte, []int) { return file_internal_testprotos_messageset_msetextpb_msetextpb_proto_rawDescGZIP(), []int{2} } func (x *ExtRequired) GetRequiredField1() int32 { if x != nil && x.RequiredField1 != nil { return *x.RequiredField1 } return 0 } type ExtLargeNumber struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ExtLargeNumber) Reset() { *x = ExtLargeNumber{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_messageset_msetextpb_msetextpb_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExtLargeNumber) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExtLargeNumber) ProtoMessage() {} func (x *ExtLargeNumber) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_messageset_msetextpb_msetextpb_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ExtLargeNumber.ProtoReflect.Descriptor instead. func (*ExtLargeNumber) Descriptor() ([]byte, []int) { return file_internal_testprotos_messageset_msetextpb_msetextpb_proto_rawDescGZIP(), []int{3} } var file_internal_testprotos_messageset_msetextpb_msetextpb_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*messagesetpb.MessageSet)(nil), ExtensionType: (*Ext1)(nil), Field: 1000, Name: "goproto.proto.messageset.Ext1.message_set_extension", Tag: "bytes,1000,opt,name=message_set_extension", Filename: "internal/testprotos/messageset/msetextpb/msetextpb.proto", }, { ExtendedType: (*messagesetpb.MessageSet)(nil), ExtensionType: (*Ext2)(nil), Field: 1001, Name: "goproto.proto.messageset.Ext2.message_set_extension", Tag: "bytes,1001,opt,name=message_set_extension", Filename: "internal/testprotos/messageset/msetextpb/msetextpb.proto", }, { ExtendedType: (*messagesetpb.MessageSet)(nil), ExtensionType: (*ExtRequired)(nil), Field: 1002, Name: "goproto.proto.messageset.ExtRequired.message_set_extension", Tag: "bytes,1002,opt,name=message_set_extension", Filename: "internal/testprotos/messageset/msetextpb/msetextpb.proto", }, { ExtendedType: (*messagesetpb.MessageSet)(nil), ExtensionType: (*ExtLargeNumber)(nil), Field: 536870912, Name: "goproto.proto.messageset.ExtLargeNumber.message_set_extension", Tag: "bytes,536870912,opt,name=message_set_extension", Filename: "internal/testprotos/messageset/msetextpb/msetextpb.proto", }, } // Extension fields to messagesetpb.MessageSet. var ( // optional goproto.proto.messageset.Ext1 message_set_extension = 1000; E_Ext1_MessageSetExtension = &file_internal_testprotos_messageset_msetextpb_msetextpb_proto_extTypes[0] // optional goproto.proto.messageset.Ext2 message_set_extension = 1001; E_Ext2_MessageSetExtension = &file_internal_testprotos_messageset_msetextpb_msetextpb_proto_extTypes[1] // optional goproto.proto.messageset.ExtRequired message_set_extension = 1002; E_ExtRequired_MessageSetExtension = &file_internal_testprotos_messageset_msetextpb_msetextpb_proto_extTypes[2] // optional goproto.proto.messageset.ExtLargeNumber message_set_extension = 536870912; E_ExtLargeNumber_MessageSetExtension = &file_internal_testprotos_messageset_msetextpb_msetextpb_proto_extTypes[3] // 1<<29 ) var File_internal_testprotos_messageset_msetextpb_msetextpb_proto protoreflect.FileDescriptor var file_internal_testprotos_messageset_msetextpb_msetextpb_proto_rawDesc = []byte{ 0x0a, 0x38, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x65, 0x74, 0x2f, 0x6d, 0x73, 0x65, 0x74, 0x65, 0x78, 0x74, 0x70, 0x62, 0x2f, 0x6d, 0x73, 0x65, 0x74, 0x65, 0x78, 0x74, 0x70, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x65, 0x74, 0x1a, 0x3d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x65, 0x74, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x65, 0x74, 0x70, 0x62, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc3, 0x01, 0x0a, 0x04, 0x45, 0x78, 0x74, 0x31, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x31, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x31, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x31, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x31, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x32, 0x79, 0x0a, 0x15, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x31, 0x52, 0x13, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa2, 0x01, 0x0a, 0x04, 0x45, 0x78, 0x74, 0x32, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x32, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x32, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x79, 0x0a, 0x15, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x32, 0x52, 0x13, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x01, 0x0a, 0x0b, 0x45, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x32, 0x80, 0x01, 0x0a, 0x15, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x18, 0xea, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x52, 0x13, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x99, 0x01, 0x0a, 0x0e, 0x45, 0x78, 0x74, 0x4c, 0x61, 0x72, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x32, 0x86, 0x01, 0x0a, 0x15, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x18, 0x80, 0x80, 0x80, 0x80, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x4c, 0x61, 0x72, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x13, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x45, 0x5a, 0x43, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x65, 0x74, 0x2f, 0x6d, 0x73, 0x65, 0x74, 0x65, 0x78, 0x74, 0x70, 0x62, } var ( file_internal_testprotos_messageset_msetextpb_msetextpb_proto_rawDescOnce sync.Once file_internal_testprotos_messageset_msetextpb_msetextpb_proto_rawDescData = file_internal_testprotos_messageset_msetextpb_msetextpb_proto_rawDesc ) func file_internal_testprotos_messageset_msetextpb_msetextpb_proto_rawDescGZIP() []byte { file_internal_testprotos_messageset_msetextpb_msetextpb_proto_rawDescOnce.Do(func() { file_internal_testprotos_messageset_msetextpb_msetextpb_proto_rawDescData = protoimpl.X.CompressGZIP(file_internal_testprotos_messageset_msetextpb_msetextpb_proto_rawDescData) }) return file_internal_testprotos_messageset_msetextpb_msetextpb_proto_rawDescData } var file_internal_testprotos_messageset_msetextpb_msetextpb_proto_msgTypes = make([]protoimpl.MessageInfo, 4) var file_internal_testprotos_messageset_msetextpb_msetextpb_proto_goTypes = []interface{}{ (*Ext1)(nil), // 0: goproto.proto.messageset.Ext1 (*Ext2)(nil), // 1: goproto.proto.messageset.Ext2 (*ExtRequired)(nil), // 2: goproto.proto.messageset.ExtRequired (*ExtLargeNumber)(nil), // 3: goproto.proto.messageset.ExtLargeNumber (*messagesetpb.MessageSet)(nil), // 4: goproto.proto.messageset.MessageSet } var file_internal_testprotos_messageset_msetextpb_msetextpb_proto_depIdxs = []int32{ 4, // 0: goproto.proto.messageset.Ext1.message_set_extension:extendee -> goproto.proto.messageset.MessageSet 4, // 1: goproto.proto.messageset.Ext2.message_set_extension:extendee -> goproto.proto.messageset.MessageSet 4, // 2: goproto.proto.messageset.ExtRequired.message_set_extension:extendee -> goproto.proto.messageset.MessageSet 4, // 3: goproto.proto.messageset.ExtLargeNumber.message_set_extension:extendee -> goproto.proto.messageset.MessageSet 0, // 4: goproto.proto.messageset.Ext1.message_set_extension:type_name -> goproto.proto.messageset.Ext1 1, // 5: goproto.proto.messageset.Ext2.message_set_extension:type_name -> goproto.proto.messageset.Ext2 2, // 6: goproto.proto.messageset.ExtRequired.message_set_extension:type_name -> goproto.proto.messageset.ExtRequired 3, // 7: goproto.proto.messageset.ExtLargeNumber.message_set_extension:type_name -> goproto.proto.messageset.ExtLargeNumber 8, // [8:8] is the sub-list for method output_type 8, // [8:8] is the sub-list for method input_type 4, // [4:8] is the sub-list for extension type_name 0, // [0:4] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_internal_testprotos_messageset_msetextpb_msetextpb_proto_init() } func file_internal_testprotos_messageset_msetextpb_msetextpb_proto_init() { if File_internal_testprotos_messageset_msetextpb_msetextpb_proto != nil { return } if !protoimpl.UnsafeEnabled { file_internal_testprotos_messageset_msetextpb_msetextpb_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Ext1); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_messageset_msetextpb_msetextpb_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Ext2); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_messageset_msetextpb_msetextpb_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtRequired); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_messageset_msetextpb_msetextpb_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtLargeNumber); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_messageset_msetextpb_msetextpb_proto_rawDesc, NumEnums: 0, NumMessages: 4, NumExtensions: 4, NumServices: 0, }, GoTypes: file_internal_testprotos_messageset_msetextpb_msetextpb_proto_goTypes, DependencyIndexes: file_internal_testprotos_messageset_msetextpb_msetextpb_proto_depIdxs, MessageInfos: file_internal_testprotos_messageset_msetextpb_msetextpb_proto_msgTypes, ExtensionInfos: file_internal_testprotos_messageset_msetextpb_msetextpb_proto_extTypes, }.Build() File_internal_testprotos_messageset_msetextpb_msetextpb_proto = out.File file_internal_testprotos_messageset_msetextpb_msetextpb_proto_rawDesc = nil file_internal_testprotos_messageset_msetextpb_msetextpb_proto_goTypes = nil file_internal_testprotos_messageset_msetextpb_msetextpb_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/messageset/msetextpb/msetextpb.proto000066400000000000000000000016471411250152500315020ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.proto.messageset; option go_package = "google.golang.org/protobuf/internal/testprotos/messageset/msetextpb"; import "internal/testprotos/messageset/messagesetpb/message_set.proto"; message Ext1 { extend MessageSet { optional Ext1 message_set_extension = 1000; } optional int32 ext1_field1 = 1; optional int32 ext1_field2 = 2; } message Ext2 { extend MessageSet { optional Ext2 message_set_extension = 1001; } optional int32 ext2_field1 = 1; } message ExtRequired { extend MessageSet { optional ExtRequired message_set_extension = 1002; } required int32 required_field1 = 1; } message ExtLargeNumber { extend MessageSet { optional ExtLargeNumber message_set_extension = 536870912; // 1<<29 } } golang-google-protobuf-1.27.1/internal/testprotos/news/000077500000000000000000000000001411250152500231735ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/news/news.pb.go000066400000000000000000000361121411250152500251010ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/news/news.proto package news import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" anypb "google.golang.org/protobuf/types/known/anypb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" ) type Article_Status int32 const ( Article_DRAFT Article_Status = 0 Article_PUBLISHED Article_Status = 1 Article_REVOKED Article_Status = 2 ) // Enum value maps for Article_Status. var ( Article_Status_name = map[int32]string{ 0: "DRAFT", 1: "PUBLISHED", 2: "REVOKED", } Article_Status_value = map[string]int32{ "DRAFT": 0, "PUBLISHED": 1, "REVOKED": 2, } ) func (x Article_Status) Enum() *Article_Status { p := new(Article_Status) *p = x return p } func (x Article_Status) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Article_Status) Descriptor() protoreflect.EnumDescriptor { return file_internal_testprotos_news_news_proto_enumTypes[0].Descriptor() } func (Article_Status) Type() protoreflect.EnumType { return &file_internal_testprotos_news_news_proto_enumTypes[0] } func (x Article_Status) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Article_Status.Descriptor instead. func (Article_Status) EnumDescriptor() ([]byte, []int) { return file_internal_testprotos_news_news_proto_rawDescGZIP(), []int{0, 0} } type Article struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Author string `protobuf:"bytes,1,opt,name=author,proto3" json:"author,omitempty"` Date *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=date,proto3" json:"date,omitempty"` Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"` Content string `protobuf:"bytes,4,opt,name=content,proto3" json:"content,omitempty"` Status Article_Status `protobuf:"varint,8,opt,name=status,proto3,enum=google.golang.org.Article_Status" json:"status,omitempty"` Tags []string `protobuf:"bytes,7,rep,name=tags,proto3" json:"tags,omitempty"` Attachments []*anypb.Any `protobuf:"bytes,6,rep,name=attachments,proto3" json:"attachments,omitempty"` } func (x *Article) Reset() { *x = Article{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_news_news_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Article) String() string { return protoimpl.X.MessageStringOf(x) } func (*Article) ProtoMessage() {} func (x *Article) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_news_news_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Article.ProtoReflect.Descriptor instead. func (*Article) Descriptor() ([]byte, []int) { return file_internal_testprotos_news_news_proto_rawDescGZIP(), []int{0} } func (x *Article) GetAuthor() string { if x != nil { return x.Author } return "" } func (x *Article) GetDate() *timestamppb.Timestamp { if x != nil { return x.Date } return nil } func (x *Article) GetTitle() string { if x != nil { return x.Title } return "" } func (x *Article) GetContent() string { if x != nil { return x.Content } return "" } func (x *Article) GetStatus() Article_Status { if x != nil { return x.Status } return Article_DRAFT } func (x *Article) GetTags() []string { if x != nil { return x.Tags } return nil } func (x *Article) GetAttachments() []*anypb.Any { if x != nil { return x.Attachments } return nil } type BinaryAttachment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` } func (x *BinaryAttachment) Reset() { *x = BinaryAttachment{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_news_news_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BinaryAttachment) String() string { return protoimpl.X.MessageStringOf(x) } func (*BinaryAttachment) ProtoMessage() {} func (x *BinaryAttachment) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_news_news_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BinaryAttachment.ProtoReflect.Descriptor instead. func (*BinaryAttachment) Descriptor() ([]byte, []int) { return file_internal_testprotos_news_news_proto_rawDescGZIP(), []int{1} } func (x *BinaryAttachment) GetName() string { if x != nil { return x.Name } return "" } func (x *BinaryAttachment) GetData() []byte { if x != nil { return x.Data } return nil } type KeyValueAttachment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Data map[string]string `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *KeyValueAttachment) Reset() { *x = KeyValueAttachment{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_news_news_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *KeyValueAttachment) String() string { return protoimpl.X.MessageStringOf(x) } func (*KeyValueAttachment) ProtoMessage() {} func (x *KeyValueAttachment) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_news_news_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use KeyValueAttachment.ProtoReflect.Descriptor instead. func (*KeyValueAttachment) Descriptor() ([]byte, []int) { return file_internal_testprotos_news_news_proto_rawDescGZIP(), []int{2} } func (x *KeyValueAttachment) GetName() string { if x != nil { return x.Name } return "" } func (x *KeyValueAttachment) GetData() map[string]string { if x != nil { return x.Data } return nil } var File_internal_testprotos_news_news_proto protoreflect.FileDescriptor var file_internal_testprotos_news_news_proto_rawDesc = []byte{ 0x0a, 0x23, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6e, 0x65, 0x77, 0x73, 0x2f, 0x6e, 0x65, 0x77, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb9, 0x02, 0x0a, 0x07, 0x41, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x2f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x52, 0x41, 0x46, 0x54, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x56, 0x4f, 0x4b, 0x45, 0x44, 0x10, 0x02, 0x22, 0x3a, 0x0a, 0x10, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa6, 0x01, 0x0a, 0x12, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x37, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x35, 0x5a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6e, 0x65, 0x77, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_internal_testprotos_news_news_proto_rawDescOnce sync.Once file_internal_testprotos_news_news_proto_rawDescData = file_internal_testprotos_news_news_proto_rawDesc ) func file_internal_testprotos_news_news_proto_rawDescGZIP() []byte { file_internal_testprotos_news_news_proto_rawDescOnce.Do(func() { file_internal_testprotos_news_news_proto_rawDescData = protoimpl.X.CompressGZIP(file_internal_testprotos_news_news_proto_rawDescData) }) return file_internal_testprotos_news_news_proto_rawDescData } var file_internal_testprotos_news_news_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_internal_testprotos_news_news_proto_msgTypes = make([]protoimpl.MessageInfo, 4) var file_internal_testprotos_news_news_proto_goTypes = []interface{}{ (Article_Status)(0), // 0: google.golang.org.Article.Status (*Article)(nil), // 1: google.golang.org.Article (*BinaryAttachment)(nil), // 2: google.golang.org.BinaryAttachment (*KeyValueAttachment)(nil), // 3: google.golang.org.KeyValueAttachment nil, // 4: google.golang.org.KeyValueAttachment.DataEntry (*timestamppb.Timestamp)(nil), // 5: google.protobuf.Timestamp (*anypb.Any)(nil), // 6: google.protobuf.Any } var file_internal_testprotos_news_news_proto_depIdxs = []int32{ 5, // 0: google.golang.org.Article.date:type_name -> google.protobuf.Timestamp 0, // 1: google.golang.org.Article.status:type_name -> google.golang.org.Article.Status 6, // 2: google.golang.org.Article.attachments:type_name -> google.protobuf.Any 4, // 3: google.golang.org.KeyValueAttachment.data:type_name -> google.golang.org.KeyValueAttachment.DataEntry 4, // [4:4] is the sub-list for method output_type 4, // [4:4] is the sub-list for method input_type 4, // [4:4] is the sub-list for extension type_name 4, // [4:4] is the sub-list for extension extendee 0, // [0:4] is the sub-list for field type_name } func init() { file_internal_testprotos_news_news_proto_init() } func file_internal_testprotos_news_news_proto_init() { if File_internal_testprotos_news_news_proto != nil { return } if !protoimpl.UnsafeEnabled { file_internal_testprotos_news_news_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Article); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_news_news_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BinaryAttachment); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_news_news_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*KeyValueAttachment); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_news_news_proto_rawDesc, NumEnums: 1, NumMessages: 4, NumExtensions: 0, NumServices: 0, }, GoTypes: file_internal_testprotos_news_news_proto_goTypes, DependencyIndexes: file_internal_testprotos_news_news_proto_depIdxs, EnumInfos: file_internal_testprotos_news_news_proto_enumTypes, MessageInfos: file_internal_testprotos_news_news_proto_msgTypes, }.Build() File_internal_testprotos_news_news_proto = out.File file_internal_testprotos_news_news_proto_rawDesc = nil file_internal_testprotos_news_news_proto_goTypes = nil file_internal_testprotos_news_news_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/news/news.proto000066400000000000000000000014171411250152500252370ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package google.golang.org; import "google/protobuf/any.proto"; import "google/protobuf/timestamp.proto"; option go_package = "google.golang.org/protobuf/internal/testprotos/news"; message Article { enum Status { DRAFT = 0; PUBLISHED = 1; REVOKED = 2; } string author = 1; google.protobuf.Timestamp date = 2; string title = 3; string content = 4; Status status = 8; repeated string tags = 7; repeated google.protobuf.Any attachments = 6; } message BinaryAttachment { string name = 1; bytes data = 2; } message KeyValueAttachment { string name = 1; map data = 2; }golang-google-protobuf-1.27.1/internal/testprotos/nullable/000077500000000000000000000000001411250152500240155ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/nullable/methods_test.go000066400000000000000000000013221411250152500270440ustar00rootroot00000000000000// Copyright 2021 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // For messages which do not provide legacy Marshal and Unmarshal methods, // only test compatibility with the Marshal/Unmarshal functionality with // pure protobuf reflection since there is no support for nullable fields // in the table-driven implementation. // +build protoreflect package nullable import "google.golang.org/protobuf/runtime/protoimpl" func init() { methodTestProtos = append(methodTestProtos, protoimpl.X.ProtoMessageV2Of((*Proto2)(nil)).ProtoReflect().Type(), protoimpl.X.ProtoMessageV2Of((*Proto3)(nil)).ProtoReflect().Type(), ) } golang-google-protobuf-1.27.1/internal/testprotos/nullable/nullable.go000066400000000000000000000361161411250152500261510ustar00rootroot00000000000000// Copyright 2021 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package nullable import ( "google.golang.org/protobuf/encoding/prototext" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/runtime/protoimpl" "google.golang.org/protobuf/types/descriptorpb" ) type Proto2 struct { OptionalBool bool `protobuf:"varint,100,opt,name=optional_bool"` OptionalInt32 int32 `protobuf:"varint,101,opt,name=optional_int32"` OptionalInt64 int64 `protobuf:"varint,102,opt,name=optional_int64"` OptionalUint32 uint32 `protobuf:"varint,103,opt,name=optional_uint32"` OptionalUint64 uint64 `protobuf:"varint,104,opt,name=optional_uint64"` OptionalFloat float32 `protobuf:"fixed32,105,opt,name=optional_float"` OptionalDouble float64 `protobuf:"fixed64,106,opt,name=optional_double"` OptionalString string `protobuf:"bytes,107,opt,name=optional_string"` OptionalBytes []byte `protobuf:"bytes,108,opt,name=optional_bytes"` OptionalEnum descriptorpb.FieldDescriptorProto_Type `protobuf:"varint,109,req,name=optional_enum"` OptionalMessage descriptorpb.FieldOptions `protobuf:"bytes,110,req,name=optional_message"` RepeatedBool []bool `protobuf:"varint,200,rep,name=repeated_bool"` RepeatedInt32 []int32 `protobuf:"varint,201,rep,name=repeated_int32"` RepeatedInt64 []int64 `protobuf:"varint,202,rep,name=repeated_int64"` RepeatedUint32 []uint32 `protobuf:"varint,203,rep,name=repeated_uint32"` RepeatedUint64 []uint64 `protobuf:"varint,204,rep,name=repeated_uint64"` RepeatedFloat []float32 `protobuf:"fixed32,205,rep,name=repeated_float"` RepeatedDouble []float64 `protobuf:"fixed64,206,rep,name=repeated_double"` RepeatedString []string `protobuf:"bytes,207,rep,name=repeated_string"` RepeatedBytes [][]byte `protobuf:"bytes,208,rep,name=repeated_bytes"` RepeatedEnum []descriptorpb.FieldDescriptorProto_Type `protobuf:"varint,209,rep,name=repeated_enum"` RepeatedMessage []descriptorpb.FieldOptions `protobuf:"bytes,210,rep,name=repeated_message"` MapBool map[string]bool `protobuf:"bytes,300,rep,name=map_bool" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapInt32 map[string]int32 `protobuf:"bytes,301,rep,name=map_int32" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapInt64 map[string]int64 `protobuf:"bytes,302,rep,name=map_int64" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint32 map[string]uint32 `protobuf:"bytes,303,rep,name=map_uint32" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint64 map[string]uint64 `protobuf:"bytes,304,rep,name=map_uint64" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapFloat map[string]float32 `protobuf:"bytes,305,rep,name=map_float" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapDouble map[string]float64 `protobuf:"bytes,306,rep,name=map_double" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapString map[string]string `protobuf:"bytes,307,rep,name=map_string" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapBytes map[string][]byte `protobuf:"bytes,308,rep,name=map_bytes" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapEnum map[string]descriptorpb.FieldDescriptorProto_Type `protobuf:"bytes,309,rep,name=map_enum" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapMessage map[string]descriptorpb.FieldOptions `protobuf:"bytes,310,rep,name=map_message" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` OneofUnion isProto2_OneofUnion `protobuf_oneof:"oneof_union"` } func (x *Proto2) ProtoMessage() {} func (x *Proto2) Reset() { *x = Proto2{} } func (x *Proto2) String() string { return prototext.Format(protoimpl.X.ProtoMessageV2Of(x)) } func (x *Proto2) XXX_OneofWrappers() []interface{} { return []interface{}{ (*Proto2_OneofBool)(nil), (*Proto2_OneofInt32)(nil), (*Proto2_OneofInt64)(nil), (*Proto2_OneofUint32)(nil), (*Proto2_OneofUint64)(nil), (*Proto2_OneofFloat)(nil), (*Proto2_OneofDouble)(nil), (*Proto2_OneofString)(nil), (*Proto2_OneofBytes)(nil), (*Proto2_OneofEnum)(nil), (*Proto2_OneofMessage)(nil), } } type isProto2_OneofUnion interface{ isProto2_OneofUnion() } type Proto2_OneofBool struct { OneofBool bool `protobuf:"varint,400,opt,name=oneof_bool,oneof"` } type Proto2_OneofInt32 struct { OneofInt32 int32 `protobuf:"varint,401,opt,name=oneof_int32,oneof"` } type Proto2_OneofInt64 struct { OneofInt64 int64 `protobuf:"varint,402,opt,name=oneof_int64,oneof"` } type Proto2_OneofUint32 struct { OneofUint32 uint32 `protobuf:"varint,403,opt,name=oneof_uint32,oneof"` } type Proto2_OneofUint64 struct { OneofUint64 uint64 `protobuf:"varint,404,opt,name=oneof_uint64,oneof"` } type Proto2_OneofFloat struct { OneofFloat float32 `protobuf:"fixed32,405,opt,name=oneof_float,oneof"` } type Proto2_OneofDouble struct { OneofDouble float64 `protobuf:"fixed64,406,opt,name=oneof_double,oneof"` } type Proto2_OneofString struct { OneofString string `protobuf:"bytes,407,opt,name=oneof_string,oneof"` } type Proto2_OneofBytes struct { OneofBytes []byte `protobuf:"bytes,408,opt,name=oneof_bytes,oneof"` } type Proto2_OneofEnum struct { OneofEnum descriptorpb.FieldDescriptorProto_Type `protobuf:"varint,409,opt,name=oneof_enum,oneof"` } type Proto2_OneofMessage struct { OneofMessage descriptorpb.FieldOptions `protobuf:"bytes,410,opt,name=oneof_message,oneof"` } func (*Proto2_OneofBool) isProto2_OneofUnion() {} func (*Proto2_OneofInt32) isProto2_OneofUnion() {} func (*Proto2_OneofInt64) isProto2_OneofUnion() {} func (*Proto2_OneofUint32) isProto2_OneofUnion() {} func (*Proto2_OneofUint64) isProto2_OneofUnion() {} func (*Proto2_OneofFloat) isProto2_OneofUnion() {} func (*Proto2_OneofDouble) isProto2_OneofUnion() {} func (*Proto2_OneofString) isProto2_OneofUnion() {} func (*Proto2_OneofBytes) isProto2_OneofUnion() {} func (*Proto2_OneofEnum) isProto2_OneofUnion() {} func (*Proto2_OneofMessage) isProto2_OneofUnion() {} type Proto3 struct { OptionalBool bool `protobuf:"varint,100,opt,name=optional_bool,proto3"` OptionalInt32 int32 `protobuf:"varint,101,opt,name=optional_int32,proto3"` OptionalInt64 int64 `protobuf:"varint,102,opt,name=optional_int64,proto3"` OptionalUint32 uint32 `protobuf:"varint,103,opt,name=optional_uint32,proto3"` OptionalUint64 uint64 `protobuf:"varint,104,opt,name=optional_uint64,proto3"` OptionalFloat float32 `protobuf:"fixed32,105,opt,name=optional_float,proto3"` OptionalDouble float64 `protobuf:"fixed64,106,opt,name=optional_double,proto3"` OptionalString string `protobuf:"bytes,107,opt,name=optional_string,proto3"` OptionalBytes []byte `protobuf:"bytes,108,opt,name=optional_bytes,proto3"` OptionalEnum descriptorpb.FieldDescriptorProto_Type `protobuf:"varint,109,req,name=optional_enum,proto3"` OptionalMessage descriptorpb.FieldOptions `protobuf:"bytes,110,req,name=optional_message,proto3"` RepeatedBool []bool `protobuf:"varint,200,rep,name=repeated_bool,proto3"` RepeatedInt32 []int32 `protobuf:"varint,201,rep,name=repeated_int32,proto3"` RepeatedInt64 []int64 `protobuf:"varint,202,rep,name=repeated_int64,proto3"` RepeatedUint32 []uint32 `protobuf:"varint,203,rep,name=repeated_uint32,proto3"` RepeatedUint64 []uint64 `protobuf:"varint,204,rep,name=repeated_uint64,proto3"` RepeatedFloat []float32 `protobuf:"fixed32,205,rep,name=repeated_float,proto3"` RepeatedDouble []float64 `protobuf:"fixed64,206,rep,name=repeated_double,proto3"` RepeatedString []string `protobuf:"bytes,207,rep,name=repeated_string,proto3"` RepeatedBytes [][]byte `protobuf:"bytes,208,rep,name=repeated_bytes,proto3"` RepeatedEnum []descriptorpb.FieldDescriptorProto_Type `protobuf:"varint,209,rep,name=repeated_enum,proto3"` RepeatedMessage []descriptorpb.FieldOptions `protobuf:"bytes,210,rep,name=repeated_message,proto3"` MapBool map[string]bool `protobuf:"bytes,300,rep,name=map_bool,proto3" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapInt32 map[string]int32 `protobuf:"bytes,301,rep,name=map_int32,proto3" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapInt64 map[string]int64 `protobuf:"bytes,302,rep,name=map_int64,proto3" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapUint32 map[string]uint32 `protobuf:"bytes,303,rep,name=map_uint32,proto3" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapUint64 map[string]uint64 `protobuf:"bytes,304,rep,name=map_uint64,proto3" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapFloat map[string]float32 `protobuf:"bytes,305,rep,name=map_float,proto3" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` MapDouble map[string]float64 `protobuf:"bytes,306,rep,name=map_double,proto3" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` MapString map[string]string `protobuf:"bytes,307,rep,name=map_string,proto3" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` MapBytes map[string][]byte `protobuf:"bytes,308,rep,name=map_bytes,proto3" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` MapEnum map[string]descriptorpb.FieldDescriptorProto_Type `protobuf:"bytes,309,rep,name=map_enum,proto3" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapMessage map[string]descriptorpb.FieldOptions `protobuf:"bytes,310,rep,name=map_message,proto3" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` OneofUnion isProto3_OneofUnion `protobuf_oneof:"oneof_union"` } func (x *Proto3) ProtoMessage() {} func (x *Proto3) Reset() { *x = Proto3{} } func (x *Proto3) String() string { return prototext.Format(protoimpl.X.ProtoMessageV2Of(x)) } func (x *Proto3) XXX_OneofWrappers() []interface{} { return []interface{}{ (*Proto3_OneofBool)(nil), (*Proto3_OneofInt32)(nil), (*Proto3_OneofInt64)(nil), (*Proto3_OneofUint32)(nil), (*Proto3_OneofUint64)(nil), (*Proto3_OneofFloat)(nil), (*Proto3_OneofDouble)(nil), (*Proto3_OneofString)(nil), (*Proto3_OneofBytes)(nil), (*Proto3_OneofEnum)(nil), (*Proto3_OneofMessage)(nil), } } type isProto3_OneofUnion interface{ isProto3_OneofUnion() } type Proto3_OneofBool struct { OneofBool bool `protobuf:"varint,400,opt,name=oneof_bool,proto3,oneof"` } type Proto3_OneofInt32 struct { OneofInt32 int32 `protobuf:"varint,401,opt,name=oneof_int32,proto3,oneof"` } type Proto3_OneofInt64 struct { OneofInt64 int64 `protobuf:"varint,402,opt,name=oneof_int64,proto3,oneof"` } type Proto3_OneofUint32 struct { OneofUint32 uint32 `protobuf:"varint,403,opt,name=oneof_uint32,proto3,oneof"` } type Proto3_OneofUint64 struct { OneofUint64 uint64 `protobuf:"varint,404,opt,name=oneof_uint64,proto3,oneof"` } type Proto3_OneofFloat struct { OneofFloat float32 `protobuf:"fixed32,405,opt,name=oneof_float,proto3,oneof"` } type Proto3_OneofDouble struct { OneofDouble float64 `protobuf:"fixed64,406,opt,name=oneof_double,proto3,oneof"` } type Proto3_OneofString struct { OneofString string `protobuf:"bytes,407,opt,name=oneof_string,proto3,oneof"` } type Proto3_OneofBytes struct { OneofBytes []byte `protobuf:"bytes,408,opt,name=oneof_bytes,proto3,oneof"` } type Proto3_OneofEnum struct { OneofEnum descriptorpb.FieldDescriptorProto_Type `protobuf:"varint,409,opt,name=oneof_enum,proto3,oneof"` } type Proto3_OneofMessage struct { OneofMessage descriptorpb.FieldOptions `protobuf:"bytes,410,opt,name=oneof_message,proto3,oneof"` } func (*Proto3_OneofBool) isProto3_OneofUnion() {} func (*Proto3_OneofInt32) isProto3_OneofUnion() {} func (*Proto3_OneofInt64) isProto3_OneofUnion() {} func (*Proto3_OneofUint32) isProto3_OneofUnion() {} func (*Proto3_OneofUint64) isProto3_OneofUnion() {} func (*Proto3_OneofFloat) isProto3_OneofUnion() {} func (*Proto3_OneofDouble) isProto3_OneofUnion() {} func (*Proto3_OneofString) isProto3_OneofUnion() {} func (*Proto3_OneofBytes) isProto3_OneofUnion() {} func (*Proto3_OneofEnum) isProto3_OneofUnion() {} func (*Proto3_OneofMessage) isProto3_OneofUnion() {} type Methods struct { OptionalInt32 int32 `protobuf:"varint,101,opt,name=optional_int32"` } func (x *Methods) ProtoMessage() {} func (x *Methods) Reset() { *x = Methods{} } func (x *Methods) String() string { return prototext.Format(protoimpl.X.ProtoMessageV2Of(x)) } func (x *Methods) Marshal() ([]byte, error) { var b []byte b = protowire.AppendTag(b, 101, protowire.VarintType) b = protowire.AppendVarint(b, uint64(x.OptionalInt32)) return b, nil } func (x *Methods) Unmarshal(b []byte) error { for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) if n < 0 { return protowire.ParseError(n) } b = b[n:] if num != 101 || typ != protowire.VarintType { n = protowire.ConsumeFieldValue(num, typ, b) if n < 0 { return protowire.ParseError(n) } b = b[n:] continue } v, n := protowire.ConsumeVarint(b) if n < 0 { return protowire.ParseError(n) } b = b[n:] x.OptionalInt32 = int32(v) } return nil } golang-google-protobuf-1.27.1/internal/testprotos/nullable/nullable_test.go000066400000000000000000000151631411250152500272070ustar00rootroot00000000000000// Copyright 2021 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package nullable import ( "reflect" "testing" "github.com/google/go-cmp/cmp" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/runtime/protoimpl" "google.golang.org/protobuf/testing/protocmp" ) func Test(t *testing.T) { for _, mt := range []protoreflect.MessageType{ protoimpl.X.ProtoMessageV2Of((*Proto2)(nil)).ProtoReflect().Type(), protoimpl.X.ProtoMessageV2Of((*Proto3)(nil)).ProtoReflect().Type(), } { t.Run(string(mt.Descriptor().FullName()), func(t *testing.T) { testEmptyMessage(t, mt.Zero(), false) testEmptyMessage(t, mt.New(), true) //testMethods(t, mt) }) } } var methodTestProtos = []protoreflect.MessageType{ protoimpl.X.ProtoMessageV2Of((*Methods)(nil)).ProtoReflect().Type(), } func TestMethods(t *testing.T) { for _, mt := range methodTestProtos { t.Run(string(mt.Descriptor().FullName()), func(t *testing.T) { testMethods(t, mt) }) } } func testMethods(t *testing.T, mt protoreflect.MessageType) { m1 := mt.New() populated := testPopulateMessage(t, m1, 2) b, err := proto.Marshal(m1.Interface()) if err != nil { t.Errorf("proto.Marshal error: %v", err) } if populated && len(b) == 0 { t.Errorf("len(proto.Marshal) = 0, want >0") } m2 := mt.New() if err := proto.Unmarshal(b, m2.Interface()); err != nil { t.Errorf("proto.Unmarshal error: %v", err) } if diff := cmp.Diff(m1.Interface(), m2.Interface(), protocmp.Transform()); diff != "" { t.Errorf("message mismatch:\n%v", diff) } proto.Reset(m2.Interface()) testEmptyMessage(t, m2, true) proto.Merge(m2.Interface(), m1.Interface()) if diff := cmp.Diff(m1.Interface(), m2.Interface(), protocmp.Transform()); diff != "" { t.Errorf("message mismatch:\n%v", diff) } proto.Merge(mt.New().Interface(), mt.Zero().Interface()) } func testEmptyMessage(t *testing.T, m protoreflect.Message, wantValid bool) { numFields := func(m protoreflect.Message) (n int) { m.Range(func(protoreflect.FieldDescriptor, protoreflect.Value) bool { n++ return true }) return n } md := m.Descriptor() if gotValid := m.IsValid(); gotValid != wantValid { t.Errorf("%v.IsValid = %v, want %v", md.FullName(), gotValid, wantValid) } m.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { t.Errorf("%v.Range iterated over field %v, want no iteration", md.FullName(), fd.Name()) return true }) fds := md.Fields() for i := 0; i < fds.Len(); i++ { fd := fds.Get(i) if m.Has(fd) { t.Errorf("%v.Has(%v) = true, want false", md.FullName(), fd.Name()) } v := m.Get(fd) switch { case fd.IsList(): if n := v.List().Len(); n > 0 { t.Errorf("%v.Get(%v).List().Len() = %v, want 0", md.FullName(), fd.Name(), n) } ls := m.NewField(fd).List() if fd.Message() != nil { if n := numFields(ls.NewElement().Message()); n > 0 { t.Errorf("%v.NewField(%v).List().NewElement().Message().Len() = %v, want 0", md.FullName(), fd.Name(), n) } } case fd.IsMap(): if n := v.Map().Len(); n > 0 { t.Errorf("%v.Get(%v).Map().Len() = %v, want 0", md.FullName(), fd.Name(), n) } ms := m.NewField(fd).Map() if fd.MapValue().Message() != nil { if n := numFields(ms.NewValue().Message()); n > 0 { t.Errorf("%v.NewField(%v).Map().NewValue().Message().Len() = %v, want 0", md.FullName(), fd.Name(), n) } } case fd.Message() != nil: if n := numFields(v.Message()); n > 0 { t.Errorf("%v.Get(%v).Message().Len() = %v, want 0", md.FullName(), fd.Name(), n) } if n := numFields(m.NewField(fd).Message()); n > 0 { t.Errorf("%v.NewField(%v).Message().Len() = %v, want 0", md.FullName(), fd.Name(), n) } default: if !reflect.DeepEqual(v.Interface(), fd.Default().Interface()) { t.Errorf("%v.Get(%v) = %v, want %v", md.FullName(), fd.Name(), v, fd.Default()) } m.NewField(fd) // should not panic } } ods := md.Oneofs() for i := 0; i < ods.Len(); i++ { od := ods.Get(i) if fd := m.WhichOneof(od); fd != nil { t.Errorf("%v.WhichOneof(%v) = %v, want nil", md.FullName(), od.Name(), fd.Name()) } } if b := m.GetUnknown(); b != nil { t.Errorf("%v.GetUnknown() = %v, want nil", md.FullName(), b) } } func testPopulateMessage(t *testing.T, m protoreflect.Message, depth int) bool { if depth == 0 { return false } md := m.Descriptor() fds := md.Fields() var populatedMessage bool for i := 0; i < fds.Len(); i++ { populatedField := true fd := fds.Get(i) m.Clear(fd) // should not panic switch { case fd.IsList(): ls := m.Mutable(fd).List() if fd.Message() == nil { ls.Append(scalarValue(fd.Kind())) } else { populatedField = testPopulateMessage(t, ls.AppendMutable().Message(), depth-1) } case fd.IsMap(): ms := m.Mutable(fd).Map() if fd.MapValue().Message() == nil { ms.Set( scalarValue(fd.MapKey().Kind()).MapKey(), scalarValue(fd.MapValue().Kind()), ) } else { // NOTE: Map.Mutable does not work with non-nullable fields. m2 := ms.NewValue().Message() populatedField = testPopulateMessage(t, m2, depth-1) ms.Set( scalarValue(fd.MapKey().Kind()).MapKey(), protoreflect.ValueOfMessage(m2), ) } case fd.Message() != nil: populatedField = testPopulateMessage(t, m.Mutable(fd).Message(), depth-1) default: m.Set(fd, scalarValue(fd.Kind())) } if populatedField && !m.Has(fd) { t.Errorf("%v.Has(%v) = false, want true", md.FullName(), fd.Name()) } populatedMessage = populatedMessage || populatedField } m.SetUnknown(m.GetUnknown()) // should not panic return populatedMessage } func scalarValue(k protoreflect.Kind) protoreflect.Value { switch k { case protoreflect.BoolKind: return protoreflect.ValueOfBool(true) case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: return protoreflect.ValueOfInt32(-32) case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: return protoreflect.ValueOfInt64(-64) case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: return protoreflect.ValueOfUint32(32) case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: return protoreflect.ValueOfUint64(64) case protoreflect.FloatKind: return protoreflect.ValueOfFloat32(32.32) case protoreflect.DoubleKind: return protoreflect.ValueOfFloat64(64.64) case protoreflect.StringKind: return protoreflect.ValueOfString(string("string")) case protoreflect.BytesKind: return protoreflect.ValueOfBytes([]byte("bytes")) case protoreflect.EnumKind: return protoreflect.ValueOfEnum(1) default: panic("unknown kind: " + k.String()) } } golang-google-protobuf-1.27.1/internal/testprotos/order/000077500000000000000000000000001411250152500233325ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/order/order.pb.go000066400000000000000000000223411411250152500253760ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Messages in this file are used to test wire encoding order. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/order/order.proto package order import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Message struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields Field_2 *string `protobuf:"bytes,2,opt,name=field_2,json=field2" json:"field_2,omitempty"` Field_1 *string `protobuf:"bytes,1,opt,name=field_1,json=field1" json:"field_1,omitempty"` // Types that are assignable to Oneof_1: // *Message_Field_10 Oneof_1 isMessage_Oneof_1 `protobuf_oneof:"oneof_1"` Field_20 *string `protobuf:"bytes,20,opt,name=field_20,json=field20" json:"field_20,omitempty"` } func (x *Message) Reset() { *x = Message{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_order_order_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message) ProtoMessage() {} func (x *Message) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_order_order_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message.ProtoReflect.Descriptor instead. func (*Message) Descriptor() ([]byte, []int) { return file_internal_testprotos_order_order_proto_rawDescGZIP(), []int{0} } func (x *Message) GetField_2() string { if x != nil && x.Field_2 != nil { return *x.Field_2 } return "" } func (x *Message) GetField_1() string { if x != nil && x.Field_1 != nil { return *x.Field_1 } return "" } func (m *Message) GetOneof_1() isMessage_Oneof_1 { if m != nil { return m.Oneof_1 } return nil } func (x *Message) GetField_10() string { if x, ok := x.GetOneof_1().(*Message_Field_10); ok { return x.Field_10 } return "" } func (x *Message) GetField_20() string { if x != nil && x.Field_20 != nil { return *x.Field_20 } return "" } type isMessage_Oneof_1 interface { isMessage_Oneof_1() } type Message_Field_10 struct { Field_10 string `protobuf:"bytes,10,opt,name=field_10,json=field10,oneof"` } func (*Message_Field_10) isMessage_Oneof_1() {} var file_internal_testprotos_order_order_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*Message)(nil), ExtensionType: (*string)(nil), Field: 30, Name: "goproto.proto.order.field_30", Tag: "bytes,30,opt,name=field_30", Filename: "internal/testprotos/order/order.proto", }, { ExtendedType: (*Message)(nil), ExtensionType: (*string)(nil), Field: 31, Name: "goproto.proto.order.field_31", Tag: "bytes,31,opt,name=field_31", Filename: "internal/testprotos/order/order.proto", }, { ExtendedType: (*Message)(nil), ExtensionType: (*string)(nil), Field: 32, Name: "goproto.proto.order.field_32", Tag: "bytes,32,opt,name=field_32", Filename: "internal/testprotos/order/order.proto", }, } // Extension fields to Message. var ( // optional string field_30 = 30; E_Field_30 = &file_internal_testprotos_order_order_proto_extTypes[0] // optional string field_31 = 31; E_Field_31 = &file_internal_testprotos_order_order_proto_extTypes[1] // optional string field_32 = 32; E_Field_32 = &file_internal_testprotos_order_order_proto_extTypes[2] ) var File_internal_testprotos_order_order_proto protoreflect.FileDescriptor var file_internal_testprotos_order_order_proto_rawDesc = []byte{ 0x0a, 0x25, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x84, 0x01, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x31, 0x30, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x32, 0x30, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x30, 0x2a, 0x04, 0x08, 0x1e, 0x10, 0x29, 0x42, 0x09, 0x0a, 0x07, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x31, 0x3a, 0x37, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x33, 0x30, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x30, 0x3a, 0x37, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x33, 0x31, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x31, 0x3a, 0x37, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x33, 0x32, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x32, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6f, 0x72, 0x64, 0x65, 0x72, } var ( file_internal_testprotos_order_order_proto_rawDescOnce sync.Once file_internal_testprotos_order_order_proto_rawDescData = file_internal_testprotos_order_order_proto_rawDesc ) func file_internal_testprotos_order_order_proto_rawDescGZIP() []byte { file_internal_testprotos_order_order_proto_rawDescOnce.Do(func() { file_internal_testprotos_order_order_proto_rawDescData = protoimpl.X.CompressGZIP(file_internal_testprotos_order_order_proto_rawDescData) }) return file_internal_testprotos_order_order_proto_rawDescData } var file_internal_testprotos_order_order_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_internal_testprotos_order_order_proto_goTypes = []interface{}{ (*Message)(nil), // 0: goproto.proto.order.Message } var file_internal_testprotos_order_order_proto_depIdxs = []int32{ 0, // 0: goproto.proto.order.field_30:extendee -> goproto.proto.order.Message 0, // 1: goproto.proto.order.field_31:extendee -> goproto.proto.order.Message 0, // 2: goproto.proto.order.field_32:extendee -> goproto.proto.order.Message 3, // [3:3] is the sub-list for method output_type 3, // [3:3] is the sub-list for method input_type 3, // [3:3] is the sub-list for extension type_name 0, // [0:3] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_internal_testprotos_order_order_proto_init() } func file_internal_testprotos_order_order_proto_init() { if File_internal_testprotos_order_order_proto != nil { return } if !protoimpl.UnsafeEnabled { file_internal_testprotos_order_order_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } } file_internal_testprotos_order_order_proto_msgTypes[0].OneofWrappers = []interface{}{ (*Message_Field_10)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_order_order_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 3, NumServices: 0, }, GoTypes: file_internal_testprotos_order_order_proto_goTypes, DependencyIndexes: file_internal_testprotos_order_order_proto_depIdxs, MessageInfos: file_internal_testprotos_order_order_proto_msgTypes, ExtensionInfos: file_internal_testprotos_order_order_proto_extTypes, }.Build() File_internal_testprotos_order_order_proto = out.File file_internal_testprotos_order_order_proto_rawDesc = nil file_internal_testprotos_order_order_proto_goTypes = nil file_internal_testprotos_order_order_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/order/order.proto000066400000000000000000000012231411250152500255300ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Messages in this file are used to test wire encoding order. syntax = "proto2"; package goproto.proto.order; option go_package = "google.golang.org/protobuf/internal/testprotos/order"; message Message { optional string field_2 = 2; optional string field_1 = 1; oneof oneof_1 { string field_10 = 10; } extensions 30 to 40; optional string field_20 = 20; } extend Message { optional string field_30 = 30; optional string field_31 = 31; optional string field_32 = 32; } golang-google-protobuf-1.27.1/internal/testprotos/registry/000077500000000000000000000000001411250152500240675ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/registry/test.pb.go000066400000000000000000000454421411250152500260060ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Different proto type definitions for testing the Types registry. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/registry/test.proto package registry import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Enum1 int32 const ( Enum1_ONE Enum1 = 1 ) // Enum value maps for Enum1. var ( Enum1_name = map[int32]string{ 1: "ONE", } Enum1_value = map[string]int32{ "ONE": 1, } ) func (x Enum1) Enum() *Enum1 { p := new(Enum1) *p = x return p } func (x Enum1) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum1) Descriptor() protoreflect.EnumDescriptor { return file_internal_testprotos_registry_test_proto_enumTypes[0].Descriptor() } func (Enum1) Type() protoreflect.EnumType { return &file_internal_testprotos_registry_test_proto_enumTypes[0] } func (x Enum1) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum1) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum1(num) return nil } // Deprecated: Use Enum1.Descriptor instead. func (Enum1) EnumDescriptor() ([]byte, []int) { return file_internal_testprotos_registry_test_proto_rawDescGZIP(), []int{0} } type Enum2 int32 const ( Enum2_UNO Enum2 = 1 ) // Enum value maps for Enum2. var ( Enum2_name = map[int32]string{ 1: "UNO", } Enum2_value = map[string]int32{ "UNO": 1, } ) func (x Enum2) Enum() *Enum2 { p := new(Enum2) *p = x return p } func (x Enum2) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum2) Descriptor() protoreflect.EnumDescriptor { return file_internal_testprotos_registry_test_proto_enumTypes[1].Descriptor() } func (Enum2) Type() protoreflect.EnumType { return &file_internal_testprotos_registry_test_proto_enumTypes[1] } func (x Enum2) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum2) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum2(num) return nil } // Deprecated: Use Enum2.Descriptor instead. func (Enum2) EnumDescriptor() ([]byte, []int) { return file_internal_testprotos_registry_test_proto_rawDescGZIP(), []int{1} } type Enum3 int32 const ( Enum3_YI Enum3 = 1 ) // Enum value maps for Enum3. var ( Enum3_name = map[int32]string{ 1: "YI", } Enum3_value = map[string]int32{ "YI": 1, } ) func (x Enum3) Enum() *Enum3 { p := new(Enum3) *p = x return p } func (x Enum3) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum3) Descriptor() protoreflect.EnumDescriptor { return file_internal_testprotos_registry_test_proto_enumTypes[2].Descriptor() } func (Enum3) Type() protoreflect.EnumType { return &file_internal_testprotos_registry_test_proto_enumTypes[2] } func (x Enum3) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum3) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum3(num) return nil } // Deprecated: Use Enum3.Descriptor instead. func (Enum3) EnumDescriptor() ([]byte, []int) { return file_internal_testprotos_registry_test_proto_rawDescGZIP(), []int{2} } type Message1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields } func (x *Message1) Reset() { *x = Message1{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_registry_test_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message1) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message1) ProtoMessage() {} func (x *Message1) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_registry_test_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message1.ProtoReflect.Descriptor instead. func (*Message1) Descriptor() ([]byte, []int) { return file_internal_testprotos_registry_test_proto_rawDescGZIP(), []int{0} } type Message2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message2) Reset() { *x = Message2{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_registry_test_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message2) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message2) ProtoMessage() {} func (x *Message2) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_registry_test_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message2.ProtoReflect.Descriptor instead. func (*Message2) Descriptor() ([]byte, []int) { return file_internal_testprotos_registry_test_proto_rawDescGZIP(), []int{1} } type Message3 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message3) Reset() { *x = Message3{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_registry_test_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message3) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message3) ProtoMessage() {} func (x *Message3) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_registry_test_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message3.ProtoReflect.Descriptor instead. func (*Message3) Descriptor() ([]byte, []int) { return file_internal_testprotos_registry_test_proto_rawDescGZIP(), []int{2} } type Message4 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BoolField *bool `protobuf:"varint,30,opt,name=bool_field,json=boolField" json:"bool_field,omitempty"` } func (x *Message4) Reset() { *x = Message4{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_registry_test_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message4) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message4) ProtoMessage() {} func (x *Message4) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_registry_test_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message4.ProtoReflect.Descriptor instead. func (*Message4) Descriptor() ([]byte, []int) { return file_internal_testprotos_registry_test_proto_rawDescGZIP(), []int{3} } func (x *Message4) GetBoolField() bool { if x != nil && x.BoolField != nil { return *x.BoolField } return false } var file_internal_testprotos_registry_test_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*Message1)(nil), ExtensionType: (*string)(nil), Field: 11, Name: "testprotos.string_field", Tag: "bytes,11,opt,name=string_field", Filename: "internal/testprotos/registry/test.proto", }, { ExtendedType: (*Message1)(nil), ExtensionType: (*Enum1)(nil), Field: 12, Name: "testprotos.enum_field", Tag: "varint,12,opt,name=enum_field,enum=testprotos.Enum1", Filename: "internal/testprotos/registry/test.proto", }, { ExtendedType: (*Message1)(nil), ExtensionType: (*Message2)(nil), Field: 13, Name: "testprotos.message_field", Tag: "bytes,13,opt,name=message_field", Filename: "internal/testprotos/registry/test.proto", }, { ExtendedType: (*Message1)(nil), ExtensionType: (*Message2)(nil), Field: 21, Name: "testprotos.Message4.message_field", Tag: "bytes,21,opt,name=message_field", Filename: "internal/testprotos/registry/test.proto", }, { ExtendedType: (*Message1)(nil), ExtensionType: (*Enum1)(nil), Field: 22, Name: "testprotos.Message4.enum_field", Tag: "varint,22,opt,name=enum_field,enum=testprotos.Enum1", Filename: "internal/testprotos/registry/test.proto", }, { ExtendedType: (*Message1)(nil), ExtensionType: (*string)(nil), Field: 23, Name: "testprotos.Message4.string_field", Tag: "bytes,23,opt,name=string_field", Filename: "internal/testprotos/registry/test.proto", }, } // Extension fields to Message1. var ( // optional string string_field = 11; E_StringField = &file_internal_testprotos_registry_test_proto_extTypes[0] // optional testprotos.Enum1 enum_field = 12; E_EnumField = &file_internal_testprotos_registry_test_proto_extTypes[1] // optional testprotos.Message2 message_field = 13; E_MessageField = &file_internal_testprotos_registry_test_proto_extTypes[2] // optional testprotos.Message2 message_field = 21; E_Message4_MessageField = &file_internal_testprotos_registry_test_proto_extTypes[3] // optional testprotos.Enum1 enum_field = 22; E_Message4_EnumField = &file_internal_testprotos_registry_test_proto_extTypes[4] // optional string string_field = 23; E_Message4_StringField = &file_internal_testprotos_registry_test_proto_extTypes[5] ) var File_internal_testprotos_registry_test_proto protoreflect.FileDescriptor var file_internal_testprotos_registry_test_proto_rawDesc = []byte{ 0x0a, 0x27, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x22, 0x14, 0x0a, 0x08, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x2a, 0x08, 0x08, 0x0a, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x0a, 0x0a, 0x08, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x22, 0x0a, 0x0a, 0x08, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x33, 0x22, 0xfb, 0x01, 0x0a, 0x08, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x34, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x4f, 0x0a, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x46, 0x0a, 0x0a, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x52, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x37, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x2a, 0x10, 0x0a, 0x05, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x2a, 0x10, 0x0a, 0x05, 0x45, 0x6e, 0x75, 0x6d, 0x32, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x4e, 0x4f, 0x10, 0x01, 0x2a, 0x0f, 0x0a, 0x05, 0x45, 0x6e, 0x75, 0x6d, 0x33, 0x12, 0x06, 0x0a, 0x02, 0x59, 0x49, 0x10, 0x01, 0x3a, 0x37, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x3a, 0x46, 0x0a, 0x0a, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x31, 0x52, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x3a, 0x4f, 0x0a, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x39, 0x5a, 0x37, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, } var ( file_internal_testprotos_registry_test_proto_rawDescOnce sync.Once file_internal_testprotos_registry_test_proto_rawDescData = file_internal_testprotos_registry_test_proto_rawDesc ) func file_internal_testprotos_registry_test_proto_rawDescGZIP() []byte { file_internal_testprotos_registry_test_proto_rawDescOnce.Do(func() { file_internal_testprotos_registry_test_proto_rawDescData = protoimpl.X.CompressGZIP(file_internal_testprotos_registry_test_proto_rawDescData) }) return file_internal_testprotos_registry_test_proto_rawDescData } var file_internal_testprotos_registry_test_proto_enumTypes = make([]protoimpl.EnumInfo, 3) var file_internal_testprotos_registry_test_proto_msgTypes = make([]protoimpl.MessageInfo, 4) var file_internal_testprotos_registry_test_proto_goTypes = []interface{}{ (Enum1)(0), // 0: testprotos.Enum1 (Enum2)(0), // 1: testprotos.Enum2 (Enum3)(0), // 2: testprotos.Enum3 (*Message1)(nil), // 3: testprotos.Message1 (*Message2)(nil), // 4: testprotos.Message2 (*Message3)(nil), // 5: testprotos.Message3 (*Message4)(nil), // 6: testprotos.Message4 } var file_internal_testprotos_registry_test_proto_depIdxs = []int32{ 3, // 0: testprotos.string_field:extendee -> testprotos.Message1 3, // 1: testprotos.enum_field:extendee -> testprotos.Message1 3, // 2: testprotos.message_field:extendee -> testprotos.Message1 3, // 3: testprotos.Message4.message_field:extendee -> testprotos.Message1 3, // 4: testprotos.Message4.enum_field:extendee -> testprotos.Message1 3, // 5: testprotos.Message4.string_field:extendee -> testprotos.Message1 0, // 6: testprotos.enum_field:type_name -> testprotos.Enum1 4, // 7: testprotos.message_field:type_name -> testprotos.Message2 4, // 8: testprotos.Message4.message_field:type_name -> testprotos.Message2 0, // 9: testprotos.Message4.enum_field:type_name -> testprotos.Enum1 10, // [10:10] is the sub-list for method output_type 10, // [10:10] is the sub-list for method input_type 6, // [6:10] is the sub-list for extension type_name 0, // [0:6] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_internal_testprotos_registry_test_proto_init() } func file_internal_testprotos_registry_test_proto_init() { if File_internal_testprotos_registry_test_proto != nil { return } if !protoimpl.UnsafeEnabled { file_internal_testprotos_registry_test_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message1); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_internal_testprotos_registry_test_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message2); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_registry_test_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message3); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_registry_test_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message4); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_registry_test_proto_rawDesc, NumEnums: 3, NumMessages: 4, NumExtensions: 6, NumServices: 0, }, GoTypes: file_internal_testprotos_registry_test_proto_goTypes, DependencyIndexes: file_internal_testprotos_registry_test_proto_depIdxs, EnumInfos: file_internal_testprotos_registry_test_proto_enumTypes, MessageInfos: file_internal_testprotos_registry_test_proto_msgTypes, ExtensionInfos: file_internal_testprotos_registry_test_proto_extTypes, }.Build() File_internal_testprotos_registry_test_proto = out.File file_internal_testprotos_registry_test_proto_rawDesc = nil file_internal_testprotos_registry_test_proto_goTypes = nil file_internal_testprotos_registry_test_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/registry/test.proto000066400000000000000000000015141411250152500261340ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Different proto type definitions for testing the Types registry. syntax = "proto2"; package testprotos; option go_package = "google.golang.org/protobuf/internal/testprotos/registry"; message Message1 { extensions 10 to max; } message Message2 {} message Message3 {} enum Enum1 { ONE = 1; } enum Enum2 { UNO = 1; } enum Enum3 { YI = 1; } extend Message1 { optional string string_field = 11; optional Enum1 enum_field = 12; optional Message2 message_field = 13; } message Message4 { optional bool bool_field = 30; extend Message1 { optional Message2 message_field = 21; optional Enum1 enum_field = 22; optional string string_field = 23; } } golang-google-protobuf-1.27.1/internal/testprotos/required/000077500000000000000000000000001411250152500240375ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/required/required.pb.go000066400000000000000000000765521411250152500266250ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/required/required.proto package required import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Int32 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields V *int32 `protobuf:"varint,1,req,name=v" json:"v,omitempty"` } func (x *Int32) Reset() { *x = Int32{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_required_required_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Int32) String() string { return protoimpl.X.MessageStringOf(x) } func (*Int32) ProtoMessage() {} func (x *Int32) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_required_required_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Int32.ProtoReflect.Descriptor instead. func (*Int32) Descriptor() ([]byte, []int) { return file_internal_testprotos_required_required_proto_rawDescGZIP(), []int{0} } func (x *Int32) GetV() int32 { if x != nil && x.V != nil { return *x.V } return 0 } type Int64 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields V *int64 `protobuf:"varint,1,req,name=v" json:"v,omitempty"` } func (x *Int64) Reset() { *x = Int64{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_required_required_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Int64) String() string { return protoimpl.X.MessageStringOf(x) } func (*Int64) ProtoMessage() {} func (x *Int64) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_required_required_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Int64.ProtoReflect.Descriptor instead. func (*Int64) Descriptor() ([]byte, []int) { return file_internal_testprotos_required_required_proto_rawDescGZIP(), []int{1} } func (x *Int64) GetV() int64 { if x != nil && x.V != nil { return *x.V } return 0 } type Uint32 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields V *uint32 `protobuf:"varint,1,req,name=v" json:"v,omitempty"` } func (x *Uint32) Reset() { *x = Uint32{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_required_required_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Uint32) String() string { return protoimpl.X.MessageStringOf(x) } func (*Uint32) ProtoMessage() {} func (x *Uint32) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_required_required_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Uint32.ProtoReflect.Descriptor instead. func (*Uint32) Descriptor() ([]byte, []int) { return file_internal_testprotos_required_required_proto_rawDescGZIP(), []int{2} } func (x *Uint32) GetV() uint32 { if x != nil && x.V != nil { return *x.V } return 0 } type Uint64 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields V *uint64 `protobuf:"varint,1,req,name=v" json:"v,omitempty"` } func (x *Uint64) Reset() { *x = Uint64{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_required_required_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Uint64) String() string { return protoimpl.X.MessageStringOf(x) } func (*Uint64) ProtoMessage() {} func (x *Uint64) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_required_required_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Uint64.ProtoReflect.Descriptor instead. func (*Uint64) Descriptor() ([]byte, []int) { return file_internal_testprotos_required_required_proto_rawDescGZIP(), []int{3} } func (x *Uint64) GetV() uint64 { if x != nil && x.V != nil { return *x.V } return 0 } type Sint32 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields V *int32 `protobuf:"zigzag32,1,req,name=v" json:"v,omitempty"` } func (x *Sint32) Reset() { *x = Sint32{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_required_required_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Sint32) String() string { return protoimpl.X.MessageStringOf(x) } func (*Sint32) ProtoMessage() {} func (x *Sint32) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_required_required_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Sint32.ProtoReflect.Descriptor instead. func (*Sint32) Descriptor() ([]byte, []int) { return file_internal_testprotos_required_required_proto_rawDescGZIP(), []int{4} } func (x *Sint32) GetV() int32 { if x != nil && x.V != nil { return *x.V } return 0 } type Sint64 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields V *int64 `protobuf:"zigzag64,1,req,name=v" json:"v,omitempty"` } func (x *Sint64) Reset() { *x = Sint64{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_required_required_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Sint64) String() string { return protoimpl.X.MessageStringOf(x) } func (*Sint64) ProtoMessage() {} func (x *Sint64) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_required_required_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Sint64.ProtoReflect.Descriptor instead. func (*Sint64) Descriptor() ([]byte, []int) { return file_internal_testprotos_required_required_proto_rawDescGZIP(), []int{5} } func (x *Sint64) GetV() int64 { if x != nil && x.V != nil { return *x.V } return 0 } type Fixed32 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields V *uint32 `protobuf:"fixed32,1,req,name=v" json:"v,omitempty"` } func (x *Fixed32) Reset() { *x = Fixed32{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_required_required_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Fixed32) String() string { return protoimpl.X.MessageStringOf(x) } func (*Fixed32) ProtoMessage() {} func (x *Fixed32) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_required_required_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Fixed32.ProtoReflect.Descriptor instead. func (*Fixed32) Descriptor() ([]byte, []int) { return file_internal_testprotos_required_required_proto_rawDescGZIP(), []int{6} } func (x *Fixed32) GetV() uint32 { if x != nil && x.V != nil { return *x.V } return 0 } type Fixed64 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields V *uint64 `protobuf:"fixed64,1,req,name=v" json:"v,omitempty"` } func (x *Fixed64) Reset() { *x = Fixed64{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_required_required_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Fixed64) String() string { return protoimpl.X.MessageStringOf(x) } func (*Fixed64) ProtoMessage() {} func (x *Fixed64) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_required_required_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Fixed64.ProtoReflect.Descriptor instead. func (*Fixed64) Descriptor() ([]byte, []int) { return file_internal_testprotos_required_required_proto_rawDescGZIP(), []int{7} } func (x *Fixed64) GetV() uint64 { if x != nil && x.V != nil { return *x.V } return 0 } type Float struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields V *float32 `protobuf:"fixed32,1,req,name=v" json:"v,omitempty"` } func (x *Float) Reset() { *x = Float{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_required_required_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Float) String() string { return protoimpl.X.MessageStringOf(x) } func (*Float) ProtoMessage() {} func (x *Float) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_required_required_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Float.ProtoReflect.Descriptor instead. func (*Float) Descriptor() ([]byte, []int) { return file_internal_testprotos_required_required_proto_rawDescGZIP(), []int{8} } func (x *Float) GetV() float32 { if x != nil && x.V != nil { return *x.V } return 0 } type Double struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields V *float64 `protobuf:"fixed64,1,req,name=v" json:"v,omitempty"` } func (x *Double) Reset() { *x = Double{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_required_required_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Double) String() string { return protoimpl.X.MessageStringOf(x) } func (*Double) ProtoMessage() {} func (x *Double) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_required_required_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Double.ProtoReflect.Descriptor instead. func (*Double) Descriptor() ([]byte, []int) { return file_internal_testprotos_required_required_proto_rawDescGZIP(), []int{9} } func (x *Double) GetV() float64 { if x != nil && x.V != nil { return *x.V } return 0 } type Bool struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields V *bool `protobuf:"varint,1,req,name=v" json:"v,omitempty"` } func (x *Bool) Reset() { *x = Bool{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_required_required_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Bool) String() string { return protoimpl.X.MessageStringOf(x) } func (*Bool) ProtoMessage() {} func (x *Bool) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_required_required_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Bool.ProtoReflect.Descriptor instead. func (*Bool) Descriptor() ([]byte, []int) { return file_internal_testprotos_required_required_proto_rawDescGZIP(), []int{10} } func (x *Bool) GetV() bool { if x != nil && x.V != nil { return *x.V } return false } type String struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields V *string `protobuf:"bytes,1,req,name=v" json:"v,omitempty"` } func (x *String) Reset() { *x = String{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_required_required_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *String) String() string { return protoimpl.X.MessageStringOf(x) } func (*String) ProtoMessage() {} func (x *String) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_required_required_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use String.ProtoReflect.Descriptor instead. func (*String) Descriptor() ([]byte, []int) { return file_internal_testprotos_required_required_proto_rawDescGZIP(), []int{11} } func (x *String) GetV() string { if x != nil && x.V != nil { return *x.V } return "" } type Bytes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields V []byte `protobuf:"bytes,1,req,name=v" json:"v,omitempty"` } func (x *Bytes) Reset() { *x = Bytes{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_required_required_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Bytes) String() string { return protoimpl.X.MessageStringOf(x) } func (*Bytes) ProtoMessage() {} func (x *Bytes) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_required_required_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Bytes.ProtoReflect.Descriptor instead. func (*Bytes) Descriptor() ([]byte, []int) { return file_internal_testprotos_required_required_proto_rawDescGZIP(), []int{12} } func (x *Bytes) GetV() []byte { if x != nil { return x.V } return nil } type Message struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields V *Message_M `protobuf:"bytes,1,req,name=v" json:"v,omitempty"` } func (x *Message) Reset() { *x = Message{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_required_required_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message) ProtoMessage() {} func (x *Message) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_required_required_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message.ProtoReflect.Descriptor instead. func (*Message) Descriptor() ([]byte, []int) { return file_internal_testprotos_required_required_proto_rawDescGZIP(), []int{13} } func (x *Message) GetV() *Message_M { if x != nil { return x.V } return nil } type Group struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Group *Group_Group `protobuf:"group,1,req,name=Group,json=group" json:"group,omitempty"` } func (x *Group) Reset() { *x = Group{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_required_required_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Group) String() string { return protoimpl.X.MessageStringOf(x) } func (*Group) ProtoMessage() {} func (x *Group) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_required_required_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Group.ProtoReflect.Descriptor instead. func (*Group) Descriptor() ([]byte, []int) { return file_internal_testprotos_required_required_proto_rawDescGZIP(), []int{14} } func (x *Group) GetGroup() *Group_Group { if x != nil { return x.Group } return nil } type Message_M struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Message_M) Reset() { *x = Message_M{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_required_required_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message_M) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message_M) ProtoMessage() {} func (x *Message_M) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_required_required_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message_M.ProtoReflect.Descriptor instead. func (*Message_M) Descriptor() ([]byte, []int) { return file_internal_testprotos_required_required_proto_rawDescGZIP(), []int{13, 0} } type Group_Group struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields V *int32 `protobuf:"varint,1,opt,name=v" json:"v,omitempty"` } func (x *Group_Group) Reset() { *x = Group_Group{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_required_required_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Group_Group) String() string { return protoimpl.X.MessageStringOf(x) } func (*Group_Group) ProtoMessage() {} func (x *Group_Group) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_required_required_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Group_Group.ProtoReflect.Descriptor instead. func (*Group_Group) Descriptor() ([]byte, []int) { return file_internal_testprotos_required_required_proto_rawDescGZIP(), []int{14, 0} } func (x *Group_Group) GetV() int32 { if x != nil && x.V != nil { return *x.V } return 0 } var File_internal_testprotos_required_required_proto protoreflect.FileDescriptor var file_internal_testprotos_required_required_proto_rawDesc = []byte{ 0x0a, 0x2b, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x15, 0x0a, 0x05, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x01, 0x76, 0x22, 0x15, 0x0a, 0x05, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x02, 0x28, 0x03, 0x52, 0x01, 0x76, 0x22, 0x16, 0x0a, 0x06, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x01, 0x76, 0x22, 0x16, 0x0a, 0x06, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x02, 0x28, 0x04, 0x52, 0x01, 0x76, 0x22, 0x16, 0x0a, 0x06, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x02, 0x28, 0x11, 0x52, 0x01, 0x76, 0x22, 0x16, 0x0a, 0x06, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x02, 0x28, 0x12, 0x52, 0x01, 0x76, 0x22, 0x17, 0x0a, 0x07, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x02, 0x28, 0x07, 0x52, 0x01, 0x76, 0x22, 0x17, 0x0a, 0x07, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x02, 0x28, 0x06, 0x52, 0x01, 0x76, 0x22, 0x15, 0x0a, 0x05, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x02, 0x28, 0x02, 0x52, 0x01, 0x76, 0x22, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x02, 0x28, 0x01, 0x52, 0x01, 0x76, 0x22, 0x14, 0x0a, 0x04, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x02, 0x28, 0x08, 0x52, 0x01, 0x76, 0x22, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x01, 0x76, 0x22, 0x15, 0x0a, 0x05, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0c, 0x52, 0x01, 0x76, 0x22, 0x43, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x52, 0x01, 0x76, 0x1a, 0x03, 0x0a, 0x01, 0x4d, 0x22, 0x5d, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3d, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0a, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x15, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x76, 0x42, 0x39, 0x5a, 0x37, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, } var ( file_internal_testprotos_required_required_proto_rawDescOnce sync.Once file_internal_testprotos_required_required_proto_rawDescData = file_internal_testprotos_required_required_proto_rawDesc ) func file_internal_testprotos_required_required_proto_rawDescGZIP() []byte { file_internal_testprotos_required_required_proto_rawDescOnce.Do(func() { file_internal_testprotos_required_required_proto_rawDescData = protoimpl.X.CompressGZIP(file_internal_testprotos_required_required_proto_rawDescData) }) return file_internal_testprotos_required_required_proto_rawDescData } var file_internal_testprotos_required_required_proto_msgTypes = make([]protoimpl.MessageInfo, 17) var file_internal_testprotos_required_required_proto_goTypes = []interface{}{ (*Int32)(nil), // 0: goproto.proto.testrequired.Int32 (*Int64)(nil), // 1: goproto.proto.testrequired.Int64 (*Uint32)(nil), // 2: goproto.proto.testrequired.Uint32 (*Uint64)(nil), // 3: goproto.proto.testrequired.Uint64 (*Sint32)(nil), // 4: goproto.proto.testrequired.Sint32 (*Sint64)(nil), // 5: goproto.proto.testrequired.Sint64 (*Fixed32)(nil), // 6: goproto.proto.testrequired.Fixed32 (*Fixed64)(nil), // 7: goproto.proto.testrequired.Fixed64 (*Float)(nil), // 8: goproto.proto.testrequired.Float (*Double)(nil), // 9: goproto.proto.testrequired.Double (*Bool)(nil), // 10: goproto.proto.testrequired.Bool (*String)(nil), // 11: goproto.proto.testrequired.String (*Bytes)(nil), // 12: goproto.proto.testrequired.Bytes (*Message)(nil), // 13: goproto.proto.testrequired.Message (*Group)(nil), // 14: goproto.proto.testrequired.Group (*Message_M)(nil), // 15: goproto.proto.testrequired.Message.M (*Group_Group)(nil), // 16: goproto.proto.testrequired.Group.Group } var file_internal_testprotos_required_required_proto_depIdxs = []int32{ 15, // 0: goproto.proto.testrequired.Message.v:type_name -> goproto.proto.testrequired.Message.M 16, // 1: goproto.proto.testrequired.Group.group:type_name -> goproto.proto.testrequired.Group.Group 2, // [2:2] is the sub-list for method output_type 2, // [2:2] is the sub-list for method input_type 2, // [2:2] is the sub-list for extension type_name 2, // [2:2] is the sub-list for extension extendee 0, // [0:2] is the sub-list for field type_name } func init() { file_internal_testprotos_required_required_proto_init() } func file_internal_testprotos_required_required_proto_init() { if File_internal_testprotos_required_required_proto != nil { return } if !protoimpl.UnsafeEnabled { file_internal_testprotos_required_required_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Int32); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_required_required_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Int64); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_required_required_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Uint32); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_required_required_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Uint64); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_required_required_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Sint32); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_required_required_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Sint64); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_required_required_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Fixed32); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_required_required_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Fixed64); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_required_required_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Float); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_required_required_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Double); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_required_required_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bool); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_required_required_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*String); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_required_required_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bytes); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_required_required_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_required_required_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Group); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_required_required_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message_M); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_required_required_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Group_Group); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_required_required_proto_rawDesc, NumEnums: 0, NumMessages: 17, NumExtensions: 0, NumServices: 0, }, GoTypes: file_internal_testprotos_required_required_proto_goTypes, DependencyIndexes: file_internal_testprotos_required_required_proto_depIdxs, MessageInfos: file_internal_testprotos_required_required_proto_msgTypes, }.Build() File_internal_testprotos_required_required_proto = out.File file_internal_testprotos_required_required_proto_rawDesc = nil file_internal_testprotos_required_required_proto_goTypes = nil file_internal_testprotos_required_required_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/required/required.proto000066400000000000000000000017731411250152500267540ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.proto.testrequired; option go_package = "google.golang.org/protobuf/internal/testprotos/required"; message Int32 { required int32 v = 1; } message Int64 { required int64 v = 1; } message Uint32 { required uint32 v = 1; } message Uint64 { required uint64 v = 1; } message Sint32 { required sint32 v = 1; } message Sint64 { required sint64 v = 1; } message Fixed32 { required fixed32 v = 1; } message Fixed64 { required fixed64 v = 1; } message Float { required float v = 1; } message Double { required double v = 1; } message Bool { required bool v = 1; } message String { required string v = 1; } message Bytes { required bytes v = 1; } message Message { message M {} required M v = 1; } message Group { required group Group = 1 { optional int32 v = 1; } } golang-google-protobuf-1.27.1/internal/testprotos/test/000077500000000000000000000000001411250152500231765ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/test/ext.pb.go000066400000000000000000000100301411250152500247170ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/test/ext.proto package test import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" ) var file_internal_testprotos_test_ext_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*int32)(nil), Field: 2000, Name: "goproto.proto.test.foreign_int32_extension", Tag: "varint,2000,opt,name=foreign_int32_extension", Filename: "internal/testprotos/test/ext.proto", }, } // Extension fields to TestAllExtensions. var ( // optional int32 foreign_int32_extension = 2000; E_ForeignInt32Extension = &file_internal_testprotos_test_ext_proto_extTypes[0] ) var File_internal_testprotos_test_ext_proto protoreflect.FileDescriptor var file_internal_testprotos_test_ext_proto_rawDesc = []byte{ 0x0a, 0x22, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x5e, 0x0a, 0x17, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd0, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x35, 0x5a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, } var file_internal_testprotos_test_ext_proto_goTypes = []interface{}{ (*TestAllExtensions)(nil), // 0: goproto.proto.test.TestAllExtensions } var file_internal_testprotos_test_ext_proto_depIdxs = []int32{ 0, // 0: goproto.proto.test.foreign_int32_extension:extendee -> goproto.proto.test.TestAllExtensions 1, // [1:1] is the sub-list for method output_type 1, // [1:1] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name 0, // [0:1] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_internal_testprotos_test_ext_proto_init() } func file_internal_testprotos_test_ext_proto_init() { if File_internal_testprotos_test_ext_proto != nil { return } file_internal_testprotos_test_test_proto_init() type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_test_ext_proto_rawDesc, NumEnums: 0, NumMessages: 0, NumExtensions: 1, NumServices: 0, }, GoTypes: file_internal_testprotos_test_ext_proto_goTypes, DependencyIndexes: file_internal_testprotos_test_ext_proto_depIdxs, ExtensionInfos: file_internal_testprotos_test_ext_proto_extTypes, }.Build() File_internal_testprotos_test_ext_proto = out.File file_internal_testprotos_test_ext_proto_rawDesc = nil file_internal_testprotos_test_ext_proto_goTypes = nil file_internal_testprotos_test_ext_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/test/ext.proto000066400000000000000000000006361411250152500250700ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.proto.test; import "internal/testprotos/test/test.proto"; option go_package = "google.golang.org/protobuf/internal/testprotos/test"; extend TestAllExtensions { optional int32 foreign_int32_extension = 2000; } golang-google-protobuf-1.27.1/internal/testprotos/test/test.pb.go000066400000000000000000010202211411250152500251020ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/test/test.proto package test import ( enums "google.golang.org/protobuf/internal/testprotos/enums" proto "google.golang.org/protobuf/proto" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type ForeignEnum int32 const ( ForeignEnum_FOREIGN_FOO ForeignEnum = 4 ForeignEnum_FOREIGN_BAR ForeignEnum = 5 ForeignEnum_FOREIGN_BAZ ForeignEnum = 6 ) // Enum value maps for ForeignEnum. var ( ForeignEnum_name = map[int32]string{ 4: "FOREIGN_FOO", 5: "FOREIGN_BAR", 6: "FOREIGN_BAZ", } ForeignEnum_value = map[string]int32{ "FOREIGN_FOO": 4, "FOREIGN_BAR": 5, "FOREIGN_BAZ": 6, } ) func (x ForeignEnum) Enum() *ForeignEnum { p := new(ForeignEnum) *p = x return p } func (x ForeignEnum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ForeignEnum) Descriptor() protoreflect.EnumDescriptor { return file_internal_testprotos_test_test_proto_enumTypes[0].Descriptor() } func (ForeignEnum) Type() protoreflect.EnumType { return &file_internal_testprotos_test_test_proto_enumTypes[0] } func (x ForeignEnum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *ForeignEnum) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = ForeignEnum(num) return nil } // Deprecated: Use ForeignEnum.Descriptor instead. func (ForeignEnum) EnumDescriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{0} } type TestReservedEnumFields int32 const ( TestReservedEnumFields_RESERVED_ENUM TestReservedEnumFields = 0 ) // Enum value maps for TestReservedEnumFields. var ( TestReservedEnumFields_name = map[int32]string{ 0: "RESERVED_ENUM", } TestReservedEnumFields_value = map[string]int32{ "RESERVED_ENUM": 0, } ) func (x TestReservedEnumFields) Enum() *TestReservedEnumFields { p := new(TestReservedEnumFields) *p = x return p } func (x TestReservedEnumFields) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TestReservedEnumFields) Descriptor() protoreflect.EnumDescriptor { return file_internal_testprotos_test_test_proto_enumTypes[1].Descriptor() } func (TestReservedEnumFields) Type() protoreflect.EnumType { return &file_internal_testprotos_test_test_proto_enumTypes[1] } func (x TestReservedEnumFields) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *TestReservedEnumFields) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = TestReservedEnumFields(num) return nil } // Deprecated: Use TestReservedEnumFields.Descriptor instead. func (TestReservedEnumFields) EnumDescriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{1} } type TestAllTypes_NestedEnum int32 const ( TestAllTypes_FOO TestAllTypes_NestedEnum = 0 TestAllTypes_BAR TestAllTypes_NestedEnum = 1 TestAllTypes_BAZ TestAllTypes_NestedEnum = 2 TestAllTypes_NEG TestAllTypes_NestedEnum = -1 // Intentionally negative. ) // Enum value maps for TestAllTypes_NestedEnum. var ( TestAllTypes_NestedEnum_name = map[int32]string{ 0: "FOO", 1: "BAR", 2: "BAZ", -1: "NEG", } TestAllTypes_NestedEnum_value = map[string]int32{ "FOO": 0, "BAR": 1, "BAZ": 2, "NEG": -1, } ) func (x TestAllTypes_NestedEnum) Enum() *TestAllTypes_NestedEnum { p := new(TestAllTypes_NestedEnum) *p = x return p } func (x TestAllTypes_NestedEnum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TestAllTypes_NestedEnum) Descriptor() protoreflect.EnumDescriptor { return file_internal_testprotos_test_test_proto_enumTypes[2].Descriptor() } func (TestAllTypes_NestedEnum) Type() protoreflect.EnumType { return &file_internal_testprotos_test_test_proto_enumTypes[2] } func (x TestAllTypes_NestedEnum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *TestAllTypes_NestedEnum) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = TestAllTypes_NestedEnum(num) return nil } // Deprecated: Use TestAllTypes_NestedEnum.Descriptor instead. func (TestAllTypes_NestedEnum) EnumDescriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{0, 0} } // Deprecated: Do not use. type TestDeprecatedMessage_DeprecatedEnum int32 const ( // Deprecated: Do not use. TestDeprecatedMessage_DEPRECATED TestDeprecatedMessage_DeprecatedEnum = 0 ) // Enum value maps for TestDeprecatedMessage_DeprecatedEnum. var ( TestDeprecatedMessage_DeprecatedEnum_name = map[int32]string{ 0: "DEPRECATED", } TestDeprecatedMessage_DeprecatedEnum_value = map[string]int32{ "DEPRECATED": 0, } ) func (x TestDeprecatedMessage_DeprecatedEnum) Enum() *TestDeprecatedMessage_DeprecatedEnum { p := new(TestDeprecatedMessage_DeprecatedEnum) *p = x return p } func (x TestDeprecatedMessage_DeprecatedEnum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TestDeprecatedMessage_DeprecatedEnum) Descriptor() protoreflect.EnumDescriptor { return file_internal_testprotos_test_test_proto_enumTypes[3].Descriptor() } func (TestDeprecatedMessage_DeprecatedEnum) Type() protoreflect.EnumType { return &file_internal_testprotos_test_test_proto_enumTypes[3] } func (x TestDeprecatedMessage_DeprecatedEnum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *TestDeprecatedMessage_DeprecatedEnum) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = TestDeprecatedMessage_DeprecatedEnum(num) return nil } // Deprecated: Use TestDeprecatedMessage_DeprecatedEnum.Descriptor instead. func (TestDeprecatedMessage_DeprecatedEnum) EnumDescriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{1, 0} } type TestAllTypes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OptionalInt32 *int32 `protobuf:"varint,1,opt,name=optional_int32,json=optionalInt32" json:"optional_int32,omitempty"` OptionalInt64 *int64 `protobuf:"varint,2,opt,name=optional_int64,json=optionalInt64" json:"optional_int64,omitempty"` OptionalUint32 *uint32 `protobuf:"varint,3,opt,name=optional_uint32,json=optionalUint32" json:"optional_uint32,omitempty"` OptionalUint64 *uint64 `protobuf:"varint,4,opt,name=optional_uint64,json=optionalUint64" json:"optional_uint64,omitempty"` OptionalSint32 *int32 `protobuf:"zigzag32,5,opt,name=optional_sint32,json=optionalSint32" json:"optional_sint32,omitempty"` OptionalSint64 *int64 `protobuf:"zigzag64,6,opt,name=optional_sint64,json=optionalSint64" json:"optional_sint64,omitempty"` OptionalFixed32 *uint32 `protobuf:"fixed32,7,opt,name=optional_fixed32,json=optionalFixed32" json:"optional_fixed32,omitempty"` OptionalFixed64 *uint64 `protobuf:"fixed64,8,opt,name=optional_fixed64,json=optionalFixed64" json:"optional_fixed64,omitempty"` OptionalSfixed32 *int32 `protobuf:"fixed32,9,opt,name=optional_sfixed32,json=optionalSfixed32" json:"optional_sfixed32,omitempty"` OptionalSfixed64 *int64 `protobuf:"fixed64,10,opt,name=optional_sfixed64,json=optionalSfixed64" json:"optional_sfixed64,omitempty"` OptionalFloat *float32 `protobuf:"fixed32,11,opt,name=optional_float,json=optionalFloat" json:"optional_float,omitempty"` OptionalDouble *float64 `protobuf:"fixed64,12,opt,name=optional_double,json=optionalDouble" json:"optional_double,omitempty"` OptionalBool *bool `protobuf:"varint,13,opt,name=optional_bool,json=optionalBool" json:"optional_bool,omitempty"` OptionalString *string `protobuf:"bytes,14,opt,name=optional_string,json=optionalString" json:"optional_string,omitempty"` OptionalBytes []byte `protobuf:"bytes,15,opt,name=optional_bytes,json=optionalBytes" json:"optional_bytes,omitempty"` Optionalgroup *TestAllTypes_OptionalGroup `protobuf:"group,16,opt,name=OptionalGroup,json=optionalgroup" json:"optionalgroup,omitempty"` OptionalNestedMessage *TestAllTypes_NestedMessage `protobuf:"bytes,18,opt,name=optional_nested_message,json=optionalNestedMessage" json:"optional_nested_message,omitempty"` OptionalForeignMessage *ForeignMessage `protobuf:"bytes,19,opt,name=optional_foreign_message,json=optionalForeignMessage" json:"optional_foreign_message,omitempty"` OptionalImportMessage *ImportMessage `protobuf:"bytes,20,opt,name=optional_import_message,json=optionalImportMessage" json:"optional_import_message,omitempty"` OptionalNestedEnum *TestAllTypes_NestedEnum `protobuf:"varint,21,opt,name=optional_nested_enum,json=optionalNestedEnum,enum=goproto.proto.test.TestAllTypes_NestedEnum" json:"optional_nested_enum,omitempty"` OptionalForeignEnum *ForeignEnum `protobuf:"varint,22,opt,name=optional_foreign_enum,json=optionalForeignEnum,enum=goproto.proto.test.ForeignEnum" json:"optional_foreign_enum,omitempty"` OptionalImportEnum *ImportEnum `protobuf:"varint,23,opt,name=optional_import_enum,json=optionalImportEnum,enum=goproto.proto.test.ImportEnum" json:"optional_import_enum,omitempty"` RepeatedInt32 []int32 `protobuf:"varint,31,rep,name=repeated_int32,json=repeatedInt32" json:"repeated_int32,omitempty"` RepeatedInt64 []int64 `protobuf:"varint,32,rep,name=repeated_int64,json=repeatedInt64" json:"repeated_int64,omitempty"` RepeatedUint32 []uint32 `protobuf:"varint,33,rep,name=repeated_uint32,json=repeatedUint32" json:"repeated_uint32,omitempty"` RepeatedUint64 []uint64 `protobuf:"varint,34,rep,name=repeated_uint64,json=repeatedUint64" json:"repeated_uint64,omitempty"` RepeatedSint32 []int32 `protobuf:"zigzag32,35,rep,name=repeated_sint32,json=repeatedSint32" json:"repeated_sint32,omitempty"` RepeatedSint64 []int64 `protobuf:"zigzag64,36,rep,name=repeated_sint64,json=repeatedSint64" json:"repeated_sint64,omitempty"` RepeatedFixed32 []uint32 `protobuf:"fixed32,37,rep,name=repeated_fixed32,json=repeatedFixed32" json:"repeated_fixed32,omitempty"` RepeatedFixed64 []uint64 `protobuf:"fixed64,38,rep,name=repeated_fixed64,json=repeatedFixed64" json:"repeated_fixed64,omitempty"` RepeatedSfixed32 []int32 `protobuf:"fixed32,39,rep,name=repeated_sfixed32,json=repeatedSfixed32" json:"repeated_sfixed32,omitempty"` RepeatedSfixed64 []int64 `protobuf:"fixed64,40,rep,name=repeated_sfixed64,json=repeatedSfixed64" json:"repeated_sfixed64,omitempty"` RepeatedFloat []float32 `protobuf:"fixed32,41,rep,name=repeated_float,json=repeatedFloat" json:"repeated_float,omitempty"` RepeatedDouble []float64 `protobuf:"fixed64,42,rep,name=repeated_double,json=repeatedDouble" json:"repeated_double,omitempty"` RepeatedBool []bool `protobuf:"varint,43,rep,name=repeated_bool,json=repeatedBool" json:"repeated_bool,omitempty"` RepeatedString []string `protobuf:"bytes,44,rep,name=repeated_string,json=repeatedString" json:"repeated_string,omitempty"` RepeatedBytes [][]byte `protobuf:"bytes,45,rep,name=repeated_bytes,json=repeatedBytes" json:"repeated_bytes,omitempty"` Repeatedgroup []*TestAllTypes_RepeatedGroup `protobuf:"group,46,rep,name=RepeatedGroup,json=repeatedgroup" json:"repeatedgroup,omitempty"` RepeatedNestedMessage []*TestAllTypes_NestedMessage `protobuf:"bytes,48,rep,name=repeated_nested_message,json=repeatedNestedMessage" json:"repeated_nested_message,omitempty"` RepeatedForeignMessage []*ForeignMessage `protobuf:"bytes,49,rep,name=repeated_foreign_message,json=repeatedForeignMessage" json:"repeated_foreign_message,omitempty"` RepeatedImportmessage []*ImportMessage `protobuf:"bytes,50,rep,name=repeated_importmessage,json=repeatedImportmessage" json:"repeated_importmessage,omitempty"` RepeatedNestedEnum []TestAllTypes_NestedEnum `protobuf:"varint,51,rep,name=repeated_nested_enum,json=repeatedNestedEnum,enum=goproto.proto.test.TestAllTypes_NestedEnum" json:"repeated_nested_enum,omitempty"` RepeatedForeignEnum []ForeignEnum `protobuf:"varint,52,rep,name=repeated_foreign_enum,json=repeatedForeignEnum,enum=goproto.proto.test.ForeignEnum" json:"repeated_foreign_enum,omitempty"` RepeatedImportenum []ImportEnum `protobuf:"varint,53,rep,name=repeated_importenum,json=repeatedImportenum,enum=goproto.proto.test.ImportEnum" json:"repeated_importenum,omitempty"` MapInt32Int32 map[int32]int32 `protobuf:"bytes,56,rep,name=map_int32_int32,json=mapInt32Int32" json:"map_int32_int32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapInt64Int64 map[int64]int64 `protobuf:"bytes,57,rep,name=map_int64_int64,json=mapInt64Int64" json:"map_int64_int64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint32Uint32 map[uint32]uint32 `protobuf:"bytes,58,rep,name=map_uint32_uint32,json=mapUint32Uint32" json:"map_uint32_uint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapUint64Uint64 map[uint64]uint64 `protobuf:"bytes,59,rep,name=map_uint64_uint64,json=mapUint64Uint64" json:"map_uint64_uint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapSint32Sint32 map[int32]int32 `protobuf:"bytes,60,rep,name=map_sint32_sint32,json=mapSint32Sint32" json:"map_sint32_sint32,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` MapSint64Sint64 map[int64]int64 `protobuf:"bytes,61,rep,name=map_sint64_sint64,json=mapSint64Sint64" json:"map_sint64_sint64,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` MapFixed32Fixed32 map[uint32]uint32 `protobuf:"bytes,62,rep,name=map_fixed32_fixed32,json=mapFixed32Fixed32" json:"map_fixed32_fixed32,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapFixed64Fixed64 map[uint64]uint64 `protobuf:"bytes,63,rep,name=map_fixed64_fixed64,json=mapFixed64Fixed64" json:"map_fixed64_fixed64,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapSfixed32Sfixed32 map[int32]int32 `protobuf:"bytes,64,rep,name=map_sfixed32_sfixed32,json=mapSfixed32Sfixed32" json:"map_sfixed32_sfixed32,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapSfixed64Sfixed64 map[int64]int64 `protobuf:"bytes,65,rep,name=map_sfixed64_sfixed64,json=mapSfixed64Sfixed64" json:"map_sfixed64_sfixed64,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapInt32Float map[int32]float32 `protobuf:"bytes,66,rep,name=map_int32_float,json=mapInt32Float" json:"map_int32_float,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` MapInt32Double map[int32]float64 `protobuf:"bytes,67,rep,name=map_int32_double,json=mapInt32Double" json:"map_int32_double,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` MapBoolBool map[bool]bool `protobuf:"bytes,68,rep,name=map_bool_bool,json=mapBoolBool" json:"map_bool_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` MapStringString map[string]string `protobuf:"bytes,69,rep,name=map_string_string,json=mapStringString" json:"map_string_string,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapStringBytes map[string][]byte `protobuf:"bytes,70,rep,name=map_string_bytes,json=mapStringBytes" json:"map_string_bytes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapStringNestedMessage map[string]*TestAllTypes_NestedMessage `protobuf:"bytes,71,rep,name=map_string_nested_message,json=mapStringNestedMessage" json:"map_string_nested_message,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MapStringNestedEnum map[string]TestAllTypes_NestedEnum `protobuf:"bytes,73,rep,name=map_string_nested_enum,json=mapStringNestedEnum" json:"map_string_nested_enum,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=goproto.proto.test.TestAllTypes_NestedEnum"` // Singular with defaults DefaultInt32 *int32 `protobuf:"varint,81,opt,name=default_int32,json=defaultInt32,def=81" json:"default_int32,omitempty"` DefaultInt64 *int64 `protobuf:"varint,82,opt,name=default_int64,json=defaultInt64,def=82" json:"default_int64,omitempty"` DefaultUint32 *uint32 `protobuf:"varint,83,opt,name=default_uint32,json=defaultUint32,def=83" json:"default_uint32,omitempty"` DefaultUint64 *uint64 `protobuf:"varint,84,opt,name=default_uint64,json=defaultUint64,def=84" json:"default_uint64,omitempty"` DefaultSint32 *int32 `protobuf:"zigzag32,85,opt,name=default_sint32,json=defaultSint32,def=-85" json:"default_sint32,omitempty"` DefaultSint64 *int64 `protobuf:"zigzag64,86,opt,name=default_sint64,json=defaultSint64,def=86" json:"default_sint64,omitempty"` DefaultFixed32 *uint32 `protobuf:"fixed32,87,opt,name=default_fixed32,json=defaultFixed32,def=87" json:"default_fixed32,omitempty"` DefaultFixed64 *uint64 `protobuf:"fixed64,88,opt,name=default_fixed64,json=defaultFixed64,def=88" json:"default_fixed64,omitempty"` DefaultSfixed32 *int32 `protobuf:"fixed32,89,opt,name=default_sfixed32,json=defaultSfixed32,def=89" json:"default_sfixed32,omitempty"` DefaultSfixed64 *int64 `protobuf:"fixed64,80,opt,name=default_sfixed64,json=defaultSfixed64,def=-90" json:"default_sfixed64,omitempty"` DefaultFloat *float32 `protobuf:"fixed32,91,opt,name=default_float,json=defaultFloat,def=91.5" json:"default_float,omitempty"` DefaultDouble *float64 `protobuf:"fixed64,92,opt,name=default_double,json=defaultDouble,def=92000" json:"default_double,omitempty"` DefaultBool *bool `protobuf:"varint,93,opt,name=default_bool,json=defaultBool,def=1" json:"default_bool,omitempty"` DefaultString *string `protobuf:"bytes,94,opt,name=default_string,json=defaultString,def=hello" json:"default_string,omitempty"` DefaultBytes []byte `protobuf:"bytes,95,opt,name=default_bytes,json=defaultBytes,def=world" json:"default_bytes,omitempty"` DefaultNestedEnum *TestAllTypes_NestedEnum `protobuf:"varint,96,opt,name=default_nested_enum,json=defaultNestedEnum,enum=goproto.proto.test.TestAllTypes_NestedEnum,def=1" json:"default_nested_enum,omitempty"` DefaultForeignEnum *ForeignEnum `protobuf:"varint,97,opt,name=default_foreign_enum,json=defaultForeignEnum,enum=goproto.proto.test.ForeignEnum,def=5" json:"default_foreign_enum,omitempty"` // Types that are assignable to OneofField: // *TestAllTypes_OneofUint32 // *TestAllTypes_OneofNestedMessage // *TestAllTypes_OneofString // *TestAllTypes_OneofBytes // *TestAllTypes_OneofBool // *TestAllTypes_OneofUint64 // *TestAllTypes_OneofFloat // *TestAllTypes_OneofDouble // *TestAllTypes_OneofEnum // *TestAllTypes_Oneofgroup OneofField isTestAllTypes_OneofField `protobuf_oneof:"oneof_field"` // A oneof with exactly one field. // // Types that are assignable to OneofOptional: // *TestAllTypes_OneofOptionalUint32 OneofOptional isTestAllTypes_OneofOptional `protobuf_oneof:"oneof_optional"` } // Default values for TestAllTypes fields. const ( Default_TestAllTypes_DefaultInt32 = int32(81) Default_TestAllTypes_DefaultInt64 = int64(82) Default_TestAllTypes_DefaultUint32 = uint32(83) Default_TestAllTypes_DefaultUint64 = uint64(84) Default_TestAllTypes_DefaultSint32 = int32(-85) Default_TestAllTypes_DefaultSint64 = int64(86) Default_TestAllTypes_DefaultFixed32 = uint32(87) Default_TestAllTypes_DefaultFixed64 = uint64(88) Default_TestAllTypes_DefaultSfixed32 = int32(89) Default_TestAllTypes_DefaultSfixed64 = int64(-90) Default_TestAllTypes_DefaultFloat = float32(91.5) Default_TestAllTypes_DefaultDouble = float64(92000) Default_TestAllTypes_DefaultBool = bool(true) Default_TestAllTypes_DefaultString = string("hello") Default_TestAllTypes_DefaultNestedEnum = TestAllTypes_BAR Default_TestAllTypes_DefaultForeignEnum = ForeignEnum_FOREIGN_BAR ) // Default values for TestAllTypes fields. var ( Default_TestAllTypes_DefaultBytes = []byte("world") ) func (x *TestAllTypes) Reset() { *x = TestAllTypes{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestAllTypes) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestAllTypes) ProtoMessage() {} func (x *TestAllTypes) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestAllTypes.ProtoReflect.Descriptor instead. func (*TestAllTypes) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{0} } func (x *TestAllTypes) GetOptionalInt32() int32 { if x != nil && x.OptionalInt32 != nil { return *x.OptionalInt32 } return 0 } func (x *TestAllTypes) GetOptionalInt64() int64 { if x != nil && x.OptionalInt64 != nil { return *x.OptionalInt64 } return 0 } func (x *TestAllTypes) GetOptionalUint32() uint32 { if x != nil && x.OptionalUint32 != nil { return *x.OptionalUint32 } return 0 } func (x *TestAllTypes) GetOptionalUint64() uint64 { if x != nil && x.OptionalUint64 != nil { return *x.OptionalUint64 } return 0 } func (x *TestAllTypes) GetOptionalSint32() int32 { if x != nil && x.OptionalSint32 != nil { return *x.OptionalSint32 } return 0 } func (x *TestAllTypes) GetOptionalSint64() int64 { if x != nil && x.OptionalSint64 != nil { return *x.OptionalSint64 } return 0 } func (x *TestAllTypes) GetOptionalFixed32() uint32 { if x != nil && x.OptionalFixed32 != nil { return *x.OptionalFixed32 } return 0 } func (x *TestAllTypes) GetOptionalFixed64() uint64 { if x != nil && x.OptionalFixed64 != nil { return *x.OptionalFixed64 } return 0 } func (x *TestAllTypes) GetOptionalSfixed32() int32 { if x != nil && x.OptionalSfixed32 != nil { return *x.OptionalSfixed32 } return 0 } func (x *TestAllTypes) GetOptionalSfixed64() int64 { if x != nil && x.OptionalSfixed64 != nil { return *x.OptionalSfixed64 } return 0 } func (x *TestAllTypes) GetOptionalFloat() float32 { if x != nil && x.OptionalFloat != nil { return *x.OptionalFloat } return 0 } func (x *TestAllTypes) GetOptionalDouble() float64 { if x != nil && x.OptionalDouble != nil { return *x.OptionalDouble } return 0 } func (x *TestAllTypes) GetOptionalBool() bool { if x != nil && x.OptionalBool != nil { return *x.OptionalBool } return false } func (x *TestAllTypes) GetOptionalString() string { if x != nil && x.OptionalString != nil { return *x.OptionalString } return "" } func (x *TestAllTypes) GetOptionalBytes() []byte { if x != nil { return x.OptionalBytes } return nil } func (x *TestAllTypes) GetOptionalgroup() *TestAllTypes_OptionalGroup { if x != nil { return x.Optionalgroup } return nil } func (x *TestAllTypes) GetOptionalNestedMessage() *TestAllTypes_NestedMessage { if x != nil { return x.OptionalNestedMessage } return nil } func (x *TestAllTypes) GetOptionalForeignMessage() *ForeignMessage { if x != nil { return x.OptionalForeignMessage } return nil } func (x *TestAllTypes) GetOptionalImportMessage() *ImportMessage { if x != nil { return x.OptionalImportMessage } return nil } func (x *TestAllTypes) GetOptionalNestedEnum() TestAllTypes_NestedEnum { if x != nil && x.OptionalNestedEnum != nil { return *x.OptionalNestedEnum } return TestAllTypes_FOO } func (x *TestAllTypes) GetOptionalForeignEnum() ForeignEnum { if x != nil && x.OptionalForeignEnum != nil { return *x.OptionalForeignEnum } return ForeignEnum_FOREIGN_FOO } func (x *TestAllTypes) GetOptionalImportEnum() ImportEnum { if x != nil && x.OptionalImportEnum != nil { return *x.OptionalImportEnum } return ImportEnum_IMPORT_ZERO } func (x *TestAllTypes) GetRepeatedInt32() []int32 { if x != nil { return x.RepeatedInt32 } return nil } func (x *TestAllTypes) GetRepeatedInt64() []int64 { if x != nil { return x.RepeatedInt64 } return nil } func (x *TestAllTypes) GetRepeatedUint32() []uint32 { if x != nil { return x.RepeatedUint32 } return nil } func (x *TestAllTypes) GetRepeatedUint64() []uint64 { if x != nil { return x.RepeatedUint64 } return nil } func (x *TestAllTypes) GetRepeatedSint32() []int32 { if x != nil { return x.RepeatedSint32 } return nil } func (x *TestAllTypes) GetRepeatedSint64() []int64 { if x != nil { return x.RepeatedSint64 } return nil } func (x *TestAllTypes) GetRepeatedFixed32() []uint32 { if x != nil { return x.RepeatedFixed32 } return nil } func (x *TestAllTypes) GetRepeatedFixed64() []uint64 { if x != nil { return x.RepeatedFixed64 } return nil } func (x *TestAllTypes) GetRepeatedSfixed32() []int32 { if x != nil { return x.RepeatedSfixed32 } return nil } func (x *TestAllTypes) GetRepeatedSfixed64() []int64 { if x != nil { return x.RepeatedSfixed64 } return nil } func (x *TestAllTypes) GetRepeatedFloat() []float32 { if x != nil { return x.RepeatedFloat } return nil } func (x *TestAllTypes) GetRepeatedDouble() []float64 { if x != nil { return x.RepeatedDouble } return nil } func (x *TestAllTypes) GetRepeatedBool() []bool { if x != nil { return x.RepeatedBool } return nil } func (x *TestAllTypes) GetRepeatedString() []string { if x != nil { return x.RepeatedString } return nil } func (x *TestAllTypes) GetRepeatedBytes() [][]byte { if x != nil { return x.RepeatedBytes } return nil } func (x *TestAllTypes) GetRepeatedgroup() []*TestAllTypes_RepeatedGroup { if x != nil { return x.Repeatedgroup } return nil } func (x *TestAllTypes) GetRepeatedNestedMessage() []*TestAllTypes_NestedMessage { if x != nil { return x.RepeatedNestedMessage } return nil } func (x *TestAllTypes) GetRepeatedForeignMessage() []*ForeignMessage { if x != nil { return x.RepeatedForeignMessage } return nil } func (x *TestAllTypes) GetRepeatedImportmessage() []*ImportMessage { if x != nil { return x.RepeatedImportmessage } return nil } func (x *TestAllTypes) GetRepeatedNestedEnum() []TestAllTypes_NestedEnum { if x != nil { return x.RepeatedNestedEnum } return nil } func (x *TestAllTypes) GetRepeatedForeignEnum() []ForeignEnum { if x != nil { return x.RepeatedForeignEnum } return nil } func (x *TestAllTypes) GetRepeatedImportenum() []ImportEnum { if x != nil { return x.RepeatedImportenum } return nil } func (x *TestAllTypes) GetMapInt32Int32() map[int32]int32 { if x != nil { return x.MapInt32Int32 } return nil } func (x *TestAllTypes) GetMapInt64Int64() map[int64]int64 { if x != nil { return x.MapInt64Int64 } return nil } func (x *TestAllTypes) GetMapUint32Uint32() map[uint32]uint32 { if x != nil { return x.MapUint32Uint32 } return nil } func (x *TestAllTypes) GetMapUint64Uint64() map[uint64]uint64 { if x != nil { return x.MapUint64Uint64 } return nil } func (x *TestAllTypes) GetMapSint32Sint32() map[int32]int32 { if x != nil { return x.MapSint32Sint32 } return nil } func (x *TestAllTypes) GetMapSint64Sint64() map[int64]int64 { if x != nil { return x.MapSint64Sint64 } return nil } func (x *TestAllTypes) GetMapFixed32Fixed32() map[uint32]uint32 { if x != nil { return x.MapFixed32Fixed32 } return nil } func (x *TestAllTypes) GetMapFixed64Fixed64() map[uint64]uint64 { if x != nil { return x.MapFixed64Fixed64 } return nil } func (x *TestAllTypes) GetMapSfixed32Sfixed32() map[int32]int32 { if x != nil { return x.MapSfixed32Sfixed32 } return nil } func (x *TestAllTypes) GetMapSfixed64Sfixed64() map[int64]int64 { if x != nil { return x.MapSfixed64Sfixed64 } return nil } func (x *TestAllTypes) GetMapInt32Float() map[int32]float32 { if x != nil { return x.MapInt32Float } return nil } func (x *TestAllTypes) GetMapInt32Double() map[int32]float64 { if x != nil { return x.MapInt32Double } return nil } func (x *TestAllTypes) GetMapBoolBool() map[bool]bool { if x != nil { return x.MapBoolBool } return nil } func (x *TestAllTypes) GetMapStringString() map[string]string { if x != nil { return x.MapStringString } return nil } func (x *TestAllTypes) GetMapStringBytes() map[string][]byte { if x != nil { return x.MapStringBytes } return nil } func (x *TestAllTypes) GetMapStringNestedMessage() map[string]*TestAllTypes_NestedMessage { if x != nil { return x.MapStringNestedMessage } return nil } func (x *TestAllTypes) GetMapStringNestedEnum() map[string]TestAllTypes_NestedEnum { if x != nil { return x.MapStringNestedEnum } return nil } func (x *TestAllTypes) GetDefaultInt32() int32 { if x != nil && x.DefaultInt32 != nil { return *x.DefaultInt32 } return Default_TestAllTypes_DefaultInt32 } func (x *TestAllTypes) GetDefaultInt64() int64 { if x != nil && x.DefaultInt64 != nil { return *x.DefaultInt64 } return Default_TestAllTypes_DefaultInt64 } func (x *TestAllTypes) GetDefaultUint32() uint32 { if x != nil && x.DefaultUint32 != nil { return *x.DefaultUint32 } return Default_TestAllTypes_DefaultUint32 } func (x *TestAllTypes) GetDefaultUint64() uint64 { if x != nil && x.DefaultUint64 != nil { return *x.DefaultUint64 } return Default_TestAllTypes_DefaultUint64 } func (x *TestAllTypes) GetDefaultSint32() int32 { if x != nil && x.DefaultSint32 != nil { return *x.DefaultSint32 } return Default_TestAllTypes_DefaultSint32 } func (x *TestAllTypes) GetDefaultSint64() int64 { if x != nil && x.DefaultSint64 != nil { return *x.DefaultSint64 } return Default_TestAllTypes_DefaultSint64 } func (x *TestAllTypes) GetDefaultFixed32() uint32 { if x != nil && x.DefaultFixed32 != nil { return *x.DefaultFixed32 } return Default_TestAllTypes_DefaultFixed32 } func (x *TestAllTypes) GetDefaultFixed64() uint64 { if x != nil && x.DefaultFixed64 != nil { return *x.DefaultFixed64 } return Default_TestAllTypes_DefaultFixed64 } func (x *TestAllTypes) GetDefaultSfixed32() int32 { if x != nil && x.DefaultSfixed32 != nil { return *x.DefaultSfixed32 } return Default_TestAllTypes_DefaultSfixed32 } func (x *TestAllTypes) GetDefaultSfixed64() int64 { if x != nil && x.DefaultSfixed64 != nil { return *x.DefaultSfixed64 } return Default_TestAllTypes_DefaultSfixed64 } func (x *TestAllTypes) GetDefaultFloat() float32 { if x != nil && x.DefaultFloat != nil { return *x.DefaultFloat } return Default_TestAllTypes_DefaultFloat } func (x *TestAllTypes) GetDefaultDouble() float64 { if x != nil && x.DefaultDouble != nil { return *x.DefaultDouble } return Default_TestAllTypes_DefaultDouble } func (x *TestAllTypes) GetDefaultBool() bool { if x != nil && x.DefaultBool != nil { return *x.DefaultBool } return Default_TestAllTypes_DefaultBool } func (x *TestAllTypes) GetDefaultString() string { if x != nil && x.DefaultString != nil { return *x.DefaultString } return Default_TestAllTypes_DefaultString } func (x *TestAllTypes) GetDefaultBytes() []byte { if x != nil && x.DefaultBytes != nil { return x.DefaultBytes } return append([]byte(nil), Default_TestAllTypes_DefaultBytes...) } func (x *TestAllTypes) GetDefaultNestedEnum() TestAllTypes_NestedEnum { if x != nil && x.DefaultNestedEnum != nil { return *x.DefaultNestedEnum } return Default_TestAllTypes_DefaultNestedEnum } func (x *TestAllTypes) GetDefaultForeignEnum() ForeignEnum { if x != nil && x.DefaultForeignEnum != nil { return *x.DefaultForeignEnum } return Default_TestAllTypes_DefaultForeignEnum } func (m *TestAllTypes) GetOneofField() isTestAllTypes_OneofField { if m != nil { return m.OneofField } return nil } func (x *TestAllTypes) GetOneofUint32() uint32 { if x, ok := x.GetOneofField().(*TestAllTypes_OneofUint32); ok { return x.OneofUint32 } return 0 } func (x *TestAllTypes) GetOneofNestedMessage() *TestAllTypes_NestedMessage { if x, ok := x.GetOneofField().(*TestAllTypes_OneofNestedMessage); ok { return x.OneofNestedMessage } return nil } func (x *TestAllTypes) GetOneofString() string { if x, ok := x.GetOneofField().(*TestAllTypes_OneofString); ok { return x.OneofString } return "" } func (x *TestAllTypes) GetOneofBytes() []byte { if x, ok := x.GetOneofField().(*TestAllTypes_OneofBytes); ok { return x.OneofBytes } return nil } func (x *TestAllTypes) GetOneofBool() bool { if x, ok := x.GetOneofField().(*TestAllTypes_OneofBool); ok { return x.OneofBool } return false } func (x *TestAllTypes) GetOneofUint64() uint64 { if x, ok := x.GetOneofField().(*TestAllTypes_OneofUint64); ok { return x.OneofUint64 } return 0 } func (x *TestAllTypes) GetOneofFloat() float32 { if x, ok := x.GetOneofField().(*TestAllTypes_OneofFloat); ok { return x.OneofFloat } return 0 } func (x *TestAllTypes) GetOneofDouble() float64 { if x, ok := x.GetOneofField().(*TestAllTypes_OneofDouble); ok { return x.OneofDouble } return 0 } func (x *TestAllTypes) GetOneofEnum() TestAllTypes_NestedEnum { if x, ok := x.GetOneofField().(*TestAllTypes_OneofEnum); ok { return x.OneofEnum } return TestAllTypes_FOO } func (x *TestAllTypes) GetOneofgroup() *TestAllTypes_OneofGroup { if x, ok := x.GetOneofField().(*TestAllTypes_Oneofgroup); ok { return x.Oneofgroup } return nil } func (m *TestAllTypes) GetOneofOptional() isTestAllTypes_OneofOptional { if m != nil { return m.OneofOptional } return nil } func (x *TestAllTypes) GetOneofOptionalUint32() uint32 { if x, ok := x.GetOneofOptional().(*TestAllTypes_OneofOptionalUint32); ok { return x.OneofOptionalUint32 } return 0 } type isTestAllTypes_OneofField interface { isTestAllTypes_OneofField() } type TestAllTypes_OneofUint32 struct { OneofUint32 uint32 `protobuf:"varint,111,opt,name=oneof_uint32,json=oneofUint32,oneof"` } type TestAllTypes_OneofNestedMessage struct { OneofNestedMessage *TestAllTypes_NestedMessage `protobuf:"bytes,112,opt,name=oneof_nested_message,json=oneofNestedMessage,oneof"` } type TestAllTypes_OneofString struct { OneofString string `protobuf:"bytes,113,opt,name=oneof_string,json=oneofString,oneof"` } type TestAllTypes_OneofBytes struct { OneofBytes []byte `protobuf:"bytes,114,opt,name=oneof_bytes,json=oneofBytes,oneof"` } type TestAllTypes_OneofBool struct { OneofBool bool `protobuf:"varint,115,opt,name=oneof_bool,json=oneofBool,oneof"` } type TestAllTypes_OneofUint64 struct { OneofUint64 uint64 `protobuf:"varint,116,opt,name=oneof_uint64,json=oneofUint64,oneof"` } type TestAllTypes_OneofFloat struct { OneofFloat float32 `protobuf:"fixed32,117,opt,name=oneof_float,json=oneofFloat,oneof"` } type TestAllTypes_OneofDouble struct { OneofDouble float64 `protobuf:"fixed64,118,opt,name=oneof_double,json=oneofDouble,oneof"` } type TestAllTypes_OneofEnum struct { OneofEnum TestAllTypes_NestedEnum `protobuf:"varint,119,opt,name=oneof_enum,json=oneofEnum,enum=goproto.proto.test.TestAllTypes_NestedEnum,oneof"` } type TestAllTypes_Oneofgroup struct { Oneofgroup *TestAllTypes_OneofGroup `protobuf:"group,121,opt,name=OneofGroup,json=oneofgroup,oneof"` } func (*TestAllTypes_OneofUint32) isTestAllTypes_OneofField() {} func (*TestAllTypes_OneofNestedMessage) isTestAllTypes_OneofField() {} func (*TestAllTypes_OneofString) isTestAllTypes_OneofField() {} func (*TestAllTypes_OneofBytes) isTestAllTypes_OneofField() {} func (*TestAllTypes_OneofBool) isTestAllTypes_OneofField() {} func (*TestAllTypes_OneofUint64) isTestAllTypes_OneofField() {} func (*TestAllTypes_OneofFloat) isTestAllTypes_OneofField() {} func (*TestAllTypes_OneofDouble) isTestAllTypes_OneofField() {} func (*TestAllTypes_OneofEnum) isTestAllTypes_OneofField() {} func (*TestAllTypes_Oneofgroup) isTestAllTypes_OneofField() {} type isTestAllTypes_OneofOptional interface { isTestAllTypes_OneofOptional() } type TestAllTypes_OneofOptionalUint32 struct { OneofOptionalUint32 uint32 `protobuf:"varint,120,opt,name=oneof_optional_uint32,json=oneofOptionalUint32,oneof"` } func (*TestAllTypes_OneofOptionalUint32) isTestAllTypes_OneofOptional() {} // Deprecated: Do not use. type TestDeprecatedMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Deprecated: Do not use. DeprecatedInt32 *int32 `protobuf:"varint,1,opt,name=deprecated_int32,json=deprecatedInt32" json:"deprecated_int32,omitempty"` // Types that are assignable to DeprecatedOneof: // *TestDeprecatedMessage_DeprecatedOneofField DeprecatedOneof isTestDeprecatedMessage_DeprecatedOneof `protobuf_oneof:"deprecated_oneof"` } func (x *TestDeprecatedMessage) Reset() { *x = TestDeprecatedMessage{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestDeprecatedMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestDeprecatedMessage) ProtoMessage() {} func (x *TestDeprecatedMessage) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestDeprecatedMessage.ProtoReflect.Descriptor instead. func (*TestDeprecatedMessage) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{1} } // Deprecated: Do not use. func (x *TestDeprecatedMessage) GetDeprecatedInt32() int32 { if x != nil && x.DeprecatedInt32 != nil { return *x.DeprecatedInt32 } return 0 } func (m *TestDeprecatedMessage) GetDeprecatedOneof() isTestDeprecatedMessage_DeprecatedOneof { if m != nil { return m.DeprecatedOneof } return nil } // Deprecated: Do not use. func (x *TestDeprecatedMessage) GetDeprecatedOneofField() int32 { if x, ok := x.GetDeprecatedOneof().(*TestDeprecatedMessage_DeprecatedOneofField); ok { return x.DeprecatedOneofField } return 0 } type isTestDeprecatedMessage_DeprecatedOneof interface { isTestDeprecatedMessage_DeprecatedOneof() } type TestDeprecatedMessage_DeprecatedOneofField struct { // Deprecated: Do not use. DeprecatedOneofField int32 `protobuf:"varint,2,opt,name=deprecated_oneof_field,json=deprecatedOneofField,oneof"` } func (*TestDeprecatedMessage_DeprecatedOneofField) isTestDeprecatedMessage_DeprecatedOneof() {} type ForeignMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields C *int32 `protobuf:"varint,1,opt,name=c" json:"c,omitempty"` D *int32 `protobuf:"varint,2,opt,name=d" json:"d,omitempty"` } func (x *ForeignMessage) Reset() { *x = ForeignMessage{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ForeignMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*ForeignMessage) ProtoMessage() {} func (x *ForeignMessage) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ForeignMessage.ProtoReflect.Descriptor instead. func (*ForeignMessage) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{2} } func (x *ForeignMessage) GetC() int32 { if x != nil && x.C != nil { return *x.C } return 0 } func (x *ForeignMessage) GetD() int32 { if x != nil && x.D != nil { return *x.D } return 0 } type TestReservedFields struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *TestReservedFields) Reset() { *x = TestReservedFields{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestReservedFields) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestReservedFields) ProtoMessage() {} func (x *TestReservedFields) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestReservedFields.ProtoReflect.Descriptor instead. func (*TestReservedFields) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{3} } type TestAllExtensions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields } func (x *TestAllExtensions) Reset() { *x = TestAllExtensions{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestAllExtensions) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestAllExtensions) ProtoMessage() {} func (x *TestAllExtensions) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestAllExtensions.ProtoReflect.Descriptor instead. func (*TestAllExtensions) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{4} } type OptionalGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields A *int32 `protobuf:"varint,17,opt,name=a" json:"a,omitempty"` SameFieldNumber *int32 `protobuf:"varint,16,opt,name=same_field_number,json=sameFieldNumber" json:"same_field_number,omitempty"` OptionalNestedMessage *TestAllExtensions_NestedMessage `protobuf:"bytes,1000,opt,name=optional_nested_message,json=optionalNestedMessage" json:"optional_nested_message,omitempty"` } func (x *OptionalGroup) Reset() { *x = OptionalGroup{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OptionalGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*OptionalGroup) ProtoMessage() {} func (x *OptionalGroup) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use OptionalGroup.ProtoReflect.Descriptor instead. func (*OptionalGroup) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{5} } func (x *OptionalGroup) GetA() int32 { if x != nil && x.A != nil { return *x.A } return 0 } func (x *OptionalGroup) GetSameFieldNumber() int32 { if x != nil && x.SameFieldNumber != nil { return *x.SameFieldNumber } return 0 } func (x *OptionalGroup) GetOptionalNestedMessage() *TestAllExtensions_NestedMessage { if x != nil { return x.OptionalNestedMessage } return nil } type RepeatedGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields A *int32 `protobuf:"varint,47,opt,name=a" json:"a,omitempty"` OptionalNestedMessage *TestAllExtensions_NestedMessage `protobuf:"bytes,1001,opt,name=optional_nested_message,json=optionalNestedMessage" json:"optional_nested_message,omitempty"` } func (x *RepeatedGroup) Reset() { *x = RepeatedGroup{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RepeatedGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*RepeatedGroup) ProtoMessage() {} func (x *RepeatedGroup) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RepeatedGroup.ProtoReflect.Descriptor instead. func (*RepeatedGroup) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{6} } func (x *RepeatedGroup) GetA() int32 { if x != nil && x.A != nil { return *x.A } return 0 } func (x *RepeatedGroup) GetOptionalNestedMessage() *TestAllExtensions_NestedMessage { if x != nil { return x.OptionalNestedMessage } return nil } type TestNestedExtension struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *TestNestedExtension) Reset() { *x = TestNestedExtension{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestNestedExtension) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestNestedExtension) ProtoMessage() {} func (x *TestNestedExtension) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestNestedExtension.ProtoReflect.Descriptor instead. func (*TestNestedExtension) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{7} } type TestRequired struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RequiredField *int32 `protobuf:"varint,1,req,name=required_field,json=requiredField" json:"required_field,omitempty"` } func (x *TestRequired) Reset() { *x = TestRequired{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestRequired) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestRequired) ProtoMessage() {} func (x *TestRequired) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestRequired.ProtoReflect.Descriptor instead. func (*TestRequired) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{8} } func (x *TestRequired) GetRequiredField() int32 { if x != nil && x.RequiredField != nil { return *x.RequiredField } return 0 } type TestRequiredForeign struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OptionalMessage *TestRequired `protobuf:"bytes,1,opt,name=optional_message,json=optionalMessage" json:"optional_message,omitempty"` RepeatedMessage []*TestRequired `protobuf:"bytes,2,rep,name=repeated_message,json=repeatedMessage" json:"repeated_message,omitempty"` MapMessage map[int32]*TestRequired `protobuf:"bytes,3,rep,name=map_message,json=mapMessage" json:"map_message,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // Types that are assignable to OneofField: // *TestRequiredForeign_OneofMessage OneofField isTestRequiredForeign_OneofField `protobuf_oneof:"oneof_field"` } func (x *TestRequiredForeign) Reset() { *x = TestRequiredForeign{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestRequiredForeign) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestRequiredForeign) ProtoMessage() {} func (x *TestRequiredForeign) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestRequiredForeign.ProtoReflect.Descriptor instead. func (*TestRequiredForeign) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{9} } func (x *TestRequiredForeign) GetOptionalMessage() *TestRequired { if x != nil { return x.OptionalMessage } return nil } func (x *TestRequiredForeign) GetRepeatedMessage() []*TestRequired { if x != nil { return x.RepeatedMessage } return nil } func (x *TestRequiredForeign) GetMapMessage() map[int32]*TestRequired { if x != nil { return x.MapMessage } return nil } func (m *TestRequiredForeign) GetOneofField() isTestRequiredForeign_OneofField { if m != nil { return m.OneofField } return nil } func (x *TestRequiredForeign) GetOneofMessage() *TestRequired { if x, ok := x.GetOneofField().(*TestRequiredForeign_OneofMessage); ok { return x.OneofMessage } return nil } type isTestRequiredForeign_OneofField interface { isTestRequiredForeign_OneofField() } type TestRequiredForeign_OneofMessage struct { OneofMessage *TestRequired `protobuf:"bytes,4,opt,name=oneof_message,json=oneofMessage,oneof"` } func (*TestRequiredForeign_OneofMessage) isTestRequiredForeign_OneofField() {} type TestRequiredGroupFields struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Optionalgroup *TestRequiredGroupFields_OptionalGroup `protobuf:"group,1,opt,name=OptionalGroup,json=optionalgroup" json:"optionalgroup,omitempty"` Repeatedgroup []*TestRequiredGroupFields_RepeatedGroup `protobuf:"group,3,rep,name=RepeatedGroup,json=repeatedgroup" json:"repeatedgroup,omitempty"` } func (x *TestRequiredGroupFields) Reset() { *x = TestRequiredGroupFields{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestRequiredGroupFields) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestRequiredGroupFields) ProtoMessage() {} func (x *TestRequiredGroupFields) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestRequiredGroupFields.ProtoReflect.Descriptor instead. func (*TestRequiredGroupFields) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{10} } func (x *TestRequiredGroupFields) GetOptionalgroup() *TestRequiredGroupFields_OptionalGroup { if x != nil { return x.Optionalgroup } return nil } func (x *TestRequiredGroupFields) GetRepeatedgroup() []*TestRequiredGroupFields_RepeatedGroup { if x != nil { return x.Repeatedgroup } return nil } type TestWeak struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache weakFields protoimpl.WeakFields unknownFields protoimpl.UnknownFields XXX_weak_WeakMessage1 struct{} `protobuf:"bytes,1,opt,name=weak_message1,json=weakMessage1,weak=goproto.proto.test.weak.WeakImportMessage1" json:"weak_message1,omitempty"` XXX_weak_WeakMessage2 struct{} `protobuf:"bytes,2,opt,name=weak_message2,json=weakMessage2,weak=goproto.proto.test.weak.WeakImportMessage2" json:"weak_message2,omitempty"` } func (x *TestWeak) Reset() { *x = TestWeak{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestWeak) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestWeak) ProtoMessage() {} func (x *TestWeak) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestWeak.ProtoReflect.Descriptor instead. func (*TestWeak) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{11} } func (x *TestWeak) GetWeakMessage1() proto.Message { var w protoimpl.WeakFields if x != nil { w = x.weakFields } return protoimpl.X.GetWeak(w, 1, "goproto.proto.test.weak.WeakImportMessage1") } func (x *TestWeak) GetWeakMessage2() proto.Message { var w protoimpl.WeakFields if x != nil { w = x.weakFields } return protoimpl.X.GetWeak(w, 2, "goproto.proto.test.weak.WeakImportMessage2") } func (x *TestWeak) SetWeakMessage1(v proto.Message) { var w *protoimpl.WeakFields if x != nil { w = &x.weakFields } protoimpl.X.SetWeak(w, 1, "goproto.proto.test.weak.WeakImportMessage1", v) } func (x *TestWeak) SetWeakMessage2(v proto.Message) { var w *protoimpl.WeakFields if x != nil { w = &x.weakFields } protoimpl.X.SetWeak(w, 2, "goproto.proto.test.weak.WeakImportMessage2", v) } type TestPackedTypes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PackedInt32 []int32 `protobuf:"varint,90,rep,packed,name=packed_int32,json=packedInt32" json:"packed_int32,omitempty"` PackedInt64 []int64 `protobuf:"varint,91,rep,packed,name=packed_int64,json=packedInt64" json:"packed_int64,omitempty"` PackedUint32 []uint32 `protobuf:"varint,92,rep,packed,name=packed_uint32,json=packedUint32" json:"packed_uint32,omitempty"` PackedUint64 []uint64 `protobuf:"varint,93,rep,packed,name=packed_uint64,json=packedUint64" json:"packed_uint64,omitempty"` PackedSint32 []int32 `protobuf:"zigzag32,94,rep,packed,name=packed_sint32,json=packedSint32" json:"packed_sint32,omitempty"` PackedSint64 []int64 `protobuf:"zigzag64,95,rep,packed,name=packed_sint64,json=packedSint64" json:"packed_sint64,omitempty"` PackedFixed32 []uint32 `protobuf:"fixed32,96,rep,packed,name=packed_fixed32,json=packedFixed32" json:"packed_fixed32,omitempty"` PackedFixed64 []uint64 `protobuf:"fixed64,97,rep,packed,name=packed_fixed64,json=packedFixed64" json:"packed_fixed64,omitempty"` PackedSfixed32 []int32 `protobuf:"fixed32,98,rep,packed,name=packed_sfixed32,json=packedSfixed32" json:"packed_sfixed32,omitempty"` PackedSfixed64 []int64 `protobuf:"fixed64,99,rep,packed,name=packed_sfixed64,json=packedSfixed64" json:"packed_sfixed64,omitempty"` PackedFloat []float32 `protobuf:"fixed32,100,rep,packed,name=packed_float,json=packedFloat" json:"packed_float,omitempty"` PackedDouble []float64 `protobuf:"fixed64,101,rep,packed,name=packed_double,json=packedDouble" json:"packed_double,omitempty"` PackedBool []bool `protobuf:"varint,102,rep,packed,name=packed_bool,json=packedBool" json:"packed_bool,omitempty"` PackedEnum []ForeignEnum `protobuf:"varint,103,rep,packed,name=packed_enum,json=packedEnum,enum=goproto.proto.test.ForeignEnum" json:"packed_enum,omitempty"` } func (x *TestPackedTypes) Reset() { *x = TestPackedTypes{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestPackedTypes) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestPackedTypes) ProtoMessage() {} func (x *TestPackedTypes) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestPackedTypes.ProtoReflect.Descriptor instead. func (*TestPackedTypes) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{12} } func (x *TestPackedTypes) GetPackedInt32() []int32 { if x != nil { return x.PackedInt32 } return nil } func (x *TestPackedTypes) GetPackedInt64() []int64 { if x != nil { return x.PackedInt64 } return nil } func (x *TestPackedTypes) GetPackedUint32() []uint32 { if x != nil { return x.PackedUint32 } return nil } func (x *TestPackedTypes) GetPackedUint64() []uint64 { if x != nil { return x.PackedUint64 } return nil } func (x *TestPackedTypes) GetPackedSint32() []int32 { if x != nil { return x.PackedSint32 } return nil } func (x *TestPackedTypes) GetPackedSint64() []int64 { if x != nil { return x.PackedSint64 } return nil } func (x *TestPackedTypes) GetPackedFixed32() []uint32 { if x != nil { return x.PackedFixed32 } return nil } func (x *TestPackedTypes) GetPackedFixed64() []uint64 { if x != nil { return x.PackedFixed64 } return nil } func (x *TestPackedTypes) GetPackedSfixed32() []int32 { if x != nil { return x.PackedSfixed32 } return nil } func (x *TestPackedTypes) GetPackedSfixed64() []int64 { if x != nil { return x.PackedSfixed64 } return nil } func (x *TestPackedTypes) GetPackedFloat() []float32 { if x != nil { return x.PackedFloat } return nil } func (x *TestPackedTypes) GetPackedDouble() []float64 { if x != nil { return x.PackedDouble } return nil } func (x *TestPackedTypes) GetPackedBool() []bool { if x != nil { return x.PackedBool } return nil } func (x *TestPackedTypes) GetPackedEnum() []ForeignEnum { if x != nil { return x.PackedEnum } return nil } type TestUnpackedTypes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UnpackedInt32 []int32 `protobuf:"varint,90,rep,name=unpacked_int32,json=unpackedInt32" json:"unpacked_int32,omitempty"` UnpackedInt64 []int64 `protobuf:"varint,91,rep,name=unpacked_int64,json=unpackedInt64" json:"unpacked_int64,omitempty"` UnpackedUint32 []uint32 `protobuf:"varint,92,rep,name=unpacked_uint32,json=unpackedUint32" json:"unpacked_uint32,omitempty"` UnpackedUint64 []uint64 `protobuf:"varint,93,rep,name=unpacked_uint64,json=unpackedUint64" json:"unpacked_uint64,omitempty"` UnpackedSint32 []int32 `protobuf:"zigzag32,94,rep,name=unpacked_sint32,json=unpackedSint32" json:"unpacked_sint32,omitempty"` UnpackedSint64 []int64 `protobuf:"zigzag64,95,rep,name=unpacked_sint64,json=unpackedSint64" json:"unpacked_sint64,omitempty"` UnpackedFixed32 []uint32 `protobuf:"fixed32,96,rep,name=unpacked_fixed32,json=unpackedFixed32" json:"unpacked_fixed32,omitempty"` UnpackedFixed64 []uint64 `protobuf:"fixed64,97,rep,name=unpacked_fixed64,json=unpackedFixed64" json:"unpacked_fixed64,omitempty"` UnpackedSfixed32 []int32 `protobuf:"fixed32,98,rep,name=unpacked_sfixed32,json=unpackedSfixed32" json:"unpacked_sfixed32,omitempty"` UnpackedSfixed64 []int64 `protobuf:"fixed64,99,rep,name=unpacked_sfixed64,json=unpackedSfixed64" json:"unpacked_sfixed64,omitempty"` UnpackedFloat []float32 `protobuf:"fixed32,100,rep,name=unpacked_float,json=unpackedFloat" json:"unpacked_float,omitempty"` UnpackedDouble []float64 `protobuf:"fixed64,101,rep,name=unpacked_double,json=unpackedDouble" json:"unpacked_double,omitempty"` UnpackedBool []bool `protobuf:"varint,102,rep,name=unpacked_bool,json=unpackedBool" json:"unpacked_bool,omitempty"` UnpackedEnum []ForeignEnum `protobuf:"varint,103,rep,name=unpacked_enum,json=unpackedEnum,enum=goproto.proto.test.ForeignEnum" json:"unpacked_enum,omitempty"` } func (x *TestUnpackedTypes) Reset() { *x = TestUnpackedTypes{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestUnpackedTypes) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestUnpackedTypes) ProtoMessage() {} func (x *TestUnpackedTypes) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestUnpackedTypes.ProtoReflect.Descriptor instead. func (*TestUnpackedTypes) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{13} } func (x *TestUnpackedTypes) GetUnpackedInt32() []int32 { if x != nil { return x.UnpackedInt32 } return nil } func (x *TestUnpackedTypes) GetUnpackedInt64() []int64 { if x != nil { return x.UnpackedInt64 } return nil } func (x *TestUnpackedTypes) GetUnpackedUint32() []uint32 { if x != nil { return x.UnpackedUint32 } return nil } func (x *TestUnpackedTypes) GetUnpackedUint64() []uint64 { if x != nil { return x.UnpackedUint64 } return nil } func (x *TestUnpackedTypes) GetUnpackedSint32() []int32 { if x != nil { return x.UnpackedSint32 } return nil } func (x *TestUnpackedTypes) GetUnpackedSint64() []int64 { if x != nil { return x.UnpackedSint64 } return nil } func (x *TestUnpackedTypes) GetUnpackedFixed32() []uint32 { if x != nil { return x.UnpackedFixed32 } return nil } func (x *TestUnpackedTypes) GetUnpackedFixed64() []uint64 { if x != nil { return x.UnpackedFixed64 } return nil } func (x *TestUnpackedTypes) GetUnpackedSfixed32() []int32 { if x != nil { return x.UnpackedSfixed32 } return nil } func (x *TestUnpackedTypes) GetUnpackedSfixed64() []int64 { if x != nil { return x.UnpackedSfixed64 } return nil } func (x *TestUnpackedTypes) GetUnpackedFloat() []float32 { if x != nil { return x.UnpackedFloat } return nil } func (x *TestUnpackedTypes) GetUnpackedDouble() []float64 { if x != nil { return x.UnpackedDouble } return nil } func (x *TestUnpackedTypes) GetUnpackedBool() []bool { if x != nil { return x.UnpackedBool } return nil } func (x *TestUnpackedTypes) GetUnpackedEnum() []ForeignEnum { if x != nil { return x.UnpackedEnum } return nil } type TestPackedExtensions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields } func (x *TestPackedExtensions) Reset() { *x = TestPackedExtensions{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestPackedExtensions) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestPackedExtensions) ProtoMessage() {} func (x *TestPackedExtensions) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestPackedExtensions.ProtoReflect.Descriptor instead. func (*TestPackedExtensions) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{14} } type TestUnpackedExtensions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields } func (x *TestUnpackedExtensions) Reset() { *x = TestUnpackedExtensions{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestUnpackedExtensions) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestUnpackedExtensions) ProtoMessage() {} func (x *TestUnpackedExtensions) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestUnpackedExtensions.ProtoReflect.Descriptor instead. func (*TestUnpackedExtensions) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{15} } // Test that RPC services work. type FooRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *FooRequest) Reset() { *x = FooRequest{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FooRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FooRequest) ProtoMessage() {} func (x *FooRequest) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FooRequest.ProtoReflect.Descriptor instead. func (*FooRequest) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{16} } type FooResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *FooResponse) Reset() { *x = FooResponse{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FooResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FooResponse) ProtoMessage() {} func (x *FooResponse) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FooResponse.ProtoReflect.Descriptor instead. func (*FooResponse) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{17} } type WeirdDefault struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields WeirdDefault []byte `protobuf:"bytes,1,opt,name=weird_default,json=weirdDefault,def=hello, \\\"world!\\\"\\ndead\\336\\255\\276\\357beef\x60" json:"weird_default,omitempty"` } // Default values for WeirdDefault fields. var ( Default_WeirdDefault_WeirdDefault = []byte("hello, \"world!\"\ndeadޭ\xbe\xefbeef`") ) func (x *WeirdDefault) Reset() { *x = WeirdDefault{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WeirdDefault) String() string { return protoimpl.X.MessageStringOf(x) } func (*WeirdDefault) ProtoMessage() {} func (x *WeirdDefault) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WeirdDefault.ProtoReflect.Descriptor instead. func (*WeirdDefault) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{18} } func (x *WeirdDefault) GetWeirdDefault() []byte { if x != nil && x.WeirdDefault != nil { return x.WeirdDefault } return append([]byte(nil), Default_WeirdDefault_WeirdDefault...) } type RemoteDefault struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Default *enums.Enum `protobuf:"varint,1,opt,name=default,enum=goproto.proto.enums.Enum" json:"default,omitempty"` Zero *enums.Enum `protobuf:"varint,2,opt,name=zero,enum=goproto.proto.enums.Enum,def=0" json:"zero,omitempty"` One *enums.Enum `protobuf:"varint,3,opt,name=one,enum=goproto.proto.enums.Enum,def=1" json:"one,omitempty"` Elevent *enums.Enum `protobuf:"varint,4,opt,name=elevent,enum=goproto.proto.enums.Enum,def=11" json:"elevent,omitempty"` Seventeen *enums.Enum `protobuf:"varint,5,opt,name=seventeen,enum=goproto.proto.enums.Enum,def=17" json:"seventeen,omitempty"` Thirtyseven *enums.Enum `protobuf:"varint,6,opt,name=thirtyseven,enum=goproto.proto.enums.Enum,def=37" json:"thirtyseven,omitempty"` Sixtyseven *enums.Enum `protobuf:"varint,7,opt,name=sixtyseven,enum=goproto.proto.enums.Enum,def=67" json:"sixtyseven,omitempty"` Negative *enums.Enum `protobuf:"varint,8,opt,name=negative,enum=goproto.proto.enums.Enum,def=-1" json:"negative,omitempty"` } // Default values for RemoteDefault fields. const ( Default_RemoteDefault_Zero = enums.Enum(0) // enums.Enum_ZERO Default_RemoteDefault_One = enums.Enum(1) // enums.Enum_ONE Default_RemoteDefault_Elevent = enums.Enum(11) // enums.Enum_ELEVENT Default_RemoteDefault_Seventeen = enums.Enum(17) // enums.Enum_SEVENTEEN Default_RemoteDefault_Thirtyseven = enums.Enum(37) // enums.Enum_THIRTYSEVEN Default_RemoteDefault_Sixtyseven = enums.Enum(67) // enums.Enum_SIXTYSEVEN Default_RemoteDefault_Negative = enums.Enum(-1) // enums.Enum_NEGATIVE ) func (x *RemoteDefault) Reset() { *x = RemoteDefault{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RemoteDefault) String() string { return protoimpl.X.MessageStringOf(x) } func (*RemoteDefault) ProtoMessage() {} func (x *RemoteDefault) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RemoteDefault.ProtoReflect.Descriptor instead. func (*RemoteDefault) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{19} } func (x *RemoteDefault) GetDefault() enums.Enum { if x != nil && x.Default != nil { return *x.Default } return enums.Enum(1337) } func (x *RemoteDefault) GetZero() enums.Enum { if x != nil && x.Zero != nil { return *x.Zero } return Default_RemoteDefault_Zero } func (x *RemoteDefault) GetOne() enums.Enum { if x != nil && x.One != nil { return *x.One } return Default_RemoteDefault_One } func (x *RemoteDefault) GetElevent() enums.Enum { if x != nil && x.Elevent != nil { return *x.Elevent } return Default_RemoteDefault_Elevent } func (x *RemoteDefault) GetSeventeen() enums.Enum { if x != nil && x.Seventeen != nil { return *x.Seventeen } return Default_RemoteDefault_Seventeen } func (x *RemoteDefault) GetThirtyseven() enums.Enum { if x != nil && x.Thirtyseven != nil { return *x.Thirtyseven } return Default_RemoteDefault_Thirtyseven } func (x *RemoteDefault) GetSixtyseven() enums.Enum { if x != nil && x.Sixtyseven != nil { return *x.Sixtyseven } return Default_RemoteDefault_Sixtyseven } func (x *RemoteDefault) GetNegative() enums.Enum { if x != nil && x.Negative != nil { return *x.Negative } return Default_RemoteDefault_Negative } type TestAllTypes_NestedMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields A *int32 `protobuf:"varint,1,opt,name=a" json:"a,omitempty"` Corecursive *TestAllTypes `protobuf:"bytes,2,opt,name=corecursive" json:"corecursive,omitempty"` } func (x *TestAllTypes_NestedMessage) Reset() { *x = TestAllTypes_NestedMessage{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestAllTypes_NestedMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestAllTypes_NestedMessage) ProtoMessage() {} func (x *TestAllTypes_NestedMessage) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestAllTypes_NestedMessage.ProtoReflect.Descriptor instead. func (*TestAllTypes_NestedMessage) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{0, 0} } func (x *TestAllTypes_NestedMessage) GetA() int32 { if x != nil && x.A != nil { return *x.A } return 0 } func (x *TestAllTypes_NestedMessage) GetCorecursive() *TestAllTypes { if x != nil { return x.Corecursive } return nil } type TestAllTypes_OptionalGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields A *int32 `protobuf:"varint,17,opt,name=a" json:"a,omitempty"` OptionalNestedMessage *TestAllTypes_NestedMessage `protobuf:"bytes,1000,opt,name=optional_nested_message,json=optionalNestedMessage" json:"optional_nested_message,omitempty"` SameFieldNumber *int32 `protobuf:"varint,16,opt,name=same_field_number,json=sameFieldNumber" json:"same_field_number,omitempty"` } func (x *TestAllTypes_OptionalGroup) Reset() { *x = TestAllTypes_OptionalGroup{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestAllTypes_OptionalGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestAllTypes_OptionalGroup) ProtoMessage() {} func (x *TestAllTypes_OptionalGroup) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestAllTypes_OptionalGroup.ProtoReflect.Descriptor instead. func (*TestAllTypes_OptionalGroup) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{0, 1} } func (x *TestAllTypes_OptionalGroup) GetA() int32 { if x != nil && x.A != nil { return *x.A } return 0 } func (x *TestAllTypes_OptionalGroup) GetOptionalNestedMessage() *TestAllTypes_NestedMessage { if x != nil { return x.OptionalNestedMessage } return nil } func (x *TestAllTypes_OptionalGroup) GetSameFieldNumber() int32 { if x != nil && x.SameFieldNumber != nil { return *x.SameFieldNumber } return 0 } type TestAllTypes_RepeatedGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields A *int32 `protobuf:"varint,47,opt,name=a" json:"a,omitempty"` OptionalNestedMessage *TestAllTypes_NestedMessage `protobuf:"bytes,1001,opt,name=optional_nested_message,json=optionalNestedMessage" json:"optional_nested_message,omitempty"` } func (x *TestAllTypes_RepeatedGroup) Reset() { *x = TestAllTypes_RepeatedGroup{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestAllTypes_RepeatedGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestAllTypes_RepeatedGroup) ProtoMessage() {} func (x *TestAllTypes_RepeatedGroup) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestAllTypes_RepeatedGroup.ProtoReflect.Descriptor instead. func (*TestAllTypes_RepeatedGroup) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{0, 2} } func (x *TestAllTypes_RepeatedGroup) GetA() int32 { if x != nil && x.A != nil { return *x.A } return 0 } func (x *TestAllTypes_RepeatedGroup) GetOptionalNestedMessage() *TestAllTypes_NestedMessage { if x != nil { return x.OptionalNestedMessage } return nil } type TestAllTypes_OneofGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields A *int32 `protobuf:"varint,1,opt,name=a" json:"a,omitempty"` B *int32 `protobuf:"varint,2,opt,name=b" json:"b,omitempty"` } func (x *TestAllTypes_OneofGroup) Reset() { *x = TestAllTypes_OneofGroup{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestAllTypes_OneofGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestAllTypes_OneofGroup) ProtoMessage() {} func (x *TestAllTypes_OneofGroup) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestAllTypes_OneofGroup.ProtoReflect.Descriptor instead. func (*TestAllTypes_OneofGroup) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{0, 20} } func (x *TestAllTypes_OneofGroup) GetA() int32 { if x != nil && x.A != nil { return *x.A } return 0 } func (x *TestAllTypes_OneofGroup) GetB() int32 { if x != nil && x.B != nil { return *x.B } return 0 } type TestAllExtensions_NestedMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields A *int32 `protobuf:"varint,1,opt,name=a" json:"a,omitempty"` Corecursive *TestAllExtensions `protobuf:"bytes,2,opt,name=corecursive" json:"corecursive,omitempty"` } func (x *TestAllExtensions_NestedMessage) Reset() { *x = TestAllExtensions_NestedMessage{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestAllExtensions_NestedMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestAllExtensions_NestedMessage) ProtoMessage() {} func (x *TestAllExtensions_NestedMessage) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestAllExtensions_NestedMessage.ProtoReflect.Descriptor instead. func (*TestAllExtensions_NestedMessage) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{4, 0} } func (x *TestAllExtensions_NestedMessage) GetA() int32 { if x != nil && x.A != nil { return *x.A } return 0 } func (x *TestAllExtensions_NestedMessage) GetCorecursive() *TestAllExtensions { if x != nil { return x.Corecursive } return nil } type TestRequiredGroupFields_OptionalGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields A *int32 `protobuf:"varint,2,req,name=a" json:"a,omitempty"` } func (x *TestRequiredGroupFields_OptionalGroup) Reset() { *x = TestRequiredGroupFields_OptionalGroup{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestRequiredGroupFields_OptionalGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestRequiredGroupFields_OptionalGroup) ProtoMessage() {} func (x *TestRequiredGroupFields_OptionalGroup) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestRequiredGroupFields_OptionalGroup.ProtoReflect.Descriptor instead. func (*TestRequiredGroupFields_OptionalGroup) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{10, 0} } func (x *TestRequiredGroupFields_OptionalGroup) GetA() int32 { if x != nil && x.A != nil { return *x.A } return 0 } type TestRequiredGroupFields_RepeatedGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields A *int32 `protobuf:"varint,4,req,name=a" json:"a,omitempty"` } func (x *TestRequiredGroupFields_RepeatedGroup) Reset() { *x = TestRequiredGroupFields_RepeatedGroup{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestRequiredGroupFields_RepeatedGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestRequiredGroupFields_RepeatedGroup) ProtoMessage() {} func (x *TestRequiredGroupFields_RepeatedGroup) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestRequiredGroupFields_RepeatedGroup.ProtoReflect.Descriptor instead. func (*TestRequiredGroupFields_RepeatedGroup) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{10, 1} } func (x *TestRequiredGroupFields_RepeatedGroup) GetA() int32 { if x != nil && x.A != nil { return *x.A } return 0 } var file_internal_testprotos_test_test_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*int32)(nil), Field: 1, Name: "goproto.proto.test.optional_int32", Tag: "varint,1,opt,name=optional_int32", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*int64)(nil), Field: 2, Name: "goproto.proto.test.optional_int64", Tag: "varint,2,opt,name=optional_int64", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*uint32)(nil), Field: 3, Name: "goproto.proto.test.optional_uint32", Tag: "varint,3,opt,name=optional_uint32", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*uint64)(nil), Field: 4, Name: "goproto.proto.test.optional_uint64", Tag: "varint,4,opt,name=optional_uint64", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*int32)(nil), Field: 5, Name: "goproto.proto.test.optional_sint32", Tag: "zigzag32,5,opt,name=optional_sint32", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*int64)(nil), Field: 6, Name: "goproto.proto.test.optional_sint64", Tag: "zigzag64,6,opt,name=optional_sint64", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*uint32)(nil), Field: 7, Name: "goproto.proto.test.optional_fixed32", Tag: "fixed32,7,opt,name=optional_fixed32", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*uint64)(nil), Field: 8, Name: "goproto.proto.test.optional_fixed64", Tag: "fixed64,8,opt,name=optional_fixed64", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*int32)(nil), Field: 9, Name: "goproto.proto.test.optional_sfixed32", Tag: "fixed32,9,opt,name=optional_sfixed32", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*int64)(nil), Field: 10, Name: "goproto.proto.test.optional_sfixed64", Tag: "fixed64,10,opt,name=optional_sfixed64", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*float32)(nil), Field: 11, Name: "goproto.proto.test.optional_float", Tag: "fixed32,11,opt,name=optional_float", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*float64)(nil), Field: 12, Name: "goproto.proto.test.optional_double", Tag: "fixed64,12,opt,name=optional_double", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*bool)(nil), Field: 13, Name: "goproto.proto.test.optional_bool", Tag: "varint,13,opt,name=optional_bool", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*string)(nil), Field: 14, Name: "goproto.proto.test.optional_string", Tag: "bytes,14,opt,name=optional_string", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: ([]byte)(nil), Field: 15, Name: "goproto.proto.test.optional_bytes", Tag: "bytes,15,opt,name=optional_bytes", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*OptionalGroup)(nil), Field: 16, Name: "goproto.proto.test.optionalgroup", Tag: "group,16,opt,name=OptionalGroup", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*TestAllExtensions_NestedMessage)(nil), Field: 18, Name: "goproto.proto.test.optional_nested_message", Tag: "bytes,18,opt,name=optional_nested_message", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*TestAllTypes_NestedEnum)(nil), Field: 21, Name: "goproto.proto.test.optional_nested_enum", Tag: "varint,21,opt,name=optional_nested_enum,enum=goproto.proto.test.TestAllTypes_NestedEnum", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: ([]int32)(nil), Field: 31, Name: "goproto.proto.test.repeated_int32", Tag: "varint,31,rep,name=repeated_int32", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: ([]int64)(nil), Field: 32, Name: "goproto.proto.test.repeated_int64", Tag: "varint,32,rep,name=repeated_int64", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: ([]uint32)(nil), Field: 33, Name: "goproto.proto.test.repeated_uint32", Tag: "varint,33,rep,name=repeated_uint32", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: ([]uint64)(nil), Field: 34, Name: "goproto.proto.test.repeated_uint64", Tag: "varint,34,rep,name=repeated_uint64", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: ([]int32)(nil), Field: 35, Name: "goproto.proto.test.repeated_sint32", Tag: "zigzag32,35,rep,name=repeated_sint32", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: ([]int64)(nil), Field: 36, Name: "goproto.proto.test.repeated_sint64", Tag: "zigzag64,36,rep,name=repeated_sint64", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: ([]uint32)(nil), Field: 37, Name: "goproto.proto.test.repeated_fixed32", Tag: "fixed32,37,rep,name=repeated_fixed32", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: ([]uint64)(nil), Field: 38, Name: "goproto.proto.test.repeated_fixed64", Tag: "fixed64,38,rep,name=repeated_fixed64", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: ([]int32)(nil), Field: 39, Name: "goproto.proto.test.repeated_sfixed32", Tag: "fixed32,39,rep,name=repeated_sfixed32", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: ([]int64)(nil), Field: 40, Name: "goproto.proto.test.repeated_sfixed64", Tag: "fixed64,40,rep,name=repeated_sfixed64", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: ([]float32)(nil), Field: 41, Name: "goproto.proto.test.repeated_float", Tag: "fixed32,41,rep,name=repeated_float", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: ([]float64)(nil), Field: 42, Name: "goproto.proto.test.repeated_double", Tag: "fixed64,42,rep,name=repeated_double", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: ([]bool)(nil), Field: 43, Name: "goproto.proto.test.repeated_bool", Tag: "varint,43,rep,name=repeated_bool", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: ([]string)(nil), Field: 44, Name: "goproto.proto.test.repeated_string", Tag: "bytes,44,rep,name=repeated_string", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: ([][]byte)(nil), Field: 45, Name: "goproto.proto.test.repeated_bytes", Tag: "bytes,45,rep,name=repeated_bytes", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: ([]*RepeatedGroup)(nil), Field: 46, Name: "goproto.proto.test.repeatedgroup", Tag: "group,46,rep,name=RepeatedGroup", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: ([]*TestAllExtensions_NestedMessage)(nil), Field: 48, Name: "goproto.proto.test.repeated_nested_message", Tag: "bytes,48,rep,name=repeated_nested_message", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: ([]TestAllTypes_NestedEnum)(nil), Field: 51, Name: "goproto.proto.test.repeated_nested_enum", Tag: "varint,51,rep,name=repeated_nested_enum,enum=goproto.proto.test.TestAllTypes_NestedEnum", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*int32)(nil), Field: 81, Name: "goproto.proto.test.default_int32", Tag: "varint,81,opt,name=default_int32,def=81", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*int64)(nil), Field: 82, Name: "goproto.proto.test.default_int64", Tag: "varint,82,opt,name=default_int64,def=82", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*uint32)(nil), Field: 83, Name: "goproto.proto.test.default_uint32", Tag: "varint,83,opt,name=default_uint32,def=83", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*uint64)(nil), Field: 84, Name: "goproto.proto.test.default_uint64", Tag: "varint,84,opt,name=default_uint64,def=84", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*int32)(nil), Field: 85, Name: "goproto.proto.test.default_sint32", Tag: "zigzag32,85,opt,name=default_sint32,def=-85", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*int64)(nil), Field: 86, Name: "goproto.proto.test.default_sint64", Tag: "zigzag64,86,opt,name=default_sint64,def=86", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*uint32)(nil), Field: 87, Name: "goproto.proto.test.default_fixed32", Tag: "fixed32,87,opt,name=default_fixed32,def=87", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*uint64)(nil), Field: 88, Name: "goproto.proto.test.default_fixed64", Tag: "fixed64,88,opt,name=default_fixed64,def=88", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*int32)(nil), Field: 89, Name: "goproto.proto.test.default_sfixed32", Tag: "fixed32,89,opt,name=default_sfixed32,def=89", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*int64)(nil), Field: 80, Name: "goproto.proto.test.default_sfixed64", Tag: "fixed64,80,opt,name=default_sfixed64,def=-90", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*float32)(nil), Field: 91, Name: "goproto.proto.test.default_float", Tag: "fixed32,91,opt,name=default_float,def=91.5", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*float64)(nil), Field: 92, Name: "goproto.proto.test.default_double", Tag: "fixed64,92,opt,name=default_double,def=92000", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*bool)(nil), Field: 93, Name: "goproto.proto.test.default_bool", Tag: "varint,93,opt,name=default_bool,def=1", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*string)(nil), Field: 94, Name: "goproto.proto.test.default_string", Tag: "bytes,94,opt,name=default_string,def=hello", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: ([]byte)(nil), Field: 95, Name: "goproto.proto.test.default_bytes", Tag: "bytes,95,opt,name=default_bytes,def=world", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestPackedExtensions)(nil), ExtensionType: ([]int32)(nil), Field: 90, Name: "goproto.proto.test.packed_int32", Tag: "varint,90,rep,packed,name=packed_int32", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestPackedExtensions)(nil), ExtensionType: ([]int64)(nil), Field: 91, Name: "goproto.proto.test.packed_int64", Tag: "varint,91,rep,packed,name=packed_int64", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestPackedExtensions)(nil), ExtensionType: ([]uint32)(nil), Field: 92, Name: "goproto.proto.test.packed_uint32", Tag: "varint,92,rep,packed,name=packed_uint32", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestPackedExtensions)(nil), ExtensionType: ([]uint64)(nil), Field: 93, Name: "goproto.proto.test.packed_uint64", Tag: "varint,93,rep,packed,name=packed_uint64", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestPackedExtensions)(nil), ExtensionType: ([]int32)(nil), Field: 94, Name: "goproto.proto.test.packed_sint32", Tag: "zigzag32,94,rep,packed,name=packed_sint32", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestPackedExtensions)(nil), ExtensionType: ([]int64)(nil), Field: 95, Name: "goproto.proto.test.packed_sint64", Tag: "zigzag64,95,rep,packed,name=packed_sint64", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestPackedExtensions)(nil), ExtensionType: ([]uint32)(nil), Field: 96, Name: "goproto.proto.test.packed_fixed32", Tag: "fixed32,96,rep,packed,name=packed_fixed32", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestPackedExtensions)(nil), ExtensionType: ([]uint64)(nil), Field: 97, Name: "goproto.proto.test.packed_fixed64", Tag: "fixed64,97,rep,packed,name=packed_fixed64", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestPackedExtensions)(nil), ExtensionType: ([]int32)(nil), Field: 98, Name: "goproto.proto.test.packed_sfixed32", Tag: "fixed32,98,rep,packed,name=packed_sfixed32", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestPackedExtensions)(nil), ExtensionType: ([]int64)(nil), Field: 99, Name: "goproto.proto.test.packed_sfixed64", Tag: "fixed64,99,rep,packed,name=packed_sfixed64", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestPackedExtensions)(nil), ExtensionType: ([]float32)(nil), Field: 100, Name: "goproto.proto.test.packed_float", Tag: "fixed32,100,rep,packed,name=packed_float", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestPackedExtensions)(nil), ExtensionType: ([]float64)(nil), Field: 101, Name: "goproto.proto.test.packed_double", Tag: "fixed64,101,rep,packed,name=packed_double", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestPackedExtensions)(nil), ExtensionType: ([]bool)(nil), Field: 102, Name: "goproto.proto.test.packed_bool", Tag: "varint,102,rep,packed,name=packed_bool", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestPackedExtensions)(nil), ExtensionType: ([]ForeignEnum)(nil), Field: 103, Name: "goproto.proto.test.packed_enum", Tag: "varint,103,rep,packed,name=packed_enum,enum=goproto.proto.test.ForeignEnum", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestUnpackedExtensions)(nil), ExtensionType: ([]int32)(nil), Field: 90, Name: "goproto.proto.test.unpacked_int32", Tag: "varint,90,rep,name=unpacked_int32", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestUnpackedExtensions)(nil), ExtensionType: ([]int64)(nil), Field: 91, Name: "goproto.proto.test.unpacked_int64", Tag: "varint,91,rep,name=unpacked_int64", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestUnpackedExtensions)(nil), ExtensionType: ([]uint32)(nil), Field: 92, Name: "goproto.proto.test.unpacked_uint32", Tag: "varint,92,rep,name=unpacked_uint32", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestUnpackedExtensions)(nil), ExtensionType: ([]uint64)(nil), Field: 93, Name: "goproto.proto.test.unpacked_uint64", Tag: "varint,93,rep,name=unpacked_uint64", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestUnpackedExtensions)(nil), ExtensionType: ([]int32)(nil), Field: 94, Name: "goproto.proto.test.unpacked_sint32", Tag: "zigzag32,94,rep,name=unpacked_sint32", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestUnpackedExtensions)(nil), ExtensionType: ([]int64)(nil), Field: 95, Name: "goproto.proto.test.unpacked_sint64", Tag: "zigzag64,95,rep,name=unpacked_sint64", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestUnpackedExtensions)(nil), ExtensionType: ([]uint32)(nil), Field: 96, Name: "goproto.proto.test.unpacked_fixed32", Tag: "fixed32,96,rep,name=unpacked_fixed32", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestUnpackedExtensions)(nil), ExtensionType: ([]uint64)(nil), Field: 97, Name: "goproto.proto.test.unpacked_fixed64", Tag: "fixed64,97,rep,name=unpacked_fixed64", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestUnpackedExtensions)(nil), ExtensionType: ([]int32)(nil), Field: 98, Name: "goproto.proto.test.unpacked_sfixed32", Tag: "fixed32,98,rep,name=unpacked_sfixed32", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestUnpackedExtensions)(nil), ExtensionType: ([]int64)(nil), Field: 99, Name: "goproto.proto.test.unpacked_sfixed64", Tag: "fixed64,99,rep,name=unpacked_sfixed64", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestUnpackedExtensions)(nil), ExtensionType: ([]float32)(nil), Field: 100, Name: "goproto.proto.test.unpacked_float", Tag: "fixed32,100,rep,name=unpacked_float", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestUnpackedExtensions)(nil), ExtensionType: ([]float64)(nil), Field: 101, Name: "goproto.proto.test.unpacked_double", Tag: "fixed64,101,rep,name=unpacked_double", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestUnpackedExtensions)(nil), ExtensionType: ([]bool)(nil), Field: 102, Name: "goproto.proto.test.unpacked_bool", Tag: "varint,102,rep,name=unpacked_bool", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestUnpackedExtensions)(nil), ExtensionType: ([]ForeignEnum)(nil), Field: 103, Name: "goproto.proto.test.unpacked_enum", Tag: "varint,103,rep,name=unpacked_enum,enum=goproto.proto.test.ForeignEnum", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*string)(nil), Field: 1003, Name: "goproto.proto.test.TestNestedExtension.nested_string_extension", Tag: "bytes,1003,opt,name=nested_string_extension", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: (*TestRequired)(nil), Field: 1000, Name: "goproto.proto.test.TestRequired.single", Tag: "bytes,1000,opt,name=single", Filename: "internal/testprotos/test/test.proto", }, { ExtendedType: (*TestAllExtensions)(nil), ExtensionType: ([]*TestRequired)(nil), Field: 1001, Name: "goproto.proto.test.TestRequired.multi", Tag: "bytes,1001,rep,name=multi", Filename: "internal/testprotos/test/test.proto", }, } // Extension fields to TestAllExtensions. var ( // optional int32 optional_int32 = 1; E_OptionalInt32 = &file_internal_testprotos_test_test_proto_extTypes[0] // optional int64 optional_int64 = 2; E_OptionalInt64 = &file_internal_testprotos_test_test_proto_extTypes[1] // optional uint32 optional_uint32 = 3; E_OptionalUint32 = &file_internal_testprotos_test_test_proto_extTypes[2] // optional uint64 optional_uint64 = 4; E_OptionalUint64 = &file_internal_testprotos_test_test_proto_extTypes[3] // optional sint32 optional_sint32 = 5; E_OptionalSint32 = &file_internal_testprotos_test_test_proto_extTypes[4] // optional sint64 optional_sint64 = 6; E_OptionalSint64 = &file_internal_testprotos_test_test_proto_extTypes[5] // optional fixed32 optional_fixed32 = 7; E_OptionalFixed32 = &file_internal_testprotos_test_test_proto_extTypes[6] // optional fixed64 optional_fixed64 = 8; E_OptionalFixed64 = &file_internal_testprotos_test_test_proto_extTypes[7] // optional sfixed32 optional_sfixed32 = 9; E_OptionalSfixed32 = &file_internal_testprotos_test_test_proto_extTypes[8] // optional sfixed64 optional_sfixed64 = 10; E_OptionalSfixed64 = &file_internal_testprotos_test_test_proto_extTypes[9] // optional float optional_float = 11; E_OptionalFloat = &file_internal_testprotos_test_test_proto_extTypes[10] // optional double optional_double = 12; E_OptionalDouble = &file_internal_testprotos_test_test_proto_extTypes[11] // optional bool optional_bool = 13; E_OptionalBool = &file_internal_testprotos_test_test_proto_extTypes[12] // optional string optional_string = 14; E_OptionalString = &file_internal_testprotos_test_test_proto_extTypes[13] // optional bytes optional_bytes = 15; E_OptionalBytes = &file_internal_testprotos_test_test_proto_extTypes[14] // optional goproto.proto.test.OptionalGroup optionalgroup = 16; E_Optionalgroup = &file_internal_testprotos_test_test_proto_extTypes[15] // optional goproto.proto.test.TestAllExtensions.NestedMessage optional_nested_message = 18; E_OptionalNestedMessage = &file_internal_testprotos_test_test_proto_extTypes[16] // optional goproto.proto.test.TestAllTypes.NestedEnum optional_nested_enum = 21; E_OptionalNestedEnum = &file_internal_testprotos_test_test_proto_extTypes[17] // repeated int32 repeated_int32 = 31; E_RepeatedInt32 = &file_internal_testprotos_test_test_proto_extTypes[18] // repeated int64 repeated_int64 = 32; E_RepeatedInt64 = &file_internal_testprotos_test_test_proto_extTypes[19] // repeated uint32 repeated_uint32 = 33; E_RepeatedUint32 = &file_internal_testprotos_test_test_proto_extTypes[20] // repeated uint64 repeated_uint64 = 34; E_RepeatedUint64 = &file_internal_testprotos_test_test_proto_extTypes[21] // repeated sint32 repeated_sint32 = 35; E_RepeatedSint32 = &file_internal_testprotos_test_test_proto_extTypes[22] // repeated sint64 repeated_sint64 = 36; E_RepeatedSint64 = &file_internal_testprotos_test_test_proto_extTypes[23] // repeated fixed32 repeated_fixed32 = 37; E_RepeatedFixed32 = &file_internal_testprotos_test_test_proto_extTypes[24] // repeated fixed64 repeated_fixed64 = 38; E_RepeatedFixed64 = &file_internal_testprotos_test_test_proto_extTypes[25] // repeated sfixed32 repeated_sfixed32 = 39; E_RepeatedSfixed32 = &file_internal_testprotos_test_test_proto_extTypes[26] // repeated sfixed64 repeated_sfixed64 = 40; E_RepeatedSfixed64 = &file_internal_testprotos_test_test_proto_extTypes[27] // repeated float repeated_float = 41; E_RepeatedFloat = &file_internal_testprotos_test_test_proto_extTypes[28] // repeated double repeated_double = 42; E_RepeatedDouble = &file_internal_testprotos_test_test_proto_extTypes[29] // repeated bool repeated_bool = 43; E_RepeatedBool = &file_internal_testprotos_test_test_proto_extTypes[30] // repeated string repeated_string = 44; E_RepeatedString = &file_internal_testprotos_test_test_proto_extTypes[31] // repeated bytes repeated_bytes = 45; E_RepeatedBytes = &file_internal_testprotos_test_test_proto_extTypes[32] // repeated goproto.proto.test.RepeatedGroup repeatedgroup = 46; E_Repeatedgroup = &file_internal_testprotos_test_test_proto_extTypes[33] // repeated goproto.proto.test.TestAllExtensions.NestedMessage repeated_nested_message = 48; E_RepeatedNestedMessage = &file_internal_testprotos_test_test_proto_extTypes[34] // repeated goproto.proto.test.TestAllTypes.NestedEnum repeated_nested_enum = 51; E_RepeatedNestedEnum = &file_internal_testprotos_test_test_proto_extTypes[35] // optional int32 default_int32 = 81; E_DefaultInt32 = &file_internal_testprotos_test_test_proto_extTypes[36] // optional int64 default_int64 = 82; E_DefaultInt64 = &file_internal_testprotos_test_test_proto_extTypes[37] // optional uint32 default_uint32 = 83; E_DefaultUint32 = &file_internal_testprotos_test_test_proto_extTypes[38] // optional uint64 default_uint64 = 84; E_DefaultUint64 = &file_internal_testprotos_test_test_proto_extTypes[39] // optional sint32 default_sint32 = 85; E_DefaultSint32 = &file_internal_testprotos_test_test_proto_extTypes[40] // optional sint64 default_sint64 = 86; E_DefaultSint64 = &file_internal_testprotos_test_test_proto_extTypes[41] // optional fixed32 default_fixed32 = 87; E_DefaultFixed32 = &file_internal_testprotos_test_test_proto_extTypes[42] // optional fixed64 default_fixed64 = 88; E_DefaultFixed64 = &file_internal_testprotos_test_test_proto_extTypes[43] // optional sfixed32 default_sfixed32 = 89; E_DefaultSfixed32 = &file_internal_testprotos_test_test_proto_extTypes[44] // optional sfixed64 default_sfixed64 = 80; E_DefaultSfixed64 = &file_internal_testprotos_test_test_proto_extTypes[45] // optional float default_float = 91; E_DefaultFloat = &file_internal_testprotos_test_test_proto_extTypes[46] // optional double default_double = 92; E_DefaultDouble = &file_internal_testprotos_test_test_proto_extTypes[47] // optional bool default_bool = 93; E_DefaultBool = &file_internal_testprotos_test_test_proto_extTypes[48] // optional string default_string = 94; E_DefaultString = &file_internal_testprotos_test_test_proto_extTypes[49] // optional bytes default_bytes = 95; E_DefaultBytes = &file_internal_testprotos_test_test_proto_extTypes[50] // optional string nested_string_extension = 1003; E_TestNestedExtension_NestedStringExtension = &file_internal_testprotos_test_test_proto_extTypes[79] // optional goproto.proto.test.TestRequired single = 1000; E_TestRequired_Single = &file_internal_testprotos_test_test_proto_extTypes[80] // repeated goproto.proto.test.TestRequired multi = 1001; E_TestRequired_Multi = &file_internal_testprotos_test_test_proto_extTypes[81] ) // Extension fields to TestPackedExtensions. var ( // repeated int32 packed_int32 = 90; E_PackedInt32 = &file_internal_testprotos_test_test_proto_extTypes[51] // repeated int64 packed_int64 = 91; E_PackedInt64 = &file_internal_testprotos_test_test_proto_extTypes[52] // repeated uint32 packed_uint32 = 92; E_PackedUint32 = &file_internal_testprotos_test_test_proto_extTypes[53] // repeated uint64 packed_uint64 = 93; E_PackedUint64 = &file_internal_testprotos_test_test_proto_extTypes[54] // repeated sint32 packed_sint32 = 94; E_PackedSint32 = &file_internal_testprotos_test_test_proto_extTypes[55] // repeated sint64 packed_sint64 = 95; E_PackedSint64 = &file_internal_testprotos_test_test_proto_extTypes[56] // repeated fixed32 packed_fixed32 = 96; E_PackedFixed32 = &file_internal_testprotos_test_test_proto_extTypes[57] // repeated fixed64 packed_fixed64 = 97; E_PackedFixed64 = &file_internal_testprotos_test_test_proto_extTypes[58] // repeated sfixed32 packed_sfixed32 = 98; E_PackedSfixed32 = &file_internal_testprotos_test_test_proto_extTypes[59] // repeated sfixed64 packed_sfixed64 = 99; E_PackedSfixed64 = &file_internal_testprotos_test_test_proto_extTypes[60] // repeated float packed_float = 100; E_PackedFloat = &file_internal_testprotos_test_test_proto_extTypes[61] // repeated double packed_double = 101; E_PackedDouble = &file_internal_testprotos_test_test_proto_extTypes[62] // repeated bool packed_bool = 102; E_PackedBool = &file_internal_testprotos_test_test_proto_extTypes[63] // repeated goproto.proto.test.ForeignEnum packed_enum = 103; E_PackedEnum = &file_internal_testprotos_test_test_proto_extTypes[64] ) // Extension fields to TestUnpackedExtensions. var ( // repeated int32 unpacked_int32 = 90; E_UnpackedInt32 = &file_internal_testprotos_test_test_proto_extTypes[65] // repeated int64 unpacked_int64 = 91; E_UnpackedInt64 = &file_internal_testprotos_test_test_proto_extTypes[66] // repeated uint32 unpacked_uint32 = 92; E_UnpackedUint32 = &file_internal_testprotos_test_test_proto_extTypes[67] // repeated uint64 unpacked_uint64 = 93; E_UnpackedUint64 = &file_internal_testprotos_test_test_proto_extTypes[68] // repeated sint32 unpacked_sint32 = 94; E_UnpackedSint32 = &file_internal_testprotos_test_test_proto_extTypes[69] // repeated sint64 unpacked_sint64 = 95; E_UnpackedSint64 = &file_internal_testprotos_test_test_proto_extTypes[70] // repeated fixed32 unpacked_fixed32 = 96; E_UnpackedFixed32 = &file_internal_testprotos_test_test_proto_extTypes[71] // repeated fixed64 unpacked_fixed64 = 97; E_UnpackedFixed64 = &file_internal_testprotos_test_test_proto_extTypes[72] // repeated sfixed32 unpacked_sfixed32 = 98; E_UnpackedSfixed32 = &file_internal_testprotos_test_test_proto_extTypes[73] // repeated sfixed64 unpacked_sfixed64 = 99; E_UnpackedSfixed64 = &file_internal_testprotos_test_test_proto_extTypes[74] // repeated float unpacked_float = 100; E_UnpackedFloat = &file_internal_testprotos_test_test_proto_extTypes[75] // repeated double unpacked_double = 101; E_UnpackedDouble = &file_internal_testprotos_test_test_proto_extTypes[76] // repeated bool unpacked_bool = 102; E_UnpackedBool = &file_internal_testprotos_test_test_proto_extTypes[77] // repeated goproto.proto.test.ForeignEnum unpacked_enum = 103; E_UnpackedEnum = &file_internal_testprotos_test_test_proto_extTypes[78] ) var File_internal_testprotos_test_test_proto protoreflect.FileDescriptor var file_internal_testprotos_test_test_proto_rawDesc = []byte{ 0x0a, 0x23, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2f, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x77, 0x65, 0x61, 0x6b, 0x31, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x77, 0x65, 0x61, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x77, 0x65, 0x61, 0x6b, 0x32, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x77, 0x65, 0x61, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa5, 0x3a, 0x0a, 0x0c, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x10, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x66, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x5c, 0x0a, 0x18, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x59, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x5d, 0x0a, 0x14, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x12, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x53, 0x0a, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x13, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x50, 0x0a, 0x14, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x12, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x20, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x21, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x22, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x23, 0x20, 0x03, 0x28, 0x11, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x24, 0x20, 0x03, 0x28, 0x12, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x25, 0x20, 0x03, 0x28, 0x07, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x26, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x27, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x28, 0x20, 0x03, 0x28, 0x10, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x29, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x2a, 0x20, 0x03, 0x28, 0x01, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x2c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x2d, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x2e, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x66, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x30, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x5c, 0x0a, 0x18, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x31, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x32, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x5d, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x33, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x12, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x53, 0x0a, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x34, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x13, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x4f, 0x0a, 0x13, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x35, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x12, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x5b, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x38, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x5b, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x39, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x61, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x3a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x61, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x3b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x61, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x3c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x61, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x3d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x67, 0x0a, 0x13, 0x6d, 0x61, 0x70, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x3e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x6d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x67, 0x0a, 0x13, 0x6d, 0x61, 0x70, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x3f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x6d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x6d, 0x0a, 0x15, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x40, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x6d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x6d, 0x0a, 0x15, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x41, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x6d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x5b, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x42, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x5e, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x43, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x55, 0x0a, 0x0d, 0x6d, 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x44, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x61, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x45, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x5e, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x46, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x77, 0x0a, 0x19, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x47, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x6e, 0x0a, 0x16, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x49, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x27, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x51, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x38, 0x31, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x52, 0x20, 0x01, 0x28, 0x03, 0x3a, 0x02, 0x38, 0x32, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x53, 0x20, 0x01, 0x28, 0x0d, 0x3a, 0x02, 0x38, 0x33, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x54, 0x20, 0x01, 0x28, 0x04, 0x3a, 0x02, 0x38, 0x34, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2a, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x55, 0x20, 0x01, 0x28, 0x11, 0x3a, 0x03, 0x2d, 0x38, 0x35, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x56, 0x20, 0x01, 0x28, 0x12, 0x3a, 0x02, 0x38, 0x36, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x57, 0x20, 0x01, 0x28, 0x07, 0x3a, 0x02, 0x38, 0x37, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x58, 0x20, 0x01, 0x28, 0x06, 0x3a, 0x02, 0x38, 0x38, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2d, 0x0a, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x59, 0x20, 0x01, 0x28, 0x0f, 0x3a, 0x02, 0x38, 0x39, 0x52, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2e, 0x0a, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x50, 0x20, 0x01, 0x28, 0x10, 0x3a, 0x03, 0x2d, 0x39, 0x30, 0x52, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x5b, 0x20, 0x01, 0x28, 0x02, 0x3a, 0x04, 0x39, 0x31, 0x2e, 0x35, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x2c, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x01, 0x3a, 0x05, 0x39, 0x32, 0x30, 0x30, 0x30, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x2c, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x09, 0x3a, 0x05, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x0c, 0x3a, 0x05, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x60, 0x0a, 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x60, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x03, 0x42, 0x41, 0x52, 0x52, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x5e, 0x0a, 0x14, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x61, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x0b, 0x46, 0x4f, 0x52, 0x45, 0x49, 0x47, 0x4e, 0x5f, 0x42, 0x41, 0x52, 0x52, 0x12, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x23, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x62, 0x0a, 0x14, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x70, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x12, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x71, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x21, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x72, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x73, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x23, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x74, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x21, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x75, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x23, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x76, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x4c, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x77, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x4d, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x79, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x34, 0x0a, 0x15, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x78, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x13, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x1a, 0x61, 0x0a, 0x0d, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x61, 0x12, 0x42, 0x0a, 0x0b, 0x63, 0x6f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x0b, 0x63, 0x6f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x1a, 0xb2, 0x01, 0x0a, 0x0d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x61, 0x12, 0x67, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x61, 0x6d, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x73, 0x61, 0x6d, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x1a, 0x86, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x61, 0x12, 0x67, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x46, 0x0a, 0x18, 0x4d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x46, 0x0a, 0x18, 0x4d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x10, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x10, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x79, 0x0a, 0x1b, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x44, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x73, 0x0a, 0x18, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x41, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x28, 0x0a, 0x0a, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x61, 0x12, 0x0c, 0x0a, 0x01, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x62, 0x22, 0x39, 0x0a, 0x0a, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x07, 0x0a, 0x03, 0x46, 0x4f, 0x4f, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x41, 0x52, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x41, 0x5a, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x45, 0x47, 0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0xc4, 0x01, 0x0a, 0x15, 0x54, 0x65, 0x73, 0x74, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2d, 0x0a, 0x10, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x3a, 0x0a, 0x16, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x14, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x28, 0x0a, 0x0e, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x0a, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x1a, 0x02, 0x18, 0x01, 0x3a, 0x02, 0x18, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x2c, 0x0a, 0x0e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x63, 0x12, 0x0c, 0x0a, 0x01, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x64, 0x22, 0x30, 0x0a, 0x12, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x0f, 0x10, 0x10, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0c, 0x52, 0x03, 0x62, 0x61, 0x72, 0x52, 0x03, 0x62, 0x61, 0x7a, 0x22, 0x85, 0x01, 0x0a, 0x11, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x66, 0x0a, 0x0d, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x61, 0x12, 0x47, 0x0a, 0x0b, 0x63, 0x6f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x63, 0x6f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x2a, 0x08, 0x08, 0x01, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xb7, 0x01, 0x0a, 0x0d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x61, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x61, 0x6d, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x73, 0x61, 0x6d, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x6c, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x61, 0x12, 0x6c, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x75, 0x0a, 0x13, 0x54, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0x5e, 0x0a, 0x17, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xeb, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xf7, 0x01, 0x0a, 0x0c, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x60, 0x0a, 0x06, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x52, 0x06, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x32, 0x5e, 0x0a, 0x05, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe9, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x52, 0x05, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x22, 0xc2, 0x03, 0x0a, 0x13, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x12, 0x4b, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x4b, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x0b, 0x6d, 0x61, 0x70, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x2e, 0x4d, 0x61, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x61, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x5f, 0x0a, 0x0f, 0x4d, 0x61, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x36, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x99, 0x02, 0x0a, 0x17, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x5f, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x5f, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x1d, 0x0a, 0x0d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x02, 0x20, 0x02, 0x28, 0x05, 0x52, 0x01, 0x61, 0x1a, 0x1d, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x04, 0x20, 0x02, 0x28, 0x05, 0x52, 0x01, 0x61, 0x22, 0xb6, 0x01, 0x0a, 0x08, 0x54, 0x65, 0x73, 0x74, 0x57, 0x65, 0x61, 0x6b, 0x12, 0x54, 0x0a, 0x0d, 0x77, 0x65, 0x61, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x77, 0x65, 0x61, 0x6b, 0x2e, 0x57, 0x65, 0x61, 0x6b, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x42, 0x02, 0x50, 0x01, 0x52, 0x0c, 0x77, 0x65, 0x61, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x12, 0x54, 0x0a, 0x0d, 0x77, 0x65, 0x61, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x77, 0x65, 0x61, 0x6b, 0x2e, 0x57, 0x65, 0x61, 0x6b, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x42, 0x02, 0x50, 0x01, 0x52, 0x0c, 0x77, 0x65, 0x61, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x22, 0xee, 0x04, 0x0a, 0x0f, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x5a, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x5b, 0x20, 0x03, 0x28, 0x03, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x5c, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x5d, 0x20, 0x03, 0x28, 0x04, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x5e, 0x20, 0x03, 0x28, 0x11, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x5f, 0x20, 0x03, 0x28, 0x12, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x60, 0x20, 0x03, 0x28, 0x07, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x61, 0x20, 0x03, 0x28, 0x06, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x62, 0x20, 0x03, 0x28, 0x0f, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x63, 0x20, 0x03, 0x28, 0x10, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x64, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x65, 0x20, 0x03, 0x28, 0x01, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x66, 0x20, 0x03, 0x28, 0x08, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x44, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x67, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x22, 0xa8, 0x05, 0x0a, 0x11, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x5a, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x5b, 0x20, 0x03, 0x28, 0x03, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x5c, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x5d, 0x20, 0x03, 0x28, 0x04, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x5e, 0x20, 0x03, 0x28, 0x11, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x5f, 0x20, 0x03, 0x28, 0x12, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2d, 0x0a, 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x60, 0x20, 0x03, 0x28, 0x07, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2d, 0x0a, 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x61, 0x20, 0x03, 0x28, 0x06, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2f, 0x0a, 0x11, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x62, 0x20, 0x03, 0x28, 0x0f, 0x42, 0x02, 0x10, 0x00, 0x52, 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2f, 0x0a, 0x11, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x63, 0x20, 0x03, 0x28, 0x10, 0x42, 0x02, 0x10, 0x00, 0x52, 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x64, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x65, 0x20, 0x03, 0x28, 0x01, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x66, 0x20, 0x03, 0x28, 0x08, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0c, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x48, 0x0a, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x67, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0c, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x22, 0x20, 0x0a, 0x14, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2a, 0x08, 0x08, 0x01, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x22, 0x0a, 0x16, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2a, 0x08, 0x08, 0x01, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x0c, 0x0a, 0x0a, 0x46, 0x6f, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x0d, 0x0a, 0x0b, 0x46, 0x6f, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x61, 0x0a, 0x0c, 0x57, 0x65, 0x69, 0x72, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x51, 0x0a, 0x0d, 0x77, 0x65, 0x69, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x3a, 0x2c, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x5c, 0x22, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x21, 0x5c, 0x22, 0x5c, 0x6e, 0x64, 0x65, 0x61, 0x64, 0x5c, 0x33, 0x33, 0x36, 0x5c, 0x32, 0x35, 0x35, 0x5c, 0x32, 0x37, 0x36, 0x5c, 0x33, 0x35, 0x37, 0x62, 0x65, 0x65, 0x66, 0x60, 0x52, 0x0c, 0x77, 0x65, 0x69, 0x72, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0xff, 0x03, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x33, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x7a, 0x65, 0x72, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x04, 0x5a, 0x45, 0x52, 0x4f, 0x52, 0x04, 0x7a, 0x65, 0x72, 0x6f, 0x12, 0x30, 0x0a, 0x03, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x03, 0x4f, 0x4e, 0x45, 0x52, 0x03, 0x6f, 0x6e, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x65, 0x6c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x07, 0x45, 0x4c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x52, 0x07, 0x65, 0x6c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x09, 0x73, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x65, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x09, 0x53, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x45, 0x45, 0x4e, 0x52, 0x09, 0x73, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x65, 0x65, 0x6e, 0x12, 0x48, 0x0a, 0x0b, 0x74, 0x68, 0x69, 0x72, 0x74, 0x79, 0x73, 0x65, 0x76, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x0b, 0x54, 0x48, 0x49, 0x52, 0x54, 0x59, 0x53, 0x45, 0x56, 0x45, 0x4e, 0x52, 0x0b, 0x74, 0x68, 0x69, 0x72, 0x74, 0x79, 0x73, 0x65, 0x76, 0x65, 0x6e, 0x12, 0x45, 0x0a, 0x0a, 0x73, 0x69, 0x78, 0x74, 0x79, 0x73, 0x65, 0x76, 0x65, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x0a, 0x53, 0x49, 0x58, 0x54, 0x59, 0x53, 0x45, 0x56, 0x45, 0x4e, 0x52, 0x0a, 0x73, 0x69, 0x78, 0x74, 0x79, 0x73, 0x65, 0x76, 0x65, 0x6e, 0x12, 0x3f, 0x0a, 0x08, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x08, 0x4e, 0x45, 0x47, 0x41, 0x54, 0x49, 0x56, 0x45, 0x52, 0x08, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x2a, 0x40, 0x0a, 0x0b, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x4f, 0x52, 0x45, 0x49, 0x47, 0x4e, 0x5f, 0x46, 0x4f, 0x4f, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x4f, 0x52, 0x45, 0x49, 0x47, 0x4e, 0x5f, 0x42, 0x41, 0x52, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x4f, 0x52, 0x45, 0x49, 0x47, 0x4e, 0x5f, 0x42, 0x41, 0x5a, 0x10, 0x06, 0x2a, 0x47, 0x0a, 0x16, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x00, 0x22, 0x04, 0x08, 0x02, 0x10, 0x02, 0x22, 0x04, 0x08, 0x0f, 0x10, 0x0f, 0x22, 0x04, 0x08, 0x09, 0x10, 0x0b, 0x2a, 0x03, 0x42, 0x41, 0x52, 0x2a, 0x03, 0x42, 0x41, 0x5a, 0x32, 0xa8, 0x01, 0x0a, 0x0b, 0x54, 0x65, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x46, 0x0a, 0x03, 0x46, 0x6f, 0x6f, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x32, 0x85, 0x01, 0x0a, 0x15, 0x54, 0x65, 0x73, 0x74, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x67, 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x29, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x1a, 0x03, 0x88, 0x02, 0x01, 0x3a, 0x4c, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x4c, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x4e, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x4e, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x4e, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x4e, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x50, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x50, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x52, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x52, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x10, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x4c, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x4e, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x3a, 0x4a, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x3a, 0x4e, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x4c, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x3a, 0x6e, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3a, 0x92, 0x01, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3a, 0x84, 0x01, 0x0a, 0x14, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x12, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x4c, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x4c, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x20, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x4e, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x21, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x4e, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x22, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x4e, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x23, 0x20, 0x03, 0x28, 0x11, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x4e, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x24, 0x20, 0x03, 0x28, 0x12, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x50, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x25, 0x20, 0x03, 0x28, 0x07, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x50, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x26, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x52, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x27, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x52, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x28, 0x20, 0x03, 0x28, 0x10, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x4c, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x29, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x4e, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x2a, 0x20, 0x03, 0x28, 0x01, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x3a, 0x4a, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x3a, 0x4e, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x2c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x4c, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x2d, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x3a, 0x6e, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x2e, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3a, 0x92, 0x01, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x30, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3a, 0x84, 0x01, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x33, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x12, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x4e, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x51, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x38, 0x31, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x4e, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x52, 0x20, 0x01, 0x28, 0x03, 0x3a, 0x02, 0x38, 0x32, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x50, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x53, 0x20, 0x01, 0x28, 0x0d, 0x3a, 0x02, 0x38, 0x33, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x50, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x54, 0x20, 0x01, 0x28, 0x04, 0x3a, 0x02, 0x38, 0x34, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x51, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x55, 0x20, 0x01, 0x28, 0x11, 0x3a, 0x03, 0x2d, 0x38, 0x35, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x50, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x56, 0x20, 0x01, 0x28, 0x12, 0x3a, 0x02, 0x38, 0x36, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x52, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x57, 0x20, 0x01, 0x28, 0x07, 0x3a, 0x02, 0x38, 0x37, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x52, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x58, 0x20, 0x01, 0x28, 0x06, 0x3a, 0x02, 0x38, 0x38, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x54, 0x0a, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x59, 0x20, 0x01, 0x28, 0x0f, 0x3a, 0x02, 0x38, 0x39, 0x52, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x55, 0x0a, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x50, 0x20, 0x01, 0x28, 0x10, 0x3a, 0x03, 0x2d, 0x39, 0x30, 0x52, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x50, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5b, 0x20, 0x01, 0x28, 0x02, 0x3a, 0x04, 0x39, 0x31, 0x2e, 0x35, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x53, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x01, 0x3a, 0x05, 0x39, 0x32, 0x30, 0x30, 0x30, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x3a, 0x4e, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x6f, 0x6f, 0x6c, 0x3a, 0x53, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x09, 0x3a, 0x05, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x51, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x0c, 0x3a, 0x05, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x3a, 0x4f, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5a, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x4f, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5b, 0x20, 0x03, 0x28, 0x03, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x51, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5c, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x51, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5d, 0x20, 0x03, 0x28, 0x04, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x51, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5e, 0x20, 0x03, 0x28, 0x11, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x51, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5f, 0x20, 0x03, 0x28, 0x12, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x53, 0x0a, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x60, 0x20, 0x03, 0x28, 0x07, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x53, 0x0a, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x61, 0x20, 0x03, 0x28, 0x06, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x55, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x62, 0x20, 0x03, 0x28, 0x0f, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x55, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x63, 0x20, 0x03, 0x28, 0x10, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x4f, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x64, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x51, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x65, 0x20, 0x03, 0x28, 0x01, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x3a, 0x4d, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x66, 0x20, 0x03, 0x28, 0x08, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x3a, 0x6e, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x67, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x55, 0x0a, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5a, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x55, 0x0a, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5b, 0x20, 0x03, 0x28, 0x03, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x57, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5c, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x57, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5d, 0x20, 0x03, 0x28, 0x04, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x57, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5e, 0x20, 0x03, 0x28, 0x11, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x57, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5f, 0x20, 0x03, 0x28, 0x12, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x59, 0x0a, 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x60, 0x20, 0x03, 0x28, 0x07, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x59, 0x0a, 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x61, 0x20, 0x03, 0x28, 0x06, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x5b, 0x0a, 0x11, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x62, 0x20, 0x03, 0x28, 0x0f, 0x42, 0x02, 0x10, 0x00, 0x52, 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x5b, 0x0a, 0x11, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x63, 0x20, 0x03, 0x28, 0x10, 0x42, 0x02, 0x10, 0x00, 0x52, 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x55, 0x0a, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x64, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x57, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x65, 0x20, 0x03, 0x28, 0x01, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x3a, 0x53, 0x0a, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x66, 0x20, 0x03, 0x28, 0x08, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0c, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x3a, 0x74, 0x0a, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x67, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0c, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x35, 0x5a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x50, 0x02, 0x58, 0x03, 0x58, 0x04, } var ( file_internal_testprotos_test_test_proto_rawDescOnce sync.Once file_internal_testprotos_test_test_proto_rawDescData = file_internal_testprotos_test_test_proto_rawDesc ) func file_internal_testprotos_test_test_proto_rawDescGZIP() []byte { file_internal_testprotos_test_test_proto_rawDescOnce.Do(func() { file_internal_testprotos_test_test_proto_rawDescData = protoimpl.X.CompressGZIP(file_internal_testprotos_test_test_proto_rawDescData) }) return file_internal_testprotos_test_test_proto_rawDescData } var file_internal_testprotos_test_test_proto_enumTypes = make([]protoimpl.EnumInfo, 4) var file_internal_testprotos_test_test_proto_msgTypes = make([]protoimpl.MessageInfo, 45) var file_internal_testprotos_test_test_proto_goTypes = []interface{}{ (ForeignEnum)(0), // 0: goproto.proto.test.ForeignEnum (TestReservedEnumFields)(0), // 1: goproto.proto.test.TestReservedEnumFields (TestAllTypes_NestedEnum)(0), // 2: goproto.proto.test.TestAllTypes.NestedEnum (TestDeprecatedMessage_DeprecatedEnum)(0), // 3: goproto.proto.test.TestDeprecatedMessage.DeprecatedEnum (*TestAllTypes)(nil), // 4: goproto.proto.test.TestAllTypes (*TestDeprecatedMessage)(nil), // 5: goproto.proto.test.TestDeprecatedMessage (*ForeignMessage)(nil), // 6: goproto.proto.test.ForeignMessage (*TestReservedFields)(nil), // 7: goproto.proto.test.TestReservedFields (*TestAllExtensions)(nil), // 8: goproto.proto.test.TestAllExtensions (*OptionalGroup)(nil), // 9: goproto.proto.test.OptionalGroup (*RepeatedGroup)(nil), // 10: goproto.proto.test.RepeatedGroup (*TestNestedExtension)(nil), // 11: goproto.proto.test.TestNestedExtension (*TestRequired)(nil), // 12: goproto.proto.test.TestRequired (*TestRequiredForeign)(nil), // 13: goproto.proto.test.TestRequiredForeign (*TestRequiredGroupFields)(nil), // 14: goproto.proto.test.TestRequiredGroupFields (*TestWeak)(nil), // 15: goproto.proto.test.TestWeak (*TestPackedTypes)(nil), // 16: goproto.proto.test.TestPackedTypes (*TestUnpackedTypes)(nil), // 17: goproto.proto.test.TestUnpackedTypes (*TestPackedExtensions)(nil), // 18: goproto.proto.test.TestPackedExtensions (*TestUnpackedExtensions)(nil), // 19: goproto.proto.test.TestUnpackedExtensions (*FooRequest)(nil), // 20: goproto.proto.test.FooRequest (*FooResponse)(nil), // 21: goproto.proto.test.FooResponse (*WeirdDefault)(nil), // 22: goproto.proto.test.WeirdDefault (*RemoteDefault)(nil), // 23: goproto.proto.test.RemoteDefault (*TestAllTypes_NestedMessage)(nil), // 24: goproto.proto.test.TestAllTypes.NestedMessage (*TestAllTypes_OptionalGroup)(nil), // 25: goproto.proto.test.TestAllTypes.OptionalGroup (*TestAllTypes_RepeatedGroup)(nil), // 26: goproto.proto.test.TestAllTypes.RepeatedGroup nil, // 27: goproto.proto.test.TestAllTypes.MapInt32Int32Entry nil, // 28: goproto.proto.test.TestAllTypes.MapInt64Int64Entry nil, // 29: goproto.proto.test.TestAllTypes.MapUint32Uint32Entry nil, // 30: goproto.proto.test.TestAllTypes.MapUint64Uint64Entry nil, // 31: goproto.proto.test.TestAllTypes.MapSint32Sint32Entry nil, // 32: goproto.proto.test.TestAllTypes.MapSint64Sint64Entry nil, // 33: goproto.proto.test.TestAllTypes.MapFixed32Fixed32Entry nil, // 34: goproto.proto.test.TestAllTypes.MapFixed64Fixed64Entry nil, // 35: goproto.proto.test.TestAllTypes.MapSfixed32Sfixed32Entry nil, // 36: goproto.proto.test.TestAllTypes.MapSfixed64Sfixed64Entry nil, // 37: goproto.proto.test.TestAllTypes.MapInt32FloatEntry nil, // 38: goproto.proto.test.TestAllTypes.MapInt32DoubleEntry nil, // 39: goproto.proto.test.TestAllTypes.MapBoolBoolEntry nil, // 40: goproto.proto.test.TestAllTypes.MapStringStringEntry nil, // 41: goproto.proto.test.TestAllTypes.MapStringBytesEntry nil, // 42: goproto.proto.test.TestAllTypes.MapStringNestedMessageEntry nil, // 43: goproto.proto.test.TestAllTypes.MapStringNestedEnumEntry (*TestAllTypes_OneofGroup)(nil), // 44: goproto.proto.test.TestAllTypes.OneofGroup (*TestAllExtensions_NestedMessage)(nil), // 45: goproto.proto.test.TestAllExtensions.NestedMessage nil, // 46: goproto.proto.test.TestRequiredForeign.MapMessageEntry (*TestRequiredGroupFields_OptionalGroup)(nil), // 47: goproto.proto.test.TestRequiredGroupFields.OptionalGroup (*TestRequiredGroupFields_RepeatedGroup)(nil), // 48: goproto.proto.test.TestRequiredGroupFields.RepeatedGroup (*ImportMessage)(nil), // 49: goproto.proto.test.ImportMessage (ImportEnum)(0), // 50: goproto.proto.test.ImportEnum (enums.Enum)(0), // 51: goproto.proto.enums.Enum } var file_internal_testprotos_test_test_proto_depIdxs = []int32{ 25, // 0: goproto.proto.test.TestAllTypes.optionalgroup:type_name -> goproto.proto.test.TestAllTypes.OptionalGroup 24, // 1: goproto.proto.test.TestAllTypes.optional_nested_message:type_name -> goproto.proto.test.TestAllTypes.NestedMessage 6, // 2: goproto.proto.test.TestAllTypes.optional_foreign_message:type_name -> goproto.proto.test.ForeignMessage 49, // 3: goproto.proto.test.TestAllTypes.optional_import_message:type_name -> goproto.proto.test.ImportMessage 2, // 4: goproto.proto.test.TestAllTypes.optional_nested_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum 0, // 5: goproto.proto.test.TestAllTypes.optional_foreign_enum:type_name -> goproto.proto.test.ForeignEnum 50, // 6: goproto.proto.test.TestAllTypes.optional_import_enum:type_name -> goproto.proto.test.ImportEnum 26, // 7: goproto.proto.test.TestAllTypes.repeatedgroup:type_name -> goproto.proto.test.TestAllTypes.RepeatedGroup 24, // 8: goproto.proto.test.TestAllTypes.repeated_nested_message:type_name -> goproto.proto.test.TestAllTypes.NestedMessage 6, // 9: goproto.proto.test.TestAllTypes.repeated_foreign_message:type_name -> goproto.proto.test.ForeignMessage 49, // 10: goproto.proto.test.TestAllTypes.repeated_importmessage:type_name -> goproto.proto.test.ImportMessage 2, // 11: goproto.proto.test.TestAllTypes.repeated_nested_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum 0, // 12: goproto.proto.test.TestAllTypes.repeated_foreign_enum:type_name -> goproto.proto.test.ForeignEnum 50, // 13: goproto.proto.test.TestAllTypes.repeated_importenum:type_name -> goproto.proto.test.ImportEnum 27, // 14: goproto.proto.test.TestAllTypes.map_int32_int32:type_name -> goproto.proto.test.TestAllTypes.MapInt32Int32Entry 28, // 15: goproto.proto.test.TestAllTypes.map_int64_int64:type_name -> goproto.proto.test.TestAllTypes.MapInt64Int64Entry 29, // 16: goproto.proto.test.TestAllTypes.map_uint32_uint32:type_name -> goproto.proto.test.TestAllTypes.MapUint32Uint32Entry 30, // 17: goproto.proto.test.TestAllTypes.map_uint64_uint64:type_name -> goproto.proto.test.TestAllTypes.MapUint64Uint64Entry 31, // 18: goproto.proto.test.TestAllTypes.map_sint32_sint32:type_name -> goproto.proto.test.TestAllTypes.MapSint32Sint32Entry 32, // 19: goproto.proto.test.TestAllTypes.map_sint64_sint64:type_name -> goproto.proto.test.TestAllTypes.MapSint64Sint64Entry 33, // 20: goproto.proto.test.TestAllTypes.map_fixed32_fixed32:type_name -> goproto.proto.test.TestAllTypes.MapFixed32Fixed32Entry 34, // 21: goproto.proto.test.TestAllTypes.map_fixed64_fixed64:type_name -> goproto.proto.test.TestAllTypes.MapFixed64Fixed64Entry 35, // 22: goproto.proto.test.TestAllTypes.map_sfixed32_sfixed32:type_name -> goproto.proto.test.TestAllTypes.MapSfixed32Sfixed32Entry 36, // 23: goproto.proto.test.TestAllTypes.map_sfixed64_sfixed64:type_name -> goproto.proto.test.TestAllTypes.MapSfixed64Sfixed64Entry 37, // 24: goproto.proto.test.TestAllTypes.map_int32_float:type_name -> goproto.proto.test.TestAllTypes.MapInt32FloatEntry 38, // 25: goproto.proto.test.TestAllTypes.map_int32_double:type_name -> goproto.proto.test.TestAllTypes.MapInt32DoubleEntry 39, // 26: goproto.proto.test.TestAllTypes.map_bool_bool:type_name -> goproto.proto.test.TestAllTypes.MapBoolBoolEntry 40, // 27: goproto.proto.test.TestAllTypes.map_string_string:type_name -> goproto.proto.test.TestAllTypes.MapStringStringEntry 41, // 28: goproto.proto.test.TestAllTypes.map_string_bytes:type_name -> goproto.proto.test.TestAllTypes.MapStringBytesEntry 42, // 29: goproto.proto.test.TestAllTypes.map_string_nested_message:type_name -> goproto.proto.test.TestAllTypes.MapStringNestedMessageEntry 43, // 30: goproto.proto.test.TestAllTypes.map_string_nested_enum:type_name -> goproto.proto.test.TestAllTypes.MapStringNestedEnumEntry 2, // 31: goproto.proto.test.TestAllTypes.default_nested_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum 0, // 32: goproto.proto.test.TestAllTypes.default_foreign_enum:type_name -> goproto.proto.test.ForeignEnum 24, // 33: goproto.proto.test.TestAllTypes.oneof_nested_message:type_name -> goproto.proto.test.TestAllTypes.NestedMessage 2, // 34: goproto.proto.test.TestAllTypes.oneof_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum 44, // 35: goproto.proto.test.TestAllTypes.oneofgroup:type_name -> goproto.proto.test.TestAllTypes.OneofGroup 45, // 36: goproto.proto.test.OptionalGroup.optional_nested_message:type_name -> goproto.proto.test.TestAllExtensions.NestedMessage 45, // 37: goproto.proto.test.RepeatedGroup.optional_nested_message:type_name -> goproto.proto.test.TestAllExtensions.NestedMessage 12, // 38: goproto.proto.test.TestRequiredForeign.optional_message:type_name -> goproto.proto.test.TestRequired 12, // 39: goproto.proto.test.TestRequiredForeign.repeated_message:type_name -> goproto.proto.test.TestRequired 46, // 40: goproto.proto.test.TestRequiredForeign.map_message:type_name -> goproto.proto.test.TestRequiredForeign.MapMessageEntry 12, // 41: goproto.proto.test.TestRequiredForeign.oneof_message:type_name -> goproto.proto.test.TestRequired 47, // 42: goproto.proto.test.TestRequiredGroupFields.optionalgroup:type_name -> goproto.proto.test.TestRequiredGroupFields.OptionalGroup 48, // 43: goproto.proto.test.TestRequiredGroupFields.repeatedgroup:type_name -> goproto.proto.test.TestRequiredGroupFields.RepeatedGroup 0, // 44: goproto.proto.test.TestPackedTypes.packed_enum:type_name -> goproto.proto.test.ForeignEnum 0, // 45: goproto.proto.test.TestUnpackedTypes.unpacked_enum:type_name -> goproto.proto.test.ForeignEnum 51, // 46: goproto.proto.test.RemoteDefault.default:type_name -> goproto.proto.enums.Enum 51, // 47: goproto.proto.test.RemoteDefault.zero:type_name -> goproto.proto.enums.Enum 51, // 48: goproto.proto.test.RemoteDefault.one:type_name -> goproto.proto.enums.Enum 51, // 49: goproto.proto.test.RemoteDefault.elevent:type_name -> goproto.proto.enums.Enum 51, // 50: goproto.proto.test.RemoteDefault.seventeen:type_name -> goproto.proto.enums.Enum 51, // 51: goproto.proto.test.RemoteDefault.thirtyseven:type_name -> goproto.proto.enums.Enum 51, // 52: goproto.proto.test.RemoteDefault.sixtyseven:type_name -> goproto.proto.enums.Enum 51, // 53: goproto.proto.test.RemoteDefault.negative:type_name -> goproto.proto.enums.Enum 4, // 54: goproto.proto.test.TestAllTypes.NestedMessage.corecursive:type_name -> goproto.proto.test.TestAllTypes 24, // 55: goproto.proto.test.TestAllTypes.OptionalGroup.optional_nested_message:type_name -> goproto.proto.test.TestAllTypes.NestedMessage 24, // 56: goproto.proto.test.TestAllTypes.RepeatedGroup.optional_nested_message:type_name -> goproto.proto.test.TestAllTypes.NestedMessage 24, // 57: goproto.proto.test.TestAllTypes.MapStringNestedMessageEntry.value:type_name -> goproto.proto.test.TestAllTypes.NestedMessage 2, // 58: goproto.proto.test.TestAllTypes.MapStringNestedEnumEntry.value:type_name -> goproto.proto.test.TestAllTypes.NestedEnum 8, // 59: goproto.proto.test.TestAllExtensions.NestedMessage.corecursive:type_name -> goproto.proto.test.TestAllExtensions 12, // 60: goproto.proto.test.TestRequiredForeign.MapMessageEntry.value:type_name -> goproto.proto.test.TestRequired 8, // 61: goproto.proto.test.optional_int32:extendee -> goproto.proto.test.TestAllExtensions 8, // 62: goproto.proto.test.optional_int64:extendee -> goproto.proto.test.TestAllExtensions 8, // 63: goproto.proto.test.optional_uint32:extendee -> goproto.proto.test.TestAllExtensions 8, // 64: goproto.proto.test.optional_uint64:extendee -> goproto.proto.test.TestAllExtensions 8, // 65: goproto.proto.test.optional_sint32:extendee -> goproto.proto.test.TestAllExtensions 8, // 66: goproto.proto.test.optional_sint64:extendee -> goproto.proto.test.TestAllExtensions 8, // 67: goproto.proto.test.optional_fixed32:extendee -> goproto.proto.test.TestAllExtensions 8, // 68: goproto.proto.test.optional_fixed64:extendee -> goproto.proto.test.TestAllExtensions 8, // 69: goproto.proto.test.optional_sfixed32:extendee -> goproto.proto.test.TestAllExtensions 8, // 70: goproto.proto.test.optional_sfixed64:extendee -> goproto.proto.test.TestAllExtensions 8, // 71: goproto.proto.test.optional_float:extendee -> goproto.proto.test.TestAllExtensions 8, // 72: goproto.proto.test.optional_double:extendee -> goproto.proto.test.TestAllExtensions 8, // 73: goproto.proto.test.optional_bool:extendee -> goproto.proto.test.TestAllExtensions 8, // 74: goproto.proto.test.optional_string:extendee -> goproto.proto.test.TestAllExtensions 8, // 75: goproto.proto.test.optional_bytes:extendee -> goproto.proto.test.TestAllExtensions 8, // 76: goproto.proto.test.optionalgroup:extendee -> goproto.proto.test.TestAllExtensions 8, // 77: goproto.proto.test.optional_nested_message:extendee -> goproto.proto.test.TestAllExtensions 8, // 78: goproto.proto.test.optional_nested_enum:extendee -> goproto.proto.test.TestAllExtensions 8, // 79: goproto.proto.test.repeated_int32:extendee -> goproto.proto.test.TestAllExtensions 8, // 80: goproto.proto.test.repeated_int64:extendee -> goproto.proto.test.TestAllExtensions 8, // 81: goproto.proto.test.repeated_uint32:extendee -> goproto.proto.test.TestAllExtensions 8, // 82: goproto.proto.test.repeated_uint64:extendee -> goproto.proto.test.TestAllExtensions 8, // 83: goproto.proto.test.repeated_sint32:extendee -> goproto.proto.test.TestAllExtensions 8, // 84: goproto.proto.test.repeated_sint64:extendee -> goproto.proto.test.TestAllExtensions 8, // 85: goproto.proto.test.repeated_fixed32:extendee -> goproto.proto.test.TestAllExtensions 8, // 86: goproto.proto.test.repeated_fixed64:extendee -> goproto.proto.test.TestAllExtensions 8, // 87: goproto.proto.test.repeated_sfixed32:extendee -> goproto.proto.test.TestAllExtensions 8, // 88: goproto.proto.test.repeated_sfixed64:extendee -> goproto.proto.test.TestAllExtensions 8, // 89: goproto.proto.test.repeated_float:extendee -> goproto.proto.test.TestAllExtensions 8, // 90: goproto.proto.test.repeated_double:extendee -> goproto.proto.test.TestAllExtensions 8, // 91: goproto.proto.test.repeated_bool:extendee -> goproto.proto.test.TestAllExtensions 8, // 92: goproto.proto.test.repeated_string:extendee -> goproto.proto.test.TestAllExtensions 8, // 93: goproto.proto.test.repeated_bytes:extendee -> goproto.proto.test.TestAllExtensions 8, // 94: goproto.proto.test.repeatedgroup:extendee -> goproto.proto.test.TestAllExtensions 8, // 95: goproto.proto.test.repeated_nested_message:extendee -> goproto.proto.test.TestAllExtensions 8, // 96: goproto.proto.test.repeated_nested_enum:extendee -> goproto.proto.test.TestAllExtensions 8, // 97: goproto.proto.test.default_int32:extendee -> goproto.proto.test.TestAllExtensions 8, // 98: goproto.proto.test.default_int64:extendee -> goproto.proto.test.TestAllExtensions 8, // 99: goproto.proto.test.default_uint32:extendee -> goproto.proto.test.TestAllExtensions 8, // 100: goproto.proto.test.default_uint64:extendee -> goproto.proto.test.TestAllExtensions 8, // 101: goproto.proto.test.default_sint32:extendee -> goproto.proto.test.TestAllExtensions 8, // 102: goproto.proto.test.default_sint64:extendee -> goproto.proto.test.TestAllExtensions 8, // 103: goproto.proto.test.default_fixed32:extendee -> goproto.proto.test.TestAllExtensions 8, // 104: goproto.proto.test.default_fixed64:extendee -> goproto.proto.test.TestAllExtensions 8, // 105: goproto.proto.test.default_sfixed32:extendee -> goproto.proto.test.TestAllExtensions 8, // 106: goproto.proto.test.default_sfixed64:extendee -> goproto.proto.test.TestAllExtensions 8, // 107: goproto.proto.test.default_float:extendee -> goproto.proto.test.TestAllExtensions 8, // 108: goproto.proto.test.default_double:extendee -> goproto.proto.test.TestAllExtensions 8, // 109: goproto.proto.test.default_bool:extendee -> goproto.proto.test.TestAllExtensions 8, // 110: goproto.proto.test.default_string:extendee -> goproto.proto.test.TestAllExtensions 8, // 111: goproto.proto.test.default_bytes:extendee -> goproto.proto.test.TestAllExtensions 18, // 112: goproto.proto.test.packed_int32:extendee -> goproto.proto.test.TestPackedExtensions 18, // 113: goproto.proto.test.packed_int64:extendee -> goproto.proto.test.TestPackedExtensions 18, // 114: goproto.proto.test.packed_uint32:extendee -> goproto.proto.test.TestPackedExtensions 18, // 115: goproto.proto.test.packed_uint64:extendee -> goproto.proto.test.TestPackedExtensions 18, // 116: goproto.proto.test.packed_sint32:extendee -> goproto.proto.test.TestPackedExtensions 18, // 117: goproto.proto.test.packed_sint64:extendee -> goproto.proto.test.TestPackedExtensions 18, // 118: goproto.proto.test.packed_fixed32:extendee -> goproto.proto.test.TestPackedExtensions 18, // 119: goproto.proto.test.packed_fixed64:extendee -> goproto.proto.test.TestPackedExtensions 18, // 120: goproto.proto.test.packed_sfixed32:extendee -> goproto.proto.test.TestPackedExtensions 18, // 121: goproto.proto.test.packed_sfixed64:extendee -> goproto.proto.test.TestPackedExtensions 18, // 122: goproto.proto.test.packed_float:extendee -> goproto.proto.test.TestPackedExtensions 18, // 123: goproto.proto.test.packed_double:extendee -> goproto.proto.test.TestPackedExtensions 18, // 124: goproto.proto.test.packed_bool:extendee -> goproto.proto.test.TestPackedExtensions 18, // 125: goproto.proto.test.packed_enum:extendee -> goproto.proto.test.TestPackedExtensions 19, // 126: goproto.proto.test.unpacked_int32:extendee -> goproto.proto.test.TestUnpackedExtensions 19, // 127: goproto.proto.test.unpacked_int64:extendee -> goproto.proto.test.TestUnpackedExtensions 19, // 128: goproto.proto.test.unpacked_uint32:extendee -> goproto.proto.test.TestUnpackedExtensions 19, // 129: goproto.proto.test.unpacked_uint64:extendee -> goproto.proto.test.TestUnpackedExtensions 19, // 130: goproto.proto.test.unpacked_sint32:extendee -> goproto.proto.test.TestUnpackedExtensions 19, // 131: goproto.proto.test.unpacked_sint64:extendee -> goproto.proto.test.TestUnpackedExtensions 19, // 132: goproto.proto.test.unpacked_fixed32:extendee -> goproto.proto.test.TestUnpackedExtensions 19, // 133: goproto.proto.test.unpacked_fixed64:extendee -> goproto.proto.test.TestUnpackedExtensions 19, // 134: goproto.proto.test.unpacked_sfixed32:extendee -> goproto.proto.test.TestUnpackedExtensions 19, // 135: goproto.proto.test.unpacked_sfixed64:extendee -> goproto.proto.test.TestUnpackedExtensions 19, // 136: goproto.proto.test.unpacked_float:extendee -> goproto.proto.test.TestUnpackedExtensions 19, // 137: goproto.proto.test.unpacked_double:extendee -> goproto.proto.test.TestUnpackedExtensions 19, // 138: goproto.proto.test.unpacked_bool:extendee -> goproto.proto.test.TestUnpackedExtensions 19, // 139: goproto.proto.test.unpacked_enum:extendee -> goproto.proto.test.TestUnpackedExtensions 8, // 140: goproto.proto.test.TestNestedExtension.nested_string_extension:extendee -> goproto.proto.test.TestAllExtensions 8, // 141: goproto.proto.test.TestRequired.single:extendee -> goproto.proto.test.TestAllExtensions 8, // 142: goproto.proto.test.TestRequired.multi:extendee -> goproto.proto.test.TestAllExtensions 9, // 143: goproto.proto.test.optionalgroup:type_name -> goproto.proto.test.OptionalGroup 45, // 144: goproto.proto.test.optional_nested_message:type_name -> goproto.proto.test.TestAllExtensions.NestedMessage 2, // 145: goproto.proto.test.optional_nested_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum 10, // 146: goproto.proto.test.repeatedgroup:type_name -> goproto.proto.test.RepeatedGroup 45, // 147: goproto.proto.test.repeated_nested_message:type_name -> goproto.proto.test.TestAllExtensions.NestedMessage 2, // 148: goproto.proto.test.repeated_nested_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum 0, // 149: goproto.proto.test.packed_enum:type_name -> goproto.proto.test.ForeignEnum 0, // 150: goproto.proto.test.unpacked_enum:type_name -> goproto.proto.test.ForeignEnum 12, // 151: goproto.proto.test.TestRequired.single:type_name -> goproto.proto.test.TestRequired 12, // 152: goproto.proto.test.TestRequired.multi:type_name -> goproto.proto.test.TestRequired 20, // 153: goproto.proto.test.TestService.Foo:input_type -> goproto.proto.test.FooRequest 20, // 154: goproto.proto.test.TestService.TestStream:input_type -> goproto.proto.test.FooRequest 5, // 155: goproto.proto.test.TestDeprecatedService.Deprecated:input_type -> goproto.proto.test.TestDeprecatedMessage 21, // 156: goproto.proto.test.TestService.Foo:output_type -> goproto.proto.test.FooResponse 21, // 157: goproto.proto.test.TestService.TestStream:output_type -> goproto.proto.test.FooResponse 5, // 158: goproto.proto.test.TestDeprecatedService.Deprecated:output_type -> goproto.proto.test.TestDeprecatedMessage 156, // [156:159] is the sub-list for method output_type 153, // [153:156] is the sub-list for method input_type 143, // [143:153] is the sub-list for extension type_name 61, // [61:143] is the sub-list for extension extendee 0, // [0:61] is the sub-list for field type_name } func init() { file_internal_testprotos_test_test_proto_init() } func file_internal_testprotos_test_test_proto_init() { if File_internal_testprotos_test_test_proto != nil { return } file_internal_testprotos_test_test_import_proto_init() file_internal_testprotos_test_test_public_proto_init() if !protoimpl.UnsafeEnabled { file_internal_testprotos_test_test_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestAllTypes); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestDeprecatedMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ForeignMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestReservedFields); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestAllExtensions); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OptionalGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RepeatedGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestNestedExtension); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestRequired); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestRequiredForeign); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestRequiredGroupFields); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestWeak); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.weakFields case 3: return &v.unknownFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestPackedTypes); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestUnpackedTypes); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestPackedExtensions); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestUnpackedExtensions); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FooRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FooResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WeirdDefault); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoteDefault); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestAllTypes_NestedMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestAllTypes_OptionalGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestAllTypes_RepeatedGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestAllTypes_OneofGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestAllExtensions_NestedMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestRequiredGroupFields_OptionalGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test_test_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestRequiredGroupFields_RepeatedGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_internal_testprotos_test_test_proto_msgTypes[0].OneofWrappers = []interface{}{ (*TestAllTypes_OneofUint32)(nil), (*TestAllTypes_OneofNestedMessage)(nil), (*TestAllTypes_OneofString)(nil), (*TestAllTypes_OneofBytes)(nil), (*TestAllTypes_OneofBool)(nil), (*TestAllTypes_OneofUint64)(nil), (*TestAllTypes_OneofFloat)(nil), (*TestAllTypes_OneofDouble)(nil), (*TestAllTypes_OneofEnum)(nil), (*TestAllTypes_Oneofgroup)(nil), (*TestAllTypes_OneofOptionalUint32)(nil), } file_internal_testprotos_test_test_proto_msgTypes[1].OneofWrappers = []interface{}{ (*TestDeprecatedMessage_DeprecatedOneofField)(nil), } file_internal_testprotos_test_test_proto_msgTypes[9].OneofWrappers = []interface{}{ (*TestRequiredForeign_OneofMessage)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_test_test_proto_rawDesc, NumEnums: 4, NumMessages: 45, NumExtensions: 82, NumServices: 2, }, GoTypes: file_internal_testprotos_test_test_proto_goTypes, DependencyIndexes: file_internal_testprotos_test_test_proto_depIdxs, EnumInfos: file_internal_testprotos_test_test_proto_enumTypes, MessageInfos: file_internal_testprotos_test_test_proto_msgTypes, ExtensionInfos: file_internal_testprotos_test_test_proto_extTypes, }.Build() File_internal_testprotos_test_test_proto = out.File file_internal_testprotos_test_test_proto_rawDesc = nil file_internal_testprotos_test_test_proto_goTypes = nil file_internal_testprotos_test_test_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/test/test.proto000066400000000000000000000360761411250152500252560ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.proto.test; import "internal/testprotos/enums/enums.proto"; import "internal/testprotos/test/test_import.proto"; import public "internal/testprotos/test/test_public.proto"; import weak "internal/testprotos/test/weak1/test_weak.proto"; import weak "internal/testprotos/test/weak2/test_weak.proto"; option go_package = "google.golang.org/protobuf/internal/testprotos/test"; message TestAllTypes { message NestedMessage { optional int32 a = 1; optional TestAllTypes corecursive = 2; } enum NestedEnum { FOO = 0; BAR = 1; BAZ = 2; NEG = -1; // Intentionally negative. } optional int32 optional_int32 = 1; optional int64 optional_int64 = 2; optional uint32 optional_uint32 = 3; optional uint64 optional_uint64 = 4; optional sint32 optional_sint32 = 5; optional sint64 optional_sint64 = 6; optional fixed32 optional_fixed32 = 7; optional fixed64 optional_fixed64 = 8; optional sfixed32 optional_sfixed32 = 9; optional sfixed64 optional_sfixed64 = 10; optional float optional_float = 11; optional double optional_double = 12; optional bool optional_bool = 13; optional string optional_string = 14; optional bytes optional_bytes = 15; optional group OptionalGroup = 16 { optional int32 a = 17; optional NestedMessage optional_nested_message = 1000; optional int32 same_field_number = 16; } optional NestedMessage optional_nested_message = 18; optional ForeignMessage optional_foreign_message = 19; optional ImportMessage optional_import_message = 20; optional NestedEnum optional_nested_enum = 21; optional ForeignEnum optional_foreign_enum = 22; optional ImportEnum optional_import_enum = 23; repeated int32 repeated_int32 = 31; repeated int64 repeated_int64 = 32; repeated uint32 repeated_uint32 = 33; repeated uint64 repeated_uint64 = 34; repeated sint32 repeated_sint32 = 35; repeated sint64 repeated_sint64 = 36; repeated fixed32 repeated_fixed32 = 37; repeated fixed64 repeated_fixed64 = 38; repeated sfixed32 repeated_sfixed32 = 39; repeated sfixed64 repeated_sfixed64 = 40; repeated float repeated_float = 41; repeated double repeated_double = 42; repeated bool repeated_bool = 43; repeated string repeated_string = 44; repeated bytes repeated_bytes = 45; repeated group RepeatedGroup = 46 { optional int32 a = 47; optional NestedMessage optional_nested_message = 1001; } repeated NestedMessage repeated_nested_message = 48; repeated ForeignMessage repeated_foreign_message = 49; repeated ImportMessage repeated_importmessage = 50; repeated NestedEnum repeated_nested_enum = 51; repeated ForeignEnum repeated_foreign_enum = 52; repeated ImportEnum repeated_importenum = 53; map < int32, int32> map_int32_int32 = 56; map < int64, int64> map_int64_int64 = 57; map < uint32, uint32> map_uint32_uint32 = 58; map < uint64, uint64> map_uint64_uint64 = 59; map < sint32, sint32> map_sint32_sint32 = 60; map < sint64, sint64> map_sint64_sint64 = 61; map < fixed32, fixed32> map_fixed32_fixed32 = 62; map < fixed64, fixed64> map_fixed64_fixed64 = 63; map map_sfixed32_sfixed32 = 64; map map_sfixed64_sfixed64 = 65; map < int32, float> map_int32_float = 66; map < int32, double> map_int32_double = 67; map < bool, bool> map_bool_bool = 68; map < string, string> map_string_string = 69; map < string, bytes> map_string_bytes = 70; map < string, NestedMessage> map_string_nested_message = 71; map < string, NestedEnum> map_string_nested_enum = 73; // Singular with defaults optional int32 default_int32 = 81 [default = 81 ]; optional int64 default_int64 = 82 [default = 82 ]; optional uint32 default_uint32 = 83 [default = 83 ]; optional uint64 default_uint64 = 84 [default = 84 ]; optional sint32 default_sint32 = 85 [default = -85 ]; optional sint64 default_sint64 = 86 [default = 86 ]; optional fixed32 default_fixed32 = 87 [default = 87 ]; optional fixed64 default_fixed64 = 88 [default = 88 ]; optional sfixed32 default_sfixed32 = 89 [default = 89 ]; optional sfixed64 default_sfixed64 = 80 [default = -90 ]; optional float default_float = 91 [default = 91.5 ]; optional double default_double = 92 [default = 92e3 ]; optional bool default_bool = 93 [default = true ]; optional string default_string = 94 [default = "hello"]; optional bytes default_bytes = 95 [default = "world"]; optional NestedEnum default_nested_enum = 96 [default = BAR ]; optional ForeignEnum default_foreign_enum = 97 [default = FOREIGN_BAR]; oneof oneof_field { uint32 oneof_uint32 = 111; NestedMessage oneof_nested_message = 112; string oneof_string = 113; bytes oneof_bytes = 114; bool oneof_bool = 115; uint64 oneof_uint64 = 116; float oneof_float = 117; double oneof_double = 118; NestedEnum oneof_enum = 119; group OneofGroup = 121 { optional int32 a = 1; optional int32 b = 2; } } // A oneof with exactly one field. oneof oneof_optional { uint32 oneof_optional_uint32 = 120; } } message TestDeprecatedMessage { option deprecated = true; optional int32 deprecated_int32 = 1 [deprecated=true]; enum DeprecatedEnum { option deprecated = true; DEPRECATED = 0 [deprecated=true]; } oneof deprecated_oneof { int32 deprecated_oneof_field = 2 [deprecated = true]; } } message ForeignMessage { optional int32 c = 1; optional int32 d = 2; } enum ForeignEnum { FOREIGN_FOO = 4; FOREIGN_BAR = 5; FOREIGN_BAZ = 6; } message TestReservedFields { reserved 2, 15, 9 to 11; reserved "bar", "baz"; } enum TestReservedEnumFields { RESERVED_ENUM = 0; reserved 2, 15, 9 to 11; reserved "BAR", "BAZ"; } message TestAllExtensions { message NestedMessage { optional int32 a = 1; optional TestAllExtensions corecursive = 2; } extensions 1 to max; } extend TestAllExtensions { optional int32 optional_int32 = 1; optional int64 optional_int64 = 2; optional uint32 optional_uint32 = 3; optional uint64 optional_uint64 = 4; optional sint32 optional_sint32 = 5; optional sint64 optional_sint64 = 6; optional fixed32 optional_fixed32 = 7; optional fixed64 optional_fixed64 = 8; optional sfixed32 optional_sfixed32 = 9; optional sfixed64 optional_sfixed64 = 10; optional float optional_float = 11; optional double optional_double = 12; optional bool optional_bool = 13; optional string optional_string = 14; optional bytes optional_bytes = 15; optional group OptionalGroup = 16 { optional int32 a = 17; optional int32 same_field_number = 16; optional TestAllExtensions.NestedMessage optional_nested_message = 1000; } optional TestAllExtensions.NestedMessage optional_nested_message = 18; optional TestAllTypes.NestedEnum optional_nested_enum = 21; repeated int32 repeated_int32 = 31; repeated int64 repeated_int64 = 32; repeated uint32 repeated_uint32 = 33; repeated uint64 repeated_uint64 = 34; repeated sint32 repeated_sint32 = 35; repeated sint64 repeated_sint64 = 36; repeated fixed32 repeated_fixed32 = 37; repeated fixed64 repeated_fixed64 = 38; repeated sfixed32 repeated_sfixed32 = 39; repeated sfixed64 repeated_sfixed64 = 40; repeated float repeated_float = 41; repeated double repeated_double = 42; repeated bool repeated_bool = 43; repeated string repeated_string = 44; repeated bytes repeated_bytes = 45; repeated group RepeatedGroup = 46 { optional int32 a = 47; optional TestAllExtensions.NestedMessage optional_nested_message = 1001; } repeated TestAllExtensions.NestedMessage repeated_nested_message = 48; repeated TestAllTypes.NestedEnum repeated_nested_enum = 51; optional int32 default_int32 = 81 [default = 81 ]; optional int64 default_int64 = 82 [default = 82 ]; optional uint32 default_uint32 = 83 [default = 83 ]; optional uint64 default_uint64 = 84 [default = 84 ]; optional sint32 default_sint32 = 85 [default = -85 ]; optional sint64 default_sint64 = 86 [default = 86 ]; optional fixed32 default_fixed32 = 87 [default = 87 ]; optional fixed64 default_fixed64 = 88 [default = 88 ]; optional sfixed32 default_sfixed32 = 89 [default = 89 ]; optional sfixed64 default_sfixed64 = 80 [default = -90 ]; optional float default_float = 91 [default = 91.5 ]; optional double default_double = 92 [default = 92e3 ]; optional bool default_bool = 93 [default = true ]; optional string default_string = 94 [default = "hello"]; optional bytes default_bytes = 95 [default = "world"]; } message TestNestedExtension { extend TestAllExtensions { optional string nested_string_extension = 1003; } } message TestRequired { required int32 required_field = 1; extend TestAllExtensions { optional TestRequired single = 1000; repeated TestRequired multi = 1001; } } message TestRequiredForeign { optional TestRequired optional_message = 1; repeated TestRequired repeated_message = 2; map map_message = 3; oneof oneof_field { TestRequired oneof_message = 4; } } message TestRequiredGroupFields { optional group OptionalGroup = 1 { required int32 a = 2; } repeated group RepeatedGroup = 3 { required int32 a = 4; } } message TestWeak { optional goproto.proto.test.weak.WeakImportMessage1 weak_message1 = 1 [weak=true]; optional goproto.proto.test.weak.WeakImportMessage2 weak_message2 = 2 [weak=true]; } message TestPackedTypes { repeated int32 packed_int32 = 90 [packed = true]; repeated int64 packed_int64 = 91 [packed = true]; repeated uint32 packed_uint32 = 92 [packed = true]; repeated uint64 packed_uint64 = 93 [packed = true]; repeated sint32 packed_sint32 = 94 [packed = true]; repeated sint64 packed_sint64 = 95 [packed = true]; repeated fixed32 packed_fixed32 = 96 [packed = true]; repeated fixed64 packed_fixed64 = 97 [packed = true]; repeated sfixed32 packed_sfixed32 = 98 [packed = true]; repeated sfixed64 packed_sfixed64 = 99 [packed = true]; repeated float packed_float = 100 [packed = true]; repeated double packed_double = 101 [packed = true]; repeated bool packed_bool = 102 [packed = true]; repeated ForeignEnum packed_enum = 103 [packed = true]; } message TestUnpackedTypes { repeated int32 unpacked_int32 = 90 [packed = false]; repeated int64 unpacked_int64 = 91 [packed = false]; repeated uint32 unpacked_uint32 = 92 [packed = false]; repeated uint64 unpacked_uint64 = 93 [packed = false]; repeated sint32 unpacked_sint32 = 94 [packed = false]; repeated sint64 unpacked_sint64 = 95 [packed = false]; repeated fixed32 unpacked_fixed32 = 96 [packed = false]; repeated fixed64 unpacked_fixed64 = 97 [packed = false]; repeated sfixed32 unpacked_sfixed32 = 98 [packed = false]; repeated sfixed64 unpacked_sfixed64 = 99 [packed = false]; repeated float unpacked_float = 100 [packed = false]; repeated double unpacked_double = 101 [packed = false]; repeated bool unpacked_bool = 102 [packed = false]; repeated ForeignEnum unpacked_enum = 103 [packed = false]; } message TestPackedExtensions { extensions 1 to max; } extend TestPackedExtensions { repeated int32 packed_int32 = 90 [packed = true]; repeated int64 packed_int64 = 91 [packed = true]; repeated uint32 packed_uint32 = 92 [packed = true]; repeated uint64 packed_uint64 = 93 [packed = true]; repeated sint32 packed_sint32 = 94 [packed = true]; repeated sint64 packed_sint64 = 95 [packed = true]; repeated fixed32 packed_fixed32 = 96 [packed = true]; repeated fixed64 packed_fixed64 = 97 [packed = true]; repeated sfixed32 packed_sfixed32 = 98 [packed = true]; repeated sfixed64 packed_sfixed64 = 99 [packed = true]; repeated float packed_float = 100 [packed = true]; repeated double packed_double = 101 [packed = true]; repeated bool packed_bool = 102 [packed = true]; repeated ForeignEnum packed_enum = 103 [packed = true]; } message TestUnpackedExtensions { extensions 1 to max; } extend TestUnpackedExtensions { repeated int32 unpacked_int32 = 90 [packed = false]; repeated int64 unpacked_int64 = 91 [packed = false]; repeated uint32 unpacked_uint32 = 92 [packed = false]; repeated uint64 unpacked_uint64 = 93 [packed = false]; repeated sint32 unpacked_sint32 = 94 [packed = false]; repeated sint64 unpacked_sint64 = 95 [packed = false]; repeated fixed32 unpacked_fixed32 = 96 [packed = false]; repeated fixed64 unpacked_fixed64 = 97 [packed = false]; repeated sfixed32 unpacked_sfixed32 = 98 [packed = false]; repeated sfixed64 unpacked_sfixed64 = 99 [packed = false]; repeated float unpacked_float = 100 [packed = false]; repeated double unpacked_double = 101 [packed = false]; repeated bool unpacked_bool = 102 [packed = false]; repeated ForeignEnum unpacked_enum = 103 [packed = false]; } // Test that RPC services work. message FooRequest {} message FooResponse {} service TestService { rpc Foo(FooRequest) returns (FooResponse); rpc TestStream(stream FooRequest) returns (stream FooResponse); } service TestDeprecatedService { option deprecated = true; rpc Deprecated(TestDeprecatedMessage) returns (TestDeprecatedMessage) { option deprecated = true; } } message WeirdDefault { optional bytes weird_default = 1 [default = "hello, \"world!\"\ndead\xde\xad\xbe\xefbeef`"]; } message RemoteDefault { optional goproto.proto.enums.Enum default = 1; optional goproto.proto.enums.Enum zero = 2 [default = ZERO]; optional goproto.proto.enums.Enum one = 3 [default = ONE]; optional goproto.proto.enums.Enum elevent = 4 [default = ELEVENT]; optional goproto.proto.enums.Enum seventeen = 5 [default = SEVENTEEN]; optional goproto.proto.enums.Enum thirtyseven = 6 [default = THIRTYSEVEN]; optional goproto.proto.enums.Enum sixtyseven = 7 [default = SIXTYSEVEN]; optional goproto.proto.enums.Enum negative = 8 [default = NEGATIVE]; } golang-google-protobuf-1.27.1/internal/testprotos/test/test_import.pb.go000066400000000000000000000146401411250152500265030ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/test/test_import.proto package test import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type ImportEnum int32 const ( ImportEnum_IMPORT_ZERO ImportEnum = 0 ) // Enum value maps for ImportEnum. var ( ImportEnum_name = map[int32]string{ 0: "IMPORT_ZERO", } ImportEnum_value = map[string]int32{ "IMPORT_ZERO": 0, } ) func (x ImportEnum) Enum() *ImportEnum { p := new(ImportEnum) *p = x return p } func (x ImportEnum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ImportEnum) Descriptor() protoreflect.EnumDescriptor { return file_internal_testprotos_test_test_import_proto_enumTypes[0].Descriptor() } func (ImportEnum) Type() protoreflect.EnumType { return &file_internal_testprotos_test_test_import_proto_enumTypes[0] } func (x ImportEnum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *ImportEnum) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = ImportEnum(num) return nil } // Deprecated: Use ImportEnum.Descriptor instead. func (ImportEnum) EnumDescriptor() ([]byte, []int) { return file_internal_testprotos_test_test_import_proto_rawDescGZIP(), []int{0} } type ImportMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ImportMessage) Reset() { *x = ImportMessage{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_import_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ImportMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*ImportMessage) ProtoMessage() {} func (x *ImportMessage) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_import_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ImportMessage.ProtoReflect.Descriptor instead. func (*ImportMessage) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_import_proto_rawDescGZIP(), []int{0} } var File_internal_testprotos_test_test_import_proto protoreflect.FileDescriptor var file_internal_testprotos_test_test_import_proto_rawDesc = []byte{ 0x0a, 0x2a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x22, 0x0f, 0x0a, 0x0d, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2a, 0x1d, 0x0a, 0x0a, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x42, 0x35, 0x5a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, } var ( file_internal_testprotos_test_test_import_proto_rawDescOnce sync.Once file_internal_testprotos_test_test_import_proto_rawDescData = file_internal_testprotos_test_test_import_proto_rawDesc ) func file_internal_testprotos_test_test_import_proto_rawDescGZIP() []byte { file_internal_testprotos_test_test_import_proto_rawDescOnce.Do(func() { file_internal_testprotos_test_test_import_proto_rawDescData = protoimpl.X.CompressGZIP(file_internal_testprotos_test_test_import_proto_rawDescData) }) return file_internal_testprotos_test_test_import_proto_rawDescData } var file_internal_testprotos_test_test_import_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_internal_testprotos_test_test_import_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_internal_testprotos_test_test_import_proto_goTypes = []interface{}{ (ImportEnum)(0), // 0: goproto.proto.test.ImportEnum (*ImportMessage)(nil), // 1: goproto.proto.test.ImportMessage } var file_internal_testprotos_test_test_import_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_internal_testprotos_test_test_import_proto_init() } func file_internal_testprotos_test_test_import_proto_init() { if File_internal_testprotos_test_test_import_proto != nil { return } if !protoimpl.UnsafeEnabled { file_internal_testprotos_test_test_import_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ImportMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_test_test_import_proto_rawDesc, NumEnums: 1, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_internal_testprotos_test_test_import_proto_goTypes, DependencyIndexes: file_internal_testprotos_test_test_import_proto_depIdxs, EnumInfos: file_internal_testprotos_test_test_import_proto_enumTypes, MessageInfos: file_internal_testprotos_test_test_import_proto_msgTypes, }.Build() File_internal_testprotos_test_test_import_proto = out.File file_internal_testprotos_test_test_import_proto_rawDesc = nil file_internal_testprotos_test_test_import_proto_goTypes = nil file_internal_testprotos_test_test_import_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/test/test_import.proto000066400000000000000000000005361411250152500266400ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.proto.test; option go_package = "google.golang.org/protobuf/internal/testprotos/test"; message ImportMessage { } enum ImportEnum { IMPORT_ZERO = 0; } golang-google-protobuf-1.27.1/internal/testprotos/test/test_public.pb.go000066400000000000000000000116611411250152500264470ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/test/test_public.proto package test import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type PublicImportMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *PublicImportMessage) Reset() { *x = PublicImportMessage{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_test_public_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PublicImportMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*PublicImportMessage) ProtoMessage() {} func (x *PublicImportMessage) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_test_public_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PublicImportMessage.ProtoReflect.Descriptor instead. func (*PublicImportMessage) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_test_public_proto_rawDescGZIP(), []int{0} } var File_internal_testprotos_test_test_public_proto protoreflect.FileDescriptor var file_internal_testprotos_test_test_public_proto_rawDesc = []byte{ 0x0a, 0x2a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x22, 0x15, 0x0a, 0x13, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x35, 0x5a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, } var ( file_internal_testprotos_test_test_public_proto_rawDescOnce sync.Once file_internal_testprotos_test_test_public_proto_rawDescData = file_internal_testprotos_test_test_public_proto_rawDesc ) func file_internal_testprotos_test_test_public_proto_rawDescGZIP() []byte { file_internal_testprotos_test_test_public_proto_rawDescOnce.Do(func() { file_internal_testprotos_test_test_public_proto_rawDescData = protoimpl.X.CompressGZIP(file_internal_testprotos_test_test_public_proto_rawDescData) }) return file_internal_testprotos_test_test_public_proto_rawDescData } var file_internal_testprotos_test_test_public_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_internal_testprotos_test_test_public_proto_goTypes = []interface{}{ (*PublicImportMessage)(nil), // 0: goproto.proto.test.PublicImportMessage } var file_internal_testprotos_test_test_public_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_internal_testprotos_test_test_public_proto_init() } func file_internal_testprotos_test_test_public_proto_init() { if File_internal_testprotos_test_test_public_proto != nil { return } if !protoimpl.UnsafeEnabled { file_internal_testprotos_test_test_public_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PublicImportMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_test_test_public_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_internal_testprotos_test_test_public_proto_goTypes, DependencyIndexes: file_internal_testprotos_test_test_public_proto_depIdxs, MessageInfos: file_internal_testprotos_test_test_public_proto_msgTypes, }.Build() File_internal_testprotos_test_test_public_proto = out.File file_internal_testprotos_test_test_public_proto_rawDesc = nil file_internal_testprotos_test_test_public_proto_goTypes = nil file_internal_testprotos_test_test_public_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/test/test_public.proto000066400000000000000000000004751411250152500266060ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.proto.test; option go_package = "google.golang.org/protobuf/internal/testprotos/test"; message PublicImportMessage { } golang-google-protobuf-1.27.1/internal/testprotos/test/weak1/000077500000000000000000000000001411250152500242065ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/test/weak1/test_weak.pb.go000066400000000000000000000125601411250152500271270ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/test/weak1/test_weak.proto package weak1 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type WeakImportMessage1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields A *int32 `protobuf:"varint,1,req,name=a" json:"a,omitempty"` } func (x *WeakImportMessage1) Reset() { *x = WeakImportMessage1{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_weak1_test_weak_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WeakImportMessage1) String() string { return protoimpl.X.MessageStringOf(x) } func (*WeakImportMessage1) ProtoMessage() {} func (x *WeakImportMessage1) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_weak1_test_weak_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WeakImportMessage1.ProtoReflect.Descriptor instead. func (*WeakImportMessage1) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_weak1_test_weak_proto_rawDescGZIP(), []int{0} } func (x *WeakImportMessage1) GetA() int32 { if x != nil && x.A != nil { return *x.A } return 0 } var File_internal_testprotos_test_weak1_test_weak_proto protoreflect.FileDescriptor var file_internal_testprotos_test_weak1_test_weak_proto_rawDesc = []byte{ 0x0a, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x77, 0x65, 0x61, 0x6b, 0x31, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x77, 0x65, 0x61, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x77, 0x65, 0x61, 0x6b, 0x22, 0x22, 0x0a, 0x12, 0x57, 0x65, 0x61, 0x6b, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x12, 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x01, 0x61, 0x42, 0x3b, 0x5a, 0x39, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x77, 0x65, 0x61, 0x6b, 0x31, } var ( file_internal_testprotos_test_weak1_test_weak_proto_rawDescOnce sync.Once file_internal_testprotos_test_weak1_test_weak_proto_rawDescData = file_internal_testprotos_test_weak1_test_weak_proto_rawDesc ) func file_internal_testprotos_test_weak1_test_weak_proto_rawDescGZIP() []byte { file_internal_testprotos_test_weak1_test_weak_proto_rawDescOnce.Do(func() { file_internal_testprotos_test_weak1_test_weak_proto_rawDescData = protoimpl.X.CompressGZIP(file_internal_testprotos_test_weak1_test_weak_proto_rawDescData) }) return file_internal_testprotos_test_weak1_test_weak_proto_rawDescData } var file_internal_testprotos_test_weak1_test_weak_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_internal_testprotos_test_weak1_test_weak_proto_goTypes = []interface{}{ (*WeakImportMessage1)(nil), // 0: goproto.proto.test.weak.WeakImportMessage1 } var file_internal_testprotos_test_weak1_test_weak_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_internal_testprotos_test_weak1_test_weak_proto_init() } func file_internal_testprotos_test_weak1_test_weak_proto_init() { if File_internal_testprotos_test_weak1_test_weak_proto != nil { return } if !protoimpl.UnsafeEnabled { file_internal_testprotos_test_weak1_test_weak_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WeakImportMessage1); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_test_weak1_test_weak_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_internal_testprotos_test_weak1_test_weak_proto_goTypes, DependencyIndexes: file_internal_testprotos_test_weak1_test_weak_proto_depIdxs, MessageInfos: file_internal_testprotos_test_weak1_test_weak_proto_msgTypes, }.Build() File_internal_testprotos_test_weak1_test_weak_proto = out.File file_internal_testprotos_test_weak1_test_weak_proto_rawDesc = nil file_internal_testprotos_test_weak1_test_weak_proto_goTypes = nil file_internal_testprotos_test_weak1_test_weak_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/test/weak1/test_weak.proto000066400000000000000000000005361411250152500272650ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.proto.test.weak; option go_package = "google.golang.org/protobuf/internal/testprotos/test/weak1"; message WeakImportMessage1 { required int32 a = 1; } golang-google-protobuf-1.27.1/internal/testprotos/test/weak2/000077500000000000000000000000001411250152500242075ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/test/weak2/test_weak.pb.go000066400000000000000000000125601411250152500271300ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/test/weak2/test_weak.proto package weak2 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type WeakImportMessage2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields A *int32 `protobuf:"varint,1,req,name=a" json:"a,omitempty"` } func (x *WeakImportMessage2) Reset() { *x = WeakImportMessage2{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test_weak2_test_weak_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WeakImportMessage2) String() string { return protoimpl.X.MessageStringOf(x) } func (*WeakImportMessage2) ProtoMessage() {} func (x *WeakImportMessage2) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test_weak2_test_weak_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WeakImportMessage2.ProtoReflect.Descriptor instead. func (*WeakImportMessage2) Descriptor() ([]byte, []int) { return file_internal_testprotos_test_weak2_test_weak_proto_rawDescGZIP(), []int{0} } func (x *WeakImportMessage2) GetA() int32 { if x != nil && x.A != nil { return *x.A } return 0 } var File_internal_testprotos_test_weak2_test_weak_proto protoreflect.FileDescriptor var file_internal_testprotos_test_weak2_test_weak_proto_rawDesc = []byte{ 0x0a, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x77, 0x65, 0x61, 0x6b, 0x32, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x77, 0x65, 0x61, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x77, 0x65, 0x61, 0x6b, 0x22, 0x22, 0x0a, 0x12, 0x57, 0x65, 0x61, 0x6b, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x12, 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x01, 0x61, 0x42, 0x3b, 0x5a, 0x39, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x77, 0x65, 0x61, 0x6b, 0x32, } var ( file_internal_testprotos_test_weak2_test_weak_proto_rawDescOnce sync.Once file_internal_testprotos_test_weak2_test_weak_proto_rawDescData = file_internal_testprotos_test_weak2_test_weak_proto_rawDesc ) func file_internal_testprotos_test_weak2_test_weak_proto_rawDescGZIP() []byte { file_internal_testprotos_test_weak2_test_weak_proto_rawDescOnce.Do(func() { file_internal_testprotos_test_weak2_test_weak_proto_rawDescData = protoimpl.X.CompressGZIP(file_internal_testprotos_test_weak2_test_weak_proto_rawDescData) }) return file_internal_testprotos_test_weak2_test_weak_proto_rawDescData } var file_internal_testprotos_test_weak2_test_weak_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_internal_testprotos_test_weak2_test_weak_proto_goTypes = []interface{}{ (*WeakImportMessage2)(nil), // 0: goproto.proto.test.weak.WeakImportMessage2 } var file_internal_testprotos_test_weak2_test_weak_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_internal_testprotos_test_weak2_test_weak_proto_init() } func file_internal_testprotos_test_weak2_test_weak_proto_init() { if File_internal_testprotos_test_weak2_test_weak_proto != nil { return } if !protoimpl.UnsafeEnabled { file_internal_testprotos_test_weak2_test_weak_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WeakImportMessage2); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_test_weak2_test_weak_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_internal_testprotos_test_weak2_test_weak_proto_goTypes, DependencyIndexes: file_internal_testprotos_test_weak2_test_weak_proto_depIdxs, MessageInfos: file_internal_testprotos_test_weak2_test_weak_proto_msgTypes, }.Build() File_internal_testprotos_test_weak2_test_weak_proto = out.File file_internal_testprotos_test_weak2_test_weak_proto_rawDesc = nil file_internal_testprotos_test_weak2_test_weak_proto_goTypes = nil file_internal_testprotos_test_weak2_test_weak_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/test/weak2/test_weak.proto000066400000000000000000000005361411250152500272660ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto2"; package goproto.proto.test.weak; option go_package = "google.golang.org/protobuf/internal/testprotos/test/weak2"; message WeakImportMessage2 { required int32 a = 1; } golang-google-protobuf-1.27.1/internal/testprotos/test3/000077500000000000000000000000001411250152500232615ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/test3/test.pb.go000066400000000000000000002747031411250152500252040ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/test3/test.proto package test3 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type ForeignEnum int32 const ( ForeignEnum_FOREIGN_ZERO ForeignEnum = 0 ForeignEnum_FOREIGN_FOO ForeignEnum = 4 ForeignEnum_FOREIGN_BAR ForeignEnum = 5 ForeignEnum_FOREIGN_BAZ ForeignEnum = 6 ) // Enum value maps for ForeignEnum. var ( ForeignEnum_name = map[int32]string{ 0: "FOREIGN_ZERO", 4: "FOREIGN_FOO", 5: "FOREIGN_BAR", 6: "FOREIGN_BAZ", } ForeignEnum_value = map[string]int32{ "FOREIGN_ZERO": 0, "FOREIGN_FOO": 4, "FOREIGN_BAR": 5, "FOREIGN_BAZ": 6, } ) func (x ForeignEnum) Enum() *ForeignEnum { p := new(ForeignEnum) *p = x return p } func (x ForeignEnum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ForeignEnum) Descriptor() protoreflect.EnumDescriptor { return file_internal_testprotos_test3_test_proto_enumTypes[0].Descriptor() } func (ForeignEnum) Type() protoreflect.EnumType { return &file_internal_testprotos_test3_test_proto_enumTypes[0] } func (x ForeignEnum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ForeignEnum.Descriptor instead. func (ForeignEnum) EnumDescriptor() ([]byte, []int) { return file_internal_testprotos_test3_test_proto_rawDescGZIP(), []int{0} } type TestAllTypes_NestedEnum int32 const ( TestAllTypes_FOO TestAllTypes_NestedEnum = 0 TestAllTypes_BAR TestAllTypes_NestedEnum = 1 TestAllTypes_BAZ TestAllTypes_NestedEnum = 2 TestAllTypes_NEG TestAllTypes_NestedEnum = -1 // Intentionally negative. ) // Enum value maps for TestAllTypes_NestedEnum. var ( TestAllTypes_NestedEnum_name = map[int32]string{ 0: "FOO", 1: "BAR", 2: "BAZ", -1: "NEG", } TestAllTypes_NestedEnum_value = map[string]int32{ "FOO": 0, "BAR": 1, "BAZ": 2, "NEG": -1, } ) func (x TestAllTypes_NestedEnum) Enum() *TestAllTypes_NestedEnum { p := new(TestAllTypes_NestedEnum) *p = x return p } func (x TestAllTypes_NestedEnum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TestAllTypes_NestedEnum) Descriptor() protoreflect.EnumDescriptor { return file_internal_testprotos_test3_test_proto_enumTypes[1].Descriptor() } func (TestAllTypes_NestedEnum) Type() protoreflect.EnumType { return &file_internal_testprotos_test3_test_proto_enumTypes[1] } func (x TestAllTypes_NestedEnum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use TestAllTypes_NestedEnum.Descriptor instead. func (TestAllTypes_NestedEnum) EnumDescriptor() ([]byte, []int) { return file_internal_testprotos_test3_test_proto_rawDescGZIP(), []int{0, 0} } type TestAllTypes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SingularInt32 int32 `protobuf:"varint,81,opt,name=singular_int32,json=singularInt32,proto3" json:"singular_int32,omitempty"` SingularInt64 int64 `protobuf:"varint,82,opt,name=singular_int64,json=singularInt64,proto3" json:"singular_int64,omitempty"` SingularUint32 uint32 `protobuf:"varint,83,opt,name=singular_uint32,json=singularUint32,proto3" json:"singular_uint32,omitempty"` SingularUint64 uint64 `protobuf:"varint,84,opt,name=singular_uint64,json=singularUint64,proto3" json:"singular_uint64,omitempty"` SingularSint32 int32 `protobuf:"zigzag32,85,opt,name=singular_sint32,json=singularSint32,proto3" json:"singular_sint32,omitempty"` SingularSint64 int64 `protobuf:"zigzag64,86,opt,name=singular_sint64,json=singularSint64,proto3" json:"singular_sint64,omitempty"` SingularFixed32 uint32 `protobuf:"fixed32,87,opt,name=singular_fixed32,json=singularFixed32,proto3" json:"singular_fixed32,omitempty"` SingularFixed64 uint64 `protobuf:"fixed64,88,opt,name=singular_fixed64,json=singularFixed64,proto3" json:"singular_fixed64,omitempty"` SingularSfixed32 int32 `protobuf:"fixed32,89,opt,name=singular_sfixed32,json=singularSfixed32,proto3" json:"singular_sfixed32,omitempty"` SingularSfixed64 int64 `protobuf:"fixed64,90,opt,name=singular_sfixed64,json=singularSfixed64,proto3" json:"singular_sfixed64,omitempty"` SingularFloat float32 `protobuf:"fixed32,91,opt,name=singular_float,json=singularFloat,proto3" json:"singular_float,omitempty"` SingularDouble float64 `protobuf:"fixed64,92,opt,name=singular_double,json=singularDouble,proto3" json:"singular_double,omitempty"` SingularBool bool `protobuf:"varint,93,opt,name=singular_bool,json=singularBool,proto3" json:"singular_bool,omitempty"` SingularString string `protobuf:"bytes,94,opt,name=singular_string,json=singularString,proto3" json:"singular_string,omitempty"` SingularBytes []byte `protobuf:"bytes,95,opt,name=singular_bytes,json=singularBytes,proto3" json:"singular_bytes,omitempty"` SingularNestedMessage *TestAllTypes_NestedMessage `protobuf:"bytes,98,opt,name=singular_nested_message,json=singularNestedMessage,proto3" json:"singular_nested_message,omitempty"` SingularForeignMessage *ForeignMessage `protobuf:"bytes,99,opt,name=singular_foreign_message,json=singularForeignMessage,proto3" json:"singular_foreign_message,omitempty"` SingularImportMessage *ImportMessage `protobuf:"bytes,100,opt,name=singular_import_message,json=singularImportMessage,proto3" json:"singular_import_message,omitempty"` SingularNestedEnum TestAllTypes_NestedEnum `protobuf:"varint,101,opt,name=singular_nested_enum,json=singularNestedEnum,proto3,enum=goproto.proto.test3.TestAllTypes_NestedEnum" json:"singular_nested_enum,omitempty"` SingularForeignEnum ForeignEnum `protobuf:"varint,102,opt,name=singular_foreign_enum,json=singularForeignEnum,proto3,enum=goproto.proto.test3.ForeignEnum" json:"singular_foreign_enum,omitempty"` SingularImportEnum ImportEnum `protobuf:"varint,103,opt,name=singular_import_enum,json=singularImportEnum,proto3,enum=goproto.proto.test3.ImportEnum" json:"singular_import_enum,omitempty"` OptionalInt32 *int32 `protobuf:"varint,1,opt,name=optional_int32,json=optionalInt32,proto3,oneof" json:"optional_int32,omitempty"` OptionalInt64 *int64 `protobuf:"varint,2,opt,name=optional_int64,json=optionalInt64,proto3,oneof" json:"optional_int64,omitempty"` OptionalUint32 *uint32 `protobuf:"varint,3,opt,name=optional_uint32,json=optionalUint32,proto3,oneof" json:"optional_uint32,omitempty"` OptionalUint64 *uint64 `protobuf:"varint,4,opt,name=optional_uint64,json=optionalUint64,proto3,oneof" json:"optional_uint64,omitempty"` OptionalSint32 *int32 `protobuf:"zigzag32,5,opt,name=optional_sint32,json=optionalSint32,proto3,oneof" json:"optional_sint32,omitempty"` OptionalSint64 *int64 `protobuf:"zigzag64,6,opt,name=optional_sint64,json=optionalSint64,proto3,oneof" json:"optional_sint64,omitempty"` OptionalFixed32 *uint32 `protobuf:"fixed32,7,opt,name=optional_fixed32,json=optionalFixed32,proto3,oneof" json:"optional_fixed32,omitempty"` OptionalFixed64 *uint64 `protobuf:"fixed64,8,opt,name=optional_fixed64,json=optionalFixed64,proto3,oneof" json:"optional_fixed64,omitempty"` OptionalSfixed32 *int32 `protobuf:"fixed32,9,opt,name=optional_sfixed32,json=optionalSfixed32,proto3,oneof" json:"optional_sfixed32,omitempty"` OptionalSfixed64 *int64 `protobuf:"fixed64,10,opt,name=optional_sfixed64,json=optionalSfixed64,proto3,oneof" json:"optional_sfixed64,omitempty"` OptionalFloat *float32 `protobuf:"fixed32,11,opt,name=optional_float,json=optionalFloat,proto3,oneof" json:"optional_float,omitempty"` OptionalDouble *float64 `protobuf:"fixed64,12,opt,name=optional_double,json=optionalDouble,proto3,oneof" json:"optional_double,omitempty"` OptionalBool *bool `protobuf:"varint,13,opt,name=optional_bool,json=optionalBool,proto3,oneof" json:"optional_bool,omitempty"` OptionalString *string `protobuf:"bytes,14,opt,name=optional_string,json=optionalString,proto3,oneof" json:"optional_string,omitempty"` OptionalBytes []byte `protobuf:"bytes,15,opt,name=optional_bytes,json=optionalBytes,proto3,oneof" json:"optional_bytes,omitempty"` OptionalNestedMessage *TestAllTypes_NestedMessage `protobuf:"bytes,18,opt,name=optional_nested_message,json=optionalNestedMessage,proto3,oneof" json:"optional_nested_message,omitempty"` OptionalForeignMessage *ForeignMessage `protobuf:"bytes,19,opt,name=optional_foreign_message,json=optionalForeignMessage,proto3,oneof" json:"optional_foreign_message,omitempty"` OptionalImportMessage *ImportMessage `protobuf:"bytes,20,opt,name=optional_import_message,json=optionalImportMessage,proto3,oneof" json:"optional_import_message,omitempty"` OptionalNestedEnum *TestAllTypes_NestedEnum `protobuf:"varint,21,opt,name=optional_nested_enum,json=optionalNestedEnum,proto3,enum=goproto.proto.test3.TestAllTypes_NestedEnum,oneof" json:"optional_nested_enum,omitempty"` OptionalForeignEnum *ForeignEnum `protobuf:"varint,22,opt,name=optional_foreign_enum,json=optionalForeignEnum,proto3,enum=goproto.proto.test3.ForeignEnum,oneof" json:"optional_foreign_enum,omitempty"` OptionalImportEnum *ImportEnum `protobuf:"varint,23,opt,name=optional_import_enum,json=optionalImportEnum,proto3,enum=goproto.proto.test3.ImportEnum,oneof" json:"optional_import_enum,omitempty"` RepeatedInt32 []int32 `protobuf:"varint,31,rep,packed,name=repeated_int32,json=repeatedInt32,proto3" json:"repeated_int32,omitempty"` RepeatedInt64 []int64 `protobuf:"varint,32,rep,packed,name=repeated_int64,json=repeatedInt64,proto3" json:"repeated_int64,omitempty"` RepeatedUint32 []uint32 `protobuf:"varint,33,rep,packed,name=repeated_uint32,json=repeatedUint32,proto3" json:"repeated_uint32,omitempty"` RepeatedUint64 []uint64 `protobuf:"varint,34,rep,packed,name=repeated_uint64,json=repeatedUint64,proto3" json:"repeated_uint64,omitempty"` RepeatedSint32 []int32 `protobuf:"zigzag32,35,rep,packed,name=repeated_sint32,json=repeatedSint32,proto3" json:"repeated_sint32,omitempty"` RepeatedSint64 []int64 `protobuf:"zigzag64,36,rep,packed,name=repeated_sint64,json=repeatedSint64,proto3" json:"repeated_sint64,omitempty"` RepeatedFixed32 []uint32 `protobuf:"fixed32,37,rep,packed,name=repeated_fixed32,json=repeatedFixed32,proto3" json:"repeated_fixed32,omitempty"` RepeatedFixed64 []uint64 `protobuf:"fixed64,38,rep,packed,name=repeated_fixed64,json=repeatedFixed64,proto3" json:"repeated_fixed64,omitempty"` RepeatedSfixed32 []int32 `protobuf:"fixed32,39,rep,packed,name=repeated_sfixed32,json=repeatedSfixed32,proto3" json:"repeated_sfixed32,omitempty"` RepeatedSfixed64 []int64 `protobuf:"fixed64,40,rep,packed,name=repeated_sfixed64,json=repeatedSfixed64,proto3" json:"repeated_sfixed64,omitempty"` RepeatedFloat []float32 `protobuf:"fixed32,41,rep,packed,name=repeated_float,json=repeatedFloat,proto3" json:"repeated_float,omitempty"` RepeatedDouble []float64 `protobuf:"fixed64,42,rep,packed,name=repeated_double,json=repeatedDouble,proto3" json:"repeated_double,omitempty"` RepeatedBool []bool `protobuf:"varint,43,rep,packed,name=repeated_bool,json=repeatedBool,proto3" json:"repeated_bool,omitempty"` RepeatedString []string `protobuf:"bytes,44,rep,name=repeated_string,json=repeatedString,proto3" json:"repeated_string,omitempty"` RepeatedBytes [][]byte `protobuf:"bytes,45,rep,name=repeated_bytes,json=repeatedBytes,proto3" json:"repeated_bytes,omitempty"` RepeatedNestedMessage []*TestAllTypes_NestedMessage `protobuf:"bytes,48,rep,name=repeated_nested_message,json=repeatedNestedMessage,proto3" json:"repeated_nested_message,omitempty"` RepeatedForeignMessage []*ForeignMessage `protobuf:"bytes,49,rep,name=repeated_foreign_message,json=repeatedForeignMessage,proto3" json:"repeated_foreign_message,omitempty"` RepeatedImportmessage []*ImportMessage `protobuf:"bytes,50,rep,name=repeated_importmessage,json=repeatedImportmessage,proto3" json:"repeated_importmessage,omitempty"` RepeatedNestedEnum []TestAllTypes_NestedEnum `protobuf:"varint,51,rep,packed,name=repeated_nested_enum,json=repeatedNestedEnum,proto3,enum=goproto.proto.test3.TestAllTypes_NestedEnum" json:"repeated_nested_enum,omitempty"` RepeatedForeignEnum []ForeignEnum `protobuf:"varint,52,rep,packed,name=repeated_foreign_enum,json=repeatedForeignEnum,proto3,enum=goproto.proto.test3.ForeignEnum" json:"repeated_foreign_enum,omitempty"` RepeatedImportenum []ImportEnum `protobuf:"varint,53,rep,packed,name=repeated_importenum,json=repeatedImportenum,proto3,enum=goproto.proto.test3.ImportEnum" json:"repeated_importenum,omitempty"` MapInt32Int32 map[int32]int32 `protobuf:"bytes,56,rep,name=map_int32_int32,json=mapInt32Int32,proto3" json:"map_int32_int32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapInt64Int64 map[int64]int64 `protobuf:"bytes,57,rep,name=map_int64_int64,json=mapInt64Int64,proto3" json:"map_int64_int64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapUint32Uint32 map[uint32]uint32 `protobuf:"bytes,58,rep,name=map_uint32_uint32,json=mapUint32Uint32,proto3" json:"map_uint32_uint32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapUint64Uint64 map[uint64]uint64 `protobuf:"bytes,59,rep,name=map_uint64_uint64,json=mapUint64Uint64,proto3" json:"map_uint64_uint64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapSint32Sint32 map[int32]int32 `protobuf:"bytes,60,rep,name=map_sint32_sint32,json=mapSint32Sint32,proto3" json:"map_sint32_sint32,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` MapSint64Sint64 map[int64]int64 `protobuf:"bytes,61,rep,name=map_sint64_sint64,json=mapSint64Sint64,proto3" json:"map_sint64_sint64,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` MapFixed32Fixed32 map[uint32]uint32 `protobuf:"bytes,62,rep,name=map_fixed32_fixed32,json=mapFixed32Fixed32,proto3" json:"map_fixed32_fixed32,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` MapFixed64Fixed64 map[uint64]uint64 `protobuf:"bytes,63,rep,name=map_fixed64_fixed64,json=mapFixed64Fixed64,proto3" json:"map_fixed64_fixed64,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` MapSfixed32Sfixed32 map[int32]int32 `protobuf:"bytes,64,rep,name=map_sfixed32_sfixed32,json=mapSfixed32Sfixed32,proto3" json:"map_sfixed32_sfixed32,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` MapSfixed64Sfixed64 map[int64]int64 `protobuf:"bytes,65,rep,name=map_sfixed64_sfixed64,json=mapSfixed64Sfixed64,proto3" json:"map_sfixed64_sfixed64,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` MapInt32Float map[int32]float32 `protobuf:"bytes,66,rep,name=map_int32_float,json=mapInt32Float,proto3" json:"map_int32_float,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` MapInt32Double map[int32]float64 `protobuf:"bytes,67,rep,name=map_int32_double,json=mapInt32Double,proto3" json:"map_int32_double,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` MapBoolBool map[bool]bool `protobuf:"bytes,68,rep,name=map_bool_bool,json=mapBoolBool,proto3" json:"map_bool_bool,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapStringString map[string]string `protobuf:"bytes,69,rep,name=map_string_string,json=mapStringString,proto3" json:"map_string_string,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` MapStringBytes map[string][]byte `protobuf:"bytes,70,rep,name=map_string_bytes,json=mapStringBytes,proto3" json:"map_string_bytes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` MapStringNestedMessage map[string]*TestAllTypes_NestedMessage `protobuf:"bytes,71,rep,name=map_string_nested_message,json=mapStringNestedMessage,proto3" json:"map_string_nested_message,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` MapStringNestedEnum map[string]TestAllTypes_NestedEnum `protobuf:"bytes,73,rep,name=map_string_nested_enum,json=mapStringNestedEnum,proto3" json:"map_string_nested_enum,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=goproto.proto.test3.TestAllTypes_NestedEnum"` // Types that are assignable to OneofField: // *TestAllTypes_OneofUint32 // *TestAllTypes_OneofNestedMessage // *TestAllTypes_OneofString // *TestAllTypes_OneofBytes // *TestAllTypes_OneofBool // *TestAllTypes_OneofUint64 // *TestAllTypes_OneofFloat // *TestAllTypes_OneofDouble // *TestAllTypes_OneofEnum OneofField isTestAllTypes_OneofField `protobuf_oneof:"oneof_field"` } func (x *TestAllTypes) Reset() { *x = TestAllTypes{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test3_test_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestAllTypes) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestAllTypes) ProtoMessage() {} func (x *TestAllTypes) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test3_test_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestAllTypes.ProtoReflect.Descriptor instead. func (*TestAllTypes) Descriptor() ([]byte, []int) { return file_internal_testprotos_test3_test_proto_rawDescGZIP(), []int{0} } func (x *TestAllTypes) GetSingularInt32() int32 { if x != nil { return x.SingularInt32 } return 0 } func (x *TestAllTypes) GetSingularInt64() int64 { if x != nil { return x.SingularInt64 } return 0 } func (x *TestAllTypes) GetSingularUint32() uint32 { if x != nil { return x.SingularUint32 } return 0 } func (x *TestAllTypes) GetSingularUint64() uint64 { if x != nil { return x.SingularUint64 } return 0 } func (x *TestAllTypes) GetSingularSint32() int32 { if x != nil { return x.SingularSint32 } return 0 } func (x *TestAllTypes) GetSingularSint64() int64 { if x != nil { return x.SingularSint64 } return 0 } func (x *TestAllTypes) GetSingularFixed32() uint32 { if x != nil { return x.SingularFixed32 } return 0 } func (x *TestAllTypes) GetSingularFixed64() uint64 { if x != nil { return x.SingularFixed64 } return 0 } func (x *TestAllTypes) GetSingularSfixed32() int32 { if x != nil { return x.SingularSfixed32 } return 0 } func (x *TestAllTypes) GetSingularSfixed64() int64 { if x != nil { return x.SingularSfixed64 } return 0 } func (x *TestAllTypes) GetSingularFloat() float32 { if x != nil { return x.SingularFloat } return 0 } func (x *TestAllTypes) GetSingularDouble() float64 { if x != nil { return x.SingularDouble } return 0 } func (x *TestAllTypes) GetSingularBool() bool { if x != nil { return x.SingularBool } return false } func (x *TestAllTypes) GetSingularString() string { if x != nil { return x.SingularString } return "" } func (x *TestAllTypes) GetSingularBytes() []byte { if x != nil { return x.SingularBytes } return nil } func (x *TestAllTypes) GetSingularNestedMessage() *TestAllTypes_NestedMessage { if x != nil { return x.SingularNestedMessage } return nil } func (x *TestAllTypes) GetSingularForeignMessage() *ForeignMessage { if x != nil { return x.SingularForeignMessage } return nil } func (x *TestAllTypes) GetSingularImportMessage() *ImportMessage { if x != nil { return x.SingularImportMessage } return nil } func (x *TestAllTypes) GetSingularNestedEnum() TestAllTypes_NestedEnum { if x != nil { return x.SingularNestedEnum } return TestAllTypes_FOO } func (x *TestAllTypes) GetSingularForeignEnum() ForeignEnum { if x != nil { return x.SingularForeignEnum } return ForeignEnum_FOREIGN_ZERO } func (x *TestAllTypes) GetSingularImportEnum() ImportEnum { if x != nil { return x.SingularImportEnum } return ImportEnum_IMPORT_ZERO } func (x *TestAllTypes) GetOptionalInt32() int32 { if x != nil && x.OptionalInt32 != nil { return *x.OptionalInt32 } return 0 } func (x *TestAllTypes) GetOptionalInt64() int64 { if x != nil && x.OptionalInt64 != nil { return *x.OptionalInt64 } return 0 } func (x *TestAllTypes) GetOptionalUint32() uint32 { if x != nil && x.OptionalUint32 != nil { return *x.OptionalUint32 } return 0 } func (x *TestAllTypes) GetOptionalUint64() uint64 { if x != nil && x.OptionalUint64 != nil { return *x.OptionalUint64 } return 0 } func (x *TestAllTypes) GetOptionalSint32() int32 { if x != nil && x.OptionalSint32 != nil { return *x.OptionalSint32 } return 0 } func (x *TestAllTypes) GetOptionalSint64() int64 { if x != nil && x.OptionalSint64 != nil { return *x.OptionalSint64 } return 0 } func (x *TestAllTypes) GetOptionalFixed32() uint32 { if x != nil && x.OptionalFixed32 != nil { return *x.OptionalFixed32 } return 0 } func (x *TestAllTypes) GetOptionalFixed64() uint64 { if x != nil && x.OptionalFixed64 != nil { return *x.OptionalFixed64 } return 0 } func (x *TestAllTypes) GetOptionalSfixed32() int32 { if x != nil && x.OptionalSfixed32 != nil { return *x.OptionalSfixed32 } return 0 } func (x *TestAllTypes) GetOptionalSfixed64() int64 { if x != nil && x.OptionalSfixed64 != nil { return *x.OptionalSfixed64 } return 0 } func (x *TestAllTypes) GetOptionalFloat() float32 { if x != nil && x.OptionalFloat != nil { return *x.OptionalFloat } return 0 } func (x *TestAllTypes) GetOptionalDouble() float64 { if x != nil && x.OptionalDouble != nil { return *x.OptionalDouble } return 0 } func (x *TestAllTypes) GetOptionalBool() bool { if x != nil && x.OptionalBool != nil { return *x.OptionalBool } return false } func (x *TestAllTypes) GetOptionalString() string { if x != nil && x.OptionalString != nil { return *x.OptionalString } return "" } func (x *TestAllTypes) GetOptionalBytes() []byte { if x != nil { return x.OptionalBytes } return nil } func (x *TestAllTypes) GetOptionalNestedMessage() *TestAllTypes_NestedMessage { if x != nil { return x.OptionalNestedMessage } return nil } func (x *TestAllTypes) GetOptionalForeignMessage() *ForeignMessage { if x != nil { return x.OptionalForeignMessage } return nil } func (x *TestAllTypes) GetOptionalImportMessage() *ImportMessage { if x != nil { return x.OptionalImportMessage } return nil } func (x *TestAllTypes) GetOptionalNestedEnum() TestAllTypes_NestedEnum { if x != nil && x.OptionalNestedEnum != nil { return *x.OptionalNestedEnum } return TestAllTypes_FOO } func (x *TestAllTypes) GetOptionalForeignEnum() ForeignEnum { if x != nil && x.OptionalForeignEnum != nil { return *x.OptionalForeignEnum } return ForeignEnum_FOREIGN_ZERO } func (x *TestAllTypes) GetOptionalImportEnum() ImportEnum { if x != nil && x.OptionalImportEnum != nil { return *x.OptionalImportEnum } return ImportEnum_IMPORT_ZERO } func (x *TestAllTypes) GetRepeatedInt32() []int32 { if x != nil { return x.RepeatedInt32 } return nil } func (x *TestAllTypes) GetRepeatedInt64() []int64 { if x != nil { return x.RepeatedInt64 } return nil } func (x *TestAllTypes) GetRepeatedUint32() []uint32 { if x != nil { return x.RepeatedUint32 } return nil } func (x *TestAllTypes) GetRepeatedUint64() []uint64 { if x != nil { return x.RepeatedUint64 } return nil } func (x *TestAllTypes) GetRepeatedSint32() []int32 { if x != nil { return x.RepeatedSint32 } return nil } func (x *TestAllTypes) GetRepeatedSint64() []int64 { if x != nil { return x.RepeatedSint64 } return nil } func (x *TestAllTypes) GetRepeatedFixed32() []uint32 { if x != nil { return x.RepeatedFixed32 } return nil } func (x *TestAllTypes) GetRepeatedFixed64() []uint64 { if x != nil { return x.RepeatedFixed64 } return nil } func (x *TestAllTypes) GetRepeatedSfixed32() []int32 { if x != nil { return x.RepeatedSfixed32 } return nil } func (x *TestAllTypes) GetRepeatedSfixed64() []int64 { if x != nil { return x.RepeatedSfixed64 } return nil } func (x *TestAllTypes) GetRepeatedFloat() []float32 { if x != nil { return x.RepeatedFloat } return nil } func (x *TestAllTypes) GetRepeatedDouble() []float64 { if x != nil { return x.RepeatedDouble } return nil } func (x *TestAllTypes) GetRepeatedBool() []bool { if x != nil { return x.RepeatedBool } return nil } func (x *TestAllTypes) GetRepeatedString() []string { if x != nil { return x.RepeatedString } return nil } func (x *TestAllTypes) GetRepeatedBytes() [][]byte { if x != nil { return x.RepeatedBytes } return nil } func (x *TestAllTypes) GetRepeatedNestedMessage() []*TestAllTypes_NestedMessage { if x != nil { return x.RepeatedNestedMessage } return nil } func (x *TestAllTypes) GetRepeatedForeignMessage() []*ForeignMessage { if x != nil { return x.RepeatedForeignMessage } return nil } func (x *TestAllTypes) GetRepeatedImportmessage() []*ImportMessage { if x != nil { return x.RepeatedImportmessage } return nil } func (x *TestAllTypes) GetRepeatedNestedEnum() []TestAllTypes_NestedEnum { if x != nil { return x.RepeatedNestedEnum } return nil } func (x *TestAllTypes) GetRepeatedForeignEnum() []ForeignEnum { if x != nil { return x.RepeatedForeignEnum } return nil } func (x *TestAllTypes) GetRepeatedImportenum() []ImportEnum { if x != nil { return x.RepeatedImportenum } return nil } func (x *TestAllTypes) GetMapInt32Int32() map[int32]int32 { if x != nil { return x.MapInt32Int32 } return nil } func (x *TestAllTypes) GetMapInt64Int64() map[int64]int64 { if x != nil { return x.MapInt64Int64 } return nil } func (x *TestAllTypes) GetMapUint32Uint32() map[uint32]uint32 { if x != nil { return x.MapUint32Uint32 } return nil } func (x *TestAllTypes) GetMapUint64Uint64() map[uint64]uint64 { if x != nil { return x.MapUint64Uint64 } return nil } func (x *TestAllTypes) GetMapSint32Sint32() map[int32]int32 { if x != nil { return x.MapSint32Sint32 } return nil } func (x *TestAllTypes) GetMapSint64Sint64() map[int64]int64 { if x != nil { return x.MapSint64Sint64 } return nil } func (x *TestAllTypes) GetMapFixed32Fixed32() map[uint32]uint32 { if x != nil { return x.MapFixed32Fixed32 } return nil } func (x *TestAllTypes) GetMapFixed64Fixed64() map[uint64]uint64 { if x != nil { return x.MapFixed64Fixed64 } return nil } func (x *TestAllTypes) GetMapSfixed32Sfixed32() map[int32]int32 { if x != nil { return x.MapSfixed32Sfixed32 } return nil } func (x *TestAllTypes) GetMapSfixed64Sfixed64() map[int64]int64 { if x != nil { return x.MapSfixed64Sfixed64 } return nil } func (x *TestAllTypes) GetMapInt32Float() map[int32]float32 { if x != nil { return x.MapInt32Float } return nil } func (x *TestAllTypes) GetMapInt32Double() map[int32]float64 { if x != nil { return x.MapInt32Double } return nil } func (x *TestAllTypes) GetMapBoolBool() map[bool]bool { if x != nil { return x.MapBoolBool } return nil } func (x *TestAllTypes) GetMapStringString() map[string]string { if x != nil { return x.MapStringString } return nil } func (x *TestAllTypes) GetMapStringBytes() map[string][]byte { if x != nil { return x.MapStringBytes } return nil } func (x *TestAllTypes) GetMapStringNestedMessage() map[string]*TestAllTypes_NestedMessage { if x != nil { return x.MapStringNestedMessage } return nil } func (x *TestAllTypes) GetMapStringNestedEnum() map[string]TestAllTypes_NestedEnum { if x != nil { return x.MapStringNestedEnum } return nil } func (m *TestAllTypes) GetOneofField() isTestAllTypes_OneofField { if m != nil { return m.OneofField } return nil } func (x *TestAllTypes) GetOneofUint32() uint32 { if x, ok := x.GetOneofField().(*TestAllTypes_OneofUint32); ok { return x.OneofUint32 } return 0 } func (x *TestAllTypes) GetOneofNestedMessage() *TestAllTypes_NestedMessage { if x, ok := x.GetOneofField().(*TestAllTypes_OneofNestedMessage); ok { return x.OneofNestedMessage } return nil } func (x *TestAllTypes) GetOneofString() string { if x, ok := x.GetOneofField().(*TestAllTypes_OneofString); ok { return x.OneofString } return "" } func (x *TestAllTypes) GetOneofBytes() []byte { if x, ok := x.GetOneofField().(*TestAllTypes_OneofBytes); ok { return x.OneofBytes } return nil } func (x *TestAllTypes) GetOneofBool() bool { if x, ok := x.GetOneofField().(*TestAllTypes_OneofBool); ok { return x.OneofBool } return false } func (x *TestAllTypes) GetOneofUint64() uint64 { if x, ok := x.GetOneofField().(*TestAllTypes_OneofUint64); ok { return x.OneofUint64 } return 0 } func (x *TestAllTypes) GetOneofFloat() float32 { if x, ok := x.GetOneofField().(*TestAllTypes_OneofFloat); ok { return x.OneofFloat } return 0 } func (x *TestAllTypes) GetOneofDouble() float64 { if x, ok := x.GetOneofField().(*TestAllTypes_OneofDouble); ok { return x.OneofDouble } return 0 } func (x *TestAllTypes) GetOneofEnum() TestAllTypes_NestedEnum { if x, ok := x.GetOneofField().(*TestAllTypes_OneofEnum); ok { return x.OneofEnum } return TestAllTypes_FOO } type isTestAllTypes_OneofField interface { isTestAllTypes_OneofField() } type TestAllTypes_OneofUint32 struct { OneofUint32 uint32 `protobuf:"varint,111,opt,name=oneof_uint32,json=oneofUint32,proto3,oneof"` } type TestAllTypes_OneofNestedMessage struct { OneofNestedMessage *TestAllTypes_NestedMessage `protobuf:"bytes,112,opt,name=oneof_nested_message,json=oneofNestedMessage,proto3,oneof"` } type TestAllTypes_OneofString struct { OneofString string `protobuf:"bytes,113,opt,name=oneof_string,json=oneofString,proto3,oneof"` } type TestAllTypes_OneofBytes struct { OneofBytes []byte `protobuf:"bytes,114,opt,name=oneof_bytes,json=oneofBytes,proto3,oneof"` } type TestAllTypes_OneofBool struct { OneofBool bool `protobuf:"varint,115,opt,name=oneof_bool,json=oneofBool,proto3,oneof"` } type TestAllTypes_OneofUint64 struct { OneofUint64 uint64 `protobuf:"varint,116,opt,name=oneof_uint64,json=oneofUint64,proto3,oneof"` } type TestAllTypes_OneofFloat struct { OneofFloat float32 `protobuf:"fixed32,117,opt,name=oneof_float,json=oneofFloat,proto3,oneof"` } type TestAllTypes_OneofDouble struct { OneofDouble float64 `protobuf:"fixed64,118,opt,name=oneof_double,json=oneofDouble,proto3,oneof"` } type TestAllTypes_OneofEnum struct { OneofEnum TestAllTypes_NestedEnum `protobuf:"varint,119,opt,name=oneof_enum,json=oneofEnum,proto3,enum=goproto.proto.test3.TestAllTypes_NestedEnum,oneof"` } func (*TestAllTypes_OneofUint32) isTestAllTypes_OneofField() {} func (*TestAllTypes_OneofNestedMessage) isTestAllTypes_OneofField() {} func (*TestAllTypes_OneofString) isTestAllTypes_OneofField() {} func (*TestAllTypes_OneofBytes) isTestAllTypes_OneofField() {} func (*TestAllTypes_OneofBool) isTestAllTypes_OneofField() {} func (*TestAllTypes_OneofUint64) isTestAllTypes_OneofField() {} func (*TestAllTypes_OneofFloat) isTestAllTypes_OneofField() {} func (*TestAllTypes_OneofDouble) isTestAllTypes_OneofField() {} func (*TestAllTypes_OneofEnum) isTestAllTypes_OneofField() {} type ForeignMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields C int32 `protobuf:"varint,1,opt,name=c,proto3" json:"c,omitempty"` D int32 `protobuf:"varint,2,opt,name=d,proto3" json:"d,omitempty"` } func (x *ForeignMessage) Reset() { *x = ForeignMessage{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test3_test_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ForeignMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*ForeignMessage) ProtoMessage() {} func (x *ForeignMessage) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test3_test_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ForeignMessage.ProtoReflect.Descriptor instead. func (*ForeignMessage) Descriptor() ([]byte, []int) { return file_internal_testprotos_test3_test_proto_rawDescGZIP(), []int{1} } func (x *ForeignMessage) GetC() int32 { if x != nil { return x.C } return 0 } func (x *ForeignMessage) GetD() int32 { if x != nil { return x.D } return 0 } type TestAllTypes_NestedMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields A int32 `protobuf:"varint,1,opt,name=a,proto3" json:"a,omitempty"` Corecursive *TestAllTypes `protobuf:"bytes,2,opt,name=corecursive,proto3" json:"corecursive,omitempty"` } func (x *TestAllTypes_NestedMessage) Reset() { *x = TestAllTypes_NestedMessage{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test3_test_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestAllTypes_NestedMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestAllTypes_NestedMessage) ProtoMessage() {} func (x *TestAllTypes_NestedMessage) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test3_test_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TestAllTypes_NestedMessage.ProtoReflect.Descriptor instead. func (*TestAllTypes_NestedMessage) Descriptor() ([]byte, []int) { return file_internal_testprotos_test3_test_proto_rawDescGZIP(), []int{0, 0} } func (x *TestAllTypes_NestedMessage) GetA() int32 { if x != nil { return x.A } return 0 } func (x *TestAllTypes_NestedMessage) GetCorecursive() *TestAllTypes { if x != nil { return x.Corecursive } return nil } var File_internal_testprotos_test3_test_proto protoreflect.FileDescriptor var file_internal_testprotos_test3_test_proto_rawDesc = []byte{ 0x0a, 0x24, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x1a, 0x2b, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x90, 0x3c, 0x0a, 0x0c, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x51, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x52, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x53, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x54, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x55, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0e, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x56, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x57, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0f, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x58, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0f, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x59, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x10, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x10, 0x52, 0x10, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x5b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x67, 0x0a, 0x17, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x62, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x5d, 0x0a, 0x18, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x16, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x5a, 0x0a, 0x17, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x5e, 0x0a, 0x14, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x12, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x54, 0x0a, 0x15, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x13, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x51, 0x0a, 0x14, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x12, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x2a, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x48, 0x05, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x48, 0x06, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x07, 0x48, 0x07, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x06, 0x48, 0x08, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0f, 0x48, 0x09, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x10, 0x48, 0x0a, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0b, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x48, 0x0c, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0d, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0e, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x0f, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x6c, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x10, 0x52, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x62, 0x0a, 0x18, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x11, 0x52, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x12, 0x52, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x14, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x13, 0x52, 0x12, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x14, 0x52, 0x13, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x14, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x15, 0x52, 0x12, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x20, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x21, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x22, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x23, 0x20, 0x03, 0x28, 0x11, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x24, 0x20, 0x03, 0x28, 0x12, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x25, 0x20, 0x03, 0x28, 0x07, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x26, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x27, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x28, 0x20, 0x03, 0x28, 0x10, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x29, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x2a, 0x20, 0x03, 0x28, 0x01, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x2c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x2d, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x67, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x30, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x5d, 0x0a, 0x18, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x31, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x59, 0x0a, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x32, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x5e, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x33, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x12, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x54, 0x0a, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x34, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x13, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x50, 0x0a, 0x13, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x35, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x12, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x5c, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x38, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x5c, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x39, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x62, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x3a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x62, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x3b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x62, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x3c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x62, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x3d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x68, 0x0a, 0x13, 0x6d, 0x61, 0x70, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x3e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x6d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x68, 0x0a, 0x13, 0x6d, 0x61, 0x70, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x3f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x6d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x6e, 0x0a, 0x15, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x40, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x6d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x6e, 0x0a, 0x15, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x41, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x6d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x5c, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x42, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x5f, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x43, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x56, 0x0a, 0x0d, 0x6d, 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x44, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x62, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x45, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x5f, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x46, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x78, 0x0a, 0x19, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x47, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x6f, 0x0a, 0x16, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x49, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x23, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x63, 0x0a, 0x14, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x70, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x12, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x71, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x21, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x72, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x73, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x23, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x74, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x21, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x75, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x23, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x76, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x4d, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x77, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x45, 0x6e, 0x75, 0x6d, 0x1a, 0x62, 0x0a, 0x0d, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x61, 0x12, 0x43, 0x0a, 0x0b, 0x63, 0x6f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x0b, 0x63, 0x6f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x46, 0x0a, 0x18, 0x4d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x46, 0x0a, 0x18, 0x4d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x10, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x10, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x7a, 0x0a, 0x1b, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x45, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x74, 0x0a, 0x18, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x42, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x39, 0x0a, 0x0a, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x07, 0x0a, 0x03, 0x46, 0x4f, 0x4f, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x41, 0x52, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x41, 0x5a, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x45, 0x47, 0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x22, 0x2c, 0x0a, 0x0e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x63, 0x12, 0x0c, 0x0a, 0x01, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x64, 0x2a, 0x52, 0x0a, 0x0b, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x4f, 0x52, 0x45, 0x49, 0x47, 0x4e, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x4f, 0x52, 0x45, 0x49, 0x47, 0x4e, 0x5f, 0x46, 0x4f, 0x4f, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x4f, 0x52, 0x45, 0x49, 0x47, 0x4e, 0x5f, 0x42, 0x41, 0x52, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x4f, 0x52, 0x45, 0x49, 0x47, 0x4e, 0x5f, 0x42, 0x41, 0x5a, 0x10, 0x06, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_internal_testprotos_test3_test_proto_rawDescOnce sync.Once file_internal_testprotos_test3_test_proto_rawDescData = file_internal_testprotos_test3_test_proto_rawDesc ) func file_internal_testprotos_test3_test_proto_rawDescGZIP() []byte { file_internal_testprotos_test3_test_proto_rawDescOnce.Do(func() { file_internal_testprotos_test3_test_proto_rawDescData = protoimpl.X.CompressGZIP(file_internal_testprotos_test3_test_proto_rawDescData) }) return file_internal_testprotos_test3_test_proto_rawDescData } var file_internal_testprotos_test3_test_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_internal_testprotos_test3_test_proto_msgTypes = make([]protoimpl.MessageInfo, 20) var file_internal_testprotos_test3_test_proto_goTypes = []interface{}{ (ForeignEnum)(0), // 0: goproto.proto.test3.ForeignEnum (TestAllTypes_NestedEnum)(0), // 1: goproto.proto.test3.TestAllTypes.NestedEnum (*TestAllTypes)(nil), // 2: goproto.proto.test3.TestAllTypes (*ForeignMessage)(nil), // 3: goproto.proto.test3.ForeignMessage (*TestAllTypes_NestedMessage)(nil), // 4: goproto.proto.test3.TestAllTypes.NestedMessage nil, // 5: goproto.proto.test3.TestAllTypes.MapInt32Int32Entry nil, // 6: goproto.proto.test3.TestAllTypes.MapInt64Int64Entry nil, // 7: goproto.proto.test3.TestAllTypes.MapUint32Uint32Entry nil, // 8: goproto.proto.test3.TestAllTypes.MapUint64Uint64Entry nil, // 9: goproto.proto.test3.TestAllTypes.MapSint32Sint32Entry nil, // 10: goproto.proto.test3.TestAllTypes.MapSint64Sint64Entry nil, // 11: goproto.proto.test3.TestAllTypes.MapFixed32Fixed32Entry nil, // 12: goproto.proto.test3.TestAllTypes.MapFixed64Fixed64Entry nil, // 13: goproto.proto.test3.TestAllTypes.MapSfixed32Sfixed32Entry nil, // 14: goproto.proto.test3.TestAllTypes.MapSfixed64Sfixed64Entry nil, // 15: goproto.proto.test3.TestAllTypes.MapInt32FloatEntry nil, // 16: goproto.proto.test3.TestAllTypes.MapInt32DoubleEntry nil, // 17: goproto.proto.test3.TestAllTypes.MapBoolBoolEntry nil, // 18: goproto.proto.test3.TestAllTypes.MapStringStringEntry nil, // 19: goproto.proto.test3.TestAllTypes.MapStringBytesEntry nil, // 20: goproto.proto.test3.TestAllTypes.MapStringNestedMessageEntry nil, // 21: goproto.proto.test3.TestAllTypes.MapStringNestedEnumEntry (*ImportMessage)(nil), // 22: goproto.proto.test3.ImportMessage (ImportEnum)(0), // 23: goproto.proto.test3.ImportEnum } var file_internal_testprotos_test3_test_proto_depIdxs = []int32{ 4, // 0: goproto.proto.test3.TestAllTypes.singular_nested_message:type_name -> goproto.proto.test3.TestAllTypes.NestedMessage 3, // 1: goproto.proto.test3.TestAllTypes.singular_foreign_message:type_name -> goproto.proto.test3.ForeignMessage 22, // 2: goproto.proto.test3.TestAllTypes.singular_import_message:type_name -> goproto.proto.test3.ImportMessage 1, // 3: goproto.proto.test3.TestAllTypes.singular_nested_enum:type_name -> goproto.proto.test3.TestAllTypes.NestedEnum 0, // 4: goproto.proto.test3.TestAllTypes.singular_foreign_enum:type_name -> goproto.proto.test3.ForeignEnum 23, // 5: goproto.proto.test3.TestAllTypes.singular_import_enum:type_name -> goproto.proto.test3.ImportEnum 4, // 6: goproto.proto.test3.TestAllTypes.optional_nested_message:type_name -> goproto.proto.test3.TestAllTypes.NestedMessage 3, // 7: goproto.proto.test3.TestAllTypes.optional_foreign_message:type_name -> goproto.proto.test3.ForeignMessage 22, // 8: goproto.proto.test3.TestAllTypes.optional_import_message:type_name -> goproto.proto.test3.ImportMessage 1, // 9: goproto.proto.test3.TestAllTypes.optional_nested_enum:type_name -> goproto.proto.test3.TestAllTypes.NestedEnum 0, // 10: goproto.proto.test3.TestAllTypes.optional_foreign_enum:type_name -> goproto.proto.test3.ForeignEnum 23, // 11: goproto.proto.test3.TestAllTypes.optional_import_enum:type_name -> goproto.proto.test3.ImportEnum 4, // 12: goproto.proto.test3.TestAllTypes.repeated_nested_message:type_name -> goproto.proto.test3.TestAllTypes.NestedMessage 3, // 13: goproto.proto.test3.TestAllTypes.repeated_foreign_message:type_name -> goproto.proto.test3.ForeignMessage 22, // 14: goproto.proto.test3.TestAllTypes.repeated_importmessage:type_name -> goproto.proto.test3.ImportMessage 1, // 15: goproto.proto.test3.TestAllTypes.repeated_nested_enum:type_name -> goproto.proto.test3.TestAllTypes.NestedEnum 0, // 16: goproto.proto.test3.TestAllTypes.repeated_foreign_enum:type_name -> goproto.proto.test3.ForeignEnum 23, // 17: goproto.proto.test3.TestAllTypes.repeated_importenum:type_name -> goproto.proto.test3.ImportEnum 5, // 18: goproto.proto.test3.TestAllTypes.map_int32_int32:type_name -> goproto.proto.test3.TestAllTypes.MapInt32Int32Entry 6, // 19: goproto.proto.test3.TestAllTypes.map_int64_int64:type_name -> goproto.proto.test3.TestAllTypes.MapInt64Int64Entry 7, // 20: goproto.proto.test3.TestAllTypes.map_uint32_uint32:type_name -> goproto.proto.test3.TestAllTypes.MapUint32Uint32Entry 8, // 21: goproto.proto.test3.TestAllTypes.map_uint64_uint64:type_name -> goproto.proto.test3.TestAllTypes.MapUint64Uint64Entry 9, // 22: goproto.proto.test3.TestAllTypes.map_sint32_sint32:type_name -> goproto.proto.test3.TestAllTypes.MapSint32Sint32Entry 10, // 23: goproto.proto.test3.TestAllTypes.map_sint64_sint64:type_name -> goproto.proto.test3.TestAllTypes.MapSint64Sint64Entry 11, // 24: goproto.proto.test3.TestAllTypes.map_fixed32_fixed32:type_name -> goproto.proto.test3.TestAllTypes.MapFixed32Fixed32Entry 12, // 25: goproto.proto.test3.TestAllTypes.map_fixed64_fixed64:type_name -> goproto.proto.test3.TestAllTypes.MapFixed64Fixed64Entry 13, // 26: goproto.proto.test3.TestAllTypes.map_sfixed32_sfixed32:type_name -> goproto.proto.test3.TestAllTypes.MapSfixed32Sfixed32Entry 14, // 27: goproto.proto.test3.TestAllTypes.map_sfixed64_sfixed64:type_name -> goproto.proto.test3.TestAllTypes.MapSfixed64Sfixed64Entry 15, // 28: goproto.proto.test3.TestAllTypes.map_int32_float:type_name -> goproto.proto.test3.TestAllTypes.MapInt32FloatEntry 16, // 29: goproto.proto.test3.TestAllTypes.map_int32_double:type_name -> goproto.proto.test3.TestAllTypes.MapInt32DoubleEntry 17, // 30: goproto.proto.test3.TestAllTypes.map_bool_bool:type_name -> goproto.proto.test3.TestAllTypes.MapBoolBoolEntry 18, // 31: goproto.proto.test3.TestAllTypes.map_string_string:type_name -> goproto.proto.test3.TestAllTypes.MapStringStringEntry 19, // 32: goproto.proto.test3.TestAllTypes.map_string_bytes:type_name -> goproto.proto.test3.TestAllTypes.MapStringBytesEntry 20, // 33: goproto.proto.test3.TestAllTypes.map_string_nested_message:type_name -> goproto.proto.test3.TestAllTypes.MapStringNestedMessageEntry 21, // 34: goproto.proto.test3.TestAllTypes.map_string_nested_enum:type_name -> goproto.proto.test3.TestAllTypes.MapStringNestedEnumEntry 4, // 35: goproto.proto.test3.TestAllTypes.oneof_nested_message:type_name -> goproto.proto.test3.TestAllTypes.NestedMessage 1, // 36: goproto.proto.test3.TestAllTypes.oneof_enum:type_name -> goproto.proto.test3.TestAllTypes.NestedEnum 2, // 37: goproto.proto.test3.TestAllTypes.NestedMessage.corecursive:type_name -> goproto.proto.test3.TestAllTypes 4, // 38: goproto.proto.test3.TestAllTypes.MapStringNestedMessageEntry.value:type_name -> goproto.proto.test3.TestAllTypes.NestedMessage 1, // 39: goproto.proto.test3.TestAllTypes.MapStringNestedEnumEntry.value:type_name -> goproto.proto.test3.TestAllTypes.NestedEnum 40, // [40:40] is the sub-list for method output_type 40, // [40:40] is the sub-list for method input_type 40, // [40:40] is the sub-list for extension type_name 40, // [40:40] is the sub-list for extension extendee 0, // [0:40] is the sub-list for field type_name } func init() { file_internal_testprotos_test3_test_proto_init() } func file_internal_testprotos_test3_test_proto_init() { if File_internal_testprotos_test3_test_proto != nil { return } file_internal_testprotos_test3_test_import_proto_init() if !protoimpl.UnsafeEnabled { file_internal_testprotos_test3_test_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestAllTypes); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test3_test_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ForeignMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_test3_test_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestAllTypes_NestedMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_internal_testprotos_test3_test_proto_msgTypes[0].OneofWrappers = []interface{}{ (*TestAllTypes_OneofUint32)(nil), (*TestAllTypes_OneofNestedMessage)(nil), (*TestAllTypes_OneofString)(nil), (*TestAllTypes_OneofBytes)(nil), (*TestAllTypes_OneofBool)(nil), (*TestAllTypes_OneofUint64)(nil), (*TestAllTypes_OneofFloat)(nil), (*TestAllTypes_OneofDouble)(nil), (*TestAllTypes_OneofEnum)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_test3_test_proto_rawDesc, NumEnums: 2, NumMessages: 20, NumExtensions: 0, NumServices: 0, }, GoTypes: file_internal_testprotos_test3_test_proto_goTypes, DependencyIndexes: file_internal_testprotos_test3_test_proto_depIdxs, EnumInfos: file_internal_testprotos_test3_test_proto_enumTypes, MessageInfos: file_internal_testprotos_test3_test_proto_msgTypes, }.Build() File_internal_testprotos_test3_test_proto = out.File file_internal_testprotos_test3_test_proto_rawDesc = nil file_internal_testprotos_test3_test_proto_goTypes = nil file_internal_testprotos_test3_test_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/test3/test.proto000066400000000000000000000122521411250152500253270ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package goproto.proto.test3; import "internal/testprotos/test3/test_import.proto"; option go_package = "google.golang.org/protobuf/internal/testprotos/test3"; message TestAllTypes { message NestedMessage { int32 a = 1; TestAllTypes corecursive = 2; } enum NestedEnum { FOO = 0; BAR = 1; BAZ = 2; NEG = -1; // Intentionally negative. } int32 singular_int32 = 81; int64 singular_int64 = 82; uint32 singular_uint32 = 83; uint64 singular_uint64 = 84; sint32 singular_sint32 = 85; sint64 singular_sint64 = 86; fixed32 singular_fixed32 = 87; fixed64 singular_fixed64 = 88; sfixed32 singular_sfixed32 = 89; sfixed64 singular_sfixed64 = 90; float singular_float = 91; double singular_double = 92; bool singular_bool = 93; string singular_string = 94; bytes singular_bytes = 95; NestedMessage singular_nested_message = 98; ForeignMessage singular_foreign_message = 99; ImportMessage singular_import_message = 100; NestedEnum singular_nested_enum = 101; ForeignEnum singular_foreign_enum = 102; ImportEnum singular_import_enum = 103; optional int32 optional_int32 = 1; optional int64 optional_int64 = 2; optional uint32 optional_uint32 = 3; optional uint64 optional_uint64 = 4; optional sint32 optional_sint32 = 5; optional sint64 optional_sint64 = 6; optional fixed32 optional_fixed32 = 7; optional fixed64 optional_fixed64 = 8; optional sfixed32 optional_sfixed32 = 9; optional sfixed64 optional_sfixed64 = 10; optional float optional_float = 11; optional double optional_double = 12; optional bool optional_bool = 13; optional string optional_string = 14; optional bytes optional_bytes = 15; optional NestedMessage optional_nested_message = 18; optional ForeignMessage optional_foreign_message = 19; optional ImportMessage optional_import_message = 20; optional NestedEnum optional_nested_enum = 21; optional ForeignEnum optional_foreign_enum = 22; optional ImportEnum optional_import_enum = 23; repeated int32 repeated_int32 = 31; repeated int64 repeated_int64 = 32; repeated uint32 repeated_uint32 = 33; repeated uint64 repeated_uint64 = 34; repeated sint32 repeated_sint32 = 35; repeated sint64 repeated_sint64 = 36; repeated fixed32 repeated_fixed32 = 37; repeated fixed64 repeated_fixed64 = 38; repeated sfixed32 repeated_sfixed32 = 39; repeated sfixed64 repeated_sfixed64 = 40; repeated float repeated_float = 41; repeated double repeated_double = 42; repeated bool repeated_bool = 43; repeated string repeated_string = 44; repeated bytes repeated_bytes = 45; repeated NestedMessage repeated_nested_message = 48; repeated ForeignMessage repeated_foreign_message = 49; repeated ImportMessage repeated_importmessage = 50; repeated NestedEnum repeated_nested_enum = 51; repeated ForeignEnum repeated_foreign_enum = 52; repeated ImportEnum repeated_importenum = 53; map < int32, int32> map_int32_int32 = 56; map < int64, int64> map_int64_int64 = 57; map < uint32, uint32> map_uint32_uint32 = 58; map < uint64, uint64> map_uint64_uint64 = 59; map < sint32, sint32> map_sint32_sint32 = 60; map < sint64, sint64> map_sint64_sint64 = 61; map < fixed32, fixed32> map_fixed32_fixed32 = 62; map < fixed64, fixed64> map_fixed64_fixed64 = 63; map map_sfixed32_sfixed32 = 64; map map_sfixed64_sfixed64 = 65; map < int32, float> map_int32_float = 66; map < int32, double> map_int32_double = 67; map < bool, bool> map_bool_bool = 68; map < string, string> map_string_string = 69; map < string, bytes> map_string_bytes = 70; map < string, NestedMessage> map_string_nested_message = 71; map < string, NestedEnum> map_string_nested_enum = 73; oneof oneof_field { uint32 oneof_uint32 = 111; NestedMessage oneof_nested_message = 112; string oneof_string = 113; bytes oneof_bytes = 114; bool oneof_bool = 115; uint64 oneof_uint64 = 116; float oneof_float = 117; double oneof_double = 118; NestedEnum oneof_enum = 119; } } message ForeignMessage { int32 c = 1; int32 d = 2; } enum ForeignEnum { FOREIGN_ZERO = 0; FOREIGN_FOO = 4; FOREIGN_BAR = 5; FOREIGN_BAZ = 6; } golang-google-protobuf-1.27.1/internal/testprotos/test3/test_extension.pb.go000066400000000000000000001212761411250152500272740ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/test3/test_extension.proto package test3 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" descriptorpb "google.golang.org/protobuf/types/descriptorpb" reflect "reflect" ) var file_internal_testprotos_test3_test_extension_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*int32)(nil), Field: 1001, Name: "goproto.proto.test3.optional_int32", Tag: "varint,1001,opt,name=optional_int32", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*int64)(nil), Field: 1002, Name: "goproto.proto.test3.optional_int64", Tag: "varint,1002,opt,name=optional_int64", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*uint32)(nil), Field: 1003, Name: "goproto.proto.test3.optional_uint32", Tag: "varint,1003,opt,name=optional_uint32", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*uint64)(nil), Field: 1004, Name: "goproto.proto.test3.optional_uint64", Tag: "varint,1004,opt,name=optional_uint64", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*int32)(nil), Field: 1005, Name: "goproto.proto.test3.optional_sint32", Tag: "zigzag32,1005,opt,name=optional_sint32", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*int64)(nil), Field: 1006, Name: "goproto.proto.test3.optional_sint64", Tag: "zigzag64,1006,opt,name=optional_sint64", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*uint32)(nil), Field: 1007, Name: "goproto.proto.test3.optional_fixed32", Tag: "fixed32,1007,opt,name=optional_fixed32", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*uint64)(nil), Field: 1008, Name: "goproto.proto.test3.optional_fixed64", Tag: "fixed64,1008,opt,name=optional_fixed64", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*int32)(nil), Field: 1009, Name: "goproto.proto.test3.optional_sfixed32", Tag: "fixed32,1009,opt,name=optional_sfixed32", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*int64)(nil), Field: 1010, Name: "goproto.proto.test3.optional_sfixed64", Tag: "fixed64,1010,opt,name=optional_sfixed64", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*float32)(nil), Field: 1011, Name: "goproto.proto.test3.optional_float", Tag: "fixed32,1011,opt,name=optional_float", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*float64)(nil), Field: 1012, Name: "goproto.proto.test3.optional_double", Tag: "fixed64,1012,opt,name=optional_double", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*bool)(nil), Field: 1013, Name: "goproto.proto.test3.optional_bool", Tag: "varint,1013,opt,name=optional_bool", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*string)(nil), Field: 1014, Name: "goproto.proto.test3.optional_string", Tag: "bytes,1014,opt,name=optional_string", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: ([]byte)(nil), Field: 1015, Name: "goproto.proto.test3.optional_bytes", Tag: "bytes,1015,opt,name=optional_bytes", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*ForeignMessage)(nil), Field: 1016, Name: "goproto.proto.test3.optional_foreign_message", Tag: "bytes,1016,opt,name=optional_foreign_message", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*ForeignEnum)(nil), Field: 1017, Name: "goproto.proto.test3.optional_foreign_enum", Tag: "varint,1017,opt,name=optional_foreign_enum,enum=goproto.proto.test3.ForeignEnum", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*int32)(nil), Field: 2001, Name: "goproto.proto.test3.optional_optional_int32", Tag: "varint,2001,opt,name=optional_optional_int32", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*int64)(nil), Field: 2002, Name: "goproto.proto.test3.optional_optional_int64", Tag: "varint,2002,opt,name=optional_optional_int64", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*uint32)(nil), Field: 2003, Name: "goproto.proto.test3.optional_optional_uint32", Tag: "varint,2003,opt,name=optional_optional_uint32", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*uint64)(nil), Field: 2004, Name: "goproto.proto.test3.optional_optional_uint64", Tag: "varint,2004,opt,name=optional_optional_uint64", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*int32)(nil), Field: 2005, Name: "goproto.proto.test3.optional_optional_sint32", Tag: "zigzag32,2005,opt,name=optional_optional_sint32", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*int64)(nil), Field: 2006, Name: "goproto.proto.test3.optional_optional_sint64", Tag: "zigzag64,2006,opt,name=optional_optional_sint64", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*uint32)(nil), Field: 2007, Name: "goproto.proto.test3.optional_optional_fixed32", Tag: "fixed32,2007,opt,name=optional_optional_fixed32", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*uint64)(nil), Field: 2008, Name: "goproto.proto.test3.optional_optional_fixed64", Tag: "fixed64,2008,opt,name=optional_optional_fixed64", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*int32)(nil), Field: 2009, Name: "goproto.proto.test3.optional_optional_sfixed32", Tag: "fixed32,2009,opt,name=optional_optional_sfixed32", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*int64)(nil), Field: 2010, Name: "goproto.proto.test3.optional_optional_sfixed64", Tag: "fixed64,2010,opt,name=optional_optional_sfixed64", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*float32)(nil), Field: 2011, Name: "goproto.proto.test3.optional_optional_float", Tag: "fixed32,2011,opt,name=optional_optional_float", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*float64)(nil), Field: 2012, Name: "goproto.proto.test3.optional_optional_double", Tag: "fixed64,2012,opt,name=optional_optional_double", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*bool)(nil), Field: 2013, Name: "goproto.proto.test3.optional_optional_bool", Tag: "varint,2013,opt,name=optional_optional_bool", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*string)(nil), Field: 2014, Name: "goproto.proto.test3.optional_optional_string", Tag: "bytes,2014,opt,name=optional_optional_string", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: ([]byte)(nil), Field: 2015, Name: "goproto.proto.test3.optional_optional_bytes", Tag: "bytes,2015,opt,name=optional_optional_bytes", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*ForeignMessage)(nil), Field: 2016, Name: "goproto.proto.test3.optional_optional_foreign_message", Tag: "bytes,2016,opt,name=optional_optional_foreign_message", Filename: "internal/testprotos/test3/test_extension.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*ForeignEnum)(nil), Field: 2017, Name: "goproto.proto.test3.optional_optional_foreign_enum", Tag: "varint,2017,opt,name=optional_optional_foreign_enum,enum=goproto.proto.test3.ForeignEnum", Filename: "internal/testprotos/test3/test_extension.proto", }, } // Extension fields to descriptorpb.MessageOptions. var ( // optional int32 optional_int32 = 1001; E_OptionalInt32 = &file_internal_testprotos_test3_test_extension_proto_extTypes[0] // optional int64 optional_int64 = 1002; E_OptionalInt64 = &file_internal_testprotos_test3_test_extension_proto_extTypes[1] // optional uint32 optional_uint32 = 1003; E_OptionalUint32 = &file_internal_testprotos_test3_test_extension_proto_extTypes[2] // optional uint64 optional_uint64 = 1004; E_OptionalUint64 = &file_internal_testprotos_test3_test_extension_proto_extTypes[3] // optional sint32 optional_sint32 = 1005; E_OptionalSint32 = &file_internal_testprotos_test3_test_extension_proto_extTypes[4] // optional sint64 optional_sint64 = 1006; E_OptionalSint64 = &file_internal_testprotos_test3_test_extension_proto_extTypes[5] // optional fixed32 optional_fixed32 = 1007; E_OptionalFixed32 = &file_internal_testprotos_test3_test_extension_proto_extTypes[6] // optional fixed64 optional_fixed64 = 1008; E_OptionalFixed64 = &file_internal_testprotos_test3_test_extension_proto_extTypes[7] // optional sfixed32 optional_sfixed32 = 1009; E_OptionalSfixed32 = &file_internal_testprotos_test3_test_extension_proto_extTypes[8] // optional sfixed64 optional_sfixed64 = 1010; E_OptionalSfixed64 = &file_internal_testprotos_test3_test_extension_proto_extTypes[9] // optional float optional_float = 1011; E_OptionalFloat = &file_internal_testprotos_test3_test_extension_proto_extTypes[10] // optional double optional_double = 1012; E_OptionalDouble = &file_internal_testprotos_test3_test_extension_proto_extTypes[11] // optional bool optional_bool = 1013; E_OptionalBool = &file_internal_testprotos_test3_test_extension_proto_extTypes[12] // optional string optional_string = 1014; E_OptionalString = &file_internal_testprotos_test3_test_extension_proto_extTypes[13] // optional bytes optional_bytes = 1015; E_OptionalBytes = &file_internal_testprotos_test3_test_extension_proto_extTypes[14] // optional goproto.proto.test3.ForeignMessage optional_foreign_message = 1016; E_OptionalForeignMessage = &file_internal_testprotos_test3_test_extension_proto_extTypes[15] // optional goproto.proto.test3.ForeignEnum optional_foreign_enum = 1017; E_OptionalForeignEnum = &file_internal_testprotos_test3_test_extension_proto_extTypes[16] // optional int32 optional_optional_int32 = 2001; E_OptionalOptionalInt32 = &file_internal_testprotos_test3_test_extension_proto_extTypes[17] // optional int64 optional_optional_int64 = 2002; E_OptionalOptionalInt64 = &file_internal_testprotos_test3_test_extension_proto_extTypes[18] // optional uint32 optional_optional_uint32 = 2003; E_OptionalOptionalUint32 = &file_internal_testprotos_test3_test_extension_proto_extTypes[19] // optional uint64 optional_optional_uint64 = 2004; E_OptionalOptionalUint64 = &file_internal_testprotos_test3_test_extension_proto_extTypes[20] // optional sint32 optional_optional_sint32 = 2005; E_OptionalOptionalSint32 = &file_internal_testprotos_test3_test_extension_proto_extTypes[21] // optional sint64 optional_optional_sint64 = 2006; E_OptionalOptionalSint64 = &file_internal_testprotos_test3_test_extension_proto_extTypes[22] // optional fixed32 optional_optional_fixed32 = 2007; E_OptionalOptionalFixed32 = &file_internal_testprotos_test3_test_extension_proto_extTypes[23] // optional fixed64 optional_optional_fixed64 = 2008; E_OptionalOptionalFixed64 = &file_internal_testprotos_test3_test_extension_proto_extTypes[24] // optional sfixed32 optional_optional_sfixed32 = 2009; E_OptionalOptionalSfixed32 = &file_internal_testprotos_test3_test_extension_proto_extTypes[25] // optional sfixed64 optional_optional_sfixed64 = 2010; E_OptionalOptionalSfixed64 = &file_internal_testprotos_test3_test_extension_proto_extTypes[26] // optional float optional_optional_float = 2011; E_OptionalOptionalFloat = &file_internal_testprotos_test3_test_extension_proto_extTypes[27] // optional double optional_optional_double = 2012; E_OptionalOptionalDouble = &file_internal_testprotos_test3_test_extension_proto_extTypes[28] // optional bool optional_optional_bool = 2013; E_OptionalOptionalBool = &file_internal_testprotos_test3_test_extension_proto_extTypes[29] // optional string optional_optional_string = 2014; E_OptionalOptionalString = &file_internal_testprotos_test3_test_extension_proto_extTypes[30] // optional bytes optional_optional_bytes = 2015; E_OptionalOptionalBytes = &file_internal_testprotos_test3_test_extension_proto_extTypes[31] // optional goproto.proto.test3.ForeignMessage optional_optional_foreign_message = 2016; E_OptionalOptionalForeignMessage = &file_internal_testprotos_test3_test_extension_proto_extTypes[32] // optional goproto.proto.test3.ForeignEnum optional_optional_foreign_enum = 2017; E_OptionalOptionalForeignEnum = &file_internal_testprotos_test3_test_extension_proto_extTypes[33] ) var File_internal_testprotos_test3_test_extension_proto protoreflect.FileDescriptor var file_internal_testprotos_test3_test_extension_proto_rawDesc = []byte{ 0x0a, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x47, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x47, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xea, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x49, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xeb, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x49, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xec, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x49, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xed, 0x07, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x49, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xee, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x4b, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xef, 0x07, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x4b, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf0, 0x07, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x4d, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf1, 0x07, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x4d, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf2, 0x07, 0x20, 0x01, 0x28, 0x10, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x47, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf3, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x49, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf4, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x3a, 0x45, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf5, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x3a, 0x49, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf6, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x47, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf7, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x3a, 0x7f, 0x0a, 0x18, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf8, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3a, 0x76, 0x0a, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf9, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x13, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x5b, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd1, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x88, 0x01, 0x01, 0x3a, 0x5b, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd2, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x88, 0x01, 0x01, 0x3a, 0x5d, 0x0a, 0x18, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd3, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x88, 0x01, 0x01, 0x3a, 0x5d, 0x0a, 0x18, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd4, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x88, 0x01, 0x01, 0x3a, 0x5d, 0x0a, 0x18, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd5, 0x0f, 0x20, 0x01, 0x28, 0x11, 0x52, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x88, 0x01, 0x01, 0x3a, 0x5d, 0x0a, 0x18, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd6, 0x0f, 0x20, 0x01, 0x28, 0x12, 0x52, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x88, 0x01, 0x01, 0x3a, 0x5f, 0x0a, 0x19, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd7, 0x0f, 0x20, 0x01, 0x28, 0x07, 0x52, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x88, 0x01, 0x01, 0x3a, 0x5f, 0x0a, 0x19, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd8, 0x0f, 0x20, 0x01, 0x28, 0x06, 0x52, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x88, 0x01, 0x01, 0x3a, 0x61, 0x0a, 0x1a, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd9, 0x0f, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x18, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x88, 0x01, 0x01, 0x3a, 0x61, 0x0a, 0x1a, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xda, 0x0f, 0x20, 0x01, 0x28, 0x10, 0x52, 0x18, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x88, 0x01, 0x01, 0x3a, 0x5b, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdb, 0x0f, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x88, 0x01, 0x01, 0x3a, 0x5d, 0x0a, 0x18, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdc, 0x0f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x3a, 0x59, 0x0a, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdd, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x3a, 0x5d, 0x0a, 0x18, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xde, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x3a, 0x5b, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdf, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x3a, 0x93, 0x01, 0x0a, 0x21, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe0, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x1e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x3a, 0x8a, 0x01, 0x0a, 0x1e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe1, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x1b, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_internal_testprotos_test3_test_extension_proto_goTypes = []interface{}{ (*descriptorpb.MessageOptions)(nil), // 0: google.protobuf.MessageOptions (*ForeignMessage)(nil), // 1: goproto.proto.test3.ForeignMessage (ForeignEnum)(0), // 2: goproto.proto.test3.ForeignEnum } var file_internal_testprotos_test3_test_extension_proto_depIdxs = []int32{ 0, // 0: goproto.proto.test3.optional_int32:extendee -> google.protobuf.MessageOptions 0, // 1: goproto.proto.test3.optional_int64:extendee -> google.protobuf.MessageOptions 0, // 2: goproto.proto.test3.optional_uint32:extendee -> google.protobuf.MessageOptions 0, // 3: goproto.proto.test3.optional_uint64:extendee -> google.protobuf.MessageOptions 0, // 4: goproto.proto.test3.optional_sint32:extendee -> google.protobuf.MessageOptions 0, // 5: goproto.proto.test3.optional_sint64:extendee -> google.protobuf.MessageOptions 0, // 6: goproto.proto.test3.optional_fixed32:extendee -> google.protobuf.MessageOptions 0, // 7: goproto.proto.test3.optional_fixed64:extendee -> google.protobuf.MessageOptions 0, // 8: goproto.proto.test3.optional_sfixed32:extendee -> google.protobuf.MessageOptions 0, // 9: goproto.proto.test3.optional_sfixed64:extendee -> google.protobuf.MessageOptions 0, // 10: goproto.proto.test3.optional_float:extendee -> google.protobuf.MessageOptions 0, // 11: goproto.proto.test3.optional_double:extendee -> google.protobuf.MessageOptions 0, // 12: goproto.proto.test3.optional_bool:extendee -> google.protobuf.MessageOptions 0, // 13: goproto.proto.test3.optional_string:extendee -> google.protobuf.MessageOptions 0, // 14: goproto.proto.test3.optional_bytes:extendee -> google.protobuf.MessageOptions 0, // 15: goproto.proto.test3.optional_foreign_message:extendee -> google.protobuf.MessageOptions 0, // 16: goproto.proto.test3.optional_foreign_enum:extendee -> google.protobuf.MessageOptions 0, // 17: goproto.proto.test3.optional_optional_int32:extendee -> google.protobuf.MessageOptions 0, // 18: goproto.proto.test3.optional_optional_int64:extendee -> google.protobuf.MessageOptions 0, // 19: goproto.proto.test3.optional_optional_uint32:extendee -> google.protobuf.MessageOptions 0, // 20: goproto.proto.test3.optional_optional_uint64:extendee -> google.protobuf.MessageOptions 0, // 21: goproto.proto.test3.optional_optional_sint32:extendee -> google.protobuf.MessageOptions 0, // 22: goproto.proto.test3.optional_optional_sint64:extendee -> google.protobuf.MessageOptions 0, // 23: goproto.proto.test3.optional_optional_fixed32:extendee -> google.protobuf.MessageOptions 0, // 24: goproto.proto.test3.optional_optional_fixed64:extendee -> google.protobuf.MessageOptions 0, // 25: goproto.proto.test3.optional_optional_sfixed32:extendee -> google.protobuf.MessageOptions 0, // 26: goproto.proto.test3.optional_optional_sfixed64:extendee -> google.protobuf.MessageOptions 0, // 27: goproto.proto.test3.optional_optional_float:extendee -> google.protobuf.MessageOptions 0, // 28: goproto.proto.test3.optional_optional_double:extendee -> google.protobuf.MessageOptions 0, // 29: goproto.proto.test3.optional_optional_bool:extendee -> google.protobuf.MessageOptions 0, // 30: goproto.proto.test3.optional_optional_string:extendee -> google.protobuf.MessageOptions 0, // 31: goproto.proto.test3.optional_optional_bytes:extendee -> google.protobuf.MessageOptions 0, // 32: goproto.proto.test3.optional_optional_foreign_message:extendee -> google.protobuf.MessageOptions 0, // 33: goproto.proto.test3.optional_optional_foreign_enum:extendee -> google.protobuf.MessageOptions 1, // 34: goproto.proto.test3.optional_foreign_message:type_name -> goproto.proto.test3.ForeignMessage 2, // 35: goproto.proto.test3.optional_foreign_enum:type_name -> goproto.proto.test3.ForeignEnum 1, // 36: goproto.proto.test3.optional_optional_foreign_message:type_name -> goproto.proto.test3.ForeignMessage 2, // 37: goproto.proto.test3.optional_optional_foreign_enum:type_name -> goproto.proto.test3.ForeignEnum 38, // [38:38] is the sub-list for method output_type 38, // [38:38] is the sub-list for method input_type 34, // [34:38] is the sub-list for extension type_name 0, // [0:34] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_internal_testprotos_test3_test_extension_proto_init() } func file_internal_testprotos_test3_test_extension_proto_init() { if File_internal_testprotos_test3_test_extension_proto != nil { return } file_internal_testprotos_test3_test_proto_init() type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_test3_test_extension_proto_rawDesc, NumEnums: 0, NumMessages: 0, NumExtensions: 34, NumServices: 0, }, GoTypes: file_internal_testprotos_test3_test_extension_proto_goTypes, DependencyIndexes: file_internal_testprotos_test3_test_extension_proto_depIdxs, ExtensionInfos: file_internal_testprotos_test3_test_extension_proto_extTypes, }.Build() File_internal_testprotos_test3_test_extension_proto = out.File file_internal_testprotos_test3_test_extension_proto_rawDesc = nil file_internal_testprotos_test3_test_extension_proto_goTypes = nil file_internal_testprotos_test3_test_extension_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/test3/test_extension.proto000066400000000000000000000042131411250152500274210ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package goproto.proto.test3; import "google/protobuf/descriptor.proto"; import "internal/testprotos/test3/test.proto"; option go_package = "google.golang.org/protobuf/internal/testprotos/test3"; extend google.protobuf.MessageOptions { int32 optional_int32 = 1001; int64 optional_int64 = 1002; uint32 optional_uint32 = 1003; uint64 optional_uint64 = 1004; sint32 optional_sint32 = 1005; sint64 optional_sint64 = 1006; fixed32 optional_fixed32 = 1007; fixed64 optional_fixed64 = 1008; sfixed32 optional_sfixed32 = 1009; sfixed64 optional_sfixed64 = 1010; float optional_float = 1011; double optional_double = 1012; bool optional_bool = 1013; string optional_string = 1014; bytes optional_bytes = 1015; ForeignMessage optional_foreign_message = 1016; ForeignEnum optional_foreign_enum = 1017; optional int32 optional_optional_int32 = 2001; optional int64 optional_optional_int64 = 2002; optional uint32 optional_optional_uint32 = 2003; optional uint64 optional_optional_uint64 = 2004; optional sint32 optional_optional_sint32 = 2005; optional sint64 optional_optional_sint64 = 2006; optional fixed32 optional_optional_fixed32 = 2007; optional fixed64 optional_optional_fixed64 = 2008; optional sfixed32 optional_optional_sfixed32 = 2009; optional sfixed64 optional_optional_sfixed64 = 2010; optional float optional_optional_float = 2011; optional double optional_optional_double = 2012; optional bool optional_optional_bool = 2013; optional string optional_optional_string = 2014; optional bytes optional_optional_bytes = 2015; optional ForeignMessage optional_optional_foreign_message = 2016; optional ForeignEnum optional_optional_foreign_enum = 2017; } golang-google-protobuf-1.27.1/internal/testprotos/test3/test_import.pb.go000066400000000000000000000144641411250152500265720ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/test3/test_import.proto package test3 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type ImportEnum int32 const ( ImportEnum_IMPORT_ZERO ImportEnum = 0 ) // Enum value maps for ImportEnum. var ( ImportEnum_name = map[int32]string{ 0: "IMPORT_ZERO", } ImportEnum_value = map[string]int32{ "IMPORT_ZERO": 0, } ) func (x ImportEnum) Enum() *ImportEnum { p := new(ImportEnum) *p = x return p } func (x ImportEnum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ImportEnum) Descriptor() protoreflect.EnumDescriptor { return file_internal_testprotos_test3_test_import_proto_enumTypes[0].Descriptor() } func (ImportEnum) Type() protoreflect.EnumType { return &file_internal_testprotos_test3_test_import_proto_enumTypes[0] } func (x ImportEnum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ImportEnum.Descriptor instead. func (ImportEnum) EnumDescriptor() ([]byte, []int) { return file_internal_testprotos_test3_test_import_proto_rawDescGZIP(), []int{0} } type ImportMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ImportMessage) Reset() { *x = ImportMessage{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_test3_test_import_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ImportMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*ImportMessage) ProtoMessage() {} func (x *ImportMessage) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_test3_test_import_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ImportMessage.ProtoReflect.Descriptor instead. func (*ImportMessage) Descriptor() ([]byte, []int) { return file_internal_testprotos_test3_test_import_proto_rawDescGZIP(), []int{0} } var File_internal_testprotos_test3_test_import_proto protoreflect.FileDescriptor var file_internal_testprotos_test3_test_import_proto_rawDesc = []byte{ 0x0a, 0x2b, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x33, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x33, 0x22, 0x0f, 0x0a, 0x0d, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2a, 0x1d, 0x0a, 0x0a, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_internal_testprotos_test3_test_import_proto_rawDescOnce sync.Once file_internal_testprotos_test3_test_import_proto_rawDescData = file_internal_testprotos_test3_test_import_proto_rawDesc ) func file_internal_testprotos_test3_test_import_proto_rawDescGZIP() []byte { file_internal_testprotos_test3_test_import_proto_rawDescOnce.Do(func() { file_internal_testprotos_test3_test_import_proto_rawDescData = protoimpl.X.CompressGZIP(file_internal_testprotos_test3_test_import_proto_rawDescData) }) return file_internal_testprotos_test3_test_import_proto_rawDescData } var file_internal_testprotos_test3_test_import_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_internal_testprotos_test3_test_import_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_internal_testprotos_test3_test_import_proto_goTypes = []interface{}{ (ImportEnum)(0), // 0: goproto.proto.test3.ImportEnum (*ImportMessage)(nil), // 1: goproto.proto.test3.ImportMessage } var file_internal_testprotos_test3_test_import_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_internal_testprotos_test3_test_import_proto_init() } func file_internal_testprotos_test3_test_import_proto_init() { if File_internal_testprotos_test3_test_import_proto != nil { return } if !protoimpl.UnsafeEnabled { file_internal_testprotos_test3_test_import_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ImportMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_test3_test_import_proto_rawDesc, NumEnums: 1, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_internal_testprotos_test3_test_import_proto_goTypes, DependencyIndexes: file_internal_testprotos_test3_test_import_proto_depIdxs, EnumInfos: file_internal_testprotos_test3_test_import_proto_enumTypes, MessageInfos: file_internal_testprotos_test3_test_import_proto_msgTypes, }.Build() File_internal_testprotos_test3_test_import_proto = out.File file_internal_testprotos_test3_test_import_proto_rawDesc = nil file_internal_testprotos_test3_test_import_proto_goTypes = nil file_internal_testprotos_test3_test_import_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/test3/test_import.proto000066400000000000000000000005401411250152500267160ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. syntax = "proto3"; package goproto.proto.test3; option go_package = "google.golang.org/protobuf/internal/testprotos/test3"; message ImportMessage { } enum ImportEnum { IMPORT_ZERO = 0; } golang-google-protobuf-1.27.1/internal/testprotos/textpb2/000077500000000000000000000000001411250152500236075ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/textpb2/test.pb.go000066400000000000000000003117301411250152500255220ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Test Protobuf definitions with proto2 syntax. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/textpb2/test.proto package textpb2 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" anypb "google.golang.org/protobuf/types/known/anypb" durationpb "google.golang.org/protobuf/types/known/durationpb" emptypb "google.golang.org/protobuf/types/known/emptypb" fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" structpb "google.golang.org/protobuf/types/known/structpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" reflect "reflect" sync "sync" ) type Enum int32 const ( Enum_ONE Enum = 1 Enum_TWO Enum = 2 Enum_TEN Enum = 10 ) // Enum value maps for Enum. var ( Enum_name = map[int32]string{ 1: "ONE", 2: "TWO", 10: "TEN", } Enum_value = map[string]int32{ "ONE": 1, "TWO": 2, "TEN": 10, } ) func (x Enum) Enum() *Enum { p := new(Enum) *p = x return p } func (x Enum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum) Descriptor() protoreflect.EnumDescriptor { return file_internal_testprotos_textpb2_test_proto_enumTypes[0].Descriptor() } func (Enum) Type() protoreflect.EnumType { return &file_internal_testprotos_textpb2_test_proto_enumTypes[0] } func (x Enum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enum) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enum(num) return nil } // Deprecated: Use Enum.Descriptor instead. func (Enum) EnumDescriptor() ([]byte, []int) { return file_internal_testprotos_textpb2_test_proto_rawDescGZIP(), []int{0} } type Enums_NestedEnum int32 const ( Enums_UNO Enums_NestedEnum = 1 Enums_DOS Enums_NestedEnum = 2 Enums_DIEZ Enums_NestedEnum = 10 ) // Enum value maps for Enums_NestedEnum. var ( Enums_NestedEnum_name = map[int32]string{ 1: "UNO", 2: "DOS", 10: "DIEZ", } Enums_NestedEnum_value = map[string]int32{ "UNO": 1, "DOS": 2, "DIEZ": 10, } ) func (x Enums_NestedEnum) Enum() *Enums_NestedEnum { p := new(Enums_NestedEnum) *p = x return p } func (x Enums_NestedEnum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enums_NestedEnum) Descriptor() protoreflect.EnumDescriptor { return file_internal_testprotos_textpb2_test_proto_enumTypes[1].Descriptor() } func (Enums_NestedEnum) Type() protoreflect.EnumType { return &file_internal_testprotos_textpb2_test_proto_enumTypes[1] } func (x Enums_NestedEnum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Enums_NestedEnum) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Enums_NestedEnum(num) return nil } // Deprecated: Use Enums_NestedEnum.Descriptor instead. func (Enums_NestedEnum) EnumDescriptor() ([]byte, []int) { return file_internal_testprotos_textpb2_test_proto_rawDescGZIP(), []int{1, 0} } // Scalars contains optional scalar fields. type Scalars struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OptBool *bool `protobuf:"varint,1,opt,name=opt_bool,json=optBool" json:"opt_bool,omitempty"` OptInt32 *int32 `protobuf:"varint,2,opt,name=opt_int32,json=optInt32" json:"opt_int32,omitempty"` OptInt64 *int64 `protobuf:"varint,3,opt,name=opt_int64,json=optInt64" json:"opt_int64,omitempty"` OptUint32 *uint32 `protobuf:"varint,4,opt,name=opt_uint32,json=optUint32" json:"opt_uint32,omitempty"` OptUint64 *uint64 `protobuf:"varint,5,opt,name=opt_uint64,json=optUint64" json:"opt_uint64,omitempty"` OptSint32 *int32 `protobuf:"zigzag32,6,opt,name=opt_sint32,json=optSint32" json:"opt_sint32,omitempty"` OptSint64 *int64 `protobuf:"zigzag64,7,opt,name=opt_sint64,json=optSint64" json:"opt_sint64,omitempty"` OptFixed32 *uint32 `protobuf:"fixed32,8,opt,name=opt_fixed32,json=optFixed32" json:"opt_fixed32,omitempty"` OptFixed64 *uint64 `protobuf:"fixed64,9,opt,name=opt_fixed64,json=optFixed64" json:"opt_fixed64,omitempty"` OptSfixed32 *int32 `protobuf:"fixed32,10,opt,name=opt_sfixed32,json=optSfixed32" json:"opt_sfixed32,omitempty"` OptSfixed64 *int64 `protobuf:"fixed64,11,opt,name=opt_sfixed64,json=optSfixed64" json:"opt_sfixed64,omitempty"` OptFloat *float32 `protobuf:"fixed32,20,opt,name=opt_float,json=optFloat" json:"opt_float,omitempty"` OptDouble *float64 `protobuf:"fixed64,21,opt,name=opt_double,json=optDouble" json:"opt_double,omitempty"` OptBytes []byte `protobuf:"bytes,14,opt,name=opt_bytes,json=optBytes" json:"opt_bytes,omitempty"` OptString *string `protobuf:"bytes,13,opt,name=opt_string,json=optString" json:"opt_string,omitempty"` } func (x *Scalars) Reset() { *x = Scalars{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Scalars) String() string { return protoimpl.X.MessageStringOf(x) } func (*Scalars) ProtoMessage() {} func (x *Scalars) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Scalars.ProtoReflect.Descriptor instead. func (*Scalars) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb2_test_proto_rawDescGZIP(), []int{0} } func (x *Scalars) GetOptBool() bool { if x != nil && x.OptBool != nil { return *x.OptBool } return false } func (x *Scalars) GetOptInt32() int32 { if x != nil && x.OptInt32 != nil { return *x.OptInt32 } return 0 } func (x *Scalars) GetOptInt64() int64 { if x != nil && x.OptInt64 != nil { return *x.OptInt64 } return 0 } func (x *Scalars) GetOptUint32() uint32 { if x != nil && x.OptUint32 != nil { return *x.OptUint32 } return 0 } func (x *Scalars) GetOptUint64() uint64 { if x != nil && x.OptUint64 != nil { return *x.OptUint64 } return 0 } func (x *Scalars) GetOptSint32() int32 { if x != nil && x.OptSint32 != nil { return *x.OptSint32 } return 0 } func (x *Scalars) GetOptSint64() int64 { if x != nil && x.OptSint64 != nil { return *x.OptSint64 } return 0 } func (x *Scalars) GetOptFixed32() uint32 { if x != nil && x.OptFixed32 != nil { return *x.OptFixed32 } return 0 } func (x *Scalars) GetOptFixed64() uint64 { if x != nil && x.OptFixed64 != nil { return *x.OptFixed64 } return 0 } func (x *Scalars) GetOptSfixed32() int32 { if x != nil && x.OptSfixed32 != nil { return *x.OptSfixed32 } return 0 } func (x *Scalars) GetOptSfixed64() int64 { if x != nil && x.OptSfixed64 != nil { return *x.OptSfixed64 } return 0 } func (x *Scalars) GetOptFloat() float32 { if x != nil && x.OptFloat != nil { return *x.OptFloat } return 0 } func (x *Scalars) GetOptDouble() float64 { if x != nil && x.OptDouble != nil { return *x.OptDouble } return 0 } func (x *Scalars) GetOptBytes() []byte { if x != nil { return x.OptBytes } return nil } func (x *Scalars) GetOptString() string { if x != nil && x.OptString != nil { return *x.OptString } return "" } // Message contains enum fields. type Enums struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OptEnum *Enum `protobuf:"varint,1,opt,name=opt_enum,json=optEnum,enum=pb2.Enum" json:"opt_enum,omitempty"` RptEnum []Enum `protobuf:"varint,2,rep,name=rpt_enum,json=rptEnum,enum=pb2.Enum" json:"rpt_enum,omitempty"` OptNestedEnum *Enums_NestedEnum `protobuf:"varint,3,opt,name=opt_nested_enum,json=optNestedEnum,enum=pb2.Enums_NestedEnum" json:"opt_nested_enum,omitempty"` RptNestedEnum []Enums_NestedEnum `protobuf:"varint,4,rep,name=rpt_nested_enum,json=rptNestedEnum,enum=pb2.Enums_NestedEnum" json:"rpt_nested_enum,omitempty"` } func (x *Enums) Reset() { *x = Enums{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Enums) String() string { return protoimpl.X.MessageStringOf(x) } func (*Enums) ProtoMessage() {} func (x *Enums) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Enums.ProtoReflect.Descriptor instead. func (*Enums) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb2_test_proto_rawDescGZIP(), []int{1} } func (x *Enums) GetOptEnum() Enum { if x != nil && x.OptEnum != nil { return *x.OptEnum } return Enum_ONE } func (x *Enums) GetRptEnum() []Enum { if x != nil { return x.RptEnum } return nil } func (x *Enums) GetOptNestedEnum() Enums_NestedEnum { if x != nil && x.OptNestedEnum != nil { return *x.OptNestedEnum } return Enums_UNO } func (x *Enums) GetRptNestedEnum() []Enums_NestedEnum { if x != nil { return x.RptNestedEnum } return nil } // Message contains repeated fields. type Repeats struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RptBool []bool `protobuf:"varint,1,rep,name=rpt_bool,json=rptBool" json:"rpt_bool,omitempty"` RptInt32 []int32 `protobuf:"varint,2,rep,name=rpt_int32,json=rptInt32" json:"rpt_int32,omitempty"` RptInt64 []int64 `protobuf:"varint,3,rep,name=rpt_int64,json=rptInt64" json:"rpt_int64,omitempty"` RptUint32 []uint32 `protobuf:"varint,4,rep,name=rpt_uint32,json=rptUint32" json:"rpt_uint32,omitempty"` RptUint64 []uint64 `protobuf:"varint,5,rep,name=rpt_uint64,json=rptUint64" json:"rpt_uint64,omitempty"` RptFloat []float32 `protobuf:"fixed32,6,rep,name=rpt_float,json=rptFloat" json:"rpt_float,omitempty"` RptDouble []float64 `protobuf:"fixed64,7,rep,name=rpt_double,json=rptDouble" json:"rpt_double,omitempty"` RptString []string `protobuf:"bytes,8,rep,name=rpt_string,json=rptString" json:"rpt_string,omitempty"` RptBytes [][]byte `protobuf:"bytes,9,rep,name=rpt_bytes,json=rptBytes" json:"rpt_bytes,omitempty"` } func (x *Repeats) Reset() { *x = Repeats{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Repeats) String() string { return protoimpl.X.MessageStringOf(x) } func (*Repeats) ProtoMessage() {} func (x *Repeats) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Repeats.ProtoReflect.Descriptor instead. func (*Repeats) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb2_test_proto_rawDescGZIP(), []int{2} } func (x *Repeats) GetRptBool() []bool { if x != nil { return x.RptBool } return nil } func (x *Repeats) GetRptInt32() []int32 { if x != nil { return x.RptInt32 } return nil } func (x *Repeats) GetRptInt64() []int64 { if x != nil { return x.RptInt64 } return nil } func (x *Repeats) GetRptUint32() []uint32 { if x != nil { return x.RptUint32 } return nil } func (x *Repeats) GetRptUint64() []uint64 { if x != nil { return x.RptUint64 } return nil } func (x *Repeats) GetRptFloat() []float32 { if x != nil { return x.RptFloat } return nil } func (x *Repeats) GetRptDouble() []float64 { if x != nil { return x.RptDouble } return nil } func (x *Repeats) GetRptString() []string { if x != nil { return x.RptString } return nil } func (x *Repeats) GetRptBytes() [][]byte { if x != nil { return x.RptBytes } return nil } // Message contains map fields. type Maps struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Int32ToStr map[int32]string `protobuf:"bytes,1,rep,name=int32_to_str,json=int32ToStr" json:"int32_to_str,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` StrToNested map[string]*Nested `protobuf:"bytes,4,rep,name=str_to_nested,json=strToNested" json:"str_to_nested,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` } func (x *Maps) Reset() { *x = Maps{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Maps) String() string { return protoimpl.X.MessageStringOf(x) } func (*Maps) ProtoMessage() {} func (x *Maps) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Maps.ProtoReflect.Descriptor instead. func (*Maps) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb2_test_proto_rawDescGZIP(), []int{3} } func (x *Maps) GetInt32ToStr() map[int32]string { if x != nil { return x.Int32ToStr } return nil } func (x *Maps) GetStrToNested() map[string]*Nested { if x != nil { return x.StrToNested } return nil } // Message type used as submessage. type Nested struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OptString *string `protobuf:"bytes,1,opt,name=opt_string,json=optString" json:"opt_string,omitempty"` OptNested *Nested `protobuf:"bytes,2,opt,name=opt_nested,json=optNested" json:"opt_nested,omitempty"` } func (x *Nested) Reset() { *x = Nested{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Nested) String() string { return protoimpl.X.MessageStringOf(x) } func (*Nested) ProtoMessage() {} func (x *Nested) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Nested.ProtoReflect.Descriptor instead. func (*Nested) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb2_test_proto_rawDescGZIP(), []int{4} } func (x *Nested) GetOptString() string { if x != nil && x.OptString != nil { return *x.OptString } return "" } func (x *Nested) GetOptNested() *Nested { if x != nil { return x.OptNested } return nil } // Message contains message and group fields. type Nests struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OptNested *Nested `protobuf:"bytes,1,opt,name=opt_nested,json=optNested" json:"opt_nested,omitempty"` Optgroup *Nests_OptGroup `protobuf:"group,2,opt,name=OptGroup,json=optgroup" json:"optgroup,omitempty"` RptNested []*Nested `protobuf:"bytes,4,rep,name=rpt_nested,json=rptNested" json:"rpt_nested,omitempty"` Rptgroup []*Nests_RptGroup `protobuf:"group,5,rep,name=RptGroup,json=rptgroup" json:"rptgroup,omitempty"` } func (x *Nests) Reset() { *x = Nests{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Nests) String() string { return protoimpl.X.MessageStringOf(x) } func (*Nests) ProtoMessage() {} func (x *Nests) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Nests.ProtoReflect.Descriptor instead. func (*Nests) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb2_test_proto_rawDescGZIP(), []int{5} } func (x *Nests) GetOptNested() *Nested { if x != nil { return x.OptNested } return nil } func (x *Nests) GetOptgroup() *Nests_OptGroup { if x != nil { return x.Optgroup } return nil } func (x *Nests) GetRptNested() []*Nested { if x != nil { return x.RptNested } return nil } func (x *Nests) GetRptgroup() []*Nests_RptGroup { if x != nil { return x.Rptgroup } return nil } // Message contains required fields. type Requireds struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ReqBool *bool `protobuf:"varint,1,req,name=req_bool,json=reqBool" json:"req_bool,omitempty"` ReqSfixed64 *int64 `protobuf:"fixed64,2,req,name=req_sfixed64,json=reqSfixed64" json:"req_sfixed64,omitempty"` ReqDouble *float64 `protobuf:"fixed64,3,req,name=req_double,json=reqDouble" json:"req_double,omitempty"` ReqString *string `protobuf:"bytes,4,req,name=req_string,json=reqString" json:"req_string,omitempty"` ReqEnum *Enum `protobuf:"varint,5,req,name=req_enum,json=reqEnum,enum=pb2.Enum" json:"req_enum,omitempty"` ReqNested *Nested `protobuf:"bytes,6,req,name=req_nested,json=reqNested" json:"req_nested,omitempty"` } func (x *Requireds) Reset() { *x = Requireds{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Requireds) String() string { return protoimpl.X.MessageStringOf(x) } func (*Requireds) ProtoMessage() {} func (x *Requireds) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Requireds.ProtoReflect.Descriptor instead. func (*Requireds) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb2_test_proto_rawDescGZIP(), []int{6} } func (x *Requireds) GetReqBool() bool { if x != nil && x.ReqBool != nil { return *x.ReqBool } return false } func (x *Requireds) GetReqSfixed64() int64 { if x != nil && x.ReqSfixed64 != nil { return *x.ReqSfixed64 } return 0 } func (x *Requireds) GetReqDouble() float64 { if x != nil && x.ReqDouble != nil { return *x.ReqDouble } return 0 } func (x *Requireds) GetReqString() string { if x != nil && x.ReqString != nil { return *x.ReqString } return "" } func (x *Requireds) GetReqEnum() Enum { if x != nil && x.ReqEnum != nil { return *x.ReqEnum } return Enum_ONE } func (x *Requireds) GetReqNested() *Nested { if x != nil { return x.ReqNested } return nil } // Message contains both required and optional fields. type PartialRequired struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ReqString *string `protobuf:"bytes,1,req,name=req_string,json=reqString" json:"req_string,omitempty"` OptString *string `protobuf:"bytes,2,opt,name=opt_string,json=optString" json:"opt_string,omitempty"` } func (x *PartialRequired) Reset() { *x = PartialRequired{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PartialRequired) String() string { return protoimpl.X.MessageStringOf(x) } func (*PartialRequired) ProtoMessage() {} func (x *PartialRequired) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PartialRequired.ProtoReflect.Descriptor instead. func (*PartialRequired) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb2_test_proto_rawDescGZIP(), []int{7} } func (x *PartialRequired) GetReqString() string { if x != nil && x.ReqString != nil { return *x.ReqString } return "" } func (x *PartialRequired) GetOptString() string { if x != nil && x.OptString != nil { return *x.OptString } return "" } type NestedWithRequired struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ReqString *string `protobuf:"bytes,1,req,name=req_string,json=reqString" json:"req_string,omitempty"` } func (x *NestedWithRequired) Reset() { *x = NestedWithRequired{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NestedWithRequired) String() string { return protoimpl.X.MessageStringOf(x) } func (*NestedWithRequired) ProtoMessage() {} func (x *NestedWithRequired) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use NestedWithRequired.ProtoReflect.Descriptor instead. func (*NestedWithRequired) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb2_test_proto_rawDescGZIP(), []int{8} } func (x *NestedWithRequired) GetReqString() string { if x != nil && x.ReqString != nil { return *x.ReqString } return "" } type IndirectRequired struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OptNested *NestedWithRequired `protobuf:"bytes,1,opt,name=opt_nested,json=optNested" json:"opt_nested,omitempty"` RptNested []*NestedWithRequired `protobuf:"bytes,2,rep,name=rpt_nested,json=rptNested" json:"rpt_nested,omitempty"` StrToNested map[string]*NestedWithRequired `protobuf:"bytes,3,rep,name=str_to_nested,json=strToNested" json:"str_to_nested,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // Types that are assignable to Union: // *IndirectRequired_OneofNested Union isIndirectRequired_Union `protobuf_oneof:"union"` } func (x *IndirectRequired) Reset() { *x = IndirectRequired{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *IndirectRequired) String() string { return protoimpl.X.MessageStringOf(x) } func (*IndirectRequired) ProtoMessage() {} func (x *IndirectRequired) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use IndirectRequired.ProtoReflect.Descriptor instead. func (*IndirectRequired) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb2_test_proto_rawDescGZIP(), []int{9} } func (x *IndirectRequired) GetOptNested() *NestedWithRequired { if x != nil { return x.OptNested } return nil } func (x *IndirectRequired) GetRptNested() []*NestedWithRequired { if x != nil { return x.RptNested } return nil } func (x *IndirectRequired) GetStrToNested() map[string]*NestedWithRequired { if x != nil { return x.StrToNested } return nil } func (m *IndirectRequired) GetUnion() isIndirectRequired_Union { if m != nil { return m.Union } return nil } func (x *IndirectRequired) GetOneofNested() *NestedWithRequired { if x, ok := x.GetUnion().(*IndirectRequired_OneofNested); ok { return x.OneofNested } return nil } type isIndirectRequired_Union interface { isIndirectRequired_Union() } type IndirectRequired_OneofNested struct { OneofNested *NestedWithRequired `protobuf:"bytes,4,opt,name=oneof_nested,json=oneofNested,oneof"` } func (*IndirectRequired_OneofNested) isIndirectRequired_Union() {} type Extensions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields OptString *string `protobuf:"bytes,1,opt,name=opt_string,json=optString" json:"opt_string,omitempty"` OptBool *bool `protobuf:"varint,101,opt,name=opt_bool,json=optBool" json:"opt_bool,omitempty"` OptInt32 *int32 `protobuf:"varint,2,opt,name=opt_int32,json=optInt32" json:"opt_int32,omitempty"` } func (x *Extensions) Reset() { *x = Extensions{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Extensions) String() string { return protoimpl.X.MessageStringOf(x) } func (*Extensions) ProtoMessage() {} func (x *Extensions) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Extensions.ProtoReflect.Descriptor instead. func (*Extensions) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb2_test_proto_rawDescGZIP(), []int{10} } func (x *Extensions) GetOptString() string { if x != nil && x.OptString != nil { return *x.OptString } return "" } func (x *Extensions) GetOptBool() bool { if x != nil && x.OptBool != nil { return *x.OptBool } return false } func (x *Extensions) GetOptInt32() int32 { if x != nil && x.OptInt32 != nil { return *x.OptInt32 } return 0 } type ExtensionsContainer struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ExtensionsContainer) Reset() { *x = ExtensionsContainer{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExtensionsContainer) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExtensionsContainer) ProtoMessage() {} func (x *ExtensionsContainer) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ExtensionsContainer.ProtoReflect.Descriptor instead. func (*ExtensionsContainer) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb2_test_proto_rawDescGZIP(), []int{11} } type MessageSet struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields } func (x *MessageSet) Reset() { *x = MessageSet{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessageSet) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessageSet) ProtoMessage() {} func (x *MessageSet) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MessageSet.ProtoReflect.Descriptor instead. func (*MessageSet) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb2_test_proto_rawDescGZIP(), []int{12} } type MessageSetExtension struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OptString *string `protobuf:"bytes,1,opt,name=opt_string,json=optString" json:"opt_string,omitempty"` } func (x *MessageSetExtension) Reset() { *x = MessageSetExtension{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessageSetExtension) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessageSetExtension) ProtoMessage() {} func (x *MessageSetExtension) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MessageSetExtension.ProtoReflect.Descriptor instead. func (*MessageSetExtension) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb2_test_proto_rawDescGZIP(), []int{13} } func (x *MessageSetExtension) GetOptString() string { if x != nil && x.OptString != nil { return *x.OptString } return "" } type FakeMessageSet struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields } func (x *FakeMessageSet) Reset() { *x = FakeMessageSet{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FakeMessageSet) String() string { return protoimpl.X.MessageStringOf(x) } func (*FakeMessageSet) ProtoMessage() {} func (x *FakeMessageSet) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FakeMessageSet.ProtoReflect.Descriptor instead. func (*FakeMessageSet) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb2_test_proto_rawDescGZIP(), []int{14} } type FakeMessageSetExtension struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OptString *string `protobuf:"bytes,1,opt,name=opt_string,json=optString" json:"opt_string,omitempty"` } func (x *FakeMessageSetExtension) Reset() { *x = FakeMessageSetExtension{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FakeMessageSetExtension) String() string { return protoimpl.X.MessageStringOf(x) } func (*FakeMessageSetExtension) ProtoMessage() {} func (x *FakeMessageSetExtension) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FakeMessageSetExtension.ProtoReflect.Descriptor instead. func (*FakeMessageSetExtension) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb2_test_proto_rawDescGZIP(), []int{15} } func (x *FakeMessageSetExtension) GetOptString() string { if x != nil && x.OptString != nil { return *x.OptString } return "" } // Message contains well-known type fields. type KnownTypes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OptBool *wrapperspb.BoolValue `protobuf:"bytes,1,opt,name=opt_bool,json=optBool" json:"opt_bool,omitempty"` OptInt32 *wrapperspb.Int32Value `protobuf:"bytes,2,opt,name=opt_int32,json=optInt32" json:"opt_int32,omitempty"` OptInt64 *wrapperspb.Int64Value `protobuf:"bytes,3,opt,name=opt_int64,json=optInt64" json:"opt_int64,omitempty"` OptUint32 *wrapperspb.UInt32Value `protobuf:"bytes,4,opt,name=opt_uint32,json=optUint32" json:"opt_uint32,omitempty"` OptUint64 *wrapperspb.UInt64Value `protobuf:"bytes,5,opt,name=opt_uint64,json=optUint64" json:"opt_uint64,omitempty"` OptFloat *wrapperspb.FloatValue `protobuf:"bytes,6,opt,name=opt_float,json=optFloat" json:"opt_float,omitempty"` OptDouble *wrapperspb.DoubleValue `protobuf:"bytes,7,opt,name=opt_double,json=optDouble" json:"opt_double,omitempty"` OptString *wrapperspb.StringValue `protobuf:"bytes,8,opt,name=opt_string,json=optString" json:"opt_string,omitempty"` OptBytes *wrapperspb.BytesValue `protobuf:"bytes,9,opt,name=opt_bytes,json=optBytes" json:"opt_bytes,omitempty"` OptDuration *durationpb.Duration `protobuf:"bytes,20,opt,name=opt_duration,json=optDuration" json:"opt_duration,omitempty"` OptTimestamp *timestamppb.Timestamp `protobuf:"bytes,21,opt,name=opt_timestamp,json=optTimestamp" json:"opt_timestamp,omitempty"` OptStruct *structpb.Struct `protobuf:"bytes,25,opt,name=opt_struct,json=optStruct" json:"opt_struct,omitempty"` OptList *structpb.ListValue `protobuf:"bytes,26,opt,name=opt_list,json=optList" json:"opt_list,omitempty"` OptValue *structpb.Value `protobuf:"bytes,27,opt,name=opt_value,json=optValue" json:"opt_value,omitempty"` OptNull *structpb.NullValue `protobuf:"varint,28,opt,name=opt_null,json=optNull,enum=google.protobuf.NullValue" json:"opt_null,omitempty"` OptEmpty *emptypb.Empty `protobuf:"bytes,30,opt,name=opt_empty,json=optEmpty" json:"opt_empty,omitempty"` OptAny *anypb.Any `protobuf:"bytes,32,opt,name=opt_any,json=optAny" json:"opt_any,omitempty"` OptFieldmask *fieldmaskpb.FieldMask `protobuf:"bytes,40,opt,name=opt_fieldmask,json=optFieldmask" json:"opt_fieldmask,omitempty"` } func (x *KnownTypes) Reset() { *x = KnownTypes{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *KnownTypes) String() string { return protoimpl.X.MessageStringOf(x) } func (*KnownTypes) ProtoMessage() {} func (x *KnownTypes) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use KnownTypes.ProtoReflect.Descriptor instead. func (*KnownTypes) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb2_test_proto_rawDescGZIP(), []int{16} } func (x *KnownTypes) GetOptBool() *wrapperspb.BoolValue { if x != nil { return x.OptBool } return nil } func (x *KnownTypes) GetOptInt32() *wrapperspb.Int32Value { if x != nil { return x.OptInt32 } return nil } func (x *KnownTypes) GetOptInt64() *wrapperspb.Int64Value { if x != nil { return x.OptInt64 } return nil } func (x *KnownTypes) GetOptUint32() *wrapperspb.UInt32Value { if x != nil { return x.OptUint32 } return nil } func (x *KnownTypes) GetOptUint64() *wrapperspb.UInt64Value { if x != nil { return x.OptUint64 } return nil } func (x *KnownTypes) GetOptFloat() *wrapperspb.FloatValue { if x != nil { return x.OptFloat } return nil } func (x *KnownTypes) GetOptDouble() *wrapperspb.DoubleValue { if x != nil { return x.OptDouble } return nil } func (x *KnownTypes) GetOptString() *wrapperspb.StringValue { if x != nil { return x.OptString } return nil } func (x *KnownTypes) GetOptBytes() *wrapperspb.BytesValue { if x != nil { return x.OptBytes } return nil } func (x *KnownTypes) GetOptDuration() *durationpb.Duration { if x != nil { return x.OptDuration } return nil } func (x *KnownTypes) GetOptTimestamp() *timestamppb.Timestamp { if x != nil { return x.OptTimestamp } return nil } func (x *KnownTypes) GetOptStruct() *structpb.Struct { if x != nil { return x.OptStruct } return nil } func (x *KnownTypes) GetOptList() *structpb.ListValue { if x != nil { return x.OptList } return nil } func (x *KnownTypes) GetOptValue() *structpb.Value { if x != nil { return x.OptValue } return nil } func (x *KnownTypes) GetOptNull() structpb.NullValue { if x != nil && x.OptNull != nil { return *x.OptNull } return structpb.NullValue(0) } func (x *KnownTypes) GetOptEmpty() *emptypb.Empty { if x != nil { return x.OptEmpty } return nil } func (x *KnownTypes) GetOptAny() *anypb.Any { if x != nil { return x.OptAny } return nil } func (x *KnownTypes) GetOptFieldmask() *fieldmaskpb.FieldMask { if x != nil { return x.OptFieldmask } return nil } type Nests_OptGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OptString *string `protobuf:"bytes,1,opt,name=opt_string,json=optString" json:"opt_string,omitempty"` OptNested *Nested `protobuf:"bytes,2,opt,name=opt_nested,json=optNested" json:"opt_nested,omitempty"` Optnestedgroup *Nests_OptGroup_OptNestedGroup `protobuf:"group,3,opt,name=OptNestedGroup,json=optnestedgroup" json:"optnestedgroup,omitempty"` } func (x *Nests_OptGroup) Reset() { *x = Nests_OptGroup{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Nests_OptGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*Nests_OptGroup) ProtoMessage() {} func (x *Nests_OptGroup) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Nests_OptGroup.ProtoReflect.Descriptor instead. func (*Nests_OptGroup) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb2_test_proto_rawDescGZIP(), []int{5, 0} } func (x *Nests_OptGroup) GetOptString() string { if x != nil && x.OptString != nil { return *x.OptString } return "" } func (x *Nests_OptGroup) GetOptNested() *Nested { if x != nil { return x.OptNested } return nil } func (x *Nests_OptGroup) GetOptnestedgroup() *Nests_OptGroup_OptNestedGroup { if x != nil { return x.Optnestedgroup } return nil } type Nests_RptGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RptString []string `protobuf:"bytes,1,rep,name=rpt_string,json=rptString" json:"rpt_string,omitempty"` } func (x *Nests_RptGroup) Reset() { *x = Nests_RptGroup{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Nests_RptGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*Nests_RptGroup) ProtoMessage() {} func (x *Nests_RptGroup) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Nests_RptGroup.ProtoReflect.Descriptor instead. func (*Nests_RptGroup) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb2_test_proto_rawDescGZIP(), []int{5, 1} } func (x *Nests_RptGroup) GetRptString() []string { if x != nil { return x.RptString } return nil } type Nests_OptGroup_OptNestedGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OptFixed32 *uint32 `protobuf:"fixed32,1,opt,name=opt_fixed32,json=optFixed32" json:"opt_fixed32,omitempty"` } func (x *Nests_OptGroup_OptNestedGroup) Reset() { *x = Nests_OptGroup_OptNestedGroup{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Nests_OptGroup_OptNestedGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*Nests_OptGroup_OptNestedGroup) ProtoMessage() {} func (x *Nests_OptGroup_OptNestedGroup) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb2_test_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Nests_OptGroup_OptNestedGroup.ProtoReflect.Descriptor instead. func (*Nests_OptGroup_OptNestedGroup) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb2_test_proto_rawDescGZIP(), []int{5, 0, 0} } func (x *Nests_OptGroup_OptNestedGroup) GetOptFixed32() uint32 { if x != nil && x.OptFixed32 != nil { return *x.OptFixed32 } return 0 } var file_internal_testprotos_textpb2_test_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*Extensions)(nil), ExtensionType: (*bool)(nil), Field: 21, Name: "pb2.opt_ext_bool", Tag: "varint,21,opt,name=opt_ext_bool", Filename: "internal/testprotos/textpb2/test.proto", }, { ExtendedType: (*Extensions)(nil), ExtensionType: (*string)(nil), Field: 22, Name: "pb2.opt_ext_string", Tag: "bytes,22,opt,name=opt_ext_string", Filename: "internal/testprotos/textpb2/test.proto", }, { ExtendedType: (*Extensions)(nil), ExtensionType: (*Enum)(nil), Field: 23, Name: "pb2.opt_ext_enum", Tag: "varint,23,opt,name=opt_ext_enum,enum=pb2.Enum", Filename: "internal/testprotos/textpb2/test.proto", }, { ExtendedType: (*Extensions)(nil), ExtensionType: (*Nested)(nil), Field: 24, Name: "pb2.opt_ext_nested", Tag: "bytes,24,opt,name=opt_ext_nested", Filename: "internal/testprotos/textpb2/test.proto", }, { ExtendedType: (*Extensions)(nil), ExtensionType: (*PartialRequired)(nil), Field: 25, Name: "pb2.opt_ext_partial", Tag: "bytes,25,opt,name=opt_ext_partial", Filename: "internal/testprotos/textpb2/test.proto", }, { ExtendedType: (*Extensions)(nil), ExtensionType: ([]uint32)(nil), Field: 31, Name: "pb2.rpt_ext_fixed32", Tag: "fixed32,31,rep,name=rpt_ext_fixed32", Filename: "internal/testprotos/textpb2/test.proto", }, { ExtendedType: (*Extensions)(nil), ExtensionType: ([]Enum)(nil), Field: 32, Name: "pb2.rpt_ext_enum", Tag: "varint,32,rep,name=rpt_ext_enum,enum=pb2.Enum", Filename: "internal/testprotos/textpb2/test.proto", }, { ExtendedType: (*Extensions)(nil), ExtensionType: ([]*Nested)(nil), Field: 33, Name: "pb2.rpt_ext_nested", Tag: "bytes,33,rep,name=rpt_ext_nested", Filename: "internal/testprotos/textpb2/test.proto", }, { ExtendedType: (*MessageSet)(nil), ExtensionType: (*FakeMessageSetExtension)(nil), Field: 50, Name: "pb2.message_set_extension", Tag: "bytes,50,opt,name=message_set_extension", Filename: "internal/testprotos/textpb2/test.proto", }, { ExtendedType: (*Extensions)(nil), ExtensionType: (*bool)(nil), Field: 51, Name: "pb2.ExtensionsContainer.opt_ext_bool", Tag: "varint,51,opt,name=opt_ext_bool", Filename: "internal/testprotos/textpb2/test.proto", }, { ExtendedType: (*Extensions)(nil), ExtensionType: (*string)(nil), Field: 52, Name: "pb2.ExtensionsContainer.opt_ext_string", Tag: "bytes,52,opt,name=opt_ext_string", Filename: "internal/testprotos/textpb2/test.proto", }, { ExtendedType: (*Extensions)(nil), ExtensionType: (*Enum)(nil), Field: 53, Name: "pb2.ExtensionsContainer.opt_ext_enum", Tag: "varint,53,opt,name=opt_ext_enum,enum=pb2.Enum", Filename: "internal/testprotos/textpb2/test.proto", }, { ExtendedType: (*Extensions)(nil), ExtensionType: (*Nested)(nil), Field: 54, Name: "pb2.ExtensionsContainer.opt_ext_nested", Tag: "bytes,54,opt,name=opt_ext_nested", Filename: "internal/testprotos/textpb2/test.proto", }, { ExtendedType: (*Extensions)(nil), ExtensionType: (*PartialRequired)(nil), Field: 55, Name: "pb2.ExtensionsContainer.opt_ext_partial", Tag: "bytes,55,opt,name=opt_ext_partial", Filename: "internal/testprotos/textpb2/test.proto", }, { ExtendedType: (*Extensions)(nil), ExtensionType: ([]string)(nil), Field: 61, Name: "pb2.ExtensionsContainer.rpt_ext_string", Tag: "bytes,61,rep,name=rpt_ext_string", Filename: "internal/testprotos/textpb2/test.proto", }, { ExtendedType: (*Extensions)(nil), ExtensionType: ([]Enum)(nil), Field: 62, Name: "pb2.ExtensionsContainer.rpt_ext_enum", Tag: "varint,62,rep,name=rpt_ext_enum,enum=pb2.Enum", Filename: "internal/testprotos/textpb2/test.proto", }, { ExtendedType: (*Extensions)(nil), ExtensionType: ([]*Nested)(nil), Field: 63, Name: "pb2.ExtensionsContainer.rpt_ext_nested", Tag: "bytes,63,rep,name=rpt_ext_nested", Filename: "internal/testprotos/textpb2/test.proto", }, { ExtendedType: (*MessageSet)(nil), ExtensionType: (*MessageSetExtension)(nil), Field: 10, Name: "pb2.MessageSetExtension.message_set_extension", Tag: "bytes,10,opt,name=message_set_extension", Filename: "internal/testprotos/textpb2/test.proto", }, { ExtendedType: (*MessageSet)(nil), ExtensionType: (*MessageSetExtension)(nil), Field: 20, Name: "pb2.MessageSetExtension.not_message_set_extension", Tag: "bytes,20,opt,name=not_message_set_extension", Filename: "internal/testprotos/textpb2/test.proto", }, { ExtendedType: (*MessageSet)(nil), ExtensionType: (*Nested)(nil), Field: 30, Name: "pb2.MessageSetExtension.ext_nested", Tag: "bytes,30,opt,name=ext_nested", Filename: "internal/testprotos/textpb2/test.proto", }, { ExtendedType: (*FakeMessageSet)(nil), ExtensionType: (*FakeMessageSetExtension)(nil), Field: 10, Name: "pb2.FakeMessageSetExtension.message_set_extension", Tag: "bytes,10,opt,name=message_set_extension", Filename: "internal/testprotos/textpb2/test.proto", }, } // Extension fields to Extensions. var ( // optional bool opt_ext_bool = 21; E_OptExtBool = &file_internal_testprotos_textpb2_test_proto_extTypes[0] // optional string opt_ext_string = 22; E_OptExtString = &file_internal_testprotos_textpb2_test_proto_extTypes[1] // optional pb2.Enum opt_ext_enum = 23; E_OptExtEnum = &file_internal_testprotos_textpb2_test_proto_extTypes[2] // optional pb2.Nested opt_ext_nested = 24; E_OptExtNested = &file_internal_testprotos_textpb2_test_proto_extTypes[3] // optional pb2.PartialRequired opt_ext_partial = 25; E_OptExtPartial = &file_internal_testprotos_textpb2_test_proto_extTypes[4] // repeated fixed32 rpt_ext_fixed32 = 31; E_RptExtFixed32 = &file_internal_testprotos_textpb2_test_proto_extTypes[5] // repeated pb2.Enum rpt_ext_enum = 32; E_RptExtEnum = &file_internal_testprotos_textpb2_test_proto_extTypes[6] // repeated pb2.Nested rpt_ext_nested = 33; E_RptExtNested = &file_internal_testprotos_textpb2_test_proto_extTypes[7] // optional bool opt_ext_bool = 51; E_ExtensionsContainer_OptExtBool = &file_internal_testprotos_textpb2_test_proto_extTypes[9] // optional string opt_ext_string = 52; E_ExtensionsContainer_OptExtString = &file_internal_testprotos_textpb2_test_proto_extTypes[10] // optional pb2.Enum opt_ext_enum = 53; E_ExtensionsContainer_OptExtEnum = &file_internal_testprotos_textpb2_test_proto_extTypes[11] // optional pb2.Nested opt_ext_nested = 54; E_ExtensionsContainer_OptExtNested = &file_internal_testprotos_textpb2_test_proto_extTypes[12] // optional pb2.PartialRequired opt_ext_partial = 55; E_ExtensionsContainer_OptExtPartial = &file_internal_testprotos_textpb2_test_proto_extTypes[13] // repeated string rpt_ext_string = 61; E_ExtensionsContainer_RptExtString = &file_internal_testprotos_textpb2_test_proto_extTypes[14] // repeated pb2.Enum rpt_ext_enum = 62; E_ExtensionsContainer_RptExtEnum = &file_internal_testprotos_textpb2_test_proto_extTypes[15] // repeated pb2.Nested rpt_ext_nested = 63; E_ExtensionsContainer_RptExtNested = &file_internal_testprotos_textpb2_test_proto_extTypes[16] ) // Extension fields to MessageSet. var ( // optional pb2.FakeMessageSetExtension message_set_extension = 50; E_MessageSetExtension = &file_internal_testprotos_textpb2_test_proto_extTypes[8] // optional pb2.MessageSetExtension message_set_extension = 10; E_MessageSetExtension_MessageSetExtension = &file_internal_testprotos_textpb2_test_proto_extTypes[17] // optional pb2.MessageSetExtension not_message_set_extension = 20; E_MessageSetExtension_NotMessageSetExtension = &file_internal_testprotos_textpb2_test_proto_extTypes[18] // optional pb2.Nested ext_nested = 30; E_MessageSetExtension_ExtNested = &file_internal_testprotos_textpb2_test_proto_extTypes[19] ) // Extension fields to FakeMessageSet. var ( // optional pb2.FakeMessageSetExtension message_set_extension = 10; E_FakeMessageSetExtension_MessageSetExtension = &file_internal_testprotos_textpb2_test_proto_extTypes[20] ) var File_internal_testprotos_textpb2_test_proto protoreflect.FileDescriptor var file_internal_testprotos_textpb2_test_proto_rawDesc = []byte{ 0x0a, 0x26, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x78, 0x74, 0x70, 0x62, 0x32, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x70, 0x62, 0x32, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xda, 0x03, 0x0a, 0x07, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x70, 0x74, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x70, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x70, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x70, 0x74, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0a, 0x6f, 0x70, 0x74, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x70, 0x74, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x6f, 0x70, 0x74, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x10, 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x70, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x70, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0xfb, 0x01, 0x0a, 0x05, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x12, 0x24, 0x0a, 0x08, 0x6f, 0x70, 0x74, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x08, 0x72, 0x70, 0x74, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x07, 0x72, 0x70, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x3d, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x3d, 0x0a, 0x0f, 0x72, 0x70, 0x74, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0d, 0x72, 0x70, 0x74, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x22, 0x28, 0x0a, 0x0a, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x4e, 0x4f, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x4f, 0x53, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x49, 0x45, 0x5a, 0x10, 0x0a, 0x22, 0x94, 0x02, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x70, 0x74, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x08, 0x52, 0x07, 0x72, 0x70, 0x74, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x70, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x72, 0x70, 0x74, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x70, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x08, 0x72, 0x70, 0x74, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x70, 0x74, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x70, 0x74, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x05, 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, 0x72, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x70, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x02, 0x52, 0x08, 0x72, 0x70, 0x74, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x70, 0x74, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x01, 0x52, 0x09, 0x72, 0x70, 0x74, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x70, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x70, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x70, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x70, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x8f, 0x02, 0x0a, 0x04, 0x4d, 0x61, 0x70, 0x73, 0x12, 0x3b, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4d, 0x61, 0x70, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x12, 0x3e, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4d, 0x61, 0x70, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x54, 0x6f, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x54, 0x6f, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x1a, 0x3d, 0x0a, 0x0f, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4b, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x54, 0x6f, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x53, 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x22, 0xd3, 0x03, 0x0a, 0x05, 0x4e, 0x65, 0x73, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x08, 0x6f, 0x70, 0x74, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x13, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2a, 0x0a, 0x0a, 0x72, 0x70, 0x74, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x09, 0x72, 0x70, 0x74, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x08, 0x72, 0x70, 0x74, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x13, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x73, 0x2e, 0x52, 0x70, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x08, 0x72, 0x70, 0x74, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0xd4, 0x01, 0x0a, 0x08, 0x4f, 0x70, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x4a, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x22, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x74, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x31, 0x0a, 0x0e, 0x4f, 0x70, 0x74, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x70, 0x74, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0a, 0x6f, 0x70, 0x74, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x1a, 0x29, 0x0a, 0x08, 0x52, 0x70, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x70, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x70, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0xd9, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x02, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x71, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x02, 0x20, 0x02, 0x28, 0x10, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x02, 0x28, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x24, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x07, 0x72, 0x65, 0x71, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x2a, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x09, 0x72, 0x65, 0x71, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x22, 0x4f, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x33, 0x0a, 0x12, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0xee, 0x02, 0x0a, 0x10, 0x49, 0x6e, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x0a, 0x72, 0x70, 0x74, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x52, 0x09, 0x72, 0x70, 0x74, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x4a, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x49, 0x6e, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x54, 0x6f, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x54, 0x6f, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x1a, 0x57, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x54, 0x6f, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x22, 0x69, 0x0a, 0x0a, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x70, 0x74, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x65, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x70, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x2a, 0x04, 0x08, 0x14, 0x10, 0x65, 0x22, 0x89, 0x04, 0x0a, 0x13, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x32, 0x31, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x33, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x6f, 0x70, 0x74, 0x45, 0x78, 0x74, 0x42, 0x6f, 0x6f, 0x6c, 0x32, 0x35, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x34, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x45, 0x78, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x32, 0x3c, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x6f, 0x70, 0x74, 0x45, 0x78, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x32, 0x42, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x45, 0x78, 0x74, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x32, 0x4d, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x45, 0x78, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x32, 0x35, 0x0a, 0x0e, 0x72, 0x70, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x3d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x70, 0x74, 0x45, 0x78, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x32, 0x3c, 0x0a, 0x0c, 0x72, 0x70, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x3e, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x72, 0x70, 0x74, 0x45, 0x78, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x32, 0x42, 0x0a, 0x0e, 0x72, 0x70, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x3f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x0c, 0x72, 0x70, 0x74, 0x45, 0x78, 0x74, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x22, 0x1a, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x2a, 0x08, 0x08, 0x04, 0x10, 0xff, 0xff, 0xff, 0xff, 0x07, 0x3a, 0x02, 0x08, 0x01, 0x22, 0xb6, 0x02, 0x0a, 0x13, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x32, 0x5d, 0x0a, 0x15, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0x64, 0x0a, 0x19, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x16, 0x6e, 0x6f, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0x3b, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x09, 0x65, 0x78, 0x74, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x22, 0x1a, 0x0a, 0x0e, 0x46, 0x61, 0x6b, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x2a, 0x08, 0x08, 0x04, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9f, 0x01, 0x0a, 0x17, 0x46, 0x61, 0x6b, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x32, 0x65, 0x0a, 0x15, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x46, 0x61, 0x6b, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x46, 0x61, 0x6b, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x9e, 0x08, 0x0a, 0x0a, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x6f, 0x70, 0x74, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x38, 0x0a, 0x09, 0x6f, 0x70, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x38, 0x0a, 0x09, 0x6f, 0x70, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x3b, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x3b, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x38, 0x0a, 0x09, 0x6f, 0x70, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x3b, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, 0x09, 0x6f, 0x70, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x36, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x6f, 0x70, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x09, 0x6f, 0x70, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x6f, 0x70, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x6f, 0x70, 0x74, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2d, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x41, 0x6e, 0x79, 0x12, 0x3f, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x6d, 0x61, 0x73, 0x6b, 0x2a, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x57, 0x4f, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x45, 0x4e, 0x10, 0x0a, 0x3a, 0x31, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x6f, 0x70, 0x74, 0x45, 0x78, 0x74, 0x42, 0x6f, 0x6f, 0x6c, 0x3a, 0x35, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x45, 0x78, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x3c, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x6f, 0x70, 0x74, 0x45, 0x78, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x42, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x45, 0x78, 0x74, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x3a, 0x4d, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x45, 0x78, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x3a, 0x37, 0x0a, 0x0f, 0x72, 0x70, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x07, 0x52, 0x0d, 0x72, 0x70, 0x74, 0x45, 0x78, 0x74, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x3c, 0x0a, 0x0c, 0x72, 0x70, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x20, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0a, 0x72, 0x70, 0x74, 0x45, 0x78, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x42, 0x0a, 0x0e, 0x72, 0x70, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x21, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x0c, 0x72, 0x70, 0x74, 0x45, 0x78, 0x74, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x3a, 0x61, 0x0a, 0x15, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x62, 0x32, 0x2e, 0x46, 0x61, 0x6b, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x38, 0x5a, 0x36, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x78, 0x74, 0x70, 0x62, 0x32, } var ( file_internal_testprotos_textpb2_test_proto_rawDescOnce sync.Once file_internal_testprotos_textpb2_test_proto_rawDescData = file_internal_testprotos_textpb2_test_proto_rawDesc ) func file_internal_testprotos_textpb2_test_proto_rawDescGZIP() []byte { file_internal_testprotos_textpb2_test_proto_rawDescOnce.Do(func() { file_internal_testprotos_textpb2_test_proto_rawDescData = protoimpl.X.CompressGZIP(file_internal_testprotos_textpb2_test_proto_rawDescData) }) return file_internal_testprotos_textpb2_test_proto_rawDescData } var file_internal_testprotos_textpb2_test_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_internal_testprotos_textpb2_test_proto_msgTypes = make([]protoimpl.MessageInfo, 23) var file_internal_testprotos_textpb2_test_proto_goTypes = []interface{}{ (Enum)(0), // 0: pb2.Enum (Enums_NestedEnum)(0), // 1: pb2.Enums.NestedEnum (*Scalars)(nil), // 2: pb2.Scalars (*Enums)(nil), // 3: pb2.Enums (*Repeats)(nil), // 4: pb2.Repeats (*Maps)(nil), // 5: pb2.Maps (*Nested)(nil), // 6: pb2.Nested (*Nests)(nil), // 7: pb2.Nests (*Requireds)(nil), // 8: pb2.Requireds (*PartialRequired)(nil), // 9: pb2.PartialRequired (*NestedWithRequired)(nil), // 10: pb2.NestedWithRequired (*IndirectRequired)(nil), // 11: pb2.IndirectRequired (*Extensions)(nil), // 12: pb2.Extensions (*ExtensionsContainer)(nil), // 13: pb2.ExtensionsContainer (*MessageSet)(nil), // 14: pb2.MessageSet (*MessageSetExtension)(nil), // 15: pb2.MessageSetExtension (*FakeMessageSet)(nil), // 16: pb2.FakeMessageSet (*FakeMessageSetExtension)(nil), // 17: pb2.FakeMessageSetExtension (*KnownTypes)(nil), // 18: pb2.KnownTypes nil, // 19: pb2.Maps.Int32ToStrEntry nil, // 20: pb2.Maps.StrToNestedEntry (*Nests_OptGroup)(nil), // 21: pb2.Nests.OptGroup (*Nests_RptGroup)(nil), // 22: pb2.Nests.RptGroup (*Nests_OptGroup_OptNestedGroup)(nil), // 23: pb2.Nests.OptGroup.OptNestedGroup nil, // 24: pb2.IndirectRequired.StrToNestedEntry (*wrapperspb.BoolValue)(nil), // 25: google.protobuf.BoolValue (*wrapperspb.Int32Value)(nil), // 26: google.protobuf.Int32Value (*wrapperspb.Int64Value)(nil), // 27: google.protobuf.Int64Value (*wrapperspb.UInt32Value)(nil), // 28: google.protobuf.UInt32Value (*wrapperspb.UInt64Value)(nil), // 29: google.protobuf.UInt64Value (*wrapperspb.FloatValue)(nil), // 30: google.protobuf.FloatValue (*wrapperspb.DoubleValue)(nil), // 31: google.protobuf.DoubleValue (*wrapperspb.StringValue)(nil), // 32: google.protobuf.StringValue (*wrapperspb.BytesValue)(nil), // 33: google.protobuf.BytesValue (*durationpb.Duration)(nil), // 34: google.protobuf.Duration (*timestamppb.Timestamp)(nil), // 35: google.protobuf.Timestamp (*structpb.Struct)(nil), // 36: google.protobuf.Struct (*structpb.ListValue)(nil), // 37: google.protobuf.ListValue (*structpb.Value)(nil), // 38: google.protobuf.Value (structpb.NullValue)(0), // 39: google.protobuf.NullValue (*emptypb.Empty)(nil), // 40: google.protobuf.Empty (*anypb.Any)(nil), // 41: google.protobuf.Any (*fieldmaskpb.FieldMask)(nil), // 42: google.protobuf.FieldMask } var file_internal_testprotos_textpb2_test_proto_depIdxs = []int32{ 0, // 0: pb2.Enums.opt_enum:type_name -> pb2.Enum 0, // 1: pb2.Enums.rpt_enum:type_name -> pb2.Enum 1, // 2: pb2.Enums.opt_nested_enum:type_name -> pb2.Enums.NestedEnum 1, // 3: pb2.Enums.rpt_nested_enum:type_name -> pb2.Enums.NestedEnum 19, // 4: pb2.Maps.int32_to_str:type_name -> pb2.Maps.Int32ToStrEntry 20, // 5: pb2.Maps.str_to_nested:type_name -> pb2.Maps.StrToNestedEntry 6, // 6: pb2.Nested.opt_nested:type_name -> pb2.Nested 6, // 7: pb2.Nests.opt_nested:type_name -> pb2.Nested 21, // 8: pb2.Nests.optgroup:type_name -> pb2.Nests.OptGroup 6, // 9: pb2.Nests.rpt_nested:type_name -> pb2.Nested 22, // 10: pb2.Nests.rptgroup:type_name -> pb2.Nests.RptGroup 0, // 11: pb2.Requireds.req_enum:type_name -> pb2.Enum 6, // 12: pb2.Requireds.req_nested:type_name -> pb2.Nested 10, // 13: pb2.IndirectRequired.opt_nested:type_name -> pb2.NestedWithRequired 10, // 14: pb2.IndirectRequired.rpt_nested:type_name -> pb2.NestedWithRequired 24, // 15: pb2.IndirectRequired.str_to_nested:type_name -> pb2.IndirectRequired.StrToNestedEntry 10, // 16: pb2.IndirectRequired.oneof_nested:type_name -> pb2.NestedWithRequired 25, // 17: pb2.KnownTypes.opt_bool:type_name -> google.protobuf.BoolValue 26, // 18: pb2.KnownTypes.opt_int32:type_name -> google.protobuf.Int32Value 27, // 19: pb2.KnownTypes.opt_int64:type_name -> google.protobuf.Int64Value 28, // 20: pb2.KnownTypes.opt_uint32:type_name -> google.protobuf.UInt32Value 29, // 21: pb2.KnownTypes.opt_uint64:type_name -> google.protobuf.UInt64Value 30, // 22: pb2.KnownTypes.opt_float:type_name -> google.protobuf.FloatValue 31, // 23: pb2.KnownTypes.opt_double:type_name -> google.protobuf.DoubleValue 32, // 24: pb2.KnownTypes.opt_string:type_name -> google.protobuf.StringValue 33, // 25: pb2.KnownTypes.opt_bytes:type_name -> google.protobuf.BytesValue 34, // 26: pb2.KnownTypes.opt_duration:type_name -> google.protobuf.Duration 35, // 27: pb2.KnownTypes.opt_timestamp:type_name -> google.protobuf.Timestamp 36, // 28: pb2.KnownTypes.opt_struct:type_name -> google.protobuf.Struct 37, // 29: pb2.KnownTypes.opt_list:type_name -> google.protobuf.ListValue 38, // 30: pb2.KnownTypes.opt_value:type_name -> google.protobuf.Value 39, // 31: pb2.KnownTypes.opt_null:type_name -> google.protobuf.NullValue 40, // 32: pb2.KnownTypes.opt_empty:type_name -> google.protobuf.Empty 41, // 33: pb2.KnownTypes.opt_any:type_name -> google.protobuf.Any 42, // 34: pb2.KnownTypes.opt_fieldmask:type_name -> google.protobuf.FieldMask 6, // 35: pb2.Maps.StrToNestedEntry.value:type_name -> pb2.Nested 6, // 36: pb2.Nests.OptGroup.opt_nested:type_name -> pb2.Nested 23, // 37: pb2.Nests.OptGroup.optnestedgroup:type_name -> pb2.Nests.OptGroup.OptNestedGroup 10, // 38: pb2.IndirectRequired.StrToNestedEntry.value:type_name -> pb2.NestedWithRequired 12, // 39: pb2.opt_ext_bool:extendee -> pb2.Extensions 12, // 40: pb2.opt_ext_string:extendee -> pb2.Extensions 12, // 41: pb2.opt_ext_enum:extendee -> pb2.Extensions 12, // 42: pb2.opt_ext_nested:extendee -> pb2.Extensions 12, // 43: pb2.opt_ext_partial:extendee -> pb2.Extensions 12, // 44: pb2.rpt_ext_fixed32:extendee -> pb2.Extensions 12, // 45: pb2.rpt_ext_enum:extendee -> pb2.Extensions 12, // 46: pb2.rpt_ext_nested:extendee -> pb2.Extensions 14, // 47: pb2.message_set_extension:extendee -> pb2.MessageSet 12, // 48: pb2.ExtensionsContainer.opt_ext_bool:extendee -> pb2.Extensions 12, // 49: pb2.ExtensionsContainer.opt_ext_string:extendee -> pb2.Extensions 12, // 50: pb2.ExtensionsContainer.opt_ext_enum:extendee -> pb2.Extensions 12, // 51: pb2.ExtensionsContainer.opt_ext_nested:extendee -> pb2.Extensions 12, // 52: pb2.ExtensionsContainer.opt_ext_partial:extendee -> pb2.Extensions 12, // 53: pb2.ExtensionsContainer.rpt_ext_string:extendee -> pb2.Extensions 12, // 54: pb2.ExtensionsContainer.rpt_ext_enum:extendee -> pb2.Extensions 12, // 55: pb2.ExtensionsContainer.rpt_ext_nested:extendee -> pb2.Extensions 14, // 56: pb2.MessageSetExtension.message_set_extension:extendee -> pb2.MessageSet 14, // 57: pb2.MessageSetExtension.not_message_set_extension:extendee -> pb2.MessageSet 14, // 58: pb2.MessageSetExtension.ext_nested:extendee -> pb2.MessageSet 16, // 59: pb2.FakeMessageSetExtension.message_set_extension:extendee -> pb2.FakeMessageSet 0, // 60: pb2.opt_ext_enum:type_name -> pb2.Enum 6, // 61: pb2.opt_ext_nested:type_name -> pb2.Nested 9, // 62: pb2.opt_ext_partial:type_name -> pb2.PartialRequired 0, // 63: pb2.rpt_ext_enum:type_name -> pb2.Enum 6, // 64: pb2.rpt_ext_nested:type_name -> pb2.Nested 17, // 65: pb2.message_set_extension:type_name -> pb2.FakeMessageSetExtension 0, // 66: pb2.ExtensionsContainer.opt_ext_enum:type_name -> pb2.Enum 6, // 67: pb2.ExtensionsContainer.opt_ext_nested:type_name -> pb2.Nested 9, // 68: pb2.ExtensionsContainer.opt_ext_partial:type_name -> pb2.PartialRequired 0, // 69: pb2.ExtensionsContainer.rpt_ext_enum:type_name -> pb2.Enum 6, // 70: pb2.ExtensionsContainer.rpt_ext_nested:type_name -> pb2.Nested 15, // 71: pb2.MessageSetExtension.message_set_extension:type_name -> pb2.MessageSetExtension 15, // 72: pb2.MessageSetExtension.not_message_set_extension:type_name -> pb2.MessageSetExtension 6, // 73: pb2.MessageSetExtension.ext_nested:type_name -> pb2.Nested 17, // 74: pb2.FakeMessageSetExtension.message_set_extension:type_name -> pb2.FakeMessageSetExtension 75, // [75:75] is the sub-list for method output_type 75, // [75:75] is the sub-list for method input_type 60, // [60:75] is the sub-list for extension type_name 39, // [39:60] is the sub-list for extension extendee 0, // [0:39] is the sub-list for field type_name } func init() { file_internal_testprotos_textpb2_test_proto_init() } func file_internal_testprotos_textpb2_test_proto_init() { if File_internal_testprotos_textpb2_test_proto != nil { return } if !protoimpl.UnsafeEnabled { file_internal_testprotos_textpb2_test_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Scalars); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb2_test_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Enums); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb2_test_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Repeats); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb2_test_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Maps); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb2_test_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Nested); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb2_test_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Nests); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb2_test_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Requireds); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb2_test_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PartialRequired); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb2_test_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NestedWithRequired); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb2_test_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IndirectRequired); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb2_test_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Extensions); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_internal_testprotos_textpb2_test_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtensionsContainer); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb2_test_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageSet); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_internal_testprotos_textpb2_test_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageSetExtension); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb2_test_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FakeMessageSet); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_internal_testprotos_textpb2_test_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FakeMessageSetExtension); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb2_test_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*KnownTypes); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb2_test_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Nests_OptGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb2_test_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Nests_RptGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb2_test_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Nests_OptGroup_OptNestedGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_internal_testprotos_textpb2_test_proto_msgTypes[9].OneofWrappers = []interface{}{ (*IndirectRequired_OneofNested)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_textpb2_test_proto_rawDesc, NumEnums: 2, NumMessages: 23, NumExtensions: 21, NumServices: 0, }, GoTypes: file_internal_testprotos_textpb2_test_proto_goTypes, DependencyIndexes: file_internal_testprotos_textpb2_test_proto_depIdxs, EnumInfos: file_internal_testprotos_textpb2_test_proto_enumTypes, MessageInfos: file_internal_testprotos_textpb2_test_proto_msgTypes, ExtensionInfos: file_internal_testprotos_textpb2_test_proto_extTypes, }.Build() File_internal_testprotos_textpb2_test_proto = out.File file_internal_testprotos_textpb2_test_proto_rawDesc = nil file_internal_testprotos_textpb2_test_proto_goTypes = nil file_internal_testprotos_textpb2_test_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/textpb2/test.proto000066400000000000000000000140141411250152500256530ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Test Protobuf definitions with proto2 syntax. syntax = "proto2"; package pb2; option go_package = "google.golang.org/protobuf/internal/testprotos/textpb2"; import "google/protobuf/any.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; import "google/protobuf/wrappers.proto"; // Scalars contains optional scalar fields. message Scalars { optional bool opt_bool = 1; optional int32 opt_int32 = 2; optional int64 opt_int64 = 3; optional uint32 opt_uint32 = 4; optional uint64 opt_uint64 = 5; optional sint32 opt_sint32 = 6; optional sint64 opt_sint64 = 7; optional fixed32 opt_fixed32 = 8; optional fixed64 opt_fixed64 = 9; optional sfixed32 opt_sfixed32 = 10; optional sfixed64 opt_sfixed64 = 11; // Textproto marshal outputs fields in the same order as this proto // definition regardless of field number. Following fields are intended to // test that assumption. optional float opt_float = 20; optional double opt_double = 21; optional bytes opt_bytes = 14; optional string opt_string = 13; } enum Enum { ONE = 1; TWO = 2; TEN = 10; } // Message contains enum fields. message Enums { optional Enum opt_enum = 1; repeated Enum rpt_enum = 2; enum NestedEnum { UNO = 1; DOS = 2; DIEZ = 10; } optional NestedEnum opt_nested_enum = 3; repeated NestedEnum rpt_nested_enum = 4; } // Message contains repeated fields. message Repeats { repeated bool rpt_bool = 1; repeated int32 rpt_int32 = 2; repeated int64 rpt_int64 = 3; repeated uint32 rpt_uint32 = 4; repeated uint64 rpt_uint64 = 5; repeated float rpt_float = 6; repeated double rpt_double = 7; repeated string rpt_string = 8; repeated bytes rpt_bytes = 9; } // Message contains map fields. message Maps { map int32_to_str = 1; map str_to_nested = 4; } // Message type used as submessage. message Nested { optional string opt_string = 1; optional Nested opt_nested = 2; } // Message contains message and group fields. message Nests { optional Nested opt_nested = 1; optional group OptGroup = 2 { optional string opt_string = 1; optional Nested opt_nested = 2; optional group OptNestedGroup = 3 { optional fixed32 opt_fixed32 = 1; } } repeated Nested rpt_nested = 4; repeated group RptGroup = 5 { repeated string rpt_string = 1; } reserved "reserved_field"; } // Message contains required fields. message Requireds { required bool req_bool = 1; required sfixed64 req_sfixed64 = 2; required double req_double = 3; required string req_string = 4; required Enum req_enum = 5; required Nested req_nested = 6; } // Message contains both required and optional fields. message PartialRequired { required string req_string = 1; optional string opt_string = 2; } // Following messages are for testing required field nested in optional, repeated and map fields. message NestedWithRequired { required string req_string = 1; } message IndirectRequired { optional NestedWithRequired opt_nested = 1; repeated NestedWithRequired rpt_nested = 2; map str_to_nested = 3; oneof union { NestedWithRequired oneof_nested = 4; } } // Following messages are for testing extensions. message Extensions { optional string opt_string = 1; extensions 20 to 100; optional bool opt_bool = 101; optional int32 opt_int32 = 2; } extend Extensions { optional bool opt_ext_bool = 21; optional string opt_ext_string = 22; optional Enum opt_ext_enum = 23; optional Nested opt_ext_nested = 24; optional PartialRequired opt_ext_partial = 25; repeated fixed32 rpt_ext_fixed32 = 31; repeated Enum rpt_ext_enum = 32; repeated Nested rpt_ext_nested = 33; } message ExtensionsContainer { extend Extensions { optional bool opt_ext_bool = 51; optional string opt_ext_string = 52; optional Enum opt_ext_enum = 53; optional Nested opt_ext_nested = 54; optional PartialRequired opt_ext_partial = 55; repeated string rpt_ext_string = 61; repeated Enum rpt_ext_enum = 62; repeated Nested rpt_ext_nested = 63; } } // Following messages are for testing MessageSet. message MessageSet { option message_set_wire_format = true; extensions 4 to max; } message MessageSetExtension { optional string opt_string = 1; extend MessageSet { optional MessageSetExtension message_set_extension = 10; optional MessageSetExtension not_message_set_extension = 20; optional Nested ext_nested = 30; } } message FakeMessageSet { extensions 4 to max; } message FakeMessageSetExtension { optional string opt_string = 1; extend FakeMessageSet { optional FakeMessageSetExtension message_set_extension = 10; } } extend MessageSet { optional FakeMessageSetExtension message_set_extension = 50; } // Message contains well-known type fields. message KnownTypes { optional google.protobuf.BoolValue opt_bool = 1; optional google.protobuf.Int32Value opt_int32 = 2; optional google.protobuf.Int64Value opt_int64 = 3; optional google.protobuf.UInt32Value opt_uint32 = 4; optional google.protobuf.UInt64Value opt_uint64 = 5; optional google.protobuf.FloatValue opt_float = 6; optional google.protobuf.DoubleValue opt_double = 7; optional google.protobuf.StringValue opt_string = 8; optional google.protobuf.BytesValue opt_bytes = 9; optional google.protobuf.Duration opt_duration = 20; optional google.protobuf.Timestamp opt_timestamp = 21; optional google.protobuf.Struct opt_struct = 25; optional google.protobuf.ListValue opt_list = 26; optional google.protobuf.Value opt_value = 27; optional google.protobuf.NullValue opt_null = 28; optional google.protobuf.Empty opt_empty = 30; optional google.protobuf.Any opt_any = 32; optional google.protobuf.FieldMask opt_fieldmask = 40; } golang-google-protobuf-1.27.1/internal/testprotos/textpb3/000077500000000000000000000000001411250152500236105ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/testprotos/textpb3/test.pb.go000066400000000000000000001323441411250152500255250ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Test Protobuf definitions with proto3 syntax. // Code generated by protoc-gen-go. DO NOT EDIT. // source: internal/testprotos/textpb3/test.proto package textpb3 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type Enum int32 const ( Enum_ZERO Enum = 0 Enum_ONE Enum = 1 Enum_TWO Enum = 2 Enum_TEN Enum = 10 ) // Enum value maps for Enum. var ( Enum_name = map[int32]string{ 0: "ZERO", 1: "ONE", 2: "TWO", 10: "TEN", } Enum_value = map[string]int32{ "ZERO": 0, "ONE": 1, "TWO": 2, "TEN": 10, } ) func (x Enum) Enum() *Enum { p := new(Enum) *p = x return p } func (x Enum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enum) Descriptor() protoreflect.EnumDescriptor { return file_internal_testprotos_textpb3_test_proto_enumTypes[0].Descriptor() } func (Enum) Type() protoreflect.EnumType { return &file_internal_testprotos_textpb3_test_proto_enumTypes[0] } func (x Enum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Enum.Descriptor instead. func (Enum) EnumDescriptor() ([]byte, []int) { return file_internal_testprotos_textpb3_test_proto_rawDescGZIP(), []int{0} } type Enums_NestedEnum int32 const ( Enums_CERO Enums_NestedEnum = 0 Enums_UNO Enums_NestedEnum = 1 Enums_DOS Enums_NestedEnum = 2 Enums_DIEZ Enums_NestedEnum = 10 ) // Enum value maps for Enums_NestedEnum. var ( Enums_NestedEnum_name = map[int32]string{ 0: "CERO", 1: "UNO", 2: "DOS", 10: "DIEZ", } Enums_NestedEnum_value = map[string]int32{ "CERO": 0, "UNO": 1, "DOS": 2, "DIEZ": 10, } ) func (x Enums_NestedEnum) Enum() *Enums_NestedEnum { p := new(Enums_NestedEnum) *p = x return p } func (x Enums_NestedEnum) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Enums_NestedEnum) Descriptor() protoreflect.EnumDescriptor { return file_internal_testprotos_textpb3_test_proto_enumTypes[1].Descriptor() } func (Enums_NestedEnum) Type() protoreflect.EnumType { return &file_internal_testprotos_textpb3_test_proto_enumTypes[1] } func (x Enums_NestedEnum) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Enums_NestedEnum.Descriptor instead. func (Enums_NestedEnum) EnumDescriptor() ([]byte, []int) { return file_internal_testprotos_textpb3_test_proto_rawDescGZIP(), []int{3, 0} } // Scalars contains scalar field types. type Scalars struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SBool bool `protobuf:"varint,1,opt,name=s_bool,json=sBool,proto3" json:"s_bool,omitempty"` SInt32 int32 `protobuf:"varint,2,opt,name=s_int32,json=sInt32,proto3" json:"s_int32,omitempty"` SInt64 int64 `protobuf:"varint,3,opt,name=s_int64,json=sInt64,proto3" json:"s_int64,omitempty"` SUint32 uint32 `protobuf:"varint,4,opt,name=s_uint32,json=sUint32,proto3" json:"s_uint32,omitempty"` SUint64 uint64 `protobuf:"varint,5,opt,name=s_uint64,json=sUint64,proto3" json:"s_uint64,omitempty"` SSint32 int32 `protobuf:"zigzag32,6,opt,name=s_sint32,json=sSint32,proto3" json:"s_sint32,omitempty"` SSint64 int64 `protobuf:"zigzag64,7,opt,name=s_sint64,json=sSint64,proto3" json:"s_sint64,omitempty"` SFixed32 uint32 `protobuf:"fixed32,8,opt,name=s_fixed32,json=sFixed32,proto3" json:"s_fixed32,omitempty"` SFixed64 uint64 `protobuf:"fixed64,9,opt,name=s_fixed64,json=sFixed64,proto3" json:"s_fixed64,omitempty"` SSfixed32 int32 `protobuf:"fixed32,10,opt,name=s_sfixed32,json=sSfixed32,proto3" json:"s_sfixed32,omitempty"` SSfixed64 int64 `protobuf:"fixed64,11,opt,name=s_sfixed64,json=sSfixed64,proto3" json:"s_sfixed64,omitempty"` SFloat float32 `protobuf:"fixed32,20,opt,name=s_float,json=sFloat,proto3" json:"s_float,omitempty"` SDouble float64 `protobuf:"fixed64,21,opt,name=s_double,json=sDouble,proto3" json:"s_double,omitempty"` SBytes []byte `protobuf:"bytes,14,opt,name=s_bytes,json=sBytes,proto3" json:"s_bytes,omitempty"` SString string `protobuf:"bytes,13,opt,name=s_string,json=sString,proto3" json:"s_string,omitempty"` } func (x *Scalars) Reset() { *x = Scalars{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb3_test_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Scalars) String() string { return protoimpl.X.MessageStringOf(x) } func (*Scalars) ProtoMessage() {} func (x *Scalars) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb3_test_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Scalars.ProtoReflect.Descriptor instead. func (*Scalars) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb3_test_proto_rawDescGZIP(), []int{0} } func (x *Scalars) GetSBool() bool { if x != nil { return x.SBool } return false } func (x *Scalars) GetSInt32() int32 { if x != nil { return x.SInt32 } return 0 } func (x *Scalars) GetSInt64() int64 { if x != nil { return x.SInt64 } return 0 } func (x *Scalars) GetSUint32() uint32 { if x != nil { return x.SUint32 } return 0 } func (x *Scalars) GetSUint64() uint64 { if x != nil { return x.SUint64 } return 0 } func (x *Scalars) GetSSint32() int32 { if x != nil { return x.SSint32 } return 0 } func (x *Scalars) GetSSint64() int64 { if x != nil { return x.SSint64 } return 0 } func (x *Scalars) GetSFixed32() uint32 { if x != nil { return x.SFixed32 } return 0 } func (x *Scalars) GetSFixed64() uint64 { if x != nil { return x.SFixed64 } return 0 } func (x *Scalars) GetSSfixed32() int32 { if x != nil { return x.SSfixed32 } return 0 } func (x *Scalars) GetSSfixed64() int64 { if x != nil { return x.SSfixed64 } return 0 } func (x *Scalars) GetSFloat() float32 { if x != nil { return x.SFloat } return 0 } func (x *Scalars) GetSDouble() float64 { if x != nil { return x.SDouble } return 0 } func (x *Scalars) GetSBytes() []byte { if x != nil { return x.SBytes } return nil } func (x *Scalars) GetSString() string { if x != nil { return x.SString } return "" } // Message contains repeated fields. type Repeats struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RptBool []bool `protobuf:"varint,1,rep,packed,name=rpt_bool,json=rptBool,proto3" json:"rpt_bool,omitempty"` RptInt32 []int32 `protobuf:"varint,2,rep,packed,name=rpt_int32,json=rptInt32,proto3" json:"rpt_int32,omitempty"` RptInt64 []int64 `protobuf:"varint,3,rep,packed,name=rpt_int64,json=rptInt64,proto3" json:"rpt_int64,omitempty"` RptUint32 []uint32 `protobuf:"varint,4,rep,packed,name=rpt_uint32,json=rptUint32,proto3" json:"rpt_uint32,omitempty"` RptUint64 []uint64 `protobuf:"varint,5,rep,packed,name=rpt_uint64,json=rptUint64,proto3" json:"rpt_uint64,omitempty"` RptFloat []float32 `protobuf:"fixed32,6,rep,packed,name=rpt_float,json=rptFloat,proto3" json:"rpt_float,omitempty"` RptDouble []float64 `protobuf:"fixed64,7,rep,packed,name=rpt_double,json=rptDouble,proto3" json:"rpt_double,omitempty"` RptString []string `protobuf:"bytes,8,rep,name=rpt_string,json=rptString,proto3" json:"rpt_string,omitempty"` RptBytes [][]byte `protobuf:"bytes,9,rep,name=rpt_bytes,json=rptBytes,proto3" json:"rpt_bytes,omitempty"` } func (x *Repeats) Reset() { *x = Repeats{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb3_test_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Repeats) String() string { return protoimpl.X.MessageStringOf(x) } func (*Repeats) ProtoMessage() {} func (x *Repeats) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb3_test_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Repeats.ProtoReflect.Descriptor instead. func (*Repeats) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb3_test_proto_rawDescGZIP(), []int{1} } func (x *Repeats) GetRptBool() []bool { if x != nil { return x.RptBool } return nil } func (x *Repeats) GetRptInt32() []int32 { if x != nil { return x.RptInt32 } return nil } func (x *Repeats) GetRptInt64() []int64 { if x != nil { return x.RptInt64 } return nil } func (x *Repeats) GetRptUint32() []uint32 { if x != nil { return x.RptUint32 } return nil } func (x *Repeats) GetRptUint64() []uint64 { if x != nil { return x.RptUint64 } return nil } func (x *Repeats) GetRptFloat() []float32 { if x != nil { return x.RptFloat } return nil } func (x *Repeats) GetRptDouble() []float64 { if x != nil { return x.RptDouble } return nil } func (x *Repeats) GetRptString() []string { if x != nil { return x.RptString } return nil } func (x *Repeats) GetRptBytes() [][]byte { if x != nil { return x.RptBytes } return nil } type Proto3Optional struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OptBool *bool `protobuf:"varint,1,opt,name=opt_bool,json=optBool,proto3,oneof" json:"opt_bool,omitempty"` OptInt32 *int32 `protobuf:"varint,2,opt,name=opt_int32,json=optInt32,proto3,oneof" json:"opt_int32,omitempty"` OptInt64 *int64 `protobuf:"varint,3,opt,name=opt_int64,json=optInt64,proto3,oneof" json:"opt_int64,omitempty"` OptUint32 *uint32 `protobuf:"varint,4,opt,name=opt_uint32,json=optUint32,proto3,oneof" json:"opt_uint32,omitempty"` OptUint64 *uint64 `protobuf:"varint,5,opt,name=opt_uint64,json=optUint64,proto3,oneof" json:"opt_uint64,omitempty"` OptFloat *float32 `protobuf:"fixed32,6,opt,name=opt_float,json=optFloat,proto3,oneof" json:"opt_float,omitempty"` OptDouble *float64 `protobuf:"fixed64,7,opt,name=opt_double,json=optDouble,proto3,oneof" json:"opt_double,omitempty"` OptString *string `protobuf:"bytes,8,opt,name=opt_string,json=optString,proto3,oneof" json:"opt_string,omitempty"` OptBytes []byte `protobuf:"bytes,9,opt,name=opt_bytes,json=optBytes,proto3,oneof" json:"opt_bytes,omitempty"` OptEnum *Enum `protobuf:"varint,10,opt,name=opt_enum,json=optEnum,proto3,enum=pb3.Enum,oneof" json:"opt_enum,omitempty"` OptMessage *Nested `protobuf:"bytes,11,opt,name=opt_message,json=optMessage,proto3,oneof" json:"opt_message,omitempty"` } func (x *Proto3Optional) Reset() { *x = Proto3Optional{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb3_test_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Proto3Optional) String() string { return protoimpl.X.MessageStringOf(x) } func (*Proto3Optional) ProtoMessage() {} func (x *Proto3Optional) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb3_test_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Proto3Optional.ProtoReflect.Descriptor instead. func (*Proto3Optional) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb3_test_proto_rawDescGZIP(), []int{2} } func (x *Proto3Optional) GetOptBool() bool { if x != nil && x.OptBool != nil { return *x.OptBool } return false } func (x *Proto3Optional) GetOptInt32() int32 { if x != nil && x.OptInt32 != nil { return *x.OptInt32 } return 0 } func (x *Proto3Optional) GetOptInt64() int64 { if x != nil && x.OptInt64 != nil { return *x.OptInt64 } return 0 } func (x *Proto3Optional) GetOptUint32() uint32 { if x != nil && x.OptUint32 != nil { return *x.OptUint32 } return 0 } func (x *Proto3Optional) GetOptUint64() uint64 { if x != nil && x.OptUint64 != nil { return *x.OptUint64 } return 0 } func (x *Proto3Optional) GetOptFloat() float32 { if x != nil && x.OptFloat != nil { return *x.OptFloat } return 0 } func (x *Proto3Optional) GetOptDouble() float64 { if x != nil && x.OptDouble != nil { return *x.OptDouble } return 0 } func (x *Proto3Optional) GetOptString() string { if x != nil && x.OptString != nil { return *x.OptString } return "" } func (x *Proto3Optional) GetOptBytes() []byte { if x != nil { return x.OptBytes } return nil } func (x *Proto3Optional) GetOptEnum() Enum { if x != nil && x.OptEnum != nil { return *x.OptEnum } return Enum_ZERO } func (x *Proto3Optional) GetOptMessage() *Nested { if x != nil { return x.OptMessage } return nil } // Message contains enum fields. type Enums struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SEnum Enum `protobuf:"varint,1,opt,name=s_enum,json=sEnum,proto3,enum=pb3.Enum" json:"s_enum,omitempty"` SNestedEnum Enums_NestedEnum `protobuf:"varint,3,opt,name=s_nested_enum,json=sNestedEnum,proto3,enum=pb3.Enums_NestedEnum" json:"s_nested_enum,omitempty"` } func (x *Enums) Reset() { *x = Enums{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb3_test_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Enums) String() string { return protoimpl.X.MessageStringOf(x) } func (*Enums) ProtoMessage() {} func (x *Enums) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb3_test_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Enums.ProtoReflect.Descriptor instead. func (*Enums) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb3_test_proto_rawDescGZIP(), []int{3} } func (x *Enums) GetSEnum() Enum { if x != nil { return x.SEnum } return Enum_ZERO } func (x *Enums) GetSNestedEnum() Enums_NestedEnum { if x != nil { return x.SNestedEnum } return Enums_CERO } // Message contains nested message field. type Nests struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SNested *Nested `protobuf:"bytes,2,opt,name=s_nested,json=sNested,proto3" json:"s_nested,omitempty"` } func (x *Nests) Reset() { *x = Nests{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb3_test_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Nests) String() string { return protoimpl.X.MessageStringOf(x) } func (*Nests) ProtoMessage() {} func (x *Nests) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb3_test_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Nests.ProtoReflect.Descriptor instead. func (*Nests) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb3_test_proto_rawDescGZIP(), []int{4} } func (x *Nests) GetSNested() *Nested { if x != nil { return x.SNested } return nil } // Message type used as submessage. type Nested struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SString string `protobuf:"bytes,1,opt,name=s_string,json=sString,proto3" json:"s_string,omitempty"` SNested *Nested `protobuf:"bytes,2,opt,name=s_nested,json=sNested,proto3" json:"s_nested,omitempty"` } func (x *Nested) Reset() { *x = Nested{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb3_test_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Nested) String() string { return protoimpl.X.MessageStringOf(x) } func (*Nested) ProtoMessage() {} func (x *Nested) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb3_test_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Nested.ProtoReflect.Descriptor instead. func (*Nested) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb3_test_proto_rawDescGZIP(), []int{5} } func (x *Nested) GetSString() string { if x != nil { return x.SString } return "" } func (x *Nested) GetSNested() *Nested { if x != nil { return x.SNested } return nil } // Message contains oneof field. type Oneofs struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to Union: // *Oneofs_OneofEnum // *Oneofs_OneofString // *Oneofs_OneofNested Union isOneofs_Union `protobuf_oneof:"union"` } func (x *Oneofs) Reset() { *x = Oneofs{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb3_test_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Oneofs) String() string { return protoimpl.X.MessageStringOf(x) } func (*Oneofs) ProtoMessage() {} func (x *Oneofs) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb3_test_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Oneofs.ProtoReflect.Descriptor instead. func (*Oneofs) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb3_test_proto_rawDescGZIP(), []int{6} } func (m *Oneofs) GetUnion() isOneofs_Union { if m != nil { return m.Union } return nil } func (x *Oneofs) GetOneofEnum() Enum { if x, ok := x.GetUnion().(*Oneofs_OneofEnum); ok { return x.OneofEnum } return Enum_ZERO } func (x *Oneofs) GetOneofString() string { if x, ok := x.GetUnion().(*Oneofs_OneofString); ok { return x.OneofString } return "" } func (x *Oneofs) GetOneofNested() *Nested { if x, ok := x.GetUnion().(*Oneofs_OneofNested); ok { return x.OneofNested } return nil } type isOneofs_Union interface { isOneofs_Union() } type Oneofs_OneofEnum struct { OneofEnum Enum `protobuf:"varint,1,opt,name=oneof_enum,json=oneofEnum,proto3,enum=pb3.Enum,oneof"` } type Oneofs_OneofString struct { OneofString string `protobuf:"bytes,2,opt,name=oneof_string,json=oneofString,proto3,oneof"` } type Oneofs_OneofNested struct { OneofNested *Nested `protobuf:"bytes,3,opt,name=oneof_nested,json=oneofNested,proto3,oneof"` } func (*Oneofs_OneofEnum) isOneofs_Union() {} func (*Oneofs_OneofString) isOneofs_Union() {} func (*Oneofs_OneofNested) isOneofs_Union() {} // Message contains map fields. type Maps struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Int32ToStr map[int32]string `protobuf:"bytes,1,rep,name=int32_to_str,json=int32ToStr,proto3" json:"int32_to_str,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` BoolToUint32 map[bool]uint32 `protobuf:"bytes,2,rep,name=bool_to_uint32,json=boolToUint32,proto3" json:"bool_to_uint32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` Uint64ToEnum map[uint64]Enum `protobuf:"bytes,3,rep,name=uint64_to_enum,json=uint64ToEnum,proto3" json:"uint64_to_enum,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=pb3.Enum"` StrToNested map[string]*Nested `protobuf:"bytes,4,rep,name=str_to_nested,json=strToNested,proto3" json:"str_to_nested,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` StrToOneofs map[string]*Oneofs `protobuf:"bytes,5,rep,name=str_to_oneofs,json=strToOneofs,proto3" json:"str_to_oneofs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *Maps) Reset() { *x = Maps{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb3_test_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Maps) String() string { return protoimpl.X.MessageStringOf(x) } func (*Maps) ProtoMessage() {} func (x *Maps) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb3_test_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Maps.ProtoReflect.Descriptor instead. func (*Maps) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb3_test_proto_rawDescGZIP(), []int{7} } func (x *Maps) GetInt32ToStr() map[int32]string { if x != nil { return x.Int32ToStr } return nil } func (x *Maps) GetBoolToUint32() map[bool]uint32 { if x != nil { return x.BoolToUint32 } return nil } func (x *Maps) GetUint64ToEnum() map[uint64]Enum { if x != nil { return x.Uint64ToEnum } return nil } func (x *Maps) GetStrToNested() map[string]*Nested { if x != nil { return x.StrToNested } return nil } func (x *Maps) GetStrToOneofs() map[string]*Oneofs { if x != nil { return x.StrToOneofs } return nil } // Message for testing json_name option. type JSONNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SString string `protobuf:"bytes,1,opt,name=s_string,json=foo_bar,proto3" json:"s_string,omitempty"` } func (x *JSONNames) Reset() { *x = JSONNames{} if protoimpl.UnsafeEnabled { mi := &file_internal_testprotos_textpb3_test_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *JSONNames) String() string { return protoimpl.X.MessageStringOf(x) } func (*JSONNames) ProtoMessage() {} func (x *JSONNames) ProtoReflect() protoreflect.Message { mi := &file_internal_testprotos_textpb3_test_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use JSONNames.ProtoReflect.Descriptor instead. func (*JSONNames) Descriptor() ([]byte, []int) { return file_internal_testprotos_textpb3_test_proto_rawDescGZIP(), []int{8} } func (x *JSONNames) GetSString() string { if x != nil { return x.SString } return "" } var File_internal_testprotos_textpb3_test_proto protoreflect.FileDescriptor var file_internal_testprotos_textpb3_test_proto_rawDesc = []byte{ 0x0a, 0x26, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x78, 0x74, 0x70, 0x62, 0x33, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x70, 0x62, 0x33, 0x22, 0x9e, 0x03, 0x0a, 0x07, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x73, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x73, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x73, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x07, 0x52, 0x08, 0x73, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, 0x06, 0x52, 0x08, 0x73, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x09, 0x73, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x10, 0x52, 0x09, 0x73, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x73, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x73, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x94, 0x02, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x70, 0x74, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x08, 0x52, 0x07, 0x72, 0x70, 0x74, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x70, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x72, 0x70, 0x74, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x70, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x08, 0x72, 0x70, 0x74, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x70, 0x74, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x70, 0x74, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x05, 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, 0x72, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x70, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x02, 0x52, 0x08, 0x72, 0x70, 0x74, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x70, 0x74, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x01, 0x52, 0x09, 0x72, 0x70, 0x74, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x70, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x70, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x70, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x70, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0xc4, 0x04, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x70, 0x74, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x42, 0x6f, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6f, 0x70, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6f, 0x70, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6f, 0x70, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x48, 0x05, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x48, 0x06, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x07, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6f, 0x70, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x08, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x08, 0x6f, 0x70, 0x74, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0b, 0x6f, 0x70, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x48, 0x0a, 0x52, 0x0a, 0x6f, 0x70, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x70, 0x74, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6f, 0x70, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6f, 0x70, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x70, 0x74, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x70, 0x74, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6f, 0x70, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x70, 0x74, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6f, 0x70, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x70, 0x74, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x70, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x98, 0x01, 0x0a, 0x05, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x12, 0x20, 0x0a, 0x06, 0x73, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x39, 0x0a, 0x0d, 0x73, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x73, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x22, 0x32, 0x0a, 0x0a, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x4e, 0x4f, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x4f, 0x53, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x49, 0x45, 0x5a, 0x10, 0x0a, 0x22, 0x2f, 0x0a, 0x05, 0x4e, 0x65, 0x73, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x08, 0x73, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x07, 0x73, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x22, 0x4b, 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x26, 0x0a, 0x08, 0x73, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x07, 0x73, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x22, 0x94, 0x01, 0x0a, 0x06, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x73, 0x12, 0x2a, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x23, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x22, 0xaf, 0x05, 0x0a, 0x04, 0x4d, 0x61, 0x70, 0x73, 0x12, 0x3b, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x12, 0x41, 0x0a, 0x0e, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x73, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x54, 0x6f, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x6c, 0x54, 0x6f, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x41, 0x0a, 0x0e, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x73, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x54, 0x6f, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x54, 0x6f, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x3e, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x54, 0x6f, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x54, 0x6f, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x54, 0x6f, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x54, 0x6f, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x42, 0x6f, 0x6f, 0x6c, 0x54, 0x6f, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4a, 0x0a, 0x11, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x54, 0x6f, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4b, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x54, 0x6f, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4b, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x54, 0x6f, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x26, 0x0a, 0x09, 0x4a, 0x53, 0x4f, 0x4e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x6f, 0x6f, 0x5f, 0x62, 0x61, 0x72, 0x2a, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x08, 0x0a, 0x04, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x57, 0x4f, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x45, 0x4e, 0x10, 0x0a, 0x42, 0x38, 0x5a, 0x36, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x78, 0x74, 0x70, 0x62, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_internal_testprotos_textpb3_test_proto_rawDescOnce sync.Once file_internal_testprotos_textpb3_test_proto_rawDescData = file_internal_testprotos_textpb3_test_proto_rawDesc ) func file_internal_testprotos_textpb3_test_proto_rawDescGZIP() []byte { file_internal_testprotos_textpb3_test_proto_rawDescOnce.Do(func() { file_internal_testprotos_textpb3_test_proto_rawDescData = protoimpl.X.CompressGZIP(file_internal_testprotos_textpb3_test_proto_rawDescData) }) return file_internal_testprotos_textpb3_test_proto_rawDescData } var file_internal_testprotos_textpb3_test_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_internal_testprotos_textpb3_test_proto_msgTypes = make([]protoimpl.MessageInfo, 14) var file_internal_testprotos_textpb3_test_proto_goTypes = []interface{}{ (Enum)(0), // 0: pb3.Enum (Enums_NestedEnum)(0), // 1: pb3.Enums.NestedEnum (*Scalars)(nil), // 2: pb3.Scalars (*Repeats)(nil), // 3: pb3.Repeats (*Proto3Optional)(nil), // 4: pb3.Proto3Optional (*Enums)(nil), // 5: pb3.Enums (*Nests)(nil), // 6: pb3.Nests (*Nested)(nil), // 7: pb3.Nested (*Oneofs)(nil), // 8: pb3.Oneofs (*Maps)(nil), // 9: pb3.Maps (*JSONNames)(nil), // 10: pb3.JSONNames nil, // 11: pb3.Maps.Int32ToStrEntry nil, // 12: pb3.Maps.BoolToUint32Entry nil, // 13: pb3.Maps.Uint64ToEnumEntry nil, // 14: pb3.Maps.StrToNestedEntry nil, // 15: pb3.Maps.StrToOneofsEntry } var file_internal_testprotos_textpb3_test_proto_depIdxs = []int32{ 0, // 0: pb3.Proto3Optional.opt_enum:type_name -> pb3.Enum 7, // 1: pb3.Proto3Optional.opt_message:type_name -> pb3.Nested 0, // 2: pb3.Enums.s_enum:type_name -> pb3.Enum 1, // 3: pb3.Enums.s_nested_enum:type_name -> pb3.Enums.NestedEnum 7, // 4: pb3.Nests.s_nested:type_name -> pb3.Nested 7, // 5: pb3.Nested.s_nested:type_name -> pb3.Nested 0, // 6: pb3.Oneofs.oneof_enum:type_name -> pb3.Enum 7, // 7: pb3.Oneofs.oneof_nested:type_name -> pb3.Nested 11, // 8: pb3.Maps.int32_to_str:type_name -> pb3.Maps.Int32ToStrEntry 12, // 9: pb3.Maps.bool_to_uint32:type_name -> pb3.Maps.BoolToUint32Entry 13, // 10: pb3.Maps.uint64_to_enum:type_name -> pb3.Maps.Uint64ToEnumEntry 14, // 11: pb3.Maps.str_to_nested:type_name -> pb3.Maps.StrToNestedEntry 15, // 12: pb3.Maps.str_to_oneofs:type_name -> pb3.Maps.StrToOneofsEntry 0, // 13: pb3.Maps.Uint64ToEnumEntry.value:type_name -> pb3.Enum 7, // 14: pb3.Maps.StrToNestedEntry.value:type_name -> pb3.Nested 8, // 15: pb3.Maps.StrToOneofsEntry.value:type_name -> pb3.Oneofs 16, // [16:16] is the sub-list for method output_type 16, // [16:16] is the sub-list for method input_type 16, // [16:16] is the sub-list for extension type_name 16, // [16:16] is the sub-list for extension extendee 0, // [0:16] is the sub-list for field type_name } func init() { file_internal_testprotos_textpb3_test_proto_init() } func file_internal_testprotos_textpb3_test_proto_init() { if File_internal_testprotos_textpb3_test_proto != nil { return } if !protoimpl.UnsafeEnabled { file_internal_testprotos_textpb3_test_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Scalars); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb3_test_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Repeats); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb3_test_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Proto3Optional); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb3_test_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Enums); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb3_test_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Nests); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb3_test_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Nested); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb3_test_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Oneofs); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb3_test_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Maps); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_internal_testprotos_textpb3_test_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JSONNames); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_internal_testprotos_textpb3_test_proto_msgTypes[2].OneofWrappers = []interface{}{} file_internal_testprotos_textpb3_test_proto_msgTypes[6].OneofWrappers = []interface{}{ (*Oneofs_OneofEnum)(nil), (*Oneofs_OneofString)(nil), (*Oneofs_OneofNested)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_testprotos_textpb3_test_proto_rawDesc, NumEnums: 2, NumMessages: 14, NumExtensions: 0, NumServices: 0, }, GoTypes: file_internal_testprotos_textpb3_test_proto_goTypes, DependencyIndexes: file_internal_testprotos_textpb3_test_proto_depIdxs, EnumInfos: file_internal_testprotos_textpb3_test_proto_enumTypes, MessageInfos: file_internal_testprotos_textpb3_test_proto_msgTypes, }.Build() File_internal_testprotos_textpb3_test_proto = out.File file_internal_testprotos_textpb3_test_proto_rawDesc = nil file_internal_testprotos_textpb3_test_proto_goTypes = nil file_internal_testprotos_textpb3_test_proto_depIdxs = nil } golang-google-protobuf-1.27.1/internal/testprotos/textpb3/test.proto000066400000000000000000000050341411250152500256560ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Test Protobuf definitions with proto3 syntax. syntax = "proto3"; package pb3; option go_package = "google.golang.org/protobuf/internal/testprotos/textpb3"; // Scalars contains scalar field types. message Scalars { bool s_bool = 1; int32 s_int32 = 2; int64 s_int64 = 3; uint32 s_uint32 = 4; uint64 s_uint64 = 5; sint32 s_sint32 = 6; sint64 s_sint64 = 7; fixed32 s_fixed32 = 8; fixed64 s_fixed64 = 9; sfixed32 s_sfixed32 = 10; sfixed64 s_sfixed64 = 11; // Textproto marshal outputs fields in the same order as this proto // definition regardless of field number. Following fields are intended to // test that assumption. float s_float = 20; double s_double = 21; bytes s_bytes = 14; string s_string = 13; } // Message contains repeated fields. message Repeats { repeated bool rpt_bool = 1; repeated int32 rpt_int32 = 2; repeated int64 rpt_int64 = 3; repeated uint32 rpt_uint32 = 4; repeated uint64 rpt_uint64 = 5; repeated float rpt_float = 6; repeated double rpt_double = 7; repeated string rpt_string = 8; repeated bytes rpt_bytes = 9; } message Proto3Optional { optional bool opt_bool = 1; optional int32 opt_int32 = 2; optional int64 opt_int64 = 3; optional uint32 opt_uint32 = 4; optional uint64 opt_uint64 = 5; optional float opt_float = 6; optional double opt_double = 7; optional string opt_string = 8; optional bytes opt_bytes = 9; optional Enum opt_enum = 10; optional Nested opt_message = 11; } enum Enum { ZERO = 0; ONE = 1; TWO = 2; TEN = 10; } // Message contains enum fields. message Enums { Enum s_enum = 1; enum NestedEnum { CERO = 0; UNO = 1; DOS = 2; DIEZ = 10; } NestedEnum s_nested_enum = 3; } // Message contains nested message field. message Nests { Nested s_nested = 2; } // Message type used as submessage. message Nested { string s_string = 1; Nested s_nested = 2; } // Message contains oneof field. message Oneofs { oneof union { Enum oneof_enum = 1; string oneof_string = 2; Nested oneof_nested = 3; } } // Message contains map fields. message Maps { map int32_to_str = 1; map bool_to_uint32 = 2; map uint64_to_enum = 3; map str_to_nested = 4; map str_to_oneofs = 5; } // Message for testing json_name option. message JSONNames { string s_string = 1 [json_name = "foo_bar"]; } golang-google-protobuf-1.27.1/internal/version/000077500000000000000000000000001411250152500214565ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/version/version.go000066400000000000000000000044021411250152500234720ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package version records versioning information about this module. package version import ( "fmt" "strings" ) // These constants determine the current version of this module. // // // For our release process, we enforce the following rules: // * Tagged releases use a tag that is identical to String. // * Tagged releases never reference a commit where the String // contains "devel". // * The set of all commits in this repository where String // does not contain "devel" must have a unique String. // // // Steps for tagging a new release: // 1. Create a new CL. // // 2. Update Minor, Patch, and/or PreRelease as necessary. // PreRelease must not contain the string "devel". // // 3. Since the last released minor version, have there been any changes to // generator that relies on new functionality in the runtime? // If yes, then increment RequiredGenerated. // // 4. Since the last released minor version, have there been any changes to // the runtime that removes support for old .pb.go source code? // If yes, then increment SupportMinimum. // // 5. Send out the CL for review and submit it. // Note that the next CL in step 8 must be submitted after this CL // without any other CLs in-between. // // 6. Tag a new version, where the tag is is the current String. // // 7. Write release notes for all notable changes // between this release and the last release. // // 8. Create a new CL. // // 9. Update PreRelease to include the string "devel". // For example: "" -> "devel" or "rc.1" -> "rc.1.devel" // // 10. Send out the CL for review and submit it. const ( Major = 1 Minor = 27 Patch = 1 PreRelease = "" ) // String formats the version string for this module in semver format. // // Examples: // v1.20.1 // v1.21.0-rc.1 func String() string { v := fmt.Sprintf("v%d.%d.%d", Major, Minor, Patch) if PreRelease != "" { v += "-" + PreRelease // TODO: Add metadata about the commit or build hash. // See https://golang.org/issue/29814 // See https://golang.org/issue/33533 var metadata string if strings.Contains(PreRelease, "devel") && metadata != "" { v += "+" + metadata } } return v } golang-google-protobuf-1.27.1/internal/weakdeps/000077500000000000000000000000001411250152500215745ustar00rootroot00000000000000golang-google-protobuf-1.27.1/internal/weakdeps/doc.go000066400000000000000000000010221411250152500226630ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package weakdeps exists to add weak module dependencies. // // We want to ensure that this module is used with a minimum // version of certain other modules, without actually importing // those modules in normal builds. We do that by adding an // import of a package in the module under a build constraint // that is never satisfied in normal usage. package weakdeps golang-google-protobuf-1.27.1/internal/weakdeps/weakdeps.go000066400000000000000000000006731411250152500237340ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build weak_dependency package weakdeps import ( // Ensure that any program using "github.com/golang/protobuf" // uses a version that wraps this module so that there is a // unified view on what protobuf types are globally registered. _ "github.com/golang/protobuf/proto" ) golang-google-protobuf-1.27.1/proto/000077500000000000000000000000001411250152500173205ustar00rootroot00000000000000golang-google-protobuf-1.27.1/proto/bench_test.go000066400000000000000000000031711411250152500217670ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto_test import ( "flag" "fmt" "reflect" "testing" "google.golang.org/protobuf/proto" ) // The results of these microbenchmarks are unlikely to correspond well // to real world peformance. They are mainly useful as a quick check to // detect unexpected regressions and for profiling specific cases. var ( allowPartial = flag.Bool("allow_partial", false, "set AllowPartial") ) // BenchmarkEncode benchmarks encoding all the test messages. func BenchmarkEncode(b *testing.B) { for _, test := range testValidMessages { for _, want := range test.decodeTo { opts := proto.MarshalOptions{AllowPartial: *allowPartial} b.Run(fmt.Sprintf("%s (%T)", test.desc, want), func(b *testing.B) { b.RunParallel(func(pb *testing.PB) { for pb.Next() { _, err := opts.Marshal(want) if err != nil && !test.partial { b.Fatal(err) } } }) }) } } } // BenchmarkDecode benchmarks decoding all the test messages. func BenchmarkDecode(b *testing.B) { for _, test := range testValidMessages { for _, want := range test.decodeTo { opts := proto.UnmarshalOptions{AllowPartial: *allowPartial} b.Run(fmt.Sprintf("%s (%T)", test.desc, want), func(b *testing.B) { b.RunParallel(func(pb *testing.PB) { for pb.Next() { m := reflect.New(reflect.TypeOf(want).Elem()).Interface().(proto.Message) err := opts.Unmarshal(test.wire, m) if err != nil && !test.partial { b.Fatal(err) } } }) }) } } } golang-google-protobuf-1.27.1/proto/checkinit.go000066400000000000000000000036171411250152500216170ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto import ( "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/runtime/protoiface" ) // CheckInitialized returns an error if any required fields in m are not set. func CheckInitialized(m Message) error { // Treat a nil message interface as an "untyped" empty message, // which we assume to have no required fields. if m == nil { return nil } return checkInitialized(m.ProtoReflect()) } // CheckInitialized returns an error if any required fields in m are not set. func checkInitialized(m protoreflect.Message) error { if methods := protoMethods(m); methods != nil && methods.CheckInitialized != nil { _, err := methods.CheckInitialized(protoiface.CheckInitializedInput{ Message: m, }) return err } return checkInitializedSlow(m) } func checkInitializedSlow(m protoreflect.Message) error { md := m.Descriptor() fds := md.Fields() for i, nums := 0, md.RequiredNumbers(); i < nums.Len(); i++ { fd := fds.ByNumber(nums.Get(i)) if !m.Has(fd) { return errors.RequiredNotSet(string(fd.FullName())) } } var err error m.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { switch { case fd.IsList(): if fd.Message() == nil { return true } for i, list := 0, v.List(); i < list.Len() && err == nil; i++ { err = checkInitialized(list.Get(i).Message()) } case fd.IsMap(): if fd.MapValue().Message() == nil { return true } v.Map().Range(func(key protoreflect.MapKey, v protoreflect.Value) bool { err = checkInitialized(v.Message()) return err == nil }) default: if fd.Message() == nil { return true } err = checkInitialized(v.Message()) } return err == nil }) return err } golang-google-protobuf-1.27.1/proto/checkinit_test.go000066400000000000000000000040761411250152500226560ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto_test import ( "fmt" "strings" "testing" "google.golang.org/protobuf/encoding/prototext" "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/proto" testpb "google.golang.org/protobuf/internal/testprotos/test" weakpb "google.golang.org/protobuf/internal/testprotos/test/weak1" ) func TestCheckInitializedErrors(t *testing.T) { type test struct { m proto.Message want string skip bool } tests := []test{{ m: &testpb.TestRequired{}, want: `goproto.proto.test.TestRequired.required_field`, }, { m: &testpb.TestRequiredForeign{ OptionalMessage: &testpb.TestRequired{}, }, want: `goproto.proto.test.TestRequired.required_field`, }, { m: &testpb.TestRequiredForeign{ RepeatedMessage: []*testpb.TestRequired{ {RequiredField: proto.Int32(1)}, {}, }, }, want: `goproto.proto.test.TestRequired.required_field`, }, { m: &testpb.TestRequiredForeign{ MapMessage: map[int32]*testpb.TestRequired{ 1: {}, }, }, want: `goproto.proto.test.TestRequired.required_field`, }, { m: &testpb.TestWeak{}, want: ``, skip: !flags.ProtoLegacy, }, { m: func() proto.Message { m := &testpb.TestWeak{} m.SetWeakMessage1(&weakpb.WeakImportMessage1{}) return m }(), want: `goproto.proto.test.weak.WeakImportMessage1.a`, skip: !flags.ProtoLegacy, }, { m: func() proto.Message { m := &testpb.TestWeak{} m.SetWeakMessage1(&weakpb.WeakImportMessage1{ A: proto.Int32(1), }) return m }(), want: ``, skip: !flags.ProtoLegacy, }} for _, tt := range tests { t.Run("", func(t *testing.T) { if tt.skip { t.SkipNow() } err := proto.CheckInitialized(tt.m) got := "" if err != nil { got = fmt.Sprintf("%q", err) } if !strings.Contains(got, tt.want) { t.Errorf("CheckInitialized(m):\n got: %v\nwant contains: %v\nMessage:\n%v", got, tt.want, prototext.Format(tt.m)) } }) } } golang-google-protobuf-1.27.1/proto/decode.go000066400000000000000000000200731411250152500210740ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto import ( "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/encoding/messageset" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/internal/pragma" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/runtime/protoiface" ) // UnmarshalOptions configures the unmarshaler. // // Example usage: // err := UnmarshalOptions{DiscardUnknown: true}.Unmarshal(b, m) type UnmarshalOptions struct { pragma.NoUnkeyedLiterals // Merge merges the input into the destination message. // The default behavior is to always reset the message before unmarshaling, // unless Merge is specified. Merge bool // AllowPartial accepts input for messages that will result in missing // required fields. If AllowPartial is false (the default), Unmarshal will // return an error if there are any missing required fields. AllowPartial bool // If DiscardUnknown is set, unknown fields are ignored. DiscardUnknown bool // Resolver is used for looking up types when unmarshaling extension fields. // If nil, this defaults to using protoregistry.GlobalTypes. Resolver interface { FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) } } // Unmarshal parses the wire-format message in b and places the result in m. // The provided message must be mutable (e.g., a non-nil pointer to a message). func Unmarshal(b []byte, m Message) error { _, err := UnmarshalOptions{}.unmarshal(b, m.ProtoReflect()) return err } // Unmarshal parses the wire-format message in b and places the result in m. // The provided message must be mutable (e.g., a non-nil pointer to a message). func (o UnmarshalOptions) Unmarshal(b []byte, m Message) error { _, err := o.unmarshal(b, m.ProtoReflect()) return err } // UnmarshalState parses a wire-format message and places the result in m. // // This method permits fine-grained control over the unmarshaler. // Most users should use Unmarshal instead. func (o UnmarshalOptions) UnmarshalState(in protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { return o.unmarshal(in.Buf, in.Message) } // unmarshal is a centralized function that all unmarshal operations go through. // For profiling purposes, avoid changing the name of this function or // introducing other code paths for unmarshal that do not go through this. func (o UnmarshalOptions) unmarshal(b []byte, m protoreflect.Message) (out protoiface.UnmarshalOutput, err error) { if o.Resolver == nil { o.Resolver = protoregistry.GlobalTypes } if !o.Merge { Reset(m.Interface()) } allowPartial := o.AllowPartial o.Merge = true o.AllowPartial = true methods := protoMethods(m) if methods != nil && methods.Unmarshal != nil && !(o.DiscardUnknown && methods.Flags&protoiface.SupportUnmarshalDiscardUnknown == 0) { in := protoiface.UnmarshalInput{ Message: m, Buf: b, Resolver: o.Resolver, } if o.DiscardUnknown { in.Flags |= protoiface.UnmarshalDiscardUnknown } out, err = methods.Unmarshal(in) } else { err = o.unmarshalMessageSlow(b, m) } if err != nil { return out, err } if allowPartial || (out.Flags&protoiface.UnmarshalInitialized != 0) { return out, nil } return out, checkInitialized(m) } func (o UnmarshalOptions) unmarshalMessage(b []byte, m protoreflect.Message) error { _, err := o.unmarshal(b, m) return err } func (o UnmarshalOptions) unmarshalMessageSlow(b []byte, m protoreflect.Message) error { md := m.Descriptor() if messageset.IsMessageSet(md) { return o.unmarshalMessageSet(b, m) } fields := md.Fields() for len(b) > 0 { // Parse the tag (field number and wire type). num, wtyp, tagLen := protowire.ConsumeTag(b) if tagLen < 0 { return errDecode } if num > protowire.MaxValidNumber { return errDecode } // Find the field descriptor for this field number. fd := fields.ByNumber(num) if fd == nil && md.ExtensionRanges().Has(num) { extType, err := o.Resolver.FindExtensionByNumber(md.FullName(), num) if err != nil && err != protoregistry.NotFound { return errors.New("%v: unable to resolve extension %v: %v", md.FullName(), num, err) } if extType != nil { fd = extType.TypeDescriptor() } } var err error if fd == nil { err = errUnknown } else if flags.ProtoLegacy { if fd.IsWeak() && fd.Message().IsPlaceholder() { err = errUnknown // weak referent is not linked in } } // Parse the field value. var valLen int switch { case err != nil: case fd.IsList(): valLen, err = o.unmarshalList(b[tagLen:], wtyp, m.Mutable(fd).List(), fd) case fd.IsMap(): valLen, err = o.unmarshalMap(b[tagLen:], wtyp, m.Mutable(fd).Map(), fd) default: valLen, err = o.unmarshalSingular(b[tagLen:], wtyp, m, fd) } if err != nil { if err != errUnknown { return err } valLen = protowire.ConsumeFieldValue(num, wtyp, b[tagLen:]) if valLen < 0 { return errDecode } if !o.DiscardUnknown { m.SetUnknown(append(m.GetUnknown(), b[:tagLen+valLen]...)) } } b = b[tagLen+valLen:] } return nil } func (o UnmarshalOptions) unmarshalSingular(b []byte, wtyp protowire.Type, m protoreflect.Message, fd protoreflect.FieldDescriptor) (n int, err error) { v, n, err := o.unmarshalScalar(b, wtyp, fd) if err != nil { return 0, err } switch fd.Kind() { case protoreflect.GroupKind, protoreflect.MessageKind: m2 := m.Mutable(fd).Message() if err := o.unmarshalMessage(v.Bytes(), m2); err != nil { return n, err } default: // Non-message scalars replace the previous value. m.Set(fd, v) } return n, nil } func (o UnmarshalOptions) unmarshalMap(b []byte, wtyp protowire.Type, mapv protoreflect.Map, fd protoreflect.FieldDescriptor) (n int, err error) { if wtyp != protowire.BytesType { return 0, errUnknown } b, n = protowire.ConsumeBytes(b) if n < 0 { return 0, errDecode } var ( keyField = fd.MapKey() valField = fd.MapValue() key protoreflect.Value val protoreflect.Value haveKey bool haveVal bool ) switch valField.Kind() { case protoreflect.GroupKind, protoreflect.MessageKind: val = mapv.NewValue() } // Map entries are represented as a two-element message with fields // containing the key and value. for len(b) > 0 { num, wtyp, n := protowire.ConsumeTag(b) if n < 0 { return 0, errDecode } if num > protowire.MaxValidNumber { return 0, errDecode } b = b[n:] err = errUnknown switch num { case genid.MapEntry_Key_field_number: key, n, err = o.unmarshalScalar(b, wtyp, keyField) if err != nil { break } haveKey = true case genid.MapEntry_Value_field_number: var v protoreflect.Value v, n, err = o.unmarshalScalar(b, wtyp, valField) if err != nil { break } switch valField.Kind() { case protoreflect.GroupKind, protoreflect.MessageKind: if err := o.unmarshalMessage(v.Bytes(), val.Message()); err != nil { return 0, err } default: val = v } haveVal = true } if err == errUnknown { n = protowire.ConsumeFieldValue(num, wtyp, b) if n < 0 { return 0, errDecode } } else if err != nil { return 0, err } b = b[n:] } // Every map entry should have entries for key and value, but this is not strictly required. if !haveKey { key = keyField.Default() } if !haveVal { switch valField.Kind() { case protoreflect.GroupKind, protoreflect.MessageKind: default: val = valField.Default() } } mapv.Set(key.MapKey(), val) return n, nil } // errUnknown is used internally to indicate fields which should be added // to the unknown field set of a message. It is never returned from an exported // function. var errUnknown = errors.New("BUG: internal error (unknown)") var errDecode = errors.New("cannot parse invalid wire-format data") golang-google-protobuf-1.27.1/proto/decode_gen.go000066400000000000000000000352231411250152500217300ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by generate-types. DO NOT EDIT. package proto import ( "math" "unicode/utf8" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/strs" "google.golang.org/protobuf/reflect/protoreflect" ) // unmarshalScalar decodes a value of the given kind. // // Message values are decoded into a []byte which aliases the input data. func (o UnmarshalOptions) unmarshalScalar(b []byte, wtyp protowire.Type, fd protoreflect.FieldDescriptor) (val protoreflect.Value, n int, err error) { switch fd.Kind() { case protoreflect.BoolKind: if wtyp != protowire.VarintType { return val, 0, errUnknown } v, n := protowire.ConsumeVarint(b) if n < 0 { return val, 0, errDecode } return protoreflect.ValueOfBool(protowire.DecodeBool(v)), n, nil case protoreflect.EnumKind: if wtyp != protowire.VarintType { return val, 0, errUnknown } v, n := protowire.ConsumeVarint(b) if n < 0 { return val, 0, errDecode } return protoreflect.ValueOfEnum(protoreflect.EnumNumber(v)), n, nil case protoreflect.Int32Kind: if wtyp != protowire.VarintType { return val, 0, errUnknown } v, n := protowire.ConsumeVarint(b) if n < 0 { return val, 0, errDecode } return protoreflect.ValueOfInt32(int32(v)), n, nil case protoreflect.Sint32Kind: if wtyp != protowire.VarintType { return val, 0, errUnknown } v, n := protowire.ConsumeVarint(b) if n < 0 { return val, 0, errDecode } return protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32))), n, nil case protoreflect.Uint32Kind: if wtyp != protowire.VarintType { return val, 0, errUnknown } v, n := protowire.ConsumeVarint(b) if n < 0 { return val, 0, errDecode } return protoreflect.ValueOfUint32(uint32(v)), n, nil case protoreflect.Int64Kind: if wtyp != protowire.VarintType { return val, 0, errUnknown } v, n := protowire.ConsumeVarint(b) if n < 0 { return val, 0, errDecode } return protoreflect.ValueOfInt64(int64(v)), n, nil case protoreflect.Sint64Kind: if wtyp != protowire.VarintType { return val, 0, errUnknown } v, n := protowire.ConsumeVarint(b) if n < 0 { return val, 0, errDecode } return protoreflect.ValueOfInt64(protowire.DecodeZigZag(v)), n, nil case protoreflect.Uint64Kind: if wtyp != protowire.VarintType { return val, 0, errUnknown } v, n := protowire.ConsumeVarint(b) if n < 0 { return val, 0, errDecode } return protoreflect.ValueOfUint64(v), n, nil case protoreflect.Sfixed32Kind: if wtyp != protowire.Fixed32Type { return val, 0, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { return val, 0, errDecode } return protoreflect.ValueOfInt32(int32(v)), n, nil case protoreflect.Fixed32Kind: if wtyp != protowire.Fixed32Type { return val, 0, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { return val, 0, errDecode } return protoreflect.ValueOfUint32(uint32(v)), n, nil case protoreflect.FloatKind: if wtyp != protowire.Fixed32Type { return val, 0, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { return val, 0, errDecode } return protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v))), n, nil case protoreflect.Sfixed64Kind: if wtyp != protowire.Fixed64Type { return val, 0, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { return val, 0, errDecode } return protoreflect.ValueOfInt64(int64(v)), n, nil case protoreflect.Fixed64Kind: if wtyp != protowire.Fixed64Type { return val, 0, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { return val, 0, errDecode } return protoreflect.ValueOfUint64(v), n, nil case protoreflect.DoubleKind: if wtyp != protowire.Fixed64Type { return val, 0, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { return val, 0, errDecode } return protoreflect.ValueOfFloat64(math.Float64frombits(v)), n, nil case protoreflect.StringKind: if wtyp != protowire.BytesType { return val, 0, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return val, 0, errDecode } if strs.EnforceUTF8(fd) && !utf8.Valid(v) { return protoreflect.Value{}, 0, errors.InvalidUTF8(string(fd.FullName())) } return protoreflect.ValueOfString(string(v)), n, nil case protoreflect.BytesKind: if wtyp != protowire.BytesType { return val, 0, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return val, 0, errDecode } return protoreflect.ValueOfBytes(append(emptyBuf[:], v...)), n, nil case protoreflect.MessageKind: if wtyp != protowire.BytesType { return val, 0, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return val, 0, errDecode } return protoreflect.ValueOfBytes(v), n, nil case protoreflect.GroupKind: if wtyp != protowire.StartGroupType { return val, 0, errUnknown } v, n := protowire.ConsumeGroup(fd.Number(), b) if n < 0 { return val, 0, errDecode } return protoreflect.ValueOfBytes(v), n, nil default: return val, 0, errUnknown } } func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list protoreflect.List, fd protoreflect.FieldDescriptor) (n int, err error) { switch fd.Kind() { case protoreflect.BoolKind: if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeVarint(buf) if n < 0 { return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfBool(protowire.DecodeBool(v))) } return n, nil } if wtyp != protowire.VarintType { return 0, errUnknown } v, n := protowire.ConsumeVarint(b) if n < 0 { return 0, errDecode } list.Append(protoreflect.ValueOfBool(protowire.DecodeBool(v))) return n, nil case protoreflect.EnumKind: if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeVarint(buf) if n < 0 { return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfEnum(protoreflect.EnumNumber(v))) } return n, nil } if wtyp != protowire.VarintType { return 0, errUnknown } v, n := protowire.ConsumeVarint(b) if n < 0 { return 0, errDecode } list.Append(protoreflect.ValueOfEnum(protoreflect.EnumNumber(v))) return n, nil case protoreflect.Int32Kind: if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeVarint(buf) if n < 0 { return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfInt32(int32(v))) } return n, nil } if wtyp != protowire.VarintType { return 0, errUnknown } v, n := protowire.ConsumeVarint(b) if n < 0 { return 0, errDecode } list.Append(protoreflect.ValueOfInt32(int32(v))) return n, nil case protoreflect.Sint32Kind: if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeVarint(buf) if n < 0 { return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32)))) } return n, nil } if wtyp != protowire.VarintType { return 0, errUnknown } v, n := protowire.ConsumeVarint(b) if n < 0 { return 0, errDecode } list.Append(protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32)))) return n, nil case protoreflect.Uint32Kind: if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeVarint(buf) if n < 0 { return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfUint32(uint32(v))) } return n, nil } if wtyp != protowire.VarintType { return 0, errUnknown } v, n := protowire.ConsumeVarint(b) if n < 0 { return 0, errDecode } list.Append(protoreflect.ValueOfUint32(uint32(v))) return n, nil case protoreflect.Int64Kind: if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeVarint(buf) if n < 0 { return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfInt64(int64(v))) } return n, nil } if wtyp != protowire.VarintType { return 0, errUnknown } v, n := protowire.ConsumeVarint(b) if n < 0 { return 0, errDecode } list.Append(protoreflect.ValueOfInt64(int64(v))) return n, nil case protoreflect.Sint64Kind: if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeVarint(buf) if n < 0 { return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfInt64(protowire.DecodeZigZag(v))) } return n, nil } if wtyp != protowire.VarintType { return 0, errUnknown } v, n := protowire.ConsumeVarint(b) if n < 0 { return 0, errDecode } list.Append(protoreflect.ValueOfInt64(protowire.DecodeZigZag(v))) return n, nil case protoreflect.Uint64Kind: if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeVarint(buf) if n < 0 { return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfUint64(v)) } return n, nil } if wtyp != protowire.VarintType { return 0, errUnknown } v, n := protowire.ConsumeVarint(b) if n < 0 { return 0, errDecode } list.Append(protoreflect.ValueOfUint64(v)) return n, nil case protoreflect.Sfixed32Kind: if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeFixed32(buf) if n < 0 { return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfInt32(int32(v))) } return n, nil } if wtyp != protowire.Fixed32Type { return 0, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { return 0, errDecode } list.Append(protoreflect.ValueOfInt32(int32(v))) return n, nil case protoreflect.Fixed32Kind: if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeFixed32(buf) if n < 0 { return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfUint32(uint32(v))) } return n, nil } if wtyp != protowire.Fixed32Type { return 0, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { return 0, errDecode } list.Append(protoreflect.ValueOfUint32(uint32(v))) return n, nil case protoreflect.FloatKind: if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeFixed32(buf) if n < 0 { return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v)))) } return n, nil } if wtyp != protowire.Fixed32Type { return 0, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { return 0, errDecode } list.Append(protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v)))) return n, nil case protoreflect.Sfixed64Kind: if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeFixed64(buf) if n < 0 { return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfInt64(int64(v))) } return n, nil } if wtyp != protowire.Fixed64Type { return 0, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { return 0, errDecode } list.Append(protoreflect.ValueOfInt64(int64(v))) return n, nil case protoreflect.Fixed64Kind: if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeFixed64(buf) if n < 0 { return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfUint64(v)) } return n, nil } if wtyp != protowire.Fixed64Type { return 0, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { return 0, errDecode } list.Append(protoreflect.ValueOfUint64(v)) return n, nil case protoreflect.DoubleKind: if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeFixed64(buf) if n < 0 { return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfFloat64(math.Float64frombits(v))) } return n, nil } if wtyp != protowire.Fixed64Type { return 0, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { return 0, errDecode } list.Append(protoreflect.ValueOfFloat64(math.Float64frombits(v))) return n, nil case protoreflect.StringKind: if wtyp != protowire.BytesType { return 0, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return 0, errDecode } if strs.EnforceUTF8(fd) && !utf8.Valid(v) { return 0, errors.InvalidUTF8(string(fd.FullName())) } list.Append(protoreflect.ValueOfString(string(v))) return n, nil case protoreflect.BytesKind: if wtyp != protowire.BytesType { return 0, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return 0, errDecode } list.Append(protoreflect.ValueOfBytes(append(emptyBuf[:], v...))) return n, nil case protoreflect.MessageKind: if wtyp != protowire.BytesType { return 0, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { return 0, errDecode } m := list.NewElement() if err := o.unmarshalMessage(v, m.Message()); err != nil { return 0, err } list.Append(m) return n, nil case protoreflect.GroupKind: if wtyp != protowire.StartGroupType { return 0, errUnknown } v, n := protowire.ConsumeGroup(fd.Number(), b) if n < 0 { return 0, errDecode } m := list.NewElement() if err := o.unmarshalMessage(v, m.Message()); err != nil { return 0, err } list.Append(m) return n, nil default: return 0, errUnknown } } // We append to an empty array rather than a nil []byte to get non-nil zero-length byte slices. var emptyBuf [0]byte golang-google-protobuf-1.27.1/proto/decode_test.go000066400000000000000000000114341411250152500221340ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto_test import ( "bytes" "fmt" "reflect" "testing" "google.golang.org/protobuf/encoding/prototext" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/testing/protopack" "google.golang.org/protobuf/internal/errors" testpb "google.golang.org/protobuf/internal/testprotos/test" test3pb "google.golang.org/protobuf/internal/testprotos/test3" ) func TestDecode(t *testing.T) { for _, test := range testValidMessages { if len(test.decodeTo) == 0 { t.Errorf("%v: no test message types", test.desc) } for _, want := range test.decodeTo { t.Run(fmt.Sprintf("%s (%T)", test.desc, want), func(t *testing.T) { opts := test.unmarshalOptions opts.AllowPartial = test.partial wire := append(([]byte)(nil), test.wire...) got := reflect.New(reflect.TypeOf(want).Elem()).Interface().(proto.Message) if err := opts.Unmarshal(wire, got); err != nil { t.Errorf("Unmarshal error: %v\nMessage:\n%v", err, prototext.Format(want)) return } // Aliasing check: Unmarshal shouldn't modify the original wire // bytes, and modifying the original wire bytes shouldn't affect // the unmarshaled message. if !bytes.Equal(test.wire, wire) { t.Errorf("Unmarshal unexpectedly modified its input") } for i := range wire { wire[i] = 0 } if !proto.Equal(got, want) && got.ProtoReflect().IsValid() && want.ProtoReflect().IsValid() { t.Errorf("Unmarshal returned unexpected result; got:\n%v\nwant:\n%v", prototext.Format(got), prototext.Format(want)) } }) } } } func TestDecodeRequiredFieldChecks(t *testing.T) { for _, test := range testValidMessages { if !test.partial { continue } for _, m := range test.decodeTo { t.Run(fmt.Sprintf("%s (%T)", test.desc, m), func(t *testing.T) { opts := test.unmarshalOptions opts.AllowPartial = false got := reflect.New(reflect.TypeOf(m).Elem()).Interface().(proto.Message) if err := proto.Unmarshal(test.wire, got); err == nil { t.Fatalf("Unmarshal succeeded (want error)\nMessage:\n%v", prototext.Format(got)) } }) } } } func TestDecodeInvalidMessages(t *testing.T) { for _, test := range testInvalidMessages { if len(test.decodeTo) == 0 { t.Errorf("%v: no test message types", test.desc) } for _, want := range test.decodeTo { t.Run(fmt.Sprintf("%s (%T)", test.desc, want), func(t *testing.T) { opts := test.unmarshalOptions opts.AllowPartial = test.partial got := want.ProtoReflect().New().Interface() if err := opts.Unmarshal(test.wire, got); err == nil { t.Errorf("Unmarshal unexpectedly succeeded\ninput bytes: [%x]\nMessage:\n%v", test.wire, prototext.Format(got)) } else if !errors.Is(err, proto.Error) { t.Errorf("Unmarshal error is not a proto.Error: %v", err) } }) } } } func TestDecodeZeroLengthBytes(t *testing.T) { // Verify that proto3 bytes fields don't give the mistaken // impression that they preserve presence. wire := protopack.Message{ protopack.Tag{94, protopack.BytesType}, protopack.Bytes(nil), }.Marshal() m := &test3pb.TestAllTypes{} if err := proto.Unmarshal(wire, m); err != nil { t.Fatal(err) } if m.OptionalBytes != nil { t.Errorf("unmarshal zero-length proto3 bytes field: got %v, want nil", m.OptionalBytes) } } func TestDecodeOneofNilWrapper(t *testing.T) { wire := protopack.Message{ protopack.Tag{111, protopack.VarintType}, protopack.Varint(1111), }.Marshal() m := &testpb.TestAllTypes{OneofField: (*testpb.TestAllTypes_OneofUint32)(nil)} if err := proto.Unmarshal(wire, m); err != nil { t.Fatal(err) } if got := m.GetOneofUint32(); got != 1111 { t.Errorf("GetOneofUint32() = %v, want %v", got, 1111) } } func TestDecodeEmptyBytes(t *testing.T) { // There's really nothing wrong with a nil entry in a [][]byte, // but we take care to produce non-nil []bytes for zero-length // byte strings, so test for it. m := &testpb.TestAllTypes{} b := protopack.Message{ protopack.Tag{45, protopack.BytesType}, protopack.Bytes(nil), }.Marshal() if err := proto.Unmarshal(b, m); err != nil { t.Fatal(err) } if m.RepeatedBytes[0] == nil { t.Errorf("unmarshaling repeated bytes field containing zero-length value: Got nil bytes, want non-nil") } } func build(m proto.Message, opts ...buildOpt) proto.Message { for _, opt := range opts { opt(m) } return m } type buildOpt func(proto.Message) func unknown(raw protoreflect.RawFields) buildOpt { return func(m proto.Message) { m.ProtoReflect().SetUnknown(raw) } } func extend(desc protoreflect.ExtensionType, value interface{}) buildOpt { return func(m proto.Message) { proto.SetExtension(m, desc, value) } } golang-google-protobuf-1.27.1/proto/doc.go000066400000000000000000000062561411250152500204250ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package proto provides functions operating on protocol buffer messages. // // For documentation on protocol buffers in general, see: // // https://developers.google.com/protocol-buffers // // For a tutorial on using protocol buffers with Go, see: // // https://developers.google.com/protocol-buffers/docs/gotutorial // // For a guide to generated Go protocol buffer code, see: // // https://developers.google.com/protocol-buffers/docs/reference/go-generated // // // Binary serialization // // This package contains functions to convert to and from the wire format, // an efficient binary serialization of protocol buffers. // // • Size reports the size of a message in the wire format. // // • Marshal converts a message to the wire format. // The MarshalOptions type provides more control over wire marshaling. // // • Unmarshal converts a message from the wire format. // The UnmarshalOptions type provides more control over wire unmarshaling. // // // Basic message operations // // • Clone makes a deep copy of a message. // // • Merge merges the content of a message into another. // // • Equal compares two messages. For more control over comparisons // and detailed reporting of differences, see package // "google.golang.org/protobuf/testing/protocmp". // // • Reset clears the content of a message. // // • CheckInitialized reports whether all required fields in a message are set. // // // Optional scalar constructors // // The API for some generated messages represents optional scalar fields // as pointers to a value. For example, an optional string field has the // Go type *string. // // • Bool, Int32, Int64, Uint32, Uint64, Float32, Float64, and String // take a value and return a pointer to a new instance of it, // to simplify construction of optional field values. // // Generated enum types usually have an Enum method which performs the // same operation. // // Optional scalar fields are only supported in proto2. // // // Extension accessors // // • HasExtension, GetExtension, SetExtension, and ClearExtension // access extension field values in a protocol buffer message. // // Extension fields are only supported in proto2. // // // Related packages // // • Package "google.golang.org/protobuf/encoding/protojson" converts messages to // and from JSON. // // • Package "google.golang.org/protobuf/encoding/prototext" converts messages to // and from the text format. // // • Package "google.golang.org/protobuf/reflect/protoreflect" provides a // reflection interface for protocol buffer data types. // // • Package "google.golang.org/protobuf/testing/protocmp" provides features // to compare protocol buffer messages with the "github.com/google/go-cmp/cmp" // package. // // • Package "google.golang.org/protobuf/types/dynamicpb" provides a dynamic // message type, suitable for working with messages where the protocol buffer // type is only known at runtime. // // This module contains additional packages for more specialized use cases. // Consult the individual package documentation for details. package proto golang-google-protobuf-1.27.1/proto/encode.go000066400000000000000000000236611411250152500211140ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto import ( "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/encoding/messageset" "google.golang.org/protobuf/internal/order" "google.golang.org/protobuf/internal/pragma" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/runtime/protoiface" ) // MarshalOptions configures the marshaler. // // Example usage: // b, err := MarshalOptions{Deterministic: true}.Marshal(m) type MarshalOptions struct { pragma.NoUnkeyedLiterals // AllowPartial allows messages that have missing required fields to marshal // without returning an error. If AllowPartial is false (the default), // Marshal will return an error if there are any missing required fields. AllowPartial bool // Deterministic controls whether the same message will always be // serialized to the same bytes within the same binary. // // Setting this option guarantees that repeated serialization of // the same message will return the same bytes, and that different // processes of the same binary (which may be executing on different // machines) will serialize equal messages to the same bytes. // It has no effect on the resulting size of the encoded message compared // to a non-deterministic marshal. // // Note that the deterministic serialization is NOT canonical across // languages. It is not guaranteed to remain stable over time. It is // unstable across different builds with schema changes due to unknown // fields. Users who need canonical serialization (e.g., persistent // storage in a canonical form, fingerprinting, etc.) must define // their own canonicalization specification and implement their own // serializer rather than relying on this API. // // If deterministic serialization is requested, map entries will be // sorted by keys in lexographical order. This is an implementation // detail and subject to change. Deterministic bool // UseCachedSize indicates that the result of a previous Size call // may be reused. // // Setting this option asserts that: // // 1. Size has previously been called on this message with identical // options (except for UseCachedSize itself). // // 2. The message and all its submessages have not changed in any // way since the Size call. // // If either of these invariants is violated, // the results are undefined and may include panics or corrupted output. // // Implementations MAY take this option into account to provide // better performance, but there is no guarantee that they will do so. // There is absolutely no guarantee that Size followed by Marshal with // UseCachedSize set will perform equivalently to Marshal alone. UseCachedSize bool } // Marshal returns the wire-format encoding of m. func Marshal(m Message) ([]byte, error) { // Treat nil message interface as an empty message; nothing to output. if m == nil { return nil, nil } out, err := MarshalOptions{}.marshal(nil, m.ProtoReflect()) if len(out.Buf) == 0 && err == nil { out.Buf = emptyBytesForMessage(m) } return out.Buf, err } // Marshal returns the wire-format encoding of m. func (o MarshalOptions) Marshal(m Message) ([]byte, error) { // Treat nil message interface as an empty message; nothing to output. if m == nil { return nil, nil } out, err := o.marshal(nil, m.ProtoReflect()) if len(out.Buf) == 0 && err == nil { out.Buf = emptyBytesForMessage(m) } return out.Buf, err } // emptyBytesForMessage returns a nil buffer if and only if m is invalid, // otherwise it returns a non-nil empty buffer. // // This is to assist the edge-case where user-code does the following: // m1.OptionalBytes, _ = proto.Marshal(m2) // where they expect the proto2 "optional_bytes" field to be populated // if any only if m2 is a valid message. func emptyBytesForMessage(m Message) []byte { if m == nil || !m.ProtoReflect().IsValid() { return nil } return emptyBuf[:] } // MarshalAppend appends the wire-format encoding of m to b, // returning the result. func (o MarshalOptions) MarshalAppend(b []byte, m Message) ([]byte, error) { // Treat nil message interface as an empty message; nothing to append. if m == nil { return b, nil } out, err := o.marshal(b, m.ProtoReflect()) return out.Buf, err } // MarshalState returns the wire-format encoding of a message. // // This method permits fine-grained control over the marshaler. // Most users should use Marshal instead. func (o MarshalOptions) MarshalState(in protoiface.MarshalInput) (protoiface.MarshalOutput, error) { return o.marshal(in.Buf, in.Message) } // marshal is a centralized function that all marshal operations go through. // For profiling purposes, avoid changing the name of this function or // introducing other code paths for marshal that do not go through this. func (o MarshalOptions) marshal(b []byte, m protoreflect.Message) (out protoiface.MarshalOutput, err error) { allowPartial := o.AllowPartial o.AllowPartial = true if methods := protoMethods(m); methods != nil && methods.Marshal != nil && !(o.Deterministic && methods.Flags&protoiface.SupportMarshalDeterministic == 0) { in := protoiface.MarshalInput{ Message: m, Buf: b, } if o.Deterministic { in.Flags |= protoiface.MarshalDeterministic } if o.UseCachedSize { in.Flags |= protoiface.MarshalUseCachedSize } if methods.Size != nil { sout := methods.Size(protoiface.SizeInput{ Message: m, Flags: in.Flags, }) if cap(b) < len(b)+sout.Size { in.Buf = make([]byte, len(b), growcap(cap(b), len(b)+sout.Size)) copy(in.Buf, b) } in.Flags |= protoiface.MarshalUseCachedSize } out, err = methods.Marshal(in) } else { out.Buf, err = o.marshalMessageSlow(b, m) } if err != nil { return out, err } if allowPartial { return out, nil } return out, checkInitialized(m) } func (o MarshalOptions) marshalMessage(b []byte, m protoreflect.Message) ([]byte, error) { out, err := o.marshal(b, m) return out.Buf, err } // growcap scales up the capacity of a slice. // // Given a slice with a current capacity of oldcap and a desired // capacity of wantcap, growcap returns a new capacity >= wantcap. // // The algorithm is mostly identical to the one used by append as of Go 1.14. func growcap(oldcap, wantcap int) (newcap int) { if wantcap > oldcap*2 { newcap = wantcap } else if oldcap < 1024 { // The Go 1.14 runtime takes this case when len(s) < 1024, // not when cap(s) < 1024. The difference doesn't seem // significant here. newcap = oldcap * 2 } else { newcap = oldcap for 0 < newcap && newcap < wantcap { newcap += newcap / 4 } if newcap <= 0 { newcap = wantcap } } return newcap } func (o MarshalOptions) marshalMessageSlow(b []byte, m protoreflect.Message) ([]byte, error) { if messageset.IsMessageSet(m.Descriptor()) { return o.marshalMessageSet(b, m) } fieldOrder := order.AnyFieldOrder if o.Deterministic { // TODO: This should use a more natural ordering like NumberFieldOrder, // but doing so breaks golden tests that make invalid assumption about // output stability of this implementation. fieldOrder = order.LegacyFieldOrder } var err error order.RangeFields(m, fieldOrder, func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { b, err = o.marshalField(b, fd, v) return err == nil }) if err != nil { return b, err } b = append(b, m.GetUnknown()...) return b, nil } func (o MarshalOptions) marshalField(b []byte, fd protoreflect.FieldDescriptor, value protoreflect.Value) ([]byte, error) { switch { case fd.IsList(): return o.marshalList(b, fd, value.List()) case fd.IsMap(): return o.marshalMap(b, fd, value.Map()) default: b = protowire.AppendTag(b, fd.Number(), wireTypes[fd.Kind()]) return o.marshalSingular(b, fd, value) } } func (o MarshalOptions) marshalList(b []byte, fd protoreflect.FieldDescriptor, list protoreflect.List) ([]byte, error) { if fd.IsPacked() && list.Len() > 0 { b = protowire.AppendTag(b, fd.Number(), protowire.BytesType) b, pos := appendSpeculativeLength(b) for i, llen := 0, list.Len(); i < llen; i++ { var err error b, err = o.marshalSingular(b, fd, list.Get(i)) if err != nil { return b, err } } b = finishSpeculativeLength(b, pos) return b, nil } kind := fd.Kind() for i, llen := 0, list.Len(); i < llen; i++ { var err error b = protowire.AppendTag(b, fd.Number(), wireTypes[kind]) b, err = o.marshalSingular(b, fd, list.Get(i)) if err != nil { return b, err } } return b, nil } func (o MarshalOptions) marshalMap(b []byte, fd protoreflect.FieldDescriptor, mapv protoreflect.Map) ([]byte, error) { keyf := fd.MapKey() valf := fd.MapValue() keyOrder := order.AnyKeyOrder if o.Deterministic { keyOrder = order.GenericKeyOrder } var err error order.RangeEntries(mapv, keyOrder, func(key protoreflect.MapKey, value protoreflect.Value) bool { b = protowire.AppendTag(b, fd.Number(), protowire.BytesType) var pos int b, pos = appendSpeculativeLength(b) b, err = o.marshalField(b, keyf, key.Value()) if err != nil { return false } b, err = o.marshalField(b, valf, value) if err != nil { return false } b = finishSpeculativeLength(b, pos) return true }) return b, err } // When encoding length-prefixed fields, we speculatively set aside some number of bytes // for the length, encode the data, and then encode the length (shifting the data if necessary // to make room). const speculativeLength = 1 func appendSpeculativeLength(b []byte) ([]byte, int) { pos := len(b) b = append(b, "\x00\x00\x00\x00"[:speculativeLength]...) return b, pos } func finishSpeculativeLength(b []byte, pos int) []byte { mlen := len(b) - pos - speculativeLength msiz := protowire.SizeVarint(uint64(mlen)) if msiz != speculativeLength { for i := 0; i < msiz-speculativeLength; i++ { b = append(b, 0) } copy(b[pos+msiz:], b[pos+speculativeLength:]) b = b[:pos+msiz+mlen] } protowire.AppendVarint(b[:pos], uint64(mlen)) return b } golang-google-protobuf-1.27.1/proto/encode_gen.go000066400000000000000000000067651411250152500217530ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by generate-types. DO NOT EDIT. package proto import ( "math" "unicode/utf8" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/strs" "google.golang.org/protobuf/reflect/protoreflect" ) var wireTypes = map[protoreflect.Kind]protowire.Type{ protoreflect.BoolKind: protowire.VarintType, protoreflect.EnumKind: protowire.VarintType, protoreflect.Int32Kind: protowire.VarintType, protoreflect.Sint32Kind: protowire.VarintType, protoreflect.Uint32Kind: protowire.VarintType, protoreflect.Int64Kind: protowire.VarintType, protoreflect.Sint64Kind: protowire.VarintType, protoreflect.Uint64Kind: protowire.VarintType, protoreflect.Sfixed32Kind: protowire.Fixed32Type, protoreflect.Fixed32Kind: protowire.Fixed32Type, protoreflect.FloatKind: protowire.Fixed32Type, protoreflect.Sfixed64Kind: protowire.Fixed64Type, protoreflect.Fixed64Kind: protowire.Fixed64Type, protoreflect.DoubleKind: protowire.Fixed64Type, protoreflect.StringKind: protowire.BytesType, protoreflect.BytesKind: protowire.BytesType, protoreflect.MessageKind: protowire.BytesType, protoreflect.GroupKind: protowire.StartGroupType, } func (o MarshalOptions) marshalSingular(b []byte, fd protoreflect.FieldDescriptor, v protoreflect.Value) ([]byte, error) { switch fd.Kind() { case protoreflect.BoolKind: b = protowire.AppendVarint(b, protowire.EncodeBool(v.Bool())) case protoreflect.EnumKind: b = protowire.AppendVarint(b, uint64(v.Enum())) case protoreflect.Int32Kind: b = protowire.AppendVarint(b, uint64(int32(v.Int()))) case protoreflect.Sint32Kind: b = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(int32(v.Int())))) case protoreflect.Uint32Kind: b = protowire.AppendVarint(b, uint64(uint32(v.Uint()))) case protoreflect.Int64Kind: b = protowire.AppendVarint(b, uint64(v.Int())) case protoreflect.Sint64Kind: b = protowire.AppendVarint(b, protowire.EncodeZigZag(v.Int())) case protoreflect.Uint64Kind: b = protowire.AppendVarint(b, v.Uint()) case protoreflect.Sfixed32Kind: b = protowire.AppendFixed32(b, uint32(v.Int())) case protoreflect.Fixed32Kind: b = protowire.AppendFixed32(b, uint32(v.Uint())) case protoreflect.FloatKind: b = protowire.AppendFixed32(b, math.Float32bits(float32(v.Float()))) case protoreflect.Sfixed64Kind: b = protowire.AppendFixed64(b, uint64(v.Int())) case protoreflect.Fixed64Kind: b = protowire.AppendFixed64(b, v.Uint()) case protoreflect.DoubleKind: b = protowire.AppendFixed64(b, math.Float64bits(v.Float())) case protoreflect.StringKind: if strs.EnforceUTF8(fd) && !utf8.ValidString(v.String()) { return b, errors.InvalidUTF8(string(fd.FullName())) } b = protowire.AppendString(b, v.String()) case protoreflect.BytesKind: b = protowire.AppendBytes(b, v.Bytes()) case protoreflect.MessageKind: var pos int var err error b, pos = appendSpeculativeLength(b) b, err = o.marshalMessage(b, v.Message()) if err != nil { return b, err } b = finishSpeculativeLength(b, pos) case protoreflect.GroupKind: var err error b, err = o.marshalMessage(b, v.Message()) if err != nil { return b, err } b = protowire.AppendVarint(b, protowire.EncodeTag(fd.Number(), protowire.EndGroupType)) default: return b, errors.New("invalid kind %v", fd.Kind()) } return b, nil } golang-google-protobuf-1.27.1/proto/encode_test.go000066400000000000000000000210351411250152500221440ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto_test import ( "bytes" "fmt" "math" "reflect" "testing" "github.com/google/go-cmp/cmp" "google.golang.org/protobuf/encoding/prototext" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/proto" pref "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/internal/errors" orderpb "google.golang.org/protobuf/internal/testprotos/order" testpb "google.golang.org/protobuf/internal/testprotos/test" test3pb "google.golang.org/protobuf/internal/testprotos/test3" ) func TestEncode(t *testing.T) { for _, test := range testValidMessages { for _, want := range test.decodeTo { t.Run(fmt.Sprintf("%s (%T)", test.desc, want), func(t *testing.T) { opts := proto.MarshalOptions{ AllowPartial: test.partial, } wire, err := opts.Marshal(want) if err != nil { t.Fatalf("Marshal error: %v\nMessage:\n%v", err, prototext.Format(want)) } size := proto.Size(want) if size != len(wire) { t.Errorf("Size and marshal disagree: Size(m)=%v; len(Marshal(m))=%v\nMessage:\n%v", size, len(wire), prototext.Format(want)) } got := want.ProtoReflect().New().Interface() uopts := proto.UnmarshalOptions{ AllowPartial: test.partial, } if err := uopts.Unmarshal(wire, got); err != nil { t.Errorf("Unmarshal error: %v\nMessage:\n%v", err, prototext.Format(want)) return } if !proto.Equal(got, want) && got.ProtoReflect().IsValid() && want.ProtoReflect().IsValid() { t.Errorf("Unmarshal returned unexpected result; got:\n%v\nwant:\n%v", prototext.Format(got), prototext.Format(want)) } }) } } } func TestEncodeDeterministic(t *testing.T) { for _, test := range testValidMessages { for _, want := range test.decodeTo { t.Run(fmt.Sprintf("%s (%T)", test.desc, want), func(t *testing.T) { opts := proto.MarshalOptions{ Deterministic: true, AllowPartial: test.partial, } wire, err := opts.Marshal(want) if err != nil { t.Fatalf("Marshal error: %v\nMessage:\n%v", err, prototext.Format(want)) } wire2, err := opts.Marshal(want) if err != nil { t.Fatalf("Marshal error: %v\nMessage:\n%v", err, prototext.Format(want)) } if !bytes.Equal(wire, wire2) { t.Fatalf("deterministic marshal returned varying results:\n%v", cmp.Diff(wire, wire2)) } got := want.ProtoReflect().New().Interface() uopts := proto.UnmarshalOptions{ AllowPartial: test.partial, } if err := uopts.Unmarshal(wire, got); err != nil { t.Errorf("Unmarshal error: %v\nMessage:\n%v", err, prototext.Format(want)) return } if !proto.Equal(got, want) && got.ProtoReflect().IsValid() && want.ProtoReflect().IsValid() { t.Errorf("Unmarshal returned unexpected result; got:\n%v\nwant:\n%v", prototext.Format(got), prototext.Format(want)) } }) } } } func TestEncodeRequiredFieldChecks(t *testing.T) { for _, test := range testValidMessages { if !test.partial { continue } for _, m := range test.decodeTo { t.Run(fmt.Sprintf("%s (%T)", test.desc, m), func(t *testing.T) { _, err := proto.Marshal(m) if err == nil { t.Fatalf("Marshal succeeded (want error)\nMessage:\n%v", prototext.Format(m)) } }) } } } func TestEncodeAppend(t *testing.T) { want := []byte("prefix") got := append([]byte(nil), want...) got, err := proto.MarshalOptions{}.MarshalAppend(got, &test3pb.TestAllTypes{ SingularString: "value", }) if err != nil { t.Fatal(err) } if !bytes.HasPrefix(got, want) { t.Fatalf("MarshalAppend modified prefix: got %v, want prefix %v", got, want) } } func TestEncodeInvalidMessages(t *testing.T) { for _, test := range testInvalidMessages { for _, m := range test.decodeTo { if !m.ProtoReflect().IsValid() { continue } t.Run(fmt.Sprintf("%s (%T)", test.desc, m), func(t *testing.T) { opts := proto.MarshalOptions{ AllowPartial: test.partial, } got, err := opts.Marshal(m) if err == nil { t.Fatalf("Marshal unexpectedly succeeded\noutput bytes: [%x]\nMessage:\n%v", got, prototext.Format(m)) } if !errors.Is(err, proto.Error) { t.Fatalf("Marshal error is not a proto.Error: %v", err) } }) } } } func TestEncodeOneofNilWrapper(t *testing.T) { m := &testpb.TestAllTypes{OneofField: (*testpb.TestAllTypes_OneofUint32)(nil)} b, err := proto.Marshal(m) if err != nil { t.Fatal(err) } if len(b) > 0 { t.Errorf("Marshal return non-empty, want empty") } } func TestMarshalAppendAllocations(t *testing.T) { m := &test3pb.TestAllTypes{SingularInt32: 1} size := proto.Size(m) const count = 1000 b := make([]byte, size) // AllocsPerRun returns an integral value. marshalAllocs := testing.AllocsPerRun(count, func() { _, err := proto.MarshalOptions{}.MarshalAppend(b[:0], m) if err != nil { t.Fatal(err) } }) b = nil marshalAppendAllocs := testing.AllocsPerRun(count, func() { var err error b, err = proto.MarshalOptions{}.MarshalAppend(b, m) if err != nil { t.Fatal(err) } }) if marshalAllocs != marshalAppendAllocs { t.Errorf("%v allocs/op when writing to a preallocated buffer", marshalAllocs) t.Errorf("%v allocs/op when repeatedly appending to a slice", marshalAppendAllocs) t.Errorf("expect amortized allocs/op to be identical") } } func TestEncodeOrder(t *testing.T) { // We make no guarantees about the stability of wire marshal output. // The order in which fields are marshaled may change over time. // If deterministic marshaling is not enabled, it may change over // successive calls to proto.Marshal in the same binary. // // Unfortunately, many users have come to rely on the specific current // wire marshal output. Perhaps someday we will choose to deliberately // change the marshal output; until that day comes, this test verifies // that we don't unintentionally change it. m := &orderpb.Message{ Field_1: proto.String("one"), Field_2: proto.String("two"), Field_20: proto.String("twenty"), Oneof_1: &orderpb.Message_Field_10{"ten"}, } proto.SetExtension(m, orderpb.E_Field_30, "thirty") proto.SetExtension(m, orderpb.E_Field_31, "thirty-one") proto.SetExtension(m, orderpb.E_Field_32, "thirty-two") want := []pref.FieldNumber{ 30, 31, 32, // extensions first, in number order 1, 2, 20, // non-extension, non-oneof in number order 10, // oneofs last, undefined order } // Test with deterministic serialization, since fields are not sorted without // it when -tags=protoreflect. b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { t.Fatal(err) } var got []pref.FieldNumber for len(b) > 0 { num, _, n := protowire.ConsumeField(b) if n < 0 { t.Fatal(protowire.ParseError(n)) } b = b[n:] got = append(got, num) } if !reflect.DeepEqual(got, want) { t.Errorf("unexpected field marshal order:\ngot: %v\nwant: %v\nmessage:\n%v", got, want, m) } } func TestEncodeLarge(t *testing.T) { // Encode/decode a message large enough to overflow a 32-bit size cache. t.Skip("too slow and memory-hungry to run all the time") size := int64(math.MaxUint32 + 1) m := &testpb.TestAllTypes_NestedMessage{ Corecursive: &testpb.TestAllTypes{ OptionalBytes: make([]byte, size), }, } b, err := proto.Marshal(m) if err != nil { t.Fatalf("Marshal: %v", err) } if got, want := len(b), proto.Size(m); got != want { t.Fatalf("Size(m) = %v, but len(Marshal(m)) = %v", got, want) } if err := proto.Unmarshal(b, m); err != nil { t.Fatalf("Unmarshal: %v", err) } if got, want := int64(len(m.Corecursive.OptionalBytes)), size; got != want { t.Errorf("after round-trip marshal, got len(m.OptionalBytes) = %v, want %v", got, want) } } // TestEncodeEmpty tests for boundary conditions when producing an empty output. // These tests are not necessarily a statement of proper behavior, // but exist to detect accidental changes in behavior. func TestEncodeEmpty(t *testing.T) { for _, m := range []proto.Message{nil, (*testpb.TestAllTypes)(nil), &testpb.TestAllTypes{}} { isValid := m != nil && m.ProtoReflect().IsValid() b, err := proto.Marshal(m) if err != nil { t.Errorf("proto.Marshal() = %v", err) } if isNil := b == nil; isNil == isValid { t.Errorf("proto.Marshal() == nil: %v, want %v", isNil, !isValid) } b, err = proto.MarshalOptions{}.Marshal(m) if err != nil { t.Errorf("proto.MarshalOptions{}.Marshal() = %v", err) } if isNil := b == nil; isNil == isValid { t.Errorf("proto.MarshalOptions{}.Marshal() = %v, want %v", isNil, !isValid) } } } golang-google-protobuf-1.27.1/proto/equal.go000066400000000000000000000104321411250152500207560ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto import ( "bytes" "math" "reflect" "google.golang.org/protobuf/encoding/protowire" pref "google.golang.org/protobuf/reflect/protoreflect" ) // Equal reports whether two messages are equal. // If two messages marshal to the same bytes under deterministic serialization, // then Equal is guaranteed to report true. // // Two messages are equal if they belong to the same message descriptor, // have the same set of populated known and extension field values, // and the same set of unknown fields values. If either of the top-level // messages are invalid, then Equal reports true only if both are invalid. // // Scalar values are compared with the equivalent of the == operator in Go, // except bytes values which are compared using bytes.Equal and // floating point values which specially treat NaNs as equal. // Message values are compared by recursively calling Equal. // Lists are equal if each element value is also equal. // Maps are equal if they have the same set of keys, where the pair of values // for each key is also equal. func Equal(x, y Message) bool { if x == nil || y == nil { return x == nil && y == nil } mx := x.ProtoReflect() my := y.ProtoReflect() if mx.IsValid() != my.IsValid() { return false } return equalMessage(mx, my) } // equalMessage compares two messages. func equalMessage(mx, my pref.Message) bool { if mx.Descriptor() != my.Descriptor() { return false } nx := 0 equal := true mx.Range(func(fd pref.FieldDescriptor, vx pref.Value) bool { nx++ vy := my.Get(fd) equal = my.Has(fd) && equalField(fd, vx, vy) return equal }) if !equal { return false } ny := 0 my.Range(func(fd pref.FieldDescriptor, vx pref.Value) bool { ny++ return true }) if nx != ny { return false } return equalUnknown(mx.GetUnknown(), my.GetUnknown()) } // equalField compares two fields. func equalField(fd pref.FieldDescriptor, x, y pref.Value) bool { switch { case fd.IsList(): return equalList(fd, x.List(), y.List()) case fd.IsMap(): return equalMap(fd, x.Map(), y.Map()) default: return equalValue(fd, x, y) } } // equalMap compares two maps. func equalMap(fd pref.FieldDescriptor, x, y pref.Map) bool { if x.Len() != y.Len() { return false } equal := true x.Range(func(k pref.MapKey, vx pref.Value) bool { vy := y.Get(k) equal = y.Has(k) && equalValue(fd.MapValue(), vx, vy) return equal }) return equal } // equalList compares two lists. func equalList(fd pref.FieldDescriptor, x, y pref.List) bool { if x.Len() != y.Len() { return false } for i := x.Len() - 1; i >= 0; i-- { if !equalValue(fd, x.Get(i), y.Get(i)) { return false } } return true } // equalValue compares two singular values. func equalValue(fd pref.FieldDescriptor, x, y pref.Value) bool { switch fd.Kind() { case pref.BoolKind: return x.Bool() == y.Bool() case pref.EnumKind: return x.Enum() == y.Enum() case pref.Int32Kind, pref.Sint32Kind, pref.Int64Kind, pref.Sint64Kind, pref.Sfixed32Kind, pref.Sfixed64Kind: return x.Int() == y.Int() case pref.Uint32Kind, pref.Uint64Kind, pref.Fixed32Kind, pref.Fixed64Kind: return x.Uint() == y.Uint() case pref.FloatKind, pref.DoubleKind: fx := x.Float() fy := y.Float() if math.IsNaN(fx) || math.IsNaN(fy) { return math.IsNaN(fx) && math.IsNaN(fy) } return fx == fy case pref.StringKind: return x.String() == y.String() case pref.BytesKind: return bytes.Equal(x.Bytes(), y.Bytes()) case pref.MessageKind, pref.GroupKind: return equalMessage(x.Message(), y.Message()) default: return x.Interface() == y.Interface() } } // equalUnknown compares unknown fields by direct comparison on the raw bytes // of each individual field number. func equalUnknown(x, y pref.RawFields) bool { if len(x) != len(y) { return false } if bytes.Equal([]byte(x), []byte(y)) { return true } mx := make(map[pref.FieldNumber]pref.RawFields) my := make(map[pref.FieldNumber]pref.RawFields) for len(x) > 0 { fnum, _, n := protowire.ConsumeField(x) mx[fnum] = append(mx[fnum], x[:n]...) x = x[n:] } for len(y) > 0 { fnum, _, n := protowire.ConsumeField(y) my[fnum] = append(my[fnum], y[:n]...) y = y[n:] } return reflect.DeepEqual(mx, my) } golang-google-protobuf-1.27.1/proto/equal_test.go000066400000000000000000000472051411250152500220250ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto_test import ( "math" "testing" "google.golang.org/protobuf/encoding/prototext" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/testing/protopack" testpb "google.golang.org/protobuf/internal/testprotos/test" test3pb "google.golang.org/protobuf/internal/testprotos/test3" ) func TestEqual(t *testing.T) { tests := []struct { x, y proto.Message eq bool }{ { x: nil, y: nil, eq: true, }, { x: (*testpb.TestAllTypes)(nil), y: nil, eq: false, }, { x: (*testpb.TestAllTypes)(nil), y: (*testpb.TestAllTypes)(nil), eq: true, }, { x: new(testpb.TestAllTypes), y: (*testpb.TestAllTypes)(nil), eq: false, }, { x: new(testpb.TestAllTypes), y: new(testpb.TestAllTypes), eq: true, }, { x: (*testpb.TestAllTypes)(nil), y: (*testpb.TestAllExtensions)(nil), eq: false, }, { x: (*testpb.TestAllTypes)(nil), y: new(testpb.TestAllExtensions), eq: false, }, { x: new(testpb.TestAllTypes), y: new(testpb.TestAllExtensions), eq: false, }, // Proto2 scalars. { x: &testpb.TestAllTypes{OptionalInt32: proto.Int32(1)}, y: &testpb.TestAllTypes{OptionalInt32: proto.Int32(2)}, }, { x: &testpb.TestAllTypes{OptionalInt64: proto.Int64(1)}, y: &testpb.TestAllTypes{OptionalInt64: proto.Int64(2)}, }, { x: &testpb.TestAllTypes{OptionalUint32: proto.Uint32(1)}, y: &testpb.TestAllTypes{OptionalUint32: proto.Uint32(2)}, }, { x: &testpb.TestAllTypes{OptionalUint64: proto.Uint64(1)}, y: &testpb.TestAllTypes{OptionalUint64: proto.Uint64(2)}, }, { x: &testpb.TestAllTypes{OptionalSint32: proto.Int32(1)}, y: &testpb.TestAllTypes{OptionalSint32: proto.Int32(2)}, }, { x: &testpb.TestAllTypes{OptionalSint64: proto.Int64(1)}, y: &testpb.TestAllTypes{OptionalSint64: proto.Int64(2)}, }, { x: &testpb.TestAllTypes{OptionalFixed32: proto.Uint32(1)}, y: &testpb.TestAllTypes{OptionalFixed32: proto.Uint32(2)}, }, { x: &testpb.TestAllTypes{OptionalFixed64: proto.Uint64(1)}, y: &testpb.TestAllTypes{OptionalFixed64: proto.Uint64(2)}, }, { x: &testpb.TestAllTypes{OptionalSfixed32: proto.Int32(1)}, y: &testpb.TestAllTypes{OptionalSfixed32: proto.Int32(2)}, }, { x: &testpb.TestAllTypes{OptionalSfixed64: proto.Int64(1)}, y: &testpb.TestAllTypes{OptionalSfixed64: proto.Int64(2)}, }, { x: &testpb.TestAllTypes{OptionalFloat: proto.Float32(1)}, y: &testpb.TestAllTypes{OptionalFloat: proto.Float32(2)}, }, { x: &testpb.TestAllTypes{OptionalDouble: proto.Float64(1)}, y: &testpb.TestAllTypes{OptionalDouble: proto.Float64(2)}, }, { x: &testpb.TestAllTypes{OptionalFloat: proto.Float32(float32(math.NaN()))}, y: &testpb.TestAllTypes{OptionalFloat: proto.Float32(0)}, }, { x: &testpb.TestAllTypes{OptionalDouble: proto.Float64(float64(math.NaN()))}, y: &testpb.TestAllTypes{OptionalDouble: proto.Float64(0)}, }, { x: &testpb.TestAllTypes{OptionalBool: proto.Bool(true)}, y: &testpb.TestAllTypes{OptionalBool: proto.Bool(false)}, }, { x: &testpb.TestAllTypes{OptionalString: proto.String("a")}, y: &testpb.TestAllTypes{OptionalString: proto.String("b")}, }, { x: &testpb.TestAllTypes{OptionalBytes: []byte("a")}, y: &testpb.TestAllTypes{OptionalBytes: []byte("b")}, }, { x: &testpb.TestAllTypes{OptionalNestedEnum: testpb.TestAllTypes_FOO.Enum()}, y: &testpb.TestAllTypes{OptionalNestedEnum: testpb.TestAllTypes_BAR.Enum()}, }, { x: &testpb.TestAllTypes{OptionalInt32: proto.Int32(2)}, y: &testpb.TestAllTypes{OptionalInt32: proto.Int32(2)}, eq: true, }, { x: &testpb.TestAllTypes{OptionalInt64: proto.Int64(2)}, y: &testpb.TestAllTypes{OptionalInt64: proto.Int64(2)}, eq: true, }, { x: &testpb.TestAllTypes{OptionalUint32: proto.Uint32(2)}, y: &testpb.TestAllTypes{OptionalUint32: proto.Uint32(2)}, eq: true, }, { x: &testpb.TestAllTypes{OptionalUint64: proto.Uint64(2)}, y: &testpb.TestAllTypes{OptionalUint64: proto.Uint64(2)}, eq: true, }, { x: &testpb.TestAllTypes{OptionalSint32: proto.Int32(2)}, y: &testpb.TestAllTypes{OptionalSint32: proto.Int32(2)}, eq: true, }, { x: &testpb.TestAllTypes{OptionalSint64: proto.Int64(2)}, y: &testpb.TestAllTypes{OptionalSint64: proto.Int64(2)}, eq: true, }, { x: &testpb.TestAllTypes{OptionalFixed32: proto.Uint32(2)}, y: &testpb.TestAllTypes{OptionalFixed32: proto.Uint32(2)}, eq: true, }, { x: &testpb.TestAllTypes{OptionalFixed64: proto.Uint64(2)}, y: &testpb.TestAllTypes{OptionalFixed64: proto.Uint64(2)}, eq: true, }, { x: &testpb.TestAllTypes{OptionalSfixed32: proto.Int32(2)}, y: &testpb.TestAllTypes{OptionalSfixed32: proto.Int32(2)}, eq: true, }, { x: &testpb.TestAllTypes{OptionalSfixed64: proto.Int64(2)}, y: &testpb.TestAllTypes{OptionalSfixed64: proto.Int64(2)}, eq: true, }, { x: &testpb.TestAllTypes{OptionalFloat: proto.Float32(2)}, y: &testpb.TestAllTypes{OptionalFloat: proto.Float32(2)}, eq: true, }, { x: &testpb.TestAllTypes{OptionalDouble: proto.Float64(2)}, y: &testpb.TestAllTypes{OptionalDouble: proto.Float64(2)}, eq: true, }, { x: &testpb.TestAllTypes{OptionalFloat: proto.Float32(float32(math.NaN()))}, y: &testpb.TestAllTypes{OptionalFloat: proto.Float32(float32(math.NaN()))}, eq: true, }, { x: &testpb.TestAllTypes{OptionalDouble: proto.Float64(float64(math.NaN()))}, y: &testpb.TestAllTypes{OptionalDouble: proto.Float64(float64(math.NaN()))}, eq: true, }, { x: &testpb.TestAllTypes{OptionalBool: proto.Bool(true)}, y: &testpb.TestAllTypes{OptionalBool: proto.Bool(true)}, eq: true, }, { x: &testpb.TestAllTypes{OptionalString: proto.String("abc")}, y: &testpb.TestAllTypes{OptionalString: proto.String("abc")}, eq: true, }, { x: &testpb.TestAllTypes{OptionalBytes: []byte("abc")}, y: &testpb.TestAllTypes{OptionalBytes: []byte("abc")}, eq: true, }, { x: &testpb.TestAllTypes{OptionalNestedEnum: testpb.TestAllTypes_FOO.Enum()}, y: &testpb.TestAllTypes{OptionalNestedEnum: testpb.TestAllTypes_FOO.Enum()}, eq: true, }, // Proto2 presence. { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{OptionalInt32: proto.Int32(0)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{OptionalInt64: proto.Int64(0)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{OptionalUint32: proto.Uint32(0)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{OptionalUint64: proto.Uint64(0)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{OptionalSint32: proto.Int32(0)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{OptionalSint64: proto.Int64(0)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{OptionalFixed32: proto.Uint32(0)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{OptionalFixed64: proto.Uint64(0)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{OptionalSfixed32: proto.Int32(0)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{OptionalSfixed64: proto.Int64(0)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{OptionalFloat: proto.Float32(0)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{OptionalDouble: proto.Float64(0)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{OptionalBool: proto.Bool(false)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{OptionalString: proto.String("")}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{OptionalBytes: []byte{}}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{OptionalNestedEnum: testpb.TestAllTypes_FOO.Enum()}, }, // Proto3 presence. { x: &test3pb.TestAllTypes{}, y: &test3pb.TestAllTypes{OptionalInt32: proto.Int32(0)}, }, { x: &test3pb.TestAllTypes{}, y: &test3pb.TestAllTypes{OptionalInt64: proto.Int64(0)}, }, { x: &test3pb.TestAllTypes{}, y: &test3pb.TestAllTypes{OptionalUint32: proto.Uint32(0)}, }, { x: &test3pb.TestAllTypes{}, y: &test3pb.TestAllTypes{OptionalUint64: proto.Uint64(0)}, }, { x: &test3pb.TestAllTypes{}, y: &test3pb.TestAllTypes{OptionalSint32: proto.Int32(0)}, }, { x: &test3pb.TestAllTypes{}, y: &test3pb.TestAllTypes{OptionalSint64: proto.Int64(0)}, }, { x: &test3pb.TestAllTypes{}, y: &test3pb.TestAllTypes{OptionalFixed32: proto.Uint32(0)}, }, { x: &test3pb.TestAllTypes{}, y: &test3pb.TestAllTypes{OptionalFixed64: proto.Uint64(0)}, }, { x: &test3pb.TestAllTypes{}, y: &test3pb.TestAllTypes{OptionalSfixed32: proto.Int32(0)}, }, { x: &test3pb.TestAllTypes{}, y: &test3pb.TestAllTypes{OptionalSfixed64: proto.Int64(0)}, }, { x: &test3pb.TestAllTypes{}, y: &test3pb.TestAllTypes{OptionalFloat: proto.Float32(0)}, }, { x: &test3pb.TestAllTypes{}, y: &test3pb.TestAllTypes{OptionalDouble: proto.Float64(0)}, }, { x: &test3pb.TestAllTypes{}, y: &test3pb.TestAllTypes{OptionalBool: proto.Bool(false)}, }, { x: &test3pb.TestAllTypes{}, y: &test3pb.TestAllTypes{OptionalString: proto.String("")}, }, { x: &test3pb.TestAllTypes{}, y: &test3pb.TestAllTypes{OptionalBytes: []byte{}}, }, { x: &test3pb.TestAllTypes{}, y: &test3pb.TestAllTypes{OptionalNestedEnum: test3pb.TestAllTypes_FOO.Enum()}, }, // Proto2 default values are not considered by Equal, so the following are still unequal. { x: &testpb.TestAllTypes{DefaultInt32: proto.Int32(81)}, y: &testpb.TestAllTypes{}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{DefaultInt32: proto.Int32(81)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{DefaultInt64: proto.Int64(82)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{DefaultUint32: proto.Uint32(83)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{DefaultUint64: proto.Uint64(84)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{DefaultSint32: proto.Int32(-85)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{DefaultSint64: proto.Int64(86)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{DefaultFixed32: proto.Uint32(87)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{DefaultFixed64: proto.Uint64(88)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{DefaultSfixed32: proto.Int32(89)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{DefaultSfixed64: proto.Int64(-90)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{DefaultFloat: proto.Float32(91.5)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{DefaultDouble: proto.Float64(92e3)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{DefaultBool: proto.Bool(true)}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{DefaultString: proto.String("hello")}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{DefaultBytes: []byte("world")}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{DefaultNestedEnum: testpb.TestAllTypes_BAR.Enum()}, }, // Groups. { x: &testpb.TestAllTypes{Optionalgroup: &testpb.TestAllTypes_OptionalGroup{ A: proto.Int32(1), }}, y: &testpb.TestAllTypes{Optionalgroup: &testpb.TestAllTypes_OptionalGroup{ A: proto.Int32(2), }}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{Optionalgroup: &testpb.TestAllTypes_OptionalGroup{}}, }, // Messages. { x: &testpb.TestAllTypes{OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{ A: proto.Int32(1), }}, y: &testpb.TestAllTypes{OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{ A: proto.Int32(2), }}, }, { x: &testpb.TestAllTypes{}, y: &testpb.TestAllTypes{OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{}}, }, { x: &test3pb.TestAllTypes{}, y: &test3pb.TestAllTypes{OptionalNestedMessage: &test3pb.TestAllTypes_NestedMessage{}}, }, // Lists. { x: &testpb.TestAllTypes{RepeatedInt32: []int32{1}}, y: &testpb.TestAllTypes{RepeatedInt32: []int32{1, 2}}, }, { x: &testpb.TestAllTypes{RepeatedInt32: []int32{1, 2}}, y: &testpb.TestAllTypes{RepeatedInt32: []int32{1, 3}}, }, { x: &testpb.TestAllTypes{RepeatedInt64: []int64{1, 2}}, y: &testpb.TestAllTypes{RepeatedInt64: []int64{1, 3}}, }, { x: &testpb.TestAllTypes{RepeatedUint32: []uint32{1, 2}}, y: &testpb.TestAllTypes{RepeatedUint32: []uint32{1, 3}}, }, { x: &testpb.TestAllTypes{RepeatedUint64: []uint64{1, 2}}, y: &testpb.TestAllTypes{RepeatedUint64: []uint64{1, 3}}, }, { x: &testpb.TestAllTypes{RepeatedSint32: []int32{1, 2}}, y: &testpb.TestAllTypes{RepeatedSint32: []int32{1, 3}}, }, { x: &testpb.TestAllTypes{RepeatedSint64: []int64{1, 2}}, y: &testpb.TestAllTypes{RepeatedSint64: []int64{1, 3}}, }, { x: &testpb.TestAllTypes{RepeatedFixed32: []uint32{1, 2}}, y: &testpb.TestAllTypes{RepeatedFixed32: []uint32{1, 3}}, }, { x: &testpb.TestAllTypes{RepeatedFixed64: []uint64{1, 2}}, y: &testpb.TestAllTypes{RepeatedFixed64: []uint64{1, 3}}, }, { x: &testpb.TestAllTypes{RepeatedSfixed32: []int32{1, 2}}, y: &testpb.TestAllTypes{RepeatedSfixed32: []int32{1, 3}}, }, { x: &testpb.TestAllTypes{RepeatedSfixed64: []int64{1, 2}}, y: &testpb.TestAllTypes{RepeatedSfixed64: []int64{1, 3}}, }, { x: &testpb.TestAllTypes{RepeatedFloat: []float32{1, 2}}, y: &testpb.TestAllTypes{RepeatedFloat: []float32{1, 3}}, }, { x: &testpb.TestAllTypes{RepeatedDouble: []float64{1, 2}}, y: &testpb.TestAllTypes{RepeatedDouble: []float64{1, 3}}, }, { x: &testpb.TestAllTypes{RepeatedBool: []bool{true, false}}, y: &testpb.TestAllTypes{RepeatedBool: []bool{true, true}}, }, { x: &testpb.TestAllTypes{RepeatedString: []string{"a", "b"}}, y: &testpb.TestAllTypes{RepeatedString: []string{"a", "c"}}, }, { x: &testpb.TestAllTypes{RepeatedBytes: [][]byte{[]byte("a"), []byte("b")}}, y: &testpb.TestAllTypes{RepeatedBytes: [][]byte{[]byte("a"), []byte("c")}}, }, { x: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_FOO}}, y: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_BAR}}, }, { x: &testpb.TestAllTypes{Repeatedgroup: []*testpb.TestAllTypes_RepeatedGroup{ {A: proto.Int32(1)}, {A: proto.Int32(2)}, }}, y: &testpb.TestAllTypes{Repeatedgroup: []*testpb.TestAllTypes_RepeatedGroup{ {A: proto.Int32(1)}, {A: proto.Int32(3)}, }}, }, { x: &testpb.TestAllTypes{RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{ {A: proto.Int32(1)}, {A: proto.Int32(2)}, }}, y: &testpb.TestAllTypes{RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{ {A: proto.Int32(1)}, {A: proto.Int32(3)}, }}, }, // Maps: various configurations. { x: &testpb.TestAllTypes{MapInt32Int32: map[int32]int32{1: 2}}, y: &testpb.TestAllTypes{MapInt32Int32: map[int32]int32{3: 4}}, }, { x: &testpb.TestAllTypes{MapInt32Int32: map[int32]int32{1: 2}}, y: &testpb.TestAllTypes{MapInt32Int32: map[int32]int32{1: 2, 3: 4}}, }, { x: &testpb.TestAllTypes{MapInt32Int32: map[int32]int32{1: 2, 3: 4}}, y: &testpb.TestAllTypes{MapInt32Int32: map[int32]int32{1: 2}}, }, // Maps: various types. { x: &testpb.TestAllTypes{MapInt32Int32: map[int32]int32{1: 2, 3: 4}}, y: &testpb.TestAllTypes{MapInt32Int32: map[int32]int32{1: 2, 3: 5}}, }, { x: &testpb.TestAllTypes{MapInt64Int64: map[int64]int64{1: 2, 3: 4}}, y: &testpb.TestAllTypes{MapInt64Int64: map[int64]int64{1: 2, 3: 5}}, }, { x: &testpb.TestAllTypes{MapUint32Uint32: map[uint32]uint32{1: 2, 3: 4}}, y: &testpb.TestAllTypes{MapUint32Uint32: map[uint32]uint32{1: 2, 3: 5}}, }, { x: &testpb.TestAllTypes{MapUint64Uint64: map[uint64]uint64{1: 2, 3: 4}}, y: &testpb.TestAllTypes{MapUint64Uint64: map[uint64]uint64{1: 2, 3: 5}}, }, { x: &testpb.TestAllTypes{MapSint32Sint32: map[int32]int32{1: 2, 3: 4}}, y: &testpb.TestAllTypes{MapSint32Sint32: map[int32]int32{1: 2, 3: 5}}, }, { x: &testpb.TestAllTypes{MapSint64Sint64: map[int64]int64{1: 2, 3: 4}}, y: &testpb.TestAllTypes{MapSint64Sint64: map[int64]int64{1: 2, 3: 5}}, }, { x: &testpb.TestAllTypes{MapFixed32Fixed32: map[uint32]uint32{1: 2, 3: 4}}, y: &testpb.TestAllTypes{MapFixed32Fixed32: map[uint32]uint32{1: 2, 3: 5}}, }, { x: &testpb.TestAllTypes{MapFixed64Fixed64: map[uint64]uint64{1: 2, 3: 4}}, y: &testpb.TestAllTypes{MapFixed64Fixed64: map[uint64]uint64{1: 2, 3: 5}}, }, { x: &testpb.TestAllTypes{MapSfixed32Sfixed32: map[int32]int32{1: 2, 3: 4}}, y: &testpb.TestAllTypes{MapSfixed32Sfixed32: map[int32]int32{1: 2, 3: 5}}, }, { x: &testpb.TestAllTypes{MapSfixed64Sfixed64: map[int64]int64{1: 2, 3: 4}}, y: &testpb.TestAllTypes{MapSfixed64Sfixed64: map[int64]int64{1: 2, 3: 5}}, }, { x: &testpb.TestAllTypes{MapInt32Float: map[int32]float32{1: 2, 3: 4}}, y: &testpb.TestAllTypes{MapInt32Float: map[int32]float32{1: 2, 3: 5}}, }, { x: &testpb.TestAllTypes{MapInt32Double: map[int32]float64{1: 2, 3: 4}}, y: &testpb.TestAllTypes{MapInt32Double: map[int32]float64{1: 2, 3: 5}}, }, { x: &testpb.TestAllTypes{MapBoolBool: map[bool]bool{true: false, false: true}}, y: &testpb.TestAllTypes{MapBoolBool: map[bool]bool{true: false, false: false}}, }, { x: &testpb.TestAllTypes{MapStringString: map[string]string{"a": "b", "c": "d"}}, y: &testpb.TestAllTypes{MapStringString: map[string]string{"a": "b", "c": "e"}}, }, { x: &testpb.TestAllTypes{MapStringBytes: map[string][]byte{"a": []byte("b"), "c": []byte("d")}}, y: &testpb.TestAllTypes{MapStringBytes: map[string][]byte{"a": []byte("b"), "c": []byte("e")}}, }, { x: &testpb.TestAllTypes{MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{ "a": {A: proto.Int32(1)}, "b": {A: proto.Int32(2)}, }}, y: &testpb.TestAllTypes{MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{ "a": {A: proto.Int32(1)}, "b": {A: proto.Int32(3)}, }}, }, { x: &testpb.TestAllTypes{MapStringNestedEnum: map[string]testpb.TestAllTypes_NestedEnum{ "a": testpb.TestAllTypes_FOO, "b": testpb.TestAllTypes_BAR, }}, y: &testpb.TestAllTypes{MapStringNestedEnum: map[string]testpb.TestAllTypes_NestedEnum{ "a": testpb.TestAllTypes_FOO, "b": testpb.TestAllTypes_BAZ, }}, }, // Extensions. { x: build(&testpb.TestAllExtensions{}, extend(testpb.E_OptionalInt32, int32(1)), ), y: build(&testpb.TestAllExtensions{}, extend(testpb.E_OptionalInt32, int32(2)), ), }, { x: &testpb.TestAllExtensions{}, y: build(&testpb.TestAllExtensions{}, extend(testpb.E_OptionalInt32, int32(2)), ), }, // Unknown fields. { x: build(&testpb.TestAllTypes{}, unknown(protopack.Message{ protopack.Tag{100000, protopack.VarintType}, protopack.Varint(1), }.Marshal())), y: build(&testpb.TestAllTypes{}, unknown(protopack.Message{ protopack.Tag{100000, protopack.VarintType}, protopack.Varint(2), }.Marshal())), }, { x: build(&testpb.TestAllTypes{}, unknown(protopack.Message{ protopack.Tag{100000, protopack.VarintType}, protopack.Varint(1), }.Marshal())), y: &testpb.TestAllTypes{}, }, } for _, tt := range tests { if !tt.eq && !proto.Equal(tt.x, tt.x) { t.Errorf("Equal(x, x) = false, want true\n==== x ====\n%v", prototext.Format(tt.x)) } if !tt.eq && !proto.Equal(tt.y, tt.y) { t.Errorf("Equal(y, y) = false, want true\n==== y ====\n%v", prototext.Format(tt.y)) } if eq := proto.Equal(tt.x, tt.y); eq != tt.eq { t.Errorf("Equal(x, y) = %v, want %v\n==== x ====\n%v==== y ====\n%v", eq, tt.eq, prototext.Format(tt.x), prototext.Format(tt.y)) } } } golang-google-protobuf-1.27.1/proto/extension.go000066400000000000000000000056351411250152500216740ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto import ( "google.golang.org/protobuf/reflect/protoreflect" ) // HasExtension reports whether an extension field is populated. // It returns false if m is invalid or if xt does not extend m. func HasExtension(m Message, xt protoreflect.ExtensionType) bool { // Treat nil message interface as an empty message; no populated fields. if m == nil { return false } // As a special-case, we reports invalid or mismatching descriptors // as always not being populated (since they aren't). if xt == nil || m.ProtoReflect().Descriptor() != xt.TypeDescriptor().ContainingMessage() { return false } return m.ProtoReflect().Has(xt.TypeDescriptor()) } // ClearExtension clears an extension field such that subsequent // HasExtension calls return false. // It panics if m is invalid or if xt does not extend m. func ClearExtension(m Message, xt protoreflect.ExtensionType) { m.ProtoReflect().Clear(xt.TypeDescriptor()) } // GetExtension retrieves the value for an extension field. // If the field is unpopulated, it returns the default value for // scalars and an immutable, empty value for lists or messages. // It panics if xt does not extend m. func GetExtension(m Message, xt protoreflect.ExtensionType) interface{} { // Treat nil message interface as an empty message; return the default. if m == nil { return xt.InterfaceOf(xt.Zero()) } return xt.InterfaceOf(m.ProtoReflect().Get(xt.TypeDescriptor())) } // SetExtension stores the value of an extension field. // It panics if m is invalid, xt does not extend m, or if type of v // is invalid for the specified extension field. func SetExtension(m Message, xt protoreflect.ExtensionType, v interface{}) { xd := xt.TypeDescriptor() pv := xt.ValueOf(v) // Specially treat an invalid list, map, or message as clear. isValid := true switch { case xd.IsList(): isValid = pv.List().IsValid() case xd.IsMap(): isValid = pv.Map().IsValid() case xd.Message() != nil: isValid = pv.Message().IsValid() } if !isValid { m.ProtoReflect().Clear(xd) return } m.ProtoReflect().Set(xd, pv) } // RangeExtensions iterates over every populated extension field in m in an // undefined order, calling f for each extension type and value encountered. // It returns immediately if f returns false. // While iterating, mutating operations may only be performed // on the current extension field. func RangeExtensions(m Message, f func(protoreflect.ExtensionType, interface{}) bool) { // Treat nil message interface as an empty message; nothing to range over. if m == nil { return } m.ProtoReflect().Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { if fd.IsExtension() { xt := fd.(protoreflect.ExtensionTypeDescriptor).Type() vi := xt.InterfaceOf(v) return f(xt, vi) } return true }) } golang-google-protobuf-1.27.1/proto/extension_test.go000066400000000000000000000251301411250152500227230ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto_test import ( "fmt" "reflect" "sync" "testing" "github.com/google/go-cmp/cmp" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" pref "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/runtime/protoimpl" "google.golang.org/protobuf/testing/protocmp" legacy1pb "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20160225_2fc053c5" testpb "google.golang.org/protobuf/internal/testprotos/test" test3pb "google.golang.org/protobuf/internal/testprotos/test3" descpb "google.golang.org/protobuf/types/descriptorpb" ) func TestExtensionFuncs(t *testing.T) { for _, test := range []struct { message proto.Message ext pref.ExtensionType wantDefault interface{} value interface{} }{ { message: &testpb.TestAllExtensions{}, ext: testpb.E_OptionalInt32, wantDefault: int32(0), value: int32(1), }, { message: &testpb.TestAllExtensions{}, ext: testpb.E_RepeatedString, wantDefault: ([]string)(nil), value: []string{"a", "b", "c"}, }, { message: protoimpl.X.MessageOf(&legacy1pb.Message{}).Interface(), ext: legacy1pb.E_Message_ExtensionOptionalBool, wantDefault: false, value: true, }, } { desc := fmt.Sprintf("Extension %v, value %v", test.ext.TypeDescriptor().FullName(), test.value) if proto.HasExtension(test.message, test.ext) { t.Errorf("%v:\nbefore setting extension HasExtension(...) = true, want false", desc) } got := proto.GetExtension(test.message, test.ext) if d := cmp.Diff(test.wantDefault, got); d != "" { t.Errorf("%v:\nbefore setting extension GetExtension(...) returns unexpected value (-want,+got):\n%v", desc, d) } proto.SetExtension(test.message, test.ext, test.value) if !proto.HasExtension(test.message, test.ext) { t.Errorf("%v:\nafter setting extension HasExtension(...) = false, want true", desc) } got = proto.GetExtension(test.message, test.ext) if d := cmp.Diff(test.value, got); d != "" { t.Errorf("%v:\nafter setting extension GetExtension(...) returns unexpected value (-want,+got):\n%v", desc, d) } proto.ClearExtension(test.message, test.ext) if proto.HasExtension(test.message, test.ext) { t.Errorf("%v:\nafter clearing extension HasExtension(...) = true, want false", desc) } } } func TestIsValid(t *testing.T) { tests := []struct { xt protoreflect.ExtensionType vi interface{} want bool }{ {testpb.E_OptionalBool, nil, false}, {testpb.E_OptionalBool, bool(true), true}, {testpb.E_OptionalBool, new(bool), false}, {testpb.E_OptionalInt32, nil, false}, {testpb.E_OptionalInt32, int32(0), true}, {testpb.E_OptionalInt32, new(int32), false}, {testpb.E_OptionalInt64, nil, false}, {testpb.E_OptionalInt64, int64(0), true}, {testpb.E_OptionalInt64, new(int64), false}, {testpb.E_OptionalUint32, nil, false}, {testpb.E_OptionalUint32, uint32(0), true}, {testpb.E_OptionalUint32, new(uint32), false}, {testpb.E_OptionalUint64, nil, false}, {testpb.E_OptionalUint64, uint64(0), true}, {testpb.E_OptionalUint64, new(uint64), false}, {testpb.E_OptionalFloat, nil, false}, {testpb.E_OptionalFloat, float32(0), true}, {testpb.E_OptionalFloat, new(float32), false}, {testpb.E_OptionalDouble, nil, false}, {testpb.E_OptionalDouble, float64(0), true}, {testpb.E_OptionalDouble, new(float32), false}, {testpb.E_OptionalString, nil, false}, {testpb.E_OptionalString, string(""), true}, {testpb.E_OptionalString, new(string), false}, {testpb.E_OptionalNestedEnum, nil, false}, {testpb.E_OptionalNestedEnum, testpb.TestAllTypes_BAZ, true}, {testpb.E_OptionalNestedEnum, testpb.TestAllTypes_BAZ.Enum(), false}, {testpb.E_OptionalNestedMessage, nil, false}, {testpb.E_OptionalNestedMessage, (*testpb.TestAllExtensions_NestedMessage)(nil), true}, {testpb.E_OptionalNestedMessage, new(testpb.TestAllExtensions_NestedMessage), true}, {testpb.E_OptionalNestedMessage, new(testpb.TestAllExtensions), false}, {testpb.E_RepeatedBool, nil, false}, {testpb.E_RepeatedBool, []bool(nil), true}, {testpb.E_RepeatedBool, []bool{}, true}, {testpb.E_RepeatedBool, []bool{false}, true}, {testpb.E_RepeatedBool, []*bool{}, false}, {testpb.E_RepeatedInt32, nil, false}, {testpb.E_RepeatedInt32, []int32(nil), true}, {testpb.E_RepeatedInt32, []int32{}, true}, {testpb.E_RepeatedInt32, []int32{0}, true}, {testpb.E_RepeatedInt32, []*int32{}, false}, {testpb.E_RepeatedInt64, nil, false}, {testpb.E_RepeatedInt64, []int64(nil), true}, {testpb.E_RepeatedInt64, []int64{}, true}, {testpb.E_RepeatedInt64, []int64{0}, true}, {testpb.E_RepeatedInt64, []*int64{}, false}, {testpb.E_RepeatedUint32, nil, false}, {testpb.E_RepeatedUint32, []uint32(nil), true}, {testpb.E_RepeatedUint32, []uint32{}, true}, {testpb.E_RepeatedUint32, []uint32{0}, true}, {testpb.E_RepeatedUint32, []*uint32{}, false}, {testpb.E_RepeatedUint64, nil, false}, {testpb.E_RepeatedUint64, []uint64(nil), true}, {testpb.E_RepeatedUint64, []uint64{}, true}, {testpb.E_RepeatedUint64, []uint64{0}, true}, {testpb.E_RepeatedUint64, []*uint64{}, false}, {testpb.E_RepeatedFloat, nil, false}, {testpb.E_RepeatedFloat, []float32(nil), true}, {testpb.E_RepeatedFloat, []float32{}, true}, {testpb.E_RepeatedFloat, []float32{0}, true}, {testpb.E_RepeatedFloat, []*float32{}, false}, {testpb.E_RepeatedDouble, nil, false}, {testpb.E_RepeatedDouble, []float64(nil), true}, {testpb.E_RepeatedDouble, []float64{}, true}, {testpb.E_RepeatedDouble, []float64{0}, true}, {testpb.E_RepeatedDouble, []*float64{}, false}, {testpb.E_RepeatedString, nil, false}, {testpb.E_RepeatedString, []string(nil), true}, {testpb.E_RepeatedString, []string{}, true}, {testpb.E_RepeatedString, []string{""}, true}, {testpb.E_RepeatedString, []*string{}, false}, {testpb.E_RepeatedNestedEnum, nil, false}, {testpb.E_RepeatedNestedEnum, []testpb.TestAllTypes_NestedEnum(nil), true}, {testpb.E_RepeatedNestedEnum, []testpb.TestAllTypes_NestedEnum{}, true}, {testpb.E_RepeatedNestedEnum, []testpb.TestAllTypes_NestedEnum{0}, true}, {testpb.E_RepeatedNestedEnum, []*testpb.TestAllTypes_NestedEnum{}, false}, {testpb.E_RepeatedNestedMessage, nil, false}, {testpb.E_RepeatedNestedMessage, []*testpb.TestAllExtensions_NestedMessage(nil), true}, {testpb.E_RepeatedNestedMessage, []*testpb.TestAllExtensions_NestedMessage{}, true}, {testpb.E_RepeatedNestedMessage, []*testpb.TestAllExtensions_NestedMessage{{}}, true}, {testpb.E_RepeatedNestedMessage, []*testpb.TestAllExtensions{}, false}, } for _, tt := range tests { // Check the results of IsValidInterface. got := tt.xt.IsValidInterface(tt.vi) if got != tt.want { t.Errorf("%v.IsValidInterface() = %v, want %v", tt.xt.TypeDescriptor().FullName(), got, tt.want) } if !got { continue } // Set the extension value and verify the results of Has. wantHas := true pv := tt.xt.ValueOf(tt.vi) switch v := pv.Interface().(type) { case protoreflect.List: wantHas = v.Len() > 0 case protoreflect.Message: wantHas = v.IsValid() } m := &testpb.TestAllExtensions{} proto.SetExtension(m, tt.xt, tt.vi) gotHas := proto.HasExtension(m, tt.xt) if gotHas != wantHas { t.Errorf("HasExtension(%q) = %v, want %v", tt.xt.TypeDescriptor().FullName(), gotHas, wantHas) } // Check consistency of IsValidInterface and IsValidValue. got = tt.xt.IsValidValue(pv) if got != tt.want { t.Errorf("%v.IsValidValue() = %v, want %v", tt.xt.TypeDescriptor().FullName(), got, tt.want) } if !got { continue } // Use of reflect.DeepEqual is intentional. // We really do want to ensure that the memory layout is identical. vi := tt.xt.InterfaceOf(pv) if !reflect.DeepEqual(vi, tt.vi) { t.Errorf("InterfaceOf(ValueOf(...)) round-trip mismatch: got %v, want %v", vi, tt.vi) } } } func TestExtensionRanger(t *testing.T) { tests := []struct { msg proto.Message want map[pref.ExtensionType]interface{} }{{ msg: &testpb.TestAllExtensions{}, want: map[pref.ExtensionType]interface{}{ testpb.E_OptionalInt32: int32(5), testpb.E_OptionalString: string("hello"), testpb.E_OptionalNestedMessage: &testpb.TestAllExtensions_NestedMessage{}, testpb.E_OptionalNestedEnum: testpb.TestAllTypes_BAZ, testpb.E_RepeatedFloat: []float32{+32.32, -32.32}, testpb.E_RepeatedNestedMessage: []*testpb.TestAllExtensions_NestedMessage{{}}, testpb.E_RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_BAZ}, }, }, { msg: &descpb.MessageOptions{}, want: map[pref.ExtensionType]interface{}{ test3pb.E_OptionalInt32: int32(5), test3pb.E_OptionalString: string("hello"), test3pb.E_OptionalForeignMessage: &test3pb.ForeignMessage{}, test3pb.E_OptionalForeignEnum: test3pb.ForeignEnum_FOREIGN_BAR, test3pb.E_OptionalOptionalInt32: int32(5), test3pb.E_OptionalOptionalString: string("hello"), test3pb.E_OptionalOptionalForeignMessage: &test3pb.ForeignMessage{}, test3pb.E_OptionalOptionalForeignEnum: test3pb.ForeignEnum_FOREIGN_BAR, }, }} for _, tt := range tests { for xt, v := range tt.want { proto.SetExtension(tt.msg, xt, v) } got := make(map[pref.ExtensionType]interface{}) proto.RangeExtensions(tt.msg, func(xt pref.ExtensionType, v interface{}) bool { got[xt] = v return true }) if diff := cmp.Diff(tt.want, got, protocmp.Transform()); diff != "" { t.Errorf("proto.RangeExtensions mismatch (-want +got):\n%s", diff) } } } func TestExtensionGetRace(t *testing.T) { // Concurrently fetch an extension value while marshaling the message containing it. // Create the message with proto.Unmarshal to give lazy extension decoding (if present) // a chance to occur. want := int32(42) m1 := &testpb.TestAllExtensions{} proto.SetExtension(m1, testpb.E_OptionalNestedMessage, &testpb.TestAllExtensions_NestedMessage{A: proto.Int32(want)}) b, err := proto.Marshal(m1) if err != nil { t.Fatal(err) } m := &testpb.TestAllExtensions{} if err := proto.Unmarshal(b, m); err != nil { t.Fatal(err) } var wg sync.WaitGroup for i := 0; i < 3; i++ { wg.Add(1) go func() { defer wg.Done() if _, err := proto.Marshal(m); err != nil { t.Error(err) } }() wg.Add(1) go func() { defer wg.Done() got := proto.GetExtension(m, testpb.E_OptionalNestedMessage).(*testpb.TestAllExtensions_NestedMessage).GetA() if got != want { t.Errorf("GetExtension(optional_nested_message).a = %v, want %v", got, want) } }() } wg.Wait() } golang-google-protobuf-1.27.1/proto/merge.go000066400000000000000000000106051411250152500207500ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto import ( "fmt" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/runtime/protoiface" ) // Merge merges src into dst, which must be a message with the same descriptor. // // Populated scalar fields in src are copied to dst, while populated // singular messages in src are merged into dst by recursively calling Merge. // The elements of every list field in src is appended to the corresponded // list fields in dst. The entries of every map field in src is copied into // the corresponding map field in dst, possibly replacing existing entries. // The unknown fields of src are appended to the unknown fields of dst. // // It is semantically equivalent to unmarshaling the encoded form of src // into dst with the UnmarshalOptions.Merge option specified. func Merge(dst, src Message) { // TODO: Should nil src be treated as semantically equivalent to a // untyped, read-only, empty message? What about a nil dst? dstMsg, srcMsg := dst.ProtoReflect(), src.ProtoReflect() if dstMsg.Descriptor() != srcMsg.Descriptor() { if got, want := dstMsg.Descriptor().FullName(), srcMsg.Descriptor().FullName(); got != want { panic(fmt.Sprintf("descriptor mismatch: %v != %v", got, want)) } panic("descriptor mismatch") } mergeOptions{}.mergeMessage(dstMsg, srcMsg) } // Clone returns a deep copy of m. // If the top-level message is invalid, it returns an invalid message as well. func Clone(m Message) Message { // NOTE: Most usages of Clone assume the following properties: // t := reflect.TypeOf(m) // t == reflect.TypeOf(m.ProtoReflect().New().Interface()) // t == reflect.TypeOf(m.ProtoReflect().Type().Zero().Interface()) // // Embedding protobuf messages breaks this since the parent type will have // a forwarded ProtoReflect method, but the Interface method will return // the underlying embedded message type. if m == nil { return nil } src := m.ProtoReflect() if !src.IsValid() { return src.Type().Zero().Interface() } dst := src.New() mergeOptions{}.mergeMessage(dst, src) return dst.Interface() } // mergeOptions provides a namespace for merge functions, and can be // exported in the future if we add user-visible merge options. type mergeOptions struct{} func (o mergeOptions) mergeMessage(dst, src protoreflect.Message) { methods := protoMethods(dst) if methods != nil && methods.Merge != nil { in := protoiface.MergeInput{ Destination: dst, Source: src, } out := methods.Merge(in) if out.Flags&protoiface.MergeComplete != 0 { return } } if !dst.IsValid() { panic(fmt.Sprintf("cannot merge into invalid %v message", dst.Descriptor().FullName())) } src.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { switch { case fd.IsList(): o.mergeList(dst.Mutable(fd).List(), v.List(), fd) case fd.IsMap(): o.mergeMap(dst.Mutable(fd).Map(), v.Map(), fd.MapValue()) case fd.Message() != nil: o.mergeMessage(dst.Mutable(fd).Message(), v.Message()) case fd.Kind() == protoreflect.BytesKind: dst.Set(fd, o.cloneBytes(v)) default: dst.Set(fd, v) } return true }) if len(src.GetUnknown()) > 0 { dst.SetUnknown(append(dst.GetUnknown(), src.GetUnknown()...)) } } func (o mergeOptions) mergeList(dst, src protoreflect.List, fd protoreflect.FieldDescriptor) { // Merge semantics appends to the end of the existing list. for i, n := 0, src.Len(); i < n; i++ { switch v := src.Get(i); { case fd.Message() != nil: dstv := dst.NewElement() o.mergeMessage(dstv.Message(), v.Message()) dst.Append(dstv) case fd.Kind() == protoreflect.BytesKind: dst.Append(o.cloneBytes(v)) default: dst.Append(v) } } } func (o mergeOptions) mergeMap(dst, src protoreflect.Map, fd protoreflect.FieldDescriptor) { // Merge semantics replaces, rather than merges into existing entries. src.Range(func(k protoreflect.MapKey, v protoreflect.Value) bool { switch { case fd.Message() != nil: dstv := dst.NewValue() o.mergeMessage(dstv.Message(), v.Message()) dst.Set(k, dstv) case fd.Kind() == protoreflect.BytesKind: dst.Set(k, o.cloneBytes(v)) default: dst.Set(k, v) } return true }) } func (o mergeOptions) cloneBytes(v protoreflect.Value) protoreflect.Value { return protoreflect.ValueOfBytes(append([]byte{}, v.Bytes()...)) } golang-google-protobuf-1.27.1/proto/merge_test.go000066400000000000000000000734211411250152500220140ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto_test import ( "fmt" "reflect" "sync" "testing" "github.com/google/go-cmp/cmp" "google.golang.org/protobuf/encoding/prototext" "google.golang.org/protobuf/internal/protobuild" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/testing/protocmp" "google.golang.org/protobuf/testing/protopack" "google.golang.org/protobuf/types/dynamicpb" legacypb "google.golang.org/protobuf/internal/testprotos/legacy" testpb "google.golang.org/protobuf/internal/testprotos/test" test3pb "google.golang.org/protobuf/internal/testprotos/test3" ) type testMerge struct { desc string dst protobuild.Message src protobuild.Message want protobuild.Message // if dst and want are nil, want = src types []proto.Message } var testMerges = []testMerge{{ desc: "clone a large message", src: protobuild.Message{ "optional_int32": 1001, "optional_int64": 1002, "optional_uint32": 1003, "optional_uint64": 1004, "optional_sint32": 1005, "optional_sint64": 1006, "optional_fixed32": 1007, "optional_fixed64": 1008, "optional_sfixed32": 1009, "optional_sfixed64": 1010, "optional_float": 1011.5, "optional_double": 1012.5, "optional_bool": true, "optional_string": "string", "optional_bytes": []byte("bytes"), "optional_nested_enum": 1, "optional_nested_message": protobuild.Message{ "a": 100, }, "repeated_int32": []int32{1001, 2001}, "repeated_int64": []int64{1002, 2002}, "repeated_uint32": []uint32{1003, 2003}, "repeated_uint64": []uint64{1004, 2004}, "repeated_sint32": []int32{1005, 2005}, "repeated_sint64": []int64{1006, 2006}, "repeated_fixed32": []uint32{1007, 2007}, "repeated_fixed64": []uint64{1008, 2008}, "repeated_sfixed32": []int32{1009, 2009}, "repeated_sfixed64": []int64{1010, 2010}, "repeated_float": []float32{1011.5, 2011.5}, "repeated_double": []float64{1012.5, 2012.5}, "repeated_bool": []bool{true, false}, "repeated_string": []string{"foo", "bar"}, "repeated_bytes": []string{"FOO", "BAR"}, "repeated_nested_enum": []string{"FOO", "BAR"}, "repeated_nested_message": []protobuild.Message{ {"a": 200}, {"a": 300}, }, }, }, { desc: "clone maps", src: protobuild.Message{ "map_int32_int32": map[int32]int32{1056: 1156, 2056: 2156}, "map_int64_int64": map[int64]int64{1057: 1157, 2057: 2157}, "map_uint32_uint32": map[uint32]uint32{1058: 1158, 2058: 2158}, "map_uint64_uint64": map[uint64]uint64{1059: 1159, 2059: 2159}, "map_sint32_sint32": map[int32]int32{1060: 1160, 2060: 2160}, "map_sint64_sint64": map[int64]int64{1061: 1161, 2061: 2161}, "map_fixed32_fixed32": map[uint32]uint32{1062: 1162, 2062: 2162}, "map_fixed64_fixed64": map[uint64]uint64{1063: 1163, 2063: 2163}, "map_sfixed32_sfixed32": map[int32]int32{1064: 1164, 2064: 2164}, "map_sfixed64_sfixed64": map[int64]int64{1065: 1165, 2065: 2165}, "map_int32_float": map[int32]float32{1066: 1166.5, 2066: 2166.5}, "map_int32_double": map[int32]float64{1067: 1167.5, 2067: 2167.5}, "map_bool_bool": map[bool]bool{true: false, false: true}, "map_string_string": map[string]string{"69.1.key": "69.1.val", "69.2.key": "69.2.val"}, "map_string_bytes": map[string][]byte{"70.1.key": []byte("70.1.val"), "70.2.key": []byte("70.2.val")}, "map_string_nested_message": map[string]protobuild.Message{ "71.1.key": {"a": 1171}, "71.2.key": {"a": 2171}, }, "map_string_nested_enum": map[string]string{"73.1.key": "FOO", "73.2.key": "BAR"}, }, types: []proto.Message{&testpb.TestAllTypes{}, &test3pb.TestAllTypes{}}, }, { desc: "clone oneof uint32", src: protobuild.Message{ "oneof_uint32": 1111, }, types: []proto.Message{&testpb.TestAllTypes{}, &test3pb.TestAllTypes{}}, }, { desc: "clone oneof string", src: protobuild.Message{ "oneof_string": "string", }, types: []proto.Message{&testpb.TestAllTypes{}, &test3pb.TestAllTypes{}}, }, { desc: "clone oneof bytes", src: protobuild.Message{ "oneof_bytes": "bytes", }, types: []proto.Message{&testpb.TestAllTypes{}, &test3pb.TestAllTypes{}}, }, { desc: "clone oneof bool", src: protobuild.Message{ "oneof_bool": true, }, types: []proto.Message{&testpb.TestAllTypes{}, &test3pb.TestAllTypes{}}, }, { desc: "clone oneof uint64", src: protobuild.Message{ "oneof_uint64": 100, }, types: []proto.Message{&testpb.TestAllTypes{}, &test3pb.TestAllTypes{}}, }, { desc: "clone oneof float", src: protobuild.Message{ "oneof_float": 100, }, types: []proto.Message{&testpb.TestAllTypes{}, &test3pb.TestAllTypes{}}, }, { desc: "clone oneof double", src: protobuild.Message{ "oneof_double": 1111, }, types: []proto.Message{&testpb.TestAllTypes{}, &test3pb.TestAllTypes{}}, }, { desc: "clone oneof enum", src: protobuild.Message{ "oneof_enum": 1, }, types: []proto.Message{&testpb.TestAllTypes{}, &test3pb.TestAllTypes{}}, }, { desc: "clone oneof message", src: protobuild.Message{ "oneof_nested_message": protobuild.Message{ "a": 1, }, }, types: []proto.Message{&testpb.TestAllTypes{}, &test3pb.TestAllTypes{}}, }, { desc: "clone oneof group", src: protobuild.Message{ "oneofgroup": protobuild.Message{ "a": 1, }, }, types: []proto.Message{&testpb.TestAllTypes{}}, }, { desc: "merge bytes", dst: protobuild.Message{ "optional_bytes": []byte{1, 2, 3}, "repeated_bytes": [][]byte{{1, 2}, {3, 4}}, "map_string_bytes": map[string][]byte{"alpha": {1, 2, 3}}, }, src: protobuild.Message{ "optional_bytes": []byte{4, 5, 6}, "repeated_bytes": [][]byte{{5, 6}, {7, 8}}, "map_string_bytes": map[string][]byte{"alpha": {4, 5, 6}, "bravo": {1, 2, 3}}, }, want: protobuild.Message{ "optional_bytes": []byte{4, 5, 6}, "repeated_bytes": [][]byte{{1, 2}, {3, 4}, {5, 6}, {7, 8}}, "map_string_bytes": map[string][]byte{"alpha": {4, 5, 6}, "bravo": {1, 2, 3}}, }, types: []proto.Message{&testpb.TestAllTypes{}, &test3pb.TestAllTypes{}}, }, { desc: "merge singular fields", dst: protobuild.Message{ "optional_int32": 1, "optional_int64": 1, "optional_uint32": 1, "optional_uint64": 1, "optional_sint32": 1, "optional_sint64": 1, "optional_fixed32": 1, "optional_fixed64": 1, "optional_sfixed32": 1, "optional_sfixed64": 1, "optional_float": 1, "optional_double": 1, "optional_bool": false, "optional_string": "1", "optional_bytes": "1", "optional_nested_enum": 1, "optional_nested_message": protobuild.Message{ "a": 1, "corecursive": protobuild.Message{ "optional_int64": 1, }, }, }, src: protobuild.Message{ "optional_int32": 2, "optional_int64": 2, "optional_uint32": 2, "optional_uint64": 2, "optional_sint32": 2, "optional_sint64": 2, "optional_fixed32": 2, "optional_fixed64": 2, "optional_sfixed32": 2, "optional_sfixed64": 2, "optional_float": 2, "optional_double": 2, "optional_bool": true, "optional_string": "2", "optional_bytes": "2", "optional_nested_enum": 2, "optional_nested_message": protobuild.Message{ "a": 2, "corecursive": protobuild.Message{ "optional_int64": 2, }, }, }, want: protobuild.Message{ "optional_int32": 2, "optional_int64": 2, "optional_uint32": 2, "optional_uint64": 2, "optional_sint32": 2, "optional_sint64": 2, "optional_fixed32": 2, "optional_fixed64": 2, "optional_sfixed32": 2, "optional_sfixed64": 2, "optional_float": 2, "optional_double": 2, "optional_bool": true, "optional_string": "2", "optional_bytes": "2", "optional_nested_enum": 2, "optional_nested_message": protobuild.Message{ "a": 2, "corecursive": protobuild.Message{ "optional_int64": 2, }, }, }, }, { desc: "no merge of empty singular fields", dst: protobuild.Message{ "optional_int32": 1, "optional_int64": 1, "optional_uint32": 1, "optional_uint64": 1, "optional_sint32": 1, "optional_sint64": 1, "optional_fixed32": 1, "optional_fixed64": 1, "optional_sfixed32": 1, "optional_sfixed64": 1, "optional_float": 1, "optional_double": 1, "optional_bool": false, "optional_string": "1", "optional_bytes": "1", "optional_nested_enum": 1, "optional_nested_message": protobuild.Message{ "a": 1, "corecursive": protobuild.Message{ "optional_int64": 1, }, }, }, src: protobuild.Message{ "optional_nested_message": protobuild.Message{ "a": 1, "corecursive": protobuild.Message{ "optional_int32": 2, }, }, }, want: protobuild.Message{ "optional_int32": 1, "optional_int64": 1, "optional_uint32": 1, "optional_uint64": 1, "optional_sint32": 1, "optional_sint64": 1, "optional_fixed32": 1, "optional_fixed64": 1, "optional_sfixed32": 1, "optional_sfixed64": 1, "optional_float": 1, "optional_double": 1, "optional_bool": false, "optional_string": "1", "optional_bytes": "1", "optional_nested_enum": 1, "optional_nested_message": protobuild.Message{ "a": 1, "corecursive": protobuild.Message{ "optional_int32": 2, "optional_int64": 1, }, }, }, }, { desc: "merge list fields", dst: protobuild.Message{ "repeated_int32": []int32{1, 2, 3}, "repeated_int64": []int64{1, 2, 3}, "repeated_uint32": []uint32{1, 2, 3}, "repeated_uint64": []uint64{1, 2, 3}, "repeated_sint32": []int32{1, 2, 3}, "repeated_sint64": []int64{1, 2, 3}, "repeated_fixed32": []uint32{1, 2, 3}, "repeated_fixed64": []uint64{1, 2, 3}, "repeated_sfixed32": []int32{1, 2, 3}, "repeated_sfixed64": []int64{1, 2, 3}, "repeated_float": []float32{1, 2, 3}, "repeated_double": []float64{1, 2, 3}, "repeated_bool": []bool{true}, "repeated_string": []string{"a", "b", "c"}, "repeated_bytes": []string{"a", "b", "c"}, "repeated_nested_enum": []int{1, 2, 3}, "repeated_nested_message": []protobuild.Message{ {"a": 100}, {"a": 200}, }, }, src: protobuild.Message{ "repeated_int32": []int32{4, 5, 6}, "repeated_int64": []int64{4, 5, 6}, "repeated_uint32": []uint32{4, 5, 6}, "repeated_uint64": []uint64{4, 5, 6}, "repeated_sint32": []int32{4, 5, 6}, "repeated_sint64": []int64{4, 5, 6}, "repeated_fixed32": []uint32{4, 5, 6}, "repeated_fixed64": []uint64{4, 5, 6}, "repeated_sfixed32": []int32{4, 5, 6}, "repeated_sfixed64": []int64{4, 5, 6}, "repeated_float": []float32{4, 5, 6}, "repeated_double": []float64{4, 5, 6}, "repeated_bool": []bool{false}, "repeated_string": []string{"d", "e", "f"}, "repeated_bytes": []string{"d", "e", "f"}, "repeated_nested_enum": []int{4, 5, 6}, "repeated_nested_message": []protobuild.Message{ {"a": 300}, {"a": 400}, }, }, want: protobuild.Message{ "repeated_int32": []int32{1, 2, 3, 4, 5, 6}, "repeated_int64": []int64{1, 2, 3, 4, 5, 6}, "repeated_uint32": []uint32{1, 2, 3, 4, 5, 6}, "repeated_uint64": []uint64{1, 2, 3, 4, 5, 6}, "repeated_sint32": []int32{1, 2, 3, 4, 5, 6}, "repeated_sint64": []int64{1, 2, 3, 4, 5, 6}, "repeated_fixed32": []uint32{1, 2, 3, 4, 5, 6}, "repeated_fixed64": []uint64{1, 2, 3, 4, 5, 6}, "repeated_sfixed32": []int32{1, 2, 3, 4, 5, 6}, "repeated_sfixed64": []int64{1, 2, 3, 4, 5, 6}, "repeated_float": []float32{1, 2, 3, 4, 5, 6}, "repeated_double": []float64{1, 2, 3, 4, 5, 6}, "repeated_bool": []bool{true, false}, "repeated_string": []string{"a", "b", "c", "d", "e", "f"}, "repeated_bytes": []string{"a", "b", "c", "d", "e", "f"}, "repeated_nested_enum": []int{1, 2, 3, 4, 5, 6}, "repeated_nested_message": []protobuild.Message{ {"a": 100}, {"a": 200}, {"a": 300}, {"a": 400}, }, }, }, { desc: "merge map fields", dst: protobuild.Message{ "map_int32_int32": map[int]int{1: 1, 3: 1}, "map_int64_int64": map[int]int{1: 1, 3: 1}, "map_uint32_uint32": map[int]int{1: 1, 3: 1}, "map_uint64_uint64": map[int]int{1: 1, 3: 1}, "map_sint32_sint32": map[int]int{1: 1, 3: 1}, "map_sint64_sint64": map[int]int{1: 1, 3: 1}, "map_fixed32_fixed32": map[int]int{1: 1, 3: 1}, "map_fixed64_fixed64": map[int]int{1: 1, 3: 1}, "map_sfixed32_sfixed32": map[int]int{1: 1, 3: 1}, "map_sfixed64_sfixed64": map[int]int{1: 1, 3: 1}, "map_int32_float": map[int]int{1: 1, 3: 1}, "map_int32_double": map[int]int{1: 1, 3: 1}, "map_bool_bool": map[bool]bool{true: true}, "map_string_string": map[string]string{"a": "1", "ab": "1"}, "map_string_bytes": map[string]string{"a": "1", "ab": "1"}, "map_string_nested_message": map[string]protobuild.Message{ "a": {"a": 1}, "ab": { "a": 1, "corecursive": protobuild.Message{ "map_int32_int32": map[int]int{1: 1, 3: 1}, }, }, }, "map_string_nested_enum": map[string]int{"a": 1, "ab": 1}, }, src: protobuild.Message{ "map_int32_int32": map[int]int{2: 2, 3: 2}, "map_int64_int64": map[int]int{2: 2, 3: 2}, "map_uint32_uint32": map[int]int{2: 2, 3: 2}, "map_uint64_uint64": map[int]int{2: 2, 3: 2}, "map_sint32_sint32": map[int]int{2: 2, 3: 2}, "map_sint64_sint64": map[int]int{2: 2, 3: 2}, "map_fixed32_fixed32": map[int]int{2: 2, 3: 2}, "map_fixed64_fixed64": map[int]int{2: 2, 3: 2}, "map_sfixed32_sfixed32": map[int]int{2: 2, 3: 2}, "map_sfixed64_sfixed64": map[int]int{2: 2, 3: 2}, "map_int32_float": map[int]int{2: 2, 3: 2}, "map_int32_double": map[int]int{2: 2, 3: 2}, "map_bool_bool": map[bool]bool{false: false}, "map_string_string": map[string]string{"b": "2", "ab": "2"}, "map_string_bytes": map[string]string{"b": "2", "ab": "2"}, "map_string_nested_message": map[string]protobuild.Message{ "b": {"a": 2}, "ab": { "a": 2, "corecursive": protobuild.Message{ "map_int32_int32": map[int]int{2: 2, 3: 2}, }, }, }, "map_string_nested_enum": map[string]int{"b": 2, "ab": 2}, }, want: protobuild.Message{ "map_int32_int32": map[int]int{1: 1, 2: 2, 3: 2}, "map_int64_int64": map[int]int{1: 1, 2: 2, 3: 2}, "map_uint32_uint32": map[int]int{1: 1, 2: 2, 3: 2}, "map_uint64_uint64": map[int]int{1: 1, 2: 2, 3: 2}, "map_sint32_sint32": map[int]int{1: 1, 2: 2, 3: 2}, "map_sint64_sint64": map[int]int{1: 1, 2: 2, 3: 2}, "map_fixed32_fixed32": map[int]int{1: 1, 2: 2, 3: 2}, "map_fixed64_fixed64": map[int]int{1: 1, 2: 2, 3: 2}, "map_sfixed32_sfixed32": map[int]int{1: 1, 2: 2, 3: 2}, "map_sfixed64_sfixed64": map[int]int{1: 1, 2: 2, 3: 2}, "map_int32_float": map[int]int{1: 1, 2: 2, 3: 2}, "map_int32_double": map[int]int{1: 1, 2: 2, 3: 2}, "map_bool_bool": map[bool]bool{true: true, false: false}, "map_string_string": map[string]string{"a": "1", "b": "2", "ab": "2"}, "map_string_bytes": map[string]string{"a": "1", "b": "2", "ab": "2"}, "map_string_nested_message": map[string]protobuild.Message{ "a": {"a": 1}, "b": {"a": 2}, "ab": { "a": 2, "corecursive": protobuild.Message{ // The map item "ab" was entirely replaced, so // this does not contain 1:1 from dst. "map_int32_int32": map[int]int{2: 2, 3: 2}, }, }, }, "map_string_nested_enum": map[string]int{"a": 1, "b": 2, "ab": 2}, }, types: []proto.Message{&testpb.TestAllTypes{}, &test3pb.TestAllTypes{}}, }, { desc: "merge oneof message fields", dst: protobuild.Message{ "oneof_nested_message": protobuild.Message{ "a": 100, }, }, src: protobuild.Message{ "oneof_nested_message": protobuild.Message{ "corecursive": protobuild.Message{ "optional_int64": 1000, }, }, }, want: protobuild.Message{ "oneof_nested_message": protobuild.Message{ "a": 100, "corecursive": protobuild.Message{ "optional_int64": 1000, }, }, }, types: []proto.Message{&testpb.TestAllTypes{}, &test3pb.TestAllTypes{}}, }, { desc: "merge oneof scalar fields", dst: protobuild.Message{ "oneof_uint32": 100, }, src: protobuild.Message{ "oneof_float": 3.14152, }, want: protobuild.Message{ "oneof_float": 3.14152, }, types: []proto.Message{&testpb.TestAllTypes{}, &test3pb.TestAllTypes{}}, }, { desc: "merge unknown fields", dst: protobuild.Message{ protobuild.Unknown: protopack.Message{ protopack.Tag{Number: 50000, Type: protopack.VarintType}, protopack.Svarint(-5), }.Marshal(), }, src: protobuild.Message{ protobuild.Unknown: protopack.Message{ protopack.Tag{Number: 500000, Type: protopack.VarintType}, protopack.Svarint(-50), }.Marshal(), }, want: protobuild.Message{ protobuild.Unknown: protopack.Message{ protopack.Tag{Number: 50000, Type: protopack.VarintType}, protopack.Svarint(-5), protopack.Tag{Number: 500000, Type: protopack.VarintType}, protopack.Svarint(-50), }.Marshal(), }, }, { desc: "clone legacy message", src: protobuild.Message{"f1": protobuild.Message{ "optional_int32": 1, "optional_int64": 1, "optional_uint32": 1, "optional_uint64": 1, "optional_sint32": 1, "optional_sint64": 1, "optional_fixed32": 1, "optional_fixed64": 1, "optional_sfixed32": 1, "optional_sfixed64": 1, "optional_float": 1, "optional_double": 1, "optional_bool": true, "optional_string": "string", "optional_bytes": "bytes", "optional_sibling_enum": 1, "optional_sibling_message": protobuild.Message{ "f1": "value", }, "repeated_int32": []int32{1}, "repeated_int64": []int64{1}, "repeated_uint32": []uint32{1}, "repeated_uint64": []uint64{1}, "repeated_sint32": []int32{1}, "repeated_sint64": []int64{1}, "repeated_fixed32": []uint32{1}, "repeated_fixed64": []uint64{1}, "repeated_sfixed32": []int32{1}, "repeated_sfixed64": []int64{1}, "repeated_float": []float32{1}, "repeated_double": []float64{1}, "repeated_bool": []bool{true}, "repeated_string": []string{"string"}, "repeated_bytes": []string{"bytes"}, "repeated_sibling_enum": []int{1}, "repeated_sibling_message": []protobuild.Message{ {"f1": "1"}, }, "map_bool_int32": map[bool]int{true: 1}, "map_bool_int64": map[bool]int{true: 1}, "map_bool_uint32": map[bool]int{true: 1}, "map_bool_uint64": map[bool]int{true: 1}, "map_bool_sint32": map[bool]int{true: 1}, "map_bool_sint64": map[bool]int{true: 1}, "map_bool_fixed32": map[bool]int{true: 1}, "map_bool_fixed64": map[bool]int{true: 1}, "map_bool_sfixed32": map[bool]int{true: 1}, "map_bool_sfixed64": map[bool]int{true: 1}, "map_bool_float": map[bool]int{true: 1}, "map_bool_double": map[bool]int{true: 1}, "map_bool_bool": map[bool]bool{true: false}, "map_bool_string": map[bool]string{true: "1"}, "map_bool_bytes": map[bool]string{true: "1"}, "map_bool_sibling_message": map[bool]protobuild.Message{ true: {"f1": "1"}, }, "map_bool_sibling_enum": map[bool]int{true: 1}, "oneof_sibling_message": protobuild.Message{ "f1": "1", }, }}, types: []proto.Message{&legacypb.Legacy{}}, }} func TestMerge(t *testing.T) { for _, tt := range testMerges { for _, mt := range templateMessages(tt.types...) { t.Run(fmt.Sprintf("%s (%v)", tt.desc, mt.Descriptor().FullName()), func(t *testing.T) { dst := mt.New().Interface() tt.dst.Build(dst.ProtoReflect()) src := mt.New().Interface() tt.src.Build(src.ProtoReflect()) want := mt.New().Interface() if tt.dst == nil && tt.want == nil { tt.src.Build(want.ProtoReflect()) } else { tt.want.Build(want.ProtoReflect()) } // Merge should be semantically equivalent to unmarshaling the // encoded form of src into the current dst. b1, err := proto.MarshalOptions{AllowPartial: true}.Marshal(dst) if err != nil { t.Fatalf("Marshal(dst) error: %v", err) } b2, err := proto.MarshalOptions{AllowPartial: true}.Marshal(src) if err != nil { t.Fatalf("Marshal(src) error: %v", err) } unmarshaled := dst.ProtoReflect().New().Interface() err = proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(append(b1, b2...), unmarshaled) if err != nil { t.Fatalf("Unmarshal() error: %v", err) } if !proto.Equal(unmarshaled, want) { t.Fatalf("Unmarshal(Marshal(dst)+Marshal(src)) mismatch:\n got %v\nwant %v\ndiff (-want,+got):\n%v", unmarshaled, want, cmp.Diff(want, unmarshaled, protocmp.Transform())) } // Test heterogeneous MessageTypes by merging into a // dynamic message. ddst := dynamicpb.NewMessage(mt.Descriptor()) tt.dst.Build(ddst.ProtoReflect()) proto.Merge(ddst, src) if !proto.Equal(ddst, want) { t.Fatalf("Merge() into dynamic message mismatch:\n got %v\nwant %v\ndiff (-want,+got):\n%v", ddst, want, cmp.Diff(want, ddst, protocmp.Transform())) } proto.Merge(dst, src) if !proto.Equal(dst, want) { t.Fatalf("Merge() mismatch:\n got %v\nwant %v\ndiff (-want,+got):\n%v", dst, want, cmp.Diff(want, dst, protocmp.Transform())) } mutateValue(protoreflect.ValueOfMessage(src.ProtoReflect())) if !proto.Equal(dst, want) { t.Fatalf("mutation observed after modifying source:\n got %v\nwant %v\ndiff (-want,+got):\n%v", dst, want, cmp.Diff(want, dst, protocmp.Transform())) } }) } } } func TestMergeFromNil(t *testing.T) { dst := &testpb.TestAllTypes{} proto.Merge(dst, (*testpb.TestAllTypes)(nil)) if !proto.Equal(dst, &testpb.TestAllTypes{}) { t.Errorf("destination should be empty after merging from nil message; got:\n%v", prototext.Format(dst)) } } // TestMergeAberrant tests inputs that are beyond the protobuf data model. // Just because there is a test for the current behavior does not mean that // this will behave the same way in the future. func TestMergeAberrant(t *testing.T) { tests := []struct { label string dst proto.Message src proto.Message check func(proto.Message) bool }{{ label: "Proto2EmptyBytes", dst: &testpb.TestAllTypes{OptionalBytes: nil}, src: &testpb.TestAllTypes{OptionalBytes: []byte{}}, check: func(m proto.Message) bool { return m.(*testpb.TestAllTypes).OptionalBytes != nil }, }, { label: "Proto3EmptyBytes", dst: &test3pb.TestAllTypes{SingularBytes: nil}, src: &test3pb.TestAllTypes{SingularBytes: []byte{}}, check: func(m proto.Message) bool { return m.(*test3pb.TestAllTypes).SingularBytes == nil }, }, { label: "EmptyList", dst: &testpb.TestAllTypes{RepeatedInt32: nil}, src: &testpb.TestAllTypes{RepeatedInt32: []int32{}}, check: func(m proto.Message) bool { return m.(*testpb.TestAllTypes).RepeatedInt32 == nil }, }, { label: "ListWithNilBytes", dst: &testpb.TestAllTypes{RepeatedBytes: nil}, src: &testpb.TestAllTypes{RepeatedBytes: [][]byte{nil}}, check: func(m proto.Message) bool { return reflect.DeepEqual(m.(*testpb.TestAllTypes).RepeatedBytes, [][]byte{{}}) }, }, { label: "ListWithEmptyBytes", dst: &testpb.TestAllTypes{RepeatedBytes: nil}, src: &testpb.TestAllTypes{RepeatedBytes: [][]byte{{}}}, check: func(m proto.Message) bool { return reflect.DeepEqual(m.(*testpb.TestAllTypes).RepeatedBytes, [][]byte{{}}) }, }, { label: "ListWithNilMessage", dst: &testpb.TestAllTypes{RepeatedNestedMessage: nil}, src: &testpb.TestAllTypes{RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{nil}}, check: func(m proto.Message) bool { return m.(*testpb.TestAllTypes).RepeatedNestedMessage[0] != nil }, }, { label: "EmptyMap", dst: &testpb.TestAllTypes{MapStringString: nil}, src: &testpb.TestAllTypes{MapStringString: map[string]string{}}, check: func(m proto.Message) bool { return m.(*testpb.TestAllTypes).MapStringString == nil }, }, { label: "MapWithNilBytes", dst: &testpb.TestAllTypes{MapStringBytes: nil}, src: &testpb.TestAllTypes{MapStringBytes: map[string][]byte{"k": nil}}, check: func(m proto.Message) bool { return reflect.DeepEqual(m.(*testpb.TestAllTypes).MapStringBytes, map[string][]byte{"k": {}}) }, }, { label: "MapWithEmptyBytes", dst: &testpb.TestAllTypes{MapStringBytes: nil}, src: &testpb.TestAllTypes{MapStringBytes: map[string][]byte{"k": {}}}, check: func(m proto.Message) bool { return reflect.DeepEqual(m.(*testpb.TestAllTypes).MapStringBytes, map[string][]byte{"k": {}}) }, }, { label: "MapWithNilMessage", dst: &testpb.TestAllTypes{MapStringNestedMessage: nil}, src: &testpb.TestAllTypes{MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"k": nil}}, check: func(m proto.Message) bool { return m.(*testpb.TestAllTypes).MapStringNestedMessage["k"] != nil }, }, { label: "OneofWithTypedNilWrapper", dst: &testpb.TestAllTypes{OneofField: nil}, src: &testpb.TestAllTypes{OneofField: (*testpb.TestAllTypes_OneofNestedMessage)(nil)}, check: func(m proto.Message) bool { return m.(*testpb.TestAllTypes).OneofField == nil }, }, { label: "OneofWithNilMessage", dst: &testpb.TestAllTypes{OneofField: nil}, src: &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofNestedMessage{OneofNestedMessage: nil}}, check: func(m proto.Message) bool { return m.(*testpb.TestAllTypes).OneofField.(*testpb.TestAllTypes_OneofNestedMessage).OneofNestedMessage != nil }, // TODO: extension, nil message // TODO: repeated extension, nil // TODO: extension bytes // TODO: repeated extension, nil message }} for _, tt := range tests { t.Run(tt.label, func(t *testing.T) { var pass bool func() { defer func() { recover() }() proto.Merge(tt.dst, tt.src) pass = tt.check(tt.dst) }() if !pass { t.Error("check failed") } }) } } func TestMergeRace(t *testing.T) { dst := new(testpb.TestAllTypes) srcs := []*testpb.TestAllTypes{ {OptionalInt32: proto.Int32(1)}, {OptionalString: proto.String("hello")}, {RepeatedInt32: []int32{2, 3, 4}}, {RepeatedString: []string{"goodbye"}}, {MapStringString: map[string]string{"key": "value"}}, {OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{ A: proto.Int32(5), }}, func() *testpb.TestAllTypes { m := new(testpb.TestAllTypes) m.ProtoReflect().SetUnknown(protopack.Message{ protopack.Tag{Number: 50000, Type: protopack.VarintType}, protopack.Svarint(-5), }.Marshal()) return m }(), } // It should be safe to concurrently merge non-overlapping fields. var wg sync.WaitGroup defer wg.Wait() for _, src := range srcs { wg.Add(1) go func(src proto.Message) { defer wg.Done() proto.Merge(dst, src) }(src) } } func TestMergeSelf(t *testing.T) { got := &testpb.TestAllTypes{ OptionalInt32: proto.Int32(1), OptionalString: proto.String("hello"), RepeatedInt32: []int32{2, 3, 4}, RepeatedString: []string{"goodbye"}, MapStringString: map[string]string{"key": "value"}, OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{ A: proto.Int32(5), }, } got.ProtoReflect().SetUnknown(protopack.Message{ protopack.Tag{Number: 50000, Type: protopack.VarintType}, protopack.Svarint(-5), }.Marshal()) proto.Merge(got, got) // The main impact of merging to self is that repeated fields and // unknown fields are doubled. want := &testpb.TestAllTypes{ OptionalInt32: proto.Int32(1), OptionalString: proto.String("hello"), RepeatedInt32: []int32{2, 3, 4, 2, 3, 4}, RepeatedString: []string{"goodbye", "goodbye"}, MapStringString: map[string]string{"key": "value"}, OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{ A: proto.Int32(5), }, } want.ProtoReflect().SetUnknown(protopack.Message{ protopack.Tag{Number: 50000, Type: protopack.VarintType}, protopack.Svarint(-5), protopack.Tag{Number: 50000, Type: protopack.VarintType}, protopack.Svarint(-5), }.Marshal()) if !proto.Equal(got, want) { t.Errorf("Equal mismatch:\ngot %v\nwant %v", got, want) } } func TestClone(t *testing.T) { want := &testpb.TestAllTypes{ OptionalInt32: proto.Int32(1), } got := proto.Clone(want).(*testpb.TestAllTypes) if !proto.Equal(got, want) { t.Errorf("Clone(src) != src:\n got %v\nwant %v", got, want) } } // mutateValue changes a Value, returning a new value. // // For scalar values, it returns a value different from the input. // For Message, List, and Map values, it mutates the input and returns it. func mutateValue(v protoreflect.Value) protoreflect.Value { switch v := v.Interface().(type) { case bool: return protoreflect.ValueOfBool(!v) case protoreflect.EnumNumber: return protoreflect.ValueOfEnum(v + 1) case int32: return protoreflect.ValueOfInt32(v + 1) case int64: return protoreflect.ValueOfInt64(v + 1) case uint32: return protoreflect.ValueOfUint32(v + 1) case uint64: return protoreflect.ValueOfUint64(v + 1) case float32: return protoreflect.ValueOfFloat32(v + 1) case float64: return protoreflect.ValueOfFloat64(v + 1) case []byte: for i := range v { v[i]++ } return protoreflect.ValueOfBytes(v) case string: return protoreflect.ValueOfString("_" + v) case protoreflect.Message: v.Range(func(fd protoreflect.FieldDescriptor, val protoreflect.Value) bool { v.Set(fd, mutateValue(val)) return true }) return protoreflect.ValueOfMessage(v) case protoreflect.List: for i := 0; i < v.Len(); i++ { v.Set(i, mutateValue(v.Get(i))) } return protoreflect.ValueOfList(v) case protoreflect.Map: v.Range(func(mk protoreflect.MapKey, mv protoreflect.Value) bool { v.Set(mk, mutateValue(mv)) return true }) return protoreflect.ValueOfMap(v) default: panic(fmt.Sprintf("unknown value type %T", v)) } } golang-google-protobuf-1.27.1/proto/messageset.go000066400000000000000000000057451411250152500220220ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto import ( "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/encoding/messageset" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/internal/order" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" ) func (o MarshalOptions) sizeMessageSet(m protoreflect.Message) (size int) { m.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { size += messageset.SizeField(fd.Number()) size += protowire.SizeTag(messageset.FieldMessage) size += protowire.SizeBytes(o.size(v.Message())) return true }) size += messageset.SizeUnknown(m.GetUnknown()) return size } func (o MarshalOptions) marshalMessageSet(b []byte, m protoreflect.Message) ([]byte, error) { if !flags.ProtoLegacy { return b, errors.New("no support for message_set_wire_format") } fieldOrder := order.AnyFieldOrder if o.Deterministic { fieldOrder = order.NumberFieldOrder } var err error order.RangeFields(m, fieldOrder, func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { b, err = o.marshalMessageSetField(b, fd, v) return err == nil }) if err != nil { return b, err } return messageset.AppendUnknown(b, m.GetUnknown()) } func (o MarshalOptions) marshalMessageSetField(b []byte, fd protoreflect.FieldDescriptor, value protoreflect.Value) ([]byte, error) { b = messageset.AppendFieldStart(b, fd.Number()) b = protowire.AppendTag(b, messageset.FieldMessage, protowire.BytesType) b = protowire.AppendVarint(b, uint64(o.Size(value.Message().Interface()))) b, err := o.marshalMessage(b, value.Message()) if err != nil { return b, err } b = messageset.AppendFieldEnd(b) return b, nil } func (o UnmarshalOptions) unmarshalMessageSet(b []byte, m protoreflect.Message) error { if !flags.ProtoLegacy { return errors.New("no support for message_set_wire_format") } return messageset.Unmarshal(b, false, func(num protowire.Number, v []byte) error { err := o.unmarshalMessageSetField(m, num, v) if err == errUnknown { unknown := m.GetUnknown() unknown = protowire.AppendTag(unknown, num, protowire.BytesType) unknown = protowire.AppendBytes(unknown, v) m.SetUnknown(unknown) return nil } return err }) } func (o UnmarshalOptions) unmarshalMessageSetField(m protoreflect.Message, num protowire.Number, v []byte) error { md := m.Descriptor() if !md.ExtensionRanges().Has(num) { return errUnknown } xt, err := o.Resolver.FindExtensionByNumber(md.FullName(), num) if err == protoregistry.NotFound { return errUnknown } if err != nil { return errors.New("%v: unable to resolve extension %v: %v", md.FullName(), num, err) } xd := xt.TypeDescriptor() if err := o.unmarshalMessage(v, m.Mutable(xd).Message()); err != nil { return err } return nil } golang-google-protobuf-1.27.1/proto/messageset_test.go000066400000000000000000000271421411250152500230540ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto_test import ( "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/testing/protopack" messagesetpb "google.golang.org/protobuf/internal/testprotos/messageset/messagesetpb" msetextpb "google.golang.org/protobuf/internal/testprotos/messageset/msetextpb" ) func init() { if flags.ProtoLegacy { testValidMessages = append(testValidMessages, messageSetTestProtos...) testInvalidMessages = append(testInvalidMessages, messageSetInvalidTestProtos...) } } var messageSetTestProtos = []testProto{ { desc: "MessageSet type_id before message content", decodeTo: []proto.Message{func() proto.Message { m := &messagesetpb.MessageSetContainer{MessageSet: &messagesetpb.MessageSet{}} proto.SetExtension(m.MessageSet, msetextpb.E_Ext1_MessageSetExtension, &msetextpb.Ext1{ Ext1Field1: proto.Int32(10), }) return m }()}, wire: protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.StartGroupType}, protopack.Tag{2, protopack.VarintType}, protopack.Varint(1000), protopack.Tag{3, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(10), }), protopack.Tag{1, protopack.EndGroupType}, }), }.Marshal(), }, { desc: "MessageSet type_id after message content", decodeTo: []proto.Message{func() proto.Message { m := &messagesetpb.MessageSetContainer{MessageSet: &messagesetpb.MessageSet{}} proto.SetExtension(m.MessageSet, msetextpb.E_Ext1_MessageSetExtension, &msetextpb.Ext1{ Ext1Field1: proto.Int32(10), }) return m }()}, wire: protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.StartGroupType}, protopack.Tag{3, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(10), }), protopack.Tag{2, protopack.VarintType}, protopack.Varint(1000), protopack.Tag{1, protopack.EndGroupType}, }), }.Marshal(), }, { desc: "MessageSet does not preserve unknown field", decodeTo: []proto.Message{build( &messagesetpb.MessageSet{}, extend(msetextpb.E_Ext1_MessageSetExtension, &msetextpb.Ext1{ Ext1Field1: proto.Int32(10), }), )}, wire: protopack.Message{ protopack.Tag{1, protopack.StartGroupType}, protopack.Tag{2, protopack.VarintType}, protopack.Varint(1000), protopack.Tag{3, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(10), }), protopack.Tag{1, protopack.EndGroupType}, // Unknown field protopack.Tag{4, protopack.VarintType}, protopack.Varint(30), }.Marshal(), }, { desc: "MessageSet with unknown type_id", decodeTo: []proto.Message{build( &messagesetpb.MessageSet{}, unknown(protopack.Message{ protopack.Tag{999, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(10), }), }.Marshal()), )}, wire: protopack.Message{ protopack.Tag{1, protopack.StartGroupType}, protopack.Tag{2, protopack.VarintType}, protopack.Varint(999), protopack.Tag{3, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(10), }), protopack.Tag{1, protopack.EndGroupType}, }.Marshal(), }, { desc: "MessageSet merges repeated message fields in item", decodeTo: []proto.Message{build( &messagesetpb.MessageSet{}, extend(msetextpb.E_Ext1_MessageSetExtension, &msetextpb.Ext1{ Ext1Field1: proto.Int32(10), Ext1Field2: proto.Int32(20), }), )}, wire: protopack.Message{ protopack.Tag{1, protopack.StartGroupType}, protopack.Tag{2, protopack.VarintType}, protopack.Varint(1000), protopack.Tag{3, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(10), }), protopack.Tag{3, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{2, protopack.VarintType}, protopack.Varint(20), }), protopack.Tag{1, protopack.EndGroupType}, }.Marshal(), }, { desc: "MessageSet merges message fields in repeated items", decodeTo: []proto.Message{build( &messagesetpb.MessageSet{}, extend(msetextpb.E_Ext1_MessageSetExtension, &msetextpb.Ext1{ Ext1Field1: proto.Int32(10), Ext1Field2: proto.Int32(20), }), extend(msetextpb.E_Ext2_MessageSetExtension, &msetextpb.Ext2{ Ext2Field1: proto.Int32(30), }), )}, wire: protopack.Message{ // Ext1, field1 protopack.Tag{1, protopack.StartGroupType}, protopack.Tag{2, protopack.VarintType}, protopack.Varint(1000), protopack.Tag{3, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(10), }), protopack.Tag{1, protopack.EndGroupType}, // Ext2, field1 protopack.Tag{1, protopack.StartGroupType}, protopack.Tag{2, protopack.VarintType}, protopack.Varint(1001), protopack.Tag{3, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(30), }), protopack.Tag{1, protopack.EndGroupType}, // Ext2, field2 protopack.Tag{1, protopack.StartGroupType}, protopack.Tag{2, protopack.VarintType}, protopack.Varint(1000), protopack.Tag{3, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{2, protopack.VarintType}, protopack.Varint(20), }), protopack.Tag{1, protopack.EndGroupType}, }.Marshal(), }, { desc: "MessageSet with missing type_id", decodeTo: []proto.Message{build( &messagesetpb.MessageSet{}, )}, wire: protopack.Message{ protopack.Tag{1, protopack.StartGroupType}, protopack.Tag{3, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(10), }), protopack.Tag{1, protopack.EndGroupType}, }.Marshal(), }, { desc: "MessageSet with missing message", decodeTo: []proto.Message{build( &messagesetpb.MessageSet{}, extend(msetextpb.E_Ext1_MessageSetExtension, &msetextpb.Ext1{}), )}, wire: protopack.Message{ protopack.Tag{1, protopack.StartGroupType}, protopack.Tag{2, protopack.VarintType}, protopack.Varint(1000), protopack.Tag{1, protopack.EndGroupType}, }.Marshal(), }, { desc: "MessageSet with type id out of valid field number range", decodeTo: []proto.Message{func() proto.Message { m := &messagesetpb.MessageSetContainer{MessageSet: &messagesetpb.MessageSet{}} proto.SetExtension(m.MessageSet, msetextpb.E_ExtLargeNumber_MessageSetExtension, &msetextpb.ExtLargeNumber{}) return m }()}, wire: protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.StartGroupType}, protopack.Tag{2, protopack.VarintType}, protopack.Varint(protowire.MaxValidNumber + 1), protopack.Tag{3, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{}), protopack.Tag{1, protopack.EndGroupType}, }), }.Marshal(), }, { desc: "MessageSet with unknown type id out of valid field number range", decodeTo: []proto.Message{func() proto.Message { m := &messagesetpb.MessageSetContainer{MessageSet: &messagesetpb.MessageSet{}} m.MessageSet.ProtoReflect().SetUnknown( protopack.Message{ protopack.Tag{protowire.MaxValidNumber + 2, protopack.BytesType}, protopack.LengthPrefix{}, }.Marshal(), ) return m }()}, wire: protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.StartGroupType}, protopack.Tag{2, protopack.VarintType}, protopack.Varint(protowire.MaxValidNumber + 2), protopack.Tag{3, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{}), protopack.Tag{1, protopack.EndGroupType}, }), }.Marshal(), }, { desc: "MessageSet with unknown field", decodeTo: []proto.Message{func() proto.Message { m := &messagesetpb.MessageSetContainer{MessageSet: &messagesetpb.MessageSet{}} proto.SetExtension(m.MessageSet, msetextpb.E_Ext1_MessageSetExtension, &msetextpb.Ext1{ Ext1Field1: proto.Int32(10), }) return m }()}, wire: protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.StartGroupType}, protopack.Tag{2, protopack.VarintType}, protopack.Varint(1000), protopack.Tag{3, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(10), }), protopack.Tag{4, protopack.VarintType}, protopack.Varint(0), protopack.Tag{1, protopack.EndGroupType}, }), }.Marshal(), }, { desc: "MessageSet with required field set", checkFastInit: true, decodeTo: []proto.Message{func() proto.Message { m := &messagesetpb.MessageSetContainer{MessageSet: &messagesetpb.MessageSet{}} proto.SetExtension(m.MessageSet, msetextpb.E_ExtRequired_MessageSetExtension, &msetextpb.ExtRequired{ RequiredField1: proto.Int32(1), }) return m }()}, wire: protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.StartGroupType}, protopack.Tag{2, protopack.VarintType}, protopack.Varint(1002), protopack.Tag{3, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1), }), protopack.Tag{1, protopack.EndGroupType}, }), }.Marshal(), }, { desc: "MessageSet with required field unset", checkFastInit: true, partial: true, decodeTo: []proto.Message{func() proto.Message { m := &messagesetpb.MessageSetContainer{MessageSet: &messagesetpb.MessageSet{}} proto.SetExtension(m.MessageSet, msetextpb.E_ExtRequired_MessageSetExtension, &msetextpb.ExtRequired{}) return m }()}, wire: protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.StartGroupType}, protopack.Tag{2, protopack.VarintType}, protopack.Varint(1002), protopack.Tag{3, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{}), protopack.Tag{1, protopack.EndGroupType}, }), }.Marshal(), }, } var messageSetInvalidTestProtos = []testProto{ { desc: "MessageSet with type id 0", decodeTo: []proto.Message{ (*messagesetpb.MessageSetContainer)(nil), }, wire: protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.StartGroupType}, protopack.Tag{2, protopack.VarintType}, protopack.Uvarint(0), protopack.Tag{3, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{}), protopack.Tag{1, protopack.EndGroupType}, }), }.Marshal(), }, { desc: "MessageSet with type id overflowing int32", decodeTo: []proto.Message{ (*messagesetpb.MessageSetContainer)(nil), }, wire: protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.StartGroupType}, protopack.Tag{2, protopack.VarintType}, protopack.Uvarint(0x80000000), protopack.Tag{3, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{}), protopack.Tag{1, protopack.EndGroupType}, }), }.Marshal(), }, } golang-google-protobuf-1.27.1/proto/methods_test.go000066400000000000000000000125671411250152500223640ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // The protoreflect tag disables fast-path methods, including legacy ones. // +build !protoreflect package proto_test import ( "bytes" "errors" "fmt" "testing" "google.golang.org/protobuf/internal/impl" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/runtime/protoiface" legacypb "google.golang.org/protobuf/internal/testprotos/legacy" ) type selfMarshaler struct { bytes []byte err error } func (m selfMarshaler) Reset() {} func (m selfMarshaler) ProtoMessage() {} func (m selfMarshaler) String() string { return fmt.Sprintf("selfMarshaler{bytes:%v, err:%v}", m.bytes, m.err) } func (m selfMarshaler) Marshal() ([]byte, error) { return m.bytes, m.err } func (m *selfMarshaler) Unmarshal(b []byte) error { m.bytes = b return m.err } func TestLegacyMarshalMethod(t *testing.T) { for _, test := range []selfMarshaler{ {bytes: []byte("marshal")}, {bytes: []byte("marshal"), err: errors.New("some error")}, } { m := impl.Export{}.MessageOf(test).Interface() b, err := proto.Marshal(m) if err != test.err || !bytes.Equal(b, test.bytes) { t.Errorf("proto.Marshal(%v) = %v, %v; want %v, %v", test, b, err, test.bytes, test.err) } if gotSize, wantSize := proto.Size(m), len(test.bytes); gotSize != wantSize { t.Fatalf("proto.Size(%v) = %v, want %v", test, gotSize, wantSize) } prefix := []byte("prefix") want := append(prefix, test.bytes...) b, err = proto.MarshalOptions{}.MarshalAppend(prefix, m) if err != test.err || !bytes.Equal(b, want) { t.Errorf("MarshalAppend(%v, %v) = %v, %v; want %v, %v", prefix, test, b, err, test.bytes, test.err) } b, err = proto.MarshalOptions{ Deterministic: true, }.MarshalAppend(nil, m) if err != test.err || !bytes.Equal(b, test.bytes) { t.Errorf("MarshalOptions{Deterministic:true}.MarshalAppend(nil, %v) = %v, %v; want %v, %v", test, b, err, test.bytes, test.err) } } } func TestLegacyUnmarshalMethod(t *testing.T) { sm := &selfMarshaler{} m := impl.Export{}.MessageOf(sm).Interface() want := []byte("unmarshal") if err := proto.Unmarshal(want, m); err != nil { t.Fatalf("proto.Unmarshal(selfMarshaler{}) = %v, want nil", err) } if !bytes.Equal(sm.bytes, want) { t.Fatalf("proto.Unmarshal(selfMarshaler{}): Marshal method not called") } } type descPanicSelfMarshaler struct{} const descPanicSelfMarshalerBytes = "bytes" func (m *descPanicSelfMarshaler) Reset() {} func (m *descPanicSelfMarshaler) ProtoMessage() {} func (m *descPanicSelfMarshaler) Descriptor() ([]byte, []int) { panic("Descriptor method panics") } func (m *descPanicSelfMarshaler) String() string { return "descPanicSelfMarshaler{}" } func (m *descPanicSelfMarshaler) Marshal() ([]byte, error) { return []byte(descPanicSelfMarshalerBytes), nil } func TestSelfMarshalerDescriptorPanics(t *testing.T) { m := &descPanicSelfMarshaler{} got, err := proto.Marshal(impl.Export{}.MessageOf(m).Interface()) want := []byte(descPanicSelfMarshalerBytes) if err != nil || !bytes.Equal(got, want) { t.Fatalf("proto.Marshal(%v) = %v, %v; want %v, nil", m, got, err, want) } } type descSelfMarshaler struct { someField int // some non-generated field } const descSelfMarshalerBytes = "bytes" func (m *descSelfMarshaler) Reset() {} func (m *descSelfMarshaler) ProtoMessage() {} func (m *descSelfMarshaler) Descriptor() ([]byte, []int) { return ((*legacypb.Legacy)(nil)).GetF1().Descriptor() } func (m *descSelfMarshaler) String() string { return "descSelfMarshaler{}" } func (m *descSelfMarshaler) Marshal() ([]byte, error) { return []byte(descSelfMarshalerBytes), nil } func TestSelfMarshalerWithDescriptor(t *testing.T) { m := &descSelfMarshaler{} got, err := proto.Marshal(impl.Export{}.MessageOf(m).Interface()) want := []byte(descSelfMarshalerBytes) if err != nil || !bytes.Equal(got, want) { t.Fatalf("proto.Marshal(%v) = %v, %v; want %v, nil", m, got, err, want) } } func TestDecodeFastCheckInitialized(t *testing.T) { for _, test := range testValidMessages { if !test.checkFastInit { continue } for _, message := range test.decodeTo { t.Run(fmt.Sprintf("%s (%T)", test.desc, message), func(t *testing.T) { m := message.ProtoReflect().New() opts := proto.UnmarshalOptions{ AllowPartial: true, } out, err := opts.UnmarshalState(protoiface.UnmarshalInput{ Buf: test.wire, Message: m, }) if err != nil { t.Fatalf("Unmarshal error: %v", err) } if got, want := (out.Flags&protoiface.UnmarshalInitialized != 0), !test.partial; got != want { t.Errorf("out.Initialized = %v, want %v", got, want) } }) } } } type selfMerger struct { src protoiface.MessageV1 } func (*selfMerger) Reset() {} func (*selfMerger) ProtoMessage() {} func (*selfMerger) String() string { return "selfMerger{}" } func (m *selfMerger) Merge(src protoiface.MessageV1) { m.src = src } func TestLegacyMergeMethod(t *testing.T) { src := &selfMerger{} dst := &selfMerger{} proto.Merge( impl.Export{}.MessageOf(dst).Interface(), impl.Export{}.MessageOf(src).Interface(), ) if got, want := dst.src, src; got != want { t.Errorf("Merge(dst, src): want dst.src = src, got %v", got) } if got := src.src; got != nil { t.Errorf("Merge(dst, src): want src.src = nil, got %v", got) } } golang-google-protobuf-1.27.1/proto/nil_test.go000066400000000000000000000104571411250152500214770ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto_test import ( "testing" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" testpb "google.golang.org/protobuf/internal/testprotos/test" ) // TestNil tests for boundary conditions when nil and typed-nil messages // are passed to various top-level functions. // These tests are not necessarily a statement of proper behavior, // but exist to detect accidental changes in behavior. func TestNil(t *testing.T) { nilMsg := (*testpb.TestAllExtensions)(nil) extType := testpb.E_OptionalBool extRanger := func(protoreflect.ExtensionType, interface{}) bool { return true } tests := []struct { label string test func() panic bool }{{ label: "Size", test: func() { proto.Size(nil) }, }, { label: "Size", test: func() { proto.Size(nilMsg) }, }, { label: "Marshal", test: func() { proto.Marshal(nil) }, }, { label: "Marshal", test: func() { proto.Marshal(nilMsg) }, }, { label: "Unmarshal", test: func() { proto.Unmarshal(nil, nil) }, panic: true, }, { label: "Unmarshal", test: func() { proto.Unmarshal(nil, nilMsg) }, panic: true, }, { label: "Merge", test: func() { proto.Merge(nil, nil) }, panic: true, }, { label: "Merge", test: func() { proto.Merge(nil, nilMsg) }, panic: true, }, { label: "Merge", test: func() { proto.Merge(nilMsg, nil) }, panic: true, }, { label: "Merge", test: func() { proto.Merge(nilMsg, nilMsg) }, panic: true, }, { label: "Clone", test: func() { proto.Clone(nil) }, }, { label: "Clone", test: func() { proto.Clone(nilMsg) }, }, { label: "Equal", test: func() { proto.Equal(nil, nil) }, }, { label: "Equal", test: func() { proto.Equal(nil, nilMsg) }, }, { label: "Equal", test: func() { proto.Equal(nilMsg, nil) }, }, { label: "Equal", test: func() { proto.Equal(nilMsg, nilMsg) }, }, { label: "Reset", test: func() { proto.Reset(nil) }, panic: true, }, { label: "Reset", test: func() { proto.Reset(nilMsg) }, panic: true, }, { label: "HasExtension", test: func() { proto.HasExtension(nil, nil) }, }, { label: "HasExtension", test: func() { proto.HasExtension(nil, extType) }, }, { label: "HasExtension", test: func() { proto.HasExtension(nilMsg, nil) }, }, { label: "HasExtension", test: func() { proto.HasExtension(nilMsg, extType) }, }, { label: "GetExtension", test: func() { proto.GetExtension(nil, nil) }, panic: true, }, { label: "GetExtension", test: func() { proto.GetExtension(nil, extType) }, }, { label: "GetExtension", test: func() { proto.GetExtension(nilMsg, nil) }, panic: true, }, { label: "GetExtension", test: func() { proto.GetExtension(nilMsg, extType) }, }, { label: "SetExtension", test: func() { proto.SetExtension(nil, nil, true) }, panic: true, }, { label: "SetExtension", test: func() { proto.SetExtension(nil, extType, true) }, panic: true, }, { label: "SetExtension", test: func() { proto.SetExtension(nilMsg, nil, true) }, panic: true, }, { label: "SetExtension", test: func() { proto.SetExtension(nilMsg, extType, true) }, panic: true, }, { label: "ClearExtension", test: func() { proto.ClearExtension(nil, nil) }, panic: true, }, { label: "ClearExtension", test: func() { proto.ClearExtension(nil, extType) }, panic: true, }, { label: "ClearExtension", test: func() { proto.ClearExtension(nilMsg, nil) }, panic: true, }, { label: "ClearExtension", test: func() { proto.ClearExtension(nilMsg, extType) }, panic: true, }, { label: "RangeExtensions", test: func() { proto.RangeExtensions(nil, nil) }, }, { label: "RangeExtensions", test: func() { proto.RangeExtensions(nil, extRanger) }, }, { label: "RangeExtensions", test: func() { proto.RangeExtensions(nilMsg, nil) }, }, { label: "RangeExtensions", test: func() { proto.RangeExtensions(nilMsg, extRanger) }, }} for _, tt := range tests { t.Run(tt.label, func(t *testing.T) { defer func() { switch gotPanic := recover() != nil; { case gotPanic && !tt.panic: t.Errorf("unexpected panic") case !gotPanic && tt.panic: t.Errorf("expected panic") } }() tt.test() }) } } golang-google-protobuf-1.27.1/proto/noenforceutf8_test.go000066400000000000000000000115751411250152500235040ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto_test import ( "reflect" "google.golang.org/protobuf/encoding/prototext" "google.golang.org/protobuf/internal/filedesc" "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protodesc" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/runtime/protoimpl" "google.golang.org/protobuf/testing/protopack" "google.golang.org/protobuf/types/descriptorpb" ) func init() { if flags.ProtoLegacy { testValidMessages = append(testValidMessages, noEnforceUTF8TestProtos...) } else { testInvalidMessages = append(testInvalidMessages, noEnforceUTF8TestProtos...) } } var noEnforceUTF8TestProtos = []testProto{ { desc: "invalid UTF-8 in optional string field", decodeTo: []proto.Message{&TestNoEnforceUTF8{ OptionalString: string("abc\xff"), }}, wire: protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.String("abc\xff"), }.Marshal(), }, { desc: "invalid UTF-8 in optional string field of Go bytes", decodeTo: []proto.Message{&TestNoEnforceUTF8{ OptionalBytes: []byte("abc\xff"), }}, wire: protopack.Message{ protopack.Tag{2, protopack.BytesType}, protopack.String("abc\xff"), }.Marshal(), }, { desc: "invalid UTF-8 in repeated string field", decodeTo: []proto.Message{&TestNoEnforceUTF8{ RepeatedString: []string{string("foo"), string("abc\xff")}, }}, wire: protopack.Message{ protopack.Tag{3, protopack.BytesType}, protopack.String("foo"), protopack.Tag{3, protopack.BytesType}, protopack.String("abc\xff"), }.Marshal(), }, { desc: "invalid UTF-8 in repeated string field of Go bytes", decodeTo: []proto.Message{&TestNoEnforceUTF8{ RepeatedBytes: [][]byte{[]byte("foo"), []byte("abc\xff")}, }}, wire: protopack.Message{ protopack.Tag{4, protopack.BytesType}, protopack.String("foo"), protopack.Tag{4, protopack.BytesType}, protopack.String("abc\xff"), }.Marshal(), }, { desc: "invalid UTF-8 in oneof string field", decodeTo: []proto.Message{ &TestNoEnforceUTF8{OneofField: &TestNoEnforceUTF8_OneofString{string("abc\xff")}}, }, wire: protopack.Message{protopack.Tag{5, protopack.BytesType}, protopack.String("abc\xff")}.Marshal(), }, { desc: "invalid UTF-8 in oneof string field of Go bytes", decodeTo: []proto.Message{ &TestNoEnforceUTF8{OneofField: &TestNoEnforceUTF8_OneofBytes{[]byte("abc\xff")}}, }, wire: protopack.Message{protopack.Tag{6, protopack.BytesType}, protopack.String("abc\xff")}.Marshal(), }, } type TestNoEnforceUTF8 struct { OptionalString string `protobuf:"bytes,1,opt,name=optional_string"` OptionalBytes []byte `protobuf:"bytes,2,opt,name=optional_bytes"` RepeatedString []string `protobuf:"bytes,3,rep,name=repeated_string"` RepeatedBytes [][]byte `protobuf:"bytes,4,rep,name=repeated_bytes"` OneofField isOneofField `protobuf_oneof:"oneof_field"` } type isOneofField interface{ isOneofField() } type TestNoEnforceUTF8_OneofString struct { OneofString string `protobuf:"bytes,5,opt,name=oneof_string,oneof"` } type TestNoEnforceUTF8_OneofBytes struct { OneofBytes []byte `protobuf:"bytes,6,opt,name=oneof_bytes,oneof"` } func (*TestNoEnforceUTF8_OneofString) isOneofField() {} func (*TestNoEnforceUTF8_OneofBytes) isOneofField() {} func (m *TestNoEnforceUTF8) ProtoReflect() protoreflect.Message { return messageInfo_TestNoEnforceUTF8.MessageOf(m) } var messageInfo_TestNoEnforceUTF8 = protoimpl.MessageInfo{ GoReflectType: reflect.TypeOf((*TestNoEnforceUTF8)(nil)), Desc: func() protoreflect.MessageDescriptor { pb := new(descriptorpb.FileDescriptorProto) if err := prototext.Unmarshal([]byte(` syntax: "proto3" name: "test.proto" message_type: [{ name: "TestNoEnforceUTF8" field: [ {name:"optional_string" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"optional_bytes" number:2 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"repeated_string" number:3 label:LABEL_REPEATED type:TYPE_STRING}, {name:"repeated_bytes" number:4 label:LABEL_REPEATED type:TYPE_STRING}, {name:"oneof_string" number:5 label:LABEL_OPTIONAL type:TYPE_STRING, oneof_index:0}, {name:"oneof_bytes" number:6 label:LABEL_OPTIONAL type:TYPE_STRING, oneof_index:0} ] oneof_decl: [{name:"oneof_field"}] }] `), pb); err != nil { panic(err) } fd, err := protodesc.NewFile(pb, nil) if err != nil { panic(err) } md := fd.Messages().Get(0) for i := 0; i < md.Fields().Len(); i++ { md.Fields().Get(i).(*filedesc.Field).L1.HasEnforceUTF8 = true md.Fields().Get(i).(*filedesc.Field).L1.EnforceUTF8 = false } return md }(), OneofWrappers: []interface{}{ (*TestNoEnforceUTF8_OneofString)(nil), (*TestNoEnforceUTF8_OneofBytes)(nil), }, } golang-google-protobuf-1.27.1/proto/proto.go000066400000000000000000000025571411250152500210230ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto import ( "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/reflect/protoreflect" ) // Message is the top-level interface that all messages must implement. // It provides access to a reflective view of a message. // Any implementation of this interface may be used with all functions in the // protobuf module that accept a Message, except where otherwise specified. // // This is the v2 interface definition for protobuf messages. // The v1 interface definition is "github.com/golang/protobuf/proto".Message. // // To convert a v1 message to a v2 message, // use "github.com/golang/protobuf/proto".MessageV2. // To convert a v2 message to a v1 message, // use "github.com/golang/protobuf/proto".MessageV1. type Message = protoreflect.ProtoMessage // Error matches all errors produced by packages in the protobuf module. // // That is, errors.Is(err, Error) reports whether an error is produced // by this module. var Error error func init() { Error = errors.Error } // MessageName returns the full name of m. // If m is nil, it returns an empty string. func MessageName(m Message) protoreflect.FullName { if m == nil { return "" } return m.ProtoReflect().Descriptor().FullName() } golang-google-protobuf-1.27.1/proto/proto_methods.go000066400000000000000000000007621411250152500225420ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // The protoreflect build tag disables use of fast-path methods. // +build !protoreflect package proto import ( "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/runtime/protoiface" ) const hasProtoMethods = true func protoMethods(m protoreflect.Message) *protoiface.Methods { return m.ProtoMethods() } golang-google-protobuf-1.27.1/proto/proto_reflect.go000066400000000000000000000007451411250152500225240ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // The protoreflect build tag disables use of fast-path methods. // +build protoreflect package proto import ( "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/runtime/protoiface" ) const hasProtoMethods = false func protoMethods(m protoreflect.Message) *protoiface.Methods { return nil } golang-google-protobuf-1.27.1/proto/reset.go000066400000000000000000000017721411250152500210000ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto import ( "fmt" "google.golang.org/protobuf/reflect/protoreflect" ) // Reset clears every field in the message. // The resulting message shares no observable memory with its previous state // other than the memory for the message itself. func Reset(m Message) { if mr, ok := m.(interface{ Reset() }); ok && hasProtoMethods { mr.Reset() return } resetMessage(m.ProtoReflect()) } func resetMessage(m protoreflect.Message) { if !m.IsValid() { panic(fmt.Sprintf("cannot reset invalid %v message", m.Descriptor().FullName())) } // Clear all known fields. fds := m.Descriptor().Fields() for i := 0; i < fds.Len(); i++ { m.Clear(fds.Get(i)) } // Clear extension fields. m.Range(func(fd protoreflect.FieldDescriptor, _ protoreflect.Value) bool { m.Clear(fd) return true }) // Clear unknown fields. m.SetUnknown(nil) } golang-google-protobuf-1.27.1/proto/reset_test.go000066400000000000000000000033461411250152500220360ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto_test import ( "testing" "google.golang.org/protobuf/proto" testpb "google.golang.org/protobuf/internal/testprotos/test" ) func TestReset(t *testing.T) { m := &testpb.TestAllTypes{ OptionalSfixed64: proto.Int64(5), RepeatedInt32: []int32{}, RepeatedFloat: []float32{1.234, 5.678}, MapFixed64Fixed64: map[uint64]uint64{5: 7}, MapStringString: map[string]string{}, OptionalForeignMessage: &testpb.ForeignMessage{}, OneofField: (*testpb.TestAllTypes_OneofUint32)(nil), OneofOptional: (*testpb.TestAllTypes_OneofOptionalUint32)(nil), } m.ProtoReflect().SetUnknown([]byte{}) proto.Reset(m) if m.OptionalSfixed64 != nil { t.Errorf("m.OptionalSfixed64 = %p, want nil", m.OptionalSfixed64) } if m.RepeatedInt32 != nil { t.Errorf("m.RepeatedInt32 = %p, want nil", m.RepeatedInt32) } if m.RepeatedFloat != nil { t.Errorf("m.RepeatedFloat = %p, want nil", m.RepeatedFloat) } if m.MapFixed64Fixed64 != nil { t.Errorf("m.MapFixed64Fixed64 = %p, want nil", m.MapFixed64Fixed64) } if m.MapStringString != nil { t.Errorf("m.MapStringString = %p, want nil", m.MapStringString) } if m.OptionalForeignMessage != nil { t.Errorf("m.OptionalForeignMessage = %p, want nil", m.OptionalForeignMessage) } if m.OneofField != nil { t.Errorf("m.OneofField = %p, want nil", m.OneofField) } if m.OneofOptional != nil { t.Errorf("m.OneofOptional = %p, want nil", m.OneofOptional) } if got := m.ProtoReflect().GetUnknown(); got != nil { t.Errorf("m.ProtoReflect().GetUnknown() = %d, want nil", got) } } golang-google-protobuf-1.27.1/proto/size.go000066400000000000000000000057611411250152500206320ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto import ( "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/encoding/messageset" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/runtime/protoiface" ) // Size returns the size in bytes of the wire-format encoding of m. func Size(m Message) int { return MarshalOptions{}.Size(m) } // Size returns the size in bytes of the wire-format encoding of m. func (o MarshalOptions) Size(m Message) int { // Treat a nil message interface as an empty message; nothing to output. if m == nil { return 0 } return o.size(m.ProtoReflect()) } // size is a centralized function that all size operations go through. // For profiling purposes, avoid changing the name of this function or // introducing other code paths for size that do not go through this. func (o MarshalOptions) size(m protoreflect.Message) (size int) { methods := protoMethods(m) if methods != nil && methods.Size != nil { out := methods.Size(protoiface.SizeInput{ Message: m, }) return out.Size } if methods != nil && methods.Marshal != nil { // This is not efficient, but we don't have any choice. // This case is mainly used for legacy types with a Marshal method. out, _ := methods.Marshal(protoiface.MarshalInput{ Message: m, }) return len(out.Buf) } return o.sizeMessageSlow(m) } func (o MarshalOptions) sizeMessageSlow(m protoreflect.Message) (size int) { if messageset.IsMessageSet(m.Descriptor()) { return o.sizeMessageSet(m) } m.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { size += o.sizeField(fd, v) return true }) size += len(m.GetUnknown()) return size } func (o MarshalOptions) sizeField(fd protoreflect.FieldDescriptor, value protoreflect.Value) (size int) { num := fd.Number() switch { case fd.IsList(): return o.sizeList(num, fd, value.List()) case fd.IsMap(): return o.sizeMap(num, fd, value.Map()) default: return protowire.SizeTag(num) + o.sizeSingular(num, fd.Kind(), value) } } func (o MarshalOptions) sizeList(num protowire.Number, fd protoreflect.FieldDescriptor, list protoreflect.List) (size int) { if fd.IsPacked() && list.Len() > 0 { content := 0 for i, llen := 0, list.Len(); i < llen; i++ { content += o.sizeSingular(num, fd.Kind(), list.Get(i)) } return protowire.SizeTag(num) + protowire.SizeBytes(content) } for i, llen := 0, list.Len(); i < llen; i++ { size += protowire.SizeTag(num) + o.sizeSingular(num, fd.Kind(), list.Get(i)) } return size } func (o MarshalOptions) sizeMap(num protowire.Number, fd protoreflect.FieldDescriptor, mapv protoreflect.Map) (size int) { mapv.Range(func(key protoreflect.MapKey, value protoreflect.Value) bool { size += protowire.SizeTag(num) size += protowire.SizeBytes(o.sizeField(fd.MapKey(), key.Value()) + o.sizeField(fd.MapValue(), value)) return true }) return size } golang-google-protobuf-1.27.1/proto/size_gen.go000066400000000000000000000035371411250152500214620ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by generate-types. DO NOT EDIT. package proto import ( "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/reflect/protoreflect" ) func (o MarshalOptions) sizeSingular(num protowire.Number, kind protoreflect.Kind, v protoreflect.Value) int { switch kind { case protoreflect.BoolKind: return protowire.SizeVarint(protowire.EncodeBool(v.Bool())) case protoreflect.EnumKind: return protowire.SizeVarint(uint64(v.Enum())) case protoreflect.Int32Kind: return protowire.SizeVarint(uint64(int32(v.Int()))) case protoreflect.Sint32Kind: return protowire.SizeVarint(protowire.EncodeZigZag(int64(int32(v.Int())))) case protoreflect.Uint32Kind: return protowire.SizeVarint(uint64(uint32(v.Uint()))) case protoreflect.Int64Kind: return protowire.SizeVarint(uint64(v.Int())) case protoreflect.Sint64Kind: return protowire.SizeVarint(protowire.EncodeZigZag(v.Int())) case protoreflect.Uint64Kind: return protowire.SizeVarint(v.Uint()) case protoreflect.Sfixed32Kind: return protowire.SizeFixed32() case protoreflect.Fixed32Kind: return protowire.SizeFixed32() case protoreflect.FloatKind: return protowire.SizeFixed32() case protoreflect.Sfixed64Kind: return protowire.SizeFixed64() case protoreflect.Fixed64Kind: return protowire.SizeFixed64() case protoreflect.DoubleKind: return protowire.SizeFixed64() case protoreflect.StringKind: return protowire.SizeBytes(len(v.String())) case protoreflect.BytesKind: return protowire.SizeBytes(len(v.Bytes())) case protoreflect.MessageKind: return protowire.SizeBytes(o.size(v.Message())) case protoreflect.GroupKind: return protowire.SizeGroup(num, o.size(v.Message())) default: return 0 } } golang-google-protobuf-1.27.1/proto/testmessages_test.go000066400000000000000000002206031411250152500234200ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto_test import ( "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/impl" "google.golang.org/protobuf/internal/protobuild" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/testing/protopack" legacypb "google.golang.org/protobuf/internal/testprotos/legacy" requiredpb "google.golang.org/protobuf/internal/testprotos/required" testpb "google.golang.org/protobuf/internal/testprotos/test" test3pb "google.golang.org/protobuf/internal/testprotos/test3" ) type testProto struct { desc string decodeTo []proto.Message wire []byte partial bool noEncode bool checkFastInit bool unmarshalOptions proto.UnmarshalOptions validationStatus impl.ValidationStatus nocheckValidInit bool } func makeMessages(in protobuild.Message, messages ...proto.Message) []proto.Message { if len(messages) == 0 { messages = []proto.Message{ &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}, &testpb.TestAllExtensions{}, } } for _, m := range messages { in.Build(m.ProtoReflect()) } return messages } func templateMessages(messages ...proto.Message) []protoreflect.MessageType { if len(messages) == 0 { messages = []proto.Message{ (*testpb.TestAllTypes)(nil), (*test3pb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), } } var out []protoreflect.MessageType for _, m := range messages { out = append(out, m.ProtoReflect().Type()) } return out } var testValidMessages = []testProto{ { desc: "basic scalar types", checkFastInit: true, decodeTo: makeMessages(protobuild.Message{ "optional_int32": 1001, "optional_int64": 1002, "optional_uint32": 1003, "optional_uint64": 1004, "optional_sint32": 1005, "optional_sint64": 1006, "optional_fixed32": 1007, "optional_fixed64": 1008, "optional_sfixed32": 1009, "optional_sfixed64": 1010, "optional_float": 1011.5, "optional_double": 1012.5, "optional_bool": true, "optional_string": "string", "optional_bytes": []byte("bytes"), "optional_nested_enum": "BAR", }), wire: protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1001), protopack.Tag{2, protopack.VarintType}, protopack.Varint(1002), protopack.Tag{3, protopack.VarintType}, protopack.Uvarint(1003), protopack.Tag{4, protopack.VarintType}, protopack.Uvarint(1004), protopack.Tag{5, protopack.VarintType}, protopack.Svarint(1005), protopack.Tag{6, protopack.VarintType}, protopack.Svarint(1006), protopack.Tag{7, protopack.Fixed32Type}, protopack.Uint32(1007), protopack.Tag{8, protopack.Fixed64Type}, protopack.Uint64(1008), protopack.Tag{9, protopack.Fixed32Type}, protopack.Int32(1009), protopack.Tag{10, protopack.Fixed64Type}, protopack.Int64(1010), protopack.Tag{11, protopack.Fixed32Type}, protopack.Float32(1011.5), protopack.Tag{12, protopack.Fixed64Type}, protopack.Float64(1012.5), protopack.Tag{13, protopack.VarintType}, protopack.Bool(true), protopack.Tag{14, protopack.BytesType}, protopack.String("string"), protopack.Tag{15, protopack.BytesType}, protopack.Bytes([]byte("bytes")), protopack.Tag{21, protopack.VarintType}, protopack.Varint(int(testpb.TestAllTypes_BAR)), }.Marshal(), }, { desc: "zero values", decodeTo: makeMessages(protobuild.Message{ "optional_int32": 0, "optional_int64": 0, "optional_uint32": 0, "optional_uint64": 0, "optional_sint32": 0, "optional_sint64": 0, "optional_fixed32": 0, "optional_fixed64": 0, "optional_sfixed32": 0, "optional_sfixed64": 0, "optional_float": 0, "optional_double": 0, "optional_bool": false, "optional_string": "", "optional_bytes": []byte{}, }), wire: protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(0), protopack.Tag{2, protopack.VarintType}, protopack.Varint(0), protopack.Tag{3, protopack.VarintType}, protopack.Uvarint(0), protopack.Tag{4, protopack.VarintType}, protopack.Uvarint(0), protopack.Tag{5, protopack.VarintType}, protopack.Svarint(0), protopack.Tag{6, protopack.VarintType}, protopack.Svarint(0), protopack.Tag{7, protopack.Fixed32Type}, protopack.Uint32(0), protopack.Tag{8, protopack.Fixed64Type}, protopack.Uint64(0), protopack.Tag{9, protopack.Fixed32Type}, protopack.Int32(0), protopack.Tag{10, protopack.Fixed64Type}, protopack.Int64(0), protopack.Tag{11, protopack.Fixed32Type}, protopack.Float32(0), protopack.Tag{12, protopack.Fixed64Type}, protopack.Float64(0), protopack.Tag{13, protopack.VarintType}, protopack.Bool(false), protopack.Tag{14, protopack.BytesType}, protopack.String(""), protopack.Tag{15, protopack.BytesType}, protopack.Bytes(nil), }.Marshal(), }, { desc: "proto3 zero values", decodeTo: makeMessages(protobuild.Message{ "singular_int32": 0, "singular_int64": 0, "singular_uint32": 0, "singular_uint64": 0, "singular_sint32": 0, "singular_sint64": 0, "singular_fixed32": 0, "singular_fixed64": 0, "singular_sfixed32": 0, "singular_sfixed64": 0, "singular_float": 0, "singular_double": 0, "singular_bool": false, "singular_string": "", "singular_bytes": []byte{}, }, &test3pb.TestAllTypes{}), wire: protopack.Message{ protopack.Tag{81, protopack.VarintType}, protopack.Varint(0), protopack.Tag{82, protopack.VarintType}, protopack.Varint(0), protopack.Tag{83, protopack.VarintType}, protopack.Uvarint(0), protopack.Tag{84, protopack.VarintType}, protopack.Uvarint(0), protopack.Tag{85, protopack.VarintType}, protopack.Svarint(0), protopack.Tag{86, protopack.VarintType}, protopack.Svarint(0), protopack.Tag{87, protopack.Fixed32Type}, protopack.Uint32(0), protopack.Tag{88, protopack.Fixed64Type}, protopack.Uint64(0), protopack.Tag{89, protopack.Fixed32Type}, protopack.Int32(0), protopack.Tag{90, protopack.Fixed64Type}, protopack.Int64(0), protopack.Tag{91, protopack.Fixed32Type}, protopack.Float32(0), protopack.Tag{92, protopack.Fixed64Type}, protopack.Float64(0), protopack.Tag{93, protopack.VarintType}, protopack.Bool(false), protopack.Tag{94, protopack.BytesType}, protopack.String(""), protopack.Tag{95, protopack.BytesType}, protopack.Bytes(nil), }.Marshal(), }, { desc: "groups", decodeTo: makeMessages(protobuild.Message{ "optionalgroup": protobuild.Message{ "a": 1017, "same_field_number": 1016, }, }, &testpb.TestAllTypes{}, &testpb.TestAllExtensions{}), wire: protopack.Message{ protopack.Tag{16, protopack.StartGroupType}, protopack.Tag{17, protopack.VarintType}, protopack.Varint(1017), protopack.Tag{16, protopack.VarintType}, protopack.Varint(1016), protopack.Tag{16, protopack.EndGroupType}, }.Marshal(), }, { desc: "groups (field overridden)", decodeTo: makeMessages(protobuild.Message{ "optionalgroup": protobuild.Message{ "a": 2, }, }, &testpb.TestAllTypes{}, &testpb.TestAllExtensions{}), wire: protopack.Message{ protopack.Tag{16, protopack.StartGroupType}, protopack.Tag{17, protopack.VarintType}, protopack.Varint(1), protopack.Tag{16, protopack.EndGroupType}, protopack.Tag{16, protopack.StartGroupType}, protopack.Tag{17, protopack.VarintType}, protopack.Varint(2), protopack.Tag{16, protopack.EndGroupType}, }.Marshal(), }, { desc: "messages", decodeTo: makeMessages(protobuild.Message{ "optional_nested_message": protobuild.Message{ "a": 42, "corecursive": protobuild.Message{ "optional_int32": 43, }, }, }), wire: protopack.Message{ protopack.Tag{18, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(42), protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(43), }), }), }.Marshal(), }, { desc: "messages (split across multiple tags)", decodeTo: makeMessages(protobuild.Message{ "optional_nested_message": protobuild.Message{ "a": 42, "corecursive": protobuild.Message{ "optional_int32": 43, }, }, }), wire: protopack.Message{ protopack.Tag{18, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(42), }), protopack.Tag{18, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(43), }), }), }.Marshal(), }, { desc: "messages (field overridden)", decodeTo: makeMessages(protobuild.Message{ "optional_nested_message": protobuild.Message{ "a": 2, }, }), wire: protopack.Message{ protopack.Tag{18, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1), }), protopack.Tag{18, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(2), }), }.Marshal(), }, { desc: "basic repeated types", decodeTo: makeMessages(protobuild.Message{ "repeated_int32": []int32{1001, 2001}, "repeated_int64": []int64{1002, 2002}, "repeated_uint32": []uint32{1003, 2003}, "repeated_uint64": []uint64{1004, 2004}, "repeated_sint32": []int32{1005, 2005}, "repeated_sint64": []int64{1006, 2006}, "repeated_fixed32": []uint32{1007, 2007}, "repeated_fixed64": []uint64{1008, 2008}, "repeated_sfixed32": []int32{1009, 2009}, "repeated_sfixed64": []int64{1010, 2010}, "repeated_float": []float32{1011.5, 2011.5}, "repeated_double": []float64{1012.5, 2012.5}, "repeated_bool": []bool{true, false}, "repeated_string": []string{"foo", "bar"}, "repeated_bytes": []string{"FOO", "BAR"}, "repeated_nested_enum": []string{"FOO", "BAR"}, }), wire: protopack.Message{ protopack.Tag{31, protopack.VarintType}, protopack.Varint(1001), protopack.Tag{31, protopack.VarintType}, protopack.Varint(2001), protopack.Tag{32, protopack.VarintType}, protopack.Varint(1002), protopack.Tag{32, protopack.VarintType}, protopack.Varint(2002), protopack.Tag{33, protopack.VarintType}, protopack.Uvarint(1003), protopack.Tag{33, protopack.VarintType}, protopack.Uvarint(2003), protopack.Tag{34, protopack.VarintType}, protopack.Uvarint(1004), protopack.Tag{34, protopack.VarintType}, protopack.Uvarint(2004), protopack.Tag{35, protopack.VarintType}, protopack.Svarint(1005), protopack.Tag{35, protopack.VarintType}, protopack.Svarint(2005), protopack.Tag{36, protopack.VarintType}, protopack.Svarint(1006), protopack.Tag{36, protopack.VarintType}, protopack.Svarint(2006), protopack.Tag{37, protopack.Fixed32Type}, protopack.Uint32(1007), protopack.Tag{37, protopack.Fixed32Type}, protopack.Uint32(2007), protopack.Tag{38, protopack.Fixed64Type}, protopack.Uint64(1008), protopack.Tag{38, protopack.Fixed64Type}, protopack.Uint64(2008), protopack.Tag{39, protopack.Fixed32Type}, protopack.Int32(1009), protopack.Tag{39, protopack.Fixed32Type}, protopack.Int32(2009), protopack.Tag{40, protopack.Fixed64Type}, protopack.Int64(1010), protopack.Tag{40, protopack.Fixed64Type}, protopack.Int64(2010), protopack.Tag{41, protopack.Fixed32Type}, protopack.Float32(1011.5), protopack.Tag{41, protopack.Fixed32Type}, protopack.Float32(2011.5), protopack.Tag{42, protopack.Fixed64Type}, protopack.Float64(1012.5), protopack.Tag{42, protopack.Fixed64Type}, protopack.Float64(2012.5), protopack.Tag{43, protopack.VarintType}, protopack.Bool(true), protopack.Tag{43, protopack.VarintType}, protopack.Bool(false), protopack.Tag{44, protopack.BytesType}, protopack.String("foo"), protopack.Tag{44, protopack.BytesType}, protopack.String("bar"), protopack.Tag{45, protopack.BytesType}, protopack.Bytes([]byte("FOO")), protopack.Tag{45, protopack.BytesType}, protopack.Bytes([]byte("BAR")), protopack.Tag{51, protopack.VarintType}, protopack.Varint(int(testpb.TestAllTypes_FOO)), protopack.Tag{51, protopack.VarintType}, protopack.Varint(int(testpb.TestAllTypes_BAR)), }.Marshal(), }, { desc: "basic repeated types (packed encoding)", decodeTo: makeMessages(protobuild.Message{ "repeated_int32": []int32{1001, 2001}, "repeated_int64": []int64{1002, 2002}, "repeated_uint32": []uint32{1003, 2003}, "repeated_uint64": []uint64{1004, 2004}, "repeated_sint32": []int32{1005, 2005}, "repeated_sint64": []int64{1006, 2006}, "repeated_fixed32": []uint32{1007, 2007}, "repeated_fixed64": []uint64{1008, 2008}, "repeated_sfixed32": []int32{1009, 2009}, "repeated_sfixed64": []int64{1010, 2010}, "repeated_float": []float32{1011.5, 2011.5}, "repeated_double": []float64{1012.5, 2012.5}, "repeated_bool": []bool{true, false}, "repeated_nested_enum": []string{"FOO", "BAR"}, }), wire: protopack.Message{ protopack.Tag{31, protopack.BytesType}, protopack.LengthPrefix{ protopack.Varint(1001), protopack.Varint(2001), }, protopack.Tag{32, protopack.BytesType}, protopack.LengthPrefix{ protopack.Varint(1002), protopack.Varint(2002), }, protopack.Tag{33, protopack.BytesType}, protopack.LengthPrefix{ protopack.Uvarint(1003), protopack.Uvarint(2003), }, protopack.Tag{34, protopack.BytesType}, protopack.LengthPrefix{ protopack.Uvarint(1004), protopack.Uvarint(2004), }, protopack.Tag{35, protopack.BytesType}, protopack.LengthPrefix{ protopack.Svarint(1005), protopack.Svarint(2005), }, protopack.Tag{36, protopack.BytesType}, protopack.LengthPrefix{ protopack.Svarint(1006), protopack.Svarint(2006), }, protopack.Tag{37, protopack.BytesType}, protopack.LengthPrefix{ protopack.Uint32(1007), protopack.Uint32(2007), }, protopack.Tag{38, protopack.BytesType}, protopack.LengthPrefix{ protopack.Uint64(1008), protopack.Uint64(2008), }, protopack.Tag{39, protopack.BytesType}, protopack.LengthPrefix{ protopack.Int32(1009), protopack.Int32(2009), }, protopack.Tag{40, protopack.BytesType}, protopack.LengthPrefix{ protopack.Int64(1010), protopack.Int64(2010), }, protopack.Tag{41, protopack.BytesType}, protopack.LengthPrefix{ protopack.Float32(1011.5), protopack.Float32(2011.5), }, protopack.Tag{42, protopack.BytesType}, protopack.LengthPrefix{ protopack.Float64(1012.5), protopack.Float64(2012.5), }, protopack.Tag{43, protopack.BytesType}, protopack.LengthPrefix{ protopack.Bool(true), protopack.Bool(false), }, protopack.Tag{51, protopack.BytesType}, protopack.LengthPrefix{ protopack.Varint(int(testpb.TestAllTypes_FOO)), protopack.Varint(int(testpb.TestAllTypes_BAR)), }, }.Marshal(), }, { desc: "basic repeated types (zero-length packed encoding)", decodeTo: makeMessages(protobuild.Message{ "repeated_int32": []int32{}, "repeated_int64": []int64{}, "repeated_uint32": []uint32{}, "repeated_uint64": []uint64{}, "repeated_sint32": []int32{}, "repeated_sint64": []int64{}, "repeated_fixed32": []uint32{}, "repeated_fixed64": []uint64{}, "repeated_sfixed32": []int32{}, "repeated_sfixed64": []int64{}, "repeated_float": []float32{}, "repeated_double": []float64{}, "repeated_bool": []bool{}, "repeated_nested_enum": []string{}, }), wire: protopack.Message{ protopack.Tag{31, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{32, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{33, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{34, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{35, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{36, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{37, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{38, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{39, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{40, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{41, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{42, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{43, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{51, protopack.BytesType}, protopack.LengthPrefix{}, }.Marshal(), }, { desc: "packed repeated types", decodeTo: makeMessages(protobuild.Message{ "packed_int32": []int32{1001, 2001}, "packed_int64": []int64{1002, 2002}, "packed_uint32": []uint32{1003, 2003}, "packed_uint64": []uint64{1004, 2004}, "packed_sint32": []int32{1005, 2005}, "packed_sint64": []int64{1006, 2006}, "packed_fixed32": []uint32{1007, 2007}, "packed_fixed64": []uint64{1008, 2008}, "packed_sfixed32": []int32{1009, 2009}, "packed_sfixed64": []int64{1010, 2010}, "packed_float": []float32{1011.5, 2011.5}, "packed_double": []float64{1012.5, 2012.5}, "packed_bool": []bool{true, false}, "packed_enum": []string{"FOREIGN_FOO", "FOREIGN_BAR"}, }, &testpb.TestPackedTypes{}, &testpb.TestPackedExtensions{}), wire: protopack.Message{ protopack.Tag{90, protopack.BytesType}, protopack.LengthPrefix{ protopack.Varint(1001), protopack.Varint(2001), }, protopack.Tag{91, protopack.BytesType}, protopack.LengthPrefix{ protopack.Varint(1002), protopack.Varint(2002), }, protopack.Tag{92, protopack.BytesType}, protopack.LengthPrefix{ protopack.Uvarint(1003), protopack.Uvarint(2003), }, protopack.Tag{93, protopack.BytesType}, protopack.LengthPrefix{ protopack.Uvarint(1004), protopack.Uvarint(2004), }, protopack.Tag{94, protopack.BytesType}, protopack.LengthPrefix{ protopack.Svarint(1005), protopack.Svarint(2005), }, protopack.Tag{95, protopack.BytesType}, protopack.LengthPrefix{ protopack.Svarint(1006), protopack.Svarint(2006), }, protopack.Tag{96, protopack.BytesType}, protopack.LengthPrefix{ protopack.Uint32(1007), protopack.Uint32(2007), }, protopack.Tag{97, protopack.BytesType}, protopack.LengthPrefix{ protopack.Uint64(1008), protopack.Uint64(2008), }, protopack.Tag{98, protopack.BytesType}, protopack.LengthPrefix{ protopack.Int32(1009), protopack.Int32(2009), }, protopack.Tag{99, protopack.BytesType}, protopack.LengthPrefix{ protopack.Int64(1010), protopack.Int64(2010), }, protopack.Tag{100, protopack.BytesType}, protopack.LengthPrefix{ protopack.Float32(1011.5), protopack.Float32(2011.5), }, protopack.Tag{101, protopack.BytesType}, protopack.LengthPrefix{ protopack.Float64(1012.5), protopack.Float64(2012.5), }, protopack.Tag{102, protopack.BytesType}, protopack.LengthPrefix{ protopack.Bool(true), protopack.Bool(false), }, protopack.Tag{103, protopack.BytesType}, protopack.LengthPrefix{ protopack.Varint(int(testpb.ForeignEnum_FOREIGN_FOO)), protopack.Varint(int(testpb.ForeignEnum_FOREIGN_BAR)), }, }.Marshal(), }, { desc: "packed repeated types (zero length)", decodeTo: makeMessages(protobuild.Message{ "packed_int32": []int32{}, "packed_int64": []int64{}, "packed_uint32": []uint32{}, "packed_uint64": []uint64{}, "packed_sint32": []int32{}, "packed_sint64": []int64{}, "packed_fixed32": []uint32{}, "packed_fixed64": []uint64{}, "packed_sfixed32": []int32{}, "packed_sfixed64": []int64{}, "packed_float": []float32{}, "packed_double": []float64{}, "packed_bool": []bool{}, "packed_enum": []string{}, }, &testpb.TestPackedTypes{}, &testpb.TestPackedExtensions{}), wire: protopack.Message{ protopack.Tag{90, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{91, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{92, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{93, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{94, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{95, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{96, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{97, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{98, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{99, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{100, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{101, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{102, protopack.BytesType}, protopack.LengthPrefix{}, protopack.Tag{103, protopack.BytesType}, protopack.LengthPrefix{}, }.Marshal(), }, { desc: "repeated messages", decodeTo: makeMessages(protobuild.Message{ "repeated_nested_message": []protobuild.Message{ {"a": 1}, {}, {"a": 2}, }, }), wire: protopack.Message{ protopack.Tag{48, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1), }), protopack.Tag{48, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{}), protopack.Tag{48, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(2), }), }.Marshal(), }, { desc: "repeated nil messages", decodeTo: []proto.Message{&testpb.TestAllTypes{ RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{ {A: proto.Int32(1)}, nil, {A: proto.Int32(2)}, }, }, &test3pb.TestAllTypes{ RepeatedNestedMessage: []*test3pb.TestAllTypes_NestedMessage{ {A: 1}, nil, {A: 2}, }, }, build( &testpb.TestAllExtensions{}, extend(testpb.E_RepeatedNestedMessage, []*testpb.TestAllExtensions_NestedMessage{ {A: proto.Int32(1)}, nil, {A: proto.Int32(2)}, }), )}, wire: protopack.Message{ protopack.Tag{48, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1), }), protopack.Tag{48, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{}), protopack.Tag{48, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(2), }), }.Marshal(), }, { desc: "repeated groups", decodeTo: makeMessages(protobuild.Message{ "repeatedgroup": []protobuild.Message{ {"a": 1017}, {}, {"a": 2017}, }, }, &testpb.TestAllTypes{}, &testpb.TestAllExtensions{}), wire: protopack.Message{ protopack.Tag{46, protopack.StartGroupType}, protopack.Tag{47, protopack.VarintType}, protopack.Varint(1017), protopack.Tag{46, protopack.EndGroupType}, protopack.Tag{46, protopack.StartGroupType}, protopack.Tag{46, protopack.EndGroupType}, protopack.Tag{46, protopack.StartGroupType}, protopack.Tag{47, protopack.VarintType}, protopack.Varint(2017), protopack.Tag{46, protopack.EndGroupType}, }.Marshal(), }, { desc: "repeated nil groups", decodeTo: []proto.Message{&testpb.TestAllTypes{ Repeatedgroup: []*testpb.TestAllTypes_RepeatedGroup{ {A: proto.Int32(1017)}, nil, {A: proto.Int32(2017)}, }, }, build( &testpb.TestAllExtensions{}, extend(testpb.E_Repeatedgroup, []*testpb.RepeatedGroup{ {A: proto.Int32(1017)}, nil, {A: proto.Int32(2017)}, }), )}, wire: protopack.Message{ protopack.Tag{46, protopack.StartGroupType}, protopack.Tag{47, protopack.VarintType}, protopack.Varint(1017), protopack.Tag{46, protopack.EndGroupType}, protopack.Tag{46, protopack.StartGroupType}, protopack.Tag{46, protopack.EndGroupType}, protopack.Tag{46, protopack.StartGroupType}, protopack.Tag{47, protopack.VarintType}, protopack.Varint(2017), protopack.Tag{46, protopack.EndGroupType}, }.Marshal(), }, { desc: "maps", decodeTo: makeMessages(protobuild.Message{ "map_int32_int32": map[int32]int32{1056: 1156, 2056: 2156}, "map_int64_int64": map[int64]int64{1057: 1157, 2057: 2157}, "map_uint32_uint32": map[uint32]uint32{1058: 1158, 2058: 2158}, "map_uint64_uint64": map[uint64]uint64{1059: 1159, 2059: 2159}, "map_sint32_sint32": map[int32]int32{1060: 1160, 2060: 2160}, "map_sint64_sint64": map[int64]int64{1061: 1161, 2061: 2161}, "map_fixed32_fixed32": map[uint32]uint32{1062: 1162, 2062: 2162}, "map_fixed64_fixed64": map[uint64]uint64{1063: 1163, 2063: 2163}, "map_sfixed32_sfixed32": map[int32]int32{1064: 1164, 2064: 2164}, "map_sfixed64_sfixed64": map[int64]int64{1065: 1165, 2065: 2165}, "map_int32_float": map[int32]float32{1066: 1166.5, 2066: 2166.5}, "map_int32_double": map[int32]float64{1067: 1167.5, 2067: 2167.5}, "map_bool_bool": map[bool]bool{true: false, false: true}, "map_string_string": map[string]string{"69.1.key": "69.1.val", "69.2.key": "69.2.val"}, "map_string_bytes": map[string][]byte{"70.1.key": []byte("70.1.val"), "70.2.key": []byte("70.2.val")}, "map_string_nested_message": map[string]protobuild.Message{ "71.1.key": {"a": 1171}, "71.2.key": {"a": 2171}, }, "map_string_nested_enum": map[string]string{"73.1.key": "FOO", "73.2.key": "BAR"}, }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}), wire: protopack.Message{ protopack.Tag{56, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1056), protopack.Tag{2, protopack.VarintType}, protopack.Varint(1156), }), protopack.Tag{56, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(2056), protopack.Tag{2, protopack.VarintType}, protopack.Varint(2156), }), protopack.Tag{57, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1057), protopack.Tag{2, protopack.VarintType}, protopack.Varint(1157), }), protopack.Tag{57, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(2057), protopack.Tag{2, protopack.VarintType}, protopack.Varint(2157), }), protopack.Tag{58, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1058), protopack.Tag{2, protopack.VarintType}, protopack.Varint(1158), }), protopack.Tag{58, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(2058), protopack.Tag{2, protopack.VarintType}, protopack.Varint(2158), }), protopack.Tag{59, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1059), protopack.Tag{2, protopack.VarintType}, protopack.Varint(1159), }), protopack.Tag{59, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(2059), protopack.Tag{2, protopack.VarintType}, protopack.Varint(2159), }), protopack.Tag{60, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Svarint(1060), protopack.Tag{2, protopack.VarintType}, protopack.Svarint(1160), }), protopack.Tag{60, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Svarint(2060), protopack.Tag{2, protopack.VarintType}, protopack.Svarint(2160), }), protopack.Tag{61, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Svarint(1061), protopack.Tag{2, protopack.VarintType}, protopack.Svarint(1161), }), protopack.Tag{61, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Svarint(2061), protopack.Tag{2, protopack.VarintType}, protopack.Svarint(2161), }), protopack.Tag{62, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.Fixed32Type}, protopack.Int32(1062), protopack.Tag{2, protopack.Fixed32Type}, protopack.Int32(1162), }), protopack.Tag{62, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.Fixed32Type}, protopack.Int32(2062), protopack.Tag{2, protopack.Fixed32Type}, protopack.Int32(2162), }), protopack.Tag{63, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.Fixed64Type}, protopack.Int64(1063), protopack.Tag{2, protopack.Fixed64Type}, protopack.Int64(1163), }), protopack.Tag{63, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.Fixed64Type}, protopack.Int64(2063), protopack.Tag{2, protopack.Fixed64Type}, protopack.Int64(2163), }), protopack.Tag{64, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.Fixed32Type}, protopack.Int32(1064), protopack.Tag{2, protopack.Fixed32Type}, protopack.Int32(1164), }), protopack.Tag{64, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.Fixed32Type}, protopack.Int32(2064), protopack.Tag{2, protopack.Fixed32Type}, protopack.Int32(2164), }), protopack.Tag{65, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.Fixed64Type}, protopack.Int64(1065), protopack.Tag{2, protopack.Fixed64Type}, protopack.Int64(1165), }), protopack.Tag{65, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.Fixed64Type}, protopack.Int64(2065), protopack.Tag{2, protopack.Fixed64Type}, protopack.Int64(2165), }), protopack.Tag{66, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1066), protopack.Tag{2, protopack.Fixed32Type}, protopack.Float32(1166.5), }), protopack.Tag{66, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(2066), protopack.Tag{2, protopack.Fixed32Type}, protopack.Float32(2166.5), }), protopack.Tag{67, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1067), protopack.Tag{2, protopack.Fixed64Type}, protopack.Float64(1167.5), }), protopack.Tag{67, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(2067), protopack.Tag{2, protopack.Fixed64Type}, protopack.Float64(2167.5), }), protopack.Tag{68, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Bool(true), protopack.Tag{2, protopack.VarintType}, protopack.Bool(false), }), protopack.Tag{68, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Bool(false), protopack.Tag{2, protopack.VarintType}, protopack.Bool(true), }), protopack.Tag{69, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.String("69.1.key"), protopack.Tag{2, protopack.BytesType}, protopack.String("69.1.val"), }), protopack.Tag{69, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.String("69.2.key"), protopack.Tag{2, protopack.BytesType}, protopack.String("69.2.val"), }), protopack.Tag{70, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.String("70.1.key"), protopack.Tag{2, protopack.BytesType}, protopack.String("70.1.val"), }), protopack.Tag{70, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.String("70.2.key"), protopack.Tag{2, protopack.BytesType}, protopack.String("70.2.val"), }), protopack.Tag{71, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.String("71.1.key"), protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1171), }), }), protopack.Tag{71, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.String("71.2.key"), protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(2171), }), }), protopack.Tag{73, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.String("73.1.key"), protopack.Tag{2, protopack.VarintType}, protopack.Varint(int(testpb.TestAllTypes_FOO)), }), protopack.Tag{73, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.String("73.2.key"), protopack.Tag{2, protopack.VarintType}, protopack.Varint(int(testpb.TestAllTypes_BAR)), }), }.Marshal(), }, { desc: "map with value before key", decodeTo: makeMessages(protobuild.Message{ "map_int32_int32": map[int32]int32{1056: 1156}, "map_string_nested_message": map[string]protobuild.Message{ "71.1.key": {"a": 1171}, }, }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}), wire: protopack.Message{ protopack.Tag{56, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{2, protopack.VarintType}, protopack.Varint(1156), protopack.Tag{1, protopack.VarintType}, protopack.Varint(1056), }), protopack.Tag{71, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1171), }), protopack.Tag{1, protopack.BytesType}, protopack.String("71.1.key"), }), }.Marshal(), }, { desc: "map with repeated key and value", decodeTo: makeMessages(protobuild.Message{ "map_int32_int32": map[int32]int32{1056: 1156}, "map_string_nested_message": map[string]protobuild.Message{ "71.1.key": {"a": 1171}, }, }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}), wire: protopack.Message{ protopack.Tag{56, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(0), protopack.Tag{2, protopack.VarintType}, protopack.Varint(0), protopack.Tag{1, protopack.VarintType}, protopack.Varint(1056), protopack.Tag{2, protopack.VarintType}, protopack.Varint(1156), }), protopack.Tag{71, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.String(""), protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{}), protopack.Tag{1, protopack.BytesType}, protopack.String("71.1.key"), protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1171), }), }), }.Marshal(), }, { desc: "oneof (uint32)", decodeTo: makeMessages(protobuild.Message{ "oneof_uint32": 1111, }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}), wire: protopack.Message{protopack.Tag{111, protopack.VarintType}, protopack.Varint(1111)}.Marshal(), }, { desc: "oneof (message)", decodeTo: makeMessages(protobuild.Message{ "oneof_nested_message": protobuild.Message{ "a": 1112, }, }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}), wire: protopack.Message{protopack.Tag{112, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Message{protopack.Tag{1, protopack.VarintType}, protopack.Varint(1112)}, })}.Marshal(), }, { desc: "oneof (empty message)", decodeTo: makeMessages(protobuild.Message{ "oneof_nested_message": protobuild.Message{}, }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}), wire: protopack.Message{protopack.Tag{112, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{})}.Marshal(), }, { desc: "oneof (merged message)", decodeTo: makeMessages(protobuild.Message{ "oneof_nested_message": protobuild.Message{ "a": 1, "corecursive": protobuild.Message{ "optional_int32": 43, }, }, }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}), wire: protopack.Message{ protopack.Tag{112, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Message{protopack.Tag{1, protopack.VarintType}, protopack.Varint(1)}, }), protopack.Tag{112, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(43), }), }), }.Marshal(), }, { desc: "oneof (group)", decodeTo: makeMessages(protobuild.Message{ "oneofgroup": protobuild.Message{ "a": 1, }, }, &testpb.TestAllTypes{}), wire: protopack.Message{ protopack.Tag{121, protopack.StartGroupType}, protopack.Tag{1, protopack.VarintType}, protopack.Varint(1), protopack.Tag{121, protopack.EndGroupType}, }.Marshal(), }, { desc: "oneof (empty group)", decodeTo: makeMessages(protobuild.Message{ "oneofgroup": protobuild.Message{}, }, &testpb.TestAllTypes{}), wire: protopack.Message{ protopack.Tag{121, protopack.StartGroupType}, protopack.Tag{121, protopack.EndGroupType}, }.Marshal(), }, { desc: "oneof (merged group)", decodeTo: makeMessages(protobuild.Message{ "oneofgroup": protobuild.Message{ "a": 1, "b": 2, }, }, &testpb.TestAllTypes{}), wire: protopack.Message{ protopack.Tag{121, protopack.StartGroupType}, protopack.Tag{1, protopack.VarintType}, protopack.Varint(1), protopack.Tag{121, protopack.EndGroupType}, protopack.Tag{121, protopack.StartGroupType}, protopack.Tag{2, protopack.VarintType}, protopack.Varint(2), protopack.Tag{121, protopack.EndGroupType}, }.Marshal(), }, { desc: "oneof (string)", decodeTo: makeMessages(protobuild.Message{ "oneof_string": "1113", }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}), wire: protopack.Message{protopack.Tag{113, protopack.BytesType}, protopack.String("1113")}.Marshal(), }, { desc: "oneof (bytes)", decodeTo: makeMessages(protobuild.Message{ "oneof_bytes": "1114", }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}), wire: protopack.Message{protopack.Tag{114, protopack.BytesType}, protopack.String("1114")}.Marshal(), }, { desc: "oneof (bool)", decodeTo: makeMessages(protobuild.Message{ "oneof_bool": true, }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}), wire: protopack.Message{protopack.Tag{115, protopack.VarintType}, protopack.Bool(true)}.Marshal(), }, { desc: "oneof (uint64)", decodeTo: makeMessages(protobuild.Message{ "oneof_uint64": 116, }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}), wire: protopack.Message{protopack.Tag{116, protopack.VarintType}, protopack.Varint(116)}.Marshal(), }, { desc: "oneof (float)", decodeTo: makeMessages(protobuild.Message{ "oneof_float": 117.5, }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}), wire: protopack.Message{protopack.Tag{117, protopack.Fixed32Type}, protopack.Float32(117.5)}.Marshal(), }, { desc: "oneof (double)", decodeTo: makeMessages(protobuild.Message{ "oneof_double": 118.5, }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}), wire: protopack.Message{protopack.Tag{118, protopack.Fixed64Type}, protopack.Float64(118.5)}.Marshal(), }, { desc: "oneof (enum)", decodeTo: makeMessages(protobuild.Message{ "oneof_enum": "BAR", }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}), wire: protopack.Message{protopack.Tag{119, protopack.VarintType}, protopack.Varint(int(testpb.TestAllTypes_BAR))}.Marshal(), }, { desc: "oneof (zero)", decodeTo: makeMessages(protobuild.Message{ "oneof_uint64": 0, }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}), wire: protopack.Message{protopack.Tag{116, protopack.VarintType}, protopack.Varint(0)}.Marshal(), }, { desc: "oneof (overridden value)", decodeTo: makeMessages(protobuild.Message{ "oneof_uint64": 2, }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}), wire: protopack.Message{ protopack.Tag{111, protopack.VarintType}, protopack.Varint(1), protopack.Tag{116, protopack.VarintType}, protopack.Varint(2), }.Marshal(), }, // TODO: More unknown field tests for ordering, repeated fields, etc. // // It is currently impossible to produce results that the v1 Equal // considers equivalent to those of the v1 decoder. Figure out if // that's a problem or not. { desc: "unknown fields", checkFastInit: true, decodeTo: makeMessages(protobuild.Message{ protobuild.Unknown: protopack.Message{ protopack.Tag{100000, protopack.VarintType}, protopack.Varint(1), }.Marshal(), }), wire: protopack.Message{ protopack.Tag{100000, protopack.VarintType}, protopack.Varint(1), }.Marshal(), }, { desc: "discarded unknown fields", unmarshalOptions: proto.UnmarshalOptions{ DiscardUnknown: true, }, decodeTo: makeMessages(protobuild.Message{}), wire: protopack.Message{ protopack.Tag{100000, protopack.VarintType}, protopack.Varint(1), }.Marshal(), }, { desc: "field type mismatch", decodeTo: makeMessages(protobuild.Message{ protobuild.Unknown: protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.String("string"), }.Marshal(), }), wire: protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.String("string"), }.Marshal(), }, { desc: "map field element mismatch", decodeTo: makeMessages(protobuild.Message{ "map_int32_int32": map[int32]int32{1: 0}, }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}), wire: protopack.Message{ protopack.Tag{56, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1), protopack.Tag{2, protopack.BytesType}, protopack.String("string"), }), }.Marshal(), }, { desc: "required field in nil message unset", checkFastInit: true, partial: true, decodeTo: []proto.Message{(*testpb.TestRequired)(nil)}, }, { desc: "required int32 unset", checkFastInit: true, partial: true, decodeTo: makeMessages(protobuild.Message{}, &requiredpb.Int32{}), }, { desc: "required int32 set", checkFastInit: true, decodeTo: makeMessages(protobuild.Message{ "v": 1, }, &requiredpb.Int32{}), wire: protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1), }.Marshal(), }, { desc: "required fixed32 unset", checkFastInit: true, partial: true, decodeTo: makeMessages(protobuild.Message{}, &requiredpb.Fixed32{}), }, { desc: "required fixed32 set", checkFastInit: true, decodeTo: makeMessages(protobuild.Message{ "v": 1, }, &requiredpb.Fixed32{}), wire: protopack.Message{ protopack.Tag{1, protopack.Fixed32Type}, protopack.Int32(1), }.Marshal(), }, { desc: "required fixed64 unset", checkFastInit: true, partial: true, decodeTo: makeMessages(protobuild.Message{}, &requiredpb.Fixed64{}), }, { desc: "required fixed64 set", checkFastInit: true, decodeTo: makeMessages(protobuild.Message{ "v": 1, }, &requiredpb.Fixed64{}), wire: protopack.Message{ protopack.Tag{1, protopack.Fixed64Type}, protopack.Int64(1), }.Marshal(), }, { desc: "required bytes unset", checkFastInit: true, partial: true, decodeTo: makeMessages(protobuild.Message{}, &requiredpb.Bytes{}), }, { desc: "required bytes set", checkFastInit: true, decodeTo: makeMessages(protobuild.Message{ "v": "", }, &requiredpb.Bytes{}), wire: protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.Bytes(nil), }.Marshal(), }, { desc: "required message unset", checkFastInit: true, partial: true, decodeTo: makeMessages(protobuild.Message{}, &requiredpb.Message{}), }, { desc: "required message set", checkFastInit: true, decodeTo: makeMessages(protobuild.Message{ "v": protobuild.Message{}, }, &requiredpb.Message{}), wire: protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{}), }.Marshal(), }, { desc: "required group unset", checkFastInit: true, partial: true, decodeTo: makeMessages(protobuild.Message{}, &requiredpb.Group{}), }, { desc: "required group set", checkFastInit: true, decodeTo: makeMessages(protobuild.Message{ "group": protobuild.Message{}, }, &requiredpb.Group{}), wire: protopack.Message{ protopack.Tag{1, protopack.StartGroupType}, protopack.Tag{1, protopack.EndGroupType}, }.Marshal(), }, { desc: "required field with incompatible wire type", checkFastInit: true, partial: true, decodeTo: []proto.Message{build( &testpb.TestRequired{}, unknown(protopack.Message{ protopack.Tag{1, protopack.Fixed32Type}, protopack.Int32(2), }.Marshal()), )}, wire: protopack.Message{ protopack.Tag{1, protopack.Fixed32Type}, protopack.Int32(2), }.Marshal(), }, { desc: "required field in optional message unset", checkFastInit: true, partial: true, decodeTo: makeMessages(protobuild.Message{ "optional_message": protobuild.Message{}, }, &testpb.TestRequiredForeign{}), wire: protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{}), }.Marshal(), }, { desc: "required field in optional message set", checkFastInit: true, decodeTo: makeMessages(protobuild.Message{ "optional_message": protobuild.Message{ "required_field": 1, }, }, &testpb.TestRequiredForeign{}), wire: protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1), }), }.Marshal(), }, { desc: "required field in optional message set (split across multiple tags)", checkFastInit: false, // fast init checks don't handle split messages nocheckValidInit: true, // validation doesn't either decodeTo: makeMessages(protobuild.Message{ "optional_message": protobuild.Message{ "required_field": 1, }, }, &testpb.TestRequiredForeign{}), wire: protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{}), protopack.Tag{1, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1), }), }.Marshal(), }, { desc: "required field in repeated message unset", checkFastInit: true, partial: true, decodeTo: makeMessages(protobuild.Message{ "repeated_message": []protobuild.Message{ {"required_field": 1}, {}, }, }, &testpb.TestRequiredForeign{}), wire: protopack.Message{ protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1), }), protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{}), }.Marshal(), }, { desc: "required field in repeated message set", checkFastInit: true, decodeTo: makeMessages(protobuild.Message{ "repeated_message": []protobuild.Message{ {"required_field": 1}, {"required_field": 2}, }, }, &testpb.TestRequiredForeign{}), wire: protopack.Message{ protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1), }), protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(2), }), }.Marshal(), }, { desc: "required field in map message unset", checkFastInit: true, partial: true, decodeTo: makeMessages(protobuild.Message{ "map_message": map[int32]protobuild.Message{ 1: {"required_field": 1}, 2: {}, }, }, &testpb.TestRequiredForeign{}), wire: protopack.Message{ protopack.Tag{3, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1), protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1), }), }), protopack.Tag{3, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(2), protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{}), }), }.Marshal(), }, { desc: "required field in absent map message value", checkFastInit: true, partial: true, decodeTo: makeMessages(protobuild.Message{ "map_message": map[int32]protobuild.Message{ 2: {}, }, }, &testpb.TestRequiredForeign{}), wire: protopack.Message{ protopack.Tag{3, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(2), }), }.Marshal(), }, { desc: "required field in map message set", checkFastInit: true, decodeTo: makeMessages(protobuild.Message{ "map_message": map[int32]protobuild.Message{ 1: {"required_field": 1}, 2: {"required_field": 2}, }, }, &testpb.TestRequiredForeign{}), wire: protopack.Message{ protopack.Tag{3, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1), protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1), }), }), protopack.Tag{3, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(2), protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(2), }), }), }.Marshal(), }, { desc: "required field in optional group unset", checkFastInit: true, partial: true, decodeTo: makeMessages(protobuild.Message{ "optionalgroup": protobuild.Message{}, }, &testpb.TestRequiredGroupFields{}), wire: protopack.Message{ protopack.Tag{1, protopack.StartGroupType}, protopack.Tag{1, protopack.EndGroupType}, }.Marshal(), }, { desc: "required field in optional group set", checkFastInit: true, decodeTo: makeMessages(protobuild.Message{ "optionalgroup": protobuild.Message{ "a": 1, }, }, &testpb.TestRequiredGroupFields{}), wire: protopack.Message{ protopack.Tag{1, protopack.StartGroupType}, protopack.Tag{2, protopack.VarintType}, protopack.Varint(1), protopack.Tag{1, protopack.EndGroupType}, }.Marshal(), }, { desc: "required field in repeated group unset", checkFastInit: true, partial: true, decodeTo: makeMessages(protobuild.Message{ "repeatedgroup": []protobuild.Message{ {"a": 1}, {}, }, }, &testpb.TestRequiredGroupFields{}), wire: protopack.Message{ protopack.Tag{3, protopack.StartGroupType}, protopack.Tag{4, protopack.VarintType}, protopack.Varint(1), protopack.Tag{3, protopack.EndGroupType}, protopack.Tag{3, protopack.StartGroupType}, protopack.Tag{3, protopack.EndGroupType}, }.Marshal(), }, { desc: "required field in repeated group set", checkFastInit: true, decodeTo: makeMessages(protobuild.Message{ "repeatedgroup": []protobuild.Message{ {"a": 1}, {"a": 2}, }, }, &testpb.TestRequiredGroupFields{}), wire: protopack.Message{ protopack.Tag{3, protopack.StartGroupType}, protopack.Tag{4, protopack.VarintType}, protopack.Varint(1), protopack.Tag{3, protopack.EndGroupType}, protopack.Tag{3, protopack.StartGroupType}, protopack.Tag{4, protopack.VarintType}, protopack.Varint(2), protopack.Tag{3, protopack.EndGroupType}, }.Marshal(), }, { desc: "required field in oneof message unset", checkFastInit: true, partial: true, decodeTo: makeMessages(protobuild.Message{ "oneof_message": protobuild.Message{}, }, &testpb.TestRequiredForeign{}), wire: protopack.Message{protopack.Tag{4, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{})}.Marshal(), }, { desc: "required field in oneof message set", checkFastInit: true, decodeTo: makeMessages(protobuild.Message{ "oneof_message": protobuild.Message{ "required_field": 1, }, }, &testpb.TestRequiredForeign{}), wire: protopack.Message{protopack.Tag{4, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1), })}.Marshal(), }, { desc: "required field in extension message unset", checkFastInit: true, partial: true, decodeTo: makeMessages(protobuild.Message{ "single": protobuild.Message{}, }, &testpb.TestAllExtensions{}), wire: protopack.Message{ protopack.Tag{1000, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{}), }.Marshal(), }, { desc: "required field in extension message set", checkFastInit: true, decodeTo: makeMessages(protobuild.Message{ "single": protobuild.Message{ "required_field": 1, }, }, &testpb.TestAllExtensions{}), wire: protopack.Message{ protopack.Tag{1000, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1), }), }.Marshal(), }, { desc: "required field in repeated extension message unset", checkFastInit: true, partial: true, decodeTo: makeMessages(protobuild.Message{ "multi": []protobuild.Message{ {"required_field": 1}, {}, }, }, &testpb.TestAllExtensions{}), wire: protopack.Message{ protopack.Tag{1001, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1), }), protopack.Tag{1001, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{}), }.Marshal(), }, { desc: "required field in repeated extension message set", checkFastInit: true, decodeTo: makeMessages(protobuild.Message{ "multi": []protobuild.Message{ {"required_field": 1}, {"required_field": 2}, }, }, &testpb.TestAllExtensions{}), wire: protopack.Message{ protopack.Tag{1001, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1), }), protopack.Tag{1001, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(2), }), }.Marshal(), }, { desc: "nil messages", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*test3pb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, }, { desc: "legacy", partial: true, decodeTo: makeMessages(protobuild.Message{ "f1": protobuild.Message{ "optional_int32": 1, "optional_child_enum": "ALPHA", "optional_child_message": protobuild.Message{ "f1": "x", }, "optionalgroup": protobuild.Message{ "f1": "x", }, "repeated_child_message": []protobuild.Message{ {"f1": "x"}, }, "repeatedgroup": []protobuild.Message{ {"f1": "x"}, }, "map_bool_child_message": map[bool]protobuild.Message{ true: {"f1": "x"}, }, "oneof_child_message": protobuild.Message{ "f1": "x", }, }, }, &legacypb.Legacy{}), wire: protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{101, protopack.VarintType}, protopack.Varint(1), protopack.Tag{115, protopack.VarintType}, protopack.Varint(0), protopack.Tag{116, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.String("x"), }), protopack.Tag{120, protopack.StartGroupType}, protopack.Tag{1, protopack.BytesType}, protopack.String("x"), protopack.Tag{120, protopack.EndGroupType}, protopack.Tag{516, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.String("x"), }), protopack.Tag{520, protopack.StartGroupType}, protopack.Tag{1, protopack.BytesType}, protopack.String("x"), protopack.Tag{520, protopack.EndGroupType}, protopack.Tag{616, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1), protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.String("x"), }), }), protopack.Tag{716, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.String("x"), }), }), }.Marshal(), validationStatus: impl.ValidationUnknown, }, { desc: "first reserved field number", decodeTo: makeMessages(protobuild.Message{ protobuild.Unknown: protopack.Message{ protopack.Tag{protopack.FirstReservedNumber, protopack.VarintType}, protopack.Varint(1004), }.Marshal(), }), wire: protopack.Message{ protopack.Tag{protopack.FirstReservedNumber, protopack.VarintType}, protopack.Varint(1004), }.Marshal(), }, { desc: "last reserved field number", decodeTo: makeMessages(protobuild.Message{ protobuild.Unknown: protopack.Message{ protopack.Tag{protopack.LastReservedNumber, protopack.VarintType}, protopack.Varint(1005), }.Marshal(), }), wire: protopack.Message{ protopack.Tag{protopack.LastReservedNumber, protopack.VarintType}, protopack.Varint(1005), }.Marshal(), }, { desc: "nested unknown extension", unmarshalOptions: proto.UnmarshalOptions{ DiscardUnknown: true, Resolver: filterResolver{ filter: func(name protoreflect.FullName) bool { switch name.Name() { case "optional_nested_message", "optional_int32": return true } return false }, resolver: protoregistry.GlobalTypes, }, }, decodeTo: makeMessages(protobuild.Message{ "optional_nested_message": protobuild.Message{ "corecursive": protobuild.Message{ "optional_nested_message": protobuild.Message{ "corecursive": protobuild.Message{ "optional_int32": 42, }, }, }, }, }, &testpb.TestAllExtensions{}), wire: protopack.Message{ protopack.Tag{18, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{18, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(42), protopack.Tag{2, protopack.VarintType}, protopack.Varint(43), }), }), }), }), }.Marshal(), }, } var testInvalidMessages = []testProto{ { desc: "invalid UTF-8 in optional string field", decodeTo: makeMessages(protobuild.Message{ "optional_string": "abc\xff", }, &test3pb.TestAllTypes{}), wire: protopack.Message{ protopack.Tag{14, protopack.BytesType}, protopack.String("abc\xff"), }.Marshal(), }, { desc: "invalid UTF-8 in singular string field", decodeTo: makeMessages(protobuild.Message{ "singular_string": "abc\xff", }, &test3pb.TestAllTypes{}), wire: protopack.Message{ protopack.Tag{94, protopack.BytesType}, protopack.String("abc\xff"), }.Marshal(), }, { desc: "invalid UTF-8 in repeated string field", decodeTo: makeMessages(protobuild.Message{ "repeated_string": []string{"foo", "abc\xff"}, }, &test3pb.TestAllTypes{}), wire: protopack.Message{ protopack.Tag{44, protopack.BytesType}, protopack.String("foo"), protopack.Tag{44, protopack.BytesType}, protopack.String("abc\xff"), }.Marshal(), }, { desc: "invalid UTF-8 in nested message", decodeTo: makeMessages(protobuild.Message{ "optional_nested_message": protobuild.Message{ "corecursive": protobuild.Message{ "singular_string": "abc\xff", }, }, }, &test3pb.TestAllTypes{}), wire: protopack.Message{ protopack.Tag{18, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{94, protopack.BytesType}, protopack.String("abc\xff"), }), }), }.Marshal(), }, { desc: "invalid UTF-8 in oneof field", decodeTo: makeMessages(protobuild.Message{ "oneof_string": "abc\xff", }, &test3pb.TestAllTypes{}), wire: protopack.Message{protopack.Tag{113, protopack.BytesType}, protopack.String("abc\xff")}.Marshal(), }, { desc: "invalid UTF-8 in map key", decodeTo: makeMessages(protobuild.Message{ "map_string_string": map[string]string{"key\xff": "val"}, }, &test3pb.TestAllTypes{}), wire: protopack.Message{ protopack.Tag{69, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.String("key\xff"), protopack.Tag{2, protopack.BytesType}, protopack.String("val"), }), }.Marshal(), }, { desc: "invalid UTF-8 in map value", decodeTo: makeMessages(protobuild.Message{ "map_string_string": map[string]string{"key": "val\xff"}, }, &test3pb.TestAllTypes{}), wire: protopack.Message{ protopack.Tag{69, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.String("key"), protopack.Tag{2, protopack.BytesType}, protopack.String("val\xff"), }), }.Marshal(), }, { desc: "invalid field number zero", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{protopack.MinValidNumber - 1, protopack.VarintType}, protopack.Varint(1001), }.Marshal(), }, { desc: "invalid field numbers zero and one", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{protopack.MinValidNumber - 1, protopack.VarintType}, protopack.Varint(1002), protopack.Tag{protopack.MinValidNumber, protopack.VarintType}, protopack.Varint(1003), }.Marshal(), }, { desc: "invalid field numbers max and max+1", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{protopack.MaxValidNumber, protopack.VarintType}, protopack.Varint(1006), protopack.Tag{protopack.MaxValidNumber + 1, protopack.VarintType}, protopack.Varint(1007), }.Marshal(), }, { desc: "invalid field number max+1", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{protopack.MaxValidNumber + 1, protopack.VarintType}, protopack.Varint(1008), }.Marshal(), }, { desc: "invalid field number wraps int32", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Varint(2234993595104), protopack.Varint(0), }.Marshal(), }, { desc: "invalid field number in map", decodeTo: []proto.Message{(*testpb.TestAllTypes)(nil)}, wire: protopack.Message{ protopack.Tag{56, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1056), protopack.Tag{2, protopack.VarintType}, protopack.Varint(1156), protopack.Tag{protopack.MaxValidNumber + 1, protopack.VarintType}, protopack.Varint(0), }), }.Marshal(), }, { desc: "invalid tag varint", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: []byte{0xff}, }, { desc: "field number too small", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{0, protopack.VarintType}, protopack.Varint(0), }.Marshal(), }, { desc: "field number too large", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{protowire.MaxValidNumber + 1, protopack.VarintType}, protopack.Varint(0), }.Marshal(), }, { desc: "invalid tag varint in message field", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{18, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Raw{0xff}, }), }.Marshal(), }, { desc: "invalid tag varint in repeated message field", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{48, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Raw{0xff}, }), }.Marshal(), }, { desc: "invalid varint in group field", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{16, protopack.StartGroupType}, protopack.Tag{1000, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Raw{0xff}, }), protopack.Tag{16, protopack.EndGroupType}, }.Marshal(), }, { desc: "invalid varint in repeated group field", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{46, protopack.StartGroupType}, protopack.Tag{1001, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Raw{0xff}, }), protopack.Tag{46, protopack.EndGroupType}, }.Marshal(), }, { desc: "unterminated repeated group field", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{46, protopack.StartGroupType}, }.Marshal(), }, { desc: "invalid tag varint in map item", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), }, wire: protopack.Message{ protopack.Tag{56, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(0), protopack.Tag{2, protopack.VarintType}, protopack.Varint(0), protopack.Raw{0xff}, }), }.Marshal(), }, { desc: "invalid tag varint in map message value", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), }, wire: protopack.Message{ protopack.Tag{71, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(0), protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Raw{0xff}, }), }), }.Marshal(), }, { desc: "invalid packed int32 field", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{31, protopack.BytesType}, protopack.Bytes{0xff}, }.Marshal(), }, { desc: "invalid packed int64 field", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{32, protopack.BytesType}, protopack.Bytes{0xff}, }.Marshal(), }, { desc: "invalid packed uint32 field", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{33, protopack.BytesType}, protopack.Bytes{0xff}, }.Marshal(), }, { desc: "invalid packed uint64 field", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{34, protopack.BytesType}, protopack.Bytes{0xff}, }.Marshal(), }, { desc: "invalid packed sint32 field", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{35, protopack.BytesType}, protopack.Bytes{0xff}, }.Marshal(), }, { desc: "invalid packed sint64 field", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{36, protopack.BytesType}, protopack.Bytes{0xff}, }.Marshal(), }, { desc: "invalid packed fixed32 field", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{37, protopack.BytesType}, protopack.Bytes{0x00}, }.Marshal(), }, { desc: "invalid packed fixed64 field", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{38, protopack.BytesType}, protopack.Bytes{0x00}, }.Marshal(), }, { desc: "invalid packed sfixed32 field", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{39, protopack.BytesType}, protopack.Bytes{0x00}, }.Marshal(), }, { desc: "invalid packed sfixed64 field", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{40, protopack.BytesType}, protopack.Bytes{0x00}, }.Marshal(), }, { desc: "invalid packed float field", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{41, protopack.BytesType}, protopack.Bytes{0x00}, }.Marshal(), }, { desc: "invalid packed double field", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{42, protopack.BytesType}, protopack.Bytes{0x00}, }.Marshal(), }, { desc: "invalid packed bool field", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{43, protopack.BytesType}, protopack.Bytes{0xff}, }.Marshal(), }, { desc: "bytes field overruns message", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{18, protopack.BytesType}, protopack.LengthPrefix{protopack.Message{ protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix{protopack.Message{ protopack.Tag{15, protopack.BytesType}, protopack.Varint(2), }}, protopack.Tag{1, protopack.VarintType}, protopack.Varint(0), }}, }.Marshal(), }, { desc: "varint field overruns message", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{1, protopack.VarintType}, }.Marshal(), }, { desc: "bytes field lacks size", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{18, protopack.BytesType}, }.Marshal(), }, { desc: "varint overflow", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Raw("\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02"), }.Marshal(), }, { desc: "varint length overrun", decodeTo: []proto.Message{ (*testpb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), }, wire: protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Raw("\xff\xff\xff\xff\xff\xff\xff\xff\xff"), }.Marshal(), }, } type filterResolver struct { filter func(name protoreflect.FullName) bool resolver protoregistry.ExtensionTypeResolver } func (f filterResolver) FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) { if !f.filter(field) { return nil, protoregistry.NotFound } return f.resolver.FindExtensionByName(field) } func (f filterResolver) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) { xt, err := f.resolver.FindExtensionByNumber(message, field) if err != nil { return nil, err } if !f.filter(xt.TypeDescriptor().FullName()) { return nil, protoregistry.NotFound } return xt, nil } golang-google-protobuf-1.27.1/proto/validate_test.go000066400000000000000000000033201411250152500224750ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto_test import ( "fmt" "testing" "google.golang.org/protobuf/internal/impl" piface "google.golang.org/protobuf/runtime/protoiface" ) // TestValidate tests the internal message validator. // // Despite being more properly associated with the internal/impl package, // it is located here to take advantage of the test wire encoder/decoder inputs. func TestValidateValid(t *testing.T) { for _, test := range testValidMessages { for _, m := range test.decodeTo { t.Run(fmt.Sprintf("%s (%T)", test.desc, m), func(t *testing.T) { mt := m.ProtoReflect().Type() want := impl.ValidationValid if test.validationStatus != 0 { want = test.validationStatus } out, status := impl.Validate(mt, piface.UnmarshalInput{ Buf: test.wire, }) if status != want { t.Errorf("Validate(%x) = %v, want %v", test.wire, status, want) } if got, want := (out.Flags&piface.UnmarshalInitialized != 0), !test.partial; got != want && !test.nocheckValidInit && status == impl.ValidationValid { t.Errorf("Validate(%x): initialized = %v, want %v", test.wire, got, want) } }) } } } func TestValidateInvalid(t *testing.T) { for _, test := range testInvalidMessages { for _, m := range test.decodeTo { t.Run(fmt.Sprintf("%s (%T)", test.desc, m), func(t *testing.T) { mt := m.ProtoReflect().Type() _, got := impl.Validate(mt, piface.UnmarshalInput{ Buf: test.wire, }) want := impl.ValidationInvalid if got != want { t.Errorf("Validate(%x) = %v, want %v", test.wire, got, want) } }) } } } golang-google-protobuf-1.27.1/proto/weak_test.go000066400000000000000000000064411411250152500216420ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto_test import ( "testing" "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/internal/protobuild" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/testing/protopack" testpb "google.golang.org/protobuf/internal/testprotos/test" weakpb "google.golang.org/protobuf/internal/testprotos/test/weak1" ) func init() { if flags.ProtoLegacy { testValidMessages = append(testValidMessages, testWeakValidMessages...) testInvalidMessages = append(testInvalidMessages, testWeakInvalidMessages...) testMerges = append(testMerges, testWeakMerges...) } } var testWeakValidMessages = []testProto{ { desc: "weak message", decodeTo: []proto.Message{ func() proto.Message { if !flags.ProtoLegacy { return nil } m := &testpb.TestWeak{} m.SetWeakMessage1(&weakpb.WeakImportMessage1{ A: proto.Int32(1000), }) m.ProtoReflect().SetUnknown(protopack.Message{ protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(2000), }), }.Marshal()) return m }(), }, wire: protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(1000), }), protopack.Tag{2, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Varint(2000), }), }.Marshal(), }, } var testWeakInvalidMessages = []testProto{ { desc: "invalid field number 0 in weak message", decodeTo: []proto.Message{(*testpb.TestWeak)(nil)}, wire: protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{0, protopack.VarintType}, protopack.Varint(1000), }), }.Marshal(), }, } var testWeakMerges = []testMerge{ { desc: "clone weak message", src: protobuild.Message{ "weak_message1": protobuild.Message{ "a": 1, }, }, types: []proto.Message{&testpb.TestWeak{}}, }, { desc: "merge weak message", dst: protobuild.Message{ "weak_message1": protobuild.Message{ "a": 1, }, }, src: protobuild.Message{ "weak_message1": protobuild.Message{ "a": 2, }, }, want: protobuild.Message{ "weak_message1": protobuild.Message{ "a": 2, }, }, types: []proto.Message{&testpb.TestWeak{}}, }, } func TestWeakNil(t *testing.T) { if !flags.ProtoLegacy { t.SkipNow() } m := new(testpb.TestWeak) if v, ok := m.GetWeakMessage1().(*weakpb.WeakImportMessage1); !ok || v != nil { t.Errorf("m.GetWeakMessage1() = type %[1]T(%[1]v), want (*weakpb.WeakImportMessage1)", v) } } func TestWeakMarshalNil(t *testing.T) { if !flags.ProtoLegacy { t.SkipNow() } m := new(testpb.TestWeak) m.SetWeakMessage1(nil) if b, err := proto.Marshal(m); err != nil || len(b) != 0 { t.Errorf("Marshal(weak field set to nil) = [%x], %v; want [], nil", b, err) } m.SetWeakMessage1((*weakpb.WeakImportMessage1)(nil)) if b, err := proto.Marshal(m); err != nil || len(b) != 0 { t.Errorf("Marshal(weak field set to typed nil) = [%x], %v; want [], nil", b, err) } } golang-google-protobuf-1.27.1/proto/wrappers.go000066400000000000000000000020741411250152500215150ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto // Bool stores v in a new bool value and returns a pointer to it. func Bool(v bool) *bool { return &v } // Int32 stores v in a new int32 value and returns a pointer to it. func Int32(v int32) *int32 { return &v } // Int64 stores v in a new int64 value and returns a pointer to it. func Int64(v int64) *int64 { return &v } // Float32 stores v in a new float32 value and returns a pointer to it. func Float32(v float32) *float32 { return &v } // Float64 stores v in a new float64 value and returns a pointer to it. func Float64(v float64) *float64 { return &v } // Uint32 stores v in a new uint32 value and returns a pointer to it. func Uint32(v uint32) *uint32 { return &v } // Uint64 stores v in a new uint64 value and returns a pointer to it. func Uint64(v uint64) *uint64 { return &v } // String stores v in a new string value and returns a pointer to it. func String(v string) *string { return &v } golang-google-protobuf-1.27.1/reflect/000077500000000000000000000000001411250152500176015ustar00rootroot00000000000000golang-google-protobuf-1.27.1/reflect/protodesc/000077500000000000000000000000001411250152500216035ustar00rootroot00000000000000golang-google-protobuf-1.27.1/reflect/protodesc/desc.go000066400000000000000000000245161411250152500230600ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package protodesc provides functionality for converting // FileDescriptorProto messages to/from protoreflect.FileDescriptor values. // // The google.protobuf.FileDescriptorProto is a protobuf message that describes // the type information for a .proto file in a form that is easily serializable. // The protoreflect.FileDescriptor is a more structured representation of // the FileDescriptorProto message where references and remote dependencies // can be directly followed. package protodesc import ( "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/filedesc" "google.golang.org/protobuf/internal/pragma" "google.golang.org/protobuf/internal/strs" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/types/descriptorpb" ) // Resolver is the resolver used by NewFile to resolve dependencies. // The enums and messages provided must belong to some parent file, // which is also registered. // // It is implemented by protoregistry.Files. type Resolver interface { FindFileByPath(string) (protoreflect.FileDescriptor, error) FindDescriptorByName(protoreflect.FullName) (protoreflect.Descriptor, error) } // FileOptions configures the construction of file descriptors. type FileOptions struct { pragma.NoUnkeyedLiterals // AllowUnresolvable configures New to permissively allow unresolvable // file, enum, or message dependencies. Unresolved dependencies are replaced // by placeholder equivalents. // // The following dependencies may be left unresolved: // • Resolving an imported file. // • Resolving the type for a message field or extension field. // If the kind of the field is unknown, then a placeholder is used for both // the Enum and Message accessors on the protoreflect.FieldDescriptor. // • Resolving an enum value set as the default for an optional enum field. // If unresolvable, the protoreflect.FieldDescriptor.Default is set to the // first value in the associated enum (or zero if the also enum dependency // is also unresolvable). The protoreflect.FieldDescriptor.DefaultEnumValue // is populated with a placeholder. // • Resolving the extended message type for an extension field. // • Resolving the input or output message type for a service method. // // If the unresolved dependency uses a relative name, // then the placeholder will contain an invalid FullName with a "*." prefix, // indicating that the starting prefix of the full name is unknown. AllowUnresolvable bool } // NewFile creates a new protoreflect.FileDescriptor from the provided // file descriptor message. See FileOptions.New for more information. func NewFile(fd *descriptorpb.FileDescriptorProto, r Resolver) (protoreflect.FileDescriptor, error) { return FileOptions{}.New(fd, r) } // NewFiles creates a new protoregistry.Files from the provided // FileDescriptorSet message. See FileOptions.NewFiles for more information. func NewFiles(fd *descriptorpb.FileDescriptorSet) (*protoregistry.Files, error) { return FileOptions{}.NewFiles(fd) } // New creates a new protoreflect.FileDescriptor from the provided // file descriptor message. The file must represent a valid proto file according // to protobuf semantics. The returned descriptor is a deep copy of the input. // // Any imported files, enum types, or message types referenced in the file are // resolved using the provided registry. When looking up an import file path, // the path must be unique. The newly created file descriptor is not registered // back into the provided file registry. func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (protoreflect.FileDescriptor, error) { if r == nil { r = (*protoregistry.Files)(nil) // empty resolver } // Handle the file descriptor content. f := &filedesc.File{L2: &filedesc.FileL2{}} switch fd.GetSyntax() { case "proto2", "": f.L1.Syntax = protoreflect.Proto2 case "proto3": f.L1.Syntax = protoreflect.Proto3 default: return nil, errors.New("invalid syntax: %q", fd.GetSyntax()) } f.L1.Path = fd.GetName() if f.L1.Path == "" { return nil, errors.New("file path must be populated") } f.L1.Package = protoreflect.FullName(fd.GetPackage()) if !f.L1.Package.IsValid() && f.L1.Package != "" { return nil, errors.New("invalid package: %q", f.L1.Package) } if opts := fd.GetOptions(); opts != nil { opts = proto.Clone(opts).(*descriptorpb.FileOptions) f.L2.Options = func() protoreflect.ProtoMessage { return opts } } f.L2.Imports = make(filedesc.FileImports, len(fd.GetDependency())) for _, i := range fd.GetPublicDependency() { if !(0 <= i && int(i) < len(f.L2.Imports)) || f.L2.Imports[i].IsPublic { return nil, errors.New("invalid or duplicate public import index: %d", i) } f.L2.Imports[i].IsPublic = true } for _, i := range fd.GetWeakDependency() { if !(0 <= i && int(i) < len(f.L2.Imports)) || f.L2.Imports[i].IsWeak { return nil, errors.New("invalid or duplicate weak import index: %d", i) } f.L2.Imports[i].IsWeak = true } imps := importSet{f.Path(): true} for i, path := range fd.GetDependency() { imp := &f.L2.Imports[i] f, err := r.FindFileByPath(path) if err == protoregistry.NotFound && (o.AllowUnresolvable || imp.IsWeak) { f = filedesc.PlaceholderFile(path) } else if err != nil { return nil, errors.New("could not resolve import %q: %v", path, err) } imp.FileDescriptor = f if imps[imp.Path()] { return nil, errors.New("already imported %q", path) } imps[imp.Path()] = true } for i := range fd.GetDependency() { imp := &f.L2.Imports[i] imps.importPublic(imp.Imports()) } // Handle source locations. f.L2.Locations.File = f for _, loc := range fd.GetSourceCodeInfo().GetLocation() { var l protoreflect.SourceLocation // TODO: Validate that the path points to an actual declaration? l.Path = protoreflect.SourcePath(loc.GetPath()) s := loc.GetSpan() switch len(s) { case 3: l.StartLine, l.StartColumn, l.EndLine, l.EndColumn = int(s[0]), int(s[1]), int(s[0]), int(s[2]) case 4: l.StartLine, l.StartColumn, l.EndLine, l.EndColumn = int(s[0]), int(s[1]), int(s[2]), int(s[3]) default: return nil, errors.New("invalid span: %v", s) } // TODO: Validate that the span information is sensible? // See https://github.com/protocolbuffers/protobuf/issues/6378. if false && (l.EndLine < l.StartLine || l.StartLine < 0 || l.StartColumn < 0 || l.EndColumn < 0 || (l.StartLine == l.EndLine && l.EndColumn <= l.StartColumn)) { return nil, errors.New("invalid span: %v", s) } l.LeadingDetachedComments = loc.GetLeadingDetachedComments() l.LeadingComments = loc.GetLeadingComments() l.TrailingComments = loc.GetTrailingComments() f.L2.Locations.List = append(f.L2.Locations.List, l) } // Step 1: Allocate and derive the names for all declarations. // This copies all fields from the descriptor proto except: // google.protobuf.FieldDescriptorProto.type_name // google.protobuf.FieldDescriptorProto.default_value // google.protobuf.FieldDescriptorProto.oneof_index // google.protobuf.FieldDescriptorProto.extendee // google.protobuf.MethodDescriptorProto.input // google.protobuf.MethodDescriptorProto.output var err error sb := new(strs.Builder) r1 := make(descsByName) if f.L1.Enums.List, err = r1.initEnumDeclarations(fd.GetEnumType(), f, sb); err != nil { return nil, err } if f.L1.Messages.List, err = r1.initMessagesDeclarations(fd.GetMessageType(), f, sb); err != nil { return nil, err } if f.L1.Extensions.List, err = r1.initExtensionDeclarations(fd.GetExtension(), f, sb); err != nil { return nil, err } if f.L1.Services.List, err = r1.initServiceDeclarations(fd.GetService(), f, sb); err != nil { return nil, err } // Step 2: Resolve every dependency reference not handled by step 1. r2 := &resolver{local: r1, remote: r, imports: imps, allowUnresolvable: o.AllowUnresolvable} if err := r2.resolveMessageDependencies(f.L1.Messages.List, fd.GetMessageType()); err != nil { return nil, err } if err := r2.resolveExtensionDependencies(f.L1.Extensions.List, fd.GetExtension()); err != nil { return nil, err } if err := r2.resolveServiceDependencies(f.L1.Services.List, fd.GetService()); err != nil { return nil, err } // Step 3: Validate every enum, message, and extension declaration. if err := validateEnumDeclarations(f.L1.Enums.List, fd.GetEnumType()); err != nil { return nil, err } if err := validateMessageDeclarations(f.L1.Messages.List, fd.GetMessageType()); err != nil { return nil, err } if err := validateExtensionDeclarations(f.L1.Extensions.List, fd.GetExtension()); err != nil { return nil, err } return f, nil } type importSet map[string]bool func (is importSet) importPublic(imps protoreflect.FileImports) { for i := 0; i < imps.Len(); i++ { if imp := imps.Get(i); imp.IsPublic { is[imp.Path()] = true is.importPublic(imp.Imports()) } } } // NewFiles creates a new protoregistry.Files from the provided // FileDescriptorSet message. The descriptor set must include only // valid files according to protobuf semantics. The returned descriptors // are a deep copy of the input. func (o FileOptions) NewFiles(fds *descriptorpb.FileDescriptorSet) (*protoregistry.Files, error) { files := make(map[string]*descriptorpb.FileDescriptorProto) for _, fd := range fds.File { if _, ok := files[fd.GetName()]; ok { return nil, errors.New("file appears multiple times: %q", fd.GetName()) } files[fd.GetName()] = fd } r := &protoregistry.Files{} for _, fd := range files { if err := o.addFileDeps(r, fd, files); err != nil { return nil, err } } return r, nil } func (o FileOptions) addFileDeps(r *protoregistry.Files, fd *descriptorpb.FileDescriptorProto, files map[string]*descriptorpb.FileDescriptorProto) error { // Set the entry to nil while descending into a file's dependencies to detect cycles. files[fd.GetName()] = nil for _, dep := range fd.Dependency { depfd, ok := files[dep] if depfd == nil { if ok { return errors.New("import cycle in file: %q", dep) } continue } if err := o.addFileDeps(r, depfd, files); err != nil { return err } } // Delete the entry once dependencies are processed. delete(files, fd.GetName()) f, err := o.New(fd, r) if err != nil { return err } return r.RegisterFile(f) } golang-google-protobuf-1.27.1/reflect/protodesc/desc_init.go000066400000000000000000000227771411250152500241120ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protodesc import ( "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/filedesc" "google.golang.org/protobuf/internal/strs" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/types/descriptorpb" ) type descsByName map[protoreflect.FullName]protoreflect.Descriptor func (r descsByName) initEnumDeclarations(eds []*descriptorpb.EnumDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (es []filedesc.Enum, err error) { es = make([]filedesc.Enum, len(eds)) // allocate up-front to ensure stable pointers for i, ed := range eds { e := &es[i] e.L2 = new(filedesc.EnumL2) if e.L0, err = r.makeBase(e, parent, ed.GetName(), i, sb); err != nil { return nil, err } if opts := ed.GetOptions(); opts != nil { opts = proto.Clone(opts).(*descriptorpb.EnumOptions) e.L2.Options = func() protoreflect.ProtoMessage { return opts } } for _, s := range ed.GetReservedName() { e.L2.ReservedNames.List = append(e.L2.ReservedNames.List, protoreflect.Name(s)) } for _, rr := range ed.GetReservedRange() { e.L2.ReservedRanges.List = append(e.L2.ReservedRanges.List, [2]protoreflect.EnumNumber{ protoreflect.EnumNumber(rr.GetStart()), protoreflect.EnumNumber(rr.GetEnd()), }) } if e.L2.Values.List, err = r.initEnumValuesFromDescriptorProto(ed.GetValue(), e, sb); err != nil { return nil, err } } return es, nil } func (r descsByName) initEnumValuesFromDescriptorProto(vds []*descriptorpb.EnumValueDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (vs []filedesc.EnumValue, err error) { vs = make([]filedesc.EnumValue, len(vds)) // allocate up-front to ensure stable pointers for i, vd := range vds { v := &vs[i] if v.L0, err = r.makeBase(v, parent, vd.GetName(), i, sb); err != nil { return nil, err } if opts := vd.GetOptions(); opts != nil { opts = proto.Clone(opts).(*descriptorpb.EnumValueOptions) v.L1.Options = func() protoreflect.ProtoMessage { return opts } } v.L1.Number = protoreflect.EnumNumber(vd.GetNumber()) } return vs, nil } func (r descsByName) initMessagesDeclarations(mds []*descriptorpb.DescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ms []filedesc.Message, err error) { ms = make([]filedesc.Message, len(mds)) // allocate up-front to ensure stable pointers for i, md := range mds { m := &ms[i] m.L2 = new(filedesc.MessageL2) if m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil { return nil, err } if opts := md.GetOptions(); opts != nil { opts = proto.Clone(opts).(*descriptorpb.MessageOptions) m.L2.Options = func() protoreflect.ProtoMessage { return opts } m.L1.IsMapEntry = opts.GetMapEntry() m.L1.IsMessageSet = opts.GetMessageSetWireFormat() } for _, s := range md.GetReservedName() { m.L2.ReservedNames.List = append(m.L2.ReservedNames.List, protoreflect.Name(s)) } for _, rr := range md.GetReservedRange() { m.L2.ReservedRanges.List = append(m.L2.ReservedRanges.List, [2]protoreflect.FieldNumber{ protoreflect.FieldNumber(rr.GetStart()), protoreflect.FieldNumber(rr.GetEnd()), }) } for _, xr := range md.GetExtensionRange() { m.L2.ExtensionRanges.List = append(m.L2.ExtensionRanges.List, [2]protoreflect.FieldNumber{ protoreflect.FieldNumber(xr.GetStart()), protoreflect.FieldNumber(xr.GetEnd()), }) var optsFunc func() protoreflect.ProtoMessage if opts := xr.GetOptions(); opts != nil { opts = proto.Clone(opts).(*descriptorpb.ExtensionRangeOptions) optsFunc = func() protoreflect.ProtoMessage { return opts } } m.L2.ExtensionRangeOptions = append(m.L2.ExtensionRangeOptions, optsFunc) } if m.L2.Fields.List, err = r.initFieldsFromDescriptorProto(md.GetField(), m, sb); err != nil { return nil, err } if m.L2.Oneofs.List, err = r.initOneofsFromDescriptorProto(md.GetOneofDecl(), m, sb); err != nil { return nil, err } if m.L1.Enums.List, err = r.initEnumDeclarations(md.GetEnumType(), m, sb); err != nil { return nil, err } if m.L1.Messages.List, err = r.initMessagesDeclarations(md.GetNestedType(), m, sb); err != nil { return nil, err } if m.L1.Extensions.List, err = r.initExtensionDeclarations(md.GetExtension(), m, sb); err != nil { return nil, err } } return ms, nil } func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (fs []filedesc.Field, err error) { fs = make([]filedesc.Field, len(fds)) // allocate up-front to ensure stable pointers for i, fd := range fds { f := &fs[i] if f.L0, err = r.makeBase(f, parent, fd.GetName(), i, sb); err != nil { return nil, err } f.L1.IsProto3Optional = fd.GetProto3Optional() if opts := fd.GetOptions(); opts != nil { opts = proto.Clone(opts).(*descriptorpb.FieldOptions) f.L1.Options = func() protoreflect.ProtoMessage { return opts } f.L1.IsWeak = opts.GetWeak() f.L1.HasPacked = opts.Packed != nil f.L1.IsPacked = opts.GetPacked() } f.L1.Number = protoreflect.FieldNumber(fd.GetNumber()) f.L1.Cardinality = protoreflect.Cardinality(fd.GetLabel()) if fd.Type != nil { f.L1.Kind = protoreflect.Kind(fd.GetType()) } if fd.JsonName != nil { f.L1.StringName.InitJSON(fd.GetJsonName()) } } return fs, nil } func (r descsByName) initOneofsFromDescriptorProto(ods []*descriptorpb.OneofDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (os []filedesc.Oneof, err error) { os = make([]filedesc.Oneof, len(ods)) // allocate up-front to ensure stable pointers for i, od := range ods { o := &os[i] if o.L0, err = r.makeBase(o, parent, od.GetName(), i, sb); err != nil { return nil, err } if opts := od.GetOptions(); opts != nil { opts = proto.Clone(opts).(*descriptorpb.OneofOptions) o.L1.Options = func() protoreflect.ProtoMessage { return opts } } } return os, nil } func (r descsByName) initExtensionDeclarations(xds []*descriptorpb.FieldDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (xs []filedesc.Extension, err error) { xs = make([]filedesc.Extension, len(xds)) // allocate up-front to ensure stable pointers for i, xd := range xds { x := &xs[i] x.L2 = new(filedesc.ExtensionL2) if x.L0, err = r.makeBase(x, parent, xd.GetName(), i, sb); err != nil { return nil, err } if opts := xd.GetOptions(); opts != nil { opts = proto.Clone(opts).(*descriptorpb.FieldOptions) x.L2.Options = func() protoreflect.ProtoMessage { return opts } x.L2.IsPacked = opts.GetPacked() } x.L1.Number = protoreflect.FieldNumber(xd.GetNumber()) x.L1.Cardinality = protoreflect.Cardinality(xd.GetLabel()) if xd.Type != nil { x.L1.Kind = protoreflect.Kind(xd.GetType()) } if xd.JsonName != nil { x.L2.StringName.InitJSON(xd.GetJsonName()) } } return xs, nil } func (r descsByName) initServiceDeclarations(sds []*descriptorpb.ServiceDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ss []filedesc.Service, err error) { ss = make([]filedesc.Service, len(sds)) // allocate up-front to ensure stable pointers for i, sd := range sds { s := &ss[i] s.L2 = new(filedesc.ServiceL2) if s.L0, err = r.makeBase(s, parent, sd.GetName(), i, sb); err != nil { return nil, err } if opts := sd.GetOptions(); opts != nil { opts = proto.Clone(opts).(*descriptorpb.ServiceOptions) s.L2.Options = func() protoreflect.ProtoMessage { return opts } } if s.L2.Methods.List, err = r.initMethodsFromDescriptorProto(sd.GetMethod(), s, sb); err != nil { return nil, err } } return ss, nil } func (r descsByName) initMethodsFromDescriptorProto(mds []*descriptorpb.MethodDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ms []filedesc.Method, err error) { ms = make([]filedesc.Method, len(mds)) // allocate up-front to ensure stable pointers for i, md := range mds { m := &ms[i] if m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil { return nil, err } if opts := md.GetOptions(); opts != nil { opts = proto.Clone(opts).(*descriptorpb.MethodOptions) m.L1.Options = func() protoreflect.ProtoMessage { return opts } } m.L1.IsStreamingClient = md.GetClientStreaming() m.L1.IsStreamingServer = md.GetServerStreaming() } return ms, nil } func (r descsByName) makeBase(child, parent protoreflect.Descriptor, name string, idx int, sb *strs.Builder) (filedesc.BaseL0, error) { if !protoreflect.Name(name).IsValid() { return filedesc.BaseL0{}, errors.New("descriptor %q has an invalid nested name: %q", parent.FullName(), name) } // Derive the full name of the child. // Note that enum values are a sibling to the enum parent in the namespace. var fullName protoreflect.FullName if _, ok := parent.(protoreflect.EnumDescriptor); ok { fullName = sb.AppendFullName(parent.FullName().Parent(), protoreflect.Name(name)) } else { fullName = sb.AppendFullName(parent.FullName(), protoreflect.Name(name)) } if _, ok := r[fullName]; ok { return filedesc.BaseL0{}, errors.New("descriptor %q already declared", fullName) } r[fullName] = child // TODO: Verify that the full name does not already exist in the resolver? // This is not as critical since most usages of NewFile will register // the created file back into the registry, which will perform this check. return filedesc.BaseL0{ FullName: fullName, ParentFile: parent.ParentFile().(*filedesc.File), Parent: parent, Index: idx, }, nil } golang-google-protobuf-1.27.1/reflect/protodesc/desc_resolve.go000066400000000000000000000236151411250152500246160ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protodesc import ( "google.golang.org/protobuf/internal/encoding/defval" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/filedesc" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/types/descriptorpb" ) // resolver is a wrapper around a local registry of declarations within the file // and the remote resolver. The remote resolver is restricted to only return // descriptors that have been imported. type resolver struct { local descsByName remote Resolver imports importSet allowUnresolvable bool } func (r *resolver) resolveMessageDependencies(ms []filedesc.Message, mds []*descriptorpb.DescriptorProto) (err error) { for i, md := range mds { m := &ms[i] for j, fd := range md.GetField() { f := &m.L2.Fields.List[j] if f.L1.Cardinality == protoreflect.Required { m.L2.RequiredNumbers.List = append(m.L2.RequiredNumbers.List, f.L1.Number) } if fd.OneofIndex != nil { k := int(fd.GetOneofIndex()) if !(0 <= k && k < len(md.GetOneofDecl())) { return errors.New("message field %q has an invalid oneof index: %d", f.FullName(), k) } o := &m.L2.Oneofs.List[k] f.L1.ContainingOneof = o o.L1.Fields.List = append(o.L1.Fields.List, f) } if f.L1.Kind, f.L1.Enum, f.L1.Message, err = r.findTarget(f.Kind(), f.Parent().FullName(), partialName(fd.GetTypeName()), f.IsWeak()); err != nil { return errors.New("message field %q cannot resolve type: %v", f.FullName(), err) } if fd.DefaultValue != nil { v, ev, err := unmarshalDefault(fd.GetDefaultValue(), f, r.allowUnresolvable) if err != nil { return errors.New("message field %q has invalid default: %v", f.FullName(), err) } f.L1.Default = filedesc.DefaultValue(v, ev) } } if err := r.resolveMessageDependencies(m.L1.Messages.List, md.GetNestedType()); err != nil { return err } if err := r.resolveExtensionDependencies(m.L1.Extensions.List, md.GetExtension()); err != nil { return err } } return nil } func (r *resolver) resolveExtensionDependencies(xs []filedesc.Extension, xds []*descriptorpb.FieldDescriptorProto) (err error) { for i, xd := range xds { x := &xs[i] if x.L1.Extendee, err = r.findMessageDescriptor(x.Parent().FullName(), partialName(xd.GetExtendee()), false); err != nil { return errors.New("extension field %q cannot resolve extendee: %v", x.FullName(), err) } if x.L1.Kind, x.L2.Enum, x.L2.Message, err = r.findTarget(x.Kind(), x.Parent().FullName(), partialName(xd.GetTypeName()), false); err != nil { return errors.New("extension field %q cannot resolve type: %v", x.FullName(), err) } if xd.DefaultValue != nil { v, ev, err := unmarshalDefault(xd.GetDefaultValue(), x, r.allowUnresolvable) if err != nil { return errors.New("extension field %q has invalid default: %v", x.FullName(), err) } x.L2.Default = filedesc.DefaultValue(v, ev) } } return nil } func (r *resolver) resolveServiceDependencies(ss []filedesc.Service, sds []*descriptorpb.ServiceDescriptorProto) (err error) { for i, sd := range sds { s := &ss[i] for j, md := range sd.GetMethod() { m := &s.L2.Methods.List[j] m.L1.Input, err = r.findMessageDescriptor(m.Parent().FullName(), partialName(md.GetInputType()), false) if err != nil { return errors.New("service method %q cannot resolve input: %v", m.FullName(), err) } m.L1.Output, err = r.findMessageDescriptor(s.FullName(), partialName(md.GetOutputType()), false) if err != nil { return errors.New("service method %q cannot resolve output: %v", m.FullName(), err) } } } return nil } // findTarget finds an enum or message descriptor if k is an enum, message, // group, or unknown. If unknown, and the name could be resolved, the kind // returned kind is set based on the type of the resolved descriptor. func (r *resolver) findTarget(k protoreflect.Kind, scope protoreflect.FullName, ref partialName, isWeak bool) (protoreflect.Kind, protoreflect.EnumDescriptor, protoreflect.MessageDescriptor, error) { switch k { case protoreflect.EnumKind: ed, err := r.findEnumDescriptor(scope, ref, isWeak) if err != nil { return 0, nil, nil, err } return k, ed, nil, nil case protoreflect.MessageKind, protoreflect.GroupKind: md, err := r.findMessageDescriptor(scope, ref, isWeak) if err != nil { return 0, nil, nil, err } return k, nil, md, nil case 0: // Handle unspecified kinds (possible with parsers that operate // on a per-file basis without knowledge of dependencies). d, err := r.findDescriptor(scope, ref) if err == protoregistry.NotFound && (r.allowUnresolvable || isWeak) { return k, filedesc.PlaceholderEnum(ref.FullName()), filedesc.PlaceholderMessage(ref.FullName()), nil } else if err == protoregistry.NotFound { return 0, nil, nil, errors.New("%q not found", ref.FullName()) } else if err != nil { return 0, nil, nil, err } switch d := d.(type) { case protoreflect.EnumDescriptor: return protoreflect.EnumKind, d, nil, nil case protoreflect.MessageDescriptor: return protoreflect.MessageKind, nil, d, nil default: return 0, nil, nil, errors.New("unknown kind") } default: if ref != "" { return 0, nil, nil, errors.New("target name cannot be specified for %v", k) } if !k.IsValid() { return 0, nil, nil, errors.New("invalid kind: %d", k) } return k, nil, nil, nil } } // findDescriptor finds the descriptor by name, // which may be a relative name within some scope. // // Suppose the scope was "fizz.buzz" and the reference was "Foo.Bar", // then the following full names are searched: // * fizz.buzz.Foo.Bar // * fizz.Foo.Bar // * Foo.Bar func (r *resolver) findDescriptor(scope protoreflect.FullName, ref partialName) (protoreflect.Descriptor, error) { if !ref.IsValid() { return nil, errors.New("invalid name reference: %q", ref) } if ref.IsFull() { scope, ref = "", ref[1:] } var foundButNotImported protoreflect.Descriptor for { // Derive the full name to search. s := protoreflect.FullName(ref) if scope != "" { s = scope + "." + s } // Check the current file for the descriptor. if d, ok := r.local[s]; ok { return d, nil } // Check the remote registry for the descriptor. d, err := r.remote.FindDescriptorByName(s) if err == nil { // Only allow descriptors covered by one of the imports. if r.imports[d.ParentFile().Path()] { return d, nil } foundButNotImported = d } else if err != protoregistry.NotFound { return nil, errors.Wrap(err, "%q", s) } // Continue on at a higher level of scoping. if scope == "" { if d := foundButNotImported; d != nil { return nil, errors.New("resolved %q, but %q is not imported", d.FullName(), d.ParentFile().Path()) } return nil, protoregistry.NotFound } scope = scope.Parent() } } func (r *resolver) findEnumDescriptor(scope protoreflect.FullName, ref partialName, isWeak bool) (protoreflect.EnumDescriptor, error) { d, err := r.findDescriptor(scope, ref) if err == protoregistry.NotFound && (r.allowUnresolvable || isWeak) { return filedesc.PlaceholderEnum(ref.FullName()), nil } else if err == protoregistry.NotFound { return nil, errors.New("%q not found", ref.FullName()) } else if err != nil { return nil, err } ed, ok := d.(protoreflect.EnumDescriptor) if !ok { return nil, errors.New("resolved %q, but it is not an enum", d.FullName()) } return ed, nil } func (r *resolver) findMessageDescriptor(scope protoreflect.FullName, ref partialName, isWeak bool) (protoreflect.MessageDescriptor, error) { d, err := r.findDescriptor(scope, ref) if err == protoregistry.NotFound && (r.allowUnresolvable || isWeak) { return filedesc.PlaceholderMessage(ref.FullName()), nil } else if err == protoregistry.NotFound { return nil, errors.New("%q not found", ref.FullName()) } else if err != nil { return nil, err } md, ok := d.(protoreflect.MessageDescriptor) if !ok { return nil, errors.New("resolved %q, but it is not an message", d.FullName()) } return md, nil } // partialName is the partial name. A leading dot means that the name is full, // otherwise the name is relative to some current scope. // See google.protobuf.FieldDescriptorProto.type_name. type partialName string func (s partialName) IsFull() bool { return len(s) > 0 && s[0] == '.' } func (s partialName) IsValid() bool { if s.IsFull() { return protoreflect.FullName(s[1:]).IsValid() } return protoreflect.FullName(s).IsValid() } const unknownPrefix = "*." // FullName converts the partial name to a full name on a best-effort basis. // If relative, it creates an invalid full name, using a "*." prefix // to indicate that the start of the full name is unknown. func (s partialName) FullName() protoreflect.FullName { if s.IsFull() { return protoreflect.FullName(s[1:]) } return protoreflect.FullName(unknownPrefix + s) } func unmarshalDefault(s string, fd protoreflect.FieldDescriptor, allowUnresolvable bool) (protoreflect.Value, protoreflect.EnumValueDescriptor, error) { var evs protoreflect.EnumValueDescriptors if fd.Enum() != nil { evs = fd.Enum().Values() } v, ev, err := defval.Unmarshal(s, fd.Kind(), evs, defval.Descriptor) if err != nil && allowUnresolvable && evs != nil && protoreflect.Name(s).IsValid() { v = protoreflect.ValueOfEnum(0) if evs.Len() > 0 { v = protoreflect.ValueOfEnum(evs.Get(0).Number()) } ev = filedesc.PlaceholderEnumValue(fd.Enum().FullName().Parent().Append(protoreflect.Name(s))) } else if err != nil { return v, ev, err } if fd.Syntax() == protoreflect.Proto3 { return v, ev, errors.New("cannot be specified under proto3 semantics") } if fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind || fd.Cardinality() == protoreflect.Repeated { return v, ev, errors.New("cannot be specified on composite types") } return v, ev, nil } golang-google-protobuf-1.27.1/reflect/protodesc/desc_validate.go000066400000000000000000000402421411250152500247230ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protodesc import ( "strings" "unicode" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/filedesc" "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/internal/strs" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/types/descriptorpb" ) func validateEnumDeclarations(es []filedesc.Enum, eds []*descriptorpb.EnumDescriptorProto) error { for i, ed := range eds { e := &es[i] if err := e.L2.ReservedNames.CheckValid(); err != nil { return errors.New("enum %q reserved names has %v", e.FullName(), err) } if err := e.L2.ReservedRanges.CheckValid(); err != nil { return errors.New("enum %q reserved ranges has %v", e.FullName(), err) } if len(ed.GetValue()) == 0 { return errors.New("enum %q must contain at least one value declaration", e.FullName()) } allowAlias := ed.GetOptions().GetAllowAlias() foundAlias := false for i := 0; i < e.Values().Len(); i++ { v1 := e.Values().Get(i) if v2 := e.Values().ByNumber(v1.Number()); v1 != v2 { foundAlias = true if !allowAlias { return errors.New("enum %q has conflicting non-aliased values on number %d: %q with %q", e.FullName(), v1.Number(), v1.Name(), v2.Name()) } } } if allowAlias && !foundAlias { return errors.New("enum %q allows aliases, but none were found", e.FullName()) } if e.Syntax() == protoreflect.Proto3 { if v := e.Values().Get(0); v.Number() != 0 { return errors.New("enum %q using proto3 semantics must have zero number for the first value", v.FullName()) } // Verify that value names in proto3 do not conflict if the // case-insensitive prefix is removed. // See protoc v3.8.0: src/google/protobuf/descriptor.cc:4991-5055 names := map[string]protoreflect.EnumValueDescriptor{} prefix := strings.Replace(strings.ToLower(string(e.Name())), "_", "", -1) for i := 0; i < e.Values().Len(); i++ { v1 := e.Values().Get(i) s := strs.EnumValueName(strs.TrimEnumPrefix(string(v1.Name()), prefix)) if v2, ok := names[s]; ok && v1.Number() != v2.Number() { return errors.New("enum %q using proto3 semantics has conflict: %q with %q", e.FullName(), v1.Name(), v2.Name()) } names[s] = v1 } } for j, vd := range ed.GetValue() { v := &e.L2.Values.List[j] if vd.Number == nil { return errors.New("enum value %q must have a specified number", v.FullName()) } if e.L2.ReservedNames.Has(v.Name()) { return errors.New("enum value %q must not use reserved name", v.FullName()) } if e.L2.ReservedRanges.Has(v.Number()) { return errors.New("enum value %q must not use reserved number %d", v.FullName(), v.Number()) } } } return nil } func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.DescriptorProto) error { for i, md := range mds { m := &ms[i] // Handle the message descriptor itself. isMessageSet := md.GetOptions().GetMessageSetWireFormat() if err := m.L2.ReservedNames.CheckValid(); err != nil { return errors.New("message %q reserved names has %v", m.FullName(), err) } if err := m.L2.ReservedRanges.CheckValid(isMessageSet); err != nil { return errors.New("message %q reserved ranges has %v", m.FullName(), err) } if err := m.L2.ExtensionRanges.CheckValid(isMessageSet); err != nil { return errors.New("message %q extension ranges has %v", m.FullName(), err) } if err := (*filedesc.FieldRanges).CheckOverlap(&m.L2.ReservedRanges, &m.L2.ExtensionRanges); err != nil { return errors.New("message %q reserved and extension ranges has %v", m.FullName(), err) } for i := 0; i < m.Fields().Len(); i++ { f1 := m.Fields().Get(i) if f2 := m.Fields().ByNumber(f1.Number()); f1 != f2 { return errors.New("message %q has conflicting fields: %q with %q", m.FullName(), f1.Name(), f2.Name()) } } if isMessageSet && !flags.ProtoLegacy { return errors.New("message %q is a MessageSet, which is a legacy proto1 feature that is no longer supported", m.FullName()) } if isMessageSet && (m.Syntax() != protoreflect.Proto2 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) { return errors.New("message %q is an invalid proto1 MessageSet", m.FullName()) } if m.Syntax() == protoreflect.Proto3 { if m.ExtensionRanges().Len() > 0 { return errors.New("message %q using proto3 semantics cannot have extension ranges", m.FullName()) } // Verify that field names in proto3 do not conflict if lowercased // with all underscores removed. // See protoc v3.8.0: src/google/protobuf/descriptor.cc:5830-5847 names := map[string]protoreflect.FieldDescriptor{} for i := 0; i < m.Fields().Len(); i++ { f1 := m.Fields().Get(i) s := strings.Replace(strings.ToLower(string(f1.Name())), "_", "", -1) if f2, ok := names[s]; ok { return errors.New("message %q using proto3 semantics has conflict: %q with %q", m.FullName(), f1.Name(), f2.Name()) } names[s] = f1 } } for j, fd := range md.GetField() { f := &m.L2.Fields.List[j] if m.L2.ReservedNames.Has(f.Name()) { return errors.New("message field %q must not use reserved name", f.FullName()) } if !f.Number().IsValid() { return errors.New("message field %q has an invalid number: %d", f.FullName(), f.Number()) } if !f.Cardinality().IsValid() { return errors.New("message field %q has an invalid cardinality: %d", f.FullName(), f.Cardinality()) } if m.L2.ReservedRanges.Has(f.Number()) { return errors.New("message field %q must not use reserved number %d", f.FullName(), f.Number()) } if m.L2.ExtensionRanges.Has(f.Number()) { return errors.New("message field %q with number %d in extension range", f.FullName(), f.Number()) } if fd.Extendee != nil { return errors.New("message field %q may not have extendee: %q", f.FullName(), fd.GetExtendee()) } if f.L1.IsProto3Optional { if f.Syntax() != protoreflect.Proto3 { return errors.New("message field %q under proto3 optional semantics must be specified in the proto3 syntax", f.FullName()) } if f.Cardinality() != protoreflect.Optional { return errors.New("message field %q under proto3 optional semantics must have optional cardinality", f.FullName()) } if f.ContainingOneof() != nil && f.ContainingOneof().Fields().Len() != 1 { return errors.New("message field %q under proto3 optional semantics must be within a single element oneof", f.FullName()) } } if f.IsWeak() && !flags.ProtoLegacy { return errors.New("message field %q is a weak field, which is a legacy proto1 feature that is no longer supported", f.FullName()) } if f.IsWeak() && (f.Syntax() != protoreflect.Proto2 || !isOptionalMessage(f) || f.ContainingOneof() != nil) { return errors.New("message field %q may only be weak for an optional message", f.FullName()) } if f.IsPacked() && !isPackable(f) { return errors.New("message field %q is not packable", f.FullName()) } if err := checkValidGroup(f); err != nil { return errors.New("message field %q is an invalid group: %v", f.FullName(), err) } if err := checkValidMap(f); err != nil { return errors.New("message field %q is an invalid map: %v", f.FullName(), err) } if f.Syntax() == protoreflect.Proto3 { if f.Cardinality() == protoreflect.Required { return errors.New("message field %q using proto3 semantics cannot be required", f.FullName()) } if f.Enum() != nil && !f.Enum().IsPlaceholder() && f.Enum().Syntax() != protoreflect.Proto3 { return errors.New("message field %q using proto3 semantics may only depend on a proto3 enum", f.FullName()) } } } seenSynthetic := false // synthetic oneofs for proto3 optional must come after real oneofs for j := range md.GetOneofDecl() { o := &m.L2.Oneofs.List[j] if o.Fields().Len() == 0 { return errors.New("message oneof %q must contain at least one field declaration", o.FullName()) } if n := o.Fields().Len(); n-1 != (o.Fields().Get(n-1).Index() - o.Fields().Get(0).Index()) { return errors.New("message oneof %q must have consecutively declared fields", o.FullName()) } if o.IsSynthetic() { seenSynthetic = true continue } if !o.IsSynthetic() && seenSynthetic { return errors.New("message oneof %q must be declared before synthetic oneofs", o.FullName()) } for i := 0; i < o.Fields().Len(); i++ { f := o.Fields().Get(i) if f.Cardinality() != protoreflect.Optional { return errors.New("message field %q belongs in a oneof and must be optional", f.FullName()) } if f.IsWeak() { return errors.New("message field %q belongs in a oneof and must not be a weak reference", f.FullName()) } } } if err := validateEnumDeclarations(m.L1.Enums.List, md.GetEnumType()); err != nil { return err } if err := validateMessageDeclarations(m.L1.Messages.List, md.GetNestedType()); err != nil { return err } if err := validateExtensionDeclarations(m.L1.Extensions.List, md.GetExtension()); err != nil { return err } } return nil } func validateExtensionDeclarations(xs []filedesc.Extension, xds []*descriptorpb.FieldDescriptorProto) error { for i, xd := range xds { x := &xs[i] // NOTE: Avoid using the IsValid method since extensions to MessageSet // may have a field number higher than normal. This check only verifies // that the number is not negative or reserved. We check again later // if we know that the extendee is definitely not a MessageSet. if n := x.Number(); n < 0 || (protowire.FirstReservedNumber <= n && n <= protowire.LastReservedNumber) { return errors.New("extension field %q has an invalid number: %d", x.FullName(), x.Number()) } if !x.Cardinality().IsValid() || x.Cardinality() == protoreflect.Required { return errors.New("extension field %q has an invalid cardinality: %d", x.FullName(), x.Cardinality()) } if xd.JsonName != nil { // A bug in older versions of protoc would always populate the // "json_name" option for extensions when it is meaningless. // When it did so, it would always use the camel-cased field name. if xd.GetJsonName() != strs.JSONCamelCase(string(x.Name())) { return errors.New("extension field %q may not have an explicitly set JSON name: %q", x.FullName(), xd.GetJsonName()) } } if xd.OneofIndex != nil { return errors.New("extension field %q may not be part of a oneof", x.FullName()) } if md := x.ContainingMessage(); !md.IsPlaceholder() { if !md.ExtensionRanges().Has(x.Number()) { return errors.New("extension field %q extends %q with non-extension field number: %d", x.FullName(), md.FullName(), x.Number()) } isMessageSet := md.Options().(*descriptorpb.MessageOptions).GetMessageSetWireFormat() if isMessageSet && !isOptionalMessage(x) { return errors.New("extension field %q extends MessageSet and must be an optional message", x.FullName()) } if !isMessageSet && !x.Number().IsValid() { return errors.New("extension field %q has an invalid number: %d", x.FullName(), x.Number()) } } if xd.GetOptions().GetWeak() { return errors.New("extension field %q cannot be a weak reference", x.FullName()) } if x.IsPacked() && !isPackable(x) { return errors.New("extension field %q is not packable", x.FullName()) } if err := checkValidGroup(x); err != nil { return errors.New("extension field %q is an invalid group: %v", x.FullName(), err) } if md := x.Message(); md != nil && md.IsMapEntry() { return errors.New("extension field %q cannot be a map entry", x.FullName()) } if x.Syntax() == protoreflect.Proto3 { switch x.ContainingMessage().FullName() { case (*descriptorpb.FileOptions)(nil).ProtoReflect().Descriptor().FullName(): case (*descriptorpb.EnumOptions)(nil).ProtoReflect().Descriptor().FullName(): case (*descriptorpb.EnumValueOptions)(nil).ProtoReflect().Descriptor().FullName(): case (*descriptorpb.MessageOptions)(nil).ProtoReflect().Descriptor().FullName(): case (*descriptorpb.FieldOptions)(nil).ProtoReflect().Descriptor().FullName(): case (*descriptorpb.OneofOptions)(nil).ProtoReflect().Descriptor().FullName(): case (*descriptorpb.ExtensionRangeOptions)(nil).ProtoReflect().Descriptor().FullName(): case (*descriptorpb.ServiceOptions)(nil).ProtoReflect().Descriptor().FullName(): case (*descriptorpb.MethodOptions)(nil).ProtoReflect().Descriptor().FullName(): default: return errors.New("extension field %q cannot be declared in proto3 unless extended descriptor options", x.FullName()) } } } return nil } // isOptionalMessage reports whether this is an optional message. // If the kind is unknown, it is assumed to be a message. func isOptionalMessage(fd protoreflect.FieldDescriptor) bool { return (fd.Kind() == 0 || fd.Kind() == protoreflect.MessageKind) && fd.Cardinality() == protoreflect.Optional } // isPackable checks whether the pack option can be specified. func isPackable(fd protoreflect.FieldDescriptor) bool { switch fd.Kind() { case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: return false } return fd.IsList() } // checkValidGroup reports whether fd is a valid group according to the same // rules that protoc imposes. func checkValidGroup(fd protoreflect.FieldDescriptor) error { md := fd.Message() switch { case fd.Kind() != protoreflect.GroupKind: return nil case fd.Syntax() != protoreflect.Proto2: return errors.New("invalid under proto2 semantics") case md == nil || md.IsPlaceholder(): return errors.New("message must be resolvable") case fd.FullName().Parent() != md.FullName().Parent(): return errors.New("message and field must be declared in the same scope") case !unicode.IsUpper(rune(md.Name()[0])): return errors.New("message name must start with an uppercase") case fd.Name() != protoreflect.Name(strings.ToLower(string(md.Name()))): return errors.New("field name must be lowercased form of the message name") } return nil } // checkValidMap checks whether the field is a valid map according to the same // rules that protoc imposes. // See protoc v3.8.0: src/google/protobuf/descriptor.cc:6045-6115 func checkValidMap(fd protoreflect.FieldDescriptor) error { md := fd.Message() switch { case md == nil || !md.IsMapEntry(): return nil case fd.FullName().Parent() != md.FullName().Parent(): return errors.New("message and field must be declared in the same scope") case md.Name() != protoreflect.Name(strs.MapEntryName(string(fd.Name()))): return errors.New("incorrect implicit map entry name") case fd.Cardinality() != protoreflect.Repeated: return errors.New("field must be repeated") case md.Fields().Len() != 2: return errors.New("message must have exactly two fields") case md.ExtensionRanges().Len() > 0: return errors.New("message must not have any extension ranges") case md.Enums().Len()+md.Messages().Len()+md.Extensions().Len() > 0: return errors.New("message must not have any nested declarations") } kf := md.Fields().Get(0) vf := md.Fields().Get(1) switch { case kf.Name() != genid.MapEntry_Key_field_name || kf.Number() != genid.MapEntry_Key_field_number || kf.Cardinality() != protoreflect.Optional || kf.ContainingOneof() != nil || kf.HasDefault(): return errors.New("invalid key field") case vf.Name() != genid.MapEntry_Value_field_name || vf.Number() != genid.MapEntry_Value_field_number || vf.Cardinality() != protoreflect.Optional || vf.ContainingOneof() != nil || vf.HasDefault(): return errors.New("invalid value field") } switch kf.Kind() { case protoreflect.BoolKind: // bool case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: // int32 case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: // int64 case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: // uint32 case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: // uint64 case protoreflect.StringKind: // string default: return errors.New("invalid key kind: %v", kf.Kind()) } if e := vf.Enum(); e != nil && e.Values().Len() > 0 && e.Values().Get(0).Number() != 0 { return errors.New("map enum value must have zero number for the first value") } return nil } golang-google-protobuf-1.27.1/reflect/protodesc/file_test.go000066400000000000000000001066651411250152500241260ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protodesc import ( "fmt" "strings" "testing" "google.golang.org/protobuf/encoding/prototext" "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/types/descriptorpb" ) func mustParseFile(s string) *descriptorpb.FileDescriptorProto { pb := new(descriptorpb.FileDescriptorProto) if err := prototext.Unmarshal([]byte(s), pb); err != nil { panic(err) } return pb } func cloneFile(in *descriptorpb.FileDescriptorProto) *descriptorpb.FileDescriptorProto { return proto.Clone(in).(*descriptorpb.FileDescriptorProto) } var ( proto2Enum = mustParseFile(` syntax: "proto2" name: "proto2_enum.proto" package: "test.proto2" enum_type: [{name:"Enum" value:[{name:"ONE" number:1}]}] `) proto3Message = mustParseFile(` syntax: "proto3" name: "proto3_message.proto" package: "test.proto3" message_type: [{ name: "Message" field: [ {name:"foo" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"bar" number:2 label:LABEL_OPTIONAL type:TYPE_STRING} ] }] `) extendableMessage = mustParseFile(` syntax: "proto2" name: "extendable_message.proto" package: "test.proto2" message_type: [{name:"Message" extension_range:[{start:1 end:1000}]}] `) importPublicFile1 = mustParseFile(` syntax: "proto3" name: "import_public1.proto" dependency: ["proto2_enum.proto", "proto3_message.proto", "extendable_message.proto"] message_type: [{name:"Public1"}] `) importPublicFile2 = mustParseFile(` syntax: "proto3" name: "import_public2.proto" dependency: ["import_public1.proto"] public_dependency: [0] message_type: [{name:"Public2"}] `) importPublicFile3 = mustParseFile(` syntax: "proto3" name: "import_public3.proto" dependency: ["import_public2.proto", "extendable_message.proto"] public_dependency: [0] message_type: [{name:"Public3"}] `) importPublicFile4 = mustParseFile(` syntax: "proto3" name: "import_public4.proto" dependency: ["import_public2.proto", "import_public3.proto", "proto2_enum.proto"] public_dependency: [0, 1] message_type: [{name:"Public4"}] `) ) func TestNewFile(t *testing.T) { tests := []struct { label string inDeps []*descriptorpb.FileDescriptorProto inDesc *descriptorpb.FileDescriptorProto inOpts FileOptions wantDesc *descriptorpb.FileDescriptorProto wantErr string }{{ label: "empty path", inDesc: mustParseFile(``), wantErr: `path must be populated`, }, { label: "empty package and syntax", inDesc: mustParseFile(`name:"weird"`), }, { label: "invalid syntax", inDesc: mustParseFile(`name:"weird" syntax:"proto9"`), wantErr: `invalid syntax: "proto9"`, }, { label: "bad package", inDesc: mustParseFile(`name:"weird" package:"$"`), wantErr: `invalid package: "$"`, }, { label: "unresolvable import", inDesc: mustParseFile(` name: "test.proto" dependency: "dep.proto" `), wantErr: `could not resolve import "dep.proto": not found`, }, { label: "unresolvable import but allowed", inDesc: mustParseFile(` name: "test.proto" dependency: "dep.proto" `), inOpts: FileOptions{AllowUnresolvable: true}, }, { label: "duplicate import", inDesc: mustParseFile(` name: "test.proto" dependency: ["dep.proto", "dep.proto"] `), inOpts: FileOptions{AllowUnresolvable: true}, wantErr: `already imported "dep.proto"`, }, { label: "invalid weak import", inDesc: mustParseFile(` name: "test.proto" dependency: "dep.proto" weak_dependency: [-23] `), inOpts: FileOptions{AllowUnresolvable: true}, wantErr: `invalid or duplicate weak import index: -23`, }, { label: "normal weak and public import", inDesc: mustParseFile(` name: "test.proto" dependency: "dep.proto" weak_dependency: [0] public_dependency: [0] `), inOpts: FileOptions{AllowUnresolvable: true}, }, { label: "import public indirect dependency duplicate", inDeps: []*descriptorpb.FileDescriptorProto{ mustParseFile(`name:"leaf.proto"`), mustParseFile(`name:"public.proto" dependency:"leaf.proto" public_dependency:0`), }, inDesc: mustParseFile(` name: "test.proto" dependency: ["public.proto", "leaf.proto"] `), }, { label: "import public graph", inDeps: []*descriptorpb.FileDescriptorProto{ cloneFile(proto2Enum), cloneFile(proto3Message), cloneFile(extendableMessage), cloneFile(importPublicFile1), cloneFile(importPublicFile2), cloneFile(importPublicFile3), cloneFile(importPublicFile4), }, inDesc: mustParseFile(` name: "test.proto" package: "test.graph" dependency: ["import_public4.proto"], `), // TODO: Test import public }, { label: "preserve source code locations", inDesc: mustParseFile(` name: "test.proto" package: "fizz.buzz" source_code_info: {location: [{ span: [39,0,882,1] }, { path: [12] span: [39,0,18] leading_detached_comments: [" foo\n"," bar\n"] }, { path: [8,9] span: [51,0,28] leading_comments: " Comment\n" }]} `), }, { label: "invalid source code span", inDesc: mustParseFile(` name: "test.proto" package: "fizz.buzz" source_code_info: {location: [{ span: [39] }]} `), wantErr: `invalid span: [39]`, }, { label: "resolve relative reference", inDesc: mustParseFile(` name: "test.proto" package: "fizz.buzz" message_type: [{ name: "A" field: [{name:"F" number:1 label:LABEL_OPTIONAL type:TYPE_MESSAGE type_name:"B.C"}] nested_type: [{name: "B"}] }, { name: "B" nested_type: [{name: "C"}] }] `), wantDesc: mustParseFile(` name: "test.proto" package: "fizz.buzz" message_type: [{ name: "A" field: [{name:"F" number:1 label:LABEL_OPTIONAL type:TYPE_MESSAGE type_name:".fizz.buzz.B.C"}] nested_type: [{name: "B"}] }, { name: "B" nested_type: [{name: "C"}] }] `), }, { label: "resolve the wrong type", inDesc: mustParseFile(` name: "test.proto" message_type: [{ name: "M" field: [{name:"F" number:1 label:LABEL_OPTIONAL type:TYPE_MESSAGE type_name:"E"}] enum_type: [{name: "E" value: [{name:"V0" number:0}, {name:"V1" number:1}]}] }] `), wantErr: `message field "M.F" cannot resolve type: resolved "M.E", but it is not an message`, }, { label: "auto-resolve unknown kind", inDesc: mustParseFile(` name: "test.proto" message_type: [{ name: "M" field: [{name:"F" number:1 label:LABEL_OPTIONAL type_name:"E"}] enum_type: [{name: "E" value: [{name:"V0" number:0}, {name:"V1" number:1}]}] }] `), wantDesc: mustParseFile(` name: "test.proto" message_type: [{ name: "M" field: [{name:"F" number:1 label:LABEL_OPTIONAL type:TYPE_ENUM type_name:".M.E"}] enum_type: [{name: "E" value: [{name:"V0" number:0}, {name:"V1" number:1}]}] }] `), }, { label: "unresolved import", inDesc: mustParseFile(` name: "test.proto" package: "fizz.buzz" dependency: "remote.proto" `), wantErr: `could not resolve import "remote.proto": not found`, }, { label: "unresolved message field", inDesc: mustParseFile(` name: "test.proto" package: "fizz.buzz" message_type: [{ name: "M" field: [{name:"F1" number:1 label:LABEL_OPTIONAL type:TYPE_ENUM type_name:"some.other.enum" default_value:"UNKNOWN"}] }] `), wantErr: `message field "fizz.buzz.M.F1" cannot resolve type: "*.some.other.enum" not found`, }, { label: "unresolved default enum value", inDesc: mustParseFile(` name: "test.proto" package: "fizz.buzz" message_type: [{ name: "M" field: [{name:"F1" number:1 label:LABEL_OPTIONAL type:TYPE_ENUM type_name:"E" default_value:"UNKNOWN"}] enum_type: [{name:"E" value:[{name:"V0" number:0}]}] }] `), wantErr: `message field "fizz.buzz.M.F1" has invalid default: could not parse value for enum: "UNKNOWN"`, }, { label: "allowed unresolved default enum value", inDesc: mustParseFile(` name: "test.proto" package: "fizz.buzz" message_type: [{ name: "M" field: [{name:"F1" number:1 label:LABEL_OPTIONAL type:TYPE_ENUM type_name:".fizz.buzz.M.E" default_value:"UNKNOWN"}] enum_type: [{name:"E" value:[{name:"V0" number:0}]}] }] `), inOpts: FileOptions{AllowUnresolvable: true}, }, { label: "unresolved extendee", inDesc: mustParseFile(` name: "test.proto" package: "fizz.buzz" extension: [{name:"X" number:1 label:LABEL_OPTIONAL extendee:"some.extended.message" type:TYPE_MESSAGE type_name:"some.other.message"}] `), wantErr: `extension field "fizz.buzz.X" cannot resolve extendee: "*.some.extended.message" not found`, }, { label: "unresolved method input", inDesc: mustParseFile(` name: "test.proto" package: "fizz.buzz" service: [{ name: "S" method: [{name:"M" input_type:"foo.bar.input" output_type:".absolute.foo.bar.output"}] }] `), wantErr: `service method "fizz.buzz.S.M" cannot resolve input: "*.foo.bar.input" not found`, }, { label: "allowed unresolved references", inDesc: mustParseFile(` name: "test.proto" package: "fizz.buzz" dependency: "remote.proto" message_type: [{ name: "M" field: [{name:"F1" number:1 label:LABEL_OPTIONAL type_name:"some.other.enum" default_value:"UNKNOWN"}] }] extension: [{name:"X" number:1 label:LABEL_OPTIONAL extendee:"some.extended.message" type:TYPE_MESSAGE type_name:"some.other.message"}] service: [{ name: "S" method: [{name:"M" input_type:"foo.bar.input" output_type:".absolute.foo.bar.output"}] }] `), inOpts: FileOptions{AllowUnresolvable: true}, }, { label: "resolved but not imported", inDeps: []*descriptorpb.FileDescriptorProto{mustParseFile(` name: "dep.proto" package: "fizz" message_type: [{name:"M" nested_type:[{name:"M"}]}] `)}, inDesc: mustParseFile(` name: "test.proto" package: "fizz.buzz" message_type: [{ name: "M" field: [{name:"F" number:1 label:LABEL_OPTIONAL type:TYPE_MESSAGE type_name:"M.M"}] }] `), wantErr: `message field "fizz.buzz.M.F" cannot resolve type: resolved "fizz.M.M", but "dep.proto" is not imported`, }, { label: "resolved from remote import", inDeps: []*descriptorpb.FileDescriptorProto{mustParseFile(` name: "dep.proto" package: "fizz" message_type: [{name:"M" nested_type:[{name:"M"}]}] `)}, inDesc: mustParseFile(` name: "test.proto" package: "fizz.buzz" dependency: "dep.proto" message_type: [{ name: "M" field: [{name:"F" number:1 label:LABEL_OPTIONAL type:TYPE_MESSAGE type_name:"M.M"}] }] `), wantDesc: mustParseFile(` name: "test.proto" package: "fizz.buzz" dependency: "dep.proto" message_type: [{ name: "M" field: [{name:"F" number:1 label:LABEL_OPTIONAL type:TYPE_MESSAGE type_name:".fizz.M.M"}] }] `), }, { label: "namespace conflict on enum value", inDesc: mustParseFile(` name: "test.proto" enum_type: [{ name: "foo" value: [{name:"foo" number:0}] }] `), wantErr: `descriptor "foo" already declared`, }, { label: "no namespace conflict on message field", inDesc: mustParseFile(` name: "test.proto" message_type: [{ name: "foo" field: [{name:"foo" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}] }] `), }, { label: "invalid name", inDesc: mustParseFile(` name: "test.proto" message_type: [{name: "$"}] `), wantErr: `descriptor "" has an invalid nested name: "$"`, }, { label: "invalid empty enum", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" enum_type:[{name:"E"}]}] `), wantErr: `enum "M.E" must contain at least one value declaration`, }, { label: "invalid enum value without number", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" enum_type:[{name:"E" value:[{name:"one"}]}]}] `), wantErr: `enum value "M.one" must have a specified number`, }, { label: "valid enum", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" enum_type:[{name:"E" value:[{name:"one" number:1}]}]}] `), }, { label: "invalid enum reserved names", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" enum_type:[{ name: "E" reserved_name: [""] value: [{name:"V" number:0}] }]}] `), // NOTE: In theory this should be an error. // See https://github.com/protocolbuffers/protobuf/issues/6335. /*wantErr: `enum "M.E" reserved names has invalid name: ""`,*/ }, { label: "duplicate enum reserved names", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" enum_type:[{ name: "E" reserved_name: ["foo", "foo"] }]}] `), wantErr: `enum "M.E" reserved names has duplicate name: "foo"`, }, { label: "valid enum reserved names", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" enum_type:[{ name: "E" reserved_name: ["foo", "bar"] value: [{name:"baz" number:1}] }]}] `), }, { label: "use of enum reserved names", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" enum_type:[{ name: "E" reserved_name: ["foo", "bar"] value: [{name:"foo" number:1}] }]}] `), wantErr: `enum value "M.foo" must not use reserved name`, }, { label: "invalid enum reserved ranges", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" enum_type:[{ name: "E" reserved_range: [{start:5 end:4}] }]}] `), wantErr: `enum "M.E" reserved ranges has invalid range: 5 to 4`, }, { label: "overlapping enum reserved ranges", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" enum_type:[{ name: "E" reserved_range: [{start:1 end:1000}, {start:10 end:100}] }]}] `), wantErr: `enum "M.E" reserved ranges has overlapping ranges: 1 to 1000 with 10 to 100`, }, { label: "valid enum reserved names", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" enum_type:[{ name: "E" reserved_range: [{start:1 end:10}, {start:100 end:1000}] value: [{name:"baz" number:50}] }]}] `), }, { label: "use of enum reserved range", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" enum_type:[{ name: "E" reserved_range: [{start:1 end:10}, {start:100 end:1000}] value: [{name:"baz" number:500}] }]}] `), wantErr: `enum value "M.baz" must not use reserved number 500`, }, { label: "unused enum alias feature", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" enum_type:[{ name: "E" value: [{name:"baz" number:500}] options: {allow_alias:true} }]}] `), wantErr: `enum "M.E" allows aliases, but none were found`, }, { label: "enum number conflicts", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" enum_type:[{ name: "E" value: [{name:"foo" number:0}, {name:"bar" number:1}, {name:"baz" number:1}] }]}] `), wantErr: `enum "M.E" has conflicting non-aliased values on number 1: "baz" with "bar"`, }, { label: "aliased enum numbers", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" enum_type:[{ name: "E" value: [{name:"foo" number:0}, {name:"bar" number:1}, {name:"baz" number:1}] options: {allow_alias:true} }]}] `), }, { label: "invalid proto3 enum", inDesc: mustParseFile(` syntax: "proto3" name: "test.proto" message_type: [{name:"M" enum_type:[{ name: "E" value: [{name:"baz" number:500}] }]}] `), wantErr: `enum "M.baz" using proto3 semantics must have zero number for the first value`, }, { label: "valid proto3 enum", inDesc: mustParseFile(` syntax: "proto3" name: "test.proto" message_type: [{name:"M" enum_type:[{ name: "E" value: [{name:"baz" number:0}] }]}] `), }, { label: "proto3 enum name prefix conflict", inDesc: mustParseFile(` syntax: "proto3" name: "test.proto" message_type: [{name:"M" enum_type:[{ name: "E" value: [{name:"e_Foo" number:0}, {name:"fOo" number:1}] }]}] `), wantErr: `enum "M.E" using proto3 semantics has conflict: "fOo" with "e_Foo"`, }, { label: "proto2 enum has name prefix check", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" enum_type:[{ name: "E" value: [{name:"e_Foo" number:0}, {name:"fOo" number:1}] }]}] `), }, { label: "proto3 enum same name prefix with number conflict", inDesc: mustParseFile(` syntax: "proto3" name: "test.proto" message_type: [{name:"M" enum_type:[{ name: "E" value: [{name:"e_Foo" number:0}, {name:"fOo" number:0}] }]}] `), wantErr: `enum "M.E" has conflicting non-aliased values on number 0: "fOo" with "e_Foo"`, }, { label: "proto3 enum same name prefix with alias numbers", inDesc: mustParseFile(` syntax: "proto3" name: "test.proto" message_type: [{name:"M" enum_type:[{ name: "E" value: [{name:"e_Foo" number:0}, {name:"fOo" number:0}] options: {allow_alias: true} }]}] `), }, { label: "invalid message reserved names", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" nested_type:[{ name: "M" reserved_name: ["$"] }]}] `), // NOTE: In theory this should be an error. // See https://github.com/protocolbuffers/protobuf/issues/6335. /*wantErr: `message "M.M" reserved names has invalid name: "$"`,*/ }, { label: "valid message reserved names", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" nested_type:[{ name: "M" reserved_name: ["foo", "bar"] field: [{name:"foo" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}] }]}] `), wantErr: `message field "M.M.foo" must not use reserved name`, }, { label: "valid message reserved names", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" nested_type:[{ name: "M" reserved_name: ["foo", "bar"] field: [{name:"baz" number:1 label:LABEL_OPTIONAL type:TYPE_STRING oneof_index:0}] oneof_decl: [{name:"foo"}] # not affected by reserved_name }]}] `), }, { label: "invalid reserved number", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" nested_type:[{ name: "M" reserved_range: [{start:1 end:1}] field: [{name:"baz" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}] }]}] `), wantErr: `message "M.M" reserved ranges has invalid field number: 0`, }, { label: "invalid reserved ranges", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" nested_type:[{ name: "M" reserved_range: [{start:2 end:2}] field: [{name:"baz" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}] }]}] `), wantErr: `message "M.M" reserved ranges has invalid range: 2 to 1`, }, { label: "overlapping reserved ranges", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" nested_type:[{ name: "M" reserved_range: [{start:1 end:10}, {start:2 end:9}] field: [{name:"baz" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}] }]}] `), wantErr: `message "M.M" reserved ranges has overlapping ranges: 1 to 9 with 2 to 8`, }, { label: "use of reserved message field number", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" nested_type:[{ name: "M" reserved_range: [{start:10 end:20}, {start:20 end:30}, {start:30 end:31}] field: [{name:"baz" number:30 label:LABEL_OPTIONAL type:TYPE_STRING}] }]}] `), wantErr: `message field "M.M.baz" must not use reserved number 30`, }, { label: "invalid extension ranges", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" nested_type:[{ name: "M" extension_range: [{start:-500 end:2}] field: [{name:"baz" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}] }]}] `), wantErr: `message "M.M" extension ranges has invalid field number: -500`, }, { label: "overlapping reserved and extension ranges", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" nested_type:[{ name: "M" reserved_range: [{start:15 end:20}, {start:1 end:3}, {start:7 end:10}] extension_range: [{start:8 end:9}, {start:3 end:5}] }]}] `), wantErr: `message "M.M" reserved and extension ranges has overlapping ranges: 7 to 9 with 8`, }, { label: "message field conflicting number", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" nested_type:[{ name: "M" field: [ {name:"one" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"One" number:1 label:LABEL_OPTIONAL type:TYPE_STRING} ] }]}] `), wantErr: `message "M.M" has conflicting fields: "One" with "one"`, }, { label: "invalid MessageSet", inDesc: mustParseFile(` syntax: "proto3" name: "test.proto" message_type: [{name:"M" nested_type:[{ name: "M" options: {message_set_wire_format:true} }]}] `), wantErr: func() string { if flags.ProtoLegacy { return `message "M.M" is an invalid proto1 MessageSet` } else { return `message "M.M" is a MessageSet, which is a legacy proto1 feature that is no longer supported` } }(), }, { label: "valid MessageSet", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" nested_type:[{ name: "M" extension_range: [{start:1 end:100000}] options: {message_set_wire_format:true} }]}] `), wantErr: func() string { if flags.ProtoLegacy { return "" } else { return `message "M.M" is a MessageSet, which is a legacy proto1 feature that is no longer supported` } }(), }, { label: "invalid extension ranges in proto3", inDesc: mustParseFile(` syntax: "proto3" name: "test.proto" message_type: [{name:"M" nested_type:[{ name: "M" extension_range: [{start:1 end:100000}] }]}] `), wantErr: `message "M.M" using proto3 semantics cannot have extension ranges`, }, { label: "proto3 message fields conflict", inDesc: mustParseFile(` syntax: "proto3" name: "test.proto" message_type: [{name:"M" nested_type:[{ name: "M" field: [ {name:"_b_a_z_" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"baz" number:2 label:LABEL_OPTIONAL type:TYPE_STRING} ] }]}] `), wantErr: `message "M.M" using proto3 semantics has conflict: "baz" with "_b_a_z_"`, }, { label: "proto3 message fields", inDesc: mustParseFile(` syntax: "proto3" name: "test.proto" message_type: [{name:"M" nested_type:[{ name: "M" field: [{name:"_b_a_z_" number:1 label:LABEL_OPTIONAL type:TYPE_STRING oneof_index:0}] oneof_decl: [{name:"baz"}] # proto3 name conflict logic does not include oneof }]}] `), }, { label: "proto2 message fields with no conflict", inDesc: mustParseFile(` name: "test.proto" message_type: [{name:"M" nested_type:[{ name: "M" field: [ {name:"_b_a_z_" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"baz" number:2 label:LABEL_OPTIONAL type:TYPE_STRING} ] }]}] `), }, { label: "proto3 message with unresolved enum", inDesc: mustParseFile(` name: "test.proto" syntax: "proto3" message_type: [{ name: "M" field: [ {name:"enum" number:1 label:LABEL_OPTIONAL type:TYPE_ENUM type_name:".fizz.buzz.Enum"} ] }] `), inOpts: FileOptions{AllowUnresolvable: true}, // TODO: Test field and oneof handling in validateMessageDeclarations // TODO: Test unmarshalDefault // TODO: Test validateExtensionDeclarations // TODO: Test checkValidGroup // TODO: Test checkValidMap }, { label: "empty service", inDesc: mustParseFile(` name: "test.proto" service: [{name:"service"}] `), }, { label: "service with method with unresolved", inDesc: mustParseFile(` name: "test.proto" service: [{ name: "service" method: [{ name:"method" input_type:"foo" output_type:".foo.bar.baz" }] }] `), inOpts: FileOptions{AllowUnresolvable: true}, }, { label: "service with wrong reference type", inDeps: []*descriptorpb.FileDescriptorProto{ cloneFile(proto3Message), cloneFile(proto2Enum), }, inDesc: mustParseFile(` name: "test.proto" dependency: ["proto2_enum.proto", "proto3_message.proto"] service: [{ name: "service" method: [{ name: "method" input_type: ".test.proto2.Enum", output_type: ".test.proto3.Message" }] }] `), wantErr: `service method "service.method" cannot resolve input: resolved "test.proto2.Enum", but it is not an message`, }} for _, tt := range tests { t.Run(tt.label, func(t *testing.T) { r := new(protoregistry.Files) for i, dep := range tt.inDeps { f, err := tt.inOpts.New(dep, r) if err != nil { t.Fatalf("dependency %d: unexpected NewFile() error: %v", i, err) } if err := r.RegisterFile(f); err != nil { t.Fatalf("dependency %d: unexpected Register() error: %v", i, err) } } var gotDesc *descriptorpb.FileDescriptorProto if tt.wantErr == "" && tt.wantDesc == nil { tt.wantDesc = cloneFile(tt.inDesc) } gotFile, err := tt.inOpts.New(tt.inDesc, r) if gotFile != nil { gotDesc = ToFileDescriptorProto(gotFile) } if !proto.Equal(gotDesc, tt.wantDesc) { t.Errorf("NewFile() mismatch:\ngot %v\nwant %v", gotDesc, tt.wantDesc) } if ((err == nil) != (tt.wantErr == "")) || !strings.Contains(fmt.Sprint(err), tt.wantErr) { t.Errorf("NewFile() error:\ngot: %v\nwant: %v", err, tt.wantErr) } }) } } func TestNewFiles(t *testing.T) { fdset := &descriptorpb.FileDescriptorSet{ File: []*descriptorpb.FileDescriptorProto{ mustParseFile(` name: "test.proto" package: "fizz" dependency: "dep.proto" message_type: [{ name: "M2" field: [{name:"F" number:1 label:LABEL_OPTIONAL type:TYPE_MESSAGE type_name:"M1"}] }] `), // Inputs deliberately out of order. mustParseFile(` name: "dep.proto" package: "fizz" message_type: [{name:"M1"}] `), }, } f, err := NewFiles(fdset) if err != nil { t.Fatal(err) } m1, err := f.FindDescriptorByName("fizz.M1") if err != nil { t.Fatalf(`f.FindDescriptorByName("fizz.M1") = %v`, err) } m2, err := f.FindDescriptorByName("fizz.M2") if err != nil { t.Fatalf(`f.FindDescriptorByName("fizz.M2") = %v`, err) } if m2.(protoreflect.MessageDescriptor).Fields().ByName("F").Message() != m1 { t.Fatalf(`m1.Fields().ByName("F").Message() != m2`) } } func TestNewFilesImportCycle(t *testing.T) { fdset := &descriptorpb.FileDescriptorSet{ File: []*descriptorpb.FileDescriptorProto{ mustParseFile(` name: "test.proto" package: "fizz" dependency: "dep.proto" `), mustParseFile(` name: "dep.proto" package: "fizz" dependency: "test.proto" `), }, } _, err := NewFiles(fdset) if err == nil { t.Fatal("NewFiles with import cycle: success, want error") } } func TestSourceLocations(t *testing.T) { fd := mustParseFile(` name: "comments.proto" message_type: [{ name: "Message1" field: [ {name:"field1" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"field2" number:2 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"field3" number:3 label:LABEL_OPTIONAL type:TYPE_STRING oneof_index:0}, {name:"field4" number:4 label:LABEL_OPTIONAL type:TYPE_STRING oneof_index:0}, {name:"field5" number:5 label:LABEL_OPTIONAL type:TYPE_STRING oneof_index:1}, {name:"field6" number:6 label:LABEL_OPTIONAL type:TYPE_STRING oneof_index:1} ] extension: [ {name:"extension1" number:100 label:LABEL_OPTIONAL type:TYPE_STRING extendee:".Message1"}, {name:"extension2" number:101 label:LABEL_OPTIONAL type:TYPE_STRING extendee:".Message1"} ] nested_type: [{name:"Message1"}, {name:"Message2"}] extension_range: {start:100 end:536870912} oneof_decl: [{name:"oneof1"}, {name:"oneof2"}] }, { name: "Message2" enum_type: { name: "Enum1" value: [ {name: "FOO", number: 0}, {name: "BAR", number: 1} ] } }] enum_type: { name: "Enum1" value: [ {name: "FOO", number: 0}, {name: "BAR", number: 1} ] } service: { name: "Service1" method: [ {name:"Method1" input_type:".Message1" output_type:".Message1"}, {name:"Method2" input_type:".Message2" output_type:".Message2"} ] } extension: [ {name:"extension1" number:102 label:LABEL_OPTIONAL type:TYPE_STRING extendee:".Message1"}, {name:"extension2" number:103 label:LABEL_OPTIONAL type:TYPE_STRING extendee:".Message1"} ] source_code_info: { location: [ {span:[0,0,69,1]}, {path:[12] span:[0,0,18]}, {path:[5,0] span:[3,0,8,1] leading_comments:" Enum1\r\n"}, {path:[5,0,1] span:[3,5,10]}, {path:[5,0,2,0] span:[5,2,10] leading_comments:" FOO\r\n"}, {path:[5,0,2,0,1] span:[5,2,5]}, {path:[5,0,2,0,2] span:[5,8,9]}, {path:[5,0,2,1] span:[7,2,10] leading_comments:" BAR\r\n"}, {path:[5,0,2,1,1] span:[7,2,5]}, {path:[5,0,2,1,2] span:[7,8,9]}, {path:[4,0] span:[11,0,43,1] leading_comments:" Message1\r\n"}, {path:[4,0,1] span:[11,8,16]}, {path:[4,0,3,0] span:[13,2,21] leading_comments:" Message1.Message1\r\n"}, {path:[4,0,3,0,1] span:[13,10,18]}, {path:[4,0,3,1] span:[15,2,21] leading_comments:" Message1.Message2\r\n"}, {path:[4,0,3,1,1] span:[15,10,18]}, {path:[4,0,2,0] span:[18,2,29] leading_comments:" Message1.field1\r\n"}, {path:[4,0,2,0,4] span:[18,2,10]}, {path:[4,0,2,0,5] span:[18,11,17]}, {path:[4,0,2,0,1] span:[18,18,24]}, {path:[4,0,2,0,3] span:[18,27,28]}, {path:[4,0,2,1] span:[20,2,29] leading_comments:" Message1.field2\r\n"}, {path:[4,0,2,1,4] span:[20,2,10]}, {path:[4,0,2,1,5] span:[20,11,17]}, {path:[4,0,2,1,1] span:[20,18,24]}, {path:[4,0,2,1,3] span:[20,27,28]}, {path:[4,0,8,0] span:[22,2,27,3] leading_comments:" Message1.oneof1\r\n"}, {path:[4,0,8,0,1] span:[22,8,14]}, {path:[4,0,2,2] span:[24,4,22] leading_comments:" Message1.field3\r\n"}, {path:[4,0,2,2,5] span:[24,4,10]}, {path:[4,0,2,2,1] span:[24,11,17]}, {path:[4,0,2,2,3] span:[24,20,21]}, {path:[4,0,2,3] span:[26,4,22] leading_comments:" Message1.field4\r\n"}, {path:[4,0,2,3,5] span:[26,4,10]}, {path:[4,0,2,3,1] span:[26,11,17]}, {path:[4,0,2,3,3] span:[26,20,21]}, {path:[4,0,8,1] span:[29,2,34,3] leading_comments:" Message1.oneof2\r\n"}, {path:[4,0,8,1,1] span:[29,8,14]}, {path:[4,0,2,4] span:[31,4,22] leading_comments:" Message1.field5\r\n"}, {path:[4,0,2,4,5] span:[31,4,10]}, {path:[4,0,2,4,1] span:[31,11,17]}, {path:[4,0,2,4,3] span:[31,20,21]}, {path:[4,0,2,5] span:[33,4,22] leading_comments:" Message1.field6\r\n"}, {path:[4,0,2,5,5] span:[33,4,10]}, {path:[4,0,2,5,1] span:[33,11,17]}, {path:[4,0,2,5,3] span:[33,20,21]}, {path:[4,0,5] span:[36,2,24]}, {path:[4,0,5,0] span:[36,13,23]}, {path:[4,0,5,0,1] span:[36,13,16]}, {path:[4,0,5,0,2] span:[36,20,23]}, {path:[4,0,6] span:[37,2,42,3]}, {path:[4,0,6,0] span:[39,4,37] leading_comments:" Message1.extension1\r\n"}, {path:[4,0,6,0,2] span:[37,9,18]}, {path:[4,0,6,0,4] span:[39,4,12]}, {path:[4,0,6,0,5] span:[39,13,19]}, {path:[4,0,6,0,1] span:[39,20,30]}, {path:[4,0,6,0,3] span:[39,33,36]}, {path:[4,0,6,1] span:[41,4,37] leading_comments:" Message1.extension2\r\n"}, {path:[4,0,6,1,2] span:[37,9,18]}, {path:[4,0,6,1,4] span:[41,4,12]}, {path:[4,0,6,1,5] span:[41,13,19]}, {path:[4,0,6,1,1] span:[41,20,30]}, {path:[4,0,6,1,3] span:[41,33,36]}, {path:[7] span:[45,0,50,1]}, {path:[7,0] span:[47,2,35] leading_comments:" extension1\r\n"}, {path:[7,0,2] span:[45,7,15]}, {path:[7,0,4] span:[47,2,10]}, {path:[7,0,5] span:[47,11,17]}, {path:[7,0,1] span:[47,18,28]}, {path:[7,0,3] span:[47,31,34]}, {path:[7,1] span:[49,2,35] leading_comments:" extension2\r\n"}, {path:[7,1,2] span:[45,7,15]}, {path:[7,1,4] span:[49,2,10]}, {path:[7,1,5] span:[49,11,17]}, {path:[7,1,1] span:[49,18,28]}, {path:[7,1,3] span:[49,31,34]}, {path:[4,1] span:[53,0,61,1] leading_comments:" Message2\r\n"}, {path:[4,1,1] span:[53,8,16]}, {path:[4,1,4,0] span:[55,2,60,3] leading_comments:" Message2.Enum1\r\n"}, {path:[4,1,4,0,1] span:[55,7,12]}, {path:[4,1,4,0,2,0] span:[57,4,12] leading_comments:" Message2.FOO\r\n"}, {path:[4,1,4,0,2,0,1] span:[57,4,7]}, {path:[4,1,4,0,2,0,2] span:[57,10,11]}, {path:[4,1,4,0,2,1] span:[59,4,12] leading_comments:" Message2.BAR\r\n"}, {path:[4,1,4,0,2,1,1] span:[59,4,7]}, {path:[4,1,4,0,2,1,2] span:[59,10,11]}, {path:[6,0] span:[64,0,69,1] leading_comments:" Service1\r\n"}, {path:[6,0,1] span:[64,8,16]}, {path:[6,0,2,0] span:[66,2,43] leading_comments:" Service1.Method1\r\n"}, {path:[6,0,2,0,1] span:[66,6,13]}, {path:[6,0,2,0,2] span:[66,14,22]}, {path:[6,0,2,0,3] span:[66,33,41]}, {path:[6,0,2,1] span:[68,2,43] leading_comments:" Service1.Method2\r\n"}, {path:[6,0,2,1,1] span:[68,6,13]}, {path:[6,0,2,1,2] span:[68,14,22]}, {path:[6,0,2,1,3] span:[68,33,41]} ] } `) fileDesc, err := NewFile(fd, nil) if err != nil { t.Fatalf("NewFile error: %v", err) } var walkDescs func(protoreflect.Descriptor, func(protoreflect.Descriptor)) walkDescs = func(d protoreflect.Descriptor, f func(protoreflect.Descriptor)) { f(d) if d, ok := d.(interface { Enums() protoreflect.EnumDescriptors }); ok { eds := d.Enums() for i := 0; i < eds.Len(); i++ { walkDescs(eds.Get(i), f) } } if d, ok := d.(interface { Values() protoreflect.EnumValueDescriptors }); ok { vds := d.Values() for i := 0; i < vds.Len(); i++ { walkDescs(vds.Get(i), f) } } if d, ok := d.(interface { Messages() protoreflect.MessageDescriptors }); ok { mds := d.Messages() for i := 0; i < mds.Len(); i++ { walkDescs(mds.Get(i), f) } } if d, ok := d.(interface { Fields() protoreflect.FieldDescriptors }); ok { fds := d.Fields() for i := 0; i < fds.Len(); i++ { walkDescs(fds.Get(i), f) } } if d, ok := d.(interface { Oneofs() protoreflect.OneofDescriptors }); ok { ods := d.Oneofs() for i := 0; i < ods.Len(); i++ { walkDescs(ods.Get(i), f) } } if d, ok := d.(interface { Extensions() protoreflect.ExtensionDescriptors }); ok { xds := d.Extensions() for i := 0; i < xds.Len(); i++ { walkDescs(xds.Get(i), f) } } if d, ok := d.(interface { Services() protoreflect.ServiceDescriptors }); ok { sds := d.Services() for i := 0; i < sds.Len(); i++ { walkDescs(sds.Get(i), f) } } if d, ok := d.(interface { Methods() protoreflect.MethodDescriptors }); ok { mds := d.Methods() for i := 0; i < mds.Len(); i++ { walkDescs(mds.Get(i), f) } } } var numDescs int walkDescs(fileDesc, func(d protoreflect.Descriptor) { // The comment for every descriptor should be the full name itself. got := strings.TrimSpace(fileDesc.SourceLocations().ByDescriptor(d).LeadingComments) want := string(d.FullName()) if got != want { t.Errorf("comment mismatch: got %v, want %v", got, want) } numDescs++ }) if numDescs != 30 { t.Errorf("visited %d descriptor, expected 30", numDescs) } } golang-google-protobuf-1.27.1/reflect/protodesc/proto.go000066400000000000000000000227601411250152500233040ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protodesc import ( "fmt" "strings" "google.golang.org/protobuf/internal/encoding/defval" "google.golang.org/protobuf/internal/strs" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/types/descriptorpb" ) // ToFileDescriptorProto copies a protoreflect.FileDescriptor into a // google.protobuf.FileDescriptorProto message. func ToFileDescriptorProto(file protoreflect.FileDescriptor) *descriptorpb.FileDescriptorProto { p := &descriptorpb.FileDescriptorProto{ Name: proto.String(file.Path()), Options: proto.Clone(file.Options()).(*descriptorpb.FileOptions), } if file.Package() != "" { p.Package = proto.String(string(file.Package())) } for i, imports := 0, file.Imports(); i < imports.Len(); i++ { imp := imports.Get(i) p.Dependency = append(p.Dependency, imp.Path()) if imp.IsPublic { p.PublicDependency = append(p.PublicDependency, int32(i)) } if imp.IsWeak { p.WeakDependency = append(p.WeakDependency, int32(i)) } } for i, locs := 0, file.SourceLocations(); i < locs.Len(); i++ { loc := locs.Get(i) l := &descriptorpb.SourceCodeInfo_Location{} l.Path = append(l.Path, loc.Path...) if loc.StartLine == loc.EndLine { l.Span = []int32{int32(loc.StartLine), int32(loc.StartColumn), int32(loc.EndColumn)} } else { l.Span = []int32{int32(loc.StartLine), int32(loc.StartColumn), int32(loc.EndLine), int32(loc.EndColumn)} } l.LeadingDetachedComments = append([]string(nil), loc.LeadingDetachedComments...) if loc.LeadingComments != "" { l.LeadingComments = proto.String(loc.LeadingComments) } if loc.TrailingComments != "" { l.TrailingComments = proto.String(loc.TrailingComments) } if p.SourceCodeInfo == nil { p.SourceCodeInfo = &descriptorpb.SourceCodeInfo{} } p.SourceCodeInfo.Location = append(p.SourceCodeInfo.Location, l) } for i, messages := 0, file.Messages(); i < messages.Len(); i++ { p.MessageType = append(p.MessageType, ToDescriptorProto(messages.Get(i))) } for i, enums := 0, file.Enums(); i < enums.Len(); i++ { p.EnumType = append(p.EnumType, ToEnumDescriptorProto(enums.Get(i))) } for i, services := 0, file.Services(); i < services.Len(); i++ { p.Service = append(p.Service, ToServiceDescriptorProto(services.Get(i))) } for i, exts := 0, file.Extensions(); i < exts.Len(); i++ { p.Extension = append(p.Extension, ToFieldDescriptorProto(exts.Get(i))) } if syntax := file.Syntax(); syntax != protoreflect.Proto2 { p.Syntax = proto.String(file.Syntax().String()) } return p } // ToDescriptorProto copies a protoreflect.MessageDescriptor into a // google.protobuf.DescriptorProto message. func ToDescriptorProto(message protoreflect.MessageDescriptor) *descriptorpb.DescriptorProto { p := &descriptorpb.DescriptorProto{ Name: proto.String(string(message.Name())), Options: proto.Clone(message.Options()).(*descriptorpb.MessageOptions), } for i, fields := 0, message.Fields(); i < fields.Len(); i++ { p.Field = append(p.Field, ToFieldDescriptorProto(fields.Get(i))) } for i, exts := 0, message.Extensions(); i < exts.Len(); i++ { p.Extension = append(p.Extension, ToFieldDescriptorProto(exts.Get(i))) } for i, messages := 0, message.Messages(); i < messages.Len(); i++ { p.NestedType = append(p.NestedType, ToDescriptorProto(messages.Get(i))) } for i, enums := 0, message.Enums(); i < enums.Len(); i++ { p.EnumType = append(p.EnumType, ToEnumDescriptorProto(enums.Get(i))) } for i, xranges := 0, message.ExtensionRanges(); i < xranges.Len(); i++ { xrange := xranges.Get(i) p.ExtensionRange = append(p.ExtensionRange, &descriptorpb.DescriptorProto_ExtensionRange{ Start: proto.Int32(int32(xrange[0])), End: proto.Int32(int32(xrange[1])), Options: proto.Clone(message.ExtensionRangeOptions(i)).(*descriptorpb.ExtensionRangeOptions), }) } for i, oneofs := 0, message.Oneofs(); i < oneofs.Len(); i++ { p.OneofDecl = append(p.OneofDecl, ToOneofDescriptorProto(oneofs.Get(i))) } for i, ranges := 0, message.ReservedRanges(); i < ranges.Len(); i++ { rrange := ranges.Get(i) p.ReservedRange = append(p.ReservedRange, &descriptorpb.DescriptorProto_ReservedRange{ Start: proto.Int32(int32(rrange[0])), End: proto.Int32(int32(rrange[1])), }) } for i, names := 0, message.ReservedNames(); i < names.Len(); i++ { p.ReservedName = append(p.ReservedName, string(names.Get(i))) } return p } // ToFieldDescriptorProto copies a protoreflect.FieldDescriptor into a // google.protobuf.FieldDescriptorProto message. func ToFieldDescriptorProto(field protoreflect.FieldDescriptor) *descriptorpb.FieldDescriptorProto { p := &descriptorpb.FieldDescriptorProto{ Name: proto.String(string(field.Name())), Number: proto.Int32(int32(field.Number())), Label: descriptorpb.FieldDescriptorProto_Label(field.Cardinality()).Enum(), Options: proto.Clone(field.Options()).(*descriptorpb.FieldOptions), } if field.IsExtension() { p.Extendee = fullNameOf(field.ContainingMessage()) } if field.Kind().IsValid() { p.Type = descriptorpb.FieldDescriptorProto_Type(field.Kind()).Enum() } if field.Enum() != nil { p.TypeName = fullNameOf(field.Enum()) } if field.Message() != nil { p.TypeName = fullNameOf(field.Message()) } if field.HasJSONName() { // A bug in older versions of protoc would always populate the // "json_name" option for extensions when it is meaningless. // When it did so, it would always use the camel-cased field name. if field.IsExtension() { p.JsonName = proto.String(strs.JSONCamelCase(string(field.Name()))) } else { p.JsonName = proto.String(field.JSONName()) } } if field.Syntax() == protoreflect.Proto3 && field.HasOptionalKeyword() { p.Proto3Optional = proto.Bool(true) } if field.HasDefault() { def, err := defval.Marshal(field.Default(), field.DefaultEnumValue(), field.Kind(), defval.Descriptor) if err != nil && field.DefaultEnumValue() != nil { def = string(field.DefaultEnumValue().Name()) // occurs for unresolved enum values } else if err != nil { panic(fmt.Sprintf("%v: %v", field.FullName(), err)) } p.DefaultValue = proto.String(def) } if oneof := field.ContainingOneof(); oneof != nil { p.OneofIndex = proto.Int32(int32(oneof.Index())) } return p } // ToOneofDescriptorProto copies a protoreflect.OneofDescriptor into a // google.protobuf.OneofDescriptorProto message. func ToOneofDescriptorProto(oneof protoreflect.OneofDescriptor) *descriptorpb.OneofDescriptorProto { return &descriptorpb.OneofDescriptorProto{ Name: proto.String(string(oneof.Name())), Options: proto.Clone(oneof.Options()).(*descriptorpb.OneofOptions), } } // ToEnumDescriptorProto copies a protoreflect.EnumDescriptor into a // google.protobuf.EnumDescriptorProto message. func ToEnumDescriptorProto(enum protoreflect.EnumDescriptor) *descriptorpb.EnumDescriptorProto { p := &descriptorpb.EnumDescriptorProto{ Name: proto.String(string(enum.Name())), Options: proto.Clone(enum.Options()).(*descriptorpb.EnumOptions), } for i, values := 0, enum.Values(); i < values.Len(); i++ { p.Value = append(p.Value, ToEnumValueDescriptorProto(values.Get(i))) } for i, ranges := 0, enum.ReservedRanges(); i < ranges.Len(); i++ { rrange := ranges.Get(i) p.ReservedRange = append(p.ReservedRange, &descriptorpb.EnumDescriptorProto_EnumReservedRange{ Start: proto.Int32(int32(rrange[0])), End: proto.Int32(int32(rrange[1])), }) } for i, names := 0, enum.ReservedNames(); i < names.Len(); i++ { p.ReservedName = append(p.ReservedName, string(names.Get(i))) } return p } // ToEnumValueDescriptorProto copies a protoreflect.EnumValueDescriptor into a // google.protobuf.EnumValueDescriptorProto message. func ToEnumValueDescriptorProto(value protoreflect.EnumValueDescriptor) *descriptorpb.EnumValueDescriptorProto { return &descriptorpb.EnumValueDescriptorProto{ Name: proto.String(string(value.Name())), Number: proto.Int32(int32(value.Number())), Options: proto.Clone(value.Options()).(*descriptorpb.EnumValueOptions), } } // ToServiceDescriptorProto copies a protoreflect.ServiceDescriptor into a // google.protobuf.ServiceDescriptorProto message. func ToServiceDescriptorProto(service protoreflect.ServiceDescriptor) *descriptorpb.ServiceDescriptorProto { p := &descriptorpb.ServiceDescriptorProto{ Name: proto.String(string(service.Name())), Options: proto.Clone(service.Options()).(*descriptorpb.ServiceOptions), } for i, methods := 0, service.Methods(); i < methods.Len(); i++ { p.Method = append(p.Method, ToMethodDescriptorProto(methods.Get(i))) } return p } // ToMethodDescriptorProto copies a protoreflect.MethodDescriptor into a // google.protobuf.MethodDescriptorProto message. func ToMethodDescriptorProto(method protoreflect.MethodDescriptor) *descriptorpb.MethodDescriptorProto { p := &descriptorpb.MethodDescriptorProto{ Name: proto.String(string(method.Name())), InputType: fullNameOf(method.Input()), OutputType: fullNameOf(method.Output()), Options: proto.Clone(method.Options()).(*descriptorpb.MethodOptions), } if method.IsStreamingClient() { p.ClientStreaming = proto.Bool(true) } if method.IsStreamingServer() { p.ServerStreaming = proto.Bool(true) } return p } func fullNameOf(d protoreflect.Descriptor) *string { if d == nil { return nil } if strings.HasPrefix(string(d.FullName()), unknownPrefix) { return proto.String(string(d.FullName()[len(unknownPrefix):])) } return proto.String("." + string(d.FullName())) } golang-google-protobuf-1.27.1/reflect/protopath/000077500000000000000000000000001411250152500216215ustar00rootroot00000000000000golang-google-protobuf-1.27.1/reflect/protopath/path.go000066400000000000000000000071751411250152500231160ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package protopath provides functionality for // representing a sequence of protobuf reflection operations on a message. package protopath import ( "fmt" "google.golang.org/protobuf/internal/msgfmt" "google.golang.org/protobuf/reflect/protoreflect" ) // NOTE: The Path and Values are separate types here since there are use cases // where you would like to "address" some value in a message with just the path // and don't have the value information available. // // This is different from how "github.com/google/go-cmp/cmp".Path operates, // which combines both path and value information together. // Since the cmp package itself is the only one ever constructing a cmp.Path, // it will always have the value available. // Path is a sequence of protobuf reflection steps applied to some root // protobuf message value to arrive at the current value. // The first step must be a Root step. type Path []Step // TODO: Provide a Parse function that parses something similar to or // perhaps identical to the output of Path.String. // Index returns the ith step in the path and supports negative indexing. // A negative index starts counting from the tail of the Path such that -1 // refers to the last step, -2 refers to the second-to-last step, and so on. // It returns a zero Step value if the index is out-of-bounds. func (p Path) Index(i int) Step { if i < 0 { i = len(p) + i } if i < 0 || i >= len(p) { return Step{} } return p[i] } // String returns a structured representation of the path // by concatenating the string representation of every path step. func (p Path) String() string { var b []byte for _, s := range p { b = s.appendString(b) } return string(b) } // Values is a Path paired with a sequence of values at each step. // The lengths of Path and Values must be identical. // The first step must be a Root step and // the first value must be a concrete message value. type Values struct { Path Path Values []protoreflect.Value } // Len reports the length of the path and values. // If the path and values have differing length, it returns the minimum length. func (p Values) Len() int { n := len(p.Path) if n > len(p.Values) { n = len(p.Values) } return n } // Index returns the ith step and value and supports negative indexing. // A negative index starts counting from the tail of the Values such that -1 // refers to the last pair, -2 refers to the second-to-last pair, and so on. func (p Values) Index(i int) (out struct { Step Step Value protoreflect.Value }) { // NOTE: This returns a single struct instead of two return values so that // callers can make use of the the value in an expression: // vs.Index(i).Value.Interface() n := p.Len() if i < 0 { i = n + i } if i < 0 || i >= n { return out } out.Step = p.Path[i] out.Value = p.Values[i] return out } // String returns a humanly readable representation of the path and last value. // Do not depend on the output being stable. // // For example: // (path.to.MyMessage).list_field[5].map_field["hello"] = {hello: "world"} func (p Values) String() string { n := p.Len() if n == 0 { return "" } // Determine the field descriptor associated with the last step. var fd protoreflect.FieldDescriptor last := p.Index(-1) switch last.Step.kind { case FieldAccessStep: fd = last.Step.FieldDescriptor() case MapIndexStep, ListIndexStep: fd = p.Index(-2).Step.FieldDescriptor() } // Format the full path with the last value. return fmt.Sprintf("%v = %v", p.Path[:n], msgfmt.FormatValue(last.Value, fd)) } golang-google-protobuf-1.27.1/reflect/protopath/step.go000066400000000000000000000154601411250152500231310ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protopath import ( "fmt" "strconv" "strings" "google.golang.org/protobuf/internal/encoding/text" "google.golang.org/protobuf/reflect/protoreflect" ) // StepKind identifies the kind of step operation. // Each kind of step corresponds with some protobuf reflection operation. type StepKind int const ( invalidStep StepKind = iota // RootStep identifies a step as the Root step operation. RootStep // FieldAccessStep identifies a step as the FieldAccess step operation. FieldAccessStep // UnknownAccessStep identifies a step as the UnknownAccess step operation. UnknownAccessStep // ListIndexStep identifies a step as the ListIndex step operation. ListIndexStep // MapIndexStep identifies a step as the MapIndex step operation. MapIndexStep // AnyExpandStep identifies a step as the AnyExpand step operation. AnyExpandStep ) func (k StepKind) String() string { switch k { case invalidStep: return "" case RootStep: return "Root" case FieldAccessStep: return "FieldAccess" case UnknownAccessStep: return "UnknownAccess" case ListIndexStep: return "ListIndex" case MapIndexStep: return "MapIndex" case AnyExpandStep: return "AnyExpand" default: return fmt.Sprintf("", k) } } // Step is a union where only one step operation may be specified at a time. // The different kinds of steps are specified by the constants defined for // the StepKind type. type Step struct { kind StepKind desc protoreflect.Descriptor key protoreflect.Value } // Root indicates the root message that a path is relative to. // It should always (and only ever) be the first step in a path. func Root(md protoreflect.MessageDescriptor) Step { if md == nil { panic("nil message descriptor") } return Step{kind: RootStep, desc: md} } // FieldAccess describes access of a field within a message. // Extension field accesses are also represented using a FieldAccess and // must be provided with a protoreflect.FieldDescriptor // // Within the context of Values, // the type of the previous step value is always a message, and // the type of the current step value is determined by the field descriptor. func FieldAccess(fd protoreflect.FieldDescriptor) Step { if fd == nil { panic("nil field descriptor") } else if _, ok := fd.(protoreflect.ExtensionTypeDescriptor); !ok && fd.IsExtension() { panic(fmt.Sprintf("extension field %q must implement protoreflect.ExtensionTypeDescriptor", fd.FullName())) } return Step{kind: FieldAccessStep, desc: fd} } // UnknownAccess describes access to the unknown fields within a message. // // Within the context of Values, // the type of the previous step value is always a message, and // the type of the current step value is always a bytes type. func UnknownAccess() Step { return Step{kind: UnknownAccessStep} } // ListIndex describes index of an element within a list. // // Within the context of Values, // the type of the previous, previous step value is always a message, // the type of the previous step value is always a list, and // the type of the current step value is determined by the field descriptor. func ListIndex(i int) Step { if i < 0 { panic(fmt.Sprintf("invalid list index: %v", i)) } return Step{kind: ListIndexStep, key: protoreflect.ValueOfInt64(int64(i))} } // MapIndex describes index of an entry within a map. // The key type is determined by field descriptor that the map belongs to. // // Within the context of Values, // the type of the previous previous step value is always a message, // the type of the previous step value is always a map, and // the type of the current step value is determined by the field descriptor. func MapIndex(k protoreflect.MapKey) Step { if !k.IsValid() { panic("invalid map index") } return Step{kind: MapIndexStep, key: k.Value()} } // AnyExpand describes expansion of a google.protobuf.Any message into // a structured representation of the underlying message. // // Within the context of Values, // the type of the previous step value is always a google.protobuf.Any message, and // the type of the current step value is always a message. func AnyExpand(md protoreflect.MessageDescriptor) Step { if md == nil { panic("nil message descriptor") } return Step{kind: AnyExpandStep, desc: md} } // MessageDescriptor returns the message descriptor for Root or AnyExpand steps, // otherwise it returns nil. func (s Step) MessageDescriptor() protoreflect.MessageDescriptor { switch s.kind { case RootStep, AnyExpandStep: return s.desc.(protoreflect.MessageDescriptor) default: return nil } } // FieldDescriptor returns the field descriptor for FieldAccess steps, // otherwise it returns nil. func (s Step) FieldDescriptor() protoreflect.FieldDescriptor { switch s.kind { case FieldAccessStep: return s.desc.(protoreflect.FieldDescriptor) default: return nil } } // ListIndex returns the list index for ListIndex steps, // otherwise it returns 0. func (s Step) ListIndex() int { switch s.kind { case ListIndexStep: return int(s.key.Int()) default: return 0 } } // MapIndex returns the map key for MapIndex steps, // otherwise it returns an invalid map key. func (s Step) MapIndex() protoreflect.MapKey { switch s.kind { case MapIndexStep: return s.key.MapKey() default: return protoreflect.MapKey{} } } // Kind reports which kind of step this is. func (s Step) Kind() StepKind { return s.kind } func (s Step) String() string { return string(s.appendString(nil)) } func (s Step) appendString(b []byte) []byte { switch s.kind { case RootStep: b = append(b, '(') b = append(b, s.desc.FullName()...) b = append(b, ')') case FieldAccessStep: b = append(b, '.') if fd := s.desc.(protoreflect.FieldDescriptor); fd.IsExtension() { b = append(b, '(') b = append(b, strings.Trim(fd.TextName(), "[]")...) b = append(b, ')') } else { b = append(b, fd.TextName()...) } case UnknownAccessStep: b = append(b, '.') b = append(b, '?') case ListIndexStep: b = append(b, '[') b = strconv.AppendInt(b, s.key.Int(), 10) b = append(b, ']') case MapIndexStep: b = append(b, '[') switch k := s.key.Interface().(type) { case bool: b = strconv.AppendBool(b, bool(k)) // e.g., "true" or "false" case int32: b = strconv.AppendInt(b, int64(k), 10) // e.g., "-32" case int64: b = strconv.AppendInt(b, int64(k), 10) // e.g., "-64" case uint32: b = strconv.AppendUint(b, uint64(k), 10) // e.g., "32" case uint64: b = strconv.AppendUint(b, uint64(k), 10) // e.g., "64" case string: b = text.AppendString(b, k) // e.g., `"hello, world"` } b = append(b, ']') case AnyExpandStep: b = append(b, '.') b = append(b, '(') b = append(b, s.desc.FullName()...) b = append(b, ')') default: b = append(b, ""...) } return b } golang-google-protobuf-1.27.1/reflect/protorange/000077500000000000000000000000001411250152500217615ustar00rootroot00000000000000golang-google-protobuf-1.27.1/reflect/protorange/example_test.go000066400000000000000000000220571411250152500250100ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protorange_test import ( "fmt" "strings" "time" "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/internal/detrand" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protopath" "google.golang.org/protobuf/reflect/protorange" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/testing/protopack" "google.golang.org/protobuf/types/known/anypb" "google.golang.org/protobuf/types/known/timestamppb" newspb "google.golang.org/protobuf/internal/testprotos/news" ) func init() { detrand.Disable() } func mustMarshal(m proto.Message) []byte { b, err := proto.Marshal(m) if err != nil { panic(err) } return b } // Range through every message and clear the unknown fields. func Example_discardUnknown() { // Populate the article with unknown fields. m := &newspb.Article{} m.ProtoReflect().SetUnknown(protopack.Message{ protopack.Tag{1000, protopack.BytesType}, protopack.String("Hello, world!"), }.Marshal()) fmt.Println("has unknown fields?", len(m.ProtoReflect().GetUnknown()) > 0) // Range through the message and clear all unknown fields. fmt.Println("clear unknown fields") protorange.Range(m.ProtoReflect(), func(proto protopath.Values) error { m, ok := proto.Index(-1).Value.Interface().(protoreflect.Message) if ok && len(m.GetUnknown()) > 0 { m.SetUnknown(nil) } return nil }) fmt.Println("has unknown fields?", len(m.ProtoReflect().GetUnknown()) > 0) // Output: // has unknown fields? true // clear unknown fields // has unknown fields? false } // Print the relative paths as Range iterates through a message // in a depth-first order. func Example_printPaths() { m := &newspb.Article{ Author: "Russ Cox", Date: timestamppb.New(time.Date(2019, time.November, 8, 0, 0, 0, 0, time.UTC)), Title: "Go Turns 10", Content: "Happy birthday, Go! This weekend we celebrate the 10th anniversary of the Go release...", Status: newspb.Article_PUBLISHED, Tags: []string{"community", "birthday"}, Attachments: []*anypb.Any{{ TypeUrl: "google.golang.org.BinaryAttachment", Value: mustMarshal(&newspb.BinaryAttachment{ Name: "gopher-birthday.png", Data: []byte(""), }), }}, } // Traverse over all reachable values and print the path. protorange.Range(m.ProtoReflect(), func(p protopath.Values) error { fmt.Println(p.Path[1:]) return nil }) // Output: // .author // .date // .date.seconds // .title // .content // .status // .tags // .tags[0] // .tags[1] // .attachments // .attachments[0] // .attachments[0].(google.golang.org.BinaryAttachment) // .attachments[0].(google.golang.org.BinaryAttachment).name // .attachments[0].(google.golang.org.BinaryAttachment).data } // Implement a basic text formatter by ranging through all populated values // in a message in depth-first order. func Example_formatText() { m := &newspb.Article{ Author: "Brad Fitzpatrick", Date: timestamppb.New(time.Date(2018, time.February, 16, 0, 0, 0, 0, time.UTC)), Title: "Go 1.10 is released", Content: "Happy Friday, happy weekend! Today the Go team is happy to announce the release of Go 1.10...", Status: newspb.Article_PUBLISHED, Tags: []string{"go1.10", "release"}, Attachments: []*anypb.Any{{ TypeUrl: "google.golang.org.KeyValueAttachment", Value: mustMarshal(&newspb.KeyValueAttachment{ Name: "checksums.txt", Data: map[string]string{ "go1.10.src.tar.gz": "07cbb9d0091b846c6aea40bf5bc0cea7", "go1.10.darwin-amd64.pkg": "cbb38bb6ff6ea86279e01745984445bf", "go1.10.linux-amd64.tar.gz": "6b3d0e4a5c77352cf4275573817f7566", "go1.10.windows-amd64.msi": "57bda02030f58f5d2bf71943e1390123", }, }), }}, } // Print a message in a humanly readable format. var indent []byte protorange.Options{ Stable: true, }.Range(m.ProtoReflect(), func(p protopath.Values) error { // Print the key. var fd protoreflect.FieldDescriptor last := p.Index(-1) beforeLast := p.Index(-2) switch last.Step.Kind() { case protopath.FieldAccessStep: fd = last.Step.FieldDescriptor() fmt.Printf("%s%s: ", indent, fd.Name()) case protopath.ListIndexStep: fd = beforeLast.Step.FieldDescriptor() // lists always appear in the context of a repeated field fmt.Printf("%s%d: ", indent, last.Step.ListIndex()) case protopath.MapIndexStep: fd = beforeLast.Step.FieldDescriptor() // maps always appear in the context of a repeated field fmt.Printf("%s%v: ", indent, last.Step.MapIndex().Interface()) case protopath.AnyExpandStep: fmt.Printf("%s[%v]: ", indent, last.Value.Message().Descriptor().FullName()) case protopath.UnknownAccessStep: fmt.Printf("%s?: ", indent) } // Starting printing the value. switch v := last.Value.Interface().(type) { case protoreflect.Message: fmt.Printf("{\n") indent = append(indent, '\t') case protoreflect.List: fmt.Printf("[\n") indent = append(indent, '\t') case protoreflect.Map: fmt.Printf("{\n") indent = append(indent, '\t') case protoreflect.EnumNumber: var ev protoreflect.EnumValueDescriptor if fd != nil { ev = fd.Enum().Values().ByNumber(v) } if ev != nil { fmt.Printf("%v\n", ev.Name()) } else { fmt.Printf("%v\n", v) } case string, []byte: fmt.Printf("%q\n", v) default: fmt.Printf("%v\n", v) } return nil }, func(p protopath.Values) error { // Finish printing the value. last := p.Index(-1) switch last.Value.Interface().(type) { case protoreflect.Message: indent = indent[:len(indent)-1] fmt.Printf("%s}\n", indent) case protoreflect.List: indent = indent[:len(indent)-1] fmt.Printf("%s]\n", indent) case protoreflect.Map: indent = indent[:len(indent)-1] fmt.Printf("%s}\n", indent) } return nil }, ) // Output: // { // author: "Brad Fitzpatrick" // date: { // seconds: 1518739200 // } // title: "Go 1.10 is released" // content: "Happy Friday, happy weekend! Today the Go team is happy to announce the release of Go 1.10..." // attachments: [ // 0: { // [google.golang.org.KeyValueAttachment]: { // name: "checksums.txt" // data: { // go1.10.darwin-amd64.pkg: "cbb38bb6ff6ea86279e01745984445bf" // go1.10.linux-amd64.tar.gz: "6b3d0e4a5c77352cf4275573817f7566" // go1.10.src.tar.gz: "07cbb9d0091b846c6aea40bf5bc0cea7" // go1.10.windows-amd64.msi: "57bda02030f58f5d2bf71943e1390123" // } // } // } // ] // tags: [ // 0: "go1.10" // 1: "release" // ] // status: PUBLISHED // } } // Scan all protobuf string values for a sensitive word and replace it with // a suitable alternative. func Example_sanitizeStrings() { m := &newspb.Article{ Author: "Hermione Granger", Date: timestamppb.New(time.Date(1998, time.May, 2, 0, 0, 0, 0, time.UTC)), Title: "Harry Potter vanquishes Voldemort once and for all!", Content: "In a final duel between Harry Potter and Lord Voldemort earlier this evening...", Tags: []string{"HarryPotter", "LordVoldemort"}, Attachments: []*anypb.Any{{ TypeUrl: "google.golang.org.KeyValueAttachment", Value: mustMarshal(&newspb.KeyValueAttachment{ Name: "aliases.txt", Data: map[string]string{ "Harry Potter": "The Boy Who Lived", "Tom Riddle": "Lord Voldemort", }, }), }}, } protorange.Range(m.ProtoReflect(), func(p protopath.Values) error { const ( sensitive = "Voldemort" alternative = "[He-Who-Must-Not-Be-Named]" ) // Check if there is a sensitive word to redact. last := p.Index(-1) s, ok := last.Value.Interface().(string) if !ok || !strings.Contains(s, sensitive) { return nil } s = strings.Replace(s, sensitive, alternative, -1) // Store the redacted string back into the message. beforeLast := p.Index(-2) switch last.Step.Kind() { case protopath.FieldAccessStep: m := beforeLast.Value.Message() fd := last.Step.FieldDescriptor() m.Set(fd, protoreflect.ValueOfString(s)) case protopath.ListIndexStep: ls := beforeLast.Value.List() i := last.Step.ListIndex() ls.Set(i, protoreflect.ValueOfString(s)) case protopath.MapIndexStep: ms := beforeLast.Value.Map() k := last.Step.MapIndex() ms.Set(k, protoreflect.ValueOfString(s)) } return nil }) fmt.Println(protojson.Format(m)) // Output: // { // "author": "Hermione Granger", // "date": "1998-05-02T00:00:00Z", // "title": "Harry Potter vanquishes [He-Who-Must-Not-Be-Named] once and for all!", // "content": "In a final duel between Harry Potter and Lord [He-Who-Must-Not-Be-Named] earlier this evening...", // "tags": [ // "HarryPotter", // "Lord[He-Who-Must-Not-Be-Named]" // ], // "attachments": [ // { // "@type": "google.golang.org.KeyValueAttachment", // "name": "aliases.txt", // "data": { // "Harry Potter": "The Boy Who Lived", // "Tom Riddle": "Lord [He-Who-Must-Not-Be-Named]" // } // } // ] // } } golang-google-protobuf-1.27.1/reflect/protorange/range.go000066400000000000000000000231521411250152500234070ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package protorange provides functionality to traverse a message value. package protorange import ( "bytes" "errors" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/internal/order" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protopath" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" ) var ( // Break breaks traversal of children in the current value. // It has no effect when traversing values that are not composite types // (e.g., messages, lists, and maps). Break = errors.New("break traversal of children in current value") // Terminate terminates the entire range operation. // All necessary Pop operations continue to be called. Terminate = errors.New("terminate range operation") ) // Range performs a depth-first traversal over reachable values in a message. // // See Options.Range for details. func Range(m protoreflect.Message, f func(protopath.Values) error) error { return Options{}.Range(m, f, nil) } // Options configures traversal of a message value tree. type Options struct { // Stable specifies whether to visit message fields and map entries // in a stable ordering. If false, then the ordering is undefined and // may be non-deterministic. // // Message fields are visited in ascending order by field number. // Map entries are visited in ascending order, where // boolean keys are ordered such that false sorts before true, // numeric keys are ordered based on the numeric value, and // string keys are lexicographically ordered by Unicode codepoints. Stable bool // Resolver is used for looking up types when expanding google.protobuf.Any // messages. If nil, this defaults to using protoregistry.GlobalTypes. // To prevent expansion of Any messages, pass an empty protoregistry.Types: // // Options{Resolver: (*protoregistry.Types)(nil)} // Resolver interface { protoregistry.ExtensionTypeResolver protoregistry.MessageTypeResolver } } // Range performs a depth-first traversal over reachable values in a message. // The first push and the last pop are to push/pop a protopath.Root step. // If push or pop return any non-nil error (other than Break or Terminate), // it terminates the traversal and is returned by Range. // // The rules for traversing a message is as follows: // // • For messages, iterate over every populated known and extension field. // Each field is preceded by a push of a protopath.FieldAccess step, // followed by recursive application of the rules on the field value, // and succeeded by a pop of that step. // If the message has unknown fields, then push an protopath.UnknownAccess step // followed immediately by pop of that step. // // • As an exception to the above rule, if the current message is a // google.protobuf.Any message, expand the underlying message (if resolvable). // The expanded message is preceded by a push of a protopath.AnyExpand step, // followed by recursive application of the rules on the underlying message, // and succeeded by a pop of that step. Mutations to the expanded message // are written back to the Any message when popping back out. // // • For lists, iterate over every element. Each element is preceded by a push // of a protopath.ListIndex step, followed by recursive application of the rules // on the list element, and succeeded by a pop of that step. // // • For maps, iterate over every entry. Each entry is preceded by a push // of a protopath.MapIndex step, followed by recursive application of the rules // on the map entry value, and succeeded by a pop of that step. // // Mutations should only be made to the last value, otherwise the effects on // traversal will be undefined. If the mutation is made to the last value // during to a push, then the effects of the mutation will affect traversal. // For example, if the last value is currently a message, and the push function // populates a few fields in that message, then the newly modified fields // will be traversed. // // The protopath.Values provided to push functions is only valid until the // corresponding pop call and the values provided to a pop call is only valid // for the duration of the pop call itself. func (o Options) Range(m protoreflect.Message, push, pop func(protopath.Values) error) error { var err error p := new(protopath.Values) if o.Resolver == nil { o.Resolver = protoregistry.GlobalTypes } pushStep(p, protopath.Root(m.Descriptor()), protoreflect.ValueOfMessage(m)) if push != nil { err = amendError(err, push(*p)) } if err == nil { err = o.rangeMessage(p, m, push, pop) } if pop != nil { err = amendError(err, pop(*p)) } popStep(p) if err == Break || err == Terminate { err = nil } return err } func (o Options) rangeMessage(p *protopath.Values, m protoreflect.Message, push, pop func(protopath.Values) error) (err error) { if ok, err := o.rangeAnyMessage(p, m, push, pop); ok { return err } fieldOrder := order.AnyFieldOrder if o.Stable { fieldOrder = order.NumberFieldOrder } order.RangeFields(m, fieldOrder, func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { pushStep(p, protopath.FieldAccess(fd), v) if push != nil { err = amendError(err, push(*p)) } if err == nil { switch { case fd.IsMap(): err = o.rangeMap(p, fd, v.Map(), push, pop) case fd.IsList(): err = o.rangeList(p, fd, v.List(), push, pop) case fd.Message() != nil: err = o.rangeMessage(p, v.Message(), push, pop) } } if pop != nil { err = amendError(err, pop(*p)) } popStep(p) return err == nil }) if b := m.GetUnknown(); len(b) > 0 && err == nil { pushStep(p, protopath.UnknownAccess(), protoreflect.ValueOfBytes(b)) if push != nil { err = amendError(err, push(*p)) } if pop != nil { err = amendError(err, pop(*p)) } popStep(p) } if err == Break { err = nil } return err } func (o Options) rangeAnyMessage(p *protopath.Values, m protoreflect.Message, push, pop func(protopath.Values) error) (ok bool, err error) { md := m.Descriptor() if md.FullName() != "google.protobuf.Any" { return false, nil } fds := md.Fields() url := m.Get(fds.ByNumber(genid.Any_TypeUrl_field_number)).String() val := m.Get(fds.ByNumber(genid.Any_Value_field_number)).Bytes() mt, errFind := o.Resolver.FindMessageByURL(url) if errFind != nil { return false, nil } // Unmarshal the raw encoded message value into a structured message value. m2 := mt.New() errUnmarshal := proto.UnmarshalOptions{ Merge: true, AllowPartial: true, Resolver: o.Resolver, }.Unmarshal(val, m2.Interface()) if errUnmarshal != nil { // If the the underlying message cannot be unmarshaled, // then just treat this as an normal message type. return false, nil } // Marshal Any before ranging to detect possible mutations. b1, errMarshal := proto.MarshalOptions{ AllowPartial: true, Deterministic: true, }.Marshal(m2.Interface()) if errMarshal != nil { return true, errMarshal } pushStep(p, protopath.AnyExpand(m2.Descriptor()), protoreflect.ValueOfMessage(m2)) if push != nil { err = amendError(err, push(*p)) } if err == nil { err = o.rangeMessage(p, m2, push, pop) } if pop != nil { err = amendError(err, pop(*p)) } popStep(p) // Marshal Any after ranging to detect possible mutations. b2, errMarshal := proto.MarshalOptions{ AllowPartial: true, Deterministic: true, }.Marshal(m2.Interface()) if errMarshal != nil { return true, errMarshal } // Mutations detected, write the new sequence of bytes to the Any message. if !bytes.Equal(b1, b2) { m.Set(fds.ByNumber(genid.Any_Value_field_number), protoreflect.ValueOfBytes(b2)) } if err == Break { err = nil } return true, err } func (o Options) rangeList(p *protopath.Values, fd protoreflect.FieldDescriptor, ls protoreflect.List, push, pop func(protopath.Values) error) (err error) { for i := 0; i < ls.Len() && err == nil; i++ { v := ls.Get(i) pushStep(p, protopath.ListIndex(i), v) if push != nil { err = amendError(err, push(*p)) } if err == nil && fd.Message() != nil { err = o.rangeMessage(p, v.Message(), push, pop) } if pop != nil { err = amendError(err, pop(*p)) } popStep(p) } if err == Break { err = nil } return err } func (o Options) rangeMap(p *protopath.Values, fd protoreflect.FieldDescriptor, ms protoreflect.Map, push, pop func(protopath.Values) error) (err error) { keyOrder := order.AnyKeyOrder if o.Stable { keyOrder = order.GenericKeyOrder } order.RangeEntries(ms, keyOrder, func(k protoreflect.MapKey, v protoreflect.Value) bool { pushStep(p, protopath.MapIndex(k), v) if push != nil { err = amendError(err, push(*p)) } if err == nil && fd.MapValue().Message() != nil { err = o.rangeMessage(p, v.Message(), push, pop) } if pop != nil { err = amendError(err, pop(*p)) } popStep(p) return err == nil }) if err == Break { err = nil } return err } func pushStep(p *protopath.Values, s protopath.Step, v protoreflect.Value) { p.Path = append(p.Path, s) p.Values = append(p.Values, v) } func popStep(p *protopath.Values) { p.Path = p.Path[:len(p.Path)-1] p.Values = p.Values[:len(p.Values)-1] } // amendError amends the previous error with the current error if it is // considered more serious. The precedence order for errors is: // nil < Break < Terminate < previous non-nil < current non-nil func amendError(prev, curr error) error { switch { case curr == nil: return prev case curr == Break && prev != nil: return prev case curr == Terminate && prev != nil && prev != Break: return prev default: return curr } } golang-google-protobuf-1.27.1/reflect/protorange/range_test.go000066400000000000000000000205111411250152500244420ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protorange import ( "testing" "time" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protopath" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/testing/protocmp" newspb "google.golang.org/protobuf/internal/testprotos/news" anypb "google.golang.org/protobuf/types/known/anypb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" ) func mustMarshal(m proto.Message) []byte { b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { panic(err) } return b } var transformReflectValue = cmp.Transformer("", func(v protoreflect.Value) interface{} { switch v := v.Interface().(type) { case protoreflect.Message: return v.Interface() case protoreflect.Map: ms := map[interface{}]protoreflect.Value{} v.Range(func(k protoreflect.MapKey, v protoreflect.Value) bool { ms[k.Interface()] = v return true }) return ms case protoreflect.List: ls := []protoreflect.Value{} for i := 0; i < v.Len(); i++ { ls = append(ls, v.Get(i)) } return ls default: return v } }) func TestRange(t *testing.T) { m2 := (&newspb.KeyValueAttachment{ Name: "checksums.txt", Data: map[string]string{ "go1.10.src.tar.gz": "07cbb9d0091b846c6aea40bf5bc0cea7", "go1.10.darwin-amd64.pkg": "cbb38bb6ff6ea86279e01745984445bf", "go1.10.linux-amd64.tar.gz": "6b3d0e4a5c77352cf4275573817f7566", "go1.10.windows-amd64.msi": "57bda02030f58f5d2bf71943e1390123", }, }).ProtoReflect() m := (&newspb.Article{ Author: "Brad Fitzpatrick", Date: timestamppb.New(time.Date(2018, time.February, 16, 0, 0, 0, 0, time.UTC)), Title: "Go 1.10 is released", Content: "Happy Friday, happy weekend! Today the Go team is happy to announce the release of Go 1.10...", Status: newspb.Article_PUBLISHED, Tags: []string{"go1.10", "release"}, Attachments: []*anypb.Any{{ TypeUrl: "google.golang.org.KeyValueAttachment", Value: mustMarshal(m2.Interface()), }}, }).ProtoReflect() // Nil push and pop functions should not panic. noop := func(protopath.Values) error { return nil } Options{}.Range(m, nil, nil) Options{}.Range(m, noop, nil) Options{}.Range(m, nil, noop) getByName := func(m protoreflect.Message, s protoreflect.Name) protoreflect.Value { fds := m.Descriptor().Fields() return m.Get(fds.ByName(s)) } wantPaths := []string{ ``, `.author`, `.date`, `.date.seconds`, `.title`, `.content`, `.attachments`, `.attachments[0]`, `.attachments[0].(google.golang.org.KeyValueAttachment)`, `.attachments[0].(google.golang.org.KeyValueAttachment).name`, `.attachments[0].(google.golang.org.KeyValueAttachment).data`, `.attachments[0].(google.golang.org.KeyValueAttachment).data["go1.10.darwin-amd64.pkg"]`, `.attachments[0].(google.golang.org.KeyValueAttachment).data["go1.10.linux-amd64.tar.gz"]`, `.attachments[0].(google.golang.org.KeyValueAttachment).data["go1.10.src.tar.gz"]`, `.attachments[0].(google.golang.org.KeyValueAttachment).data["go1.10.windows-amd64.msi"]`, `.tags`, `.tags[0]`, `.tags[1]`, `.status`, } wantValues := []protoreflect.Value{ protoreflect.ValueOfMessage(m), getByName(m, "author"), getByName(m, "date"), getByName(getByName(m, "date").Message(), "seconds"), getByName(m, `title`), getByName(m, `content`), getByName(m, `attachments`), getByName(m, `attachments`).List().Get(0), protoreflect.ValueOfMessage(m2), getByName(m2, `name`), getByName(m2, `data`), getByName(m2, `data`).Map().Get(protoreflect.ValueOfString("go1.10.darwin-amd64.pkg").MapKey()), getByName(m2, `data`).Map().Get(protoreflect.ValueOfString("go1.10.linux-amd64.tar.gz").MapKey()), getByName(m2, `data`).Map().Get(protoreflect.ValueOfString("go1.10.src.tar.gz").MapKey()), getByName(m2, `data`).Map().Get(protoreflect.ValueOfString("go1.10.windows-amd64.msi").MapKey()), getByName(m, `tags`), getByName(m, `tags`).List().Get(0), getByName(m, `tags`).List().Get(1), getByName(m, `status`), } tests := []struct { resolver interface { protoregistry.ExtensionTypeResolver protoregistry.MessageTypeResolver } errorAt int breakAt int terminateAt int wantPaths []string wantValues []protoreflect.Value wantError error }{{ wantPaths: wantPaths, wantValues: wantValues, }, { resolver: (*protoregistry.Types)(nil), wantPaths: append(append(wantPaths[:8:8], `.attachments[0].type_url`, `.attachments[0].value`, ), wantPaths[15:]...), wantValues: append(append(wantValues[:8:8], protoreflect.ValueOfString("google.golang.org.KeyValueAttachment"), protoreflect.ValueOfBytes(mustMarshal(m2.Interface())), ), wantValues[15:]...), }, { errorAt: 5, // return error within newspb.Article wantPaths: wantPaths[:5], wantValues: wantValues[:5], wantError: cmpopts.AnyError, }, { terminateAt: 11, // terminate within newspb.KeyValueAttachment wantPaths: wantPaths[:11], wantValues: wantValues[:11], }, { breakAt: 11, // break within newspb.KeyValueAttachment wantPaths: append(wantPaths[:11:11], wantPaths[15:]...), wantValues: append(wantValues[:11:11], wantValues[15:]...), }, { errorAt: 17, // return error within newspb.Article.Tags wantPaths: wantPaths[:17], wantValues: wantValues[:17], wantError: cmpopts.AnyError, }, { breakAt: 17, // break within newspb.Article.Tags wantPaths: append(wantPaths[:17:17], wantPaths[18:]...), wantValues: append(wantValues[:17:17], wantValues[18:]...), }, { terminateAt: 17, // terminate within newspb.Article.Tags wantPaths: wantPaths[:17], wantValues: wantValues[:17], }, { errorAt: 13, // return error within newspb.KeyValueAttachment.Data wantPaths: wantPaths[:13], wantValues: wantValues[:13], wantError: cmpopts.AnyError, }, { breakAt: 13, // break within newspb.KeyValueAttachment.Data wantPaths: append(wantPaths[:13:13], wantPaths[15:]...), wantValues: append(wantValues[:13:13], wantValues[15:]...), }, { terminateAt: 13, // terminate within newspb.KeyValueAttachment.Data wantPaths: wantPaths[:13], wantValues: wantValues[:13], }} for _, tt := range tests { t.Run("", func(t *testing.T) { var gotPaths []string var gotValues []protoreflect.Value var stackPaths []string var stackValues []protoreflect.Value gotError := Options{ Stable: true, Resolver: tt.resolver, }.Range(m, func(p protopath.Values) error { gotPaths = append(gotPaths, p.Path[1:].String()) stackPaths = append(stackPaths, p.Path[1:].String()) gotValues = append(gotValues, p.Index(-1).Value) stackValues = append(stackValues, p.Index(-1).Value) switch { case tt.errorAt > 0 && tt.errorAt == len(gotPaths): return cmpopts.AnyError case tt.breakAt > 0 && tt.breakAt == len(gotPaths): return Break case tt.terminateAt > 0 && tt.terminateAt == len(gotPaths): return Terminate default: return nil } }, func(p protopath.Values) error { gotPath := p.Path[1:].String() wantPath := stackPaths[len(stackPaths)-1] if wantPath != gotPath { t.Errorf("%d: pop path mismatch: got %v, want %v", len(gotPaths), gotPath, wantPath) } gotValue := p.Index(-1).Value wantValue := stackValues[len(stackValues)-1] if diff := cmp.Diff(wantValue, gotValue, transformReflectValue, protocmp.Transform()); diff != "" { t.Errorf("%d: pop value mismatch (-want +got):\n%v", len(gotValues), diff) } stackPaths = stackPaths[:len(stackPaths)-1] stackValues = stackValues[:len(stackValues)-1] return nil }, ) if n := len(stackPaths) + len(stackValues); n > 0 { t.Errorf("stack mismatch: got %d unpopped items", n) } if diff := cmp.Diff(tt.wantPaths, gotPaths); diff != "" { t.Errorf("paths mismatch (-want +got):\n%s", diff) } if diff := cmp.Diff(tt.wantValues, gotValues, transformReflectValue, protocmp.Transform()); diff != "" { t.Errorf("values mismatch (-want +got):\n%s", diff) } if !cmp.Equal(gotError, tt.wantError, cmpopts.EquateErrors()) { t.Errorf("error mismatch: got %v, want %v", gotError, tt.wantError) } }) } } golang-google-protobuf-1.27.1/reflect/protoreflect/000077500000000000000000000000001411250152500223115ustar00rootroot00000000000000golang-google-protobuf-1.27.1/reflect/protoreflect/methods.go000066400000000000000000000036761411250152500243170ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protoreflect import ( "google.golang.org/protobuf/internal/pragma" ) // The following types are used by the fast-path Message.ProtoMethods method. // // To avoid polluting the public protoreflect API with types used only by // low-level implementations, the canonical definitions of these types are // in the runtime/protoiface package. The definitions here and in protoiface // must be kept in sync. type ( methods = struct { pragma.NoUnkeyedLiterals Flags supportFlags Size func(sizeInput) sizeOutput Marshal func(marshalInput) (marshalOutput, error) Unmarshal func(unmarshalInput) (unmarshalOutput, error) Merge func(mergeInput) mergeOutput CheckInitialized func(checkInitializedInput) (checkInitializedOutput, error) } supportFlags = uint64 sizeInput = struct { pragma.NoUnkeyedLiterals Message Message Flags uint8 } sizeOutput = struct { pragma.NoUnkeyedLiterals Size int } marshalInput = struct { pragma.NoUnkeyedLiterals Message Message Buf []byte Flags uint8 } marshalOutput = struct { pragma.NoUnkeyedLiterals Buf []byte } unmarshalInput = struct { pragma.NoUnkeyedLiterals Message Message Buf []byte Flags uint8 Resolver interface { FindExtensionByName(field FullName) (ExtensionType, error) FindExtensionByNumber(message FullName, field FieldNumber) (ExtensionType, error) } } unmarshalOutput = struct { pragma.NoUnkeyedLiterals Flags uint8 } mergeInput = struct { pragma.NoUnkeyedLiterals Source Message Destination Message } mergeOutput = struct { pragma.NoUnkeyedLiterals Flags uint8 } checkInitializedInput = struct { pragma.NoUnkeyedLiterals Message Message } checkInitializedOutput = struct { pragma.NoUnkeyedLiterals } ) golang-google-protobuf-1.27.1/reflect/protoreflect/proto.go000066400000000000000000000375261411250152500240200ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package protoreflect provides interfaces to dynamically manipulate messages. // // This package includes type descriptors which describe the structure of types // defined in proto source files and value interfaces which provide the // ability to examine and manipulate the contents of messages. // // // Protocol Buffer Descriptors // // Protobuf descriptors (e.g., EnumDescriptor or MessageDescriptor) // are immutable objects that represent protobuf type information. // They are wrappers around the messages declared in descriptor.proto. // Protobuf descriptors alone lack any information regarding Go types. // // Enums and messages generated by this module implement Enum and ProtoMessage, // where the Descriptor and ProtoReflect.Descriptor accessors respectively // return the protobuf descriptor for the values. // // The protobuf descriptor interfaces are not meant to be implemented by // user code since they might need to be extended in the future to support // additions to the protobuf language. // The "google.golang.org/protobuf/reflect/protodesc" package converts between // google.protobuf.DescriptorProto messages and protobuf descriptors. // // // Go Type Descriptors // // A type descriptor (e.g., EnumType or MessageType) is a constructor for // a concrete Go type that represents the associated protobuf descriptor. // There is commonly a one-to-one relationship between protobuf descriptors and // Go type descriptors, but it can potentially be a one-to-many relationship. // // Enums and messages generated by this module implement Enum and ProtoMessage, // where the Type and ProtoReflect.Type accessors respectively // return the protobuf descriptor for the values. // // The "google.golang.org/protobuf/types/dynamicpb" package can be used to // create Go type descriptors from protobuf descriptors. // // // Value Interfaces // // The Enum and Message interfaces provide a reflective view over an // enum or message instance. For enums, it provides the ability to retrieve // the enum value number for any concrete enum type. For messages, it provides // the ability to access or manipulate fields of the message. // // To convert a proto.Message to a protoreflect.Message, use the // former's ProtoReflect method. Since the ProtoReflect method is new to the // v2 message interface, it may not be present on older message implementations. // The "github.com/golang/protobuf/proto".MessageReflect function can be used // to obtain a reflective view on older messages. // // // Relationships // // The following diagrams demonstrate the relationships between // various types declared in this package. // // // ┌───────────────────────────────────┐ // V │ // ┌────────────── New(n) ─────────────┐ │ // │ │ │ // │ ┌──── Descriptor() ──┐ │ ┌── Number() ──┐ │ // │ │ V V │ V │ // ╔════════════╗ ╔════════════════╗ ╔════════╗ ╔════════════╗ // ║ EnumType ║ ║ EnumDescriptor ║ ║ Enum ║ ║ EnumNumber ║ // ╚════════════╝ ╚════════════════╝ ╚════════╝ ╚════════════╝ // Λ Λ │ │ // │ └─── Descriptor() ──┘ │ // │ │ // └────────────────── Type() ───────┘ // // • An EnumType describes a concrete Go enum type. // It has an EnumDescriptor and can construct an Enum instance. // // • An EnumDescriptor describes an abstract protobuf enum type. // // • An Enum is a concrete enum instance. Generated enums implement Enum. // // // ┌──────────────── New() ─────────────────┐ // │ │ // │ ┌─── Descriptor() ─────┐ │ ┌── Interface() ───┐ // │ │ V V │ V // ╔═════════════╗ ╔═══════════════════╗ ╔═════════╗ ╔══════════════╗ // ║ MessageType ║ ║ MessageDescriptor ║ ║ Message ║ ║ ProtoMessage ║ // ╚═════════════╝ ╚═══════════════════╝ ╚═════════╝ ╚══════════════╝ // Λ Λ │ │ Λ │ // │ └──── Descriptor() ────┘ │ └─ ProtoReflect() ─┘ // │ │ // └─────────────────── Type() ─────────┘ // // • A MessageType describes a concrete Go message type. // It has a MessageDescriptor and can construct a Message instance. // // • A MessageDescriptor describes an abstract protobuf message type. // // • A Message is a concrete message instance. Generated messages implement // ProtoMessage, which can convert to/from a Message. // // // ┌── TypeDescriptor() ──┐ ┌───── Descriptor() ─────┐ // │ V │ V // ╔═══════════════╗ ╔═════════════════════════╗ ╔═════════════════════╗ // ║ ExtensionType ║ ║ ExtensionTypeDescriptor ║ ║ ExtensionDescriptor ║ // ╚═══════════════╝ ╚═════════════════════════╝ ╚═════════════════════╝ // Λ │ │ Λ │ Λ // └─────── Type() ───────┘ │ └─── may implement ────┘ │ // │ │ // └────── implements ────────┘ // // • An ExtensionType describes a concrete Go implementation of an extension. // It has an ExtensionTypeDescriptor and can convert to/from // abstract Values and Go values. // // • An ExtensionTypeDescriptor is an ExtensionDescriptor // which also has an ExtensionType. // // • An ExtensionDescriptor describes an abstract protobuf extension field and // may not always be an ExtensionTypeDescriptor. package protoreflect import ( "fmt" "strings" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/pragma" ) type doNotImplement pragma.DoNotImplement // ProtoMessage is the top-level interface that all proto messages implement. // This is declared in the protoreflect package to avoid a cyclic dependency; // use the proto.Message type instead, which aliases this type. type ProtoMessage interface{ ProtoReflect() Message } // Syntax is the language version of the proto file. type Syntax syntax type syntax int8 // keep exact type opaque as the int type may change const ( Proto2 Syntax = 2 Proto3 Syntax = 3 ) // IsValid reports whether the syntax is valid. func (s Syntax) IsValid() bool { switch s { case Proto2, Proto3: return true default: return false } } // String returns s as a proto source identifier (e.g., "proto2"). func (s Syntax) String() string { switch s { case Proto2: return "proto2" case Proto3: return "proto3" default: return fmt.Sprintf("", s) } } // GoString returns s as a Go source identifier (e.g., "Proto2"). func (s Syntax) GoString() string { switch s { case Proto2: return "Proto2" case Proto3: return "Proto3" default: return fmt.Sprintf("Syntax(%d)", s) } } // Cardinality determines whether a field is optional, required, or repeated. type Cardinality cardinality type cardinality int8 // keep exact type opaque as the int type may change // Constants as defined by the google.protobuf.Cardinality enumeration. const ( Optional Cardinality = 1 // appears zero or one times Required Cardinality = 2 // appears exactly one time; invalid with Proto3 Repeated Cardinality = 3 // appears zero or more times ) // IsValid reports whether the cardinality is valid. func (c Cardinality) IsValid() bool { switch c { case Optional, Required, Repeated: return true default: return false } } // String returns c as a proto source identifier (e.g., "optional"). func (c Cardinality) String() string { switch c { case Optional: return "optional" case Required: return "required" case Repeated: return "repeated" default: return fmt.Sprintf("", c) } } // GoString returns c as a Go source identifier (e.g., "Optional"). func (c Cardinality) GoString() string { switch c { case Optional: return "Optional" case Required: return "Required" case Repeated: return "Repeated" default: return fmt.Sprintf("Cardinality(%d)", c) } } // Kind indicates the basic proto kind of a field. type Kind kind type kind int8 // keep exact type opaque as the int type may change // Constants as defined by the google.protobuf.Field.Kind enumeration. const ( BoolKind Kind = 8 EnumKind Kind = 14 Int32Kind Kind = 5 Sint32Kind Kind = 17 Uint32Kind Kind = 13 Int64Kind Kind = 3 Sint64Kind Kind = 18 Uint64Kind Kind = 4 Sfixed32Kind Kind = 15 Fixed32Kind Kind = 7 FloatKind Kind = 2 Sfixed64Kind Kind = 16 Fixed64Kind Kind = 6 DoubleKind Kind = 1 StringKind Kind = 9 BytesKind Kind = 12 MessageKind Kind = 11 GroupKind Kind = 10 ) // IsValid reports whether the kind is valid. func (k Kind) IsValid() bool { switch k { case BoolKind, EnumKind, Int32Kind, Sint32Kind, Uint32Kind, Int64Kind, Sint64Kind, Uint64Kind, Sfixed32Kind, Fixed32Kind, FloatKind, Sfixed64Kind, Fixed64Kind, DoubleKind, StringKind, BytesKind, MessageKind, GroupKind: return true default: return false } } // String returns k as a proto source identifier (e.g., "bool"). func (k Kind) String() string { switch k { case BoolKind: return "bool" case EnumKind: return "enum" case Int32Kind: return "int32" case Sint32Kind: return "sint32" case Uint32Kind: return "uint32" case Int64Kind: return "int64" case Sint64Kind: return "sint64" case Uint64Kind: return "uint64" case Sfixed32Kind: return "sfixed32" case Fixed32Kind: return "fixed32" case FloatKind: return "float" case Sfixed64Kind: return "sfixed64" case Fixed64Kind: return "fixed64" case DoubleKind: return "double" case StringKind: return "string" case BytesKind: return "bytes" case MessageKind: return "message" case GroupKind: return "group" default: return fmt.Sprintf("", k) } } // GoString returns k as a Go source identifier (e.g., "BoolKind"). func (k Kind) GoString() string { switch k { case BoolKind: return "BoolKind" case EnumKind: return "EnumKind" case Int32Kind: return "Int32Kind" case Sint32Kind: return "Sint32Kind" case Uint32Kind: return "Uint32Kind" case Int64Kind: return "Int64Kind" case Sint64Kind: return "Sint64Kind" case Uint64Kind: return "Uint64Kind" case Sfixed32Kind: return "Sfixed32Kind" case Fixed32Kind: return "Fixed32Kind" case FloatKind: return "FloatKind" case Sfixed64Kind: return "Sfixed64Kind" case Fixed64Kind: return "Fixed64Kind" case DoubleKind: return "DoubleKind" case StringKind: return "StringKind" case BytesKind: return "BytesKind" case MessageKind: return "MessageKind" case GroupKind: return "GroupKind" default: return fmt.Sprintf("Kind(%d)", k) } } // FieldNumber is the field number in a message. type FieldNumber = protowire.Number // FieldNumbers represent a list of field numbers. type FieldNumbers interface { // Len reports the number of fields in the list. Len() int // Get returns the ith field number. It panics if out of bounds. Get(i int) FieldNumber // Has reports whether n is within the list of fields. Has(n FieldNumber) bool doNotImplement } // FieldRanges represent a list of field number ranges. type FieldRanges interface { // Len reports the number of ranges in the list. Len() int // Get returns the ith range. It panics if out of bounds. Get(i int) [2]FieldNumber // start inclusive; end exclusive // Has reports whether n is within any of the ranges. Has(n FieldNumber) bool doNotImplement } // EnumNumber is the numeric value for an enum. type EnumNumber int32 // EnumRanges represent a list of enum number ranges. type EnumRanges interface { // Len reports the number of ranges in the list. Len() int // Get returns the ith range. It panics if out of bounds. Get(i int) [2]EnumNumber // start inclusive; end inclusive // Has reports whether n is within any of the ranges. Has(n EnumNumber) bool doNotImplement } // Name is the short name for a proto declaration. This is not the name // as used in Go source code, which might not be identical to the proto name. type Name string // e.g., "Kind" // IsValid reports whether s is a syntactically valid name. // An empty name is invalid. func (s Name) IsValid() bool { return consumeIdent(string(s)) == len(s) } // Names represent a list of names. type Names interface { // Len reports the number of names in the list. Len() int // Get returns the ith name. It panics if out of bounds. Get(i int) Name // Has reports whether s matches any names in the list. Has(s Name) bool doNotImplement } // FullName is a qualified name that uniquely identifies a proto declaration. // A qualified name is the concatenation of the proto package along with the // fully-declared name (i.e., name of parent preceding the name of the child), // with a '.' delimiter placed between each Name. // // This should not have any leading or trailing dots. type FullName string // e.g., "google.protobuf.Field.Kind" // IsValid reports whether s is a syntactically valid full name. // An empty full name is invalid. func (s FullName) IsValid() bool { i := consumeIdent(string(s)) if i < 0 { return false } for len(s) > i { if s[i] != '.' { return false } i++ n := consumeIdent(string(s[i:])) if n < 0 { return false } i += n } return true } func consumeIdent(s string) (i int) { if len(s) == 0 || !isLetter(s[i]) { return -1 } i++ for len(s) > i && isLetterDigit(s[i]) { i++ } return i } func isLetter(c byte) bool { return c == '_' || ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') } func isLetterDigit(c byte) bool { return isLetter(c) || ('0' <= c && c <= '9') } // Name returns the short name, which is the last identifier segment. // A single segment FullName is the Name itself. func (n FullName) Name() Name { if i := strings.LastIndexByte(string(n), '.'); i >= 0 { return Name(n[i+1:]) } return Name(n) } // Parent returns the full name with the trailing identifier removed. // A single segment FullName has no parent. func (n FullName) Parent() FullName { if i := strings.LastIndexByte(string(n), '.'); i >= 0 { return n[:i] } return "" } // Append returns the qualified name appended with the provided short name. // // Invariant: n == n.Parent().Append(n.Name()) // assuming n is valid func (n FullName) Append(s Name) FullName { if n == "" { return FullName(s) } return n + "." + FullName(s) } golang-google-protobuf-1.27.1/reflect/protoreflect/proto_test.go000066400000000000000000000031751411250152500250500ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protoreflect import "testing" func TestNameIsValid(t *testing.T) { tests := []struct { in Name want bool }{ {"", false}, {"a", true}, {".", false}, {"_", true}, // odd, but permitted by protoc {".foo", false}, {"foo.", false}, {"foo", true}, {"one1_two2_three3", true}, {"1one", false}, } for _, tt := range tests { if got := tt.in.IsValid(); got != tt.want { t.Errorf("Name(%q).IsValid() = %v, want %v", tt.in, got, tt.want) } } } func TestFullNameIsValid(t *testing.T) { tests := []struct { in FullName want bool }{ {"", false}, {"a", true}, {"a.b", true}, {"a.b.c", true}, {".", false}, {"_._._", true}, // odd, but permitted by protoc {".foo", false}, {"foo.", false}, {"foo", true}, {"one1_two2_three3", true}, {"one1.two2.three3", true}, {".one1.two2.three3", false}, {"one1.two2.three3.", false}, {"foo.1one", false}, } for _, tt := range tests { if got := tt.in.IsValid(); got != tt.want { t.Errorf("Name(%q).IsValid() = %v, want %v", tt.in, got, tt.want) } } } func TestNameAppend(t *testing.T) { tests := []FullName{ "", "a", "a.b", "a.b.c", "one1.two2.three3", } for _, tt := range tests { if got := tt.Parent().Append(tt.Name()); got != tt { t.Errorf("FullName.Parent().Append(FullName.Name()) = %q, want %q", got, tt) } } } var sink bool func BenchmarkFullNameIsValid(b *testing.B) { for i := 0; i < b.N; i++ { sink = FullName("google.protobuf.Any").IsValid() } } golang-google-protobuf-1.27.1/reflect/protoreflect/source.go000066400000000000000000000076131411250152500241470ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protoreflect import ( "strconv" ) // SourceLocations is a list of source locations. type SourceLocations interface { // Len reports the number of source locations in the proto file. Len() int // Get returns the ith SourceLocation. It panics if out of bounds. Get(int) SourceLocation // ByPath returns the SourceLocation for the given path, // returning the first location if multiple exist for the same path. // If multiple locations exist for the same path, // then SourceLocation.Next index can be used to identify the // index of the next SourceLocation. // If no location exists for this path, it returns the zero value. ByPath(path SourcePath) SourceLocation // ByDescriptor returns the SourceLocation for the given descriptor, // returning the first location if multiple exist for the same path. // If no location exists for this descriptor, it returns the zero value. ByDescriptor(desc Descriptor) SourceLocation doNotImplement } // SourceLocation describes a source location and // corresponds with the google.protobuf.SourceCodeInfo.Location message. type SourceLocation struct { // Path is the path to the declaration from the root file descriptor. // The contents of this slice must not be mutated. Path SourcePath // StartLine and StartColumn are the zero-indexed starting location // in the source file for the declaration. StartLine, StartColumn int // EndLine and EndColumn are the zero-indexed ending location // in the source file for the declaration. // In the descriptor.proto, the end line may be omitted if it is identical // to the start line. Here, it is always populated. EndLine, EndColumn int // LeadingDetachedComments are the leading detached comments // for the declaration. The contents of this slice must not be mutated. LeadingDetachedComments []string // LeadingComments is the leading attached comment for the declaration. LeadingComments string // TrailingComments is the trailing attached comment for the declaration. TrailingComments string // Next is an index into SourceLocations for the next source location that // has the same Path. It is zero if there is no next location. Next int } // SourcePath identifies part of a file descriptor for a source location. // The SourcePath is a sequence of either field numbers or indexes into // a repeated field that form a path starting from the root file descriptor. // // See google.protobuf.SourceCodeInfo.Location.path. type SourcePath []int32 // Equal reports whether p1 equals p2. func (p1 SourcePath) Equal(p2 SourcePath) bool { if len(p1) != len(p2) { return false } for i := range p1 { if p1[i] != p2[i] { return false } } return true } // String formats the path in a humanly readable manner. // The output is guaranteed to be deterministic, // making it suitable for use as a key into a Go map. // It is not guaranteed to be stable as the exact output could change // in a future version of this module. // // Example output: // .message_type[6].nested_type[15].field[3] func (p SourcePath) String() string { b := p.appendFileDescriptorProto(nil) for _, i := range p { b = append(b, '.') b = strconv.AppendInt(b, int64(i), 10) } return string(b) } type appendFunc func(*SourcePath, []byte) []byte func (p *SourcePath) appendSingularField(b []byte, name string, f appendFunc) []byte { if len(*p) == 0 { return b } b = append(b, '.') b = append(b, name...) *p = (*p)[1:] if f != nil { b = f(p, b) } return b } func (p *SourcePath) appendRepeatedField(b []byte, name string, f appendFunc) []byte { b = p.appendSingularField(b, name, nil) if len(*p) == 0 || (*p)[0] < 0 { return b } b = append(b, '[') b = strconv.AppendUint(b, uint64((*p)[0]), 10) b = append(b, ']') *p = (*p)[1:] if f != nil { b = f(p, b) } return b } golang-google-protobuf-1.27.1/reflect/protoreflect/source_gen.go000066400000000000000000000272541411250152500250030ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by generate-protos. DO NOT EDIT. package protoreflect func (p *SourcePath) appendFileDescriptorProto(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 1: b = p.appendSingularField(b, "name", nil) case 2: b = p.appendSingularField(b, "package", nil) case 3: b = p.appendRepeatedField(b, "dependency", nil) case 10: b = p.appendRepeatedField(b, "public_dependency", nil) case 11: b = p.appendRepeatedField(b, "weak_dependency", nil) case 4: b = p.appendRepeatedField(b, "message_type", (*SourcePath).appendDescriptorProto) case 5: b = p.appendRepeatedField(b, "enum_type", (*SourcePath).appendEnumDescriptorProto) case 6: b = p.appendRepeatedField(b, "service", (*SourcePath).appendServiceDescriptorProto) case 7: b = p.appendRepeatedField(b, "extension", (*SourcePath).appendFieldDescriptorProto) case 8: b = p.appendSingularField(b, "options", (*SourcePath).appendFileOptions) case 9: b = p.appendSingularField(b, "source_code_info", (*SourcePath).appendSourceCodeInfo) case 12: b = p.appendSingularField(b, "syntax", nil) } return b } func (p *SourcePath) appendDescriptorProto(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 1: b = p.appendSingularField(b, "name", nil) case 2: b = p.appendRepeatedField(b, "field", (*SourcePath).appendFieldDescriptorProto) case 6: b = p.appendRepeatedField(b, "extension", (*SourcePath).appendFieldDescriptorProto) case 3: b = p.appendRepeatedField(b, "nested_type", (*SourcePath).appendDescriptorProto) case 4: b = p.appendRepeatedField(b, "enum_type", (*SourcePath).appendEnumDescriptorProto) case 5: b = p.appendRepeatedField(b, "extension_range", (*SourcePath).appendDescriptorProto_ExtensionRange) case 8: b = p.appendRepeatedField(b, "oneof_decl", (*SourcePath).appendOneofDescriptorProto) case 7: b = p.appendSingularField(b, "options", (*SourcePath).appendMessageOptions) case 9: b = p.appendRepeatedField(b, "reserved_range", (*SourcePath).appendDescriptorProto_ReservedRange) case 10: b = p.appendRepeatedField(b, "reserved_name", nil) } return b } func (p *SourcePath) appendEnumDescriptorProto(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 1: b = p.appendSingularField(b, "name", nil) case 2: b = p.appendRepeatedField(b, "value", (*SourcePath).appendEnumValueDescriptorProto) case 3: b = p.appendSingularField(b, "options", (*SourcePath).appendEnumOptions) case 4: b = p.appendRepeatedField(b, "reserved_range", (*SourcePath).appendEnumDescriptorProto_EnumReservedRange) case 5: b = p.appendRepeatedField(b, "reserved_name", nil) } return b } func (p *SourcePath) appendServiceDescriptorProto(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 1: b = p.appendSingularField(b, "name", nil) case 2: b = p.appendRepeatedField(b, "method", (*SourcePath).appendMethodDescriptorProto) case 3: b = p.appendSingularField(b, "options", (*SourcePath).appendServiceOptions) } return b } func (p *SourcePath) appendFieldDescriptorProto(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 1: b = p.appendSingularField(b, "name", nil) case 3: b = p.appendSingularField(b, "number", nil) case 4: b = p.appendSingularField(b, "label", nil) case 5: b = p.appendSingularField(b, "type", nil) case 6: b = p.appendSingularField(b, "type_name", nil) case 2: b = p.appendSingularField(b, "extendee", nil) case 7: b = p.appendSingularField(b, "default_value", nil) case 9: b = p.appendSingularField(b, "oneof_index", nil) case 10: b = p.appendSingularField(b, "json_name", nil) case 8: b = p.appendSingularField(b, "options", (*SourcePath).appendFieldOptions) case 17: b = p.appendSingularField(b, "proto3_optional", nil) } return b } func (p *SourcePath) appendFileOptions(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 1: b = p.appendSingularField(b, "java_package", nil) case 8: b = p.appendSingularField(b, "java_outer_classname", nil) case 10: b = p.appendSingularField(b, "java_multiple_files", nil) case 20: b = p.appendSingularField(b, "java_generate_equals_and_hash", nil) case 27: b = p.appendSingularField(b, "java_string_check_utf8", nil) case 9: b = p.appendSingularField(b, "optimize_for", nil) case 11: b = p.appendSingularField(b, "go_package", nil) case 16: b = p.appendSingularField(b, "cc_generic_services", nil) case 17: b = p.appendSingularField(b, "java_generic_services", nil) case 18: b = p.appendSingularField(b, "py_generic_services", nil) case 42: b = p.appendSingularField(b, "php_generic_services", nil) case 23: b = p.appendSingularField(b, "deprecated", nil) case 31: b = p.appendSingularField(b, "cc_enable_arenas", nil) case 36: b = p.appendSingularField(b, "objc_class_prefix", nil) case 37: b = p.appendSingularField(b, "csharp_namespace", nil) case 39: b = p.appendSingularField(b, "swift_prefix", nil) case 40: b = p.appendSingularField(b, "php_class_prefix", nil) case 41: b = p.appendSingularField(b, "php_namespace", nil) case 44: b = p.appendSingularField(b, "php_metadata_namespace", nil) case 45: b = p.appendSingularField(b, "ruby_package", nil) case 999: b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) } return b } func (p *SourcePath) appendSourceCodeInfo(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 1: b = p.appendRepeatedField(b, "location", (*SourcePath).appendSourceCodeInfo_Location) } return b } func (p *SourcePath) appendDescriptorProto_ExtensionRange(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 1: b = p.appendSingularField(b, "start", nil) case 2: b = p.appendSingularField(b, "end", nil) case 3: b = p.appendSingularField(b, "options", (*SourcePath).appendExtensionRangeOptions) } return b } func (p *SourcePath) appendOneofDescriptorProto(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 1: b = p.appendSingularField(b, "name", nil) case 2: b = p.appendSingularField(b, "options", (*SourcePath).appendOneofOptions) } return b } func (p *SourcePath) appendMessageOptions(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 1: b = p.appendSingularField(b, "message_set_wire_format", nil) case 2: b = p.appendSingularField(b, "no_standard_descriptor_accessor", nil) case 3: b = p.appendSingularField(b, "deprecated", nil) case 7: b = p.appendSingularField(b, "map_entry", nil) case 999: b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) } return b } func (p *SourcePath) appendDescriptorProto_ReservedRange(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 1: b = p.appendSingularField(b, "start", nil) case 2: b = p.appendSingularField(b, "end", nil) } return b } func (p *SourcePath) appendEnumValueDescriptorProto(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 1: b = p.appendSingularField(b, "name", nil) case 2: b = p.appendSingularField(b, "number", nil) case 3: b = p.appendSingularField(b, "options", (*SourcePath).appendEnumValueOptions) } return b } func (p *SourcePath) appendEnumOptions(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 2: b = p.appendSingularField(b, "allow_alias", nil) case 3: b = p.appendSingularField(b, "deprecated", nil) case 999: b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) } return b } func (p *SourcePath) appendEnumDescriptorProto_EnumReservedRange(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 1: b = p.appendSingularField(b, "start", nil) case 2: b = p.appendSingularField(b, "end", nil) } return b } func (p *SourcePath) appendMethodDescriptorProto(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 1: b = p.appendSingularField(b, "name", nil) case 2: b = p.appendSingularField(b, "input_type", nil) case 3: b = p.appendSingularField(b, "output_type", nil) case 4: b = p.appendSingularField(b, "options", (*SourcePath).appendMethodOptions) case 5: b = p.appendSingularField(b, "client_streaming", nil) case 6: b = p.appendSingularField(b, "server_streaming", nil) } return b } func (p *SourcePath) appendServiceOptions(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 33: b = p.appendSingularField(b, "deprecated", nil) case 999: b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) } return b } func (p *SourcePath) appendFieldOptions(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 1: b = p.appendSingularField(b, "ctype", nil) case 2: b = p.appendSingularField(b, "packed", nil) case 6: b = p.appendSingularField(b, "jstype", nil) case 5: b = p.appendSingularField(b, "lazy", nil) case 3: b = p.appendSingularField(b, "deprecated", nil) case 10: b = p.appendSingularField(b, "weak", nil) case 999: b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) } return b } func (p *SourcePath) appendUninterpretedOption(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 2: b = p.appendRepeatedField(b, "name", (*SourcePath).appendUninterpretedOption_NamePart) case 3: b = p.appendSingularField(b, "identifier_value", nil) case 4: b = p.appendSingularField(b, "positive_int_value", nil) case 5: b = p.appendSingularField(b, "negative_int_value", nil) case 6: b = p.appendSingularField(b, "double_value", nil) case 7: b = p.appendSingularField(b, "string_value", nil) case 8: b = p.appendSingularField(b, "aggregate_value", nil) } return b } func (p *SourcePath) appendSourceCodeInfo_Location(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 1: b = p.appendRepeatedField(b, "path", nil) case 2: b = p.appendRepeatedField(b, "span", nil) case 3: b = p.appendSingularField(b, "leading_comments", nil) case 4: b = p.appendSingularField(b, "trailing_comments", nil) case 6: b = p.appendRepeatedField(b, "leading_detached_comments", nil) } return b } func (p *SourcePath) appendExtensionRangeOptions(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 999: b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) } return b } func (p *SourcePath) appendOneofOptions(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 999: b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) } return b } func (p *SourcePath) appendEnumValueOptions(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 1: b = p.appendSingularField(b, "deprecated", nil) case 999: b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) } return b } func (p *SourcePath) appendMethodOptions(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 33: b = p.appendSingularField(b, "deprecated", nil) case 34: b = p.appendSingularField(b, "idempotency_level", nil) case 999: b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) } return b } func (p *SourcePath) appendUninterpretedOption_NamePart(b []byte) []byte { if len(*p) == 0 { return b } switch (*p)[0] { case 1: b = p.appendSingularField(b, "name_part", nil) case 2: b = p.appendSingularField(b, "is_extension", nil) } return b } golang-google-protobuf-1.27.1/reflect/protoreflect/source_test.go000066400000000000000000000017521411250152500252040ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protoreflect import "testing" func TestSourcePathString(t *testing.T) { tests := []struct { in SourcePath want string }{ {nil, ""}, {SourcePath{}, ""}, {SourcePath{0}, ".0"}, {SourcePath{1}, ".name"}, {SourcePath{1, 1}, ".name.1"}, {SourcePath{1, 1, -2, 3}, ".name.1.-2.3"}, {SourcePath{3}, ".dependency"}, {SourcePath{3, 0}, ".dependency[0]"}, {SourcePath{3, -1}, ".dependency.-1"}, {SourcePath{3, 1, 2}, ".dependency[1].2"}, {SourcePath{4}, ".message_type"}, {SourcePath{4, 0}, ".message_type[0]"}, {SourcePath{4, -1}, ".message_type.-1"}, {SourcePath{4, 1, 0}, ".message_type[1].0"}, {SourcePath{4, 1, 1}, ".message_type[1].name"}, } for _, tt := range tests { if got := tt.in.String(); got != tt.want { t.Errorf("SourcePath(%d).String() = %v, want %v", tt.in, got, tt.want) } } } golang-google-protobuf-1.27.1/reflect/protoreflect/type.go000066400000000000000000000635221411250152500236310ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protoreflect // Descriptor provides a set of accessors that are common to every descriptor. // Each descriptor type wraps the equivalent google.protobuf.XXXDescriptorProto, // but provides efficient lookup and immutability. // // Each descriptor is comparable. Equality implies that the two types are // exactly identical. However, it is possible for the same semantically // identical proto type to be represented by multiple type descriptors. // // For example, suppose we have t1 and t2 which are both MessageDescriptors. // If t1 == t2, then the types are definitely equal and all accessors return // the same information. However, if t1 != t2, then it is still possible that // they still represent the same proto type (e.g., t1.FullName == t2.FullName). // This can occur if a descriptor type is created dynamically, or multiple // versions of the same proto type are accidentally linked into the Go binary. type Descriptor interface { // ParentFile returns the parent file descriptor that this descriptor // is declared within. The parent file for the file descriptor is itself. // // Support for this functionality is optional and may return nil. ParentFile() FileDescriptor // Parent returns the parent containing this descriptor declaration. // The following shows the mapping from child type to possible parent types: // // ╔═════════════════════╤═══════════════════════════════════╗ // ║ Child type │ Possible parent types ║ // ╠═════════════════════╪═══════════════════════════════════╣ // ║ FileDescriptor │ nil ║ // ║ MessageDescriptor │ FileDescriptor, MessageDescriptor ║ // ║ FieldDescriptor │ FileDescriptor, MessageDescriptor ║ // ║ OneofDescriptor │ MessageDescriptor ║ // ║ EnumDescriptor │ FileDescriptor, MessageDescriptor ║ // ║ EnumValueDescriptor │ EnumDescriptor ║ // ║ ServiceDescriptor │ FileDescriptor ║ // ║ MethodDescriptor │ ServiceDescriptor ║ // ╚═════════════════════╧═══════════════════════════════════╝ // // Support for this functionality is optional and may return nil. Parent() Descriptor // Index returns the index of this descriptor within its parent. // It returns 0 if the descriptor does not have a parent or if the parent // is unknown. Index() int // Syntax is the protobuf syntax. Syntax() Syntax // e.g., Proto2 or Proto3 // Name is the short name of the declaration (i.e., FullName.Name). Name() Name // e.g., "Any" // FullName is the fully-qualified name of the declaration. // // The FullName is a concatenation of the full name of the type that this // type is declared within and the declaration name. For example, // field "foo_field" in message "proto.package.MyMessage" is // uniquely identified as "proto.package.MyMessage.foo_field". // Enum values are an exception to the rule (see EnumValueDescriptor). FullName() FullName // e.g., "google.protobuf.Any" // IsPlaceholder reports whether type information is missing since a // dependency is not resolved, in which case only name information is known. // // Placeholder types may only be returned by the following accessors // as a result of unresolved dependencies or weak imports: // // ╔═══════════════════════════════════╤═════════════════════╗ // ║ Accessor │ Descriptor ║ // ╠═══════════════════════════════════╪═════════════════════╣ // ║ FileImports.FileDescriptor │ FileDescriptor ║ // ║ FieldDescriptor.Enum │ EnumDescriptor ║ // ║ FieldDescriptor.Message │ MessageDescriptor ║ // ║ FieldDescriptor.DefaultEnumValue │ EnumValueDescriptor ║ // ║ FieldDescriptor.ContainingMessage │ MessageDescriptor ║ // ║ MethodDescriptor.Input │ MessageDescriptor ║ // ║ MethodDescriptor.Output │ MessageDescriptor ║ // ╚═══════════════════════════════════╧═════════════════════╝ // // If true, only Name and FullName are valid. // For FileDescriptor, the Path is also valid. IsPlaceholder() bool // Options returns the descriptor options. The caller must not modify // the returned value. // // To avoid a dependency cycle, this function returns a proto.Message value. // The proto message type returned for each descriptor type is as follows: // ╔═════════════════════╤══════════════════════════════════════════╗ // ║ Go type │ Protobuf message type ║ // ╠═════════════════════╪══════════════════════════════════════════╣ // ║ FileDescriptor │ google.protobuf.FileOptions ║ // ║ EnumDescriptor │ google.protobuf.EnumOptions ║ // ║ EnumValueDescriptor │ google.protobuf.EnumValueOptions ║ // ║ MessageDescriptor │ google.protobuf.MessageOptions ║ // ║ FieldDescriptor │ google.protobuf.FieldOptions ║ // ║ OneofDescriptor │ google.protobuf.OneofOptions ║ // ║ ServiceDescriptor │ google.protobuf.ServiceOptions ║ // ║ MethodDescriptor │ google.protobuf.MethodOptions ║ // ╚═════════════════════╧══════════════════════════════════════════╝ // // This method returns a typed nil-pointer if no options are present. // The caller must import the descriptorpb package to use this. Options() ProtoMessage doNotImplement } // FileDescriptor describes the types in a complete proto file and // corresponds with the google.protobuf.FileDescriptorProto message. // // Top-level declarations: // EnumDescriptor, MessageDescriptor, FieldDescriptor, and/or ServiceDescriptor. type FileDescriptor interface { Descriptor // Descriptor.FullName is identical to Package // Path returns the file name, relative to the source tree root. Path() string // e.g., "path/to/file.proto" // Package returns the protobuf package namespace. Package() FullName // e.g., "google.protobuf" // Imports is a list of imported proto files. Imports() FileImports // Enums is a list of the top-level enum declarations. Enums() EnumDescriptors // Messages is a list of the top-level message declarations. Messages() MessageDescriptors // Extensions is a list of the top-level extension declarations. Extensions() ExtensionDescriptors // Services is a list of the top-level service declarations. Services() ServiceDescriptors // SourceLocations is a list of source locations. SourceLocations() SourceLocations isFileDescriptor } type isFileDescriptor interface{ ProtoType(FileDescriptor) } // FileImports is a list of file imports. type FileImports interface { // Len reports the number of files imported by this proto file. Len() int // Get returns the ith FileImport. It panics if out of bounds. Get(i int) FileImport doNotImplement } // FileImport is the declaration for a proto file import. type FileImport struct { // FileDescriptor is the file type for the given import. // It is a placeholder descriptor if IsWeak is set or if a dependency has // not been regenerated to implement the new reflection APIs. FileDescriptor // IsPublic reports whether this is a public import, which causes this file // to alias declarations within the imported file. The intended use cases // for this feature is the ability to move proto files without breaking // existing dependencies. // // The current file and the imported file must be within proto package. IsPublic bool // IsWeak reports whether this is a weak import, which does not impose // a direct dependency on the target file. // // Weak imports are a legacy proto1 feature. Equivalent behavior is // achieved using proto2 extension fields or proto3 Any messages. IsWeak bool } // MessageDescriptor describes a message and // corresponds with the google.protobuf.DescriptorProto message. // // Nested declarations: // FieldDescriptor, OneofDescriptor, FieldDescriptor, EnumDescriptor, // and/or MessageDescriptor. type MessageDescriptor interface { Descriptor // IsMapEntry indicates that this is an auto-generated message type to // represent the entry type for a map field. // // Map entry messages have only two fields: // • a "key" field with a field number of 1 // • a "value" field with a field number of 2 // The key and value types are determined by these two fields. // // If IsMapEntry is true, it implies that FieldDescriptor.IsMap is true // for some field with this message type. IsMapEntry() bool // Fields is a list of nested field declarations. Fields() FieldDescriptors // Oneofs is a list of nested oneof declarations. Oneofs() OneofDescriptors // ReservedNames is a list of reserved field names. ReservedNames() Names // ReservedRanges is a list of reserved ranges of field numbers. ReservedRanges() FieldRanges // RequiredNumbers is a list of required field numbers. // In Proto3, it is always an empty list. RequiredNumbers() FieldNumbers // ExtensionRanges is the field ranges used for extension fields. // In Proto3, it is always an empty ranges. ExtensionRanges() FieldRanges // ExtensionRangeOptions returns the ith extension range options. // // To avoid a dependency cycle, this method returns a proto.Message value, // which always contains a google.protobuf.ExtensionRangeOptions message. // This method returns a typed nil-pointer if no options are present. // The caller must import the descriptorpb package to use this. ExtensionRangeOptions(i int) ProtoMessage // Enums is a list of nested enum declarations. Enums() EnumDescriptors // Messages is a list of nested message declarations. Messages() MessageDescriptors // Extensions is a list of nested extension declarations. Extensions() ExtensionDescriptors isMessageDescriptor } type isMessageDescriptor interface{ ProtoType(MessageDescriptor) } // MessageType encapsulates a MessageDescriptor with a concrete Go implementation. // It is recommended that implementations of this interface also implement the // MessageFieldTypes interface. type MessageType interface { // New returns a newly allocated empty message. // It may return nil for synthetic messages representing a map entry. New() Message // Zero returns an empty, read-only message. // It may return nil for synthetic messages representing a map entry. Zero() Message // Descriptor returns the message descriptor. // // Invariant: t.Descriptor() == t.New().Descriptor() Descriptor() MessageDescriptor } // MessageFieldTypes extends a MessageType by providing type information // regarding enums and messages referenced by the message fields. type MessageFieldTypes interface { MessageType // Enum returns the EnumType for the ith field in Descriptor.Fields. // It returns nil if the ith field is not an enum kind. // It panics if out of bounds. // // Invariant: mt.Enum(i).Descriptor() == mt.Descriptor().Fields(i).Enum() Enum(i int) EnumType // Message returns the MessageType for the ith field in Descriptor.Fields. // It returns nil if the ith field is not a message or group kind. // It panics if out of bounds. // // Invariant: mt.Message(i).Descriptor() == mt.Descriptor().Fields(i).Message() Message(i int) MessageType } // MessageDescriptors is a list of message declarations. type MessageDescriptors interface { // Len reports the number of messages. Len() int // Get returns the ith MessageDescriptor. It panics if out of bounds. Get(i int) MessageDescriptor // ByName returns the MessageDescriptor for a message named s. // It returns nil if not found. ByName(s Name) MessageDescriptor doNotImplement } // FieldDescriptor describes a field within a message and // corresponds with the google.protobuf.FieldDescriptorProto message. // // It is used for both normal fields defined within the parent message // (e.g., MessageDescriptor.Fields) and fields that extend some remote message // (e.g., FileDescriptor.Extensions or MessageDescriptor.Extensions). type FieldDescriptor interface { Descriptor // Number reports the unique number for this field. Number() FieldNumber // Cardinality reports the cardinality for this field. Cardinality() Cardinality // Kind reports the basic kind for this field. Kind() Kind // HasJSONName reports whether this field has an explicitly set JSON name. HasJSONName() bool // JSONName reports the name used for JSON serialization. // It is usually the camel-cased form of the field name. // Extension fields are represented by the full name surrounded by brackets. JSONName() string // TextName reports the name used for text serialization. // It is usually the name of the field, except that groups use the name // of the inlined message, and extension fields are represented by the // full name surrounded by brackets. TextName() string // HasPresence reports whether the field distinguishes between unpopulated // and default values. HasPresence() bool // IsExtension reports whether this is an extension field. If false, // then Parent and ContainingMessage refer to the same message. // Otherwise, ContainingMessage and Parent likely differ. IsExtension() bool // HasOptionalKeyword reports whether the "optional" keyword was explicitly // specified in the source .proto file. HasOptionalKeyword() bool // IsWeak reports whether this is a weak field, which does not impose a // direct dependency on the target type. // If true, then Message returns a placeholder type. IsWeak() bool // IsPacked reports whether repeated primitive numeric kinds should be // serialized using a packed encoding. // If true, then it implies Cardinality is Repeated. IsPacked() bool // IsList reports whether this field represents a list, // where the value type for the associated field is a List. // It is equivalent to checking whether Cardinality is Repeated and // that IsMap reports false. IsList() bool // IsMap reports whether this field represents a map, // where the value type for the associated field is a Map. // It is equivalent to checking whether Cardinality is Repeated, // that the Kind is MessageKind, and that Message.IsMapEntry reports true. IsMap() bool // MapKey returns the field descriptor for the key in the map entry. // It returns nil if IsMap reports false. MapKey() FieldDescriptor // MapValue returns the field descriptor for the value in the map entry. // It returns nil if IsMap reports false. MapValue() FieldDescriptor // HasDefault reports whether this field has a default value. HasDefault() bool // Default returns the default value for scalar fields. // For proto2, it is the default value as specified in the proto file, // or the zero value if unspecified. // For proto3, it is always the zero value of the scalar. // The Value type is determined by the Kind. Default() Value // DefaultEnumValue returns the enum value descriptor for the default value // of an enum field, and is nil for any other kind of field. DefaultEnumValue() EnumValueDescriptor // ContainingOneof is the containing oneof that this field belongs to, // and is nil if this field is not part of a oneof. ContainingOneof() OneofDescriptor // ContainingMessage is the containing message that this field belongs to. // For extension fields, this may not necessarily be the parent message // that the field is declared within. ContainingMessage() MessageDescriptor // Enum is the enum descriptor if Kind is EnumKind. // It returns nil for any other Kind. Enum() EnumDescriptor // Message is the message descriptor if Kind is // MessageKind or GroupKind. It returns nil for any other Kind. Message() MessageDescriptor isFieldDescriptor } type isFieldDescriptor interface{ ProtoType(FieldDescriptor) } // FieldDescriptors is a list of field declarations. type FieldDescriptors interface { // Len reports the number of fields. Len() int // Get returns the ith FieldDescriptor. It panics if out of bounds. Get(i int) FieldDescriptor // ByName returns the FieldDescriptor for a field named s. // It returns nil if not found. ByName(s Name) FieldDescriptor // ByJSONName returns the FieldDescriptor for a field with s as the JSON name. // It returns nil if not found. ByJSONName(s string) FieldDescriptor // ByTextName returns the FieldDescriptor for a field with s as the text name. // It returns nil if not found. ByTextName(s string) FieldDescriptor // ByNumber returns the FieldDescriptor for a field numbered n. // It returns nil if not found. ByNumber(n FieldNumber) FieldDescriptor doNotImplement } // OneofDescriptor describes a oneof field set within a given message and // corresponds with the google.protobuf.OneofDescriptorProto message. type OneofDescriptor interface { Descriptor // IsSynthetic reports whether this is a synthetic oneof created to support // proto3 optional semantics. If true, Fields contains exactly one field // with HasOptionalKeyword specified. IsSynthetic() bool // Fields is a list of fields belonging to this oneof. Fields() FieldDescriptors isOneofDescriptor } type isOneofDescriptor interface{ ProtoType(OneofDescriptor) } // OneofDescriptors is a list of oneof declarations. type OneofDescriptors interface { // Len reports the number of oneof fields. Len() int // Get returns the ith OneofDescriptor. It panics if out of bounds. Get(i int) OneofDescriptor // ByName returns the OneofDescriptor for a oneof named s. // It returns nil if not found. ByName(s Name) OneofDescriptor doNotImplement } // ExtensionDescriptor is an alias of FieldDescriptor for documentation. type ExtensionDescriptor = FieldDescriptor // ExtensionTypeDescriptor is an ExtensionDescriptor with an associated ExtensionType. type ExtensionTypeDescriptor interface { ExtensionDescriptor // Type returns the associated ExtensionType. Type() ExtensionType // Descriptor returns the plain ExtensionDescriptor without the // associated ExtensionType. Descriptor() ExtensionDescriptor } // ExtensionDescriptors is a list of field declarations. type ExtensionDescriptors interface { // Len reports the number of fields. Len() int // Get returns the ith ExtensionDescriptor. It panics if out of bounds. Get(i int) ExtensionDescriptor // ByName returns the ExtensionDescriptor for a field named s. // It returns nil if not found. ByName(s Name) ExtensionDescriptor doNotImplement } // ExtensionType encapsulates an ExtensionDescriptor with a concrete // Go implementation. The nested field descriptor must be for a extension field. // // While a normal field is a member of the parent message that it is declared // within (see Descriptor.Parent), an extension field is a member of some other // target message (see ExtensionDescriptor.Extendee) and may have no // relationship with the parent. However, the full name of an extension field is // relative to the parent that it is declared within. // // For example: // syntax = "proto2"; // package example; // message FooMessage { // extensions 100 to max; // } // message BarMessage { // extends FooMessage { optional BarMessage bar_field = 100; } // } // // Field "bar_field" is an extension of FooMessage, but its full name is // "example.BarMessage.bar_field" instead of "example.FooMessage.bar_field". type ExtensionType interface { // New returns a new value for the field. // For scalars, this returns the default value in native Go form. New() Value // Zero returns a new value for the field. // For scalars, this returns the default value in native Go form. // For composite types, this returns an empty, read-only message, list, or map. Zero() Value // TypeDescriptor returns the extension type descriptor. TypeDescriptor() ExtensionTypeDescriptor // ValueOf wraps the input and returns it as a Value. // ValueOf panics if the input value is invalid or not the appropriate type. // // ValueOf is more extensive than protoreflect.ValueOf for a given field's // value as it has more type information available. ValueOf(interface{}) Value // InterfaceOf completely unwraps the Value to the underlying Go type. // InterfaceOf panics if the input is nil or does not represent the // appropriate underlying Go type. For composite types, it panics if the // value is not mutable. // // InterfaceOf is able to unwrap the Value further than Value.Interface // as it has more type information available. InterfaceOf(Value) interface{} // IsValidValue reports whether the Value is valid to assign to the field. IsValidValue(Value) bool // IsValidInterface reports whether the input is valid to assign to the field. IsValidInterface(interface{}) bool } // EnumDescriptor describes an enum and // corresponds with the google.protobuf.EnumDescriptorProto message. // // Nested declarations: // EnumValueDescriptor. type EnumDescriptor interface { Descriptor // Values is a list of nested enum value declarations. Values() EnumValueDescriptors // ReservedNames is a list of reserved enum names. ReservedNames() Names // ReservedRanges is a list of reserved ranges of enum numbers. ReservedRanges() EnumRanges isEnumDescriptor } type isEnumDescriptor interface{ ProtoType(EnumDescriptor) } // EnumType encapsulates an EnumDescriptor with a concrete Go implementation. type EnumType interface { // New returns an instance of this enum type with its value set to n. New(n EnumNumber) Enum // Descriptor returns the enum descriptor. // // Invariant: t.Descriptor() == t.New(0).Descriptor() Descriptor() EnumDescriptor } // EnumDescriptors is a list of enum declarations. type EnumDescriptors interface { // Len reports the number of enum types. Len() int // Get returns the ith EnumDescriptor. It panics if out of bounds. Get(i int) EnumDescriptor // ByName returns the EnumDescriptor for an enum named s. // It returns nil if not found. ByName(s Name) EnumDescriptor doNotImplement } // EnumValueDescriptor describes an enum value and // corresponds with the google.protobuf.EnumValueDescriptorProto message. // // All other proto declarations are in the namespace of the parent. // However, enum values do not follow this rule and are within the namespace // of the parent's parent (i.e., they are a sibling of the containing enum). // Thus, a value named "FOO_VALUE" declared within an enum uniquely identified // as "proto.package.MyEnum" has a full name of "proto.package.FOO_VALUE". type EnumValueDescriptor interface { Descriptor // Number returns the enum value as an integer. Number() EnumNumber isEnumValueDescriptor } type isEnumValueDescriptor interface{ ProtoType(EnumValueDescriptor) } // EnumValueDescriptors is a list of enum value declarations. type EnumValueDescriptors interface { // Len reports the number of enum values. Len() int // Get returns the ith EnumValueDescriptor. It panics if out of bounds. Get(i int) EnumValueDescriptor // ByName returns the EnumValueDescriptor for the enum value named s. // It returns nil if not found. ByName(s Name) EnumValueDescriptor // ByNumber returns the EnumValueDescriptor for the enum value numbered n. // If multiple have the same number, the first one defined is returned // It returns nil if not found. ByNumber(n EnumNumber) EnumValueDescriptor doNotImplement } // ServiceDescriptor describes a service and // corresponds with the google.protobuf.ServiceDescriptorProto message. // // Nested declarations: MethodDescriptor. type ServiceDescriptor interface { Descriptor // Methods is a list of nested message declarations. Methods() MethodDescriptors isServiceDescriptor } type isServiceDescriptor interface{ ProtoType(ServiceDescriptor) } // ServiceDescriptors is a list of service declarations. type ServiceDescriptors interface { // Len reports the number of services. Len() int // Get returns the ith ServiceDescriptor. It panics if out of bounds. Get(i int) ServiceDescriptor // ByName returns the ServiceDescriptor for a service named s. // It returns nil if not found. ByName(s Name) ServiceDescriptor doNotImplement } // MethodDescriptor describes a method and // corresponds with the google.protobuf.MethodDescriptorProto message. type MethodDescriptor interface { Descriptor // Input is the input message descriptor. Input() MessageDescriptor // Output is the output message descriptor. Output() MessageDescriptor // IsStreamingClient reports whether the client streams multiple messages. IsStreamingClient() bool // IsStreamingServer reports whether the server streams multiple messages. IsStreamingServer() bool isMethodDescriptor } type isMethodDescriptor interface{ ProtoType(MethodDescriptor) } // MethodDescriptors is a list of method declarations. type MethodDescriptors interface { // Len reports the number of methods. Len() int // Get returns the ith MethodDescriptor. It panics if out of bounds. Get(i int) MethodDescriptor // ByName returns the MethodDescriptor for a service method named s. // It returns nil if not found. ByName(s Name) MethodDescriptor doNotImplement } golang-google-protobuf-1.27.1/reflect/protoreflect/value.go000066400000000000000000000257231411250152500237650ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protoreflect import "google.golang.org/protobuf/encoding/protowire" // Enum is a reflection interface for a concrete enum value, // which provides type information and a getter for the enum number. // Enum does not provide a mutable API since enums are commonly backed by // Go constants, which are not addressable. type Enum interface { // Descriptor returns enum descriptor, which contains only the protobuf // type information for the enum. Descriptor() EnumDescriptor // Type returns the enum type, which encapsulates both Go and protobuf // type information. If the Go type information is not needed, // it is recommended that the enum descriptor be used instead. Type() EnumType // Number returns the enum value as an integer. Number() EnumNumber } // Message is a reflective interface for a concrete message value, // encapsulating both type and value information for the message. // // Accessor/mutators for individual fields are keyed by FieldDescriptor. // For non-extension fields, the descriptor must exactly match the // field known by the parent message. // For extension fields, the descriptor must implement ExtensionTypeDescriptor, // extend the parent message (i.e., have the same message FullName), and // be within the parent's extension range. // // Each field Value can be a scalar or a composite type (Message, List, or Map). // See Value for the Go types associated with a FieldDescriptor. // Providing a Value that is invalid or of an incorrect type panics. type Message interface { // Descriptor returns message descriptor, which contains only the protobuf // type information for the message. Descriptor() MessageDescriptor // Type returns the message type, which encapsulates both Go and protobuf // type information. If the Go type information is not needed, // it is recommended that the message descriptor be used instead. Type() MessageType // New returns a newly allocated and mutable empty message. New() Message // Interface unwraps the message reflection interface and // returns the underlying ProtoMessage interface. Interface() ProtoMessage // Range iterates over every populated field in an undefined order, // calling f for each field descriptor and value encountered. // Range returns immediately if f returns false. // While iterating, mutating operations may only be performed // on the current field descriptor. Range(f func(FieldDescriptor, Value) bool) // Has reports whether a field is populated. // // Some fields have the property of nullability where it is possible to // distinguish between the default value of a field and whether the field // was explicitly populated with the default value. Singular message fields, // member fields of a oneof, and proto2 scalar fields are nullable. Such // fields are populated only if explicitly set. // // In other cases (aside from the nullable cases above), // a proto3 scalar field is populated if it contains a non-zero value, and // a repeated field is populated if it is non-empty. Has(FieldDescriptor) bool // Clear clears the field such that a subsequent Has call reports false. // // Clearing an extension field clears both the extension type and value // associated with the given field number. // // Clear is a mutating operation and unsafe for concurrent use. Clear(FieldDescriptor) // Get retrieves the value for a field. // // For unpopulated scalars, it returns the default value, where // the default value of a bytes scalar is guaranteed to be a copy. // For unpopulated composite types, it returns an empty, read-only view // of the value; to obtain a mutable reference, use Mutable. Get(FieldDescriptor) Value // Set stores the value for a field. // // For a field belonging to a oneof, it implicitly clears any other field // that may be currently set within the same oneof. // For extension fields, it implicitly stores the provided ExtensionType. // When setting a composite type, it is unspecified whether the stored value // aliases the source's memory in any way. If the composite value is an // empty, read-only value, then it panics. // // Set is a mutating operation and unsafe for concurrent use. Set(FieldDescriptor, Value) // Mutable returns a mutable reference to a composite type. // // If the field is unpopulated, it may allocate a composite value. // For a field belonging to a oneof, it implicitly clears any other field // that may be currently set within the same oneof. // For extension fields, it implicitly stores the provided ExtensionType // if not already stored. // It panics if the field does not contain a composite type. // // Mutable is a mutating operation and unsafe for concurrent use. Mutable(FieldDescriptor) Value // NewField returns a new value that is assignable to the field // for the given descriptor. For scalars, this returns the default value. // For lists, maps, and messages, this returns a new, empty, mutable value. NewField(FieldDescriptor) Value // WhichOneof reports which field within the oneof is populated, // returning nil if none are populated. // It panics if the oneof descriptor does not belong to this message. WhichOneof(OneofDescriptor) FieldDescriptor // GetUnknown retrieves the entire list of unknown fields. // The caller may only mutate the contents of the RawFields // if the mutated bytes are stored back into the message with SetUnknown. GetUnknown() RawFields // SetUnknown stores an entire list of unknown fields. // The raw fields must be syntactically valid according to the wire format. // An implementation may panic if this is not the case. // Once stored, the caller must not mutate the content of the RawFields. // An empty RawFields may be passed to clear the fields. // // SetUnknown is a mutating operation and unsafe for concurrent use. SetUnknown(RawFields) // IsValid reports whether the message is valid. // // An invalid message is an empty, read-only value. // // An invalid message often corresponds to a nil pointer of the concrete // message type, but the details are implementation dependent. // Validity is not part of the protobuf data model, and may not // be preserved in marshaling or other operations. IsValid() bool // ProtoMethods returns optional fast-path implementions of various operations. // This method may return nil. // // The returned methods type is identical to // "google.golang.org/protobuf/runtime/protoiface".Methods. // Consult the protoiface package documentation for details. ProtoMethods() *methods } // RawFields is the raw bytes for an ordered sequence of fields. // Each field contains both the tag (representing field number and wire type), // and also the wire data itself. type RawFields []byte // IsValid reports whether b is syntactically correct wire format. func (b RawFields) IsValid() bool { for len(b) > 0 { _, _, n := protowire.ConsumeField(b) if n < 0 { return false } b = b[n:] } return true } // List is a zero-indexed, ordered list. // The element Value type is determined by FieldDescriptor.Kind. // Providing a Value that is invalid or of an incorrect type panics. type List interface { // Len reports the number of entries in the List. // Get, Set, and Truncate panic with out of bound indexes. Len() int // Get retrieves the value at the given index. // It never returns an invalid value. Get(int) Value // Set stores a value for the given index. // When setting a composite type, it is unspecified whether the set // value aliases the source's memory in any way. // // Set is a mutating operation and unsafe for concurrent use. Set(int, Value) // Append appends the provided value to the end of the list. // When appending a composite type, it is unspecified whether the appended // value aliases the source's memory in any way. // // Append is a mutating operation and unsafe for concurrent use. Append(Value) // AppendMutable appends a new, empty, mutable message value to the end // of the list and returns it. // It panics if the list does not contain a message type. AppendMutable() Value // Truncate truncates the list to a smaller length. // // Truncate is a mutating operation and unsafe for concurrent use. Truncate(int) // NewElement returns a new value for a list element. // For enums, this returns the first enum value. // For other scalars, this returns the zero value. // For messages, this returns a new, empty, mutable value. NewElement() Value // IsValid reports whether the list is valid. // // An invalid list is an empty, read-only value. // // Validity is not part of the protobuf data model, and may not // be preserved in marshaling or other operations. IsValid() bool } // Map is an unordered, associative map. // The entry MapKey type is determined by FieldDescriptor.MapKey.Kind. // The entry Value type is determined by FieldDescriptor.MapValue.Kind. // Providing a MapKey or Value that is invalid or of an incorrect type panics. type Map interface { // Len reports the number of elements in the map. Len() int // Range iterates over every map entry in an undefined order, // calling f for each key and value encountered. // Range calls f Len times unless f returns false, which stops iteration. // While iterating, mutating operations may only be performed // on the current map key. Range(f func(MapKey, Value) bool) // Has reports whether an entry with the given key is in the map. Has(MapKey) bool // Clear clears the entry associated with they given key. // The operation does nothing if there is no entry associated with the key. // // Clear is a mutating operation and unsafe for concurrent use. Clear(MapKey) // Get retrieves the value for an entry with the given key. // It returns an invalid value for non-existent entries. Get(MapKey) Value // Set stores the value for an entry with the given key. // It panics when given a key or value that is invalid or the wrong type. // When setting a composite type, it is unspecified whether the set // value aliases the source's memory in any way. // // Set is a mutating operation and unsafe for concurrent use. Set(MapKey, Value) // Mutable retrieves a mutable reference to the entry for the given key. // If no entry exists for the key, it creates a new, empty, mutable value // and stores it as the entry for the key. // It panics if the map value is not a message. Mutable(MapKey) Value // NewValue returns a new value assignable as a map value. // For enums, this returns the first enum value. // For other scalars, this returns the zero value. // For messages, this returns a new, empty, mutable value. NewValue() Value // IsValid reports whether the map is valid. // // An invalid map is an empty, read-only value. // // An invalid message often corresponds to a nil Go map value, // but the details are implementation dependent. // Validity is not part of the protobuf data model, and may not // be preserved in marshaling or other operations. IsValid() bool } golang-google-protobuf-1.27.1/reflect/protoreflect/value_pure.go000066400000000000000000000022761411250152500250160ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build purego appengine package protoreflect import "google.golang.org/protobuf/internal/pragma" type valueType int const ( nilType valueType = iota boolType int32Type int64Type uint32Type uint64Type float32Type float64Type stringType bytesType enumType ifaceType ) // value is a union where only one type can be represented at a time. // This uses a distinct field for each type. This is type safe in Go, but // occupies more memory than necessary (72B). type value struct { pragma.DoNotCompare // 0B typ valueType // 8B num uint64 // 8B str string // 16B bin []byte // 24B iface interface{} // 16B } func valueOfString(v string) Value { return Value{typ: stringType, str: v} } func valueOfBytes(v []byte) Value { return Value{typ: bytesType, bin: v} } func valueOfIface(v interface{}) Value { return Value{typ: ifaceType, iface: v} } func (v Value) getString() string { return v.str } func (v Value) getBytes() []byte { return v.bin } func (v Value) getIface() interface{} { return v.iface } golang-google-protobuf-1.27.1/reflect/protoreflect/value_test.go000066400000000000000000000106731411250152500250220ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protoreflect import ( "bytes" "math" "reflect" "testing" ) func TestValue(t *testing.T) { fakeMessage := new(struct{ Message }) fakeList := new(struct{ List }) fakeMap := new(struct{ Map }) tests := []struct { in Value want interface{} }{ {in: Value{}}, {in: ValueOf(nil)}, {in: ValueOf(true), want: true}, {in: ValueOf(int32(math.MaxInt32)), want: int32(math.MaxInt32)}, {in: ValueOf(int64(math.MaxInt64)), want: int64(math.MaxInt64)}, {in: ValueOf(uint32(math.MaxUint32)), want: uint32(math.MaxUint32)}, {in: ValueOf(uint64(math.MaxUint64)), want: uint64(math.MaxUint64)}, {in: ValueOf(float32(math.MaxFloat32)), want: float32(math.MaxFloat32)}, {in: ValueOf(float64(math.MaxFloat64)), want: float64(math.MaxFloat64)}, {in: ValueOf(string("hello")), want: string("hello")}, {in: ValueOf([]byte("hello")), want: []byte("hello")}, {in: ValueOf(fakeMessage), want: fakeMessage}, {in: ValueOf(fakeList), want: fakeList}, {in: ValueOf(fakeMap), want: fakeMap}, } for _, tt := range tests { got := tt.in.Interface() if !reflect.DeepEqual(got, tt.want) { t.Errorf("Value(%v).Interface() = %v, want %v", tt.in, got, tt.want) } if got := tt.in.IsValid(); got != (tt.want != nil) { t.Errorf("Value(%v).IsValid() = %v, want %v", tt.in, got, tt.want != nil) } switch want := tt.want.(type) { case int32: if got := tt.in.Int(); got != int64(want) { t.Errorf("Value(%v).Int() = %v, want %v", tt.in, got, tt.want) } case int64: if got := tt.in.Int(); got != int64(want) { t.Errorf("Value(%v).Int() = %v, want %v", tt.in, got, tt.want) } case uint32: if got := tt.in.Uint(); got != uint64(want) { t.Errorf("Value(%v).Uint() = %v, want %v", tt.in, got, tt.want) } case uint64: if got := tt.in.Uint(); got != uint64(want) { t.Errorf("Value(%v).Uint() = %v, want %v", tt.in, got, tt.want) } case float32: if got := tt.in.Float(); got != float64(want) { t.Errorf("Value(%v).Float() = %v, want %v", tt.in, got, tt.want) } case float64: if got := tt.in.Float(); got != float64(want) { t.Errorf("Value(%v).Float() = %v, want %v", tt.in, got, tt.want) } case string: if got := tt.in.String(); got != string(want) { t.Errorf("Value(%v).String() = %v, want %v", tt.in, got, tt.want) } case []byte: if got := tt.in.Bytes(); !bytes.Equal(got, want) { t.Errorf("Value(%v).Bytes() = %v, want %v", tt.in, got, tt.want) } case EnumNumber: if got := tt.in.Enum(); got != want { t.Errorf("Value(%v).Enum() = %v, want %v", tt.in, got, tt.want) } case Message: if got := tt.in.Message(); got != want { t.Errorf("Value(%v).Message() = %v, want %v", tt.in, got, tt.want) } case List: if got := tt.in.List(); got != want { t.Errorf("Value(%v).List() = %v, want %v", tt.in, got, tt.want) } case Map: if got := tt.in.Map(); got != want { t.Errorf("Value(%v).Map() = %v, want %v", tt.in, got, tt.want) } } } } func BenchmarkValue(b *testing.B) { const testdata = "The quick brown fox jumped over the lazy dog." var sink1 string var sink2 Value var sink3 interface{} // Baseline measures the time to store a string into a native variable. b.Run("Baseline", func(b *testing.B) { b.ReportAllocs() for i := 0; i < b.N; i++ { sink1 = testdata[:len(testdata)%(i+1)] } }) // Inline measures the time to store a string into a Value, // assuming that the compiler could inline the ValueOf function call. b.Run("Inline", func(b *testing.B) { b.ReportAllocs() for i := 0; i < b.N; i++ { sink2 = valueOfString(testdata[:len(testdata)%(i+1)]) } }) // Value measures the time to store a string into a Value using the general // ValueOf function call. This should be identical to Inline. // // NOTE: As of Go1.11, this is not as efficient as Inline due to the lack // of some compiler optimizations: // https://golang.org/issue/22310 // https://golang.org/issue/25189 b.Run("Value", func(b *testing.B) { b.ReportAllocs() for i := 0; i < b.N; i++ { sink2 = ValueOf(string(testdata[:len(testdata)%(i+1)])) } }) // Interface measures the time to store a string into an interface. b.Run("Interface", func(b *testing.B) { b.ReportAllocs() for i := 0; i < b.N; i++ { sink3 = string(testdata[:len(testdata)%(i+1)]) } }) _, _, _ = sink1, sink2, sink3 } golang-google-protobuf-1.27.1/reflect/protoreflect/value_union.go000066400000000000000000000273451411250152500251770ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protoreflect import ( "fmt" "math" ) // Value is a union where only one Go type may be set at a time. // The Value is used to represent all possible values a field may take. // The following shows which Go type is used to represent each proto Kind: // // ╔════════════╤═════════════════════════════════════╗ // ║ Go type │ Protobuf kind ║ // ╠════════════╪═════════════════════════════════════╣ // ║ bool │ BoolKind ║ // ║ int32 │ Int32Kind, Sint32Kind, Sfixed32Kind ║ // ║ int64 │ Int64Kind, Sint64Kind, Sfixed64Kind ║ // ║ uint32 │ Uint32Kind, Fixed32Kind ║ // ║ uint64 │ Uint64Kind, Fixed64Kind ║ // ║ float32 │ FloatKind ║ // ║ float64 │ DoubleKind ║ // ║ string │ StringKind ║ // ║ []byte │ BytesKind ║ // ║ EnumNumber │ EnumKind ║ // ║ Message │ MessageKind, GroupKind ║ // ╚════════════╧═════════════════════════════════════╝ // // Multiple protobuf Kinds may be represented by a single Go type if the type // can losslessly represent the information for the proto kind. For example, // Int64Kind, Sint64Kind, and Sfixed64Kind are all represented by int64, // but use different integer encoding methods. // // The List or Map types are used if the field cardinality is repeated. // A field is a List if FieldDescriptor.IsList reports true. // A field is a Map if FieldDescriptor.IsMap reports true. // // Converting to/from a Value and a concrete Go value panics on type mismatch. // For example, ValueOf("hello").Int() panics because this attempts to // retrieve an int64 from a string. type Value value // The protoreflect API uses a custom Value union type instead of interface{} // to keep the future open for performance optimizations. Using an interface{} // always incurs an allocation for primitives (e.g., int64) since it needs to // be boxed on the heap (as interfaces can only contain pointers natively). // Instead, we represent the Value union as a flat struct that internally keeps // track of which type is set. Using unsafe, the Value union can be reduced // down to 24B, which is identical in size to a slice. // // The latest compiler (Go1.11) currently suffers from some limitations: // • With inlining, the compiler should be able to statically prove that // only one of these switch cases are taken and inline one specific case. // See https://golang.org/issue/22310. // ValueOf returns a Value initialized with the concrete value stored in v. // This panics if the type does not match one of the allowed types in the // Value union. func ValueOf(v interface{}) Value { switch v := v.(type) { case nil: return Value{} case bool: return ValueOfBool(v) case int32: return ValueOfInt32(v) case int64: return ValueOfInt64(v) case uint32: return ValueOfUint32(v) case uint64: return ValueOfUint64(v) case float32: return ValueOfFloat32(v) case float64: return ValueOfFloat64(v) case string: return ValueOfString(v) case []byte: return ValueOfBytes(v) case EnumNumber: return ValueOfEnum(v) case Message, List, Map: return valueOfIface(v) case ProtoMessage: panic(fmt.Sprintf("invalid proto.Message(%T) type, expected a protoreflect.Message type", v)) default: panic(fmt.Sprintf("invalid type: %T", v)) } } // ValueOfBool returns a new boolean value. func ValueOfBool(v bool) Value { if v { return Value{typ: boolType, num: 1} } else { return Value{typ: boolType, num: 0} } } // ValueOfInt32 returns a new int32 value. func ValueOfInt32(v int32) Value { return Value{typ: int32Type, num: uint64(v)} } // ValueOfInt64 returns a new int64 value. func ValueOfInt64(v int64) Value { return Value{typ: int64Type, num: uint64(v)} } // ValueOfUint32 returns a new uint32 value. func ValueOfUint32(v uint32) Value { return Value{typ: uint32Type, num: uint64(v)} } // ValueOfUint64 returns a new uint64 value. func ValueOfUint64(v uint64) Value { return Value{typ: uint64Type, num: v} } // ValueOfFloat32 returns a new float32 value. func ValueOfFloat32(v float32) Value { return Value{typ: float32Type, num: uint64(math.Float64bits(float64(v)))} } // ValueOfFloat64 returns a new float64 value. func ValueOfFloat64(v float64) Value { return Value{typ: float64Type, num: uint64(math.Float64bits(float64(v)))} } // ValueOfString returns a new string value. func ValueOfString(v string) Value { return valueOfString(v) } // ValueOfBytes returns a new bytes value. func ValueOfBytes(v []byte) Value { return valueOfBytes(v[:len(v):len(v)]) } // ValueOfEnum returns a new enum value. func ValueOfEnum(v EnumNumber) Value { return Value{typ: enumType, num: uint64(v)} } // ValueOfMessage returns a new Message value. func ValueOfMessage(v Message) Value { return valueOfIface(v) } // ValueOfList returns a new List value. func ValueOfList(v List) Value { return valueOfIface(v) } // ValueOfMap returns a new Map value. func ValueOfMap(v Map) Value { return valueOfIface(v) } // IsValid reports whether v is populated with a value. func (v Value) IsValid() bool { return v.typ != nilType } // Interface returns v as an interface{}. // // Invariant: v == ValueOf(v).Interface() func (v Value) Interface() interface{} { switch v.typ { case nilType: return nil case boolType: return v.Bool() case int32Type: return int32(v.Int()) case int64Type: return int64(v.Int()) case uint32Type: return uint32(v.Uint()) case uint64Type: return uint64(v.Uint()) case float32Type: return float32(v.Float()) case float64Type: return float64(v.Float()) case stringType: return v.String() case bytesType: return v.Bytes() case enumType: return v.Enum() default: return v.getIface() } } func (v Value) typeName() string { switch v.typ { case nilType: return "nil" case boolType: return "bool" case int32Type: return "int32" case int64Type: return "int64" case uint32Type: return "uint32" case uint64Type: return "uint64" case float32Type: return "float32" case float64Type: return "float64" case stringType: return "string" case bytesType: return "bytes" case enumType: return "enum" default: switch v := v.getIface().(type) { case Message: return "message" case List: return "list" case Map: return "map" default: return fmt.Sprintf("", v) } } } func (v Value) panicMessage(what string) string { return fmt.Sprintf("type mismatch: cannot convert %v to %s", v.typeName(), what) } // Bool returns v as a bool and panics if the type is not a bool. func (v Value) Bool() bool { switch v.typ { case boolType: return v.num > 0 default: panic(v.panicMessage("bool")) } } // Int returns v as a int64 and panics if the type is not a int32 or int64. func (v Value) Int() int64 { switch v.typ { case int32Type, int64Type: return int64(v.num) default: panic(v.panicMessage("int")) } } // Uint returns v as a uint64 and panics if the type is not a uint32 or uint64. func (v Value) Uint() uint64 { switch v.typ { case uint32Type, uint64Type: return uint64(v.num) default: panic(v.panicMessage("uint")) } } // Float returns v as a float64 and panics if the type is not a float32 or float64. func (v Value) Float() float64 { switch v.typ { case float32Type, float64Type: return math.Float64frombits(uint64(v.num)) default: panic(v.panicMessage("float")) } } // String returns v as a string. Since this method implements fmt.Stringer, // this returns the formatted string value for any non-string type. func (v Value) String() string { switch v.typ { case stringType: return v.getString() default: return fmt.Sprint(v.Interface()) } } // Bytes returns v as a []byte and panics if the type is not a []byte. func (v Value) Bytes() []byte { switch v.typ { case bytesType: return v.getBytes() default: panic(v.panicMessage("bytes")) } } // Enum returns v as a EnumNumber and panics if the type is not a EnumNumber. func (v Value) Enum() EnumNumber { switch v.typ { case enumType: return EnumNumber(v.num) default: panic(v.panicMessage("enum")) } } // Message returns v as a Message and panics if the type is not a Message. func (v Value) Message() Message { switch vi := v.getIface().(type) { case Message: return vi default: panic(v.panicMessage("message")) } } // List returns v as a List and panics if the type is not a List. func (v Value) List() List { switch vi := v.getIface().(type) { case List: return vi default: panic(v.panicMessage("list")) } } // Map returns v as a Map and panics if the type is not a Map. func (v Value) Map() Map { switch vi := v.getIface().(type) { case Map: return vi default: panic(v.panicMessage("map")) } } // MapKey returns v as a MapKey and panics for invalid MapKey types. func (v Value) MapKey() MapKey { switch v.typ { case boolType, int32Type, int64Type, uint32Type, uint64Type, stringType: return MapKey(v) default: panic(v.panicMessage("map key")) } } // MapKey is used to index maps, where the Go type of the MapKey must match // the specified key Kind (see MessageDescriptor.IsMapEntry). // The following shows what Go type is used to represent each proto Kind: // // ╔═════════╤═════════════════════════════════════╗ // ║ Go type │ Protobuf kind ║ // ╠═════════╪═════════════════════════════════════╣ // ║ bool │ BoolKind ║ // ║ int32 │ Int32Kind, Sint32Kind, Sfixed32Kind ║ // ║ int64 │ Int64Kind, Sint64Kind, Sfixed64Kind ║ // ║ uint32 │ Uint32Kind, Fixed32Kind ║ // ║ uint64 │ Uint64Kind, Fixed64Kind ║ // ║ string │ StringKind ║ // ╚═════════╧═════════════════════════════════════╝ // // A MapKey is constructed and accessed through a Value: // k := ValueOf("hash").MapKey() // convert string to MapKey // s := k.String() // convert MapKey to string // // The MapKey is a strict subset of valid types used in Value; // converting a Value to a MapKey with an invalid type panics. type MapKey value // IsValid reports whether k is populated with a value. func (k MapKey) IsValid() bool { return Value(k).IsValid() } // Interface returns k as an interface{}. func (k MapKey) Interface() interface{} { return Value(k).Interface() } // Bool returns k as a bool and panics if the type is not a bool. func (k MapKey) Bool() bool { return Value(k).Bool() } // Int returns k as a int64 and panics if the type is not a int32 or int64. func (k MapKey) Int() int64 { return Value(k).Int() } // Uint returns k as a uint64 and panics if the type is not a uint32 or uint64. func (k MapKey) Uint() uint64 { return Value(k).Uint() } // String returns k as a string. Since this method implements fmt.Stringer, // this returns the formatted string value for any non-string type. func (k MapKey) String() string { return Value(k).String() } // Value returns k as a Value. func (k MapKey) Value() Value { return Value(k) } golang-google-protobuf-1.27.1/reflect/protoreflect/value_unsafe.go000066400000000000000000000052661411250152500253260ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build !purego,!appengine package protoreflect import ( "unsafe" "google.golang.org/protobuf/internal/pragma" ) type ( stringHeader struct { Data unsafe.Pointer Len int } sliceHeader struct { Data unsafe.Pointer Len int Cap int } ifaceHeader struct { Type unsafe.Pointer Data unsafe.Pointer } ) var ( nilType = typeOf(nil) boolType = typeOf(*new(bool)) int32Type = typeOf(*new(int32)) int64Type = typeOf(*new(int64)) uint32Type = typeOf(*new(uint32)) uint64Type = typeOf(*new(uint64)) float32Type = typeOf(*new(float32)) float64Type = typeOf(*new(float64)) stringType = typeOf(*new(string)) bytesType = typeOf(*new([]byte)) enumType = typeOf(*new(EnumNumber)) ) // typeOf returns a pointer to the Go type information. // The pointer is comparable and equal if and only if the types are identical. func typeOf(t interface{}) unsafe.Pointer { return (*ifaceHeader)(unsafe.Pointer(&t)).Type } // value is a union where only one type can be represented at a time. // The struct is 24B large on 64-bit systems and requires the minimum storage // necessary to represent each possible type. // // The Go GC needs to be able to scan variables containing pointers. // As such, pointers and non-pointers cannot be intermixed. type value struct { pragma.DoNotCompare // 0B // typ stores the type of the value as a pointer to the Go type. typ unsafe.Pointer // 8B // ptr stores the data pointer for a String, Bytes, or interface value. ptr unsafe.Pointer // 8B // num stores a Bool, Int32, Int64, Uint32, Uint64, Float32, Float64, or // Enum value as a raw uint64. // // It is also used to store the length of a String or Bytes value; // the capacity is ignored. num uint64 // 8B } func valueOfString(v string) Value { p := (*stringHeader)(unsafe.Pointer(&v)) return Value{typ: stringType, ptr: p.Data, num: uint64(len(v))} } func valueOfBytes(v []byte) Value { p := (*sliceHeader)(unsafe.Pointer(&v)) return Value{typ: bytesType, ptr: p.Data, num: uint64(len(v))} } func valueOfIface(v interface{}) Value { p := (*ifaceHeader)(unsafe.Pointer(&v)) return Value{typ: p.Type, ptr: p.Data} } func (v Value) getString() (x string) { *(*stringHeader)(unsafe.Pointer(&x)) = stringHeader{Data: v.ptr, Len: int(v.num)} return x } func (v Value) getBytes() (x []byte) { *(*sliceHeader)(unsafe.Pointer(&x)) = sliceHeader{Data: v.ptr, Len: int(v.num), Cap: int(v.num)} return x } func (v Value) getIface() (x interface{}) { *(*ifaceHeader)(unsafe.Pointer(&x)) = ifaceHeader{Type: v.typ, Data: v.ptr} return x } golang-google-protobuf-1.27.1/reflect/protoregistry/000077500000000000000000000000001411250152500225355ustar00rootroot00000000000000golang-google-protobuf-1.27.1/reflect/protoregistry/registry.go000066400000000000000000000613241411250152500247420ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package protoregistry provides data structures to register and lookup // protobuf descriptor types. // // The Files registry contains file descriptors and provides the ability // to iterate over the files or lookup a specific descriptor within the files. // Files only contains protobuf descriptors and has no understanding of Go // type information that may be associated with each descriptor. // // The Types registry contains descriptor types for which there is a known // Go type associated with that descriptor. It provides the ability to iterate // over the registered types or lookup a type by name. package protoregistry import ( "fmt" "os" "strings" "sync" "google.golang.org/protobuf/internal/encoding/messageset" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/reflect/protoreflect" ) // conflictPolicy configures the policy for handling registration conflicts. // // It can be over-written at compile time with a linker-initialized variable: // go build -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" // // It can be over-written at program execution with an environment variable: // GOLANG_PROTOBUF_REGISTRATION_CONFLICT=warn ./main // // Neither of the above are covered by the compatibility promise and // may be removed in a future release of this module. var conflictPolicy = "panic" // "panic" | "warn" | "ignore" // ignoreConflict reports whether to ignore a registration conflict // given the descriptor being registered and the error. // It is a variable so that the behavior is easily overridden in another file. var ignoreConflict = func(d protoreflect.Descriptor, err error) bool { const env = "GOLANG_PROTOBUF_REGISTRATION_CONFLICT" const faq = "https://developers.google.com/protocol-buffers/docs/reference/go/faq#namespace-conflict" policy := conflictPolicy if v := os.Getenv(env); v != "" { policy = v } switch policy { case "panic": panic(fmt.Sprintf("%v\nSee %v\n", err, faq)) case "warn": fmt.Fprintf(os.Stderr, "WARNING: %v\nSee %v\n\n", err, faq) return true case "ignore": return true default: panic("invalid " + env + " value: " + os.Getenv(env)) } } var globalMutex sync.RWMutex // GlobalFiles is a global registry of file descriptors. var GlobalFiles *Files = new(Files) // GlobalTypes is the registry used by default for type lookups // unless a local registry is provided by the user. var GlobalTypes *Types = new(Types) // NotFound is a sentinel error value to indicate that the type was not found. // // Since registry lookup can happen in the critical performance path, resolvers // must return this exact error value, not an error wrapping it. var NotFound = errors.New("not found") // Files is a registry for looking up or iterating over files and the // descriptors contained within them. // The Find and Range methods are safe for concurrent use. type Files struct { // The map of descsByName contains: // EnumDescriptor // EnumValueDescriptor // MessageDescriptor // ExtensionDescriptor // ServiceDescriptor // *packageDescriptor // // Note that files are stored as a slice, since a package may contain // multiple files. Only top-level declarations are registered. // Note that enum values are in the top-level since that are in the same // scope as the parent enum. descsByName map[protoreflect.FullName]interface{} filesByPath map[string][]protoreflect.FileDescriptor numFiles int } type packageDescriptor struct { files []protoreflect.FileDescriptor } // RegisterFile registers the provided file descriptor. // // If any descriptor within the file conflicts with the descriptor of any // previously registered file (e.g., two enums with the same full name), // then the file is not registered and an error is returned. // // It is permitted for multiple files to have the same file path. func (r *Files) RegisterFile(file protoreflect.FileDescriptor) error { if r == GlobalFiles { globalMutex.Lock() defer globalMutex.Unlock() } if r.descsByName == nil { r.descsByName = map[protoreflect.FullName]interface{}{ "": &packageDescriptor{}, } r.filesByPath = make(map[string][]protoreflect.FileDescriptor) } path := file.Path() if prev := r.filesByPath[path]; len(prev) > 0 { r.checkGenProtoConflict(path) err := errors.New("file %q is already registered", file.Path()) err = amendErrorWithCaller(err, prev[0], file) if !(r == GlobalFiles && ignoreConflict(file, err)) { return err } } for name := file.Package(); name != ""; name = name.Parent() { switch prev := r.descsByName[name]; prev.(type) { case nil, *packageDescriptor: default: err := errors.New("file %q has a package name conflict over %v", file.Path(), name) err = amendErrorWithCaller(err, prev, file) if r == GlobalFiles && ignoreConflict(file, err) { err = nil } return err } } var err error var hasConflict bool rangeTopLevelDescriptors(file, func(d protoreflect.Descriptor) { if prev := r.descsByName[d.FullName()]; prev != nil { hasConflict = true err = errors.New("file %q has a name conflict over %v", file.Path(), d.FullName()) err = amendErrorWithCaller(err, prev, file) if r == GlobalFiles && ignoreConflict(d, err) { err = nil } } }) if hasConflict { return err } for name := file.Package(); name != ""; name = name.Parent() { if r.descsByName[name] == nil { r.descsByName[name] = &packageDescriptor{} } } p := r.descsByName[file.Package()].(*packageDescriptor) p.files = append(p.files, file) rangeTopLevelDescriptors(file, func(d protoreflect.Descriptor) { r.descsByName[d.FullName()] = d }) r.filesByPath[path] = append(r.filesByPath[path], file) r.numFiles++ return nil } // Several well-known types were hosted in the google.golang.org/genproto module // but were later moved to this module. To avoid a weak dependency on the // genproto module (and its relatively large set of transitive dependencies), // we rely on a registration conflict to determine whether the genproto version // is too old (i.e., does not contain aliases to the new type declarations). func (r *Files) checkGenProtoConflict(path string) { if r != GlobalFiles { return } var prevPath string const prevModule = "google.golang.org/genproto" const prevVersion = "cb27e3aa (May 26th, 2020)" switch path { case "google/protobuf/field_mask.proto": prevPath = prevModule + "/protobuf/field_mask" case "google/protobuf/api.proto": prevPath = prevModule + "/protobuf/api" case "google/protobuf/type.proto": prevPath = prevModule + "/protobuf/ptype" case "google/protobuf/source_context.proto": prevPath = prevModule + "/protobuf/source_context" default: return } pkgName := strings.TrimSuffix(strings.TrimPrefix(path, "google/protobuf/"), ".proto") pkgName = strings.Replace(pkgName, "_", "", -1) + "pb" // e.g., "field_mask" => "fieldmaskpb" currPath := "google.golang.org/protobuf/types/known/" + pkgName panic(fmt.Sprintf(""+ "duplicate registration of %q\n"+ "\n"+ "The generated definition for this file has moved:\n"+ "\tfrom: %q\n"+ "\tto: %q\n"+ "A dependency on the %q module must\n"+ "be at version %v or higher.\n"+ "\n"+ "Upgrade the dependency by running:\n"+ "\tgo get -u %v\n", path, prevPath, currPath, prevModule, prevVersion, prevPath)) } // FindDescriptorByName looks up a descriptor by the full name. // // This returns (nil, NotFound) if not found. func (r *Files) FindDescriptorByName(name protoreflect.FullName) (protoreflect.Descriptor, error) { if r == nil { return nil, NotFound } if r == GlobalFiles { globalMutex.RLock() defer globalMutex.RUnlock() } prefix := name suffix := nameSuffix("") for prefix != "" { if d, ok := r.descsByName[prefix]; ok { switch d := d.(type) { case protoreflect.EnumDescriptor: if d.FullName() == name { return d, nil } case protoreflect.EnumValueDescriptor: if d.FullName() == name { return d, nil } case protoreflect.MessageDescriptor: if d.FullName() == name { return d, nil } if d := findDescriptorInMessage(d, suffix); d != nil && d.FullName() == name { return d, nil } case protoreflect.ExtensionDescriptor: if d.FullName() == name { return d, nil } case protoreflect.ServiceDescriptor: if d.FullName() == name { return d, nil } if d := d.Methods().ByName(suffix.Pop()); d != nil && d.FullName() == name { return d, nil } } return nil, NotFound } prefix = prefix.Parent() suffix = nameSuffix(name[len(prefix)+len("."):]) } return nil, NotFound } func findDescriptorInMessage(md protoreflect.MessageDescriptor, suffix nameSuffix) protoreflect.Descriptor { name := suffix.Pop() if suffix == "" { if ed := md.Enums().ByName(name); ed != nil { return ed } for i := md.Enums().Len() - 1; i >= 0; i-- { if vd := md.Enums().Get(i).Values().ByName(name); vd != nil { return vd } } if xd := md.Extensions().ByName(name); xd != nil { return xd } if fd := md.Fields().ByName(name); fd != nil { return fd } if od := md.Oneofs().ByName(name); od != nil { return od } } if md := md.Messages().ByName(name); md != nil { if suffix == "" { return md } return findDescriptorInMessage(md, suffix) } return nil } type nameSuffix string func (s *nameSuffix) Pop() (name protoreflect.Name) { if i := strings.IndexByte(string(*s), '.'); i >= 0 { name, *s = protoreflect.Name((*s)[:i]), (*s)[i+1:] } else { name, *s = protoreflect.Name((*s)), "" } return name } // FindFileByPath looks up a file by the path. // // This returns (nil, NotFound) if not found. // This returns an error if multiple files have the same path. func (r *Files) FindFileByPath(path string) (protoreflect.FileDescriptor, error) { if r == nil { return nil, NotFound } if r == GlobalFiles { globalMutex.RLock() defer globalMutex.RUnlock() } fds := r.filesByPath[path] switch len(fds) { case 0: return nil, NotFound case 1: return fds[0], nil default: return nil, errors.New("multiple files named %q", path) } } // NumFiles reports the number of registered files, // including duplicate files with the same name. func (r *Files) NumFiles() int { if r == nil { return 0 } if r == GlobalFiles { globalMutex.RLock() defer globalMutex.RUnlock() } return r.numFiles } // RangeFiles iterates over all registered files while f returns true. // If multiple files have the same name, RangeFiles iterates over all of them. // The iteration order is undefined. func (r *Files) RangeFiles(f func(protoreflect.FileDescriptor) bool) { if r == nil { return } if r == GlobalFiles { globalMutex.RLock() defer globalMutex.RUnlock() } for _, files := range r.filesByPath { for _, file := range files { if !f(file) { return } } } } // NumFilesByPackage reports the number of registered files in a proto package. func (r *Files) NumFilesByPackage(name protoreflect.FullName) int { if r == nil { return 0 } if r == GlobalFiles { globalMutex.RLock() defer globalMutex.RUnlock() } p, ok := r.descsByName[name].(*packageDescriptor) if !ok { return 0 } return len(p.files) } // RangeFilesByPackage iterates over all registered files in a given proto package // while f returns true. The iteration order is undefined. func (r *Files) RangeFilesByPackage(name protoreflect.FullName, f func(protoreflect.FileDescriptor) bool) { if r == nil { return } if r == GlobalFiles { globalMutex.RLock() defer globalMutex.RUnlock() } p, ok := r.descsByName[name].(*packageDescriptor) if !ok { return } for _, file := range p.files { if !f(file) { return } } } // rangeTopLevelDescriptors iterates over all top-level descriptors in a file // which will be directly entered into the registry. func rangeTopLevelDescriptors(fd protoreflect.FileDescriptor, f func(protoreflect.Descriptor)) { eds := fd.Enums() for i := eds.Len() - 1; i >= 0; i-- { f(eds.Get(i)) vds := eds.Get(i).Values() for i := vds.Len() - 1; i >= 0; i-- { f(vds.Get(i)) } } mds := fd.Messages() for i := mds.Len() - 1; i >= 0; i-- { f(mds.Get(i)) } xds := fd.Extensions() for i := xds.Len() - 1; i >= 0; i-- { f(xds.Get(i)) } sds := fd.Services() for i := sds.Len() - 1; i >= 0; i-- { f(sds.Get(i)) } } // MessageTypeResolver is an interface for looking up messages. // // A compliant implementation must deterministically return the same type // if no error is encountered. // // The Types type implements this interface. type MessageTypeResolver interface { // FindMessageByName looks up a message by its full name. // E.g., "google.protobuf.Any" // // This return (nil, NotFound) if not found. FindMessageByName(message protoreflect.FullName) (protoreflect.MessageType, error) // FindMessageByURL looks up a message by a URL identifier. // See documentation on google.protobuf.Any.type_url for the URL format. // // This returns (nil, NotFound) if not found. FindMessageByURL(url string) (protoreflect.MessageType, error) } // ExtensionTypeResolver is an interface for looking up extensions. // // A compliant implementation must deterministically return the same type // if no error is encountered. // // The Types type implements this interface. type ExtensionTypeResolver interface { // FindExtensionByName looks up a extension field by the field's full name. // Note that this is the full name of the field as determined by // where the extension is declared and is unrelated to the full name of the // message being extended. // // This returns (nil, NotFound) if not found. FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) // FindExtensionByNumber looks up a extension field by the field number // within some parent message, identified by full name. // // This returns (nil, NotFound) if not found. FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) } var ( _ MessageTypeResolver = (*Types)(nil) _ ExtensionTypeResolver = (*Types)(nil) ) // Types is a registry for looking up or iterating over descriptor types. // The Find and Range methods are safe for concurrent use. type Types struct { typesByName typesByName extensionsByMessage extensionsByMessage numEnums int numMessages int numExtensions int } type ( typesByName map[protoreflect.FullName]interface{} extensionsByMessage map[protoreflect.FullName]extensionsByNumber extensionsByNumber map[protoreflect.FieldNumber]protoreflect.ExtensionType ) // RegisterMessage registers the provided message type. // // If a naming conflict occurs, the type is not registered and an error is returned. func (r *Types) RegisterMessage(mt protoreflect.MessageType) error { // Under rare circumstances getting the descriptor might recursively // examine the registry, so fetch it before locking. md := mt.Descriptor() if r == GlobalTypes { globalMutex.Lock() defer globalMutex.Unlock() } if err := r.register("message", md, mt); err != nil { return err } r.numMessages++ return nil } // RegisterEnum registers the provided enum type. // // If a naming conflict occurs, the type is not registered and an error is returned. func (r *Types) RegisterEnum(et protoreflect.EnumType) error { // Under rare circumstances getting the descriptor might recursively // examine the registry, so fetch it before locking. ed := et.Descriptor() if r == GlobalTypes { globalMutex.Lock() defer globalMutex.Unlock() } if err := r.register("enum", ed, et); err != nil { return err } r.numEnums++ return nil } // RegisterExtension registers the provided extension type. // // If a naming conflict occurs, the type is not registered and an error is returned. func (r *Types) RegisterExtension(xt protoreflect.ExtensionType) error { // Under rare circumstances getting the descriptor might recursively // examine the registry, so fetch it before locking. // // A known case where this can happen: Fetching the TypeDescriptor for a // legacy ExtensionDesc can consult the global registry. xd := xt.TypeDescriptor() if r == GlobalTypes { globalMutex.Lock() defer globalMutex.Unlock() } field := xd.Number() message := xd.ContainingMessage().FullName() if prev := r.extensionsByMessage[message][field]; prev != nil { err := errors.New("extension number %d is already registered on message %v", field, message) err = amendErrorWithCaller(err, prev, xt) if !(r == GlobalTypes && ignoreConflict(xd, err)) { return err } } if err := r.register("extension", xd, xt); err != nil { return err } if r.extensionsByMessage == nil { r.extensionsByMessage = make(extensionsByMessage) } if r.extensionsByMessage[message] == nil { r.extensionsByMessage[message] = make(extensionsByNumber) } r.extensionsByMessage[message][field] = xt r.numExtensions++ return nil } func (r *Types) register(kind string, desc protoreflect.Descriptor, typ interface{}) error { name := desc.FullName() prev := r.typesByName[name] if prev != nil { err := errors.New("%v %v is already registered", kind, name) err = amendErrorWithCaller(err, prev, typ) if !(r == GlobalTypes && ignoreConflict(desc, err)) { return err } } if r.typesByName == nil { r.typesByName = make(typesByName) } r.typesByName[name] = typ return nil } // FindEnumByName looks up an enum by its full name. // E.g., "google.protobuf.Field.Kind". // // This returns (nil, NotFound) if not found. func (r *Types) FindEnumByName(enum protoreflect.FullName) (protoreflect.EnumType, error) { if r == nil { return nil, NotFound } if r == GlobalTypes { globalMutex.RLock() defer globalMutex.RUnlock() } if v := r.typesByName[enum]; v != nil { if et, _ := v.(protoreflect.EnumType); et != nil { return et, nil } return nil, errors.New("found wrong type: got %v, want enum", typeName(v)) } return nil, NotFound } // FindMessageByName looks up a message by its full name, // e.g. "google.protobuf.Any". // // This returns (nil, NotFound) if not found. func (r *Types) FindMessageByName(message protoreflect.FullName) (protoreflect.MessageType, error) { if r == nil { return nil, NotFound } if r == GlobalTypes { globalMutex.RLock() defer globalMutex.RUnlock() } if v := r.typesByName[message]; v != nil { if mt, _ := v.(protoreflect.MessageType); mt != nil { return mt, nil } return nil, errors.New("found wrong type: got %v, want message", typeName(v)) } return nil, NotFound } // FindMessageByURL looks up a message by a URL identifier. // See documentation on google.protobuf.Any.type_url for the URL format. // // This returns (nil, NotFound) if not found. func (r *Types) FindMessageByURL(url string) (protoreflect.MessageType, error) { // This function is similar to FindMessageByName but // truncates anything before and including '/' in the URL. if r == nil { return nil, NotFound } if r == GlobalTypes { globalMutex.RLock() defer globalMutex.RUnlock() } message := protoreflect.FullName(url) if i := strings.LastIndexByte(url, '/'); i >= 0 { message = message[i+len("/"):] } if v := r.typesByName[message]; v != nil { if mt, _ := v.(protoreflect.MessageType); mt != nil { return mt, nil } return nil, errors.New("found wrong type: got %v, want message", typeName(v)) } return nil, NotFound } // FindExtensionByName looks up a extension field by the field's full name. // Note that this is the full name of the field as determined by // where the extension is declared and is unrelated to the full name of the // message being extended. // // This returns (nil, NotFound) if not found. func (r *Types) FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) { if r == nil { return nil, NotFound } if r == GlobalTypes { globalMutex.RLock() defer globalMutex.RUnlock() } if v := r.typesByName[field]; v != nil { if xt, _ := v.(protoreflect.ExtensionType); xt != nil { return xt, nil } // MessageSet extensions are special in that the name of the extension // is the name of the message type used to extend the MessageSet. // This naming scheme is used by text and JSON serialization. // // This feature is protected by the ProtoLegacy flag since MessageSets // are a proto1 feature that is long deprecated. if flags.ProtoLegacy { if _, ok := v.(protoreflect.MessageType); ok { field := field.Append(messageset.ExtensionName) if v := r.typesByName[field]; v != nil { if xt, _ := v.(protoreflect.ExtensionType); xt != nil { if messageset.IsMessageSetExtension(xt.TypeDescriptor()) { return xt, nil } } } } } return nil, errors.New("found wrong type: got %v, want extension", typeName(v)) } return nil, NotFound } // FindExtensionByNumber looks up a extension field by the field number // within some parent message, identified by full name. // // This returns (nil, NotFound) if not found. func (r *Types) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) { if r == nil { return nil, NotFound } if r == GlobalTypes { globalMutex.RLock() defer globalMutex.RUnlock() } if xt, ok := r.extensionsByMessage[message][field]; ok { return xt, nil } return nil, NotFound } // NumEnums reports the number of registered enums. func (r *Types) NumEnums() int { if r == nil { return 0 } if r == GlobalTypes { globalMutex.RLock() defer globalMutex.RUnlock() } return r.numEnums } // RangeEnums iterates over all registered enums while f returns true. // Iteration order is undefined. func (r *Types) RangeEnums(f func(protoreflect.EnumType) bool) { if r == nil { return } if r == GlobalTypes { globalMutex.RLock() defer globalMutex.RUnlock() } for _, typ := range r.typesByName { if et, ok := typ.(protoreflect.EnumType); ok { if !f(et) { return } } } } // NumMessages reports the number of registered messages. func (r *Types) NumMessages() int { if r == nil { return 0 } if r == GlobalTypes { globalMutex.RLock() defer globalMutex.RUnlock() } return r.numMessages } // RangeMessages iterates over all registered messages while f returns true. // Iteration order is undefined. func (r *Types) RangeMessages(f func(protoreflect.MessageType) bool) { if r == nil { return } if r == GlobalTypes { globalMutex.RLock() defer globalMutex.RUnlock() } for _, typ := range r.typesByName { if mt, ok := typ.(protoreflect.MessageType); ok { if !f(mt) { return } } } } // NumExtensions reports the number of registered extensions. func (r *Types) NumExtensions() int { if r == nil { return 0 } if r == GlobalTypes { globalMutex.RLock() defer globalMutex.RUnlock() } return r.numExtensions } // RangeExtensions iterates over all registered extensions while f returns true. // Iteration order is undefined. func (r *Types) RangeExtensions(f func(protoreflect.ExtensionType) bool) { if r == nil { return } if r == GlobalTypes { globalMutex.RLock() defer globalMutex.RUnlock() } for _, typ := range r.typesByName { if xt, ok := typ.(protoreflect.ExtensionType); ok { if !f(xt) { return } } } } // NumExtensionsByMessage reports the number of registered extensions for // a given message type. func (r *Types) NumExtensionsByMessage(message protoreflect.FullName) int { if r == nil { return 0 } if r == GlobalTypes { globalMutex.RLock() defer globalMutex.RUnlock() } return len(r.extensionsByMessage[message]) } // RangeExtensionsByMessage iterates over all registered extensions filtered // by a given message type while f returns true. Iteration order is undefined. func (r *Types) RangeExtensionsByMessage(message protoreflect.FullName, f func(protoreflect.ExtensionType) bool) { if r == nil { return } if r == GlobalTypes { globalMutex.RLock() defer globalMutex.RUnlock() } for _, xt := range r.extensionsByMessage[message] { if !f(xt) { return } } } func typeName(t interface{}) string { switch t.(type) { case protoreflect.EnumType: return "enum" case protoreflect.MessageType: return "message" case protoreflect.ExtensionType: return "extension" default: return fmt.Sprintf("%T", t) } } func amendErrorWithCaller(err error, prev, curr interface{}) error { prevPkg := goPackage(prev) currPkg := goPackage(curr) if prevPkg == "" || currPkg == "" || prevPkg == currPkg { return err } return errors.New("%s\n\tpreviously from: %q\n\tcurrently from: %q", err, prevPkg, currPkg) } func goPackage(v interface{}) string { switch d := v.(type) { case protoreflect.EnumType: v = d.Descriptor() case protoreflect.MessageType: v = d.Descriptor() case protoreflect.ExtensionType: v = d.TypeDescriptor() } if d, ok := v.(protoreflect.Descriptor); ok { v = d.ParentFile() } if d, ok := v.(interface{ GoPackagePath() string }); ok { return d.GoPackagePath() } return "" } golang-google-protobuf-1.27.1/reflect/protoregistry/registry_test.go000066400000000000000000000463621411250152500260060ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protoregistry_test import ( "fmt" "strings" "testing" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "google.golang.org/protobuf/encoding/prototext" pimpl "google.golang.org/protobuf/internal/impl" pdesc "google.golang.org/protobuf/reflect/protodesc" pref "google.golang.org/protobuf/reflect/protoreflect" preg "google.golang.org/protobuf/reflect/protoregistry" testpb "google.golang.org/protobuf/internal/testprotos/registry" "google.golang.org/protobuf/types/descriptorpb" ) func mustMakeFile(s string) pref.FileDescriptor { pb := new(descriptorpb.FileDescriptorProto) if err := prototext.Unmarshal([]byte(s), pb); err != nil { panic(err) } fd, err := pdesc.NewFile(pb, nil) if err != nil { panic(err) } return fd } func TestFiles(t *testing.T) { type ( file struct { Path string Pkg pref.FullName } testFile struct { inFile pref.FileDescriptor wantErr string } testFindDesc struct { inName pref.FullName wantFound bool } testRangePkg struct { inPkg pref.FullName wantFiles []file } testFindPath struct { inPath string wantFiles []file wantErr string } ) tests := []struct { files []testFile findDescs []testFindDesc rangePkgs []testRangePkg findPaths []testFindPath }{{ // Test that overlapping packages and files are permitted. files: []testFile{ {inFile: mustMakeFile(`syntax:"proto2" name:"test1.proto" package:"foo.bar"`)}, {inFile: mustMakeFile(`syntax:"proto2" name:"foo/bar/test.proto" package:"my.test"`)}, {inFile: mustMakeFile(`syntax:"proto2" name:"foo/bar/test.proto" package:"foo.bar.baz"`), wantErr: "already registered"}, {inFile: mustMakeFile(`syntax:"proto2" name:"test2.proto" package:"my.test.package"`)}, {inFile: mustMakeFile(`syntax:"proto2" name:"weird" package:"foo.bar"`)}, {inFile: mustMakeFile(`syntax:"proto2" name:"foo/bar/baz/../test.proto" package:"my.test"`)}, }, rangePkgs: []testRangePkg{{ inPkg: "nothing", }, { inPkg: "", }, { inPkg: ".", }, { inPkg: "foo", }, { inPkg: "foo.", }, { inPkg: "foo..", }, { inPkg: "foo.bar", wantFiles: []file{ {"test1.proto", "foo.bar"}, {"weird", "foo.bar"}, }, }, { inPkg: "my.test", wantFiles: []file{ {"foo/bar/baz/../test.proto", "my.test"}, {"foo/bar/test.proto", "my.test"}, }, }, { inPkg: "fo", }}, findPaths: []testFindPath{{ inPath: "nothing", wantErr: "not found", }, { inPath: "weird", wantFiles: []file{ {"weird", "foo.bar"}, }, }, { inPath: "foo/bar/test.proto", wantFiles: []file{ {"foo/bar/test.proto", "my.test"}, }, }}, }, { // Test when new enum conflicts with existing package. files: []testFile{{ inFile: mustMakeFile(`syntax:"proto2" name:"test1a.proto" package:"foo.bar.baz"`), }, { inFile: mustMakeFile(`syntax:"proto2" name:"test1b.proto" enum_type:[{name:"foo" value:[{name:"VALUE" number:0}]}]`), wantErr: `file "test1b.proto" has a name conflict over foo`, }}, }, { // Test when new package conflicts with existing enum. files: []testFile{{ inFile: mustMakeFile(`syntax:"proto2" name:"test2a.proto" enum_type:[{name:"foo" value:[{name:"VALUE" number:0}]}]`), }, { inFile: mustMakeFile(`syntax:"proto2" name:"test2b.proto" package:"foo.bar.baz"`), wantErr: `file "test2b.proto" has a package name conflict over foo`, }}, }, { // Test when new enum conflicts with existing enum in same package. files: []testFile{{ inFile: mustMakeFile(`syntax:"proto2" name:"test3a.proto" package:"foo" enum_type:[{name:"BAR" value:[{name:"VALUE" number:0}]}]`), }, { inFile: mustMakeFile(`syntax:"proto2" name:"test3b.proto" package:"foo" enum_type:[{name:"BAR" value:[{name:"VALUE2" number:0}]}]`), wantErr: `file "test3b.proto" has a name conflict over foo.BAR`, }}, }, { files: []testFile{{ inFile: mustMakeFile(` syntax: "proto2" name: "test1.proto" package: "fizz.buzz" message_type: [{ name: "Message" field: [ {name:"Field" number:1 label:LABEL_OPTIONAL type:TYPE_STRING oneof_index:0} ] oneof_decl: [{name:"Oneof"}] extension_range: [{start:1000 end:2000}] enum_type: [ {name:"Enum" value:[{name:"EnumValue" number:0}]} ] nested_type: [ {name:"Message" field:[{name:"Field" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}]} ] extension: [ {name:"Extension" number:1001 label:LABEL_OPTIONAL type:TYPE_STRING extendee:".fizz.buzz.Message"} ] }] enum_type: [{ name: "Enum" value: [{name:"EnumValue" number:0}] }] extension: [ {name:"Extension" number:1000 label:LABEL_OPTIONAL type:TYPE_STRING extendee:".fizz.buzz.Message"} ] service: [{ name: "Service" method: [{ name: "Method" input_type: ".fizz.buzz.Message" output_type: ".fizz.buzz.Message" client_streaming: true server_streaming: true }] }] `), }, { inFile: mustMakeFile(` syntax: "proto2" name: "test2.proto" package: "fizz.buzz.gazz" enum_type: [{ name: "Enum" value: [{name:"EnumValue" number:0}] }] `), }, { inFile: mustMakeFile(` syntax: "proto2" name: "test3.proto" package: "fizz.buzz" enum_type: [{ name: "Enum1" value: [{name:"EnumValue1" number:0}] }, { name: "Enum2" value: [{name:"EnumValue2" number:0}] }] `), }, { // Make sure we can register without package name. inFile: mustMakeFile(` name: "weird" syntax: "proto2" message_type: [{ name: "Message" nested_type: [{ name: "Message" nested_type: [{ name: "Message" }] }] }] `), }}, findDescs: []testFindDesc{ {inName: "fizz.buzz.message", wantFound: false}, {inName: "fizz.buzz.Message", wantFound: true}, {inName: "fizz.buzz.Message.X", wantFound: false}, {inName: "fizz.buzz.Field", wantFound: false}, {inName: "fizz.buzz.Oneof", wantFound: false}, {inName: "fizz.buzz.Message.Field", wantFound: true}, {inName: "fizz.buzz.Message.Field.X", wantFound: false}, {inName: "fizz.buzz.Message.Oneof", wantFound: true}, {inName: "fizz.buzz.Message.Oneof.X", wantFound: false}, {inName: "fizz.buzz.Message.Message", wantFound: true}, {inName: "fizz.buzz.Message.Message.X", wantFound: false}, {inName: "fizz.buzz.Message.Enum", wantFound: true}, {inName: "fizz.buzz.Message.Enum.X", wantFound: false}, {inName: "fizz.buzz.Message.EnumValue", wantFound: true}, {inName: "fizz.buzz.Message.EnumValue.X", wantFound: false}, {inName: "fizz.buzz.Message.Extension", wantFound: true}, {inName: "fizz.buzz.Message.Extension.X", wantFound: false}, {inName: "fizz.buzz.enum", wantFound: false}, {inName: "fizz.buzz.Enum", wantFound: true}, {inName: "fizz.buzz.Enum.X", wantFound: false}, {inName: "fizz.buzz.EnumValue", wantFound: true}, {inName: "fizz.buzz.EnumValue.X", wantFound: false}, {inName: "fizz.buzz.Enum.EnumValue", wantFound: false}, {inName: "fizz.buzz.Extension", wantFound: true}, {inName: "fizz.buzz.Extension.X", wantFound: false}, {inName: "fizz.buzz.service", wantFound: false}, {inName: "fizz.buzz.Service", wantFound: true}, {inName: "fizz.buzz.Service.X", wantFound: false}, {inName: "fizz.buzz.Method", wantFound: false}, {inName: "fizz.buzz.Service.Method", wantFound: true}, {inName: "fizz.buzz.Service.Method.X", wantFound: false}, {inName: "fizz.buzz.gazz", wantFound: false}, {inName: "fizz.buzz.gazz.Enum", wantFound: true}, {inName: "fizz.buzz.gazz.EnumValue", wantFound: true}, {inName: "fizz.buzz.gazz.Enum.EnumValue", wantFound: false}, {inName: "fizz.buzz", wantFound: false}, {inName: "fizz.buzz.Enum1", wantFound: true}, {inName: "fizz.buzz.EnumValue1", wantFound: true}, {inName: "fizz.buzz.Enum1.EnumValue1", wantFound: false}, {inName: "fizz.buzz.Enum2", wantFound: true}, {inName: "fizz.buzz.EnumValue2", wantFound: true}, {inName: "fizz.buzz.Enum2.EnumValue2", wantFound: false}, {inName: "fizz.buzz.Enum3", wantFound: false}, {inName: "", wantFound: false}, {inName: "Message", wantFound: true}, {inName: "Message.Message", wantFound: true}, {inName: "Message.Message.Message", wantFound: true}, {inName: "Message.Message.Message.Message", wantFound: false}, }, }} sortFiles := cmpopts.SortSlices(func(x, y file) bool { return x.Path < y.Path || (x.Path == y.Path && x.Pkg < y.Pkg) }) for _, tt := range tests { t.Run("", func(t *testing.T) { var files preg.Files for i, tc := range tt.files { gotErr := files.RegisterFile(tc.inFile) if ((gotErr == nil) != (tc.wantErr == "")) || !strings.Contains(fmt.Sprint(gotErr), tc.wantErr) { t.Errorf("file %d, Register() = %v, want %v", i, gotErr, tc.wantErr) } } for _, tc := range tt.findDescs { d, _ := files.FindDescriptorByName(tc.inName) gotFound := d != nil if gotFound != tc.wantFound { t.Errorf("FindDescriptorByName(%v) find mismatch: got %v, want %v", tc.inName, gotFound, tc.wantFound) } } for _, tc := range tt.rangePkgs { var gotFiles []file var gotCnt int wantCnt := files.NumFilesByPackage(tc.inPkg) files.RangeFilesByPackage(tc.inPkg, func(fd pref.FileDescriptor) bool { gotFiles = append(gotFiles, file{fd.Path(), fd.Package()}) gotCnt++ return true }) if gotCnt != wantCnt { t.Errorf("NumFilesByPackage(%v) = %v, want %v", tc.inPkg, gotCnt, wantCnt) } if diff := cmp.Diff(tc.wantFiles, gotFiles, sortFiles); diff != "" { t.Errorf("RangeFilesByPackage(%v) mismatch (-want +got):\n%v", tc.inPkg, diff) } } for _, tc := range tt.findPaths { var gotFiles []file fd, gotErr := files.FindFileByPath(tc.inPath) if gotErr == nil { gotFiles = append(gotFiles, file{fd.Path(), fd.Package()}) } if ((gotErr == nil) != (tc.wantErr == "")) || !strings.Contains(fmt.Sprint(gotErr), tc.wantErr) { t.Errorf("FindFileByPath(%v) = %v, want %v", tc.inPath, gotErr, tc.wantErr) } if diff := cmp.Diff(tc.wantFiles, gotFiles, sortFiles); diff != "" { t.Errorf("FindFileByPath(%v) mismatch (-want +got):\n%v", tc.inPath, diff) } } }) } } func TestTypes(t *testing.T) { mt1 := pimpl.Export{}.MessageTypeOf(&testpb.Message1{}) et1 := pimpl.Export{}.EnumTypeOf(testpb.Enum1_ONE) xt1 := testpb.E_StringField xt2 := testpb.E_Message4_MessageField registry := new(preg.Types) if err := registry.RegisterMessage(mt1); err != nil { t.Fatalf("registry.RegisterMessage(%v) returns unexpected error: %v", mt1.Descriptor().FullName(), err) } if err := registry.RegisterEnum(et1); err != nil { t.Fatalf("registry.RegisterEnum(%v) returns unexpected error: %v", et1.Descriptor().FullName(), err) } if err := registry.RegisterExtension(xt1); err != nil { t.Fatalf("registry.RegisterExtension(%v) returns unexpected error: %v", xt1.TypeDescriptor().FullName(), err) } if err := registry.RegisterExtension(xt2); err != nil { t.Fatalf("registry.RegisterExtension(%v) returns unexpected error: %v", xt2.TypeDescriptor().FullName(), err) } t.Run("FindMessageByName", func(t *testing.T) { tests := []struct { name string messageType pref.MessageType wantErr bool wantNotFound bool }{{ name: "testprotos.Message1", messageType: mt1, }, { name: "testprotos.NoSuchMessage", wantErr: true, wantNotFound: true, }, { name: "testprotos.Enum1", wantErr: true, }, { name: "testprotos.Enum2", wantErr: true, }, { name: "testprotos.Enum3", wantErr: true, }} for _, tc := range tests { got, err := registry.FindMessageByName(pref.FullName(tc.name)) gotErr := err != nil if gotErr != tc.wantErr { t.Errorf("FindMessageByName(%v) = (_, %v), want error? %t", tc.name, err, tc.wantErr) continue } if tc.wantNotFound && err != preg.NotFound { t.Errorf("FindMessageByName(%v) got error: %v, want NotFound error", tc.name, err) continue } if got != tc.messageType { t.Errorf("FindMessageByName(%v) got wrong value: %v", tc.name, got) } } }) t.Run("FindMessageByURL", func(t *testing.T) { tests := []struct { name string messageType pref.MessageType wantErr bool wantNotFound bool }{{ name: "testprotos.Message1", messageType: mt1, }, { name: "type.googleapis.com/testprotos.Nada", wantErr: true, wantNotFound: true, }, { name: "testprotos.Enum1", wantErr: true, }} for _, tc := range tests { got, err := registry.FindMessageByURL(tc.name) gotErr := err != nil if gotErr != tc.wantErr { t.Errorf("FindMessageByURL(%v) = (_, %v), want error? %t", tc.name, err, tc.wantErr) continue } if tc.wantNotFound && err != preg.NotFound { t.Errorf("FindMessageByURL(%v) got error: %v, want NotFound error", tc.name, err) continue } if got != tc.messageType { t.Errorf("FindMessageByURL(%v) got wrong value: %v", tc.name, got) } } }) t.Run("FindEnumByName", func(t *testing.T) { tests := []struct { name string enumType pref.EnumType wantErr bool wantNotFound bool }{{ name: "testprotos.Enum1", enumType: et1, }, { name: "testprotos.None", wantErr: true, wantNotFound: true, }, { name: "testprotos.Message1", wantErr: true, }} for _, tc := range tests { got, err := registry.FindEnumByName(pref.FullName(tc.name)) gotErr := err != nil if gotErr != tc.wantErr { t.Errorf("FindEnumByName(%v) = (_, %v), want error? %t", tc.name, err, tc.wantErr) continue } if tc.wantNotFound && err != preg.NotFound { t.Errorf("FindEnumByName(%v) got error: %v, want NotFound error", tc.name, err) continue } if got != tc.enumType { t.Errorf("FindEnumByName(%v) got wrong value: %v", tc.name, got) } } }) t.Run("FindExtensionByName", func(t *testing.T) { tests := []struct { name string extensionType pref.ExtensionType wantErr bool wantNotFound bool }{{ name: "testprotos.string_field", extensionType: xt1, }, { name: "testprotos.Message4.message_field", extensionType: xt2, }, { name: "testprotos.None", wantErr: true, wantNotFound: true, }, { name: "testprotos.Message1", wantErr: true, }} for _, tc := range tests { got, err := registry.FindExtensionByName(pref.FullName(tc.name)) gotErr := err != nil if gotErr != tc.wantErr { t.Errorf("FindExtensionByName(%v) = (_, %v), want error? %t", tc.name, err, tc.wantErr) continue } if tc.wantNotFound && err != preg.NotFound { t.Errorf("FindExtensionByName(%v) got error: %v, want NotFound error", tc.name, err) continue } if got != tc.extensionType { t.Errorf("FindExtensionByName(%v) got wrong value: %v", tc.name, got) } } }) t.Run("FindExtensionByNumber", func(t *testing.T) { tests := []struct { parent string number int32 extensionType pref.ExtensionType wantErr bool wantNotFound bool }{{ parent: "testprotos.Message1", number: 11, extensionType: xt1, }, { parent: "testprotos.Message1", number: 13, wantErr: true, wantNotFound: true, }, { parent: "testprotos.Message1", number: 21, extensionType: xt2, }, { parent: "testprotos.Message1", number: 23, wantErr: true, wantNotFound: true, }, { parent: "testprotos.NoSuchMessage", number: 11, wantErr: true, wantNotFound: true, }, { parent: "testprotos.Message1", number: 30, wantErr: true, wantNotFound: true, }, { parent: "testprotos.Message1", number: 99, wantErr: true, wantNotFound: true, }} for _, tc := range tests { got, err := registry.FindExtensionByNumber(pref.FullName(tc.parent), pref.FieldNumber(tc.number)) gotErr := err != nil if gotErr != tc.wantErr { t.Errorf("FindExtensionByNumber(%v, %d) = (_, %v), want error? %t", tc.parent, tc.number, err, tc.wantErr) continue } if tc.wantNotFound && err != preg.NotFound { t.Errorf("FindExtensionByNumber(%v, %d) got error %v, want NotFound error", tc.parent, tc.number, err) continue } if got != tc.extensionType { t.Errorf("FindExtensionByNumber(%v, %d) got wrong value: %v", tc.parent, tc.number, got) } } }) sortTypes := cmp.Options{ cmpopts.SortSlices(func(x, y pref.EnumType) bool { return x.Descriptor().FullName() < y.Descriptor().FullName() }), cmpopts.SortSlices(func(x, y pref.MessageType) bool { return x.Descriptor().FullName() < y.Descriptor().FullName() }), cmpopts.SortSlices(func(x, y pref.ExtensionType) bool { return x.TypeDescriptor().FullName() < y.TypeDescriptor().FullName() }), } compare := cmp.Options{ cmp.Comparer(func(x, y pref.EnumType) bool { return x == y }), cmp.Comparer(func(x, y pref.ExtensionType) bool { return x == y }), cmp.Comparer(func(x, y pref.MessageType) bool { return x == y }), } t.Run("RangeEnums", func(t *testing.T) { want := []pref.EnumType{et1} var got []pref.EnumType var gotCnt int wantCnt := registry.NumEnums() registry.RangeEnums(func(et pref.EnumType) bool { got = append(got, et) gotCnt++ return true }) if gotCnt != wantCnt { t.Errorf("NumEnums() = %v, want %v", gotCnt, wantCnt) } if diff := cmp.Diff(want, got, sortTypes, compare); diff != "" { t.Errorf("RangeEnums() mismatch (-want +got):\n%v", diff) } }) t.Run("RangeMessages", func(t *testing.T) { want := []pref.MessageType{mt1} var got []pref.MessageType var gotCnt int wantCnt := registry.NumMessages() registry.RangeMessages(func(mt pref.MessageType) bool { got = append(got, mt) gotCnt++ return true }) if gotCnt != wantCnt { t.Errorf("NumMessages() = %v, want %v", gotCnt, wantCnt) } if diff := cmp.Diff(want, got, sortTypes, compare); diff != "" { t.Errorf("RangeMessages() mismatch (-want +got):\n%v", diff) } }) t.Run("RangeExtensions", func(t *testing.T) { want := []pref.ExtensionType{xt1, xt2} var got []pref.ExtensionType var gotCnt int wantCnt := registry.NumExtensions() registry.RangeExtensions(func(xt pref.ExtensionType) bool { got = append(got, xt) gotCnt++ return true }) if gotCnt != wantCnt { t.Errorf("NumExtensions() = %v, want %v", gotCnt, wantCnt) } if diff := cmp.Diff(want, got, sortTypes, compare); diff != "" { t.Errorf("RangeExtensions() mismatch (-want +got):\n%v", diff) } }) t.Run("RangeExtensionsByMessage", func(t *testing.T) { want := []pref.ExtensionType{xt1, xt2} var got []pref.ExtensionType var gotCnt int wantCnt := registry.NumExtensionsByMessage("testprotos.Message1") registry.RangeExtensionsByMessage("testprotos.Message1", func(xt pref.ExtensionType) bool { got = append(got, xt) gotCnt++ return true }) if gotCnt != wantCnt { t.Errorf("NumExtensionsByMessage() = %v, want %v", gotCnt, wantCnt) } if diff := cmp.Diff(want, got, sortTypes, compare); diff != "" { t.Errorf("RangeExtensionsByMessage() mismatch (-want +got):\n%v", diff) } }) } golang-google-protobuf-1.27.1/regenerate.bash000077500000000000000000000004511411250152500211400ustar00rootroot00000000000000#!/bin/bash # Copyright 2018 The Go Authors. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. cd "$(git rev-parse --show-toplevel)" go test -v -mod=vendor -timeout=60m -count=1 integration_test.go "$@" -regenerate exit $? golang-google-protobuf-1.27.1/release.bash000077500000000000000000000075361411250152500204520ustar00rootroot00000000000000#!/bin/bash # Copyright 2019 The Go Authors. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. cd "$(git rev-parse --show-toplevel)" read -p "What is the next release version (e.g., 'v1.26.0')? " VERSION SEMVER_REGEX='^v\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([.a-zA-Z0-9A-Z-]*\)$' if ! [[ -z $(echo $VERSION | sed -e "s/$SEMVER_REGEX//") ]]; then echo; echo "invalid: must be a semver string"; exit 1 fi VERSION_MAJOR=$(echo $VERSION | sed -e "s/$SEMVER_REGEX/\1/") VERSION_MINOR=$(echo $VERSION | sed -e "s/$SEMVER_REGEX/\2/") VERSION_PATCH=$(echo $VERSION | sed -e "s/$SEMVER_REGEX/\3/") VERSION_PRERELEASE=$(echo $VERSION | sed -e "s/$SEMVER_REGEX/\4/") if ! [[ "$VERSION_MAJOR" =~ ^1$ ]]; then echo; echo "invalid: major version must be 1"; exit 1 fi if ! [[ -z $VERSION_PRERELEASE ]] && ! [[ "$VERSION_PRERELEASE" =~ ^-rc[.][0-9]+$ ]]; then echo; echo "invalid: pre-release suffix must be empty or '-rc.X'"; exit 1 fi VERSION_PRERELEASE=${VERSION_PRERELEASE#"-"} # trim possible leading dash function version_string() { VERSION_STRING="v${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" if ! [[ -z $VERSION_PRERELEASE ]]; then VERSION_STRING="${VERSION_STRING}-${VERSION_PRERELEASE}" fi echo $VERSION_STRING } read -p "Were there any changes to the generator that relies on new runtime functionality? " YN case $YN in [Yy]* ) read -p " What minor version of the runtime is required now? " GEN_VERSION if ! [[ "$GEN_VERSION" =~ ^[0-9]+$ ]]; then echo; echo "invalid: must be an integer"; exit 1; fi;; [Nn]* ) ;; * ) echo; echo "invalid: must be 'yes' or 'no'"; exit 1;; esac read -p "Were there any dropped functionality in the runtime for old generated code? " YN case $YN in [Yy]* ) read -p " What minor version of the runtime is required now? " MIN_VERSION if ! [[ "$MIN_VERSION" =~ ^[0-9]+$ ]]; then echo; echo "invalid: must be an integer"; exit 1; fi;; [Nn]* ) ;; * ) echo; echo "invalid: must be 'yes' or 'no'"; exit 1;; esac echo echo "Preparing changes to release $(version_string)." echo set -e # Create a new branch to contain the release changes. if [[ $(git branch --list release) ]]; then echo "error: release branch already exists"; exit 1 fi git change release git sync # Create commit for actual release. INPLACE='-i ""' # BSD version of sed expects argument after -i if [[ "$(sed --version)" == *"GNU"* ]]; then INPLACE="-i" # GNU version of sed does not expect argument after -i fi sed $INPLACE -e "s/\(Minor *= *\)[0-9]*/\1$VERSION_MINOR/" internal/version/version.go sed $INPLACE -e "s/\(Patch *= *\)[0-9]*/\1$VERSION_PATCH/" internal/version/version.go sed $INPLACE -e "s/\(PreRelease *= *\)\"[^\"]*\"/\1\"$VERSION_PRERELEASE\"/" internal/version/version.go if ! [[ -z $GEN_VERSION ]]; then sed $INPLACE -e "s/\(GenVersion *= *\)[0-9]*/\1$GEN_VERSION/" runtime/protoimpl/version.go fi if ! [[ -z $MIN_VERSION ]]; then sed $INPLACE -e "s/\(MinVersion *= *\)[0-9]*/\1$MIN_VERSION/" runtime/protoimpl/version.go fi git commit -a -m "all: release $(version_string)" # Build release binaries. go test -mod=vendor -timeout=60m -count=1 integration_test.go "$@" -buildRelease # Create commit to start development after release. VERSION_PRERELEASE="${VERSION_PRERELEASE}.devel" # append ".devel" VERSION_PRERELEASE="${VERSION_PRERELEASE#"."}" # trim possible leading "." sed $INPLACE -e "s/\(PreRelease *= *\)\"[^\"]*\"/\1\"$VERSION_PRERELEASE\"/" internal/version/version.go git commit -a -m "all: start $(version_string)" echo echo "Release changes prepared. Additional steps:" echo " 1) Submit the changes:" echo " a. Mail out the changes: git mail HEAD" echo " b. Request a review on the changes and merge them." echo " 2) Tag a new release on GitHub:" echo " a. Write release notes highlighting notable changes." echo " b. Attach pre-compiled binaries as assets to the release." echo golang-google-protobuf-1.27.1/runtime/000077500000000000000000000000001411250152500176405ustar00rootroot00000000000000golang-google-protobuf-1.27.1/runtime/protoiface/000077500000000000000000000000001411250152500217735ustar00rootroot00000000000000golang-google-protobuf-1.27.1/runtime/protoiface/legacy.go000066400000000000000000000005011411250152500235620ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protoiface type MessageV1 interface { Reset() String() string ProtoMessage() } type ExtensionRangeV1 struct { Start, End int32 // both inclusive } golang-google-protobuf-1.27.1/runtime/protoiface/methods.go000066400000000000000000000116111411250152500237650ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package protoiface contains types referenced or implemented by messages. // // WARNING: This package should only be imported by message implementations. // The functionality found in this package should be accessed through // higher-level abstractions provided by the proto package. package protoiface import ( "google.golang.org/protobuf/internal/pragma" "google.golang.org/protobuf/reflect/protoreflect" ) // Methods is a set of optional fast-path implementations of various operations. type Methods = struct { pragma.NoUnkeyedLiterals // Flags indicate support for optional features. Flags SupportFlags // Size returns the size in bytes of the wire-format encoding of a message. // Marshal must be provided if a custom Size is provided. Size func(SizeInput) SizeOutput // Marshal formats a message in the wire-format encoding to the provided buffer. // Size should be provided if a custom Marshal is provided. // It must not return an error for a partial message. Marshal func(MarshalInput) (MarshalOutput, error) // Unmarshal parses the wire-format encoding and merges the result into a message. // It must not reset the target message or return an error for a partial message. Unmarshal func(UnmarshalInput) (UnmarshalOutput, error) // Merge merges the contents of a source message into a destination message. Merge func(MergeInput) MergeOutput // CheckInitialized returns an error if any required fields in the message are not set. CheckInitialized func(CheckInitializedInput) (CheckInitializedOutput, error) } // SupportFlags indicate support for optional features. type SupportFlags = uint64 const ( // SupportMarshalDeterministic reports whether MarshalOptions.Deterministic is supported. SupportMarshalDeterministic SupportFlags = 1 << iota // SupportUnmarshalDiscardUnknown reports whether UnmarshalOptions.DiscardUnknown is supported. SupportUnmarshalDiscardUnknown ) // SizeInput is input to the Size method. type SizeInput = struct { pragma.NoUnkeyedLiterals Message protoreflect.Message Flags MarshalInputFlags } // SizeOutput is output from the Size method. type SizeOutput = struct { pragma.NoUnkeyedLiterals Size int } // MarshalInput is input to the Marshal method. type MarshalInput = struct { pragma.NoUnkeyedLiterals Message protoreflect.Message Buf []byte // output is appended to this buffer Flags MarshalInputFlags } // MarshalOutput is output from the Marshal method. type MarshalOutput = struct { pragma.NoUnkeyedLiterals Buf []byte // contains marshaled message } // MarshalInputFlags configure the marshaler. // Most flags correspond to fields in proto.MarshalOptions. type MarshalInputFlags = uint8 const ( MarshalDeterministic MarshalInputFlags = 1 << iota MarshalUseCachedSize ) // UnmarshalInput is input to the Unmarshal method. type UnmarshalInput = struct { pragma.NoUnkeyedLiterals Message protoreflect.Message Buf []byte // input buffer Flags UnmarshalInputFlags Resolver interface { FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) } } // UnmarshalOutput is output from the Unmarshal method. type UnmarshalOutput = struct { pragma.NoUnkeyedLiterals Flags UnmarshalOutputFlags } // UnmarshalInputFlags configure the unmarshaler. // Most flags correspond to fields in proto.UnmarshalOptions. type UnmarshalInputFlags = uint8 const ( UnmarshalDiscardUnknown UnmarshalInputFlags = 1 << iota ) // UnmarshalOutputFlags are output from the Unmarshal method. type UnmarshalOutputFlags = uint8 const ( // UnmarshalInitialized may be set on return if all required fields are known to be set. // If unset, then it does not necessarily indicate that the message is uninitialized, // only that its status could not be confirmed. UnmarshalInitialized UnmarshalOutputFlags = 1 << iota ) // MergeInput is input to the Merge method. type MergeInput = struct { pragma.NoUnkeyedLiterals Source protoreflect.Message Destination protoreflect.Message } // MergeOutput is output from the Merge method. type MergeOutput = struct { pragma.NoUnkeyedLiterals Flags MergeOutputFlags } // MergeOutputFlags are output from the Merge method. type MergeOutputFlags = uint8 const ( // MergeComplete reports whether the merge was performed. // If unset, the merger must have made no changes to the destination. MergeComplete MergeOutputFlags = 1 << iota ) // CheckInitializedInput is input to the CheckInitialized method. type CheckInitializedInput = struct { pragma.NoUnkeyedLiterals Message protoreflect.Message } // CheckInitializedOutput is output from the CheckInitialized method. type CheckInitializedOutput = struct { pragma.NoUnkeyedLiterals } golang-google-protobuf-1.27.1/runtime/protoimpl/000077500000000000000000000000001411250152500216655ustar00rootroot00000000000000golang-google-protobuf-1.27.1/runtime/protoimpl/impl.go000066400000000000000000000027121411250152500231570ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package protoimpl contains the default implementation for messages // generated by protoc-gen-go. // // WARNING: This package should only ever be imported by generated messages. // The compatibility agreement covers nothing except for functionality needed // to keep existing generated messages operational. Breakages that occur due // to unauthorized usages of this package are not the author's responsibility. package protoimpl import ( "google.golang.org/protobuf/internal/filedesc" "google.golang.org/protobuf/internal/filetype" "google.golang.org/protobuf/internal/impl" ) // UnsafeEnabled specifies whether package unsafe can be used. const UnsafeEnabled = impl.UnsafeEnabled type ( // Types used by generated code in init functions. DescBuilder = filedesc.Builder TypeBuilder = filetype.Builder // Types used by generated code to implement EnumType, MessageType, and ExtensionType. EnumInfo = impl.EnumInfo MessageInfo = impl.MessageInfo ExtensionInfo = impl.ExtensionInfo // Types embedded in generated messages. MessageState = impl.MessageState SizeCache = impl.SizeCache WeakFields = impl.WeakFields UnknownFields = impl.UnknownFields ExtensionFields = impl.ExtensionFields ExtensionFieldV1 = impl.ExtensionField Pointer = impl.Pointer ) var X impl.Export golang-google-protobuf-1.27.1/runtime/protoimpl/version.go000066400000000000000000000037361411250152500237120ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protoimpl import ( "google.golang.org/protobuf/internal/version" ) const ( // MaxVersion is the maximum supported version for generated .pb.go files. // It is always the current version of the module. MaxVersion = version.Minor // GenVersion is the runtime version required by generated .pb.go files. // This is incremented when generated code relies on new functionality // in the runtime. GenVersion = 20 // MinVersion is the minimum supported version for generated .pb.go files. // This is incremented when the runtime drops support for old code. MinVersion = 0 ) // EnforceVersion is used by code generated by protoc-gen-go // to statically enforce minimum and maximum versions of this package. // A compilation failure implies either that: // * the runtime package is too old and needs to be updated OR // * the generated code is too old and needs to be regenerated. // // The runtime package can be upgraded by running: // go get google.golang.org/protobuf // // The generated code can be regenerated by running: // protoc --go_out=${PROTOC_GEN_GO_ARGS} ${PROTO_FILES} // // Example usage by generated code: // const ( // // Verify that this generated code is sufficiently up-to-date. // _ = protoimpl.EnforceVersion(genVersion - protoimpl.MinVersion) // // Verify that runtime/protoimpl is sufficiently up-to-date. // _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - genVersion) // ) // // The genVersion is the current minor version used to generated the code. // This compile-time check relies on negative integer overflow of a uint // being a compilation failure (guaranteed by the Go specification). type EnforceVersion uint // This enforces the following invariant: // MinVersion ≤ GenVersion ≤ MaxVersion const ( _ = EnforceVersion(GenVersion - MinVersion) _ = EnforceVersion(MaxVersion - GenVersion) ) golang-google-protobuf-1.27.1/test.bash000077500000000000000000000004471411250152500200030ustar00rootroot00000000000000#!/bin/bash # Copyright 2018 The Go Authors. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. cd "$(git rev-parse --show-toplevel)" go test -v -mod=vendor -timeout=60m -count=1 integration_test.go -failfast "$@" exit $? golang-google-protobuf-1.27.1/testing/000077500000000000000000000000001411250152500176325ustar00rootroot00000000000000golang-google-protobuf-1.27.1/testing/protocmp/000077500000000000000000000000001411250152500214755ustar00rootroot00000000000000golang-google-protobuf-1.27.1/testing/protocmp/reflect.go000066400000000000000000000156631411250152500234630ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protocmp import ( "reflect" "sort" "strconv" "strings" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/runtime/protoiface" ) func reflectValueOf(v interface{}) protoreflect.Value { switch v := v.(type) { case Enum: return protoreflect.ValueOfEnum(v.Number()) case Message: return protoreflect.ValueOfMessage(v.ProtoReflect()) case []byte: return protoreflect.ValueOfBytes(v) // avoid overlap with reflect.Slice check below default: switch rv := reflect.ValueOf(v); { case rv.Kind() == reflect.Slice: return protoreflect.ValueOfList(reflectList{rv}) case rv.Kind() == reflect.Map: return protoreflect.ValueOfMap(reflectMap{rv}) default: return protoreflect.ValueOf(v) } } } type reflectMessage Message func (m reflectMessage) stringKey(fd protoreflect.FieldDescriptor) string { if m.Descriptor() != fd.ContainingMessage() { panic("mismatching containing message") } return fd.TextName() } func (m reflectMessage) Descriptor() protoreflect.MessageDescriptor { return (Message)(m).Descriptor() } func (m reflectMessage) Type() protoreflect.MessageType { return reflectMessageType{m.Descriptor()} } func (m reflectMessage) New() protoreflect.Message { return m.Type().New() } func (m reflectMessage) Interface() protoreflect.ProtoMessage { return Message(m) } func (m reflectMessage) Range(f func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool) { // Range over populated known fields. fds := m.Descriptor().Fields() for i := 0; i < fds.Len(); i++ { fd := fds.Get(i) if m.Has(fd) && !f(fd, m.Get(fd)) { return } } // Range over populated extension fields. for _, xd := range m[messageTypeKey].(messageType).xds { if m.Has(xd) && !f(xd, m.Get(xd)) { return } } } func (m reflectMessage) Has(fd protoreflect.FieldDescriptor) bool { _, ok := m[m.stringKey(fd)] return ok } func (m reflectMessage) Clear(protoreflect.FieldDescriptor) { panic("invalid mutation of read-only message") } func (m reflectMessage) Get(fd protoreflect.FieldDescriptor) protoreflect.Value { v, ok := m[m.stringKey(fd)] if !ok { switch { case fd.IsList(): return protoreflect.ValueOfList(reflectList{}) case fd.IsMap(): return protoreflect.ValueOfMap(reflectMap{}) case fd.Message() != nil: return protoreflect.ValueOfMessage(reflectMessage{ messageTypeKey: messageType{md: m.Descriptor()}, }) default: return fd.Default() } } // The transformation may leave Any messages in structured form. // If so, convert them back to a raw-encoded form. if fd.FullName() == genid.Any_Value_field_fullname { if m, ok := v.(Message); ok { b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m) if err != nil { panic("BUG: " + err.Error()) } return protoreflect.ValueOfBytes(b) } } return reflectValueOf(v) } func (m reflectMessage) Set(protoreflect.FieldDescriptor, protoreflect.Value) { panic("invalid mutation of read-only message") } func (m reflectMessage) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { panic("invalid mutation of read-only message") } func (m reflectMessage) NewField(protoreflect.FieldDescriptor) protoreflect.Value { panic("not implemented") } func (m reflectMessage) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { if m.Descriptor().Oneofs().ByName(od.Name()) != od { panic("oneof descriptor does not belong to this message") } fds := od.Fields() for i := 0; i < fds.Len(); i++ { fd := fds.Get(i) if _, ok := m[m.stringKey(fd)]; ok { return fd } } return nil } func (m reflectMessage) GetUnknown() protoreflect.RawFields { var nums []protoreflect.FieldNumber for k := range m { if len(strings.Trim(k, "0123456789")) == 0 { n, _ := strconv.ParseUint(k, 10, 32) nums = append(nums, protoreflect.FieldNumber(n)) } } sort.Slice(nums, func(i, j int) bool { return nums[i] < nums[j] }) var raw protoreflect.RawFields for _, num := range nums { b, _ := m[strconv.FormatUint(uint64(num), 10)].(protoreflect.RawFields) raw = append(raw, b...) } return raw } func (m reflectMessage) SetUnknown(protoreflect.RawFields) { panic("invalid mutation of read-only message") } func (m reflectMessage) IsValid() bool { invalid, _ := m[messageInvalidKey].(bool) return !invalid } func (m reflectMessage) ProtoMethods() *protoiface.Methods { return nil } type reflectMessageType struct{ protoreflect.MessageDescriptor } func (t reflectMessageType) New() protoreflect.Message { panic("not implemented") } func (t reflectMessageType) Zero() protoreflect.Message { panic("not implemented") } func (t reflectMessageType) Descriptor() protoreflect.MessageDescriptor { return t.MessageDescriptor } type reflectList struct{ v reflect.Value } func (ls reflectList) Len() int { if !ls.IsValid() { return 0 } return ls.v.Len() } func (ls reflectList) Get(i int) protoreflect.Value { return reflectValueOf(ls.v.Index(i).Interface()) } func (ls reflectList) Set(int, protoreflect.Value) { panic("invalid mutation of read-only list") } func (ls reflectList) Append(protoreflect.Value) { panic("invalid mutation of read-only list") } func (ls reflectList) AppendMutable() protoreflect.Value { panic("invalid mutation of read-only list") } func (ls reflectList) Truncate(int) { panic("invalid mutation of read-only list") } func (ls reflectList) NewElement() protoreflect.Value { panic("not implemented") } func (ls reflectList) IsValid() bool { return ls.v.IsValid() } type reflectMap struct{ v reflect.Value } func (ms reflectMap) Len() int { if !ms.IsValid() { return 0 } return ms.v.Len() } func (ms reflectMap) Range(f func(protoreflect.MapKey, protoreflect.Value) bool) { if !ms.IsValid() { return } ks := ms.v.MapKeys() for _, k := range ks { pk := reflectValueOf(k.Interface()).MapKey() pv := reflectValueOf(ms.v.MapIndex(k).Interface()) if !f(pk, pv) { return } } } func (ms reflectMap) Has(k protoreflect.MapKey) bool { if !ms.IsValid() { return false } return ms.v.MapIndex(reflect.ValueOf(k.Interface())).IsValid() } func (ms reflectMap) Clear(protoreflect.MapKey) { panic("invalid mutation of read-only list") } func (ms reflectMap) Get(k protoreflect.MapKey) protoreflect.Value { if !ms.IsValid() { return protoreflect.Value{} } v := ms.v.MapIndex(reflect.ValueOf(k.Interface())) if !v.IsValid() { return protoreflect.Value{} } return reflectValueOf(v.Interface()) } func (ms reflectMap) Set(protoreflect.MapKey, protoreflect.Value) { panic("invalid mutation of read-only list") } func (ms reflectMap) Mutable(k protoreflect.MapKey) protoreflect.Value { panic("invalid mutation of read-only list") } func (ms reflectMap) NewValue() protoreflect.Value { panic("not implemented") } func (ms reflectMap) IsValid() bool { return ms.v.IsValid() } golang-google-protobuf-1.27.1/testing/protocmp/reflect_test.go000066400000000000000000000152651411250152500245200ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protocmp import ( "testing" "github.com/google/go-cmp/cmp" "google.golang.org/protobuf/proto" testpb "google.golang.org/protobuf/internal/testprotos/test" textpb "google.golang.org/protobuf/internal/testprotos/textpb2" anypb "google.golang.org/protobuf/types/known/anypb" wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" ) func TestReflect(t *testing.T) { optMsg := &testpb.TestAllTypes{ OptionalInt32: proto.Int32(-32), OptionalInt64: proto.Int64(-64), OptionalUint32: proto.Uint32(32), OptionalUint64: proto.Uint64(64), OptionalFloat: proto.Float32(32.32), OptionalDouble: proto.Float64(64.64), OptionalBool: proto.Bool(true), OptionalString: proto.String("string"), OptionalBytes: []byte("bytes"), OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{A: proto.Int32(-32)}, OptionalNestedEnum: testpb.TestAllTypes_NEG.Enum(), } repMsg := &testpb.TestAllTypes{ RepeatedInt32: []int32{-32, +32}, RepeatedInt64: []int64{-64, +64}, RepeatedUint32: []uint32{0, 32}, RepeatedUint64: []uint64{0, 64}, RepeatedFloat: []float32{-32.32, +32.32}, RepeatedDouble: []float64{-64.64, +64.64}, RepeatedBool: []bool{false, true}, RepeatedString: []string{"hello", "goodbye"}, RepeatedBytes: [][]byte{[]byte("hello"), []byte("goodbye")}, RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{{A: proto.Int32(-32)}, {A: proto.Int32(+32)}}, RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_FOO, testpb.TestAllTypes_NEG}, } mapMsg := &testpb.TestAllTypes{ MapInt32Int32: map[int32]int32{-1: -32, +1: +32}, MapInt64Int64: map[int64]int64{-1: -32, +1: +64}, MapUint32Uint32: map[uint32]uint32{0: 0, 1: 32}, MapUint64Uint64: map[uint64]uint64{0: 0, 1: 64}, MapInt32Float: map[int32]float32{-1: -32.32, +1: +32.32}, MapInt32Double: map[int32]float64{-1: -64.64, +1: +64.64}, MapBoolBool: map[bool]bool{false: true, true: false}, MapStringString: map[string]string{"k1": "v1", "k2": "v2"}, MapStringBytes: map[string][]byte{"k1": []byte("v1"), "k2": []byte("v2")}, MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"k1": {A: proto.Int32(-32)}, "k2": {A: proto.Int32(+32)}}, MapStringNestedEnum: map[string]testpb.TestAllTypes_NestedEnum{"k1": testpb.TestAllTypes_FOO, "k2": testpb.TestAllTypes_NEG}, } tests := []proto.Message{ optMsg, repMsg, mapMsg, &testpb.TestAllTypes{ OneofField: &testpb.TestAllTypes_OneofUint32{32}, }, &testpb.TestAllTypes{ OneofField: &testpb.TestAllTypes_OneofUint64{64}, }, &testpb.TestAllTypes{ OneofField: &testpb.TestAllTypes_OneofFloat{32.32}, }, &testpb.TestAllTypes{ OneofField: &testpb.TestAllTypes_OneofDouble{64.64}, }, &testpb.TestAllTypes{ OneofField: &testpb.TestAllTypes_OneofBool{true}, }, &testpb.TestAllTypes{ OneofField: &testpb.TestAllTypes_OneofString{"string"}, }, &testpb.TestAllTypes{ OneofField: &testpb.TestAllTypes_OneofBytes{[]byte("bytes")}, }, &testpb.TestAllTypes{ OneofField: &testpb.TestAllTypes_OneofNestedMessage{&testpb.TestAllTypes_NestedMessage{A: proto.Int32(-32)}}, }, &testpb.TestAllTypes{ OneofField: &testpb.TestAllTypes_OneofEnum{testpb.TestAllTypes_NEG}, }, func() proto.Message { m := new(testpb.TestAllExtensions) proto.SetExtension(m, testpb.E_OptionalInt32, int32(-32)) proto.SetExtension(m, testpb.E_OptionalInt64, int64(-64)) proto.SetExtension(m, testpb.E_OptionalUint32, uint32(32)) proto.SetExtension(m, testpb.E_OptionalUint64, uint64(64)) proto.SetExtension(m, testpb.E_OptionalFloat, float32(32.32)) proto.SetExtension(m, testpb.E_OptionalDouble, float64(64.64)) proto.SetExtension(m, testpb.E_OptionalBool, bool(true)) proto.SetExtension(m, testpb.E_OptionalString, string("string")) proto.SetExtension(m, testpb.E_OptionalBytes, []byte("bytes")) proto.SetExtension(m, testpb.E_OptionalNestedMessage, &testpb.TestAllExtensions_NestedMessage{A: proto.Int32(-32)}) proto.SetExtension(m, testpb.E_OptionalNestedEnum, testpb.TestAllTypes_NEG) return m }(), func() proto.Message { m := new(testpb.TestAllExtensions) proto.SetExtension(m, testpb.E_RepeatedInt32, []int32{-32, +32}) proto.SetExtension(m, testpb.E_RepeatedInt64, []int64{-64, +64}) proto.SetExtension(m, testpb.E_RepeatedUint32, []uint32{0, 32}) proto.SetExtension(m, testpb.E_RepeatedUint64, []uint64{0, 64}) proto.SetExtension(m, testpb.E_RepeatedFloat, []float32{-32.32, +32.32}) proto.SetExtension(m, testpb.E_RepeatedDouble, []float64{-64.64, +64.64}) proto.SetExtension(m, testpb.E_RepeatedBool, []bool{false, true}) proto.SetExtension(m, testpb.E_RepeatedString, []string{"hello", "goodbye"}) proto.SetExtension(m, testpb.E_RepeatedBytes, [][]byte{[]byte("hello"), []byte("goodbye")}) proto.SetExtension(m, testpb.E_RepeatedNestedMessage, []*testpb.TestAllExtensions_NestedMessage{{A: proto.Int32(-32)}, {A: proto.Int32(+32)}}) proto.SetExtension(m, testpb.E_RepeatedNestedEnum, []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_FOO, testpb.TestAllTypes_NEG}) return m }(), &textpb.KnownTypes{ OptBool: &wrapperspb.BoolValue{Value: true}, OptInt32: &wrapperspb.Int32Value{Value: -32}, OptInt64: &wrapperspb.Int64Value{Value: -64}, OptUint32: &wrapperspb.UInt32Value{Value: +32}, OptUint64: &wrapperspb.UInt64Value{Value: +64}, OptFloat: &wrapperspb.FloatValue{Value: 32.32}, OptDouble: &wrapperspb.DoubleValue{Value: 64.64}, OptString: &wrapperspb.StringValue{Value: "string"}, OptBytes: &wrapperspb.BytesValue{Value: []byte("bytes")}, }, &textpb.KnownTypes{ OptAny: &anypb.Any{ TypeUrl: "google.golang.org/goproto.proto.test.TestAllTypes", Value: func() []byte { b1, _ := proto.MarshalOptions{Deterministic: true}.Marshal(optMsg) b2, _ := proto.MarshalOptions{Deterministic: true}.Marshal(repMsg) b3, _ := proto.MarshalOptions{Deterministic: true}.Marshal(mapMsg) return append(append(append([]byte(nil), b1...), b2...), b3...) }(), }, }, &textpb.KnownTypes{ OptAny: &anypb.Any{ TypeUrl: "unknown_type", Value: []byte("invalid_value"), }, }, } for _, src := range tests { dst := src.ProtoReflect().Type().New().Interface() proto.Merge(dst, transformMessage(src.ProtoReflect())) if diff := cmp.Diff(src, dst, Transform()); diff != "" { t.Errorf("Merge mismatch (-want +got):\n%s", diff) } } } golang-google-protobuf-1.27.1/testing/protocmp/util.go000066400000000000000000000532741411250152500230140ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protocmp import ( "bytes" "fmt" "math" "reflect" "strings" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" ) var ( enumReflectType = reflect.TypeOf(Enum{}) messageReflectType = reflect.TypeOf(Message{}) ) // FilterEnum filters opt to only be applicable on standalone Enums, // singular fields of enums, list fields of enums, or map fields of enum values, // where the enum is the same type as the specified enum. // // The Go type of the last path step may be an: // • Enum for singular fields, elements of a repeated field, // values of a map field, or standalone Enums // • []Enum for list fields // • map[K]Enum for map fields // • interface{} for a Message map entry value // // This must be used in conjunction with Transform. func FilterEnum(enum protoreflect.Enum, opt cmp.Option) cmp.Option { return FilterDescriptor(enum.Descriptor(), opt) } // FilterMessage filters opt to only be applicable on standalone Messages, // singular fields of messages, list fields of messages, or map fields of // message values, where the message is the same type as the specified message. // // The Go type of the last path step may be an: // • Message for singular fields, elements of a repeated field, // values of a map field, or standalone Messages // • []Message for list fields // • map[K]Message for map fields // • interface{} for a Message map entry value // // This must be used in conjunction with Transform. func FilterMessage(message proto.Message, opt cmp.Option) cmp.Option { return FilterDescriptor(message.ProtoReflect().Descriptor(), opt) } // FilterField filters opt to only be applicable on the specified field // in the message. It panics if a field of the given name does not exist. // // The Go type of the last path step may be an: // • T for singular fields // • []T for list fields // • map[K]T for map fields // • interface{} for a Message map entry value // // This must be used in conjunction with Transform. func FilterField(message proto.Message, name protoreflect.Name, opt cmp.Option) cmp.Option { md := message.ProtoReflect().Descriptor() return FilterDescriptor(mustFindFieldDescriptor(md, name), opt) } // FilterOneof filters opt to only be applicable on all fields within the // specified oneof in the message. It panics if a oneof of the given name // does not exist. // // The Go type of the last path step may be an: // • T for singular fields // • []T for list fields // • map[K]T for map fields // • interface{} for a Message map entry value // // This must be used in conjunction with Transform. func FilterOneof(message proto.Message, name protoreflect.Name, opt cmp.Option) cmp.Option { md := message.ProtoReflect().Descriptor() return FilterDescriptor(mustFindOneofDescriptor(md, name), opt) } // FilterDescriptor ignores the specified descriptor. // // The following descriptor types may be specified: // • protoreflect.EnumDescriptor // • protoreflect.MessageDescriptor // • protoreflect.FieldDescriptor // • protoreflect.OneofDescriptor // // For the behavior of each, see the corresponding filter function. // Since this filter accepts a protoreflect.FieldDescriptor, it can be used // to also filter for extension fields as a protoreflect.ExtensionDescriptor // is just an alias to protoreflect.FieldDescriptor. // // This must be used in conjunction with Transform. func FilterDescriptor(desc protoreflect.Descriptor, opt cmp.Option) cmp.Option { f := newNameFilters(desc) return cmp.FilterPath(f.Filter, opt) } // IgnoreEnums ignores all enums of the specified types. // It is equivalent to FilterEnum(enum, cmp.Ignore()) for each enum. // // This must be used in conjunction with Transform. func IgnoreEnums(enums ...protoreflect.Enum) cmp.Option { var ds []protoreflect.Descriptor for _, e := range enums { ds = append(ds, e.Descriptor()) } return IgnoreDescriptors(ds...) } // IgnoreMessages ignores all messages of the specified types. // It is equivalent to FilterMessage(message, cmp.Ignore()) for each message. // // This must be used in conjunction with Transform. func IgnoreMessages(messages ...proto.Message) cmp.Option { var ds []protoreflect.Descriptor for _, m := range messages { ds = append(ds, m.ProtoReflect().Descriptor()) } return IgnoreDescriptors(ds...) } // IgnoreFields ignores the specified fields in the specified message. // It is equivalent to FilterField(message, name, cmp.Ignore()) for each field // in the message. // // This must be used in conjunction with Transform. func IgnoreFields(message proto.Message, names ...protoreflect.Name) cmp.Option { var ds []protoreflect.Descriptor md := message.ProtoReflect().Descriptor() for _, s := range names { ds = append(ds, mustFindFieldDescriptor(md, s)) } return IgnoreDescriptors(ds...) } // IgnoreOneofs ignores fields of the specified oneofs in the specified message. // It is equivalent to FilterOneof(message, name, cmp.Ignore()) for each oneof // in the message. // // This must be used in conjunction with Transform. func IgnoreOneofs(message proto.Message, names ...protoreflect.Name) cmp.Option { var ds []protoreflect.Descriptor md := message.ProtoReflect().Descriptor() for _, s := range names { ds = append(ds, mustFindOneofDescriptor(md, s)) } return IgnoreDescriptors(ds...) } // IgnoreDescriptors ignores the specified set of descriptors. // It is equivalent to FilterDescriptor(desc, cmp.Ignore()) for each descriptor. // // This must be used in conjunction with Transform. func IgnoreDescriptors(descs ...protoreflect.Descriptor) cmp.Option { return cmp.FilterPath(newNameFilters(descs...).Filter, cmp.Ignore()) } func mustFindFieldDescriptor(md protoreflect.MessageDescriptor, s protoreflect.Name) protoreflect.FieldDescriptor { d := findDescriptor(md, s) if fd, ok := d.(protoreflect.FieldDescriptor); ok && fd.TextName() == string(s) { return fd } var suggestion string switch d := d.(type) { case protoreflect.FieldDescriptor: suggestion = fmt.Sprintf("; consider specifying field %q instead", d.TextName()) case protoreflect.OneofDescriptor: suggestion = fmt.Sprintf("; consider specifying oneof %q with IgnoreOneofs instead", d.Name()) } panic(fmt.Sprintf("message %q has no field %q%s", md.FullName(), s, suggestion)) } func mustFindOneofDescriptor(md protoreflect.MessageDescriptor, s protoreflect.Name) protoreflect.OneofDescriptor { d := findDescriptor(md, s) if od, ok := d.(protoreflect.OneofDescriptor); ok && d.Name() == s { return od } var suggestion string switch d := d.(type) { case protoreflect.OneofDescriptor: suggestion = fmt.Sprintf("; consider specifying oneof %q instead", d.Name()) case protoreflect.FieldDescriptor: suggestion = fmt.Sprintf("; consider specifying field %q with IgnoreFields instead", d.TextName()) } panic(fmt.Sprintf("message %q has no oneof %q%s", md.FullName(), s, suggestion)) } func findDescriptor(md protoreflect.MessageDescriptor, s protoreflect.Name) protoreflect.Descriptor { // Exact match. if fd := md.Fields().ByTextName(string(s)); fd != nil { return fd } if od := md.Oneofs().ByName(s); od != nil && !od.IsSynthetic() { return od } // Best-effort match. // // It's a common user mistake to use the CamelCased field name as it appears // in the generated Go struct. Instead of complaining that it doesn't exist, // suggest the real protobuf name that the user may have desired. normalize := func(s protoreflect.Name) string { return strings.Replace(strings.ToLower(string(s)), "_", "", -1) } for i := 0; i < md.Fields().Len(); i++ { if fd := md.Fields().Get(i); normalize(fd.Name()) == normalize(s) { return fd } } for i := 0; i < md.Oneofs().Len(); i++ { if od := md.Oneofs().Get(i); normalize(od.Name()) == normalize(s) { return od } } return nil } type nameFilters struct { names map[protoreflect.FullName]bool } func newNameFilters(descs ...protoreflect.Descriptor) *nameFilters { f := &nameFilters{names: make(map[protoreflect.FullName]bool)} for _, d := range descs { switch d := d.(type) { case protoreflect.EnumDescriptor: f.names[d.FullName()] = true case protoreflect.MessageDescriptor: f.names[d.FullName()] = true case protoreflect.FieldDescriptor: f.names[d.FullName()] = true case protoreflect.OneofDescriptor: for i := 0; i < d.Fields().Len(); i++ { f.names[d.Fields().Get(i).FullName()] = true } default: panic("invalid descriptor type") } } return f } func (f *nameFilters) Filter(p cmp.Path) bool { vx, vy := p.Last().Values() return (f.filterValue(vx) && f.filterValue(vy)) || f.filterFields(p) } func (f *nameFilters) filterFields(p cmp.Path) bool { // Trim off trailing type-assertions so that the filter can match on the // concrete value held within an interface value. if _, ok := p.Last().(cmp.TypeAssertion); ok { p = p[:len(p)-1] } // Filter for Message maps. mi, ok := p.Index(-1).(cmp.MapIndex) if !ok { return false } ps := p.Index(-2) if ps.Type() != messageReflectType { return false } // Check field name. vx, vy := ps.Values() mx := vx.Interface().(Message) my := vy.Interface().(Message) k := mi.Key().String() if f.filterFieldName(mx, k) && f.filterFieldName(my, k) { return true } // Check field value. vx, vy = mi.Values() if f.filterFieldValue(vx) && f.filterFieldValue(vy) { return true } return false } func (f *nameFilters) filterFieldName(m Message, k string) bool { if _, ok := m[k]; !ok { return true // treat missing fields as already filtered } var fd protoreflect.FieldDescriptor switch mt := m[messageTypeKey].(messageType); { case protoreflect.Name(k).IsValid(): fd = mt.md.Fields().ByTextName(k) default: fd = mt.xds[k] } if fd != nil { return f.names[fd.FullName()] } return false } func (f *nameFilters) filterFieldValue(v reflect.Value) bool { if !v.IsValid() { return true // implies missing slice element or map entry } v = v.Elem() // map entries are always populated values switch t := v.Type(); { case t == enumReflectType || t == messageReflectType: // Check for singular message or enum field. return f.filterValue(v) case t.Kind() == reflect.Slice && (t.Elem() == enumReflectType || t.Elem() == messageReflectType): // Check for list field of enum or message type. return f.filterValue(v.Index(0)) case t.Kind() == reflect.Map && (t.Elem() == enumReflectType || t.Elem() == messageReflectType): // Check for map field of enum or message type. return f.filterValue(v.MapIndex(v.MapKeys()[0])) } return false } func (f *nameFilters) filterValue(v reflect.Value) bool { if !v.IsValid() { return true // implies missing slice element or map entry } if !v.CanInterface() { return false // implies unexported struct field } switch v := v.Interface().(type) { case Enum: return v.Descriptor() != nil && f.names[v.Descriptor().FullName()] case Message: return v.Descriptor() != nil && f.names[v.Descriptor().FullName()] } return false } // IgnoreDefaultScalars ignores singular scalars that are unpopulated or // explicitly set to the default value. // This option does not effect elements in a list or entries in a map. // // This must be used in conjunction with Transform. func IgnoreDefaultScalars() cmp.Option { return cmp.FilterPath(func(p cmp.Path) bool { // Filter for Message maps. mi, ok := p.Index(-1).(cmp.MapIndex) if !ok { return false } ps := p.Index(-2) if ps.Type() != messageReflectType { return false } // Check whether both fields are default or unpopulated scalars. vx, vy := ps.Values() mx := vx.Interface().(Message) my := vy.Interface().(Message) k := mi.Key().String() return isDefaultScalar(mx, k) && isDefaultScalar(my, k) }, cmp.Ignore()) } func isDefaultScalar(m Message, k string) bool { if _, ok := m[k]; !ok { return true } var fd protoreflect.FieldDescriptor switch mt := m[messageTypeKey].(messageType); { case protoreflect.Name(k).IsValid(): fd = mt.md.Fields().ByTextName(k) default: fd = mt.xds[k] } if fd == nil || !fd.Default().IsValid() { return false } switch fd.Kind() { case protoreflect.BytesKind: v, ok := m[k].([]byte) return ok && bytes.Equal(fd.Default().Bytes(), v) case protoreflect.FloatKind: v, ok := m[k].(float32) return ok && equalFloat64(fd.Default().Float(), float64(v)) case protoreflect.DoubleKind: v, ok := m[k].(float64) return ok && equalFloat64(fd.Default().Float(), float64(v)) case protoreflect.EnumKind: v, ok := m[k].(Enum) return ok && fd.Default().Enum() == v.Number() default: return reflect.DeepEqual(fd.Default().Interface(), m[k]) } } func equalFloat64(x, y float64) bool { return x == y || (math.IsNaN(x) && math.IsNaN(y)) } // IgnoreEmptyMessages ignores messages that are empty or unpopulated. // It applies to standalone Messages, singular message fields, // list fields of messages, and map fields of message values. // // This must be used in conjunction with Transform. func IgnoreEmptyMessages() cmp.Option { return cmp.FilterPath(func(p cmp.Path) bool { vx, vy := p.Last().Values() return (isEmptyMessage(vx) && isEmptyMessage(vy)) || isEmptyMessageFields(p) }, cmp.Ignore()) } func isEmptyMessageFields(p cmp.Path) bool { // Filter for Message maps. mi, ok := p.Index(-1).(cmp.MapIndex) if !ok { return false } ps := p.Index(-2) if ps.Type() != messageReflectType { return false } // Check field value. vx, vy := mi.Values() if isEmptyMessageFieldValue(vx) && isEmptyMessageFieldValue(vy) { return true } return false } func isEmptyMessageFieldValue(v reflect.Value) bool { if !v.IsValid() { return true // implies missing slice element or map entry } v = v.Elem() // map entries are always populated values switch t := v.Type(); { case t == messageReflectType: // Check singular field for empty message. if !isEmptyMessage(v) { return false } case t.Kind() == reflect.Slice && t.Elem() == messageReflectType: // Check list field for all empty message elements. for i := 0; i < v.Len(); i++ { if !isEmptyMessage(v.Index(i)) { return false } } case t.Kind() == reflect.Map && t.Elem() == messageReflectType: // Check map field for all empty message values. for _, k := range v.MapKeys() { if !isEmptyMessage(v.MapIndex(k)) { return false } } default: return false } return true } func isEmptyMessage(v reflect.Value) bool { if !v.IsValid() { return true // implies missing slice element or map entry } if !v.CanInterface() { return false // implies unexported struct field } if m, ok := v.Interface().(Message); ok { for k := range m { if k != messageTypeKey && k != messageInvalidKey { return false } } return true } return false } // IgnoreUnknown ignores unknown fields in all messages. // // This must be used in conjunction with Transform. func IgnoreUnknown() cmp.Option { return cmp.FilterPath(func(p cmp.Path) bool { // Filter for Message maps. mi, ok := p.Index(-1).(cmp.MapIndex) if !ok { return false } ps := p.Index(-2) if ps.Type() != messageReflectType { return false } // Filter for unknown fields (which always have a numeric map key). return strings.Trim(mi.Key().String(), "0123456789") == "" }, cmp.Ignore()) } // SortRepeated sorts repeated fields of the specified element type. // The less function must be of the form "func(T, T) bool" where T is the // Go element type for the repeated field kind. // // The element type T can be one of the following: // • Go type for a protobuf scalar kind except for an enum // (i.e., bool, int32, int64, uint32, uint64, float32, float64, string, and []byte) // • E where E is a concrete enum type that implements protoreflect.Enum // • M where M is a concrete message type that implement proto.Message // // This option only applies to repeated fields within a protobuf message. // It does not operate on higher-order Go types that seem like a repeated field. // For example, a []T outside the context of a protobuf message will not be // handled by this option. To sort Go slices that are not repeated fields, // consider using "github.com/google/go-cmp/cmp/cmpopts".SortSlices instead. // // This must be used in conjunction with Transform. func SortRepeated(lessFunc interface{}) cmp.Option { t, ok := checkTTBFunc(lessFunc) if !ok { panic(fmt.Sprintf("invalid less function: %T", lessFunc)) } var opt cmp.Option var sliceType reflect.Type switch vf := reflect.ValueOf(lessFunc); { case t.Implements(enumV2Type): et := reflect.Zero(t).Interface().(protoreflect.Enum).Type() lessFunc = func(x, y Enum) bool { vx := reflect.ValueOf(et.New(x.Number())) vy := reflect.ValueOf(et.New(y.Number())) return vf.Call([]reflect.Value{vx, vy})[0].Bool() } opt = FilterDescriptor(et.Descriptor(), cmpopts.SortSlices(lessFunc)) sliceType = reflect.SliceOf(enumReflectType) case t.Implements(messageV2Type): mt := reflect.Zero(t).Interface().(protoreflect.ProtoMessage).ProtoReflect().Type() lessFunc = func(x, y Message) bool { mx := mt.New().Interface() my := mt.New().Interface() proto.Merge(mx, x) proto.Merge(my, y) vx := reflect.ValueOf(mx) vy := reflect.ValueOf(my) return vf.Call([]reflect.Value{vx, vy})[0].Bool() } opt = FilterDescriptor(mt.Descriptor(), cmpopts.SortSlices(lessFunc)) sliceType = reflect.SliceOf(messageReflectType) default: switch t { case reflect.TypeOf(bool(false)): case reflect.TypeOf(int32(0)): case reflect.TypeOf(int64(0)): case reflect.TypeOf(uint32(0)): case reflect.TypeOf(uint64(0)): case reflect.TypeOf(float32(0)): case reflect.TypeOf(float64(0)): case reflect.TypeOf(string("")): case reflect.TypeOf([]byte(nil)): default: panic(fmt.Sprintf("invalid element type: %v", t)) } opt = cmpopts.SortSlices(lessFunc) sliceType = reflect.SliceOf(t) } return cmp.FilterPath(func(p cmp.Path) bool { // Filter to only apply to repeated fields within a message. if t := p.Index(-1).Type(); t == nil || t != sliceType { return false } if t := p.Index(-2).Type(); t == nil || t.Kind() != reflect.Interface { return false } if t := p.Index(-3).Type(); t == nil || t != messageReflectType { return false } return true }, opt) } func checkTTBFunc(lessFunc interface{}) (reflect.Type, bool) { switch t := reflect.TypeOf(lessFunc); { case t == nil: return nil, false case t.NumIn() != 2 || t.In(0) != t.In(1) || t.IsVariadic(): return nil, false case t.NumOut() != 1 || t.Out(0) != reflect.TypeOf(false): return nil, false default: return t.In(0), true } } // SortRepeatedFields sorts the specified repeated fields. // Sorting a repeated field is useful for treating the list as a multiset // (i.e., a set where each value can appear multiple times). // It panics if the field does not exist or is not a repeated field. // // The sort ordering is as follows: // • Booleans are sorted where false is sorted before true. // • Integers are sorted in ascending order. // • Floating-point numbers are sorted in ascending order according to // the total ordering defined by IEEE-754 (section 5.10). // • Strings and bytes are sorted lexicographically in ascending order. // • Enums are sorted in ascending order based on its numeric value. // • Messages are sorted according to some arbitrary ordering // which is undefined and may change in future implementations. // // The ordering chosen for repeated messages is unlikely to be aesthetically // preferred by humans. Consider using a custom sort function: // // FilterField(m, "foo_field", SortRepeated(func(x, y *foopb.MyMessage) bool { // ... // user-provided definition for less // })) // // This must be used in conjunction with Transform. func SortRepeatedFields(message proto.Message, names ...protoreflect.Name) cmp.Option { var opts cmp.Options md := message.ProtoReflect().Descriptor() for _, name := range names { fd := mustFindFieldDescriptor(md, name) if !fd.IsList() { panic(fmt.Sprintf("message field %q is not repeated", fd.FullName())) } var lessFunc interface{} switch fd.Kind() { case protoreflect.BoolKind: lessFunc = func(x, y bool) bool { return !x && y } case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: lessFunc = func(x, y int32) bool { return x < y } case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: lessFunc = func(x, y int64) bool { return x < y } case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: lessFunc = func(x, y uint32) bool { return x < y } case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: lessFunc = func(x, y uint64) bool { return x < y } case protoreflect.FloatKind: lessFunc = lessF32 case protoreflect.DoubleKind: lessFunc = lessF64 case protoreflect.StringKind: lessFunc = func(x, y string) bool { return x < y } case protoreflect.BytesKind: lessFunc = func(x, y []byte) bool { return bytes.Compare(x, y) < 0 } case protoreflect.EnumKind: lessFunc = func(x, y Enum) bool { return x.Number() < y.Number() } case protoreflect.MessageKind, protoreflect.GroupKind: lessFunc = func(x, y Message) bool { return x.String() < y.String() } default: panic(fmt.Sprintf("invalid kind: %v", fd.Kind())) } opts = append(opts, FilterDescriptor(fd, cmpopts.SortSlices(lessFunc))) } return opts } func lessF32(x, y float32) bool { // Bit-wise implementation of IEEE-754, section 5.10. xi := int32(math.Float32bits(x)) yi := int32(math.Float32bits(y)) xi ^= int32(uint32(xi>>31) >> 1) yi ^= int32(uint32(yi>>31) >> 1) return xi < yi } func lessF64(x, y float64) bool { // Bit-wise implementation of IEEE-754, section 5.10. xi := int64(math.Float64bits(x)) yi := int64(math.Float64bits(y)) xi ^= int64(uint64(xi>>63) >> 1) yi ^= int64(uint64(yi>>63) >> 1) return xi < yi } golang-google-protobuf-1.27.1/testing/protocmp/util_test.go000066400000000000000000001625001411250152500240440ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protocmp import ( "math" "math/rand" "sort" "testing" "github.com/google/go-cmp/cmp" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/testing/protopack" "google.golang.org/protobuf/types/dynamicpb" testpb "google.golang.org/protobuf/internal/testprotos/test" ) func TestEqual(t *testing.T) { type test struct { x, y interface{} opts cmp.Options want bool } var tests []test allTypesDesc := (*testpb.TestAllTypes)(nil).ProtoReflect().Descriptor() // Test nil and empty messages of differing types. tests = append(tests, []test{{ x: (*testpb.TestAllTypes)(nil), y: (*testpb.TestAllTypes)(nil), opts: cmp.Options{Transform()}, want: true, }, { x: (*testpb.TestAllTypes)(nil), y: (*testpb.TestAllExtensions)(nil), opts: cmp.Options{Transform()}, want: false, }, { x: (*testpb.TestAllTypes)(nil), y: new(testpb.TestAllTypes), opts: cmp.Options{Transform()}, want: false, }, { x: (*testpb.TestAllTypes)(nil), y: dynamicpb.NewMessage(allTypesDesc), opts: cmp.Options{Transform()}, want: false, }, { x: (*testpb.TestAllTypes)(nil), y: new(testpb.TestAllTypes), opts: cmp.Options{Transform(), IgnoreEmptyMessages()}, want: true, }, { x: (*testpb.TestAllTypes)(nil), y: dynamicpb.NewMessage(allTypesDesc), opts: cmp.Options{Transform(), IgnoreEmptyMessages()}, want: true, }, { x: new(testpb.TestAllTypes), y: new(testpb.TestAllTypes), opts: cmp.Options{Transform()}, want: true, }, { x: new(testpb.TestAllTypes), y: dynamicpb.NewMessage(allTypesDesc), opts: cmp.Options{Transform()}, want: true, }, { x: new(testpb.TestAllTypes), y: new(testpb.TestAllExtensions), opts: cmp.Options{Transform()}, want: false, }, { x: struct{ I interface{} }{(*testpb.TestAllTypes)(nil)}, y: struct{ I interface{} }{(*testpb.TestAllTypes)(nil)}, opts: cmp.Options{Transform()}, want: true, }, { x: struct{ I interface{} }{(*testpb.TestAllTypes)(nil)}, y: struct{ I interface{} }{new(testpb.TestAllTypes)}, opts: cmp.Options{Transform()}, want: false, }, { x: struct{ I interface{} }{(*testpb.TestAllTypes)(nil)}, y: struct{ I interface{} }{dynamicpb.NewMessage(allTypesDesc)}, opts: cmp.Options{Transform()}, want: false, }, { x: struct{ I interface{} }{(*testpb.TestAllTypes)(nil)}, y: struct{ I interface{} }{new(testpb.TestAllTypes)}, opts: cmp.Options{Transform(), IgnoreEmptyMessages()}, want: true, }, { x: struct{ I interface{} }{(*testpb.TestAllTypes)(nil)}, y: struct{ I interface{} }{dynamicpb.NewMessage(allTypesDesc)}, opts: cmp.Options{Transform(), IgnoreEmptyMessages()}, want: true, }, { x: struct{ I interface{} }{new(testpb.TestAllTypes)}, y: struct{ I interface{} }{new(testpb.TestAllTypes)}, opts: cmp.Options{Transform()}, want: true, }, { x: struct{ I interface{} }{new(testpb.TestAllTypes)}, y: struct{ I interface{} }{dynamicpb.NewMessage(allTypesDesc)}, opts: cmp.Options{Transform()}, want: true, }, { x: struct{ M proto.Message }{(*testpb.TestAllTypes)(nil)}, y: struct{ M proto.Message }{(*testpb.TestAllTypes)(nil)}, opts: cmp.Options{Transform()}, want: true, }, { x: struct{ M proto.Message }{(*testpb.TestAllTypes)(nil)}, y: struct{ M proto.Message }{new(testpb.TestAllTypes)}, opts: cmp.Options{Transform()}, want: false, }, { x: struct{ M proto.Message }{(*testpb.TestAllTypes)(nil)}, y: struct{ M proto.Message }{dynamicpb.NewMessage(allTypesDesc)}, opts: cmp.Options{Transform()}, want: false, }, { x: struct{ M proto.Message }{(*testpb.TestAllTypes)(nil)}, y: struct{ M proto.Message }{new(testpb.TestAllTypes)}, opts: cmp.Options{Transform(), IgnoreEmptyMessages()}, want: true, }, { x: struct{ M proto.Message }{(*testpb.TestAllTypes)(nil)}, y: struct{ M proto.Message }{dynamicpb.NewMessage(allTypesDesc)}, opts: cmp.Options{Transform(), IgnoreEmptyMessages()}, want: true, }, { x: struct{ M proto.Message }{new(testpb.TestAllTypes)}, y: struct{ M proto.Message }{new(testpb.TestAllTypes)}, opts: cmp.Options{Transform()}, want: true, }, { x: struct{ M proto.Message }{new(testpb.TestAllTypes)}, y: struct{ M proto.Message }{dynamicpb.NewMessage(allTypesDesc)}, opts: cmp.Options{Transform()}, want: true, }}...) // Test message values. tests = append(tests, []test{{ x: testpb.TestAllTypes{OptionalSint64: proto.Int64(1)}, y: testpb.TestAllTypes{OptionalSint64: proto.Int64(1)}, opts: cmp.Options{Transform()}, want: true, }, { x: testpb.TestAllTypes{OptionalSint64: proto.Int64(1)}, y: testpb.TestAllTypes{OptionalSint64: proto.Int64(2)}, opts: cmp.Options{Transform()}, want: false, }, { x: struct{ M testpb.TestAllTypes }{M: testpb.TestAllTypes{OptionalSint64: proto.Int64(1)}}, y: struct{ M testpb.TestAllTypes }{M: testpb.TestAllTypes{OptionalSint64: proto.Int64(1)}}, opts: cmp.Options{Transform()}, want: true, }, { x: struct{ M testpb.TestAllTypes }{M: testpb.TestAllTypes{OptionalSint64: proto.Int64(1)}}, y: struct{ M testpb.TestAllTypes }{M: testpb.TestAllTypes{OptionalSint64: proto.Int64(2)}}, opts: cmp.Options{Transform()}, want: false, }, { x: struct{ M []testpb.TestAllTypes }{M: []testpb.TestAllTypes{{OptionalSint64: proto.Int64(1)}}}, y: struct{ M []testpb.TestAllTypes }{M: []testpb.TestAllTypes{{OptionalSint64: proto.Int64(1)}}}, opts: cmp.Options{Transform()}, want: true, }, { x: struct{ M []testpb.TestAllTypes }{M: []testpb.TestAllTypes{{OptionalSint64: proto.Int64(1)}}}, y: struct{ M []testpb.TestAllTypes }{M: []testpb.TestAllTypes{{OptionalSint64: proto.Int64(2)}}}, opts: cmp.Options{Transform()}, want: false, }, { x: struct { M map[string]testpb.TestAllTypes }{ M: map[string]testpb.TestAllTypes{"k": {OptionalSint64: proto.Int64(1)}}, }, y: struct { M map[string]testpb.TestAllTypes }{ M: map[string]testpb.TestAllTypes{"k": {OptionalSint64: proto.Int64(1)}}, }, opts: cmp.Options{Transform()}, want: true, }, { x: struct { M map[string]testpb.TestAllTypes }{ M: map[string]testpb.TestAllTypes{"k": {OptionalSint64: proto.Int64(1)}}, }, y: struct { M map[string]testpb.TestAllTypes }{ M: map[string]testpb.TestAllTypes{"k": {OptionalSint64: proto.Int64(2)}}, }, opts: cmp.Options{Transform()}, want: false, }}...) // Test IgnoreUnknown. raw := protopack.Message{ protopack.Tag{1, protopack.BytesType}, protopack.String("Hello, goodbye!"), }.Marshal() tests = append(tests, []test{{ x: apply(&testpb.TestAllTypes{OptionalSint64: proto.Int64(5)}, setUnknown{raw}), y: &testpb.TestAllTypes{OptionalSint64: proto.Int64(5)}, opts: cmp.Options{Transform()}, want: false, }, { x: apply(&testpb.TestAllTypes{OptionalSint64: proto.Int64(5)}, setUnknown{raw}), y: &testpb.TestAllTypes{OptionalSint64: proto.Int64(5)}, opts: cmp.Options{Transform(), IgnoreUnknown()}, want: true, }, { x: apply(&testpb.TestAllTypes{OptionalSint64: proto.Int64(5)}, setUnknown{raw}), y: &testpb.TestAllTypes{OptionalSint64: proto.Int64(6)}, opts: cmp.Options{Transform(), IgnoreUnknown()}, want: false, }, { x: apply(&testpb.TestAllTypes{OptionalSint64: proto.Int64(5)}, setUnknown{raw}), y: apply(dynamicpb.NewMessage(allTypesDesc), setField{6, int64(5)}), opts: cmp.Options{Transform()}, want: false, }, { x: apply(&testpb.TestAllTypes{OptionalSint64: proto.Int64(5)}, setUnknown{raw}), y: apply(dynamicpb.NewMessage(allTypesDesc), setField{6, int64(5)}), opts: cmp.Options{Transform(), IgnoreUnknown()}, want: true, }}...) // Test IgnoreDefaultScalars. tests = append(tests, []test{{ x: &testpb.TestAllTypes{ DefaultInt32: proto.Int32(81), DefaultUint32: proto.Uint32(83), DefaultFloat: proto.Float32(91.5), DefaultBool: proto.Bool(true), DefaultBytes: []byte("world"), }, y: &testpb.TestAllTypes{ DefaultInt64: proto.Int64(82), DefaultUint64: proto.Uint64(84), DefaultDouble: proto.Float64(92e3), DefaultString: proto.String("hello"), DefaultForeignEnum: testpb.ForeignEnum_FOREIGN_BAR.Enum(), }, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{ DefaultInt32: proto.Int32(81), DefaultUint32: proto.Uint32(83), DefaultFloat: proto.Float32(91.5), DefaultBool: proto.Bool(true), DefaultBytes: []byte("world"), }, y: &testpb.TestAllTypes{ DefaultInt64: proto.Int64(82), DefaultUint64: proto.Uint64(84), DefaultDouble: proto.Float64(92e3), DefaultString: proto.String("hello"), DefaultForeignEnum: testpb.ForeignEnum_FOREIGN_BAR.Enum(), }, opts: cmp.Options{Transform(), IgnoreDefaultScalars()}, want: true, }, { x: &testpb.TestAllTypes{ OptionalInt32: proto.Int32(81), OptionalUint32: proto.Uint32(83), OptionalFloat: proto.Float32(91.5), OptionalBool: proto.Bool(true), OptionalBytes: []byte("world"), }, y: &testpb.TestAllTypes{ OptionalInt64: proto.Int64(82), OptionalUint64: proto.Uint64(84), OptionalDouble: proto.Float64(92e3), OptionalString: proto.String("hello"), OptionalForeignEnum: testpb.ForeignEnum_FOREIGN_BAR.Enum(), }, opts: cmp.Options{Transform(), IgnoreDefaultScalars()}, want: false, }, { x: &testpb.TestAllTypes{ OptionalInt32: proto.Int32(0), OptionalUint32: proto.Uint32(0), OptionalFloat: proto.Float32(0), OptionalBool: proto.Bool(false), OptionalBytes: []byte(""), }, y: &testpb.TestAllTypes{ OptionalInt64: proto.Int64(0), OptionalUint64: proto.Uint64(0), OptionalDouble: proto.Float64(0), OptionalString: proto.String(""), OptionalForeignEnum: testpb.ForeignEnum_FOREIGN_FOO.Enum(), }, opts: cmp.Options{Transform(), IgnoreDefaultScalars()}, want: true, }, { x: apply(new(testpb.TestAllExtensions), setExtension{testpb.E_DefaultInt32, int32(81)}, setExtension{testpb.E_DefaultUint32, uint32(83)}, setExtension{testpb.E_DefaultFloat, float32(91.5)}, setExtension{testpb.E_DefaultBool, bool(true)}, setExtension{testpb.E_DefaultBytes, []byte("world")}), y: apply(new(testpb.TestAllExtensions), setExtension{testpb.E_DefaultInt64, int64(82)}, setExtension{testpb.E_DefaultUint64, uint64(84)}, setExtension{testpb.E_DefaultDouble, float64(92e3)}, setExtension{testpb.E_DefaultString, string("hello")}), opts: cmp.Options{Transform()}, want: false, }, { x: apply(new(testpb.TestAllExtensions), setExtension{testpb.E_DefaultInt32, int32(81)}, setExtension{testpb.E_DefaultUint32, uint32(83)}, setExtension{testpb.E_DefaultFloat, float32(91.5)}, setExtension{testpb.E_DefaultBool, bool(true)}, setExtension{testpb.E_DefaultBytes, []byte("world")}), y: apply(new(testpb.TestAllExtensions), setExtension{testpb.E_DefaultInt64, int64(82)}, setExtension{testpb.E_DefaultUint64, uint64(84)}, setExtension{testpb.E_DefaultDouble, float64(92e3)}, setExtension{testpb.E_DefaultString, string("hello")}), opts: cmp.Options{Transform(), IgnoreDefaultScalars()}, want: true, }, { x: apply(new(testpb.TestAllExtensions), setExtension{testpb.E_OptionalInt32, int32(0)}, setExtension{testpb.E_OptionalUint32, uint32(0)}, setExtension{testpb.E_OptionalFloat, float32(0)}, setExtension{testpb.E_OptionalBool, bool(false)}, setExtension{testpb.E_OptionalBytes, []byte("")}), y: apply(new(testpb.TestAllExtensions), setExtension{testpb.E_OptionalInt64, int64(0)}, setExtension{testpb.E_OptionalUint64, uint64(0)}, setExtension{testpb.E_OptionalDouble, float64(0)}, setExtension{testpb.E_OptionalString, string("")}), opts: cmp.Options{Transform()}, want: false, }, { x: apply(new(testpb.TestAllExtensions), setExtension{testpb.E_OptionalInt32, int32(0)}, setExtension{testpb.E_OptionalUint32, uint32(0)}, setExtension{testpb.E_OptionalFloat, float32(0)}, setExtension{testpb.E_OptionalBool, bool(false)}, setExtension{testpb.E_OptionalBytes, []byte("")}), y: apply(new(testpb.TestAllExtensions), setExtension{testpb.E_OptionalInt64, int64(0)}, setExtension{testpb.E_OptionalUint64, uint64(0)}, setExtension{testpb.E_OptionalDouble, float64(0)}, setExtension{testpb.E_OptionalString, string("")}), opts: cmp.Options{Transform(), IgnoreDefaultScalars()}, want: true, }, { x: &testpb.TestAllTypes{ DefaultFloat: proto.Float32(91.6), }, y: &testpb.TestAllTypes{}, opts: cmp.Options{Transform(), IgnoreDefaultScalars()}, want: false, }, { x: &testpb.TestAllTypes{ OptionalForeignMessage: &testpb.ForeignMessage{}, }, y: &testpb.TestAllTypes{}, opts: cmp.Options{Transform(), IgnoreDefaultScalars()}, want: false, }}...) // Test IgnoreEmptyMessages. tests = append(tests, []test{{ x: []*testpb.TestAllTypes{nil, {}, {OptionalInt32: proto.Int32(5)}}, y: []*testpb.TestAllTypes{nil, {}, {OptionalInt32: proto.Int32(5)}}, opts: cmp.Options{Transform()}, want: true, }, { x: []*testpb.TestAllTypes{nil, {}, {OptionalInt32: proto.Int32(5)}}, y: []*testpb.TestAllTypes{{OptionalInt32: proto.Int32(5)}}, opts: cmp.Options{Transform(), IgnoreEmptyMessages()}, want: false, }, { x: &testpb.TestAllTypes{OptionalForeignMessage: &testpb.ForeignMessage{}}, y: &testpb.TestAllTypes{OptionalForeignMessage: nil}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{OptionalForeignMessage: &testpb.ForeignMessage{}}, y: &testpb.TestAllTypes{OptionalForeignMessage: nil}, opts: cmp.Options{Transform(), IgnoreEmptyMessages()}, want: true, }, { x: &testpb.TestAllTypes{OptionalForeignMessage: &testpb.ForeignMessage{C: proto.Int32(5)}}, y: &testpb.TestAllTypes{OptionalForeignMessage: nil}, opts: cmp.Options{Transform(), IgnoreEmptyMessages()}, want: false, }, { x: &testpb.TestAllTypes{RepeatedForeignMessage: []*testpb.ForeignMessage{}}, y: &testpb.TestAllTypes{RepeatedForeignMessage: nil}, opts: cmp.Options{Transform()}, want: true, }, { x: &testpb.TestAllTypes{RepeatedForeignMessage: []*testpb.ForeignMessage{nil, {}}}, y: &testpb.TestAllTypes{RepeatedForeignMessage: nil}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{RepeatedForeignMessage: []*testpb.ForeignMessage{nil, {}}}, y: &testpb.TestAllTypes{RepeatedForeignMessage: nil}, opts: cmp.Options{Transform(), IgnoreEmptyMessages()}, want: true, }, { x: &testpb.TestAllTypes{RepeatedForeignMessage: []*testpb.ForeignMessage{nil, {C: proto.Int32(5)}, {}}}, y: &testpb.TestAllTypes{RepeatedForeignMessage: nil}, opts: cmp.Options{Transform(), IgnoreEmptyMessages()}, want: false, }, { x: &testpb.TestAllTypes{RepeatedForeignMessage: []*testpb.ForeignMessage{nil, {C: proto.Int32(5)}, {}}}, y: &testpb.TestAllTypes{RepeatedForeignMessage: []*testpb.ForeignMessage{{}, {}, nil, {}, {C: proto.Int32(5)}, {}}}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{RepeatedForeignMessage: []*testpb.ForeignMessage{nil, {C: proto.Int32(5)}, {}}}, y: &testpb.TestAllTypes{RepeatedForeignMessage: []*testpb.ForeignMessage{{}, {}, nil, {}, {C: proto.Int32(5)}, {}}}, opts: cmp.Options{Transform(), IgnoreEmptyMessages()}, want: true, }, { x: &testpb.TestAllTypes{MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{}}, y: &testpb.TestAllTypes{MapStringNestedMessage: nil}, opts: cmp.Options{Transform()}, want: true, }, { x: &testpb.TestAllTypes{MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"1": nil, "2": {}}}, y: &testpb.TestAllTypes{MapStringNestedMessage: nil}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"1": nil, "2": {}}}, y: &testpb.TestAllTypes{MapStringNestedMessage: nil}, opts: cmp.Options{Transform(), IgnoreEmptyMessages()}, want: true, }, { x: &testpb.TestAllTypes{MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"1": nil, "2": {A: proto.Int32(5)}, "3": {}}}, y: &testpb.TestAllTypes{MapStringNestedMessage: nil}, opts: cmp.Options{Transform(), IgnoreEmptyMessages()}, want: false, }, { x: &testpb.TestAllTypes{MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"1": nil, "2": {A: proto.Int32(5)}, "3": {}}}, y: &testpb.TestAllTypes{MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"1": {}, "1a": {}, "1b": nil, "2": {A: proto.Int32(5)}, "4": {}}}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"1": nil, "2": {A: proto.Int32(5)}, "3": {}}}, y: &testpb.TestAllTypes{MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"1": {}, "1a": {}, "1b": nil, "2": {A: proto.Int32(5)}, "4": {}}}, opts: cmp.Options{Transform(), IgnoreEmptyMessages()}, want: true, }}...) // Test IgnoreEnums and IgnoreMessages. tests = append(tests, []test{{ x: &testpb.TestAllTypes{ OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{A: proto.Int32(1)}, RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{{A: proto.Int32(2)}}, MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"3": {A: proto.Int32(3)}}, }, y: &testpb.TestAllTypes{}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{ OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{A: proto.Int32(1)}, RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{{A: proto.Int32(2)}}, MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"3": {A: proto.Int32(3)}}, }, y: &testpb.TestAllTypes{}, opts: cmp.Options{Transform(), IgnoreMessages(&testpb.TestAllTypes{})}, want: true, }, { x: &testpb.TestAllTypes{ OptionalNestedEnum: testpb.TestAllTypes_FOO.Enum(), RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_BAR}, MapStringNestedEnum: map[string]testpb.TestAllTypes_NestedEnum{"baz": testpb.TestAllTypes_BAZ}, }, y: &testpb.TestAllTypes{}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{ OptionalNestedEnum: testpb.TestAllTypes_FOO.Enum(), RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_BAR}, MapStringNestedEnum: map[string]testpb.TestAllTypes_NestedEnum{"baz": testpb.TestAllTypes_BAZ}, }, y: &testpb.TestAllTypes{}, opts: cmp.Options{Transform(), IgnoreEnums(testpb.TestAllTypes_NestedEnum(0))}, want: true, }, { x: &testpb.TestAllTypes{ OptionalNestedEnum: testpb.TestAllTypes_FOO.Enum(), RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_BAR}, MapStringNestedEnum: map[string]testpb.TestAllTypes_NestedEnum{"baz": testpb.TestAllTypes_BAZ}, OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{A: proto.Int32(1)}, RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{{A: proto.Int32(2)}}, MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"3": {A: proto.Int32(3)}}, }, y: &testpb.TestAllTypes{}, opts: cmp.Options{Transform(), IgnoreMessages(&testpb.TestAllExtensions{}), IgnoreEnums(testpb.ForeignEnum(0)), }, want: false, }}...) // Test IgnoreFields and IgnoreOneofs. tests = append(tests, []test{{ x: &testpb.TestAllTypes{OptionalInt32: proto.Int32(5)}, y: &testpb.TestAllTypes{OptionalInt32: proto.Int32(6)}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{OptionalInt32: proto.Int32(5)}, y: &testpb.TestAllTypes{}, opts: cmp.Options{Transform(), IgnoreFields(&testpb.TestAllTypes{}, "optional_int32")}, want: true, }, { x: &testpb.TestAllTypes{OptionalInt32: proto.Int32(5)}, y: &testpb.TestAllTypes{OptionalInt32: proto.Int32(6)}, opts: cmp.Options{Transform(), IgnoreFields(&testpb.TestAllTypes{}, "optional_int32")}, want: true, }, { x: &testpb.TestAllTypes{OptionalInt32: proto.Int32(5)}, y: &testpb.TestAllTypes{OptionalInt32: proto.Int32(6)}, opts: cmp.Options{Transform(), IgnoreFields(&testpb.TestAllTypes{}, "optional_int64")}, want: false, }, { x: &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofUint32{5}}, y: &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofString{"5"}}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofUint32{5}}, y: &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofString{"5"}}, opts: cmp.Options{Transform(), IgnoreFields(&testpb.TestAllTypes{}, "oneof_uint32"), IgnoreFields(&testpb.TestAllTypes{}, "oneof_string")}, want: true, }, { x: &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofUint32{5}}, y: &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofString{"5"}}, opts: cmp.Options{Transform(), IgnoreOneofs(&testpb.TestAllTypes{}, "oneof_field")}, want: true, }, { x: apply(new(testpb.TestAllExtensions), setExtension{testpb.E_OptionalString, "hello"}), y: apply(new(testpb.TestAllExtensions), setExtension{testpb.E_OptionalString, "goodbye"}), opts: cmp.Options{Transform()}, want: false, }, { x: apply(new(testpb.TestAllExtensions), setExtension{testpb.E_OptionalString, "hello"}), y: new(testpb.TestAllExtensions), opts: cmp.Options{Transform(), IgnoreDescriptors(testpb.E_OptionalString.TypeDescriptor())}, want: true, }, { x: apply(new(testpb.TestAllExtensions), setExtension{testpb.E_OptionalString, "hello"}), y: apply(new(testpb.TestAllExtensions), setExtension{testpb.E_OptionalString, "goodbye"}), opts: cmp.Options{Transform(), IgnoreDescriptors(testpb.E_OptionalString.TypeDescriptor())}, want: true, }, { x: apply(new(testpb.TestAllExtensions), setExtension{testpb.E_OptionalString, "hello"}), y: apply(new(testpb.TestAllExtensions), setExtension{testpb.E_OptionalString, "goodbye"}), opts: cmp.Options{Transform(), IgnoreDescriptors(testpb.E_OptionalInt32.TypeDescriptor())}, want: false, }}...) // Test FilterEnum. tests = append(tests, []test{{ x: &testpb.TestAllTypes{OptionalNestedEnum: testpb.TestAllTypes_FOO.Enum()}, y: &testpb.TestAllTypes{OptionalNestedEnum: testpb.TestAllTypes_BAR.Enum()}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{OptionalNestedEnum: testpb.TestAllTypes_FOO.Enum()}, y: &testpb.TestAllTypes{OptionalNestedEnum: testpb.TestAllTypes_BAR.Enum()}, opts: cmp.Options{ Transform(), FilterEnum(testpb.ForeignEnum(0), cmp.Comparer(func(x, y interface{}) bool { return true })), }, want: false, // mismatching filter type }, { x: &testpb.TestAllTypes{OptionalNestedEnum: testpb.TestAllTypes_FOO.Enum()}, y: &testpb.TestAllTypes{OptionalNestedEnum: testpb.TestAllTypes_BAR.Enum()}, opts: cmp.Options{ Transform(), FilterEnum(testpb.TestAllTypes_NestedEnum(0), cmp.Comparer(func(x, y int) bool { return true })), }, want: false, // matching filter type, but mismatching comparer type }, { x: &testpb.TestAllTypes{OptionalNestedEnum: testpb.TestAllTypes_FOO.Enum()}, y: &testpb.TestAllTypes{OptionalNestedEnum: testpb.TestAllTypes_BAR.Enum()}, opts: cmp.Options{ Transform(), FilterEnum(testpb.TestAllTypes_NestedEnum(0), cmp.Comparer(func(x, y testpb.TestAllTypes_NestedEnum) bool { return true })), }, want: false, // matching filter type, but mismatching comparer type }, { x: &testpb.TestAllTypes{OptionalNestedEnum: testpb.TestAllTypes_FOO.Enum()}, y: &testpb.TestAllTypes{OptionalNestedEnum: testpb.TestAllTypes_BAR.Enum()}, opts: cmp.Options{ Transform(), FilterEnum(testpb.TestAllTypes_NestedEnum(0), cmp.Comparer(func(x, y interface{}) bool { return true })), }, want: true, }, { x: &testpb.TestAllTypes{OptionalNestedEnum: testpb.TestAllTypes_FOO.Enum()}, y: &testpb.TestAllTypes{OptionalNestedEnum: testpb.TestAllTypes_BAR.Enum()}, opts: cmp.Options{ Transform(), FilterEnum(testpb.TestAllTypes_NestedEnum(0), cmp.Comparer(func(x, y Enum) bool { return true })), }, want: true, }, { x: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_FOO}}, y: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_BAR}}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_FOO}}, y: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_BAR}}, opts: cmp.Options{ Transform(), FilterEnum(testpb.ForeignEnum(0), cmp.Comparer(func(x, y interface{}) bool { return true })), }, want: false, // mismatching filter type }, { x: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_FOO}}, y: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_BAR}}, opts: cmp.Options{ Transform(), FilterEnum(testpb.TestAllTypes_NestedEnum(0), cmp.Comparer(func(x, y int) bool { return true })), }, want: false, // matching filter type, but mismatching comparer type }, { x: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_FOO}}, y: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_BAR}}, opts: cmp.Options{ Transform(), FilterEnum(testpb.TestAllTypes_NestedEnum(0), cmp.Comparer(func(x, y []testpb.TestAllTypes_NestedEnum) bool { return true })), }, want: false, // matching filter type, but mismatching comparer type }, { x: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_FOO}}, y: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_BAR}}, opts: cmp.Options{ Transform(), FilterEnum(testpb.TestAllTypes_NestedEnum(0), cmp.Comparer(func(x, y interface{}) bool { return true })), }, want: true, }, { x: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_FOO}}, y: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_BAR}}, opts: cmp.Options{ Transform(), FilterEnum(testpb.TestAllTypes_NestedEnum(0), cmp.Comparer(func(x, y []Enum) bool { return true })), }, want: true, }, { x: &testpb.TestAllTypes{MapStringNestedEnum: map[string]testpb.TestAllTypes_NestedEnum{"k": testpb.TestAllTypes_FOO}}, y: &testpb.TestAllTypes{MapStringNestedEnum: map[string]testpb.TestAllTypes_NestedEnum{"k": testpb.TestAllTypes_BAR}}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{MapStringNestedEnum: map[string]testpb.TestAllTypes_NestedEnum{"k": testpb.TestAllTypes_FOO}}, y: &testpb.TestAllTypes{MapStringNestedEnum: map[string]testpb.TestAllTypes_NestedEnum{"k": testpb.TestAllTypes_BAR}}, opts: cmp.Options{ Transform(), FilterEnum(testpb.ForeignEnum(0), cmp.Comparer(func(x, y interface{}) bool { return true })), }, want: false, // mismatching filter type }, { x: &testpb.TestAllTypes{MapStringNestedEnum: map[string]testpb.TestAllTypes_NestedEnum{"k": testpb.TestAllTypes_FOO}}, y: &testpb.TestAllTypes{MapStringNestedEnum: map[string]testpb.TestAllTypes_NestedEnum{"k": testpb.TestAllTypes_BAR}}, opts: cmp.Options{ Transform(), FilterEnum(testpb.TestAllTypes_NestedEnum(0), cmp.Comparer(func(x, y int) bool { return true })), }, want: false, // matching filter type, but mismatching comparer type }, { x: &testpb.TestAllTypes{MapStringNestedEnum: map[string]testpb.TestAllTypes_NestedEnum{"k": testpb.TestAllTypes_FOO}}, y: &testpb.TestAllTypes{MapStringNestedEnum: map[string]testpb.TestAllTypes_NestedEnum{"k": testpb.TestAllTypes_BAR}}, opts: cmp.Options{ Transform(), FilterEnum(testpb.TestAllTypes_NestedEnum(0), cmp.Comparer(func(x, y map[string]testpb.TestAllTypes_NestedEnum) bool { return true })), }, want: false, // matching filter type, but mismatching comparer type }, { x: &testpb.TestAllTypes{MapStringNestedEnum: map[string]testpb.TestAllTypes_NestedEnum{"k": testpb.TestAllTypes_FOO}}, y: &testpb.TestAllTypes{MapStringNestedEnum: map[string]testpb.TestAllTypes_NestedEnum{"k": testpb.TestAllTypes_BAR}}, opts: cmp.Options{ Transform(), FilterEnum(testpb.TestAllTypes_NestedEnum(0), cmp.Comparer(func(x, y interface{}) bool { return true })), }, want: true, }, { x: &testpb.TestAllTypes{MapStringNestedEnum: map[string]testpb.TestAllTypes_NestedEnum{"k": testpb.TestAllTypes_FOO}}, y: &testpb.TestAllTypes{MapStringNestedEnum: map[string]testpb.TestAllTypes_NestedEnum{"k": testpb.TestAllTypes_BAR}}, opts: cmp.Options{ Transform(), FilterEnum(testpb.TestAllTypes_NestedEnum(0), cmp.Comparer(func(x, y map[string]Enum) bool { return true })), }, want: true, }}...) // Test FilterMessage. tests = append(tests, []test{{ x: &testpb.TestAllTypes{OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{A: proto.Int32(1)}}, y: &testpb.TestAllTypes{OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{A: proto.Int32(2)}}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{A: proto.Int32(1)}}, y: &testpb.TestAllTypes{OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{A: proto.Int32(2)}}, opts: cmp.Options{ Transform(), FilterMessage(new(testpb.TestAllExtensions), cmp.Comparer(func(x, y interface{}) bool { return true })), }, want: false, // mismatching filter type }, { x: &testpb.TestAllTypes{OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{A: proto.Int32(1)}}, y: &testpb.TestAllTypes{OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{A: proto.Int32(2)}}, opts: cmp.Options{ Transform(), FilterMessage(new(testpb.TestAllTypes_NestedMessage), cmp.Comparer(func(x, y int) bool { return true })), }, want: false, // matching filter type, but mismatching comparer type }, { x: &testpb.TestAllTypes{OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{A: proto.Int32(1)}}, y: &testpb.TestAllTypes{OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{A: proto.Int32(2)}}, opts: cmp.Options{ Transform(), FilterMessage(new(testpb.TestAllTypes_NestedMessage), cmp.Comparer(func(x, y *testpb.TestAllTypes_NestedMessage) bool { return true })), }, want: false, // matching filter type, but mismatching comparer type }, { x: &testpb.TestAllTypes{OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{A: proto.Int32(1)}}, y: &testpb.TestAllTypes{OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{A: proto.Int32(2)}}, opts: cmp.Options{ Transform(), FilterMessage(new(testpb.TestAllTypes_NestedMessage), cmp.Comparer(func(x, y interface{}) bool { return true })), }, want: true, }, { x: &testpb.TestAllTypes{OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{A: proto.Int32(1)}}, y: &testpb.TestAllTypes{OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{A: proto.Int32(2)}}, opts: cmp.Options{ Transform(), FilterMessage(new(testpb.TestAllTypes_NestedMessage), cmp.Comparer(func(x, y Message) bool { return true })), }, want: true, }, { x: &testpb.TestAllTypes{RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{{A: proto.Int32(1)}}}, y: &testpb.TestAllTypes{RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{{A: proto.Int32(2)}}}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{{A: proto.Int32(1)}}}, y: &testpb.TestAllTypes{RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{{A: proto.Int32(2)}}}, opts: cmp.Options{ Transform(), FilterMessage(new(testpb.TestAllExtensions), cmp.Comparer(func(x, y interface{}) bool { return true })), }, want: false, // mismatching filter type }, { x: &testpb.TestAllTypes{RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{{A: proto.Int32(1)}}}, y: &testpb.TestAllTypes{RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{{A: proto.Int32(2)}}}, opts: cmp.Options{ Transform(), FilterMessage(new(testpb.TestAllTypes_NestedMessage), cmp.Comparer(func(x, y int) bool { return true })), }, want: false, // matching filter type, but mismatching comparer type }, { x: &testpb.TestAllTypes{RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{{A: proto.Int32(1)}}}, y: &testpb.TestAllTypes{RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{{A: proto.Int32(2)}}}, opts: cmp.Options{ Transform(), FilterMessage(new(testpb.TestAllTypes_NestedMessage), cmp.Comparer(func(x, y []*testpb.TestAllTypes_NestedMessage) bool { return true })), }, want: false, // matching filter type, but mismatching comparer type }, { x: &testpb.TestAllTypes{RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{{A: proto.Int32(1)}}}, y: &testpb.TestAllTypes{RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{{A: proto.Int32(2)}}}, opts: cmp.Options{ Transform(), FilterMessage(new(testpb.TestAllTypes_NestedMessage), cmp.Comparer(func(x, y interface{}) bool { return true })), }, want: true, }, { x: &testpb.TestAllTypes{RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{{A: proto.Int32(1)}}}, y: &testpb.TestAllTypes{RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{{A: proto.Int32(2)}}}, opts: cmp.Options{ Transform(), FilterMessage(new(testpb.TestAllTypes_NestedMessage), cmp.Comparer(func(x, y []Message) bool { return true })), }, want: true, }, { x: &testpb.TestAllTypes{MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"k": {A: proto.Int32(1)}}}, y: &testpb.TestAllTypes{MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"k": {A: proto.Int32(2)}}}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"k": {A: proto.Int32(1)}}}, y: &testpb.TestAllTypes{MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"k": {A: proto.Int32(2)}}}, opts: cmp.Options{ Transform(), FilterMessage(new(testpb.TestAllExtensions), cmp.Comparer(func(x, y interface{}) bool { return true })), }, want: false, // mismatching filter type }, { x: &testpb.TestAllTypes{MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"k": {A: proto.Int32(1)}}}, y: &testpb.TestAllTypes{MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"k": {A: proto.Int32(2)}}}, opts: cmp.Options{ Transform(), FilterMessage(new(testpb.TestAllTypes_NestedMessage), cmp.Comparer(func(x, y int) bool { return true })), }, want: false, // matching filter type, but mismatching comparer type }, { x: &testpb.TestAllTypes{MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"k": {A: proto.Int32(1)}}}, y: &testpb.TestAllTypes{MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"k": {A: proto.Int32(2)}}}, opts: cmp.Options{ Transform(), FilterMessage(new(testpb.TestAllTypes_NestedMessage), cmp.Comparer(func(x, y map[string]*testpb.TestAllTypes_NestedMessage) bool { return true })), }, want: false, // matching filter type, but mismatching comparer type }, { x: &testpb.TestAllTypes{MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"k": {A: proto.Int32(1)}}}, y: &testpb.TestAllTypes{MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"k": {A: proto.Int32(2)}}}, opts: cmp.Options{ Transform(), FilterMessage(new(testpb.TestAllTypes_NestedMessage), cmp.Comparer(func(x, y interface{}) bool { return true })), }, want: true, }, { x: &testpb.TestAllTypes{MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"k": {A: proto.Int32(1)}}}, y: &testpb.TestAllTypes{MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{"k": {A: proto.Int32(2)}}}, opts: cmp.Options{ Transform(), FilterMessage(new(testpb.TestAllTypes_NestedMessage), cmp.Comparer(func(x, y map[string]Message) bool { return true })), }, want: true, }}...) // Test FilterField. tests = append(tests, []test{{ x: &testpb.TestAllTypes{OptionalInt32: proto.Int32(1)}, y: &testpb.TestAllTypes{OptionalInt32: proto.Int32(2)}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{OptionalInt32: proto.Int32(1)}, y: &testpb.TestAllTypes{OptionalInt32: proto.Int32(2)}, opts: cmp.Options{ Transform(), FilterField(new(testpb.TestAllTypes), "optional_int64", cmp.Comparer(func(x, y interface{}) bool { return true })), }, want: false, // mismatching filter name }, { x: &testpb.TestAllTypes{OptionalInt32: proto.Int32(1)}, y: &testpb.TestAllTypes{OptionalInt32: proto.Int32(2)}, opts: cmp.Options{ Transform(), FilterField(new(testpb.TestAllTypes), "optional_int32", cmp.Comparer(func(x, y int64) bool { return true })), }, want: false, // matching filter name, but mismatching comparer type }, { x: &testpb.TestAllTypes{OptionalInt32: proto.Int32(1)}, y: &testpb.TestAllTypes{OptionalInt32: proto.Int32(2)}, opts: cmp.Options{ Transform(), FilterField(new(testpb.TestAllTypes), "optional_int32", cmp.Comparer(func(x, y interface{}) bool { return true })), }, want: true, }, { x: &testpb.TestAllTypes{OptionalInt32: proto.Int32(1)}, y: &testpb.TestAllTypes{OptionalInt32: proto.Int32(2)}, opts: cmp.Options{ Transform(), FilterField(new(testpb.TestAllTypes), "optional_int32", cmp.Comparer(func(x, y int32) bool { return true })), }, want: true, }, { x: &testpb.TestAllTypes{RepeatedInt32: []int32{1}}, y: &testpb.TestAllTypes{RepeatedInt32: []int32{2}}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{RepeatedInt32: []int32{1}}, y: &testpb.TestAllTypes{RepeatedInt32: []int32{2}}, opts: cmp.Options{ Transform(), FilterField(new(testpb.TestAllTypes), "repeated_int64", cmp.Comparer(func(x, y interface{}) bool { return true })), }, want: false, // mismatching filter name }, { x: &testpb.TestAllTypes{RepeatedInt32: []int32{1}}, y: &testpb.TestAllTypes{RepeatedInt32: []int32{2}}, opts: cmp.Options{ Transform(), FilterField(new(testpb.TestAllTypes), "repeated_int32", cmp.Comparer(func(x, y []int64) bool { return true })), }, want: false, // matching filter name, but mismatching comparer type }, { x: &testpb.TestAllTypes{RepeatedInt32: []int32{1}}, y: &testpb.TestAllTypes{RepeatedInt32: []int32{2}}, opts: cmp.Options{ Transform(), FilterField(new(testpb.TestAllTypes), "repeated_int32", cmp.Comparer(func(x, y interface{}) bool { return true })), }, want: true, }, { x: &testpb.TestAllTypes{RepeatedInt32: []int32{1}}, y: &testpb.TestAllTypes{RepeatedInt32: []int32{2}}, opts: cmp.Options{ Transform(), FilterField(new(testpb.TestAllTypes), "repeated_int32", cmp.Comparer(func(x, y []int32) bool { return true })), }, want: true, }, { x: &testpb.TestAllTypes{MapInt32Int32: map[int32]int32{1: 1}}, y: &testpb.TestAllTypes{MapInt32Int32: map[int32]int32{2: 2}}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{MapInt32Int32: map[int32]int32{1: 1}}, y: &testpb.TestAllTypes{MapInt32Int32: map[int32]int32{2: 2}}, opts: cmp.Options{ Transform(), FilterField(new(testpb.TestAllTypes), "map_int64_int64", cmp.Comparer(func(x, y interface{}) bool { return true })), }, want: false, // mismatching filter name }, { x: &testpb.TestAllTypes{MapInt32Int32: map[int32]int32{1: 1}}, y: &testpb.TestAllTypes{MapInt32Int32: map[int32]int32{2: 2}}, opts: cmp.Options{ Transform(), FilterField(new(testpb.TestAllTypes), "map_int32_int32", cmp.Comparer(func(x, y map[int64]int64) bool { return true })), }, want: false, // matching filter name, but mismatching comparer type }, { x: &testpb.TestAllTypes{MapInt32Int32: map[int32]int32{1: 1}}, y: &testpb.TestAllTypes{MapInt32Int32: map[int32]int32{2: 2}}, opts: cmp.Options{ Transform(), FilterField(new(testpb.TestAllTypes), "map_int32_int32", cmp.Comparer(func(x, y interface{}) bool { return true })), }, want: true, }, { x: &testpb.TestAllTypes{MapInt32Int32: map[int32]int32{1: 1}}, y: &testpb.TestAllTypes{MapInt32Int32: map[int32]int32{2: 2}}, opts: cmp.Options{ Transform(), FilterField(new(testpb.TestAllTypes), "map_int32_int32", cmp.Comparer(func(x, y map[int32]int32) bool { return true })), }, want: true, }}...) // Test FilterOneof tests = append(tests, []test{{ x: &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofUint32{1}}, y: &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofUint32{2}}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofUint32{1}}, y: &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofUint32{2}}, opts: cmp.Options{ Transform(), FilterOneof(new(testpb.TestAllTypes), "oneof_optional", cmp.Comparer(func(x, y interface{}) bool { return true })), }, want: false, // mismatching filter name }, { x: &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofUint32{1}}, y: &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofUint32{2}}, opts: cmp.Options{ Transform(), FilterOneof(new(testpb.TestAllTypes), "oneof_field", cmp.Comparer(func(x, y string) bool { return true })), }, want: false, // matching filter name, but mismatching comparer type }, { x: &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofUint32{1}}, y: &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofUint32{2}}, opts: cmp.Options{ Transform(), FilterOneof(new(testpb.TestAllTypes), "oneof_field", cmp.Comparer(func(x, y uint32) bool { return true })), }, want: true, }, { x: &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofUint32{1}}, y: &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofUint32{2}}, opts: cmp.Options{ Transform(), FilterOneof(new(testpb.TestAllTypes), "oneof_field", cmp.Comparer(func(x, y interface{}) bool { return true })), }, want: true, }}...) // Test SortRepeated. type higherOrderType struct { M *testpb.TestAllTypes I32s []int32 Es []testpb.TestAllTypes_NestedEnum Ms []*testpb.ForeignMessage } tests = append(tests, []test{{ x: &testpb.TestAllTypes{RepeatedInt32: []int32{3, 2, 1, 2, 3, 3}}, y: &testpb.TestAllTypes{RepeatedInt32: []int32{2, 3, 3, 2, 1, 3}}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{RepeatedInt32: []int32{3, 2, 1, 2, 3, 3}}, y: &testpb.TestAllTypes{RepeatedInt32: []int32{2, 3, 3, 2, 1, 3}}, opts: cmp.Options{ Transform(), SortRepeated(func(x, y int32) bool { return x < y }), }, want: true, }, { x: higherOrderType{ M: &testpb.TestAllTypes{RepeatedInt32: []int32{3, 2, 1, 2, 3, 3}}, I32s: []int32{3, 2, 1, 2, 3, 3}, }, y: higherOrderType{ M: &testpb.TestAllTypes{RepeatedInt32: []int32{2, 3, 3, 2, 1, 3}}, I32s: []int32{2, 3, 3, 2, 1, 3}, }, opts: cmp.Options{ Transform(), SortRepeated(func(x, y int32) bool { return x < y }), }, want: false, // sort does not apply to []int32 outside of a message }, { x: &testpb.TestAllTypes{RepeatedInt32: []int32{3, 2, 1, 2, 3, 3}}, y: &testpb.TestAllTypes{RepeatedInt32: []int32{2, 3, 3, 2, 1, 3}}, opts: cmp.Options{ Transform(), SortRepeated(func(x, y int64) bool { return x < y }), }, want: false, // wrong sort type: int32 != int64 }, { x: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_FOO, testpb.TestAllTypes_BAR, testpb.TestAllTypes_BAZ}}, y: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_BAR, testpb.TestAllTypes_FOO, testpb.TestAllTypes_BAZ}}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_FOO, testpb.TestAllTypes_BAR, testpb.TestAllTypes_BAZ}}, y: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_BAR, testpb.TestAllTypes_FOO, testpb.TestAllTypes_BAZ}}, opts: cmp.Options{ Transform(), SortRepeated(func(x, y testpb.TestAllTypes_NestedEnum) bool { return x < y }), }, want: true, }, { x: higherOrderType{ M: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_FOO, testpb.TestAllTypes_BAR, testpb.TestAllTypes_BAZ}}, Es: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_FOO, testpb.TestAllTypes_BAR, testpb.TestAllTypes_BAZ}, }, y: higherOrderType{ M: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_BAR, testpb.TestAllTypes_FOO, testpb.TestAllTypes_BAZ}}, Es: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_BAR, testpb.TestAllTypes_FOO, testpb.TestAllTypes_BAZ}, }, opts: cmp.Options{ Transform(), SortRepeated(func(x, y testpb.TestAllTypes_NestedEnum) bool { return x < y }), }, want: false, // sort does not apply to []testpb.TestAllTypes_NestedEnum outside of a message }, { x: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_FOO, testpb.TestAllTypes_BAR, testpb.TestAllTypes_BAZ}}, y: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_BAR, testpb.TestAllTypes_FOO, testpb.TestAllTypes_BAZ}}, opts: cmp.Options{ Transform(), SortRepeated(func(x, y testpb.ForeignEnum) bool { return x < y }), }, want: false, // wrong sort type: testpb.TestAllTypes_NestedEnum != testpb.ForeignEnum }, { x: &testpb.TestAllTypes{RepeatedForeignMessage: []*testpb.ForeignMessage{{}, {C: proto.Int32(3)}, nil, {C: proto.Int32(3)}, {C: proto.Int32(5)}, {C: proto.Int32(4)}}}, y: &testpb.TestAllTypes{RepeatedForeignMessage: []*testpb.ForeignMessage{nil, {C: proto.Int32(3)}, {}, {C: proto.Int32(4)}, {C: proto.Int32(3)}, {C: proto.Int32(5)}}}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{RepeatedForeignMessage: []*testpb.ForeignMessage{{}, {C: proto.Int32(3)}, nil, {C: proto.Int32(3)}, {C: proto.Int32(5)}, {C: proto.Int32(4)}}}, y: &testpb.TestAllTypes{RepeatedForeignMessage: []*testpb.ForeignMessage{nil, {C: proto.Int32(3)}, {}, {C: proto.Int32(4)}, {C: proto.Int32(3)}, {C: proto.Int32(5)}}}, opts: cmp.Options{ Transform(), SortRepeated(func(x, y *testpb.ForeignMessage) bool { return x.GetC() < y.GetC() }), }, want: true, }, { x: higherOrderType{ M: &testpb.TestAllTypes{RepeatedForeignMessage: []*testpb.ForeignMessage{{}, {C: proto.Int32(3)}, nil, {C: proto.Int32(3)}, {C: proto.Int32(5)}, {C: proto.Int32(4)}}}, Ms: []*testpb.ForeignMessage{{}, {C: proto.Int32(3)}, nil, {C: proto.Int32(3)}, {C: proto.Int32(5)}, {C: proto.Int32(4)}}, }, y: higherOrderType{ M: &testpb.TestAllTypes{RepeatedForeignMessage: []*testpb.ForeignMessage{nil, {C: proto.Int32(3)}, {}, {C: proto.Int32(4)}, {C: proto.Int32(3)}, {C: proto.Int32(5)}}}, Ms: []*testpb.ForeignMessage{nil, {C: proto.Int32(3)}, {}, {C: proto.Int32(4)}, {C: proto.Int32(3)}, {C: proto.Int32(5)}}, }, opts: cmp.Options{ Transform(), SortRepeated(func(x, y *testpb.ForeignMessage) bool { return x.GetC() < y.GetC() }), }, want: false, // sort does not apply to []*testpb.ForeignMessage outside of a message }, { x: &testpb.TestAllTypes{RepeatedForeignMessage: []*testpb.ForeignMessage{{}, {C: proto.Int32(3)}, nil, {C: proto.Int32(3)}, {C: proto.Int32(5)}, {C: proto.Int32(4)}}}, y: &testpb.TestAllTypes{RepeatedForeignMessage: []*testpb.ForeignMessage{nil, {C: proto.Int32(3)}, {}, {C: proto.Int32(4)}, {C: proto.Int32(3)}, {C: proto.Int32(5)}}}, opts: cmp.Options{ Transform(), SortRepeated(func(x, y *testpb.TestAllTypes_NestedMessage) bool { return x.GetA() < y.GetA() }), }, want: false, // wrong sort type: *testpb.ForeignMessage != *testpb.TestAllTypes_NestedMessage }, { x: &testpb.TestAllTypes{ RepeatedInt32: []int32{-32, +32}, RepeatedSint32: []int32{-32, +32}, RepeatedSfixed32: []int32{-32, +32}, RepeatedInt64: []int64{-64, +64}, RepeatedSint64: []int64{-64, +64}, RepeatedSfixed64: []int64{-64, +64}, RepeatedUint32: []uint32{0, 32}, RepeatedFixed32: []uint32{0, 32}, RepeatedUint64: []uint64{0, 64}, RepeatedFixed64: []uint64{0, 64}, }, y: &testpb.TestAllTypes{ RepeatedInt32: []int32{+32, -32}, RepeatedSint32: []int32{+32, -32}, RepeatedSfixed32: []int32{+32, -32}, RepeatedInt64: []int64{+64, -64}, RepeatedSint64: []int64{+64, -64}, RepeatedSfixed64: []int64{+64, -64}, RepeatedUint32: []uint32{32, 0}, RepeatedFixed32: []uint32{32, 0}, RepeatedUint64: []uint64{64, 0}, RepeatedFixed64: []uint64{64, 0}, }, opts: cmp.Options{ Transform(), SortRepeated(func(x, y int32) bool { return x < y }), SortRepeated(func(x, y int64) bool { return x < y }), SortRepeated(func(x, y uint32) bool { return x < y }), SortRepeated(func(x, y uint64) bool { return x < y }), }, want: true, }}...) // Test SortRepeatedFields. tests = append(tests, []test{{ x: &testpb.TestAllTypes{RepeatedInt32: []int32{3, 2, 1, 2, 3, 3}}, y: &testpb.TestAllTypes{RepeatedInt32: []int32{2, 3, 3, 2, 1, 3}}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{RepeatedInt32: []int32{3, 2, 1, 2, 3, 3}}, y: &testpb.TestAllTypes{RepeatedInt32: []int32{2, 3, 3, 2, 1, 3}}, opts: cmp.Options{ Transform(), SortRepeatedFields(new(testpb.TestAllTypes), "repeated_int32"), }, want: true, }, { x: &testpb.TestAllTypes{RepeatedInt32: []int32{3, 2, 1, 2, 3, 3}}, y: &testpb.TestAllTypes{RepeatedInt32: []int32{2, 3, 3, 2, 1, 3}}, opts: cmp.Options{ Transform(), SortRepeatedFields(new(testpb.TestAllTypes), "repeated_int64"), }, want: false, // wrong field: repeated_int32 != repeated_int64 }, { x: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_FOO, testpb.TestAllTypes_BAR, testpb.TestAllTypes_BAZ}}, y: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_BAR, testpb.TestAllTypes_FOO, testpb.TestAllTypes_BAZ}}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_FOO, testpb.TestAllTypes_BAR, testpb.TestAllTypes_BAZ}}, y: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_BAR, testpb.TestAllTypes_FOO, testpb.TestAllTypes_BAZ}}, opts: cmp.Options{ Transform(), SortRepeatedFields(new(testpb.TestAllTypes), "repeated_nested_enum"), }, want: true, }, { x: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_FOO, testpb.TestAllTypes_BAR, testpb.TestAllTypes_BAZ}}, y: &testpb.TestAllTypes{RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_BAR, testpb.TestAllTypes_FOO, testpb.TestAllTypes_BAZ}}, opts: cmp.Options{ Transform(), SortRepeatedFields(new(testpb.TestAllTypes), "repeated_foreign_enum"), }, want: false, // wrong field: repeated_nested_enum != repeated_foreign_enum }, { x: &testpb.TestAllTypes{RepeatedForeignMessage: []*testpb.ForeignMessage{{}, {C: proto.Int32(3)}, nil, {C: proto.Int32(3)}, {C: proto.Int32(5)}, {C: proto.Int32(4)}}}, y: &testpb.TestAllTypes{RepeatedForeignMessage: []*testpb.ForeignMessage{nil, {C: proto.Int32(3)}, {}, {C: proto.Int32(4)}, {C: proto.Int32(3)}, {C: proto.Int32(5)}}}, opts: cmp.Options{Transform()}, want: false, }, { x: &testpb.TestAllTypes{RepeatedForeignMessage: []*testpb.ForeignMessage{{}, {C: proto.Int32(3)}, nil, {C: proto.Int32(3)}, {C: proto.Int32(5)}, {C: proto.Int32(4)}}}, y: &testpb.TestAllTypes{RepeatedForeignMessage: []*testpb.ForeignMessage{nil, {C: proto.Int32(3)}, {}, {C: proto.Int32(4)}, {C: proto.Int32(3)}, {C: proto.Int32(5)}}}, opts: cmp.Options{ Transform(), SortRepeatedFields(new(testpb.TestAllTypes), "repeated_foreign_message"), }, want: true, }, { x: &testpb.TestAllTypes{RepeatedForeignMessage: []*testpb.ForeignMessage{{}, {C: proto.Int32(3)}, nil, {C: proto.Int32(3)}, {C: proto.Int32(5)}, {C: proto.Int32(4)}}}, y: &testpb.TestAllTypes{RepeatedForeignMessage: []*testpb.ForeignMessage{nil, {C: proto.Int32(3)}, {}, {C: proto.Int32(4)}, {C: proto.Int32(3)}, {C: proto.Int32(5)}}}, opts: cmp.Options{ Transform(), SortRepeatedFields(new(testpb.TestAllTypes), "repeated_nested_message"), }, want: false, // wrong field: repeated_foreign_message != repeated_nested_message }, { x: &testpb.TestAllTypes{ RepeatedBool: []bool{false, true}, RepeatedInt32: []int32{-32, +32}, RepeatedInt64: []int64{-64, +64}, RepeatedUint32: []uint32{0, 32}, RepeatedUint64: []uint64{0, 64}, RepeatedFloat: []float32{-32.32, +32.32}, RepeatedDouble: []float64{-64.64, +64.64}, RepeatedString: []string{"hello", "world"}, RepeatedBytes: [][]byte{[]byte("hello"), []byte("world")}, RepeatedForeignEnum: []testpb.ForeignEnum{testpb.ForeignEnum_FOREIGN_FOO, testpb.ForeignEnum_FOREIGN_BAR}, RepeatedForeignMessage: []*testpb.ForeignMessage{{C: proto.Int32(-1)}, {C: proto.Int32(+1)}}, }, y: &testpb.TestAllTypes{ RepeatedBool: []bool{true, false}, RepeatedInt32: []int32{+32, -32}, RepeatedInt64: []int64{+64, -64}, RepeatedUint32: []uint32{32, 0}, RepeatedUint64: []uint64{64, 0}, RepeatedFloat: []float32{+32.32, -32.32}, RepeatedDouble: []float64{+64.64, -64.64}, RepeatedString: []string{"world", "hello"}, RepeatedBytes: [][]byte{[]byte("world"), []byte("hello")}, RepeatedForeignEnum: []testpb.ForeignEnum{testpb.ForeignEnum_FOREIGN_BAR, testpb.ForeignEnum_FOREIGN_FOO}, RepeatedForeignMessage: []*testpb.ForeignMessage{{C: proto.Int32(+1)}, {C: proto.Int32(-1)}}, }, opts: cmp.Options{ Transform(), SortRepeatedFields(new(testpb.TestAllTypes), "repeated_bool", "repeated_int32", "repeated_int64", "repeated_uint32", "repeated_uint64", "repeated_float", "repeated_double", "repeated_string", "repeated_bytes", "repeated_foreign_enum", "repeated_foreign_message", ), }, want: true, }}...) for _, tt := range tests { t.Run("", func(t *testing.T) { got := cmp.Equal(tt.x, tt.y, tt.opts) if got != tt.want { if !got { t.Errorf("cmp.Equal = false, want true; diff:\n%v", cmp.Diff(tt.x, tt.y, tt.opts)) } else { t.Errorf("cmp.Equal = true, want false") } } }) } } type setField struct { num protoreflect.FieldNumber val interface{} } type setUnknown struct { raw protoreflect.RawFields } type setExtension struct { typ protoreflect.ExtensionType val interface{} } // apply applies a sequence of mutating operations to m. func apply(m proto.Message, ops ...interface{}) proto.Message { mr := m.ProtoReflect() md := mr.Descriptor() for _, op := range ops { switch op := op.(type) { case setField: fd := md.Fields().ByNumber(op.num) mr.Set(fd, protoreflect.ValueOf(op.val)) case setUnknown: mr.SetUnknown(op.raw) case setExtension: mr.Set(op.typ.TypeDescriptor(), protoreflect.ValueOf(op.val)) } } return m } func TestSort(t *testing.T) { t.Run("F32", func(t *testing.T) { want := []float32{ float32(math.Float32frombits(0xffc00000)), // -NaN float32(math.Inf(-1)), float32(-math.MaxFloat32), float32(-123.456), float32(-math.SmallestNonzeroFloat32), float32(math.Copysign(0, -1)), float32(math.Copysign(0, +1)), float32(+math.SmallestNonzeroFloat32), float32(+123.456), float32(+math.MaxFloat32), float32(math.Inf(+1)), float32(math.Float32frombits(0x7fc00000)), // +NaN } for i := 0; i < 10; i++ { t.Run("", func(t *testing.T) { got := append([]float32(nil), want...) rn := rand.New(rand.NewSource(int64(i))) for i, j := range rn.Perm(len(got)) { got[i], got[j] = got[j], got[i] } sort.Slice(got, func(i, j int) bool { return lessF32(got[i], got[j]) }) cmpF32s := cmp.Comparer(func(x, y float32) bool { return math.Float32bits(x) == math.Float32bits(y) }) if diff := cmp.Diff(want, got, cmpF32s); diff != "" { t.Errorf("Sort mismatch (-want +got):\n%s", diff) } }) } }) t.Run("F64", func(t *testing.T) { want := []float64{ float64(math.Float64frombits(0xfff8000000000001)), // -NaN float64(math.Inf(-1)), float64(-math.MaxFloat64), float64(-123.456), float64(-math.SmallestNonzeroFloat64), float64(math.Copysign(0, -1)), float64(math.Copysign(0, +1)), float64(+math.SmallestNonzeroFloat64), float64(+123.456), float64(+math.MaxFloat64), float64(math.Inf(+1)), float64(math.Float64frombits(0x7ff8000000000001)), // +NaN } for i := 0; i < 10; i++ { t.Run("", func(t *testing.T) { got := append([]float64(nil), want...) rn := rand.New(rand.NewSource(int64(i))) for i, j := range rn.Perm(len(got)) { got[i], got[j] = got[j], got[i] } sort.Slice(got, func(i, j int) bool { return lessF64(got[i], got[j]) }) cmpF64s := cmp.Comparer(func(x, y float64) bool { return math.Float64bits(x) == math.Float64bits(y) }) if diff := cmp.Diff(want, got, cmpF64s); diff != "" { t.Errorf("Sort mismatch (-want +got):\n%s", diff) } }) } }) } golang-google-protobuf-1.27.1/testing/protocmp/xform.go000066400000000000000000000255021411250152500231630ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package protocmp provides protobuf specific options for the // "github.com/google/go-cmp/cmp" package. // // The primary feature is the Transform option, which transform proto.Message // types into a Message map that is suitable for cmp to introspect upon. // All other options in this package must be used in conjunction with Transform. package protocmp import ( "reflect" "strconv" "github.com/google/go-cmp/cmp" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/internal/msgfmt" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/runtime/protoiface" "google.golang.org/protobuf/runtime/protoimpl" ) var ( enumV2Type = reflect.TypeOf((*protoreflect.Enum)(nil)).Elem() messageV1Type = reflect.TypeOf((*protoiface.MessageV1)(nil)).Elem() messageV2Type = reflect.TypeOf((*proto.Message)(nil)).Elem() ) // Enum is a dynamic representation of a protocol buffer enum that is // suitable for cmp.Equal and cmp.Diff to compare upon. type Enum struct { num protoreflect.EnumNumber ed protoreflect.EnumDescriptor } // Descriptor returns the enum descriptor. // It returns nil for a zero Enum value. func (e Enum) Descriptor() protoreflect.EnumDescriptor { return e.ed } // Number returns the enum value as an integer. func (e Enum) Number() protoreflect.EnumNumber { return e.num } // Equal reports whether e1 and e2 represent the same enum value. func (e1 Enum) Equal(e2 Enum) bool { if e1.ed.FullName() != e2.ed.FullName() { return false } return e1.num == e2.num } // String returns the name of the enum value if known (e.g., "ENUM_VALUE"), // otherwise it returns the formatted decimal enum number (e.g., "14"). func (e Enum) String() string { if ev := e.ed.Values().ByNumber(e.num); ev != nil { return string(ev.Name()) } return strconv.Itoa(int(e.num)) } const ( messageTypeKey = "@type" messageInvalidKey = "@invalid" ) type messageType struct { md protoreflect.MessageDescriptor xds map[string]protoreflect.ExtensionDescriptor } func (t messageType) String() string { return string(t.md.FullName()) } func (t1 messageType) Equal(t2 messageType) bool { return t1.md.FullName() == t2.md.FullName() } // Message is a dynamic representation of a protocol buffer message that is // suitable for cmp.Equal and cmp.Diff to directly operate upon. // // Every populated known field (excluding extension fields) is stored in the map // with the key being the short name of the field (e.g., "field_name") and // the value determined by the kind and cardinality of the field. // // Singular scalars are represented by the same Go type as protoreflect.Value, // singular messages are represented by the Message type, // singular enums are represented by the Enum type, // list fields are represented as a Go slice, and // map fields are represented as a Go map. // // Every populated extension field is stored in the map with the key being the // full name of the field surrounded by brackets (e.g., "[extension.full.name]") // and the value determined according to the same rules as known fields. // // Every unknown field is stored in the map with the key being the field number // encoded as a decimal string (e.g., "132") and the value being the raw bytes // of the encoded field (as the protoreflect.RawFields type). // // Message values must not be created by or mutated by users. type Message map[string]interface{} // Descriptor return the message descriptor. // It returns nil for a zero Message value. func (m Message) Descriptor() protoreflect.MessageDescriptor { mt, _ := m[messageTypeKey].(messageType) return mt.md } // ProtoReflect returns a reflective view of m. // It only implements the read-only operations of protoreflect.Message. // Calling any mutating operations on m panics. func (m Message) ProtoReflect() protoreflect.Message { return (reflectMessage)(m) } // ProtoMessage is a marker method from the legacy message interface. func (m Message) ProtoMessage() {} // Reset is the required Reset method from the legacy message interface. func (m Message) Reset() { panic("invalid mutation of a read-only message") } // String returns a formatted string for the message. // It is intended for human debugging and has no guarantees about its // exact format or the stability of its output. func (m Message) String() string { switch { case m == nil: return "" case !m.ProtoReflect().IsValid(): return "" default: return msgfmt.Format(m) } } type option struct{} // Transform returns a cmp.Option that converts each proto.Message to a Message. // The transformation does not mutate nor alias any converted messages. // // The google.protobuf.Any message is automatically unmarshaled such that the // "value" field is a Message representing the underlying message value // assuming it could be resolved and properly unmarshaled. // // This does not directly transform higher-order composite Go types. // For example, []*foopb.Message is not transformed into []Message, // but rather the individual message elements of the slice are transformed. // // Note that there are currently no custom options for Transform, // but the use of an unexported type keeps the future open. func Transform(...option) cmp.Option { // addrType returns a pointer to t if t isn't a pointer or interface. addrType := func(t reflect.Type) reflect.Type { if k := t.Kind(); k == reflect.Interface || k == reflect.Ptr { return t } return reflect.PtrTo(t) } // TODO: Should this transform protoreflect.Enum types to Enum as well? return cmp.FilterPath(func(p cmp.Path) bool { ps := p.Last() if isMessageType(addrType(ps.Type())) { return true } // Check whether the concrete values of an interface both satisfy // the Message interface. if ps.Type().Kind() == reflect.Interface { vx, vy := ps.Values() if !vx.IsValid() || vx.IsNil() || !vy.IsValid() || vy.IsNil() { return false } return isMessageType(addrType(vx.Elem().Type())) && isMessageType(addrType(vy.Elem().Type())) } return false }, cmp.Transformer("protocmp.Transform", func(v interface{}) Message { // For user convenience, shallow copy the message value if necessary // in order for it to implement the message interface. if rv := reflect.ValueOf(v); rv.IsValid() && rv.Kind() != reflect.Ptr && !isMessageType(rv.Type()) { pv := reflect.New(rv.Type()) pv.Elem().Set(rv) v = pv.Interface() } m := protoimpl.X.MessageOf(v) switch { case m == nil: return nil case !m.IsValid(): return Message{messageTypeKey: messageType{md: m.Descriptor()}, messageInvalidKey: true} default: return transformMessage(m) } })) } func isMessageType(t reflect.Type) bool { // Avoid tranforming the Message itself. if t == reflect.TypeOf(Message(nil)) || t == reflect.TypeOf((*Message)(nil)) { return false } return t.Implements(messageV1Type) || t.Implements(messageV2Type) } func transformMessage(m protoreflect.Message) Message { mx := Message{} mt := messageType{md: m.Descriptor(), xds: make(map[string]protoreflect.FieldDescriptor)} // Handle known and extension fields. m.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { s := fd.TextName() if fd.IsExtension() { mt.xds[s] = fd } switch { case fd.IsList(): mx[s] = transformList(fd, v.List()) case fd.IsMap(): mx[s] = transformMap(fd, v.Map()) default: mx[s] = transformSingular(fd, v) } return true }) // Handle unknown fields. for b := m.GetUnknown(); len(b) > 0; { num, _, n := protowire.ConsumeField(b) s := strconv.Itoa(int(num)) b2, _ := mx[s].(protoreflect.RawFields) mx[s] = append(b2, b[:n]...) b = b[n:] } // Expand Any messages. if mt.md.FullName() == genid.Any_message_fullname { // TODO: Expose Transform option to specify a custom resolver? s, _ := mx[string(genid.Any_TypeUrl_field_name)].(string) b, _ := mx[string(genid.Any_Value_field_name)].([]byte) mt, err := protoregistry.GlobalTypes.FindMessageByURL(s) if mt != nil && err == nil { m2 := mt.New() err := proto.UnmarshalOptions{AllowPartial: true}.Unmarshal(b, m2.Interface()) if err == nil { mx[string(genid.Any_Value_field_name)] = transformMessage(m2) } } } mx[messageTypeKey] = mt return mx } func transformList(fd protoreflect.FieldDescriptor, lv protoreflect.List) interface{} { t := protoKindToGoType(fd.Kind()) rv := reflect.MakeSlice(reflect.SliceOf(t), lv.Len(), lv.Len()) for i := 0; i < lv.Len(); i++ { v := reflect.ValueOf(transformSingular(fd, lv.Get(i))) rv.Index(i).Set(v) } return rv.Interface() } func transformMap(fd protoreflect.FieldDescriptor, mv protoreflect.Map) interface{} { kfd := fd.MapKey() vfd := fd.MapValue() kt := protoKindToGoType(kfd.Kind()) vt := protoKindToGoType(vfd.Kind()) rv := reflect.MakeMapWithSize(reflect.MapOf(kt, vt), mv.Len()) mv.Range(func(k protoreflect.MapKey, v protoreflect.Value) bool { kv := reflect.ValueOf(transformSingular(kfd, k.Value())) vv := reflect.ValueOf(transformSingular(vfd, v)) rv.SetMapIndex(kv, vv) return true }) return rv.Interface() } func transformSingular(fd protoreflect.FieldDescriptor, v protoreflect.Value) interface{} { switch fd.Kind() { case protoreflect.EnumKind: return Enum{num: v.Enum(), ed: fd.Enum()} case protoreflect.MessageKind, protoreflect.GroupKind: return transformMessage(v.Message()) case protoreflect.BytesKind: // The protoreflect API does not specify whether an empty bytes is // guaranteed to be nil or not. Always return non-nil bytes to avoid // leaking information about the concrete proto.Message implementation. if len(v.Bytes()) == 0 { return []byte{} } return v.Bytes() default: return v.Interface() } } func protoKindToGoType(k protoreflect.Kind) reflect.Type { switch k { case protoreflect.BoolKind: return reflect.TypeOf(bool(false)) case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: return reflect.TypeOf(int32(0)) case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: return reflect.TypeOf(int64(0)) case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: return reflect.TypeOf(uint32(0)) case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: return reflect.TypeOf(uint64(0)) case protoreflect.FloatKind: return reflect.TypeOf(float32(0)) case protoreflect.DoubleKind: return reflect.TypeOf(float64(0)) case protoreflect.StringKind: return reflect.TypeOf(string("")) case protoreflect.BytesKind: return reflect.TypeOf([]byte(nil)) case protoreflect.EnumKind: return reflect.TypeOf(Enum{}) case protoreflect.MessageKind, protoreflect.GroupKind: return reflect.TypeOf(Message{}) default: panic("invalid kind") } } golang-google-protobuf-1.27.1/testing/protocmp/xform_test.go000066400000000000000000000301411411250152500242150ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protocmp import ( "testing" "github.com/google/go-cmp/cmp" "google.golang.org/protobuf/internal/detrand" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/testing/protopack" testpb "google.golang.org/protobuf/internal/testprotos/test" ) func init() { detrand.Disable() } func TestTransform(t *testing.T) { tests := []struct { in proto.Message want Message }{{ in: &testpb.TestAllTypes{ OptionalBool: proto.Bool(false), OptionalInt32: proto.Int32(-32), OptionalInt64: proto.Int64(-64), OptionalUint32: proto.Uint32(32), OptionalUint64: proto.Uint64(64), OptionalFloat: proto.Float32(32.32), OptionalDouble: proto.Float64(64.64), OptionalString: proto.String("string"), OptionalBytes: []byte("bytes"), OptionalNestedEnum: testpb.TestAllTypes_NEG.Enum(), OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{A: proto.Int32(5)}, }, want: Message{ messageTypeKey: messageTypeOf(&testpb.TestAllTypes{}), "optional_bool": bool(false), "optional_int32": int32(-32), "optional_int64": int64(-64), "optional_uint32": uint32(32), "optional_uint64": uint64(64), "optional_float": float32(32.32), "optional_double": float64(64.64), "optional_string": string("string"), "optional_bytes": []byte("bytes"), "optional_nested_enum": enumOf(testpb.TestAllTypes_NEG), "optional_nested_message": Message{messageTypeKey: messageTypeOf(&testpb.TestAllTypes_NestedMessage{}), "a": int32(5)}, }, }, { in: &testpb.TestAllTypes{ RepeatedBool: []bool{false, true}, RepeatedInt32: []int32{32, -32}, RepeatedInt64: []int64{64, -64}, RepeatedUint32: []uint32{0, 32}, RepeatedUint64: []uint64{0, 64}, RepeatedFloat: []float32{0, 32.32}, RepeatedDouble: []float64{0, 64.64}, RepeatedString: []string{"s1", "s2"}, RepeatedBytes: [][]byte{{1}, {2}}, RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{ testpb.TestAllTypes_FOO, testpb.TestAllTypes_BAR, }, RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{ {A: proto.Int32(5)}, {A: proto.Int32(-5)}, }, }, want: Message{ messageTypeKey: messageTypeOf(&testpb.TestAllTypes{}), "repeated_bool": []bool{false, true}, "repeated_int32": []int32{32, -32}, "repeated_int64": []int64{64, -64}, "repeated_uint32": []uint32{0, 32}, "repeated_uint64": []uint64{0, 64}, "repeated_float": []float32{0, 32.32}, "repeated_double": []float64{0, 64.64}, "repeated_string": []string{"s1", "s2"}, "repeated_bytes": [][]byte{{1}, {2}}, "repeated_nested_enum": []Enum{ enumOf(testpb.TestAllTypes_FOO), enumOf(testpb.TestAllTypes_BAR), }, "repeated_nested_message": []Message{ {messageTypeKey: messageTypeOf(&testpb.TestAllTypes_NestedMessage{}), "a": int32(5)}, {messageTypeKey: messageTypeOf(&testpb.TestAllTypes_NestedMessage{}), "a": int32(-5)}, }, }, }, { in: &testpb.TestAllTypes{ MapBoolBool: map[bool]bool{true: false}, MapInt32Int32: map[int32]int32{-32: 32}, MapInt64Int64: map[int64]int64{-64: 64}, MapUint32Uint32: map[uint32]uint32{0: 32}, MapUint64Uint64: map[uint64]uint64{0: 64}, MapInt32Float: map[int32]float32{32: 32.32}, MapInt32Double: map[int32]float64{64: 64.64}, MapStringString: map[string]string{"k": "v", "empty": ""}, MapStringBytes: map[string][]byte{"k": []byte("v"), "empty": nil}, MapStringNestedEnum: map[string]testpb.TestAllTypes_NestedEnum{ "k": testpb.TestAllTypes_FOO, }, MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{ "k": {A: proto.Int32(5)}, }, }, want: Message{ messageTypeKey: messageTypeOf(&testpb.TestAllTypes{}), "map_bool_bool": map[bool]bool{true: false}, "map_int32_int32": map[int32]int32{-32: 32}, "map_int64_int64": map[int64]int64{-64: 64}, "map_uint32_uint32": map[uint32]uint32{0: 32}, "map_uint64_uint64": map[uint64]uint64{0: 64}, "map_int32_float": map[int32]float32{32: 32.32}, "map_int32_double": map[int32]float64{64: 64.64}, "map_string_string": map[string]string{"k": "v", "empty": ""}, "map_string_bytes": map[string][]byte{"k": []byte("v"), "empty": []byte{}}, "map_string_nested_enum": map[string]Enum{ "k": enumOf(testpb.TestAllTypes_FOO), }, "map_string_nested_message": map[string]Message{ "k": {messageTypeKey: messageTypeOf(&testpb.TestAllTypes_NestedMessage{}), "a": int32(5)}, }, }, }, { in: func() proto.Message { m := &testpb.TestAllExtensions{} proto.SetExtension(m, testpb.E_OptionalBool, bool(false)) proto.SetExtension(m, testpb.E_OptionalInt32, int32(-32)) proto.SetExtension(m, testpb.E_OptionalInt64, int64(-64)) proto.SetExtension(m, testpb.E_OptionalUint32, uint32(32)) proto.SetExtension(m, testpb.E_OptionalUint64, uint64(64)) proto.SetExtension(m, testpb.E_OptionalFloat, float32(32.32)) proto.SetExtension(m, testpb.E_OptionalDouble, float64(64.64)) proto.SetExtension(m, testpb.E_OptionalString, string("string")) proto.SetExtension(m, testpb.E_OptionalBytes, []byte("bytes")) proto.SetExtension(m, testpb.E_OptionalNestedEnum, testpb.TestAllTypes_NEG) proto.SetExtension(m, testpb.E_OptionalNestedMessage, &testpb.TestAllExtensions_NestedMessage{A: proto.Int32(5)}) return m }(), want: Message{ messageTypeKey: messageTypeOf(&testpb.TestAllExtensions{}), "[goproto.proto.test.optional_bool]": bool(false), "[goproto.proto.test.optional_int32]": int32(-32), "[goproto.proto.test.optional_int64]": int64(-64), "[goproto.proto.test.optional_uint32]": uint32(32), "[goproto.proto.test.optional_uint64]": uint64(64), "[goproto.proto.test.optional_float]": float32(32.32), "[goproto.proto.test.optional_double]": float64(64.64), "[goproto.proto.test.optional_string]": string("string"), "[goproto.proto.test.optional_bytes]": []byte("bytes"), "[goproto.proto.test.optional_nested_enum]": enumOf(testpb.TestAllTypes_NEG), "[goproto.proto.test.optional_nested_message]": Message{messageTypeKey: messageTypeOf(&testpb.TestAllExtensions_NestedMessage{}), "a": int32(5)}, }, }, { in: func() proto.Message { m := &testpb.TestAllExtensions{} proto.SetExtension(m, testpb.E_RepeatedBool, []bool{false, true}) proto.SetExtension(m, testpb.E_RepeatedInt32, []int32{32, -32}) proto.SetExtension(m, testpb.E_RepeatedInt64, []int64{64, -64}) proto.SetExtension(m, testpb.E_RepeatedUint32, []uint32{0, 32}) proto.SetExtension(m, testpb.E_RepeatedUint64, []uint64{0, 64}) proto.SetExtension(m, testpb.E_RepeatedFloat, []float32{0, 32.32}) proto.SetExtension(m, testpb.E_RepeatedDouble, []float64{0, 64.64}) proto.SetExtension(m, testpb.E_RepeatedString, []string{"s1", "s2"}) proto.SetExtension(m, testpb.E_RepeatedBytes, [][]byte{{1}, {2}}) proto.SetExtension(m, testpb.E_RepeatedNestedEnum, []testpb.TestAllTypes_NestedEnum{ testpb.TestAllTypes_FOO, testpb.TestAllTypes_BAR, }) proto.SetExtension(m, testpb.E_RepeatedNestedMessage, []*testpb.TestAllExtensions_NestedMessage{ {A: proto.Int32(5)}, {A: proto.Int32(-5)}, }) return m }(), want: Message{ messageTypeKey: messageTypeOf(&testpb.TestAllExtensions{}), "[goproto.proto.test.repeated_bool]": []bool{false, true}, "[goproto.proto.test.repeated_int32]": []int32{32, -32}, "[goproto.proto.test.repeated_int64]": []int64{64, -64}, "[goproto.proto.test.repeated_uint32]": []uint32{0, 32}, "[goproto.proto.test.repeated_uint64]": []uint64{0, 64}, "[goproto.proto.test.repeated_float]": []float32{0, 32.32}, "[goproto.proto.test.repeated_double]": []float64{0, 64.64}, "[goproto.proto.test.repeated_string]": []string{"s1", "s2"}, "[goproto.proto.test.repeated_bytes]": [][]byte{{1}, {2}}, "[goproto.proto.test.repeated_nested_enum]": []Enum{ enumOf(testpb.TestAllTypes_FOO), enumOf(testpb.TestAllTypes_BAR), }, "[goproto.proto.test.repeated_nested_message]": []Message{ {messageTypeKey: messageTypeOf(&testpb.TestAllExtensions_NestedMessage{}), "a": int32(5)}, {messageTypeKey: messageTypeOf(&testpb.TestAllExtensions_NestedMessage{}), "a": int32(-5)}, }, }, }, { in: func() proto.Message { m := &testpb.TestAllTypes{} m.ProtoReflect().SetUnknown(protopack.Message{ protopack.Tag{Number: 50000, Type: protopack.VarintType}, protopack.Uvarint(100), protopack.Tag{Number: 50001, Type: protopack.Fixed32Type}, protopack.Uint32(200), protopack.Tag{Number: 50002, Type: protopack.Fixed64Type}, protopack.Uint64(300), protopack.Tag{Number: 50003, Type: protopack.BytesType}, protopack.String("hello"), protopack.Message{ protopack.Tag{Number: 50004, Type: protopack.StartGroupType}, protopack.Tag{Number: 1, Type: protopack.VarintType}, protopack.Uvarint(100), protopack.Tag{Number: 1, Type: protopack.Fixed32Type}, protopack.Uint32(200), protopack.Tag{Number: 1, Type: protopack.Fixed64Type}, protopack.Uint64(300), protopack.Tag{Number: 1, Type: protopack.BytesType}, protopack.String("hello"), protopack.Message{ protopack.Tag{Number: 1, Type: protopack.StartGroupType}, protopack.Tag{Number: 1, Type: protopack.VarintType}, protopack.Uvarint(100), protopack.Tag{Number: 1, Type: protopack.Fixed32Type}, protopack.Uint32(200), protopack.Tag{Number: 1, Type: protopack.Fixed64Type}, protopack.Uint64(300), protopack.Tag{Number: 1, Type: protopack.BytesType}, protopack.String("hello"), protopack.Tag{Number: 1, Type: protopack.EndGroupType}, }, protopack.Tag{Number: 50004, Type: protopack.EndGroupType}, }, }.Marshal()) return m }(), want: Message{ messageTypeKey: messageTypeOf(&testpb.TestAllTypes{}), "50000": protoreflect.RawFields(protopack.Message{protopack.Tag{Number: 50000, Type: protopack.VarintType}, protopack.Uvarint(100)}.Marshal()), "50001": protoreflect.RawFields(protopack.Message{protopack.Tag{Number: 50001, Type: protopack.Fixed32Type}, protopack.Uint32(200)}.Marshal()), "50002": protoreflect.RawFields(protopack.Message{protopack.Tag{Number: 50002, Type: protopack.Fixed64Type}, protopack.Uint64(300)}.Marshal()), "50003": protoreflect.RawFields(protopack.Message{protopack.Tag{Number: 50003, Type: protopack.BytesType}, protopack.String("hello")}.Marshal()), "50004": protoreflect.RawFields(protopack.Message{ protopack.Tag{Number: 50004, Type: protopack.StartGroupType}, protopack.Tag{Number: 1, Type: protopack.VarintType}, protopack.Uvarint(100), protopack.Tag{Number: 1, Type: protopack.Fixed32Type}, protopack.Uint32(200), protopack.Tag{Number: 1, Type: protopack.Fixed64Type}, protopack.Uint64(300), protopack.Tag{Number: 1, Type: protopack.BytesType}, protopack.String("hello"), protopack.Message{ protopack.Tag{Number: 1, Type: protopack.StartGroupType}, protopack.Tag{Number: 1, Type: protopack.VarintType}, protopack.Uvarint(100), protopack.Tag{Number: 1, Type: protopack.Fixed32Type}, protopack.Uint32(200), protopack.Tag{Number: 1, Type: protopack.Fixed64Type}, protopack.Uint64(300), protopack.Tag{Number: 1, Type: protopack.BytesType}, protopack.String("hello"), protopack.Tag{Number: 1, Type: protopack.EndGroupType}, }, protopack.Tag{Number: 50004, Type: protopack.EndGroupType}, }.Marshal()), }, }} for _, tt := range tests { t.Run("", func(t *testing.T) { got := transformMessage(tt.in.ProtoReflect()) if diff := cmp.Diff(tt.want, got); diff != "" { t.Errorf("Transform() mismatch (-want +got):\n%v", diff) } }) } } func enumOf(e protoreflect.Enum) Enum { return Enum{e.Number(), e.Descriptor()} } func messageTypeOf(m protoreflect.ProtoMessage) messageType { return messageType{md: m.ProtoReflect().Descriptor()} } golang-google-protobuf-1.27.1/testing/protopack/000077500000000000000000000000001411250152500216345ustar00rootroot00000000000000golang-google-protobuf-1.27.1/testing/protopack/pack.go000066400000000000000000000517351411250152500231140ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package protopack enables manual encoding and decoding of protobuf wire data. // // This package is intended for use in debugging and/or creation of test data. // Proper usage of this package requires knowledge of the wire format. // // See https://developers.google.com/protocol-buffers/docs/encoding. package protopack import ( "fmt" "io" "math" "path" "reflect" "strconv" "strings" "unicode" "unicode/utf8" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/reflect/protoreflect" ) // Number is the field number; aliased from the protowire package for convenience. type Number = protowire.Number // Number type constants; copied from the protowire package for convenience. const ( MinValidNumber Number = protowire.MinValidNumber FirstReservedNumber Number = protowire.FirstReservedNumber LastReservedNumber Number = protowire.LastReservedNumber MaxValidNumber Number = protowire.MaxValidNumber ) // Type is the wire type; aliased from the protowire package for convenience. type Type = protowire.Type // Wire type constants; copied from the protowire package for convenience. const ( VarintType Type = protowire.VarintType Fixed32Type Type = protowire.Fixed32Type Fixed64Type Type = protowire.Fixed64Type BytesType Type = protowire.BytesType StartGroupType Type = protowire.StartGroupType EndGroupType Type = protowire.EndGroupType ) type ( // Token is any other type (e.g., Message, Tag, Varint, Float32, etc). Token token // Message is an ordered sequence of Tokens, where certain tokens may // contain other tokens. It is functionally a concrete syntax tree that // losslessly represents any arbitrary wire data (including invalid input). Message []Token // Tag is a tuple of the field number and the wire type. Tag struct { Number Number Type Type } // Bool is a boolean. Bool bool // Varint is a signed varint using 64-bit two's complement encoding. Varint int64 // Svarint is a signed varint using zig-zag encoding. Svarint int64 // Uvarint is a unsigned varint. Uvarint uint64 // Int32 is a signed 32-bit fixed-width integer. Int32 int32 // Uint32 is an unsigned 32-bit fixed-width integer. Uint32 uint32 // Float32 is a 32-bit fixed-width floating point number. Float32 float32 // Int64 is a signed 64-bit fixed-width integer. Int64 int64 // Uint64 is an unsigned 64-bit fixed-width integer. Uint64 uint64 // Float64 is a 64-bit fixed-width floating point number. Float64 float64 // String is a length-prefixed string. String string // Bytes is a length-prefixed bytes. Bytes []byte // LengthPrefix is a length-prefixed message. LengthPrefix Message // Denormalized is a denormalized varint value, where a varint is encoded // using more bytes than is strictly necessary. The number of extra bytes // alone is sufficient to losslessly represent the denormalized varint. // // The value may be one of Tag, Bool, Varint, Svarint, or Uvarint, // where the varint representation of each token is denormalized. // // Alternatively, the value may be one of String, Bytes, or LengthPrefix, // where the varint representation of the length-prefix is denormalized. Denormalized struct { Count uint // number of extra bytes Value Token } // Raw are bytes directly appended to output. Raw []byte ) type token interface { isToken() } func (Message) isToken() {} func (Tag) isToken() {} func (Bool) isToken() {} func (Varint) isToken() {} func (Svarint) isToken() {} func (Uvarint) isToken() {} func (Int32) isToken() {} func (Uint32) isToken() {} func (Float32) isToken() {} func (Int64) isToken() {} func (Uint64) isToken() {} func (Float64) isToken() {} func (String) isToken() {} func (Bytes) isToken() {} func (LengthPrefix) isToken() {} func (Denormalized) isToken() {} func (Raw) isToken() {} // Size reports the size in bytes of the marshaled message. func (m Message) Size() int { var n int for _, v := range m { switch v := v.(type) { case Message: n += v.Size() case Tag: n += protowire.SizeTag(v.Number) case Bool: n += protowire.SizeVarint(protowire.EncodeBool(false)) case Varint: n += protowire.SizeVarint(uint64(v)) case Svarint: n += protowire.SizeVarint(protowire.EncodeZigZag(int64(v))) case Uvarint: n += protowire.SizeVarint(uint64(v)) case Int32, Uint32, Float32: n += protowire.SizeFixed32() case Int64, Uint64, Float64: n += protowire.SizeFixed64() case String: n += protowire.SizeBytes(len(v)) case Bytes: n += protowire.SizeBytes(len(v)) case LengthPrefix: n += protowire.SizeBytes(Message(v).Size()) case Denormalized: n += int(v.Count) + Message{v.Value}.Size() case Raw: n += len(v) default: panic(fmt.Sprintf("unknown type: %T", v)) } } return n } // Marshal encodes a syntax tree into the protobuf wire format. // // Example message definition: // message MyMessage { // string field1 = 1; // int64 field2 = 2; // repeated float32 field3 = 3; // } // // Example encoded message: // b := Message{ // Tag{1, BytesType}, String("Hello, world!"), // Tag{2, VarintType}, Varint(-10), // Tag{3, BytesType}, LengthPrefix{ // Float32(1.1), Float32(2.2), Float32(3.3), // }, // }.Marshal() // // Resulting wire data: // 0x0000 0a 0d 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 10 |..Hello, world!.| // 0x0010 f6 ff ff ff ff ff ff ff ff 01 1a 0c cd cc 8c 3f |...............?| // 0x0020 cd cc 0c 40 33 33 53 40 |...@33S@| func (m Message) Marshal() []byte { var out []byte for _, v := range m { switch v := v.(type) { case Message: out = append(out, v.Marshal()...) case Tag: out = protowire.AppendTag(out, v.Number, v.Type) case Bool: out = protowire.AppendVarint(out, protowire.EncodeBool(bool(v))) case Varint: out = protowire.AppendVarint(out, uint64(v)) case Svarint: out = protowire.AppendVarint(out, protowire.EncodeZigZag(int64(v))) case Uvarint: out = protowire.AppendVarint(out, uint64(v)) case Int32: out = protowire.AppendFixed32(out, uint32(v)) case Uint32: out = protowire.AppendFixed32(out, uint32(v)) case Float32: out = protowire.AppendFixed32(out, math.Float32bits(float32(v))) case Int64: out = protowire.AppendFixed64(out, uint64(v)) case Uint64: out = protowire.AppendFixed64(out, uint64(v)) case Float64: out = protowire.AppendFixed64(out, math.Float64bits(float64(v))) case String: out = protowire.AppendBytes(out, []byte(v)) case Bytes: out = protowire.AppendBytes(out, []byte(v)) case LengthPrefix: out = protowire.AppendBytes(out, Message(v).Marshal()) case Denormalized: b := Message{v.Value}.Marshal() _, n := protowire.ConsumeVarint(b) out = append(out, b[:n]...) for i := uint(0); i < v.Count; i++ { out[len(out)-1] |= 0x80 // set continuation bit on previous out = append(out, 0) } out = append(out, b[n:]...) case Raw: return append(out, v...) default: panic(fmt.Sprintf("unknown type: %T", v)) } } return out } // Unmarshal parses the input protobuf wire data as a syntax tree. // Any parsing error results in the remainder of the input being // concatenated to the message as a Raw type. // // Each tag (a tuple of the field number and wire type) encountered is // inserted into the syntax tree as a Tag. // // The contents of each wire type is mapped to the following Go types: // VarintType => Uvarint // Fixed32Type => Uint32 // Fixed64Type => Uint64 // BytesType => Bytes // GroupType => Message // // Since the wire format is not self-describing, this function cannot parse // sub-messages and will leave them as the Bytes type. Further manual parsing // can be performed as such: // var m, m1, m2 Message // m.Unmarshal(b) // m1.Unmarshal(m[3].(Bytes)) // m[3] = LengthPrefix(m1) // m2.Unmarshal(m[3].(LengthPrefix)[1].(Bytes)) // m[3].(LengthPrefix)[1] = LengthPrefix(m2) // // Unmarshal is useful for debugging the protobuf wire format. func (m *Message) Unmarshal(in []byte) { m.unmarshal(in, nil, false) } // UnmarshalDescriptor parses the input protobuf wire data as a syntax tree // using the provided message descriptor for more accurate parsing of fields. // It operates like Unmarshal, but may use a wider range of Go types to // represent the wire data. // // The contents of each wire type is mapped to one of the following Go types: // VarintType => Bool, Varint, Svarint, Uvarint // Fixed32Type => Int32, Uint32, Float32 // Fixed64Type => Uint32, Uint64, Float64 // BytesType => String, Bytes, LengthPrefix // GroupType => Message // // If the field is unknown, it uses the same mapping as Unmarshal. // Known sub-messages are parsed as a Message and packed repeated fields are // parsed as a LengthPrefix. func (m *Message) UnmarshalDescriptor(in []byte, desc protoreflect.MessageDescriptor) { m.unmarshal(in, desc, false) } // UnmarshalAbductive is like UnmarshalDescriptor, but infers abductively // whether any unknown bytes values is a message based on whether it is // a syntactically well-formed message. // // Note that the protobuf wire format is not fully self-describing, // so abductive inference may attempt to expand a bytes value as a message // that is not actually a message. It is a best-effort guess. func (m *Message) UnmarshalAbductive(in []byte, desc protoreflect.MessageDescriptor) { m.unmarshal(in, desc, true) } func (m *Message) unmarshal(in []byte, desc protoreflect.MessageDescriptor, inferMessage bool) { p := parser{in: in, out: *m} p.parseMessage(desc, false, inferMessage) *m = p.out } type parser struct { in []byte out []Token invalid bool } func (p *parser) parseMessage(msgDesc protoreflect.MessageDescriptor, group, inferMessage bool) { for len(p.in) > 0 { v, n := protowire.ConsumeVarint(p.in) num, typ := protowire.DecodeTag(v) if n < 0 || num <= 0 || v > math.MaxUint32 { p.out, p.in = append(p.out, Raw(p.in)), nil p.invalid = true return } if typ == EndGroupType && group { return // if inside a group, then stop } p.out, p.in = append(p.out, Tag{num, typ}), p.in[n:] if m := n - protowire.SizeVarint(v); m > 0 { p.out[len(p.out)-1] = Denormalized{uint(m), p.out[len(p.out)-1]} } // If descriptor is available, use it for more accurate parsing. var isPacked bool var kind protoreflect.Kind var subDesc protoreflect.MessageDescriptor if msgDesc != nil && !msgDesc.IsPlaceholder() { if fieldDesc := msgDesc.Fields().ByNumber(num); fieldDesc != nil { isPacked = fieldDesc.IsPacked() kind = fieldDesc.Kind() switch kind { case protoreflect.MessageKind, protoreflect.GroupKind: subDesc = fieldDesc.Message() if subDesc == nil || subDesc.IsPlaceholder() { kind = 0 } } } } switch typ { case VarintType: p.parseVarint(kind) case Fixed32Type: p.parseFixed32(kind) case Fixed64Type: p.parseFixed64(kind) case BytesType: p.parseBytes(isPacked, kind, subDesc, inferMessage) case StartGroupType: p.parseGroup(num, subDesc, inferMessage) case EndGroupType: // Handled by p.parseGroup. default: p.out, p.in = append(p.out, Raw(p.in)), nil p.invalid = true } } } func (p *parser) parseVarint(kind protoreflect.Kind) { v, n := protowire.ConsumeVarint(p.in) if n < 0 { p.out, p.in = append(p.out, Raw(p.in)), nil p.invalid = true return } switch kind { case protoreflect.BoolKind: switch v { case 0: p.out, p.in = append(p.out, Bool(false)), p.in[n:] case 1: p.out, p.in = append(p.out, Bool(true)), p.in[n:] default: p.out, p.in = append(p.out, Uvarint(v)), p.in[n:] } case protoreflect.Int32Kind, protoreflect.Int64Kind: p.out, p.in = append(p.out, Varint(v)), p.in[n:] case protoreflect.Sint32Kind, protoreflect.Sint64Kind: p.out, p.in = append(p.out, Svarint(protowire.DecodeZigZag(v))), p.in[n:] default: p.out, p.in = append(p.out, Uvarint(v)), p.in[n:] } if m := n - protowire.SizeVarint(v); m > 0 { p.out[len(p.out)-1] = Denormalized{uint(m), p.out[len(p.out)-1]} } } func (p *parser) parseFixed32(kind protoreflect.Kind) { v, n := protowire.ConsumeFixed32(p.in) if n < 0 { p.out, p.in = append(p.out, Raw(p.in)), nil p.invalid = true return } switch kind { case protoreflect.FloatKind: p.out, p.in = append(p.out, Float32(math.Float32frombits(v))), p.in[n:] case protoreflect.Sfixed32Kind: p.out, p.in = append(p.out, Int32(v)), p.in[n:] default: p.out, p.in = append(p.out, Uint32(v)), p.in[n:] } } func (p *parser) parseFixed64(kind protoreflect.Kind) { v, n := protowire.ConsumeFixed64(p.in) if n < 0 { p.out, p.in = append(p.out, Raw(p.in)), nil p.invalid = true return } switch kind { case protoreflect.DoubleKind: p.out, p.in = append(p.out, Float64(math.Float64frombits(v))), p.in[n:] case protoreflect.Sfixed64Kind: p.out, p.in = append(p.out, Int64(v)), p.in[n:] default: p.out, p.in = append(p.out, Uint64(v)), p.in[n:] } } func (p *parser) parseBytes(isPacked bool, kind protoreflect.Kind, desc protoreflect.MessageDescriptor, inferMessage bool) { v, n := protowire.ConsumeVarint(p.in) if n < 0 { p.out, p.in = append(p.out, Raw(p.in)), nil p.invalid = true return } p.out, p.in = append(p.out, Uvarint(v)), p.in[n:] if m := n - protowire.SizeVarint(v); m > 0 { p.out[len(p.out)-1] = Denormalized{uint(m), p.out[len(p.out)-1]} } if v > uint64(len(p.in)) { p.out, p.in = append(p.out, Raw(p.in)), nil p.invalid = true return } p.out = p.out[:len(p.out)-1] // subsequent tokens contain prefix-length if isPacked { p.parsePacked(int(v), kind) } else { switch kind { case protoreflect.MessageKind: p2 := parser{in: p.in[:v]} p2.parseMessage(desc, false, inferMessage) p.out, p.in = append(p.out, LengthPrefix(p2.out)), p.in[v:] case protoreflect.StringKind: p.out, p.in = append(p.out, String(p.in[:v])), p.in[v:] case protoreflect.BytesKind: p.out, p.in = append(p.out, Bytes(p.in[:v])), p.in[v:] default: if inferMessage { // Check whether this is a syntactically valid message. p2 := parser{in: p.in[:v]} p2.parseMessage(nil, false, inferMessage) if !p2.invalid { p.out, p.in = append(p.out, LengthPrefix(p2.out)), p.in[v:] break } } p.out, p.in = append(p.out, Bytes(p.in[:v])), p.in[v:] } } if m := n - protowire.SizeVarint(v); m > 0 { p.out[len(p.out)-1] = Denormalized{uint(m), p.out[len(p.out)-1]} } } func (p *parser) parsePacked(n int, kind protoreflect.Kind) { p2 := parser{in: p.in[:n]} for len(p2.in) > 0 { switch kind { case protoreflect.BoolKind, protoreflect.EnumKind, protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Uint32Kind, protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Uint64Kind: p2.parseVarint(kind) case protoreflect.Fixed32Kind, protoreflect.Sfixed32Kind, protoreflect.FloatKind: p2.parseFixed32(kind) case protoreflect.Fixed64Kind, protoreflect.Sfixed64Kind, protoreflect.DoubleKind: p2.parseFixed64(kind) default: panic(fmt.Sprintf("invalid packed kind: %v", kind)) } } p.out, p.in = append(p.out, LengthPrefix(p2.out)), p.in[n:] } func (p *parser) parseGroup(startNum protowire.Number, desc protoreflect.MessageDescriptor, inferMessage bool) { p2 := parser{in: p.in} p2.parseMessage(desc, true, inferMessage) if len(p2.out) > 0 { p.out = append(p.out, Message(p2.out)) } p.in = p2.in // Append the trailing end group. v, n := protowire.ConsumeVarint(p.in) if endNum, typ := protowire.DecodeTag(v); typ == EndGroupType { if startNum != endNum { p.invalid = true } p.out, p.in = append(p.out, Tag{endNum, typ}), p.in[n:] if m := n - protowire.SizeVarint(v); m > 0 { p.out[len(p.out)-1] = Denormalized{uint(m), p.out[len(p.out)-1]} } } } // Format implements a custom formatter to visualize the syntax tree. // Using "%#v" formats the Message in Go source code. func (m Message) Format(s fmt.State, r rune) { switch r { case 'x': io.WriteString(s, fmt.Sprintf("%x", m.Marshal())) case 'X': io.WriteString(s, fmt.Sprintf("%X", m.Marshal())) case 'v': switch { case s.Flag('#'): io.WriteString(s, m.format(true, true)) case s.Flag('+'): io.WriteString(s, m.format(false, true)) default: io.WriteString(s, m.format(false, false)) } default: panic("invalid verb: " + string(r)) } } // format formats the message. // If source is enabled, this emits valid Go source. // If multi is enabled, the output may span multiple lines. func (m Message) format(source, multi bool) string { var ss []string var prefix, nextPrefix string for _, v := range m { // Ensure certain tokens have preceding or succeeding newlines. prefix, nextPrefix = nextPrefix, " " if multi { switch v := v.(type) { case Tag: // only has preceding newline prefix = "\n" case Denormalized: // only has preceding newline if _, ok := v.Value.(Tag); ok { prefix = "\n" } case Message, Raw: // has preceding and succeeding newlines prefix, nextPrefix = "\n", "\n" } } s := formatToken(v, source, multi) ss = append(ss, prefix+s+",") } var s string if len(ss) > 0 { s = strings.TrimSpace(strings.Join(ss, "")) if multi { s = "\n\t" + strings.Join(strings.Split(s, "\n"), "\n\t") + "\n" } else { s = strings.TrimSuffix(s, ",") } } s = fmt.Sprintf("%T{%s}", m, s) if !source { s = trimPackage(s) } return s } // formatToken formats a single token. func formatToken(t Token, source, multi bool) (s string) { switch v := t.(type) { case Message: s = v.format(source, multi) case LengthPrefix: s = formatPacked(v, source, multi) if s == "" { ms := Message(v).format(source, multi) s = fmt.Sprintf("%T(%s)", v, ms) } case Tag: s = fmt.Sprintf("%T{%d, %s}", v, v.Number, formatType(v.Type, source)) case Bool, Varint, Svarint, Uvarint, Int32, Uint32, Float32, Int64, Uint64, Float64: if source { // Print floats in a way that preserves exact precision. if f, _ := v.(Float32); math.IsNaN(float64(f)) || math.IsInf(float64(f), 0) { switch { case f > 0: s = fmt.Sprintf("%T(math.Inf(+1))", v) case f < 0: s = fmt.Sprintf("%T(math.Inf(-1))", v) case math.Float32bits(float32(math.NaN())) == math.Float32bits(float32(f)): s = fmt.Sprintf("%T(math.NaN())", v) default: s = fmt.Sprintf("%T(math.Float32frombits(0x%08x))", v, math.Float32bits(float32(f))) } break } if f, _ := v.(Float64); math.IsNaN(float64(f)) || math.IsInf(float64(f), 0) { switch { case f > 0: s = fmt.Sprintf("%T(math.Inf(+1))", v) case f < 0: s = fmt.Sprintf("%T(math.Inf(-1))", v) case math.Float64bits(float64(math.NaN())) == math.Float64bits(float64(f)): s = fmt.Sprintf("%T(math.NaN())", v) default: s = fmt.Sprintf("%T(math.Float64frombits(0x%016x))", v, math.Float64bits(float64(f))) } break } } s = fmt.Sprintf("%T(%v)", v, v) case String, Bytes, Raw: s = fmt.Sprintf("%s", v) s = fmt.Sprintf("%T(%s)", v, formatString(s)) case Denormalized: s = fmt.Sprintf("%T{+%d, %v}", v, v.Count, formatToken(v.Value, source, multi)) default: panic(fmt.Sprintf("unknown type: %T", v)) } if !source { s = trimPackage(s) } return s } // formatPacked returns a non-empty string if LengthPrefix looks like a packed // repeated field of primitives. func formatPacked(v LengthPrefix, source, multi bool) string { var ss []string for _, v := range v { switch v.(type) { case Bool, Varint, Svarint, Uvarint, Int32, Uint32, Float32, Int64, Uint64, Float64, Denormalized, Raw: if v, ok := v.(Denormalized); ok { switch v.Value.(type) { case Bool, Varint, Svarint, Uvarint: default: return "" } } ss = append(ss, formatToken(v, source, multi)) default: return "" } } s := fmt.Sprintf("%T{%s}", v, strings.Join(ss, ", ")) if !source { s = trimPackage(s) } return s } // formatType returns the name for Type. func formatType(t Type, source bool) (s string) { switch t { case VarintType: s = pkg + ".VarintType" case Fixed32Type: s = pkg + ".Fixed32Type" case Fixed64Type: s = pkg + ".Fixed64Type" case BytesType: s = pkg + ".BytesType" case StartGroupType: s = pkg + ".StartGroupType" case EndGroupType: s = pkg + ".EndGroupType" default: s = fmt.Sprintf("Type(%d)", t) } if !source { s = strings.TrimSuffix(trimPackage(s), "Type") } return s } // formatString returns a quoted string for s. func formatString(s string) string { // Use quoted string if it the same length as a raw string literal. // Otherwise, attempt to use the raw string form. qs := strconv.Quote(s) if len(qs) == 1+len(s)+1 { return qs } // Disallow newlines to ensure output is a single line. // Disallow non-printable runes for readability purposes. rawInvalid := func(r rune) bool { return r == '`' || r == '\n' || r == utf8.RuneError || !unicode.IsPrint(r) } if strings.IndexFunc(s, rawInvalid) < 0 { return "`" + s + "`" } return qs } var pkg = path.Base(reflect.TypeOf(Tag{}).PkgPath()) func trimPackage(s string) string { return strings.TrimPrefix(strings.TrimPrefix(s, pkg), ".") } golang-google-protobuf-1.27.1/testing/protopack/pack_test.go000066400000000000000000000374451411250152500241550ustar00rootroot00000000000000// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package protopack import ( "bytes" "encoding/hex" "fmt" "math" "testing" "github.com/google/go-cmp/cmp" "google.golang.org/protobuf/encoding/prototext" pdesc "google.golang.org/protobuf/reflect/protodesc" "google.golang.org/protobuf/reflect/protoreflect" pref "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/types/descriptorpb" ) var msgDesc = func() pref.MessageDescriptor { const s = ` name: "test.proto" syntax: "proto2" message_type: [{ name: "Message" field: [ {name:"f1" number:1 label:LABEL_REPEATED type:TYPE_BOOL options:{packed:true}}, {name:"f2" number:2 label:LABEL_REPEATED type:TYPE_INT64 options:{packed:true}}, {name:"f3" number:3 label:LABEL_REPEATED type:TYPE_SINT64 options:{packed:true}}, {name:"f4" number:4 label:LABEL_REPEATED type:TYPE_UINT64 options:{packed:true}}, {name:"f5" number:5 label:LABEL_REPEATED type:TYPE_FIXED32 options:{packed:true}}, {name:"f6" number:6 label:LABEL_REPEATED type:TYPE_SFIXED32 options:{packed:true}}, {name:"f7" number:7 label:LABEL_REPEATED type:TYPE_FLOAT options:{packed:true}}, {name:"f8" number:8 label:LABEL_REPEATED type:TYPE_FIXED64 options:{packed:true}}, {name:"f9" number:9 label:LABEL_REPEATED type:TYPE_SFIXED64 options:{packed:true}}, {name:"f10" number:10 label:LABEL_REPEATED type:TYPE_DOUBLE options:{packed:true}}, {name:"f11" number:11 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"f12" number:12 label:LABEL_OPTIONAL type:TYPE_BYTES}, {name:"f13" number:13 label:LABEL_OPTIONAL type:TYPE_MESSAGE type_name:".Message"}, {name:"f14" number:14 label:LABEL_OPTIONAL type:TYPE_GROUP type_name:".Message.F14"} ] nested_type: [{name: "F14"}] }] ` pb := new(descriptorpb.FileDescriptorProto) if err := prototext.Unmarshal([]byte(s), pb); err != nil { panic(err) } fd, err := pdesc.NewFile(pb, nil) if err != nil { panic(err) } return fd.Messages().Get(0) }() // dhex decodes a hex-string and returns the bytes and panics if s is invalid. func dhex(s string) []byte { b, err := hex.DecodeString(s) if err != nil { panic(err) } return b } func TestPack(t *testing.T) { tests := []struct { raw []byte msg Message msgDesc protoreflect.MessageDescriptor inferMsg bool wantOutCompact string wantOutMulti string wantOutSource string }{{ raw: dhex("080088808080800002088280808080000a09010002828080808000"), msg: Message{ Tag{1, VarintType}, Bool(false), Denormalized{5, Tag{1, VarintType}}, Uvarint(2), Tag{1, VarintType}, Denormalized{5, Uvarint(2)}, Tag{1, BytesType}, LengthPrefix{Bool(true), Bool(false), Uvarint(2), Denormalized{5, Uvarint(2)}}, }, msgDesc: msgDesc, wantOutSource: `protopack.Message{ protopack.Tag{1, protopack.VarintType}, protopack.Bool(false), protopack.Denormalized{+5, protopack.Tag{1, protopack.VarintType}}, protopack.Uvarint(2), protopack.Tag{1, protopack.VarintType}, protopack.Denormalized{+5, protopack.Uvarint(2)}, protopack.Tag{1, protopack.BytesType}, protopack.LengthPrefix{protopack.Bool(true), protopack.Bool(false), protopack.Uvarint(2), protopack.Denormalized{+5, protopack.Uvarint(2)}}, }`, }, { raw: dhex("080088808080800002088280808080000a09010002828080808000"), msg: Message{ Tag{1, VarintType}, Uvarint(0), Denormalized{5, Tag{1, VarintType}}, Uvarint(2), Tag{1, VarintType}, Denormalized{5, Uvarint(2)}, Tag{1, BytesType}, Bytes(Message{Bool(true), Bool(false), Uvarint(2), Denormalized{5, Uvarint(2)}}.Marshal()), }, inferMsg: true, }, { raw: dhex("100010828080808000121980808080808080808001ffffffffffffffff7f828080808000"), msg: Message{ Tag{2, VarintType}, Varint(0), Tag{2, VarintType}, Denormalized{5, Varint(2)}, Tag{2, BytesType}, LengthPrefix{Varint(math.MinInt64), Varint(math.MaxInt64), Denormalized{5, Varint(2)}}, }, msgDesc: msgDesc, wantOutCompact: `Message{Tag{2, Varint}, Varint(0), Tag{2, Varint}, Denormalized{+5, Varint(2)}, Tag{2, Bytes}, LengthPrefix{Varint(-9223372036854775808), Varint(9223372036854775807), Denormalized{+5, Varint(2)}}}`, }, { raw: dhex("1801188180808080001a1affffffffffffffffff01feffffffffffffffff01818080808000"), msg: Message{ Tag{3, VarintType}, Svarint(-1), Tag{3, VarintType}, Denormalized{5, Svarint(-1)}, Tag{3, BytesType}, LengthPrefix{Svarint(math.MinInt64), Svarint(math.MaxInt64), Denormalized{5, Svarint(-1)}}, }, msgDesc: msgDesc, wantOutMulti: `Message{ Tag{3, Varint}, Svarint(-1), Tag{3, Varint}, Denormalized{+5, Svarint(-1)}, Tag{3, Bytes}, LengthPrefix{Svarint(-9223372036854775808), Svarint(9223372036854775807), Denormalized{+5, Svarint(-1)}}, }`, }, { raw: dhex("200120818080808000221100ffffffffffffffffff01818080808000"), msg: Message{ Tag{4, VarintType}, Uvarint(+1), Tag{4, VarintType}, Denormalized{5, Uvarint(+1)}, Tag{4, BytesType}, LengthPrefix{Uvarint(0), Uvarint(math.MaxUint64), Denormalized{5, Uvarint(+1)}}, }, msgDesc: msgDesc, wantOutSource: `protopack.Message{ protopack.Tag{4, protopack.VarintType}, protopack.Uvarint(1), protopack.Tag{4, protopack.VarintType}, protopack.Denormalized{+5, protopack.Uvarint(1)}, protopack.Tag{4, protopack.BytesType}, protopack.LengthPrefix{protopack.Uvarint(0), protopack.Uvarint(18446744073709551615), protopack.Denormalized{+5, protopack.Uvarint(1)}}, }`, }, { raw: dhex("2d010000002a0800000000ffffffff"), msg: Message{ Tag{5, Fixed32Type}, Uint32(+1), Tag{5, BytesType}, LengthPrefix{Uint32(0), Uint32(math.MaxUint32)}, }, msgDesc: msgDesc, wantOutCompact: `Message{Tag{5, Fixed32}, Uint32(1), Tag{5, Bytes}, LengthPrefix{Uint32(0), Uint32(4294967295)}}`, }, { raw: dhex("35ffffffff320800000080ffffff7f"), msg: Message{ Tag{6, Fixed32Type}, Int32(-1), Tag{6, BytesType}, LengthPrefix{Int32(math.MinInt32), Int32(math.MaxInt32)}, }, msgDesc: msgDesc, wantOutMulti: `Message{ Tag{6, Fixed32}, Int32(-1), Tag{6, Bytes}, LengthPrefix{Int32(-2147483648), Int32(2147483647)}, }`, }, { raw: dhex("3ddb0f49403a1001000000ffff7f7f0000807f000080ff"), msg: Message{ Tag{7, Fixed32Type}, Float32(math.Pi), Tag{7, BytesType}, LengthPrefix{Float32(math.SmallestNonzeroFloat32), Float32(math.MaxFloat32), Float32(math.Inf(+1)), Float32(math.Inf(-1))}, }, msgDesc: msgDesc, wantOutSource: `protopack.Message{ protopack.Tag{7, protopack.Fixed32Type}, protopack.Float32(3.1415927), protopack.Tag{7, protopack.BytesType}, protopack.LengthPrefix{protopack.Float32(1e-45), protopack.Float32(3.4028235e+38), protopack.Float32(math.Inf(+1)), protopack.Float32(math.Inf(-1))}, }`, }, { raw: dhex("41010000000000000042100000000000000000ffffffffffffffff"), msg: Message{ Tag{8, Fixed64Type}, Uint64(+1), Tag{8, BytesType}, LengthPrefix{Uint64(0), Uint64(math.MaxUint64)}, }, msgDesc: msgDesc, wantOutCompact: `Message{Tag{8, Fixed64}, Uint64(1), Tag{8, Bytes}, LengthPrefix{Uint64(0), Uint64(18446744073709551615)}}`, }, { raw: dhex("49ffffffffffffffff4a100000000000000080ffffffffffffff7f"), msg: Message{ Tag{9, Fixed64Type}, Int64(-1), Tag{9, BytesType}, LengthPrefix{Int64(math.MinInt64), Int64(math.MaxInt64)}, }, msgDesc: msgDesc, wantOutMulti: `Message{ Tag{9, Fixed64}, Int64(-1), Tag{9, Bytes}, LengthPrefix{Int64(-9223372036854775808), Int64(9223372036854775807)}, }`, }, { raw: dhex("51182d4454fb21094052200100000000000000ffffffffffffef7f000000000000f07f000000000000f0ff"), msg: Message{ Tag{10, Fixed64Type}, Float64(math.Pi), Tag{10, BytesType}, LengthPrefix{Float64(math.SmallestNonzeroFloat64), Float64(math.MaxFloat64), Float64(math.Inf(+1)), Float64(math.Inf(-1))}, }, msgDesc: msgDesc, wantOutMulti: `Message{ Tag{10, Fixed64}, Float64(3.141592653589793), Tag{10, Bytes}, LengthPrefix{Float64(5e-324), Float64(1.7976931348623157e+308), Float64(+Inf), Float64(-Inf)}, }`, }, { raw: dhex("5a06737472696e675a868080808000737472696e67"), msg: Message{ Tag{11, BytesType}, String("string"), Tag{11, BytesType}, Denormalized{+5, String("string")}, }, msgDesc: msgDesc, wantOutCompact: `Message{Tag{11, Bytes}, String("string"), Tag{11, Bytes}, Denormalized{+5, String("string")}}`, }, { raw: dhex("62056279746573628580808080006279746573"), msg: Message{ Tag{12, BytesType}, Bytes("bytes"), Tag{12, BytesType}, Denormalized{+5, Bytes("bytes")}, }, msgDesc: msgDesc, wantOutMulti: `Message{ Tag{12, Bytes}, Bytes("bytes"), Tag{12, Bytes}, Denormalized{+5, Bytes("bytes")}, }`, }, { raw: dhex("6a28a006ffffffffffffffffff01a506ffffffffa106ffffffffffffffffa206056279746573a306a406"), msg: Message{ Tag{13, BytesType}, LengthPrefix(Message{ Tag{100, VarintType}, Uvarint(math.MaxUint64), Tag{100, Fixed32Type}, Uint32(math.MaxUint32), Tag{100, Fixed64Type}, Uint64(math.MaxUint64), Tag{100, BytesType}, Bytes("bytes"), Tag{100, StartGroupType}, Tag{100, EndGroupType}, }), }, msgDesc: msgDesc, wantOutSource: `protopack.Message{ protopack.Tag{13, protopack.BytesType}, protopack.LengthPrefix(protopack.Message{ protopack.Tag{100, protopack.VarintType}, protopack.Uvarint(18446744073709551615), protopack.Tag{100, protopack.Fixed32Type}, protopack.Uint32(4294967295), protopack.Tag{100, protopack.Fixed64Type}, protopack.Uint64(18446744073709551615), protopack.Tag{100, protopack.BytesType}, protopack.Bytes("bytes"), protopack.Tag{100, protopack.StartGroupType}, protopack.Tag{100, protopack.EndGroupType}, }), }`, }, { raw: dhex("6a28a006ffffffffffffffffff01a506ffffffffa106ffffffffffffffffa206056279746573a306a406"), msg: Message{ Tag{13, BytesType}, LengthPrefix(Message{ Tag{100, VarintType}, Uvarint(math.MaxUint64), Tag{100, Fixed32Type}, Uint32(math.MaxUint32), Tag{100, Fixed64Type}, Uint64(math.MaxUint64), Tag{100, BytesType}, Bytes("bytes"), Tag{100, StartGroupType}, Tag{100, EndGroupType}, }), }, inferMsg: true, }, { raw: dhex("6a28a006ffffffffffffffffff01a506ffffffffa106ffffffffffffffffa206056279746573a306ac06"), msg: Message{ Tag{13, BytesType}, Bytes(Message{ Tag{100, VarintType}, Uvarint(math.MaxUint64), Tag{100, Fixed32Type}, Uint32(math.MaxUint32), Tag{100, Fixed64Type}, Uint64(math.MaxUint64), Tag{100, BytesType}, Bytes("bytes"), Tag{100, StartGroupType}, Tag{101, EndGroupType}, }.Marshal()), }, inferMsg: true, }, { raw: dhex("6aa88080808000a006ffffffffffffffffff01a506ffffffffa106ffffffffffffffffa206056279746573a306a406"), msg: Message{ Tag{13, BytesType}, Denormalized{5, LengthPrefix(Message{ Tag{100, VarintType}, Uvarint(math.MaxUint64), Tag{100, Fixed32Type}, Uint32(math.MaxUint32), Tag{100, Fixed64Type}, Uint64(math.MaxUint64), Tag{100, BytesType}, Bytes("bytes"), Tag{100, StartGroupType}, Tag{100, EndGroupType}, })}, }, msgDesc: msgDesc, wantOutCompact: `Message{Tag{13, Bytes}, Denormalized{+5, LengthPrefix(Message{Tag{100, Varint}, Uvarint(18446744073709551615), Tag{100, Fixed32}, Uint32(4294967295), Tag{100, Fixed64}, Uint64(18446744073709551615), Tag{100, Bytes}, Bytes("bytes"), Tag{100, StartGroup}, Tag{100, EndGroup}})}}`, }, { raw: dhex("73a006ffffffffffffffffff01a506ffffffffa106ffffffffffffffffa206056279746573a306a40674"), msg: Message{ Tag{14, StartGroupType}, Message{ Tag{100, VarintType}, Uvarint(math.MaxUint64), Tag{100, Fixed32Type}, Uint32(math.MaxUint32), Tag{100, Fixed64Type}, Uint64(math.MaxUint64), Tag{100, BytesType}, Bytes("bytes"), Tag{100, StartGroupType}, Tag{100, EndGroupType}, }, Tag{14, EndGroupType}, }, msgDesc: msgDesc, wantOutMulti: `Message{ Tag{14, StartGroup}, Message{ Tag{100, Varint}, Uvarint(18446744073709551615), Tag{100, Fixed32}, Uint32(4294967295), Tag{100, Fixed64}, Uint64(18446744073709551615), Tag{100, Bytes}, Bytes("bytes"), Tag{100, StartGroup}, Tag{100, EndGroup}, }, Tag{14, EndGroup}, }`, }, { raw: dhex("d0faa972cd02a5f09051c2d8aa0d6a26a89c311eddef024b423c0f6f47b64227a1600db56e3f73d4113096c9a88e2b99f2d847516853d76a1a6e9811c85a2ab3"), msg: Message{ Tag{29970346, VarintType}, Uvarint(333), Tag{21268228, Fixed32Type}, Uint32(229300418), Tag{13, BytesType}, LengthPrefix(Message{ Tag{100805, VarintType}, Uvarint(30), Tag{5883, Fixed32Type}, Uint32(255607371), Tag{13, Type(7)}, Raw("G\xb6B'\xa1`\r\xb5n?s\xd4\x110\x96ɨ\x8e+\x99\xf2\xd8GQhS"), }), Tag{1706, Type(7)}, Raw("\x1an\x98\x11\xc8Z*\xb3"), }, msgDesc: msgDesc, }, { raw: dhex("3d08d0e57f"), msg: Message{ Tag{7, Fixed32Type}, Float32(math.Float32frombits( // TODO: Remove workaround for compiler bug (see https://golang.org/issues/27193). func() uint32 { return 0x7fe5d008 }(), )), }, msgDesc: msgDesc, wantOutSource: `protopack.Message{ protopack.Tag{7, protopack.Fixed32Type}, protopack.Float32(math.Float32frombits(0x7fe5d008)), }`, }, { raw: dhex("51a8d65110771bf97f"), msg: Message{ Tag{10, Fixed64Type}, Float64(math.Float64frombits(0x7ff91b771051d6a8)), }, msgDesc: msgDesc, wantOutSource: `protopack.Message{ protopack.Tag{10, protopack.Fixed64Type}, protopack.Float64(math.Float64frombits(0x7ff91b771051d6a8)), }`, }, { raw: dhex("ab2c14481ab3e9a76d937fb4dd5e6c616ef311f62b7fe888785fca5609ffe81c1064e50dd7a9edb408d317e2891c0d54c719446938d41ab0ccf8e61dc28b0ebb"), msg: Message{ Tag{709, StartGroupType}, Tag{2, EndGroupType}, Tag{9, VarintType}, Uvarint(26), Tag{28655254, StartGroupType}, Message{ Tag{2034, StartGroupType}, Tag{194006, EndGroupType}, }, Tag{13, EndGroupType}, Tag{12, Fixed64Type}, Uint64(9865274810543764334), Tag{15, VarintType}, Uvarint(95), Tag{1385, BytesType}, Bytes("\xff\xe8\x1c\x10d\xe5\rש"), Tag{17229, Fixed32Type}, Uint32(2313295827), Tag{3, EndGroupType}, Tag{1, Fixed32Type}, Uint32(1142540116), Tag{13, Fixed64Type}, Uint64(2154683029754926136), Tag{28856, BytesType}, Raw("\xbb"), }, msgDesc: msgDesc, }, { raw: dhex("29baa4ac1c1e0a20183393bac434b8d3559337ec940050038770eaa9937f98e4"), msg: Message{ Tag{5, Fixed64Type}, Uint64(1738400580611384506), Tag{6, StartGroupType}, Message{ Tag{13771682, StartGroupType}, Message{ Tag{175415, VarintType}, Uvarint(7059), }, Denormalized{+1, Tag{333, EndGroupType}}, Tag{10, VarintType}, Uvarint(3), Tag{1792, Type(7)}, Raw("꩓\u007f\x98\xe4"), }, }, msgDesc: msgDesc, }} equateFloatBits := cmp.Options{ cmp.Comparer(func(x, y Float32) bool { return math.Float32bits(float32(x)) == math.Float32bits(float32(y)) }), cmp.Comparer(func(x, y Float64) bool { return math.Float64bits(float64(x)) == math.Float64bits(float64(y)) }), } for _, tt := range tests { t.Run("", func(t *testing.T) { var msg Message raw := tt.msg.Marshal() msg.unmarshal(tt.raw, tt.msgDesc, tt.inferMsg) if !bytes.Equal(raw, tt.raw) { t.Errorf("Marshal() mismatch:\ngot %x\nwant %x", raw, tt.raw) } if diff := cmp.Diff(tt.msg, msg, equateFloatBits); diff != "" { t.Errorf("Unmarshal() mismatch (-want +got):\n%s", diff) } if got, want := tt.msg.Size(), len(tt.raw); got != want { t.Errorf("Size() = %v, want %v", got, want) } if tt.wantOutCompact != "" { gotOut := fmt.Sprintf("%v", tt.msg) if string(gotOut) != tt.wantOutCompact { t.Errorf("fmt.Sprintf(%q, msg):\ngot: %s\nwant: %s", "%v", gotOut, tt.wantOutCompact) } } if tt.wantOutMulti != "" { gotOut := fmt.Sprintf("%+v", tt.msg) if string(gotOut) != tt.wantOutMulti { t.Errorf("fmt.Sprintf(%q, msg):\ngot: %s\nwant: %s", "%+v", gotOut, tt.wantOutMulti) } } if tt.wantOutSource != "" { gotOut := fmt.Sprintf("%#v", tt.msg) if string(gotOut) != tt.wantOutSource { t.Errorf("fmt.Sprintf(%q, msg):\ngot: %s\nwant: %s", "%#v", gotOut, tt.wantOutSource) } } }) } } golang-google-protobuf-1.27.1/testing/prototest/000077500000000000000000000000001411250152500216755ustar00rootroot00000000000000golang-google-protobuf-1.27.1/testing/prototest/enum.go000066400000000000000000000015461411250152500231760ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package prototest import ( "testing" pref "google.golang.org/protobuf/reflect/protoreflect" ) // Enum tests an EnumType implementation. type Enum struct{} func (test Enum) Test(t testing.TB, et pref.EnumType) { ed := et.Descriptor() values := ed.Values() for i := 0; i < values.Len(); i++ { evd := values.Get(i) num := evd.Number() e := et.New(num) if e.Descriptor() != ed { t.Errorf("enumType.New(%v).Descriptor() != enumType.Descriptor(), should match", num) } if e.Type() != et { t.Errorf("enumType.New(%v).Type() != enumType, should match", num) } if got, want := e.Number(), num; got != want { t.Errorf("enumType.New(%v).Number() = %v, want %v", num, got, want) } } } golang-google-protobuf-1.27.1/testing/prototest/message.go000066400000000000000000000675401411250152500236640ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package prototest exercises protobuf reflection. package prototest import ( "bytes" "fmt" "math" "reflect" "sort" "strings" "testing" "google.golang.org/protobuf/encoding/prototext" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" pref "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" ) // TODO: Test invalid field descriptors or oneof descriptors. // TODO: This should test the functionality that can be provided by fast-paths. // Message tests a message implemention. type Message struct { // Resolver is used to determine the list of extension fields to test with. // If nil, this defaults to using protoregistry.GlobalTypes. Resolver interface { FindExtensionByName(field pref.FullName) (pref.ExtensionType, error) FindExtensionByNumber(message pref.FullName, field pref.FieldNumber) (pref.ExtensionType, error) RangeExtensionsByMessage(message pref.FullName, f func(pref.ExtensionType) bool) } } // Test performs tests on a MessageType implementation. func (test Message) Test(t testing.TB, mt pref.MessageType) { testType(t, mt) md := mt.Descriptor() m1 := mt.New() for i := 0; i < md.Fields().Len(); i++ { fd := md.Fields().Get(i) testField(t, m1, fd) } if test.Resolver == nil { test.Resolver = protoregistry.GlobalTypes } var extTypes []pref.ExtensionType test.Resolver.RangeExtensionsByMessage(md.FullName(), func(e pref.ExtensionType) bool { extTypes = append(extTypes, e) return true }) for _, xt := range extTypes { testField(t, m1, xt.TypeDescriptor()) } for i := 0; i < md.Oneofs().Len(); i++ { testOneof(t, m1, md.Oneofs().Get(i)) } testUnknown(t, m1) // Test round-trip marshal/unmarshal. m2 := mt.New().Interface() populateMessage(m2.ProtoReflect(), 1, nil) for _, xt := range extTypes { m2.ProtoReflect().Set(xt.TypeDescriptor(), newValue(m2.ProtoReflect(), xt.TypeDescriptor(), 1, nil)) } b, err := proto.MarshalOptions{ AllowPartial: true, }.Marshal(m2) if err != nil { t.Errorf("Marshal() = %v, want nil\n%v", err, prototext.Format(m2)) } m3 := mt.New().Interface() if err := (proto.UnmarshalOptions{ AllowPartial: true, Resolver: test.Resolver, }.Unmarshal(b, m3)); err != nil { t.Errorf("Unmarshal() = %v, want nil\n%v", err, prototext.Format(m2)) } if !proto.Equal(m2, m3) { t.Errorf("round-trip marshal/unmarshal did not preserve message\nOriginal:\n%v\nNew:\n%v", prototext.Format(m2), prototext.Format(m3)) } } func testType(t testing.TB, mt pref.MessageType) { m := mt.New().Interface() want := reflect.TypeOf(m) if got := reflect.TypeOf(m.ProtoReflect().Interface()); got != want { t.Errorf("type mismatch: reflect.TypeOf(m) != reflect.TypeOf(m.ProtoReflect().Interface()): %v != %v", got, want) } if got := reflect.TypeOf(m.ProtoReflect().New().Interface()); got != want { t.Errorf("type mismatch: reflect.TypeOf(m) != reflect.TypeOf(m.ProtoReflect().New().Interface()): %v != %v", got, want) } if got := reflect.TypeOf(m.ProtoReflect().Type().Zero().Interface()); got != want { t.Errorf("type mismatch: reflect.TypeOf(m) != reflect.TypeOf(m.ProtoReflect().Type().Zero().Interface()): %v != %v", got, want) } if mt, ok := mt.(pref.MessageFieldTypes); ok { testFieldTypes(t, mt) } } func testFieldTypes(t testing.TB, mt pref.MessageFieldTypes) { descName := func(d pref.Descriptor) pref.FullName { if d == nil { return "" } return d.FullName() } typeName := func(mt pref.MessageType) pref.FullName { if mt == nil { return "" } return mt.Descriptor().FullName() } adjustExpr := func(idx int, expr string) string { expr = strings.Replace(expr, "fd.", "md.Fields().Get(i).", -1) expr = strings.Replace(expr, "(fd)", "(md.Fields().Get(i))", -1) expr = strings.Replace(expr, "mti.", "mt.Message(i).", -1) expr = strings.Replace(expr, "(i)", fmt.Sprintf("(%d)", idx), -1) return expr } checkEnumDesc := func(idx int, gotExpr, wantExpr string, got, want protoreflect.EnumDescriptor) { if got != want { t.Errorf("descriptor mismatch: %v != %v: %v != %v", adjustExpr(idx, gotExpr), adjustExpr(idx, wantExpr), descName(got), descName(want)) } } checkMessageDesc := func(idx int, gotExpr, wantExpr string, got, want protoreflect.MessageDescriptor) { if got != want { t.Errorf("descriptor mismatch: %v != %v: %v != %v", adjustExpr(idx, gotExpr), adjustExpr(idx, wantExpr), descName(got), descName(want)) } } checkMessageType := func(idx int, gotExpr, wantExpr string, got, want protoreflect.MessageType) { if got != want { t.Errorf("type mismatch: %v != %v: %v != %v", adjustExpr(idx, gotExpr), adjustExpr(idx, wantExpr), typeName(got), typeName(want)) } } fds := mt.Descriptor().Fields() m := mt.New() for i := 0; i < fds.Len(); i++ { fd := fds.Get(i) switch { case fd.IsList(): if fd.Enum() != nil { checkEnumDesc(i, "mt.Enum(i).Descriptor()", "fd.Enum()", mt.Enum(i).Descriptor(), fd.Enum()) } if fd.Message() != nil { checkMessageDesc(i, "mt.Message(i).Descriptor()", "fd.Message()", mt.Message(i).Descriptor(), fd.Message()) checkMessageType(i, "mt.Message(i)", "m.NewField(fd).List().NewElement().Message().Type()", mt.Message(i), m.NewField(fd).List().NewElement().Message().Type()) } case fd.IsMap(): mti := mt.Message(i) if m := mti.New(); m != nil { checkMessageDesc(i, "m.Descriptor()", "fd.Message()", m.Descriptor(), fd.Message()) } if m := mti.Zero(); m != nil { checkMessageDesc(i, "m.Descriptor()", "fd.Message()", m.Descriptor(), fd.Message()) } checkMessageDesc(i, "mti.Descriptor()", "fd.Message()", mti.Descriptor(), fd.Message()) if mti := mti.(pref.MessageFieldTypes); mti != nil { if fd.MapValue().Enum() != nil { checkEnumDesc(i, "mti.Enum(fd.MapValue().Index()).Descriptor()", "fd.MapValue().Enum()", mti.Enum(fd.MapValue().Index()).Descriptor(), fd.MapValue().Enum()) } if fd.MapValue().Message() != nil { checkMessageDesc(i, "mti.Message(fd.MapValue().Index()).Descriptor()", "fd.MapValue().Message()", mti.Message(fd.MapValue().Index()).Descriptor(), fd.MapValue().Message()) checkMessageType(i, "mti.Message(fd.MapValue().Index())", "m.NewField(fd).Map().NewValue().Message().Type()", mti.Message(fd.MapValue().Index()), m.NewField(fd).Map().NewValue().Message().Type()) } } default: if fd.Enum() != nil { checkEnumDesc(i, "mt.Enum(i).Descriptor()", "fd.Enum()", mt.Enum(i).Descriptor(), fd.Enum()) } if fd.Message() != nil { checkMessageDesc(i, "mt.Message(i).Descriptor()", "fd.Message()", mt.Message(i).Descriptor(), fd.Message()) checkMessageType(i, "mt.Message(i)", "m.NewField(fd).Message().Type()", mt.Message(i), m.NewField(fd).Message().Type()) } } } } // testField exercises set/get/has/clear of a field. func testField(t testing.TB, m pref.Message, fd pref.FieldDescriptor) { name := fd.FullName() num := fd.Number() switch { case fd.IsList(): testFieldList(t, m, fd) case fd.IsMap(): testFieldMap(t, m, fd) case fd.Message() != nil: default: if got, want := m.NewField(fd), fd.Default(); !valueEqual(got, want) { t.Errorf("Message.NewField(%v) = %v, want default value %v", name, formatValue(got), formatValue(want)) } if fd.Kind() == pref.FloatKind || fd.Kind() == pref.DoubleKind { testFieldFloat(t, m, fd) } } // Set to a non-zero value, the zero value, different non-zero values. for _, n := range []seed{1, 0, minVal, maxVal} { v := newValue(m, fd, n, nil) m.Set(fd, v) wantHas := true if n == 0 { if fd.Syntax() == pref.Proto3 && fd.Message() == nil { wantHas = false } if fd.IsExtension() { wantHas = true } if fd.Cardinality() == pref.Repeated { wantHas = false } if fd.ContainingOneof() != nil { wantHas = true } } if fd.Syntax() == pref.Proto3 && fd.Cardinality() != pref.Repeated && fd.ContainingOneof() == nil && fd.Kind() == pref.EnumKind && v.Enum() == 0 { wantHas = false } if got, want := m.Has(fd), wantHas; got != want { t.Errorf("after setting %q to %v:\nMessage.Has(%v) = %v, want %v", name, formatValue(v), num, got, want) } if got, want := m.Get(fd), v; !valueEqual(got, want) { t.Errorf("after setting %q:\nMessage.Get(%v) = %v, want %v", name, num, formatValue(got), formatValue(want)) } found := false m.Range(func(d pref.FieldDescriptor, got pref.Value) bool { if fd != d { return true } found = true if want := v; !valueEqual(got, want) { t.Errorf("after setting %q:\nMessage.Range got value %v, want %v", name, formatValue(got), formatValue(want)) } return true }) if got, want := wantHas, found; got != want { t.Errorf("after setting %q:\nMessageRange saw field: %v, want %v", name, got, want) } } m.Clear(fd) if got, want := m.Has(fd), false; got != want { t.Errorf("after clearing %q:\nMessage.Has(%v) = %v, want %v", name, num, got, want) } switch { case fd.IsList(): if got := m.Get(fd); got.List().Len() != 0 { t.Errorf("after clearing %q:\nMessage.Get(%v) = %v, want empty list", name, num, formatValue(got)) } case fd.IsMap(): if got := m.Get(fd); got.Map().Len() != 0 { t.Errorf("after clearing %q:\nMessage.Get(%v) = %v, want empty map", name, num, formatValue(got)) } case fd.Message() == nil: if got, want := m.Get(fd), fd.Default(); !valueEqual(got, want) { t.Errorf("after clearing %q:\nMessage.Get(%v) = %v, want default %v", name, num, formatValue(got), formatValue(want)) } } // Set to the default value. switch { case fd.IsList() || fd.IsMap(): m.Set(fd, m.Mutable(fd)) if got, want := m.Has(fd), (fd.IsExtension() && fd.Cardinality() != pref.Repeated) || fd.ContainingOneof() != nil; got != want { t.Errorf("after setting %q to default:\nMessage.Has(%v) = %v, want %v", name, num, got, want) } case fd.Message() == nil: m.Set(fd, m.Get(fd)) if got, want := m.Get(fd), fd.Default(); !valueEqual(got, want) { t.Errorf("after setting %q to default:\nMessage.Get(%v) = %v, want default %v", name, num, formatValue(got), formatValue(want)) } } m.Clear(fd) // Set to the wrong type. v := pref.ValueOfString("") if fd.Kind() == pref.StringKind { v = pref.ValueOfInt32(0) } if !panics(func() { m.Set(fd, v) }) { t.Errorf("setting %v to %T succeeds, want panic", name, v.Interface()) } } // testFieldMap tests set/get/has/clear of entries in a map field. func testFieldMap(t testing.TB, m pref.Message, fd pref.FieldDescriptor) { name := fd.FullName() num := fd.Number() // New values. m.Clear(fd) // start with an empty map mapv := m.Get(fd).Map() if mapv.IsValid() { t.Errorf("after clearing field: message.Get(%v).IsValid() = true, want false", name) } if got, want := mapv.NewValue(), newMapValue(fd, mapv, 0, nil); !valueEqual(got, want) { t.Errorf("message.Get(%v).NewValue() = %v, want %v", name, formatValue(got), formatValue(want)) } if !panics(func() { m.Set(fd, pref.ValueOfMap(mapv)) }) { t.Errorf("message.Set(%v, ) does not panic", name) } if !panics(func() { mapv.Set(newMapKey(fd, 0), newMapValue(fd, mapv, 0, nil)) }) { t.Errorf("message.Get(%v).Set(...) of invalid map does not panic", name) } mapv = m.Mutable(fd).Map() // mutable map if !mapv.IsValid() { t.Errorf("message.Mutable(%v).IsValid() = false, want true", name) } if got, want := mapv.NewValue(), newMapValue(fd, mapv, 0, nil); !valueEqual(got, want) { t.Errorf("message.Mutable(%v).NewValue() = %v, want %v", name, formatValue(got), formatValue(want)) } // Add values. want := make(testMap) for i, n := range []seed{1, 0, minVal, maxVal} { if got, want := m.Has(fd), i > 0; got != want { t.Errorf("after inserting %d elements to %q:\nMessage.Has(%v) = %v, want %v", i, name, num, got, want) } k := newMapKey(fd, n) v := newMapValue(fd, mapv, n, nil) mapv.Set(k, v) want.Set(k, v) if got, want := m.Get(fd), pref.ValueOfMap(want); !valueEqual(got, want) { t.Errorf("after inserting %d elements to %q:\nMessage.Get(%v) = %v, want %v", i, name, num, formatValue(got), formatValue(want)) } } // Set values. want.Range(func(k pref.MapKey, v pref.Value) bool { nv := newMapValue(fd, mapv, 10, nil) mapv.Set(k, nv) want.Set(k, nv) if got, want := m.Get(fd), pref.ValueOfMap(want); !valueEqual(got, want) { t.Errorf("after setting element %v of %q:\nMessage.Get(%v) = %v, want %v", formatValue(k.Value()), name, num, formatValue(got), formatValue(want)) } return true }) // Clear values. want.Range(func(k pref.MapKey, v pref.Value) bool { mapv.Clear(k) want.Clear(k) if got, want := m.Has(fd), want.Len() > 0; got != want { t.Errorf("after clearing elements of %q:\nMessage.Has(%v) = %v, want %v", name, num, got, want) } if got, want := m.Get(fd), pref.ValueOfMap(want); !valueEqual(got, want) { t.Errorf("after clearing elements of %q:\nMessage.Get(%v) = %v, want %v", name, num, formatValue(got), formatValue(want)) } return true }) if mapv := m.Get(fd).Map(); mapv.IsValid() { t.Errorf("after clearing all elements: message.Get(%v).IsValid() = true, want false %v", name, formatValue(pref.ValueOfMap(mapv))) } // Non-existent map keys. missingKey := newMapKey(fd, 1) if got, want := mapv.Has(missingKey), false; got != want { t.Errorf("non-existent map key in %q: Map.Has(%v) = %v, want %v", name, formatValue(missingKey.Value()), got, want) } if got, want := mapv.Get(missingKey).IsValid(), false; got != want { t.Errorf("non-existent map key in %q: Map.Get(%v).IsValid() = %v, want %v", name, formatValue(missingKey.Value()), got, want) } mapv.Clear(missingKey) // noop // Mutable. if fd.MapValue().Message() == nil { if !panics(func() { mapv.Mutable(newMapKey(fd, 1)) }) { t.Errorf("Mutable on %q succeeds, want panic", name) } } else { k := newMapKey(fd, 1) v := mapv.Mutable(k) if got, want := mapv.Len(), 1; got != want { t.Errorf("after Mutable on %q, Map.Len() = %v, want %v", name, got, want) } populateMessage(v.Message(), 1, nil) if !valueEqual(mapv.Get(k), v) { t.Errorf("after Mutable on %q, changing new mutable value does not change map entry", name) } mapv.Clear(k) } } type testMap map[interface{}]pref.Value func (m testMap) Get(k pref.MapKey) pref.Value { return m[k.Interface()] } func (m testMap) Set(k pref.MapKey, v pref.Value) { m[k.Interface()] = v } func (m testMap) Has(k pref.MapKey) bool { return m.Get(k).IsValid() } func (m testMap) Clear(k pref.MapKey) { delete(m, k.Interface()) } func (m testMap) Mutable(k pref.MapKey) pref.Value { panic("unimplemented") } func (m testMap) Len() int { return len(m) } func (m testMap) NewValue() pref.Value { panic("unimplemented") } func (m testMap) Range(f func(pref.MapKey, pref.Value) bool) { for k, v := range m { if !f(pref.ValueOf(k).MapKey(), v) { return } } } func (m testMap) IsValid() bool { return true } // testFieldList exercises set/get/append/truncate of values in a list. func testFieldList(t testing.TB, m pref.Message, fd pref.FieldDescriptor) { name := fd.FullName() num := fd.Number() m.Clear(fd) // start with an empty list list := m.Get(fd).List() if list.IsValid() { t.Errorf("message.Get(%v).IsValid() = true, want false", name) } if !panics(func() { m.Set(fd, pref.ValueOfList(list)) }) { t.Errorf("message.Set(%v, ) does not panic", name) } if !panics(func() { list.Append(newListElement(fd, list, 0, nil)) }) { t.Errorf("message.Get(%v).Append(...) of invalid list does not panic", name) } if got, want := list.NewElement(), newListElement(fd, list, 0, nil); !valueEqual(got, want) { t.Errorf("message.Get(%v).NewElement() = %v, want %v", name, formatValue(got), formatValue(want)) } list = m.Mutable(fd).List() // mutable list if !list.IsValid() { t.Errorf("message.Get(%v).IsValid() = false, want true", name) } if got, want := list.NewElement(), newListElement(fd, list, 0, nil); !valueEqual(got, want) { t.Errorf("message.Mutable(%v).NewElement() = %v, want %v", name, formatValue(got), formatValue(want)) } // Append values. var want pref.List = &testList{} for i, n := range []seed{1, 0, minVal, maxVal} { if got, want := m.Has(fd), i > 0; got != want { t.Errorf("after appending %d elements to %q:\nMessage.Has(%v) = %v, want %v", i, name, num, got, want) } v := newListElement(fd, list, n, nil) want.Append(v) list.Append(v) if got, want := m.Get(fd), pref.ValueOfList(want); !valueEqual(got, want) { t.Errorf("after appending %d elements to %q:\nMessage.Get(%v) = %v, want %v", i+1, name, num, formatValue(got), formatValue(want)) } } // Set values. for i := 0; i < want.Len(); i++ { v := newListElement(fd, list, seed(i+10), nil) want.Set(i, v) list.Set(i, v) if got, want := m.Get(fd), pref.ValueOfList(want); !valueEqual(got, want) { t.Errorf("after setting element %d of %q:\nMessage.Get(%v) = %v, want %v", i, name, num, formatValue(got), formatValue(want)) } } // Truncate. for want.Len() > 0 { n := want.Len() - 1 want.Truncate(n) list.Truncate(n) if got, want := m.Has(fd), want.Len() > 0; got != want { t.Errorf("after truncating %q to %d:\nMessage.Has(%v) = %v, want %v", name, n, num, got, want) } if got, want := m.Get(fd), pref.ValueOfList(want); !valueEqual(got, want) { t.Errorf("after truncating %q to %d:\nMessage.Get(%v) = %v, want %v", name, n, num, formatValue(got), formatValue(want)) } } // AppendMutable. if fd.Message() == nil { if !panics(func() { list.AppendMutable() }) { t.Errorf("AppendMutable on %q succeeds, want panic", name) } } else { v := list.AppendMutable() if got, want := list.Len(), 1; got != want { t.Errorf("after AppendMutable on %q, list.Len() = %v, want %v", name, got, want) } populateMessage(v.Message(), 1, nil) if !valueEqual(list.Get(0), v) { t.Errorf("after AppendMutable on %q, changing new mutable value does not change list item 0", name) } want.Truncate(0) } } type testList struct { a []pref.Value } func (l *testList) Append(v pref.Value) { l.a = append(l.a, v) } func (l *testList) AppendMutable() pref.Value { panic("unimplemented") } func (l *testList) Get(n int) pref.Value { return l.a[n] } func (l *testList) Len() int { return len(l.a) } func (l *testList) Set(n int, v pref.Value) { l.a[n] = v } func (l *testList) Truncate(n int) { l.a = l.a[:n] } func (l *testList) NewElement() pref.Value { panic("unimplemented") } func (l *testList) IsValid() bool { return true } // testFieldFloat exercises some interesting floating-point scalar field values. func testFieldFloat(t testing.TB, m pref.Message, fd pref.FieldDescriptor) { name := fd.FullName() num := fd.Number() for _, v := range []float64{math.Inf(-1), math.Inf(1), math.NaN(), math.Copysign(0, -1)} { var val pref.Value if fd.Kind() == pref.FloatKind { val = pref.ValueOfFloat32(float32(v)) } else { val = pref.ValueOfFloat64(float64(v)) } m.Set(fd, val) // Note that Has is true for -0. if got, want := m.Has(fd), true; got != want { t.Errorf("after setting %v to %v: Message.Has(%v) = %v, want %v", name, v, num, got, want) } if got, want := m.Get(fd), val; !valueEqual(got, want) { t.Errorf("after setting %v: Message.Get(%v) = %v, want %v", name, num, formatValue(got), formatValue(want)) } } } // testOneof tests the behavior of fields in a oneof. func testOneof(t testing.TB, m pref.Message, od pref.OneofDescriptor) { for _, mutable := range []bool{false, true} { for i := 0; i < od.Fields().Len(); i++ { fda := od.Fields().Get(i) if mutable { // Set fields by requesting a mutable reference. if !fda.IsMap() && !fda.IsList() && fda.Message() == nil { continue } _ = m.Mutable(fda) } else { // Set fields explicitly. m.Set(fda, newValue(m, fda, 1, nil)) } if got, want := m.WhichOneof(od), fda; got != want { t.Errorf("after setting oneof field %q:\nWhichOneof(%q) = %v, want %v", fda.FullName(), fda.Name(), got, want) } for j := 0; j < od.Fields().Len(); j++ { fdb := od.Fields().Get(j) if got, want := m.Has(fdb), i == j; got != want { t.Errorf("after setting oneof field %q:\nGet(%q) = %v, want %v", fda.FullName(), fdb.FullName(), got, want) } } } } } // testUnknown tests the behavior of unknown fields. func testUnknown(t testing.TB, m pref.Message) { var b []byte b = protowire.AppendTag(b, 1000, protowire.VarintType) b = protowire.AppendVarint(b, 1001) m.SetUnknown(pref.RawFields(b)) if got, want := []byte(m.GetUnknown()), b; !bytes.Equal(got, want) { t.Errorf("after setting unknown fields:\nGetUnknown() = %v, want %v", got, want) } } func formatValue(v pref.Value) string { switch v := v.Interface().(type) { case pref.List: var buf bytes.Buffer buf.WriteString("list[") for i := 0; i < v.Len(); i++ { if i > 0 { buf.WriteString(" ") } buf.WriteString(formatValue(v.Get(i))) } buf.WriteString("]") return buf.String() case pref.Map: var buf bytes.Buffer buf.WriteString("map[") var keys []pref.MapKey v.Range(func(k pref.MapKey, v pref.Value) bool { keys = append(keys, k) return true }) sort.Slice(keys, func(i, j int) bool { return keys[i].String() < keys[j].String() }) for i, k := range keys { if i > 0 { buf.WriteString(" ") } buf.WriteString(formatValue(k.Value())) buf.WriteString(":") buf.WriteString(formatValue(v.Get(k))) } buf.WriteString("]") return buf.String() case pref.Message: b, err := prototext.Marshal(v.Interface()) if err != nil { return fmt.Sprintf("<%v>", err) } return fmt.Sprintf("%v{%v}", v.Descriptor().FullName(), string(b)) case string: return fmt.Sprintf("%q", v) default: return fmt.Sprint(v) } } func valueEqual(a, b pref.Value) bool { ai, bi := a.Interface(), b.Interface() switch ai.(type) { case pref.Message: return proto.Equal( a.Message().Interface(), b.Message().Interface(), ) case pref.List: lista, listb := a.List(), b.List() if lista.Len() != listb.Len() { return false } for i := 0; i < lista.Len(); i++ { if !valueEqual(lista.Get(i), listb.Get(i)) { return false } } return true case pref.Map: mapa, mapb := a.Map(), b.Map() if mapa.Len() != mapb.Len() { return false } equal := true mapa.Range(func(k pref.MapKey, v pref.Value) bool { if !valueEqual(v, mapb.Get(k)) { equal = false return false } return true }) return equal case []byte: return bytes.Equal(a.Bytes(), b.Bytes()) case float32: // NaNs are equal, but must be the same NaN. return math.Float32bits(ai.(float32)) == math.Float32bits(bi.(float32)) case float64: // NaNs are equal, but must be the same NaN. return math.Float64bits(ai.(float64)) == math.Float64bits(bi.(float64)) default: return ai == bi } } // A seed is used to vary the content of a value. // // A seed of 0 is the zero value. Messages do not have a zero-value; a 0-seeded messages // is unpopulated. // // A seed of minVal or maxVal is the least or greatest value of the value type. type seed int const ( minVal seed = -1 maxVal seed = -2 ) // newSeed creates new seed values from a base, for example to create seeds for the // elements in a list. If the input seed is minVal or maxVal, so is the output. func newSeed(n seed, adjust ...int) seed { switch n { case minVal, maxVal: return n } for _, a := range adjust { n = 10*n + seed(a) } return n } // newValue returns a new value assignable to a field. // // The stack parameter is used to avoid infinite recursion when populating circular // data structures. func newValue(m pref.Message, fd pref.FieldDescriptor, n seed, stack []pref.MessageDescriptor) pref.Value { switch { case fd.IsList(): if n == 0 { return m.New().Mutable(fd) } list := m.NewField(fd).List() list.Append(newListElement(fd, list, 0, stack)) list.Append(newListElement(fd, list, minVal, stack)) list.Append(newListElement(fd, list, maxVal, stack)) list.Append(newListElement(fd, list, n, stack)) return pref.ValueOfList(list) case fd.IsMap(): if n == 0 { return m.New().Mutable(fd) } mapv := m.NewField(fd).Map() mapv.Set(newMapKey(fd, 0), newMapValue(fd, mapv, 0, stack)) mapv.Set(newMapKey(fd, minVal), newMapValue(fd, mapv, minVal, stack)) mapv.Set(newMapKey(fd, maxVal), newMapValue(fd, mapv, maxVal, stack)) mapv.Set(newMapKey(fd, n), newMapValue(fd, mapv, newSeed(n, 0), stack)) return pref.ValueOfMap(mapv) case fd.Message() != nil: return populateMessage(m.NewField(fd).Message(), n, stack) default: return newScalarValue(fd, n) } } func newListElement(fd pref.FieldDescriptor, list pref.List, n seed, stack []pref.MessageDescriptor) pref.Value { if fd.Message() == nil { return newScalarValue(fd, n) } return populateMessage(list.NewElement().Message(), n, stack) } func newMapKey(fd pref.FieldDescriptor, n seed) pref.MapKey { kd := fd.MapKey() return newScalarValue(kd, n).MapKey() } func newMapValue(fd pref.FieldDescriptor, mapv pref.Map, n seed, stack []pref.MessageDescriptor) pref.Value { vd := fd.MapValue() if vd.Message() == nil { return newScalarValue(vd, n) } return populateMessage(mapv.NewValue().Message(), n, stack) } func newScalarValue(fd pref.FieldDescriptor, n seed) pref.Value { switch fd.Kind() { case pref.BoolKind: return pref.ValueOfBool(n != 0) case pref.EnumKind: vals := fd.Enum().Values() var i int switch n { case minVal: i = 0 case maxVal: i = vals.Len() - 1 default: i = int(n) % vals.Len() } return pref.ValueOfEnum(vals.Get(i).Number()) case pref.Int32Kind, pref.Sint32Kind, pref.Sfixed32Kind: switch n { case minVal: return pref.ValueOfInt32(math.MinInt32) case maxVal: return pref.ValueOfInt32(math.MaxInt32) default: return pref.ValueOfInt32(int32(n)) } case pref.Uint32Kind, pref.Fixed32Kind: switch n { case minVal: // Only use 0 for the zero value. return pref.ValueOfUint32(1) case maxVal: return pref.ValueOfUint32(math.MaxInt32) default: return pref.ValueOfUint32(uint32(n)) } case pref.Int64Kind, pref.Sint64Kind, pref.Sfixed64Kind: switch n { case minVal: return pref.ValueOfInt64(math.MinInt64) case maxVal: return pref.ValueOfInt64(math.MaxInt64) default: return pref.ValueOfInt64(int64(n)) } case pref.Uint64Kind, pref.Fixed64Kind: switch n { case minVal: // Only use 0 for the zero value. return pref.ValueOfUint64(1) case maxVal: return pref.ValueOfUint64(math.MaxInt64) default: return pref.ValueOfUint64(uint64(n)) } case pref.FloatKind: switch n { case minVal: return pref.ValueOfFloat32(math.SmallestNonzeroFloat32) case maxVal: return pref.ValueOfFloat32(math.MaxFloat32) default: return pref.ValueOfFloat32(1.5 * float32(n)) } case pref.DoubleKind: switch n { case minVal: return pref.ValueOfFloat64(math.SmallestNonzeroFloat64) case maxVal: return pref.ValueOfFloat64(math.MaxFloat64) default: return pref.ValueOfFloat64(1.5 * float64(n)) } case pref.StringKind: if n == 0 { return pref.ValueOfString("") } return pref.ValueOfString(fmt.Sprintf("%d", n)) case pref.BytesKind: if n == 0 { return pref.ValueOfBytes(nil) } return pref.ValueOfBytes([]byte{byte(n >> 24), byte(n >> 16), byte(n >> 8), byte(n)}) } panic("unhandled kind") } func populateMessage(m pref.Message, n seed, stack []pref.MessageDescriptor) pref.Value { if n == 0 { return pref.ValueOfMessage(m) } md := m.Descriptor() for _, x := range stack { if md == x { return pref.ValueOfMessage(m) } } stack = append(stack, md) for i := 0; i < md.Fields().Len(); i++ { fd := md.Fields().Get(i) if fd.IsWeak() { continue } m.Set(fd, newValue(m, fd, newSeed(n, i), stack)) } return pref.ValueOfMessage(m) } func panics(f func()) (didPanic bool) { defer func() { if err := recover(); err != nil { didPanic = true } }() f() return false } golang-google-protobuf-1.27.1/testing/prototest/prototest_test.go000066400000000000000000000025601411250152500253310ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package prototest_test import ( "fmt" "testing" "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/runtime/protoimpl" "google.golang.org/protobuf/testing/prototest" irregularpb "google.golang.org/protobuf/internal/testprotos/irregular" legacypb "google.golang.org/protobuf/internal/testprotos/legacy" legacy1pb "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20160225_2fc053c5" testpb "google.golang.org/protobuf/internal/testprotos/test" _ "google.golang.org/protobuf/internal/testprotos/test/weak1" _ "google.golang.org/protobuf/internal/testprotos/test/weak2" test3pb "google.golang.org/protobuf/internal/testprotos/test3" ) func Test(t *testing.T) { ms := []proto.Message{ (*testpb.TestAllTypes)(nil), (*test3pb.TestAllTypes)(nil), (*testpb.TestRequired)(nil), (*irregularpb.Message)(nil), (*testpb.TestAllExtensions)(nil), (*legacypb.Legacy)(nil), protoimpl.X.MessageOf((*legacy1pb.Message)(nil)).Interface(), } if flags.ProtoLegacy { ms = append(ms, (*testpb.TestWeak)(nil)) } for _, m := range ms { t.Run(fmt.Sprintf("%T", m), func(t *testing.T) { prototest.Message{}.Test(t, m.ProtoReflect().Type()) }) } } golang-google-protobuf-1.27.1/types/000077500000000000000000000000001411250152500173215ustar00rootroot00000000000000golang-google-protobuf-1.27.1/types/descriptorpb/000077500000000000000000000000001411250152500220215ustar00rootroot00000000000000golang-google-protobuf-1.27.1/types/descriptorpb/descriptor.pb.go000066400000000000000000005015631411250152500251400ustar00rootroot00000000000000// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Author: kenton@google.com (Kenton Varda) // Based on original Protocol Buffers design by // Sanjay Ghemawat, Jeff Dean, and others. // // The messages in this file describe the definitions found in .proto files. // A valid .proto file can be translated directly to a FileDescriptorProto // without any other information (e.g. without reading its imports). // Code generated by protoc-gen-go. DO NOT EDIT. // source: google/protobuf/descriptor.proto package descriptorpb import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) type FieldDescriptorProto_Type int32 const ( // 0 is reserved for errors. // Order is weird for historical reasons. FieldDescriptorProto_TYPE_DOUBLE FieldDescriptorProto_Type = 1 FieldDescriptorProto_TYPE_FLOAT FieldDescriptorProto_Type = 2 // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if // negative values are likely. FieldDescriptorProto_TYPE_INT64 FieldDescriptorProto_Type = 3 FieldDescriptorProto_TYPE_UINT64 FieldDescriptorProto_Type = 4 // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if // negative values are likely. FieldDescriptorProto_TYPE_INT32 FieldDescriptorProto_Type = 5 FieldDescriptorProto_TYPE_FIXED64 FieldDescriptorProto_Type = 6 FieldDescriptorProto_TYPE_FIXED32 FieldDescriptorProto_Type = 7 FieldDescriptorProto_TYPE_BOOL FieldDescriptorProto_Type = 8 FieldDescriptorProto_TYPE_STRING FieldDescriptorProto_Type = 9 // Tag-delimited aggregate. // Group type is deprecated and not supported in proto3. However, Proto3 // implementations should still be able to parse the group wire format and // treat group fields as unknown fields. FieldDescriptorProto_TYPE_GROUP FieldDescriptorProto_Type = 10 FieldDescriptorProto_TYPE_MESSAGE FieldDescriptorProto_Type = 11 // Length-delimited aggregate. // New in version 2. FieldDescriptorProto_TYPE_BYTES FieldDescriptorProto_Type = 12 FieldDescriptorProto_TYPE_UINT32 FieldDescriptorProto_Type = 13 FieldDescriptorProto_TYPE_ENUM FieldDescriptorProto_Type = 14 FieldDescriptorProto_TYPE_SFIXED32 FieldDescriptorProto_Type = 15 FieldDescriptorProto_TYPE_SFIXED64 FieldDescriptorProto_Type = 16 FieldDescriptorProto_TYPE_SINT32 FieldDescriptorProto_Type = 17 // Uses ZigZag encoding. FieldDescriptorProto_TYPE_SINT64 FieldDescriptorProto_Type = 18 // Uses ZigZag encoding. ) // Enum value maps for FieldDescriptorProto_Type. var ( FieldDescriptorProto_Type_name = map[int32]string{ 1: "TYPE_DOUBLE", 2: "TYPE_FLOAT", 3: "TYPE_INT64", 4: "TYPE_UINT64", 5: "TYPE_INT32", 6: "TYPE_FIXED64", 7: "TYPE_FIXED32", 8: "TYPE_BOOL", 9: "TYPE_STRING", 10: "TYPE_GROUP", 11: "TYPE_MESSAGE", 12: "TYPE_BYTES", 13: "TYPE_UINT32", 14: "TYPE_ENUM", 15: "TYPE_SFIXED32", 16: "TYPE_SFIXED64", 17: "TYPE_SINT32", 18: "TYPE_SINT64", } FieldDescriptorProto_Type_value = map[string]int32{ "TYPE_DOUBLE": 1, "TYPE_FLOAT": 2, "TYPE_INT64": 3, "TYPE_UINT64": 4, "TYPE_INT32": 5, "TYPE_FIXED64": 6, "TYPE_FIXED32": 7, "TYPE_BOOL": 8, "TYPE_STRING": 9, "TYPE_GROUP": 10, "TYPE_MESSAGE": 11, "TYPE_BYTES": 12, "TYPE_UINT32": 13, "TYPE_ENUM": 14, "TYPE_SFIXED32": 15, "TYPE_SFIXED64": 16, "TYPE_SINT32": 17, "TYPE_SINT64": 18, } ) func (x FieldDescriptorProto_Type) Enum() *FieldDescriptorProto_Type { p := new(FieldDescriptorProto_Type) *p = x return p } func (x FieldDescriptorProto_Type) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (FieldDescriptorProto_Type) Descriptor() protoreflect.EnumDescriptor { return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() } func (FieldDescriptorProto_Type) Type() protoreflect.EnumType { return &file_google_protobuf_descriptor_proto_enumTypes[0] } func (x FieldDescriptorProto_Type) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *FieldDescriptorProto_Type) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = FieldDescriptorProto_Type(num) return nil } // Deprecated: Use FieldDescriptorProto_Type.Descriptor instead. func (FieldDescriptorProto_Type) EnumDescriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{4, 0} } type FieldDescriptorProto_Label int32 const ( // 0 is reserved for errors FieldDescriptorProto_LABEL_OPTIONAL FieldDescriptorProto_Label = 1 FieldDescriptorProto_LABEL_REQUIRED FieldDescriptorProto_Label = 2 FieldDescriptorProto_LABEL_REPEATED FieldDescriptorProto_Label = 3 ) // Enum value maps for FieldDescriptorProto_Label. var ( FieldDescriptorProto_Label_name = map[int32]string{ 1: "LABEL_OPTIONAL", 2: "LABEL_REQUIRED", 3: "LABEL_REPEATED", } FieldDescriptorProto_Label_value = map[string]int32{ "LABEL_OPTIONAL": 1, "LABEL_REQUIRED": 2, "LABEL_REPEATED": 3, } ) func (x FieldDescriptorProto_Label) Enum() *FieldDescriptorProto_Label { p := new(FieldDescriptorProto_Label) *p = x return p } func (x FieldDescriptorProto_Label) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (FieldDescriptorProto_Label) Descriptor() protoreflect.EnumDescriptor { return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() } func (FieldDescriptorProto_Label) Type() protoreflect.EnumType { return &file_google_protobuf_descriptor_proto_enumTypes[1] } func (x FieldDescriptorProto_Label) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *FieldDescriptorProto_Label) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = FieldDescriptorProto_Label(num) return nil } // Deprecated: Use FieldDescriptorProto_Label.Descriptor instead. func (FieldDescriptorProto_Label) EnumDescriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{4, 1} } // Generated classes can be optimized for speed or code size. type FileOptions_OptimizeMode int32 const ( FileOptions_SPEED FileOptions_OptimizeMode = 1 // Generate complete code for parsing, serialization, // etc. FileOptions_CODE_SIZE FileOptions_OptimizeMode = 2 // Use ReflectionOps to implement these methods. FileOptions_LITE_RUNTIME FileOptions_OptimizeMode = 3 // Generate code using MessageLite and the lite runtime. ) // Enum value maps for FileOptions_OptimizeMode. var ( FileOptions_OptimizeMode_name = map[int32]string{ 1: "SPEED", 2: "CODE_SIZE", 3: "LITE_RUNTIME", } FileOptions_OptimizeMode_value = map[string]int32{ "SPEED": 1, "CODE_SIZE": 2, "LITE_RUNTIME": 3, } ) func (x FileOptions_OptimizeMode) Enum() *FileOptions_OptimizeMode { p := new(FileOptions_OptimizeMode) *p = x return p } func (x FileOptions_OptimizeMode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (FileOptions_OptimizeMode) Descriptor() protoreflect.EnumDescriptor { return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() } func (FileOptions_OptimizeMode) Type() protoreflect.EnumType { return &file_google_protobuf_descriptor_proto_enumTypes[2] } func (x FileOptions_OptimizeMode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *FileOptions_OptimizeMode) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = FileOptions_OptimizeMode(num) return nil } // Deprecated: Use FileOptions_OptimizeMode.Descriptor instead. func (FileOptions_OptimizeMode) EnumDescriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{10, 0} } type FieldOptions_CType int32 const ( // Default mode. FieldOptions_STRING FieldOptions_CType = 0 FieldOptions_CORD FieldOptions_CType = 1 FieldOptions_STRING_PIECE FieldOptions_CType = 2 ) // Enum value maps for FieldOptions_CType. var ( FieldOptions_CType_name = map[int32]string{ 0: "STRING", 1: "CORD", 2: "STRING_PIECE", } FieldOptions_CType_value = map[string]int32{ "STRING": 0, "CORD": 1, "STRING_PIECE": 2, } ) func (x FieldOptions_CType) Enum() *FieldOptions_CType { p := new(FieldOptions_CType) *p = x return p } func (x FieldOptions_CType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (FieldOptions_CType) Descriptor() protoreflect.EnumDescriptor { return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() } func (FieldOptions_CType) Type() protoreflect.EnumType { return &file_google_protobuf_descriptor_proto_enumTypes[3] } func (x FieldOptions_CType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *FieldOptions_CType) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = FieldOptions_CType(num) return nil } // Deprecated: Use FieldOptions_CType.Descriptor instead. func (FieldOptions_CType) EnumDescriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 0} } type FieldOptions_JSType int32 const ( // Use the default type. FieldOptions_JS_NORMAL FieldOptions_JSType = 0 // Use JavaScript strings. FieldOptions_JS_STRING FieldOptions_JSType = 1 // Use JavaScript numbers. FieldOptions_JS_NUMBER FieldOptions_JSType = 2 ) // Enum value maps for FieldOptions_JSType. var ( FieldOptions_JSType_name = map[int32]string{ 0: "JS_NORMAL", 1: "JS_STRING", 2: "JS_NUMBER", } FieldOptions_JSType_value = map[string]int32{ "JS_NORMAL": 0, "JS_STRING": 1, "JS_NUMBER": 2, } ) func (x FieldOptions_JSType) Enum() *FieldOptions_JSType { p := new(FieldOptions_JSType) *p = x return p } func (x FieldOptions_JSType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (FieldOptions_JSType) Descriptor() protoreflect.EnumDescriptor { return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() } func (FieldOptions_JSType) Type() protoreflect.EnumType { return &file_google_protobuf_descriptor_proto_enumTypes[4] } func (x FieldOptions_JSType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *FieldOptions_JSType) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = FieldOptions_JSType(num) return nil } // Deprecated: Use FieldOptions_JSType.Descriptor instead. func (FieldOptions_JSType) EnumDescriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 1} } // Is this method side-effect-free (or safe in HTTP parlance), or idempotent, // or neither? HTTP based RPC implementation may choose GET verb for safe // methods, and PUT verb for idempotent methods instead of the default POST. type MethodOptions_IdempotencyLevel int32 const ( MethodOptions_IDEMPOTENCY_UNKNOWN MethodOptions_IdempotencyLevel = 0 MethodOptions_NO_SIDE_EFFECTS MethodOptions_IdempotencyLevel = 1 // implies idempotent MethodOptions_IDEMPOTENT MethodOptions_IdempotencyLevel = 2 // idempotent, but may have side effects ) // Enum value maps for MethodOptions_IdempotencyLevel. var ( MethodOptions_IdempotencyLevel_name = map[int32]string{ 0: "IDEMPOTENCY_UNKNOWN", 1: "NO_SIDE_EFFECTS", 2: "IDEMPOTENT", } MethodOptions_IdempotencyLevel_value = map[string]int32{ "IDEMPOTENCY_UNKNOWN": 0, "NO_SIDE_EFFECTS": 1, "IDEMPOTENT": 2, } ) func (x MethodOptions_IdempotencyLevel) Enum() *MethodOptions_IdempotencyLevel { p := new(MethodOptions_IdempotencyLevel) *p = x return p } func (x MethodOptions_IdempotencyLevel) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (MethodOptions_IdempotencyLevel) Descriptor() protoreflect.EnumDescriptor { return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() } func (MethodOptions_IdempotencyLevel) Type() protoreflect.EnumType { return &file_google_protobuf_descriptor_proto_enumTypes[5] } func (x MethodOptions_IdempotencyLevel) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *MethodOptions_IdempotencyLevel) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = MethodOptions_IdempotencyLevel(num) return nil } // Deprecated: Use MethodOptions_IdempotencyLevel.Descriptor instead. func (MethodOptions_IdempotencyLevel) EnumDescriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{17, 0} } // The protocol compiler can output a FileDescriptorSet containing the .proto // files it parses. type FileDescriptorSet struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields File []*FileDescriptorProto `protobuf:"bytes,1,rep,name=file" json:"file,omitempty"` } func (x *FileDescriptorSet) Reset() { *x = FileDescriptorSet{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FileDescriptorSet) String() string { return protoimpl.X.MessageStringOf(x) } func (*FileDescriptorSet) ProtoMessage() {} func (x *FileDescriptorSet) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FileDescriptorSet.ProtoReflect.Descriptor instead. func (*FileDescriptorSet) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{0} } func (x *FileDescriptorSet) GetFile() []*FileDescriptorProto { if x != nil { return x.File } return nil } // Describes a complete .proto file. type FileDescriptorProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` // file name, relative to root of source tree Package *string `protobuf:"bytes,2,opt,name=package" json:"package,omitempty"` // e.g. "foo", "foo.bar", etc. // Names of files imported by this file. Dependency []string `protobuf:"bytes,3,rep,name=dependency" json:"dependency,omitempty"` // Indexes of the public imported files in the dependency list above. PublicDependency []int32 `protobuf:"varint,10,rep,name=public_dependency,json=publicDependency" json:"public_dependency,omitempty"` // Indexes of the weak imported files in the dependency list. // For Google-internal migration only. Do not use. WeakDependency []int32 `protobuf:"varint,11,rep,name=weak_dependency,json=weakDependency" json:"weak_dependency,omitempty"` // All top-level definitions in this file. MessageType []*DescriptorProto `protobuf:"bytes,4,rep,name=message_type,json=messageType" json:"message_type,omitempty"` EnumType []*EnumDescriptorProto `protobuf:"bytes,5,rep,name=enum_type,json=enumType" json:"enum_type,omitempty"` Service []*ServiceDescriptorProto `protobuf:"bytes,6,rep,name=service" json:"service,omitempty"` Extension []*FieldDescriptorProto `protobuf:"bytes,7,rep,name=extension" json:"extension,omitempty"` Options *FileOptions `protobuf:"bytes,8,opt,name=options" json:"options,omitempty"` // This field contains optional information about the original source code. // You may safely remove this entire field without harming runtime // functionality of the descriptors -- the information is needed only by // development tools. SourceCodeInfo *SourceCodeInfo `protobuf:"bytes,9,opt,name=source_code_info,json=sourceCodeInfo" json:"source_code_info,omitempty"` // The syntax of the proto file. // The supported values are "proto2" and "proto3". Syntax *string `protobuf:"bytes,12,opt,name=syntax" json:"syntax,omitempty"` } func (x *FileDescriptorProto) Reset() { *x = FileDescriptorProto{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FileDescriptorProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*FileDescriptorProto) ProtoMessage() {} func (x *FileDescriptorProto) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FileDescriptorProto.ProtoReflect.Descriptor instead. func (*FileDescriptorProto) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{1} } func (x *FileDescriptorProto) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } func (x *FileDescriptorProto) GetPackage() string { if x != nil && x.Package != nil { return *x.Package } return "" } func (x *FileDescriptorProto) GetDependency() []string { if x != nil { return x.Dependency } return nil } func (x *FileDescriptorProto) GetPublicDependency() []int32 { if x != nil { return x.PublicDependency } return nil } func (x *FileDescriptorProto) GetWeakDependency() []int32 { if x != nil { return x.WeakDependency } return nil } func (x *FileDescriptorProto) GetMessageType() []*DescriptorProto { if x != nil { return x.MessageType } return nil } func (x *FileDescriptorProto) GetEnumType() []*EnumDescriptorProto { if x != nil { return x.EnumType } return nil } func (x *FileDescriptorProto) GetService() []*ServiceDescriptorProto { if x != nil { return x.Service } return nil } func (x *FileDescriptorProto) GetExtension() []*FieldDescriptorProto { if x != nil { return x.Extension } return nil } func (x *FileDescriptorProto) GetOptions() *FileOptions { if x != nil { return x.Options } return nil } func (x *FileDescriptorProto) GetSourceCodeInfo() *SourceCodeInfo { if x != nil { return x.SourceCodeInfo } return nil } func (x *FileDescriptorProto) GetSyntax() string { if x != nil && x.Syntax != nil { return *x.Syntax } return "" } // Describes a message type. type DescriptorProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` Field []*FieldDescriptorProto `protobuf:"bytes,2,rep,name=field" json:"field,omitempty"` Extension []*FieldDescriptorProto `protobuf:"bytes,6,rep,name=extension" json:"extension,omitempty"` NestedType []*DescriptorProto `protobuf:"bytes,3,rep,name=nested_type,json=nestedType" json:"nested_type,omitempty"` EnumType []*EnumDescriptorProto `protobuf:"bytes,4,rep,name=enum_type,json=enumType" json:"enum_type,omitempty"` ExtensionRange []*DescriptorProto_ExtensionRange `protobuf:"bytes,5,rep,name=extension_range,json=extensionRange" json:"extension_range,omitempty"` OneofDecl []*OneofDescriptorProto `protobuf:"bytes,8,rep,name=oneof_decl,json=oneofDecl" json:"oneof_decl,omitempty"` Options *MessageOptions `protobuf:"bytes,7,opt,name=options" json:"options,omitempty"` ReservedRange []*DescriptorProto_ReservedRange `protobuf:"bytes,9,rep,name=reserved_range,json=reservedRange" json:"reserved_range,omitempty"` // Reserved field names, which may not be used by fields in the same message. // A given name may only be reserved once. ReservedName []string `protobuf:"bytes,10,rep,name=reserved_name,json=reservedName" json:"reserved_name,omitempty"` } func (x *DescriptorProto) Reset() { *x = DescriptorProto{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DescriptorProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*DescriptorProto) ProtoMessage() {} func (x *DescriptorProto) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DescriptorProto.ProtoReflect.Descriptor instead. func (*DescriptorProto) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{2} } func (x *DescriptorProto) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } func (x *DescriptorProto) GetField() []*FieldDescriptorProto { if x != nil { return x.Field } return nil } func (x *DescriptorProto) GetExtension() []*FieldDescriptorProto { if x != nil { return x.Extension } return nil } func (x *DescriptorProto) GetNestedType() []*DescriptorProto { if x != nil { return x.NestedType } return nil } func (x *DescriptorProto) GetEnumType() []*EnumDescriptorProto { if x != nil { return x.EnumType } return nil } func (x *DescriptorProto) GetExtensionRange() []*DescriptorProto_ExtensionRange { if x != nil { return x.ExtensionRange } return nil } func (x *DescriptorProto) GetOneofDecl() []*OneofDescriptorProto { if x != nil { return x.OneofDecl } return nil } func (x *DescriptorProto) GetOptions() *MessageOptions { if x != nil { return x.Options } return nil } func (x *DescriptorProto) GetReservedRange() []*DescriptorProto_ReservedRange { if x != nil { return x.ReservedRange } return nil } func (x *DescriptorProto) GetReservedName() []string { if x != nil { return x.ReservedName } return nil } type ExtensionRangeOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields // The parser stores options it doesn't recognize here. See above. UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` } func (x *ExtensionRangeOptions) Reset() { *x = ExtensionRangeOptions{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExtensionRangeOptions) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExtensionRangeOptions) ProtoMessage() {} func (x *ExtensionRangeOptions) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ExtensionRangeOptions.ProtoReflect.Descriptor instead. func (*ExtensionRangeOptions) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{3} } func (x *ExtensionRangeOptions) GetUninterpretedOption() []*UninterpretedOption { if x != nil { return x.UninterpretedOption } return nil } // Describes a field within a message. type FieldDescriptorProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` Number *int32 `protobuf:"varint,3,opt,name=number" json:"number,omitempty"` Label *FieldDescriptorProto_Label `protobuf:"varint,4,opt,name=label,enum=google.protobuf.FieldDescriptorProto_Label" json:"label,omitempty"` // If type_name is set, this need not be set. If both this and type_name // are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. Type *FieldDescriptorProto_Type `protobuf:"varint,5,opt,name=type,enum=google.protobuf.FieldDescriptorProto_Type" json:"type,omitempty"` // For message and enum types, this is the name of the type. If the name // starts with a '.', it is fully-qualified. Otherwise, C++-like scoping // rules are used to find the type (i.e. first the nested types within this // message are searched, then within the parent, on up to the root // namespace). TypeName *string `protobuf:"bytes,6,opt,name=type_name,json=typeName" json:"type_name,omitempty"` // For extensions, this is the name of the type being extended. It is // resolved in the same manner as type_name. Extendee *string `protobuf:"bytes,2,opt,name=extendee" json:"extendee,omitempty"` // For numeric types, contains the original text representation of the value. // For booleans, "true" or "false". // For strings, contains the default text contents (not escaped in any way). // For bytes, contains the C escaped value. All bytes >= 128 are escaped. // TODO(kenton): Base-64 encode? DefaultValue *string `protobuf:"bytes,7,opt,name=default_value,json=defaultValue" json:"default_value,omitempty"` // If set, gives the index of a oneof in the containing type's oneof_decl // list. This field is a member of that oneof. OneofIndex *int32 `protobuf:"varint,9,opt,name=oneof_index,json=oneofIndex" json:"oneof_index,omitempty"` // JSON name of this field. The value is set by protocol compiler. If the // user has set a "json_name" option on this field, that option's value // will be used. Otherwise, it's deduced from the field's name by converting // it to camelCase. JsonName *string `protobuf:"bytes,10,opt,name=json_name,json=jsonName" json:"json_name,omitempty"` Options *FieldOptions `protobuf:"bytes,8,opt,name=options" json:"options,omitempty"` // If true, this is a proto3 "optional". When a proto3 field is optional, it // tracks presence regardless of field type. // // When proto3_optional is true, this field must be belong to a oneof to // signal to old proto3 clients that presence is tracked for this field. This // oneof is known as a "synthetic" oneof, and this field must be its sole // member (each proto3 optional field gets its own synthetic oneof). Synthetic // oneofs exist in the descriptor only, and do not generate any API. Synthetic // oneofs must be ordered after all "real" oneofs. // // For message fields, proto3_optional doesn't create any semantic change, // since non-repeated message fields always track presence. However it still // indicates the semantic detail of whether the user wrote "optional" or not. // This can be useful for round-tripping the .proto file. For consistency we // give message fields a synthetic oneof also, even though it is not required // to track presence. This is especially important because the parser can't // tell if a field is a message or an enum, so it must always create a // synthetic oneof. // // Proto2 optional fields do not set this flag, because they already indicate // optional with `LABEL_OPTIONAL`. Proto3Optional *bool `protobuf:"varint,17,opt,name=proto3_optional,json=proto3Optional" json:"proto3_optional,omitempty"` } func (x *FieldDescriptorProto) Reset() { *x = FieldDescriptorProto{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FieldDescriptorProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*FieldDescriptorProto) ProtoMessage() {} func (x *FieldDescriptorProto) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FieldDescriptorProto.ProtoReflect.Descriptor instead. func (*FieldDescriptorProto) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{4} } func (x *FieldDescriptorProto) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } func (x *FieldDescriptorProto) GetNumber() int32 { if x != nil && x.Number != nil { return *x.Number } return 0 } func (x *FieldDescriptorProto) GetLabel() FieldDescriptorProto_Label { if x != nil && x.Label != nil { return *x.Label } return FieldDescriptorProto_LABEL_OPTIONAL } func (x *FieldDescriptorProto) GetType() FieldDescriptorProto_Type { if x != nil && x.Type != nil { return *x.Type } return FieldDescriptorProto_TYPE_DOUBLE } func (x *FieldDescriptorProto) GetTypeName() string { if x != nil && x.TypeName != nil { return *x.TypeName } return "" } func (x *FieldDescriptorProto) GetExtendee() string { if x != nil && x.Extendee != nil { return *x.Extendee } return "" } func (x *FieldDescriptorProto) GetDefaultValue() string { if x != nil && x.DefaultValue != nil { return *x.DefaultValue } return "" } func (x *FieldDescriptorProto) GetOneofIndex() int32 { if x != nil && x.OneofIndex != nil { return *x.OneofIndex } return 0 } func (x *FieldDescriptorProto) GetJsonName() string { if x != nil && x.JsonName != nil { return *x.JsonName } return "" } func (x *FieldDescriptorProto) GetOptions() *FieldOptions { if x != nil { return x.Options } return nil } func (x *FieldDescriptorProto) GetProto3Optional() bool { if x != nil && x.Proto3Optional != nil { return *x.Proto3Optional } return false } // Describes a oneof. type OneofDescriptorProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` Options *OneofOptions `protobuf:"bytes,2,opt,name=options" json:"options,omitempty"` } func (x *OneofDescriptorProto) Reset() { *x = OneofDescriptorProto{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OneofDescriptorProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*OneofDescriptorProto) ProtoMessage() {} func (x *OneofDescriptorProto) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use OneofDescriptorProto.ProtoReflect.Descriptor instead. func (*OneofDescriptorProto) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{5} } func (x *OneofDescriptorProto) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } func (x *OneofDescriptorProto) GetOptions() *OneofOptions { if x != nil { return x.Options } return nil } // Describes an enum type. type EnumDescriptorProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` Value []*EnumValueDescriptorProto `protobuf:"bytes,2,rep,name=value" json:"value,omitempty"` Options *EnumOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` // Range of reserved numeric values. Reserved numeric values may not be used // by enum values in the same enum declaration. Reserved ranges may not // overlap. ReservedRange []*EnumDescriptorProto_EnumReservedRange `protobuf:"bytes,4,rep,name=reserved_range,json=reservedRange" json:"reserved_range,omitempty"` // Reserved enum value names, which may not be reused. A given name may only // be reserved once. ReservedName []string `protobuf:"bytes,5,rep,name=reserved_name,json=reservedName" json:"reserved_name,omitempty"` } func (x *EnumDescriptorProto) Reset() { *x = EnumDescriptorProto{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EnumDescriptorProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*EnumDescriptorProto) ProtoMessage() {} func (x *EnumDescriptorProto) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use EnumDescriptorProto.ProtoReflect.Descriptor instead. func (*EnumDescriptorProto) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{6} } func (x *EnumDescriptorProto) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } func (x *EnumDescriptorProto) GetValue() []*EnumValueDescriptorProto { if x != nil { return x.Value } return nil } func (x *EnumDescriptorProto) GetOptions() *EnumOptions { if x != nil { return x.Options } return nil } func (x *EnumDescriptorProto) GetReservedRange() []*EnumDescriptorProto_EnumReservedRange { if x != nil { return x.ReservedRange } return nil } func (x *EnumDescriptorProto) GetReservedName() []string { if x != nil { return x.ReservedName } return nil } // Describes a value within an enum. type EnumValueDescriptorProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` Number *int32 `protobuf:"varint,2,opt,name=number" json:"number,omitempty"` Options *EnumValueOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` } func (x *EnumValueDescriptorProto) Reset() { *x = EnumValueDescriptorProto{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EnumValueDescriptorProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*EnumValueDescriptorProto) ProtoMessage() {} func (x *EnumValueDescriptorProto) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use EnumValueDescriptorProto.ProtoReflect.Descriptor instead. func (*EnumValueDescriptorProto) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{7} } func (x *EnumValueDescriptorProto) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } func (x *EnumValueDescriptorProto) GetNumber() int32 { if x != nil && x.Number != nil { return *x.Number } return 0 } func (x *EnumValueDescriptorProto) GetOptions() *EnumValueOptions { if x != nil { return x.Options } return nil } // Describes a service. type ServiceDescriptorProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` Method []*MethodDescriptorProto `protobuf:"bytes,2,rep,name=method" json:"method,omitempty"` Options *ServiceOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` } func (x *ServiceDescriptorProto) Reset() { *x = ServiceDescriptorProto{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ServiceDescriptorProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*ServiceDescriptorProto) ProtoMessage() {} func (x *ServiceDescriptorProto) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ServiceDescriptorProto.ProtoReflect.Descriptor instead. func (*ServiceDescriptorProto) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{8} } func (x *ServiceDescriptorProto) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } func (x *ServiceDescriptorProto) GetMethod() []*MethodDescriptorProto { if x != nil { return x.Method } return nil } func (x *ServiceDescriptorProto) GetOptions() *ServiceOptions { if x != nil { return x.Options } return nil } // Describes a method of a service. type MethodDescriptorProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` // Input and output type names. These are resolved in the same way as // FieldDescriptorProto.type_name, but must refer to a message type. InputType *string `protobuf:"bytes,2,opt,name=input_type,json=inputType" json:"input_type,omitempty"` OutputType *string `protobuf:"bytes,3,opt,name=output_type,json=outputType" json:"output_type,omitempty"` Options *MethodOptions `protobuf:"bytes,4,opt,name=options" json:"options,omitempty"` // Identifies if client streams multiple client messages ClientStreaming *bool `protobuf:"varint,5,opt,name=client_streaming,json=clientStreaming,def=0" json:"client_streaming,omitempty"` // Identifies if server streams multiple server messages ServerStreaming *bool `protobuf:"varint,6,opt,name=server_streaming,json=serverStreaming,def=0" json:"server_streaming,omitempty"` } // Default values for MethodDescriptorProto fields. const ( Default_MethodDescriptorProto_ClientStreaming = bool(false) Default_MethodDescriptorProto_ServerStreaming = bool(false) ) func (x *MethodDescriptorProto) Reset() { *x = MethodDescriptorProto{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MethodDescriptorProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*MethodDescriptorProto) ProtoMessage() {} func (x *MethodDescriptorProto) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MethodDescriptorProto.ProtoReflect.Descriptor instead. func (*MethodDescriptorProto) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{9} } func (x *MethodDescriptorProto) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } func (x *MethodDescriptorProto) GetInputType() string { if x != nil && x.InputType != nil { return *x.InputType } return "" } func (x *MethodDescriptorProto) GetOutputType() string { if x != nil && x.OutputType != nil { return *x.OutputType } return "" } func (x *MethodDescriptorProto) GetOptions() *MethodOptions { if x != nil { return x.Options } return nil } func (x *MethodDescriptorProto) GetClientStreaming() bool { if x != nil && x.ClientStreaming != nil { return *x.ClientStreaming } return Default_MethodDescriptorProto_ClientStreaming } func (x *MethodDescriptorProto) GetServerStreaming() bool { if x != nil && x.ServerStreaming != nil { return *x.ServerStreaming } return Default_MethodDescriptorProto_ServerStreaming } type FileOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields // Sets the Java package where classes generated from this .proto will be // placed. By default, the proto package is used, but this is often // inappropriate because proto packages do not normally start with backwards // domain names. JavaPackage *string `protobuf:"bytes,1,opt,name=java_package,json=javaPackage" json:"java_package,omitempty"` // If set, all the classes from the .proto file are wrapped in a single // outer class with the given name. This applies to both Proto1 // (equivalent to the old "--one_java_file" option) and Proto2 (where // a .proto always translates to a single class, but you may want to // explicitly choose the class name). JavaOuterClassname *string `protobuf:"bytes,8,opt,name=java_outer_classname,json=javaOuterClassname" json:"java_outer_classname,omitempty"` // If set true, then the Java code generator will generate a separate .java // file for each top-level message, enum, and service defined in the .proto // file. Thus, these types will *not* be nested inside the outer class // named by java_outer_classname. However, the outer class will still be // generated to contain the file's getDescriptor() method as well as any // top-level extensions defined in the file. JavaMultipleFiles *bool `protobuf:"varint,10,opt,name=java_multiple_files,json=javaMultipleFiles,def=0" json:"java_multiple_files,omitempty"` // This option does nothing. // // Deprecated: Do not use. JavaGenerateEqualsAndHash *bool `protobuf:"varint,20,opt,name=java_generate_equals_and_hash,json=javaGenerateEqualsAndHash" json:"java_generate_equals_and_hash,omitempty"` // If set true, then the Java2 code generator will generate code that // throws an exception whenever an attempt is made to assign a non-UTF-8 // byte sequence to a string field. // Message reflection will do the same. // However, an extension field still accepts non-UTF-8 byte sequences. // This option has no effect on when used with the lite runtime. JavaStringCheckUtf8 *bool `protobuf:"varint,27,opt,name=java_string_check_utf8,json=javaStringCheckUtf8,def=0" json:"java_string_check_utf8,omitempty"` OptimizeFor *FileOptions_OptimizeMode `protobuf:"varint,9,opt,name=optimize_for,json=optimizeFor,enum=google.protobuf.FileOptions_OptimizeMode,def=1" json:"optimize_for,omitempty"` // Sets the Go package where structs generated from this .proto will be // placed. If omitted, the Go package will be derived from the following: // - The basename of the package import path, if provided. // - Otherwise, the package statement in the .proto file, if present. // - Otherwise, the basename of the .proto file, without extension. GoPackage *string `protobuf:"bytes,11,opt,name=go_package,json=goPackage" json:"go_package,omitempty"` // Should generic services be generated in each language? "Generic" services // are not specific to any particular RPC system. They are generated by the // main code generators in each language (without additional plugins). // Generic services were the only kind of service generation supported by // early versions of google.protobuf. // // Generic services are now considered deprecated in favor of using plugins // that generate code specific to your particular RPC system. Therefore, // these default to false. Old code which depends on generic services should // explicitly set them to true. CcGenericServices *bool `protobuf:"varint,16,opt,name=cc_generic_services,json=ccGenericServices,def=0" json:"cc_generic_services,omitempty"` JavaGenericServices *bool `protobuf:"varint,17,opt,name=java_generic_services,json=javaGenericServices,def=0" json:"java_generic_services,omitempty"` PyGenericServices *bool `protobuf:"varint,18,opt,name=py_generic_services,json=pyGenericServices,def=0" json:"py_generic_services,omitempty"` PhpGenericServices *bool `protobuf:"varint,42,opt,name=php_generic_services,json=phpGenericServices,def=0" json:"php_generic_services,omitempty"` // Is this file deprecated? // Depending on the target platform, this can emit Deprecated annotations // for everything in the file, or it will be completely ignored; in the very // least, this is a formalization for deprecating files. Deprecated *bool `protobuf:"varint,23,opt,name=deprecated,def=0" json:"deprecated,omitempty"` // Enables the use of arenas for the proto messages in this file. This applies // only to generated classes for C++. CcEnableArenas *bool `protobuf:"varint,31,opt,name=cc_enable_arenas,json=ccEnableArenas,def=1" json:"cc_enable_arenas,omitempty"` // Sets the objective c class prefix which is prepended to all objective c // generated classes from this .proto. There is no default. ObjcClassPrefix *string `protobuf:"bytes,36,opt,name=objc_class_prefix,json=objcClassPrefix" json:"objc_class_prefix,omitempty"` // Namespace for generated classes; defaults to the package. CsharpNamespace *string `protobuf:"bytes,37,opt,name=csharp_namespace,json=csharpNamespace" json:"csharp_namespace,omitempty"` // By default Swift generators will take the proto package and CamelCase it // replacing '.' with underscore and use that to prefix the types/symbols // defined. When this options is provided, they will use this value instead // to prefix the types/symbols defined. SwiftPrefix *string `protobuf:"bytes,39,opt,name=swift_prefix,json=swiftPrefix" json:"swift_prefix,omitempty"` // Sets the php class prefix which is prepended to all php generated classes // from this .proto. Default is empty. PhpClassPrefix *string `protobuf:"bytes,40,opt,name=php_class_prefix,json=phpClassPrefix" json:"php_class_prefix,omitempty"` // Use this option to change the namespace of php generated classes. Default // is empty. When this option is empty, the package name will be used for // determining the namespace. PhpNamespace *string `protobuf:"bytes,41,opt,name=php_namespace,json=phpNamespace" json:"php_namespace,omitempty"` // Use this option to change the namespace of php generated metadata classes. // Default is empty. When this option is empty, the proto file name will be // used for determining the namespace. PhpMetadataNamespace *string `protobuf:"bytes,44,opt,name=php_metadata_namespace,json=phpMetadataNamespace" json:"php_metadata_namespace,omitempty"` // Use this option to change the package of ruby generated classes. Default // is empty. When this option is not set, the package name will be used for // determining the ruby package. RubyPackage *string `protobuf:"bytes,45,opt,name=ruby_package,json=rubyPackage" json:"ruby_package,omitempty"` // The parser stores options it doesn't recognize here. // See the documentation for the "Options" section above. UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` } // Default values for FileOptions fields. const ( Default_FileOptions_JavaMultipleFiles = bool(false) Default_FileOptions_JavaStringCheckUtf8 = bool(false) Default_FileOptions_OptimizeFor = FileOptions_SPEED Default_FileOptions_CcGenericServices = bool(false) Default_FileOptions_JavaGenericServices = bool(false) Default_FileOptions_PyGenericServices = bool(false) Default_FileOptions_PhpGenericServices = bool(false) Default_FileOptions_Deprecated = bool(false) Default_FileOptions_CcEnableArenas = bool(true) ) func (x *FileOptions) Reset() { *x = FileOptions{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FileOptions) String() string { return protoimpl.X.MessageStringOf(x) } func (*FileOptions) ProtoMessage() {} func (x *FileOptions) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FileOptions.ProtoReflect.Descriptor instead. func (*FileOptions) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{10} } func (x *FileOptions) GetJavaPackage() string { if x != nil && x.JavaPackage != nil { return *x.JavaPackage } return "" } func (x *FileOptions) GetJavaOuterClassname() string { if x != nil && x.JavaOuterClassname != nil { return *x.JavaOuterClassname } return "" } func (x *FileOptions) GetJavaMultipleFiles() bool { if x != nil && x.JavaMultipleFiles != nil { return *x.JavaMultipleFiles } return Default_FileOptions_JavaMultipleFiles } // Deprecated: Do not use. func (x *FileOptions) GetJavaGenerateEqualsAndHash() bool { if x != nil && x.JavaGenerateEqualsAndHash != nil { return *x.JavaGenerateEqualsAndHash } return false } func (x *FileOptions) GetJavaStringCheckUtf8() bool { if x != nil && x.JavaStringCheckUtf8 != nil { return *x.JavaStringCheckUtf8 } return Default_FileOptions_JavaStringCheckUtf8 } func (x *FileOptions) GetOptimizeFor() FileOptions_OptimizeMode { if x != nil && x.OptimizeFor != nil { return *x.OptimizeFor } return Default_FileOptions_OptimizeFor } func (x *FileOptions) GetGoPackage() string { if x != nil && x.GoPackage != nil { return *x.GoPackage } return "" } func (x *FileOptions) GetCcGenericServices() bool { if x != nil && x.CcGenericServices != nil { return *x.CcGenericServices } return Default_FileOptions_CcGenericServices } func (x *FileOptions) GetJavaGenericServices() bool { if x != nil && x.JavaGenericServices != nil { return *x.JavaGenericServices } return Default_FileOptions_JavaGenericServices } func (x *FileOptions) GetPyGenericServices() bool { if x != nil && x.PyGenericServices != nil { return *x.PyGenericServices } return Default_FileOptions_PyGenericServices } func (x *FileOptions) GetPhpGenericServices() bool { if x != nil && x.PhpGenericServices != nil { return *x.PhpGenericServices } return Default_FileOptions_PhpGenericServices } func (x *FileOptions) GetDeprecated() bool { if x != nil && x.Deprecated != nil { return *x.Deprecated } return Default_FileOptions_Deprecated } func (x *FileOptions) GetCcEnableArenas() bool { if x != nil && x.CcEnableArenas != nil { return *x.CcEnableArenas } return Default_FileOptions_CcEnableArenas } func (x *FileOptions) GetObjcClassPrefix() string { if x != nil && x.ObjcClassPrefix != nil { return *x.ObjcClassPrefix } return "" } func (x *FileOptions) GetCsharpNamespace() string { if x != nil && x.CsharpNamespace != nil { return *x.CsharpNamespace } return "" } func (x *FileOptions) GetSwiftPrefix() string { if x != nil && x.SwiftPrefix != nil { return *x.SwiftPrefix } return "" } func (x *FileOptions) GetPhpClassPrefix() string { if x != nil && x.PhpClassPrefix != nil { return *x.PhpClassPrefix } return "" } func (x *FileOptions) GetPhpNamespace() string { if x != nil && x.PhpNamespace != nil { return *x.PhpNamespace } return "" } func (x *FileOptions) GetPhpMetadataNamespace() string { if x != nil && x.PhpMetadataNamespace != nil { return *x.PhpMetadataNamespace } return "" } func (x *FileOptions) GetRubyPackage() string { if x != nil && x.RubyPackage != nil { return *x.RubyPackage } return "" } func (x *FileOptions) GetUninterpretedOption() []*UninterpretedOption { if x != nil { return x.UninterpretedOption } return nil } type MessageOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields // Set true to use the old proto1 MessageSet wire format for extensions. // This is provided for backwards-compatibility with the MessageSet wire // format. You should not use this for any other reason: It's less // efficient, has fewer features, and is more complicated. // // The message must be defined exactly as follows: // message Foo { // option message_set_wire_format = true; // extensions 4 to max; // } // Note that the message cannot have any defined fields; MessageSets only // have extensions. // // All extensions of your type must be singular messages; e.g. they cannot // be int32s, enums, or repeated messages. // // Because this is an option, the above two restrictions are not enforced by // the protocol compiler. MessageSetWireFormat *bool `protobuf:"varint,1,opt,name=message_set_wire_format,json=messageSetWireFormat,def=0" json:"message_set_wire_format,omitempty"` // Disables the generation of the standard "descriptor()" accessor, which can // conflict with a field of the same name. This is meant to make migration // from proto1 easier; new code should avoid fields named "descriptor". NoStandardDescriptorAccessor *bool `protobuf:"varint,2,opt,name=no_standard_descriptor_accessor,json=noStandardDescriptorAccessor,def=0" json:"no_standard_descriptor_accessor,omitempty"` // Is this message deprecated? // Depending on the target platform, this can emit Deprecated annotations // for the message, or it will be completely ignored; in the very least, // this is a formalization for deprecating messages. Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` // Whether the message is an automatically generated map entry type for the // maps field. // // For maps fields: // map map_field = 1; // The parsed descriptor looks like: // message MapFieldEntry { // option map_entry = true; // optional KeyType key = 1; // optional ValueType value = 2; // } // repeated MapFieldEntry map_field = 1; // // Implementations may choose not to generate the map_entry=true message, but // use a native map in the target language to hold the keys and values. // The reflection APIs in such implementations still need to work as // if the field is a repeated message field. // // NOTE: Do not set the option in .proto files. Always use the maps syntax // instead. The option should only be implicitly set by the proto compiler // parser. MapEntry *bool `protobuf:"varint,7,opt,name=map_entry,json=mapEntry" json:"map_entry,omitempty"` // The parser stores options it doesn't recognize here. See above. UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` } // Default values for MessageOptions fields. const ( Default_MessageOptions_MessageSetWireFormat = bool(false) Default_MessageOptions_NoStandardDescriptorAccessor = bool(false) Default_MessageOptions_Deprecated = bool(false) ) func (x *MessageOptions) Reset() { *x = MessageOptions{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessageOptions) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessageOptions) ProtoMessage() {} func (x *MessageOptions) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MessageOptions.ProtoReflect.Descriptor instead. func (*MessageOptions) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{11} } func (x *MessageOptions) GetMessageSetWireFormat() bool { if x != nil && x.MessageSetWireFormat != nil { return *x.MessageSetWireFormat } return Default_MessageOptions_MessageSetWireFormat } func (x *MessageOptions) GetNoStandardDescriptorAccessor() bool { if x != nil && x.NoStandardDescriptorAccessor != nil { return *x.NoStandardDescriptorAccessor } return Default_MessageOptions_NoStandardDescriptorAccessor } func (x *MessageOptions) GetDeprecated() bool { if x != nil && x.Deprecated != nil { return *x.Deprecated } return Default_MessageOptions_Deprecated } func (x *MessageOptions) GetMapEntry() bool { if x != nil && x.MapEntry != nil { return *x.MapEntry } return false } func (x *MessageOptions) GetUninterpretedOption() []*UninterpretedOption { if x != nil { return x.UninterpretedOption } return nil } type FieldOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields // The ctype option instructs the C++ code generator to use a different // representation of the field than it normally would. See the specific // options below. This option is not yet implemented in the open source // release -- sorry, we'll try to include it in a future version! Ctype *FieldOptions_CType `protobuf:"varint,1,opt,name=ctype,enum=google.protobuf.FieldOptions_CType,def=0" json:"ctype,omitempty"` // The packed option can be enabled for repeated primitive fields to enable // a more efficient representation on the wire. Rather than repeatedly // writing the tag and type for each element, the entire array is encoded as // a single length-delimited blob. In proto3, only explicit setting it to // false will avoid using packed encoding. Packed *bool `protobuf:"varint,2,opt,name=packed" json:"packed,omitempty"` // The jstype option determines the JavaScript type used for values of the // field. The option is permitted only for 64 bit integral and fixed types // (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING // is represented as JavaScript string, which avoids loss of precision that // can happen when a large value is converted to a floating point JavaScript. // Specifying JS_NUMBER for the jstype causes the generated JavaScript code to // use the JavaScript "number" type. The behavior of the default option // JS_NORMAL is implementation dependent. // // This option is an enum to permit additional types to be added, e.g. // goog.math.Integer. Jstype *FieldOptions_JSType `protobuf:"varint,6,opt,name=jstype,enum=google.protobuf.FieldOptions_JSType,def=0" json:"jstype,omitempty"` // Should this field be parsed lazily? Lazy applies only to message-type // fields. It means that when the outer message is initially parsed, the // inner message's contents will not be parsed but instead stored in encoded // form. The inner message will actually be parsed when it is first accessed. // // This is only a hint. Implementations are free to choose whether to use // eager or lazy parsing regardless of the value of this option. However, // setting this option true suggests that the protocol author believes that // using lazy parsing on this field is worth the additional bookkeeping // overhead typically needed to implement it. // // This option does not affect the public interface of any generated code; // all method signatures remain the same. Furthermore, thread-safety of the // interface is not affected by this option; const methods remain safe to // call from multiple threads concurrently, while non-const methods continue // to require exclusive access. // // // Note that implementations may choose not to check required fields within // a lazy sub-message. That is, calling IsInitialized() on the outer message // may return true even if the inner message has missing required fields. // This is necessary because otherwise the inner message would have to be // parsed in order to perform the check, defeating the purpose of lazy // parsing. An implementation which chooses not to check required fields // must be consistent about it. That is, for any particular sub-message, the // implementation must either *always* check its required fields, or *never* // check its required fields, regardless of whether or not the message has // been parsed. Lazy *bool `protobuf:"varint,5,opt,name=lazy,def=0" json:"lazy,omitempty"` // Is this field deprecated? // Depending on the target platform, this can emit Deprecated annotations // for accessors, or it will be completely ignored; in the very least, this // is a formalization for deprecating fields. Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` // For Google-internal migration only. Do not use. Weak *bool `protobuf:"varint,10,opt,name=weak,def=0" json:"weak,omitempty"` // The parser stores options it doesn't recognize here. See above. UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` } // Default values for FieldOptions fields. const ( Default_FieldOptions_Ctype = FieldOptions_STRING Default_FieldOptions_Jstype = FieldOptions_JS_NORMAL Default_FieldOptions_Lazy = bool(false) Default_FieldOptions_Deprecated = bool(false) Default_FieldOptions_Weak = bool(false) ) func (x *FieldOptions) Reset() { *x = FieldOptions{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FieldOptions) String() string { return protoimpl.X.MessageStringOf(x) } func (*FieldOptions) ProtoMessage() {} func (x *FieldOptions) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FieldOptions.ProtoReflect.Descriptor instead. func (*FieldOptions) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12} } func (x *FieldOptions) GetCtype() FieldOptions_CType { if x != nil && x.Ctype != nil { return *x.Ctype } return Default_FieldOptions_Ctype } func (x *FieldOptions) GetPacked() bool { if x != nil && x.Packed != nil { return *x.Packed } return false } func (x *FieldOptions) GetJstype() FieldOptions_JSType { if x != nil && x.Jstype != nil { return *x.Jstype } return Default_FieldOptions_Jstype } func (x *FieldOptions) GetLazy() bool { if x != nil && x.Lazy != nil { return *x.Lazy } return Default_FieldOptions_Lazy } func (x *FieldOptions) GetDeprecated() bool { if x != nil && x.Deprecated != nil { return *x.Deprecated } return Default_FieldOptions_Deprecated } func (x *FieldOptions) GetWeak() bool { if x != nil && x.Weak != nil { return *x.Weak } return Default_FieldOptions_Weak } func (x *FieldOptions) GetUninterpretedOption() []*UninterpretedOption { if x != nil { return x.UninterpretedOption } return nil } type OneofOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields // The parser stores options it doesn't recognize here. See above. UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` } func (x *OneofOptions) Reset() { *x = OneofOptions{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OneofOptions) String() string { return protoimpl.X.MessageStringOf(x) } func (*OneofOptions) ProtoMessage() {} func (x *OneofOptions) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use OneofOptions.ProtoReflect.Descriptor instead. func (*OneofOptions) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{13} } func (x *OneofOptions) GetUninterpretedOption() []*UninterpretedOption { if x != nil { return x.UninterpretedOption } return nil } type EnumOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields // Set this option to true to allow mapping different tag names to the same // value. AllowAlias *bool `protobuf:"varint,2,opt,name=allow_alias,json=allowAlias" json:"allow_alias,omitempty"` // Is this enum deprecated? // Depending on the target platform, this can emit Deprecated annotations // for the enum, or it will be completely ignored; in the very least, this // is a formalization for deprecating enums. Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` // The parser stores options it doesn't recognize here. See above. UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` } // Default values for EnumOptions fields. const ( Default_EnumOptions_Deprecated = bool(false) ) func (x *EnumOptions) Reset() { *x = EnumOptions{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EnumOptions) String() string { return protoimpl.X.MessageStringOf(x) } func (*EnumOptions) ProtoMessage() {} func (x *EnumOptions) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use EnumOptions.ProtoReflect.Descriptor instead. func (*EnumOptions) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{14} } func (x *EnumOptions) GetAllowAlias() bool { if x != nil && x.AllowAlias != nil { return *x.AllowAlias } return false } func (x *EnumOptions) GetDeprecated() bool { if x != nil && x.Deprecated != nil { return *x.Deprecated } return Default_EnumOptions_Deprecated } func (x *EnumOptions) GetUninterpretedOption() []*UninterpretedOption { if x != nil { return x.UninterpretedOption } return nil } type EnumValueOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields // Is this enum value deprecated? // Depending on the target platform, this can emit Deprecated annotations // for the enum value, or it will be completely ignored; in the very least, // this is a formalization for deprecating enum values. Deprecated *bool `protobuf:"varint,1,opt,name=deprecated,def=0" json:"deprecated,omitempty"` // The parser stores options it doesn't recognize here. See above. UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` } // Default values for EnumValueOptions fields. const ( Default_EnumValueOptions_Deprecated = bool(false) ) func (x *EnumValueOptions) Reset() { *x = EnumValueOptions{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EnumValueOptions) String() string { return protoimpl.X.MessageStringOf(x) } func (*EnumValueOptions) ProtoMessage() {} func (x *EnumValueOptions) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use EnumValueOptions.ProtoReflect.Descriptor instead. func (*EnumValueOptions) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{15} } func (x *EnumValueOptions) GetDeprecated() bool { if x != nil && x.Deprecated != nil { return *x.Deprecated } return Default_EnumValueOptions_Deprecated } func (x *EnumValueOptions) GetUninterpretedOption() []*UninterpretedOption { if x != nil { return x.UninterpretedOption } return nil } type ServiceOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields // Is this service deprecated? // Depending on the target platform, this can emit Deprecated annotations // for the service, or it will be completely ignored; in the very least, // this is a formalization for deprecating services. Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` // The parser stores options it doesn't recognize here. See above. UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` } // Default values for ServiceOptions fields. const ( Default_ServiceOptions_Deprecated = bool(false) ) func (x *ServiceOptions) Reset() { *x = ServiceOptions{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ServiceOptions) String() string { return protoimpl.X.MessageStringOf(x) } func (*ServiceOptions) ProtoMessage() {} func (x *ServiceOptions) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ServiceOptions.ProtoReflect.Descriptor instead. func (*ServiceOptions) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{16} } func (x *ServiceOptions) GetDeprecated() bool { if x != nil && x.Deprecated != nil { return *x.Deprecated } return Default_ServiceOptions_Deprecated } func (x *ServiceOptions) GetUninterpretedOption() []*UninterpretedOption { if x != nil { return x.UninterpretedOption } return nil } type MethodOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields extensionFields protoimpl.ExtensionFields // Is this method deprecated? // Depending on the target platform, this can emit Deprecated annotations // for the method, or it will be completely ignored; in the very least, // this is a formalization for deprecating methods. Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` IdempotencyLevel *MethodOptions_IdempotencyLevel `protobuf:"varint,34,opt,name=idempotency_level,json=idempotencyLevel,enum=google.protobuf.MethodOptions_IdempotencyLevel,def=0" json:"idempotency_level,omitempty"` // The parser stores options it doesn't recognize here. See above. UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` } // Default values for MethodOptions fields. const ( Default_MethodOptions_Deprecated = bool(false) Default_MethodOptions_IdempotencyLevel = MethodOptions_IDEMPOTENCY_UNKNOWN ) func (x *MethodOptions) Reset() { *x = MethodOptions{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MethodOptions) String() string { return protoimpl.X.MessageStringOf(x) } func (*MethodOptions) ProtoMessage() {} func (x *MethodOptions) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MethodOptions.ProtoReflect.Descriptor instead. func (*MethodOptions) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{17} } func (x *MethodOptions) GetDeprecated() bool { if x != nil && x.Deprecated != nil { return *x.Deprecated } return Default_MethodOptions_Deprecated } func (x *MethodOptions) GetIdempotencyLevel() MethodOptions_IdempotencyLevel { if x != nil && x.IdempotencyLevel != nil { return *x.IdempotencyLevel } return Default_MethodOptions_IdempotencyLevel } func (x *MethodOptions) GetUninterpretedOption() []*UninterpretedOption { if x != nil { return x.UninterpretedOption } return nil } // A message representing a option the parser does not recognize. This only // appears in options protos created by the compiler::Parser class. // DescriptorPool resolves these when building Descriptor objects. Therefore, // options protos in descriptor objects (e.g. returned by Descriptor::options(), // or produced by Descriptor::CopyTo()) will never have UninterpretedOptions // in them. type UninterpretedOption struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name []*UninterpretedOption_NamePart `protobuf:"bytes,2,rep,name=name" json:"name,omitempty"` // The value of the uninterpreted option, in whatever type the tokenizer // identified it as during parsing. Exactly one of these should be set. IdentifierValue *string `protobuf:"bytes,3,opt,name=identifier_value,json=identifierValue" json:"identifier_value,omitempty"` PositiveIntValue *uint64 `protobuf:"varint,4,opt,name=positive_int_value,json=positiveIntValue" json:"positive_int_value,omitempty"` NegativeIntValue *int64 `protobuf:"varint,5,opt,name=negative_int_value,json=negativeIntValue" json:"negative_int_value,omitempty"` DoubleValue *float64 `protobuf:"fixed64,6,opt,name=double_value,json=doubleValue" json:"double_value,omitempty"` StringValue []byte `protobuf:"bytes,7,opt,name=string_value,json=stringValue" json:"string_value,omitempty"` AggregateValue *string `protobuf:"bytes,8,opt,name=aggregate_value,json=aggregateValue" json:"aggregate_value,omitempty"` } func (x *UninterpretedOption) Reset() { *x = UninterpretedOption{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UninterpretedOption) String() string { return protoimpl.X.MessageStringOf(x) } func (*UninterpretedOption) ProtoMessage() {} func (x *UninterpretedOption) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UninterpretedOption.ProtoReflect.Descriptor instead. func (*UninterpretedOption) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{18} } func (x *UninterpretedOption) GetName() []*UninterpretedOption_NamePart { if x != nil { return x.Name } return nil } func (x *UninterpretedOption) GetIdentifierValue() string { if x != nil && x.IdentifierValue != nil { return *x.IdentifierValue } return "" } func (x *UninterpretedOption) GetPositiveIntValue() uint64 { if x != nil && x.PositiveIntValue != nil { return *x.PositiveIntValue } return 0 } func (x *UninterpretedOption) GetNegativeIntValue() int64 { if x != nil && x.NegativeIntValue != nil { return *x.NegativeIntValue } return 0 } func (x *UninterpretedOption) GetDoubleValue() float64 { if x != nil && x.DoubleValue != nil { return *x.DoubleValue } return 0 } func (x *UninterpretedOption) GetStringValue() []byte { if x != nil { return x.StringValue } return nil } func (x *UninterpretedOption) GetAggregateValue() string { if x != nil && x.AggregateValue != nil { return *x.AggregateValue } return "" } // Encapsulates information about the original source file from which a // FileDescriptorProto was generated. type SourceCodeInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A Location identifies a piece of source code in a .proto file which // corresponds to a particular definition. This information is intended // to be useful to IDEs, code indexers, documentation generators, and similar // tools. // // For example, say we have a file like: // message Foo { // optional string foo = 1; // } // Let's look at just the field definition: // optional string foo = 1; // ^ ^^ ^^ ^ ^^^ // a bc de f ghi // We have the following locations: // span path represents // [a,i) [ 4, 0, 2, 0 ] The whole field definition. // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). // [c,d) [ 4, 0, 2, 0, 5 ] The type (string). // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). // [g,h) [ 4, 0, 2, 0, 3 ] The number (1). // // Notes: // - A location may refer to a repeated field itself (i.e. not to any // particular index within it). This is used whenever a set of elements are // logically enclosed in a single code segment. For example, an entire // extend block (possibly containing multiple extension definitions) will // have an outer location whose path refers to the "extensions" repeated // field without an index. // - Multiple locations may have the same path. This happens when a single // logical declaration is spread out across multiple places. The most // obvious example is the "extend" block again -- there may be multiple // extend blocks in the same scope, each of which will have the same path. // - A location's span is not always a subset of its parent's span. For // example, the "extendee" of an extension declaration appears at the // beginning of the "extend" block and is shared by all extensions within // the block. // - Just because a location's span is a subset of some other location's span // does not mean that it is a descendant. For example, a "group" defines // both a type and a field in a single declaration. Thus, the locations // corresponding to the type and field and their components will overlap. // - Code which tries to interpret locations should probably be designed to // ignore those that it doesn't understand, as more types of locations could // be recorded in the future. Location []*SourceCodeInfo_Location `protobuf:"bytes,1,rep,name=location" json:"location,omitempty"` } func (x *SourceCodeInfo) Reset() { *x = SourceCodeInfo{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SourceCodeInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*SourceCodeInfo) ProtoMessage() {} func (x *SourceCodeInfo) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SourceCodeInfo.ProtoReflect.Descriptor instead. func (*SourceCodeInfo) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19} } func (x *SourceCodeInfo) GetLocation() []*SourceCodeInfo_Location { if x != nil { return x.Location } return nil } // Describes the relationship between generated code and its original source // file. A GeneratedCodeInfo message is associated with only one generated // source file, but may contain references to different source .proto files. type GeneratedCodeInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // An Annotation connects some span of text in generated code to an element // of its generating .proto file. Annotation []*GeneratedCodeInfo_Annotation `protobuf:"bytes,1,rep,name=annotation" json:"annotation,omitempty"` } func (x *GeneratedCodeInfo) Reset() { *x = GeneratedCodeInfo{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GeneratedCodeInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*GeneratedCodeInfo) ProtoMessage() {} func (x *GeneratedCodeInfo) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GeneratedCodeInfo.ProtoReflect.Descriptor instead. func (*GeneratedCodeInfo) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20} } func (x *GeneratedCodeInfo) GetAnnotation() []*GeneratedCodeInfo_Annotation { if x != nil { return x.Annotation } return nil } type DescriptorProto_ExtensionRange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"` // Inclusive. End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` // Exclusive. Options *ExtensionRangeOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` } func (x *DescriptorProto_ExtensionRange) Reset() { *x = DescriptorProto_ExtensionRange{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DescriptorProto_ExtensionRange) String() string { return protoimpl.X.MessageStringOf(x) } func (*DescriptorProto_ExtensionRange) ProtoMessage() {} func (x *DescriptorProto_ExtensionRange) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DescriptorProto_ExtensionRange.ProtoReflect.Descriptor instead. func (*DescriptorProto_ExtensionRange) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{2, 0} } func (x *DescriptorProto_ExtensionRange) GetStart() int32 { if x != nil && x.Start != nil { return *x.Start } return 0 } func (x *DescriptorProto_ExtensionRange) GetEnd() int32 { if x != nil && x.End != nil { return *x.End } return 0 } func (x *DescriptorProto_ExtensionRange) GetOptions() *ExtensionRangeOptions { if x != nil { return x.Options } return nil } // Range of reserved tag numbers. Reserved tag numbers may not be used by // fields or extension ranges in the same message. Reserved ranges may // not overlap. type DescriptorProto_ReservedRange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"` // Inclusive. End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` // Exclusive. } func (x *DescriptorProto_ReservedRange) Reset() { *x = DescriptorProto_ReservedRange{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DescriptorProto_ReservedRange) String() string { return protoimpl.X.MessageStringOf(x) } func (*DescriptorProto_ReservedRange) ProtoMessage() {} func (x *DescriptorProto_ReservedRange) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DescriptorProto_ReservedRange.ProtoReflect.Descriptor instead. func (*DescriptorProto_ReservedRange) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{2, 1} } func (x *DescriptorProto_ReservedRange) GetStart() int32 { if x != nil && x.Start != nil { return *x.Start } return 0 } func (x *DescriptorProto_ReservedRange) GetEnd() int32 { if x != nil && x.End != nil { return *x.End } return 0 } // Range of reserved numeric values. Reserved values may not be used by // entries in the same enum. Reserved ranges may not overlap. // // Note that this is distinct from DescriptorProto.ReservedRange in that it // is inclusive such that it can appropriately represent the entire int32 // domain. type EnumDescriptorProto_EnumReservedRange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"` // Inclusive. End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` // Inclusive. } func (x *EnumDescriptorProto_EnumReservedRange) Reset() { *x = EnumDescriptorProto_EnumReservedRange{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EnumDescriptorProto_EnumReservedRange) String() string { return protoimpl.X.MessageStringOf(x) } func (*EnumDescriptorProto_EnumReservedRange) ProtoMessage() {} func (x *EnumDescriptorProto_EnumReservedRange) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use EnumDescriptorProto_EnumReservedRange.ProtoReflect.Descriptor instead. func (*EnumDescriptorProto_EnumReservedRange) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{6, 0} } func (x *EnumDescriptorProto_EnumReservedRange) GetStart() int32 { if x != nil && x.Start != nil { return *x.Start } return 0 } func (x *EnumDescriptorProto_EnumReservedRange) GetEnd() int32 { if x != nil && x.End != nil { return *x.End } return 0 } // The name of the uninterpreted option. Each string represents a segment in // a dot-separated name. is_extension is true iff a segment represents an // extension (denoted with parentheses in options specs in .proto files). // E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents // "foo.(bar.baz).qux". type UninterpretedOption_NamePart struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NamePart *string `protobuf:"bytes,1,req,name=name_part,json=namePart" json:"name_part,omitempty"` IsExtension *bool `protobuf:"varint,2,req,name=is_extension,json=isExtension" json:"is_extension,omitempty"` } func (x *UninterpretedOption_NamePart) Reset() { *x = UninterpretedOption_NamePart{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UninterpretedOption_NamePart) String() string { return protoimpl.X.MessageStringOf(x) } func (*UninterpretedOption_NamePart) ProtoMessage() {} func (x *UninterpretedOption_NamePart) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UninterpretedOption_NamePart.ProtoReflect.Descriptor instead. func (*UninterpretedOption_NamePart) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{18, 0} } func (x *UninterpretedOption_NamePart) GetNamePart() string { if x != nil && x.NamePart != nil { return *x.NamePart } return "" } func (x *UninterpretedOption_NamePart) GetIsExtension() bool { if x != nil && x.IsExtension != nil { return *x.IsExtension } return false } type SourceCodeInfo_Location struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Identifies which part of the FileDescriptorProto was defined at this // location. // // Each element is a field number or an index. They form a path from // the root FileDescriptorProto to the place where the definition. For // example, this path: // [ 4, 3, 2, 7, 1 ] // refers to: // file.message_type(3) // 4, 3 // .field(7) // 2, 7 // .name() // 1 // This is because FileDescriptorProto.message_type has field number 4: // repeated DescriptorProto message_type = 4; // and DescriptorProto.field has field number 2: // repeated FieldDescriptorProto field = 2; // and FieldDescriptorProto.name has field number 1: // optional string name = 1; // // Thus, the above path gives the location of a field name. If we removed // the last element: // [ 4, 3, 2, 7 ] // this path refers to the whole field declaration (from the beginning // of the label to the terminating semicolon). Path []int32 `protobuf:"varint,1,rep,packed,name=path" json:"path,omitempty"` // Always has exactly three or four elements: start line, start column, // end line (optional, otherwise assumed same as start line), end column. // These are packed into a single field for efficiency. Note that line // and column numbers are zero-based -- typically you will want to add // 1 to each before displaying to a user. Span []int32 `protobuf:"varint,2,rep,packed,name=span" json:"span,omitempty"` // If this SourceCodeInfo represents a complete declaration, these are any // comments appearing before and after the declaration which appear to be // attached to the declaration. // // A series of line comments appearing on consecutive lines, with no other // tokens appearing on those lines, will be treated as a single comment. // // leading_detached_comments will keep paragraphs of comments that appear // before (but not connected to) the current element. Each paragraph, // separated by empty lines, will be one comment element in the repeated // field. // // Only the comment content is provided; comment markers (e.g. //) are // stripped out. For block comments, leading whitespace and an asterisk // will be stripped from the beginning of each line other than the first. // Newlines are included in the output. // // Examples: // // optional int32 foo = 1; // Comment attached to foo. // // Comment attached to bar. // optional int32 bar = 2; // // optional string baz = 3; // // Comment attached to baz. // // Another line attached to baz. // // // Comment attached to qux. // // // // Another line attached to qux. // optional double qux = 4; // // // Detached comment for corge. This is not leading or trailing comments // // to qux or corge because there are blank lines separating it from // // both. // // // Detached comment for corge paragraph 2. // // optional string corge = 5; // /* Block comment attached // * to corge. Leading asterisks // * will be removed. */ // /* Block comment attached to // * grault. */ // optional int32 grault = 6; // // // ignored detached comments. LeadingComments *string `protobuf:"bytes,3,opt,name=leading_comments,json=leadingComments" json:"leading_comments,omitempty"` TrailingComments *string `protobuf:"bytes,4,opt,name=trailing_comments,json=trailingComments" json:"trailing_comments,omitempty"` LeadingDetachedComments []string `protobuf:"bytes,6,rep,name=leading_detached_comments,json=leadingDetachedComments" json:"leading_detached_comments,omitempty"` } func (x *SourceCodeInfo_Location) Reset() { *x = SourceCodeInfo_Location{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SourceCodeInfo_Location) String() string { return protoimpl.X.MessageStringOf(x) } func (*SourceCodeInfo_Location) ProtoMessage() {} func (x *SourceCodeInfo_Location) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SourceCodeInfo_Location.ProtoReflect.Descriptor instead. func (*SourceCodeInfo_Location) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 0} } func (x *SourceCodeInfo_Location) GetPath() []int32 { if x != nil { return x.Path } return nil } func (x *SourceCodeInfo_Location) GetSpan() []int32 { if x != nil { return x.Span } return nil } func (x *SourceCodeInfo_Location) GetLeadingComments() string { if x != nil && x.LeadingComments != nil { return *x.LeadingComments } return "" } func (x *SourceCodeInfo_Location) GetTrailingComments() string { if x != nil && x.TrailingComments != nil { return *x.TrailingComments } return "" } func (x *SourceCodeInfo_Location) GetLeadingDetachedComments() []string { if x != nil { return x.LeadingDetachedComments } return nil } type GeneratedCodeInfo_Annotation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Identifies the element in the original source .proto file. This field // is formatted the same as SourceCodeInfo.Location.path. Path []int32 `protobuf:"varint,1,rep,packed,name=path" json:"path,omitempty"` // Identifies the filesystem path to the original source .proto. SourceFile *string `protobuf:"bytes,2,opt,name=source_file,json=sourceFile" json:"source_file,omitempty"` // Identifies the starting offset in bytes in the generated code // that relates to the identified object. Begin *int32 `protobuf:"varint,3,opt,name=begin" json:"begin,omitempty"` // Identifies the ending offset in bytes in the generated code that // relates to the identified offset. The end offset should be one past // the last relevant byte (so the length of the text = end - begin). End *int32 `protobuf:"varint,4,opt,name=end" json:"end,omitempty"` } func (x *GeneratedCodeInfo_Annotation) Reset() { *x = GeneratedCodeInfo_Annotation{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_descriptor_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GeneratedCodeInfo_Annotation) String() string { return protoimpl.X.MessageStringOf(x) } func (*GeneratedCodeInfo_Annotation) ProtoMessage() {} func (x *GeneratedCodeInfo_Annotation) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_descriptor_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GeneratedCodeInfo_Annotation.ProtoReflect.Descriptor instead. func (*GeneratedCodeInfo_Annotation) Descriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0} } func (x *GeneratedCodeInfo_Annotation) GetPath() []int32 { if x != nil { return x.Path } return nil } func (x *GeneratedCodeInfo_Annotation) GetSourceFile() string { if x != nil && x.SourceFile != nil { return *x.SourceFile } return "" } func (x *GeneratedCodeInfo_Annotation) GetBegin() int32 { if x != nil && x.Begin != nil { return *x.Begin } return 0 } func (x *GeneratedCodeInfo_Annotation) GetEnd() int32 { if x != nil && x.End != nil { return *x.End } return 0 } var File_google_protobuf_descriptor_proto protoreflect.FileDescriptor var file_google_protobuf_descriptor_proto_rawDesc = []byte{ 0x0a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x22, 0x4d, 0x0a, 0x11, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x22, 0xe4, 0x04, 0x0a, 0x13, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x10, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x77, 0x65, 0x61, 0x6b, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x77, 0x65, 0x61, 0x6b, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x43, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x49, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x22, 0xb9, 0x06, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x43, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0b, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x64, 0x65, 0x63, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x63, 0x6c, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x55, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x7a, 0x0a, 0x0e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x37, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x7c, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xc1, 0x06, 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x03, 0x22, 0x63, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x3b, 0x0a, 0x11, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, 0x01, 0x0a, 0x18, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, 0x02, 0x0a, 0x15, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x91, 0x09, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6a, 0x61, 0x76, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, 0x61, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x6a, 0x61, 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x19, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x75, 0x74, 0x66, 0x38, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x74, 0x66, 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x6f, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x63, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x63, 0x63, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x15, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x13, 0x70, 0x79, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x70, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x14, 0x70, 0x68, 0x70, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x12, 0x70, 0x68, 0x70, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x10, 0x63, 0x63, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0e, 0x63, 0x63, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x62, 0x6a, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x62, 0x6a, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x73, 0x68, 0x61, 0x72, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x73, 0x68, 0x61, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x77, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x77, 0x69, 0x66, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x68, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x68, 0x70, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x68, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x68, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x68, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x70, 0x68, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x62, 0x79, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x49, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xd1, 0x02, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x77, 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x4c, 0x0a, 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x1c, 0x6e, 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0xe2, 0x03, 0x0a, 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2f, 0x0a, 0x05, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, 0x52, 0x44, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x49, 0x45, 0x43, 0x45, 0x10, 0x02, 0x22, 0x35, 0x0a, 0x06, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0x73, 0x0a, 0x0c, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xc0, 0x01, 0x0a, 0x0b, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x22, 0x9e, 0x01, 0x0a, 0x10, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9c, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xe0, 0x02, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x71, 0x0a, 0x11, 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x10, 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x10, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x45, 0x46, 0x46, 0x45, 0x43, 0x54, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9a, 0x03, 0x0a, 0x13, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x4a, 0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x02, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa7, 0x02, 0x0a, 0x0e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x44, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xce, 0x01, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xd1, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x6d, 0x0a, 0x0a, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x42, 0x7e, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x48, 0x01, 0x5a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, } var ( file_google_protobuf_descriptor_proto_rawDescOnce sync.Once file_google_protobuf_descriptor_proto_rawDescData = file_google_protobuf_descriptor_proto_rawDesc ) func file_google_protobuf_descriptor_proto_rawDescGZIP() []byte { file_google_protobuf_descriptor_proto_rawDescOnce.Do(func() { file_google_protobuf_descriptor_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_descriptor_proto_rawDescData) }) return file_google_protobuf_descriptor_proto_rawDescData } var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 6) var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 27) var file_google_protobuf_descriptor_proto_goTypes = []interface{}{ (FieldDescriptorProto_Type)(0), // 0: google.protobuf.FieldDescriptorProto.Type (FieldDescriptorProto_Label)(0), // 1: google.protobuf.FieldDescriptorProto.Label (FileOptions_OptimizeMode)(0), // 2: google.protobuf.FileOptions.OptimizeMode (FieldOptions_CType)(0), // 3: google.protobuf.FieldOptions.CType (FieldOptions_JSType)(0), // 4: google.protobuf.FieldOptions.JSType (MethodOptions_IdempotencyLevel)(0), // 5: google.protobuf.MethodOptions.IdempotencyLevel (*FileDescriptorSet)(nil), // 6: google.protobuf.FileDescriptorSet (*FileDescriptorProto)(nil), // 7: google.protobuf.FileDescriptorProto (*DescriptorProto)(nil), // 8: google.protobuf.DescriptorProto (*ExtensionRangeOptions)(nil), // 9: google.protobuf.ExtensionRangeOptions (*FieldDescriptorProto)(nil), // 10: google.protobuf.FieldDescriptorProto (*OneofDescriptorProto)(nil), // 11: google.protobuf.OneofDescriptorProto (*EnumDescriptorProto)(nil), // 12: google.protobuf.EnumDescriptorProto (*EnumValueDescriptorProto)(nil), // 13: google.protobuf.EnumValueDescriptorProto (*ServiceDescriptorProto)(nil), // 14: google.protobuf.ServiceDescriptorProto (*MethodDescriptorProto)(nil), // 15: google.protobuf.MethodDescriptorProto (*FileOptions)(nil), // 16: google.protobuf.FileOptions (*MessageOptions)(nil), // 17: google.protobuf.MessageOptions (*FieldOptions)(nil), // 18: google.protobuf.FieldOptions (*OneofOptions)(nil), // 19: google.protobuf.OneofOptions (*EnumOptions)(nil), // 20: google.protobuf.EnumOptions (*EnumValueOptions)(nil), // 21: google.protobuf.EnumValueOptions (*ServiceOptions)(nil), // 22: google.protobuf.ServiceOptions (*MethodOptions)(nil), // 23: google.protobuf.MethodOptions (*UninterpretedOption)(nil), // 24: google.protobuf.UninterpretedOption (*SourceCodeInfo)(nil), // 25: google.protobuf.SourceCodeInfo (*GeneratedCodeInfo)(nil), // 26: google.protobuf.GeneratedCodeInfo (*DescriptorProto_ExtensionRange)(nil), // 27: google.protobuf.DescriptorProto.ExtensionRange (*DescriptorProto_ReservedRange)(nil), // 28: google.protobuf.DescriptorProto.ReservedRange (*EnumDescriptorProto_EnumReservedRange)(nil), // 29: google.protobuf.EnumDescriptorProto.EnumReservedRange (*UninterpretedOption_NamePart)(nil), // 30: google.protobuf.UninterpretedOption.NamePart (*SourceCodeInfo_Location)(nil), // 31: google.protobuf.SourceCodeInfo.Location (*GeneratedCodeInfo_Annotation)(nil), // 32: google.protobuf.GeneratedCodeInfo.Annotation } var file_google_protobuf_descriptor_proto_depIdxs = []int32{ 7, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto 8, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto 12, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto 14, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto 10, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto 16, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions 25, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo 10, // 7: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto 10, // 8: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto 8, // 9: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto 12, // 10: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto 27, // 11: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange 11, // 12: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto 17, // 13: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions 28, // 14: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange 24, // 15: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption 1, // 16: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label 0, // 17: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type 18, // 18: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions 19, // 19: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions 13, // 20: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto 20, // 21: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions 29, // 22: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange 21, // 23: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions 15, // 24: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto 22, // 25: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions 23, // 26: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions 2, // 27: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode 24, // 28: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption 24, // 29: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption 3, // 30: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType 4, // 31: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType 24, // 32: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption 24, // 33: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption 24, // 34: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption 24, // 35: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption 24, // 36: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption 5, // 37: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel 24, // 38: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption 30, // 39: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart 31, // 40: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location 32, // 41: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation 9, // 42: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions 43, // [43:43] is the sub-list for method output_type 43, // [43:43] is the sub-list for method input_type 43, // [43:43] is the sub-list for extension type_name 43, // [43:43] is the sub-list for extension extendee 0, // [0:43] is the sub-list for field type_name } func init() { file_google_protobuf_descriptor_proto_init() } func file_google_protobuf_descriptor_proto_init() { if File_google_protobuf_descriptor_proto != nil { return } if !protoimpl.UnsafeEnabled { file_google_protobuf_descriptor_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FileDescriptorSet); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FileDescriptorProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DescriptorProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtensionRangeOptions); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FieldDescriptorProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OneofDescriptorProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EnumDescriptorProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EnumValueDescriptorProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ServiceDescriptorProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MethodDescriptorProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FileOptions); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageOptions); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FieldOptions); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OneofOptions); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EnumOptions); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EnumValueOptions); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ServiceOptions); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MethodOptions); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields case 3: return &v.extensionFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UninterpretedOption); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SourceCodeInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GeneratedCodeInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DescriptorProto_ExtensionRange); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DescriptorProto_ReservedRange); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UninterpretedOption_NamePart); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SourceCodeInfo_Location); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_descriptor_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GeneratedCodeInfo_Annotation); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_protobuf_descriptor_proto_rawDesc, NumEnums: 6, NumMessages: 27, NumExtensions: 0, NumServices: 0, }, GoTypes: file_google_protobuf_descriptor_proto_goTypes, DependencyIndexes: file_google_protobuf_descriptor_proto_depIdxs, EnumInfos: file_google_protobuf_descriptor_proto_enumTypes, MessageInfos: file_google_protobuf_descriptor_proto_msgTypes, }.Build() File_google_protobuf_descriptor_proto = out.File file_google_protobuf_descriptor_proto_rawDesc = nil file_google_protobuf_descriptor_proto_goTypes = nil file_google_protobuf_descriptor_proto_depIdxs = nil } golang-google-protobuf-1.27.1/types/dynamicpb/000077500000000000000000000000001411250152500212675ustar00rootroot00000000000000golang-google-protobuf-1.27.1/types/dynamicpb/dynamic.go000066400000000000000000000477461411250152500232640ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package dynamicpb creates protocol buffer messages using runtime type information. package dynamicpb import ( "math" "google.golang.org/protobuf/internal/errors" pref "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/runtime/protoiface" "google.golang.org/protobuf/runtime/protoimpl" ) // enum is a dynamic protoreflect.Enum. type enum struct { num pref.EnumNumber typ pref.EnumType } func (e enum) Descriptor() pref.EnumDescriptor { return e.typ.Descriptor() } func (e enum) Type() pref.EnumType { return e.typ } func (e enum) Number() pref.EnumNumber { return e.num } // enumType is a dynamic protoreflect.EnumType. type enumType struct { desc pref.EnumDescriptor } // NewEnumType creates a new EnumType with the provided descriptor. // // EnumTypes created by this package are equal if their descriptors are equal. // That is, if ed1 == ed2, then NewEnumType(ed1) == NewEnumType(ed2). // // Enum values created by the EnumType are equal if their numbers are equal. func NewEnumType(desc pref.EnumDescriptor) pref.EnumType { return enumType{desc} } func (et enumType) New(n pref.EnumNumber) pref.Enum { return enum{n, et} } func (et enumType) Descriptor() pref.EnumDescriptor { return et.desc } // extensionType is a dynamic protoreflect.ExtensionType. type extensionType struct { desc extensionTypeDescriptor } // A Message is a dynamically constructed protocol buffer message. // // Message implements the proto.Message interface, and may be used with all // standard proto package functions such as Marshal, Unmarshal, and so forth. // // Message also implements the protoreflect.Message interface. See the protoreflect // package documentation for that interface for how to get and set fields and // otherwise interact with the contents of a Message. // // Reflection API functions which construct messages, such as NewField, // return new dynamic messages of the appropriate type. Functions which take // messages, such as Set for a message-value field, will accept any message // with a compatible type. // // Operations which modify a Message are not safe for concurrent use. type Message struct { typ messageType known map[pref.FieldNumber]pref.Value ext map[pref.FieldNumber]pref.FieldDescriptor unknown pref.RawFields } var ( _ pref.Message = (*Message)(nil) _ pref.ProtoMessage = (*Message)(nil) _ protoiface.MessageV1 = (*Message)(nil) ) // NewMessage creates a new message with the provided descriptor. func NewMessage(desc pref.MessageDescriptor) *Message { return &Message{ typ: messageType{desc}, known: make(map[pref.FieldNumber]pref.Value), ext: make(map[pref.FieldNumber]pref.FieldDescriptor), } } // ProtoMessage implements the legacy message interface. func (m *Message) ProtoMessage() {} // ProtoReflect implements the protoreflect.ProtoMessage interface. func (m *Message) ProtoReflect() pref.Message { return m } // String returns a string representation of a message. func (m *Message) String() string { return protoimpl.X.MessageStringOf(m) } // Reset clears the message to be empty, but preserves the dynamic message type. func (m *Message) Reset() { m.known = make(map[pref.FieldNumber]pref.Value) m.ext = make(map[pref.FieldNumber]pref.FieldDescriptor) m.unknown = nil } // Descriptor returns the message descriptor. func (m *Message) Descriptor() pref.MessageDescriptor { return m.typ.desc } // Type returns the message type. func (m *Message) Type() pref.MessageType { return m.typ } // New returns a newly allocated empty message with the same descriptor. // See protoreflect.Message for details. func (m *Message) New() pref.Message { return m.Type().New() } // Interface returns the message. // See protoreflect.Message for details. func (m *Message) Interface() pref.ProtoMessage { return m } // ProtoMethods is an internal detail of the protoreflect.Message interface. // Users should never call this directly. func (m *Message) ProtoMethods() *protoiface.Methods { return nil } // Range visits every populated field in undefined order. // See protoreflect.Message for details. func (m *Message) Range(f func(pref.FieldDescriptor, pref.Value) bool) { for num, v := range m.known { fd := m.ext[num] if fd == nil { fd = m.Descriptor().Fields().ByNumber(num) } if !isSet(fd, v) { continue } if !f(fd, v) { return } } } // Has reports whether a field is populated. // See protoreflect.Message for details. func (m *Message) Has(fd pref.FieldDescriptor) bool { m.checkField(fd) if fd.IsExtension() && m.ext[fd.Number()] != fd { return false } v, ok := m.known[fd.Number()] if !ok { return false } return isSet(fd, v) } // Clear clears a field. // See protoreflect.Message for details. func (m *Message) Clear(fd pref.FieldDescriptor) { m.checkField(fd) num := fd.Number() delete(m.known, num) delete(m.ext, num) } // Get returns the value of a field. // See protoreflect.Message for details. func (m *Message) Get(fd pref.FieldDescriptor) pref.Value { m.checkField(fd) num := fd.Number() if fd.IsExtension() { if fd != m.ext[num] { return fd.(pref.ExtensionTypeDescriptor).Type().Zero() } return m.known[num] } if v, ok := m.known[num]; ok { switch { case fd.IsMap(): if v.Map().Len() > 0 { return v } case fd.IsList(): if v.List().Len() > 0 { return v } default: return v } } switch { case fd.IsMap(): return pref.ValueOfMap(&dynamicMap{desc: fd}) case fd.IsList(): return pref.ValueOfList(emptyList{desc: fd}) case fd.Message() != nil: return pref.ValueOfMessage(&Message{typ: messageType{fd.Message()}}) case fd.Kind() == pref.BytesKind: return pref.ValueOfBytes(append([]byte(nil), fd.Default().Bytes()...)) default: return fd.Default() } } // Mutable returns a mutable reference to a repeated, map, or message field. // See protoreflect.Message for details. func (m *Message) Mutable(fd pref.FieldDescriptor) pref.Value { m.checkField(fd) if !fd.IsMap() && !fd.IsList() && fd.Message() == nil { panic(errors.New("%v: getting mutable reference to non-composite type", fd.FullName())) } if m.known == nil { panic(errors.New("%v: modification of read-only message", fd.FullName())) } num := fd.Number() if fd.IsExtension() { if fd != m.ext[num] { m.ext[num] = fd m.known[num] = fd.(pref.ExtensionTypeDescriptor).Type().New() } return m.known[num] } if v, ok := m.known[num]; ok { return v } m.clearOtherOneofFields(fd) m.known[num] = m.NewField(fd) if fd.IsExtension() { m.ext[num] = fd } return m.known[num] } // Set stores a value in a field. // See protoreflect.Message for details. func (m *Message) Set(fd pref.FieldDescriptor, v pref.Value) { m.checkField(fd) if m.known == nil { panic(errors.New("%v: modification of read-only message", fd.FullName())) } if fd.IsExtension() { isValid := true switch { case !fd.(pref.ExtensionTypeDescriptor).Type().IsValidValue(v): isValid = false case fd.IsList(): isValid = v.List().IsValid() case fd.IsMap(): isValid = v.Map().IsValid() case fd.Message() != nil: isValid = v.Message().IsValid() } if !isValid { panic(errors.New("%v: assigning invalid type %T", fd.FullName(), v.Interface())) } m.ext[fd.Number()] = fd } else { typecheck(fd, v) } m.clearOtherOneofFields(fd) m.known[fd.Number()] = v } func (m *Message) clearOtherOneofFields(fd pref.FieldDescriptor) { od := fd.ContainingOneof() if od == nil { return } num := fd.Number() for i := 0; i < od.Fields().Len(); i++ { if n := od.Fields().Get(i).Number(); n != num { delete(m.known, n) } } } // NewField returns a new value for assignable to the field of a given descriptor. // See protoreflect.Message for details. func (m *Message) NewField(fd pref.FieldDescriptor) pref.Value { m.checkField(fd) switch { case fd.IsExtension(): return fd.(pref.ExtensionTypeDescriptor).Type().New() case fd.IsMap(): return pref.ValueOfMap(&dynamicMap{ desc: fd, mapv: make(map[interface{}]pref.Value), }) case fd.IsList(): return pref.ValueOfList(&dynamicList{desc: fd}) case fd.Message() != nil: return pref.ValueOfMessage(NewMessage(fd.Message()).ProtoReflect()) default: return fd.Default() } } // WhichOneof reports which field in a oneof is populated, returning nil if none are populated. // See protoreflect.Message for details. func (m *Message) WhichOneof(od pref.OneofDescriptor) pref.FieldDescriptor { for i := 0; i < od.Fields().Len(); i++ { fd := od.Fields().Get(i) if m.Has(fd) { return fd } } return nil } // GetUnknown returns the raw unknown fields. // See protoreflect.Message for details. func (m *Message) GetUnknown() pref.RawFields { return m.unknown } // SetUnknown sets the raw unknown fields. // See protoreflect.Message for details. func (m *Message) SetUnknown(r pref.RawFields) { if m.known == nil { panic(errors.New("%v: modification of read-only message", m.typ.desc.FullName())) } m.unknown = r } // IsValid reports whether the message is valid. // See protoreflect.Message for details. func (m *Message) IsValid() bool { return m.known != nil } func (m *Message) checkField(fd pref.FieldDescriptor) { if fd.IsExtension() && fd.ContainingMessage().FullName() == m.Descriptor().FullName() { if _, ok := fd.(pref.ExtensionTypeDescriptor); !ok { panic(errors.New("%v: extension field descriptor does not implement ExtensionTypeDescriptor", fd.FullName())) } return } if fd.Parent() == m.Descriptor() { return } fields := m.Descriptor().Fields() index := fd.Index() if index >= fields.Len() || fields.Get(index) != fd { panic(errors.New("%v: field descriptor does not belong to this message", fd.FullName())) } } type messageType struct { desc pref.MessageDescriptor } // NewMessageType creates a new MessageType with the provided descriptor. // // MessageTypes created by this package are equal if their descriptors are equal. // That is, if md1 == md2, then NewMessageType(md1) == NewMessageType(md2). func NewMessageType(desc pref.MessageDescriptor) pref.MessageType { return messageType{desc} } func (mt messageType) New() pref.Message { return NewMessage(mt.desc) } func (mt messageType) Zero() pref.Message { return &Message{typ: messageType{mt.desc}} } func (mt messageType) Descriptor() pref.MessageDescriptor { return mt.desc } func (mt messageType) Enum(i int) pref.EnumType { if ed := mt.desc.Fields().Get(i).Enum(); ed != nil { return NewEnumType(ed) } return nil } func (mt messageType) Message(i int) pref.MessageType { if md := mt.desc.Fields().Get(i).Message(); md != nil { return NewMessageType(md) } return nil } type emptyList struct { desc pref.FieldDescriptor } func (x emptyList) Len() int { return 0 } func (x emptyList) Get(n int) pref.Value { panic(errors.New("out of range")) } func (x emptyList) Set(n int, v pref.Value) { panic(errors.New("modification of immutable list")) } func (x emptyList) Append(v pref.Value) { panic(errors.New("modification of immutable list")) } func (x emptyList) AppendMutable() pref.Value { panic(errors.New("modification of immutable list")) } func (x emptyList) Truncate(n int) { panic(errors.New("modification of immutable list")) } func (x emptyList) NewElement() pref.Value { return newListEntry(x.desc) } func (x emptyList) IsValid() bool { return false } type dynamicList struct { desc pref.FieldDescriptor list []pref.Value } func (x *dynamicList) Len() int { return len(x.list) } func (x *dynamicList) Get(n int) pref.Value { return x.list[n] } func (x *dynamicList) Set(n int, v pref.Value) { typecheckSingular(x.desc, v) x.list[n] = v } func (x *dynamicList) Append(v pref.Value) { typecheckSingular(x.desc, v) x.list = append(x.list, v) } func (x *dynamicList) AppendMutable() pref.Value { if x.desc.Message() == nil { panic(errors.New("%v: invalid AppendMutable on list with non-message type", x.desc.FullName())) } v := x.NewElement() x.Append(v) return v } func (x *dynamicList) Truncate(n int) { // Zero truncated elements to avoid keeping data live. for i := n; i < len(x.list); i++ { x.list[i] = pref.Value{} } x.list = x.list[:n] } func (x *dynamicList) NewElement() pref.Value { return newListEntry(x.desc) } func (x *dynamicList) IsValid() bool { return true } type dynamicMap struct { desc pref.FieldDescriptor mapv map[interface{}]pref.Value } func (x *dynamicMap) Get(k pref.MapKey) pref.Value { return x.mapv[k.Interface()] } func (x *dynamicMap) Set(k pref.MapKey, v pref.Value) { typecheckSingular(x.desc.MapKey(), k.Value()) typecheckSingular(x.desc.MapValue(), v) x.mapv[k.Interface()] = v } func (x *dynamicMap) Has(k pref.MapKey) bool { return x.Get(k).IsValid() } func (x *dynamicMap) Clear(k pref.MapKey) { delete(x.mapv, k.Interface()) } func (x *dynamicMap) Mutable(k pref.MapKey) pref.Value { if x.desc.MapValue().Message() == nil { panic(errors.New("%v: invalid Mutable on map with non-message value type", x.desc.FullName())) } v := x.Get(k) if !v.IsValid() { v = x.NewValue() x.Set(k, v) } return v } func (x *dynamicMap) Len() int { return len(x.mapv) } func (x *dynamicMap) NewValue() pref.Value { if md := x.desc.MapValue().Message(); md != nil { return pref.ValueOfMessage(NewMessage(md).ProtoReflect()) } return x.desc.MapValue().Default() } func (x *dynamicMap) IsValid() bool { return x.mapv != nil } func (x *dynamicMap) Range(f func(pref.MapKey, pref.Value) bool) { for k, v := range x.mapv { if !f(pref.ValueOf(k).MapKey(), v) { return } } } func isSet(fd pref.FieldDescriptor, v pref.Value) bool { switch { case fd.IsMap(): return v.Map().Len() > 0 case fd.IsList(): return v.List().Len() > 0 case fd.ContainingOneof() != nil: return true case fd.Syntax() == pref.Proto3 && !fd.IsExtension(): switch fd.Kind() { case pref.BoolKind: return v.Bool() case pref.EnumKind: return v.Enum() != 0 case pref.Int32Kind, pref.Sint32Kind, pref.Int64Kind, pref.Sint64Kind, pref.Sfixed32Kind, pref.Sfixed64Kind: return v.Int() != 0 case pref.Uint32Kind, pref.Uint64Kind, pref.Fixed32Kind, pref.Fixed64Kind: return v.Uint() != 0 case pref.FloatKind, pref.DoubleKind: return v.Float() != 0 || math.Signbit(v.Float()) case pref.StringKind: return v.String() != "" case pref.BytesKind: return len(v.Bytes()) > 0 } } return true } func typecheck(fd pref.FieldDescriptor, v pref.Value) { if err := typeIsValid(fd, v); err != nil { panic(err) } } func typeIsValid(fd pref.FieldDescriptor, v pref.Value) error { switch { case !v.IsValid(): return errors.New("%v: assigning invalid value", fd.FullName()) case fd.IsMap(): if mapv, ok := v.Interface().(*dynamicMap); !ok || mapv.desc != fd || !mapv.IsValid() { return errors.New("%v: assigning invalid type %T", fd.FullName(), v.Interface()) } return nil case fd.IsList(): switch list := v.Interface().(type) { case *dynamicList: if list.desc == fd && list.IsValid() { return nil } case emptyList: if list.desc == fd && list.IsValid() { return nil } } return errors.New("%v: assigning invalid type %T", fd.FullName(), v.Interface()) default: return singularTypeIsValid(fd, v) } } func typecheckSingular(fd pref.FieldDescriptor, v pref.Value) { if err := singularTypeIsValid(fd, v); err != nil { panic(err) } } func singularTypeIsValid(fd pref.FieldDescriptor, v pref.Value) error { vi := v.Interface() var ok bool switch fd.Kind() { case pref.BoolKind: _, ok = vi.(bool) case pref.EnumKind: // We could check against the valid set of enum values, but do not. _, ok = vi.(pref.EnumNumber) case pref.Int32Kind, pref.Sint32Kind, pref.Sfixed32Kind: _, ok = vi.(int32) case pref.Uint32Kind, pref.Fixed32Kind: _, ok = vi.(uint32) case pref.Int64Kind, pref.Sint64Kind, pref.Sfixed64Kind: _, ok = vi.(int64) case pref.Uint64Kind, pref.Fixed64Kind: _, ok = vi.(uint64) case pref.FloatKind: _, ok = vi.(float32) case pref.DoubleKind: _, ok = vi.(float64) case pref.StringKind: _, ok = vi.(string) case pref.BytesKind: _, ok = vi.([]byte) case pref.MessageKind, pref.GroupKind: var m pref.Message m, ok = vi.(pref.Message) if ok && m.Descriptor().FullName() != fd.Message().FullName() { return errors.New("%v: assigning invalid message type %v", fd.FullName(), m.Descriptor().FullName()) } if dm, ok := vi.(*Message); ok && dm.known == nil { return errors.New("%v: assigning invalid zero-value message", fd.FullName()) } } if !ok { return errors.New("%v: assigning invalid type %T", fd.FullName(), v.Interface()) } return nil } func newListEntry(fd pref.FieldDescriptor) pref.Value { switch fd.Kind() { case pref.BoolKind: return pref.ValueOfBool(false) case pref.EnumKind: return pref.ValueOfEnum(fd.Enum().Values().Get(0).Number()) case pref.Int32Kind, pref.Sint32Kind, pref.Sfixed32Kind: return pref.ValueOfInt32(0) case pref.Uint32Kind, pref.Fixed32Kind: return pref.ValueOfUint32(0) case pref.Int64Kind, pref.Sint64Kind, pref.Sfixed64Kind: return pref.ValueOfInt64(0) case pref.Uint64Kind, pref.Fixed64Kind: return pref.ValueOfUint64(0) case pref.FloatKind: return pref.ValueOfFloat32(0) case pref.DoubleKind: return pref.ValueOfFloat64(0) case pref.StringKind: return pref.ValueOfString("") case pref.BytesKind: return pref.ValueOfBytes(nil) case pref.MessageKind, pref.GroupKind: return pref.ValueOfMessage(NewMessage(fd.Message()).ProtoReflect()) } panic(errors.New("%v: unknown kind %v", fd.FullName(), fd.Kind())) } // NewExtensionType creates a new ExtensionType with the provided descriptor. // // Dynamic ExtensionTypes with the same descriptor compare as equal. That is, // if xd1 == xd2, then NewExtensionType(xd1) == NewExtensionType(xd2). // // The InterfaceOf and ValueOf methods of the extension type are defined as: // // func (xt extensionType) ValueOf(iv interface{}) protoreflect.Value { // return protoreflect.ValueOf(iv) // } // // func (xt extensionType) InterfaceOf(v protoreflect.Value) interface{} { // return v.Interface() // } // // The Go type used by the proto.GetExtension and proto.SetExtension functions // is determined by these methods, and is therefore equivalent to the Go type // used to represent a protoreflect.Value. See the protoreflect.Value // documentation for more details. func NewExtensionType(desc pref.ExtensionDescriptor) pref.ExtensionType { if xt, ok := desc.(pref.ExtensionTypeDescriptor); ok { desc = xt.Descriptor() } return extensionType{extensionTypeDescriptor{desc}} } func (xt extensionType) New() pref.Value { switch { case xt.desc.IsMap(): return pref.ValueOfMap(&dynamicMap{ desc: xt.desc, mapv: make(map[interface{}]pref.Value), }) case xt.desc.IsList(): return pref.ValueOfList(&dynamicList{desc: xt.desc}) case xt.desc.Message() != nil: return pref.ValueOfMessage(NewMessage(xt.desc.Message())) default: return xt.desc.Default() } } func (xt extensionType) Zero() pref.Value { switch { case xt.desc.IsMap(): return pref.ValueOfMap(&dynamicMap{desc: xt.desc}) case xt.desc.Cardinality() == pref.Repeated: return pref.ValueOfList(emptyList{desc: xt.desc}) case xt.desc.Message() != nil: return pref.ValueOfMessage(&Message{typ: messageType{xt.desc.Message()}}) default: return xt.desc.Default() } } func (xt extensionType) TypeDescriptor() pref.ExtensionTypeDescriptor { return xt.desc } func (xt extensionType) ValueOf(iv interface{}) pref.Value { v := pref.ValueOf(iv) typecheck(xt.desc, v) return v } func (xt extensionType) InterfaceOf(v pref.Value) interface{} { typecheck(xt.desc, v) return v.Interface() } func (xt extensionType) IsValidInterface(iv interface{}) bool { return typeIsValid(xt.desc, pref.ValueOf(iv)) == nil } func (xt extensionType) IsValidValue(v pref.Value) bool { return typeIsValid(xt.desc, v) == nil } type extensionTypeDescriptor struct { pref.ExtensionDescriptor } func (xt extensionTypeDescriptor) Type() pref.ExtensionType { return extensionType{xt} } func (xt extensionTypeDescriptor) Descriptor() pref.ExtensionDescriptor { return xt.ExtensionDescriptor } golang-google-protobuf-1.27.1/types/dynamicpb/dynamic_test.go000066400000000000000000000042451411250152500243060ustar00rootroot00000000000000// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package dynamicpb_test import ( "testing" "google.golang.org/protobuf/proto" pref "google.golang.org/protobuf/reflect/protoreflect" preg "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/testing/prototest" "google.golang.org/protobuf/types/dynamicpb" testpb "google.golang.org/protobuf/internal/testprotos/test" test3pb "google.golang.org/protobuf/internal/testprotos/test3" ) func TestConformance(t *testing.T) { for _, message := range []proto.Message{ (*testpb.TestAllTypes)(nil), (*test3pb.TestAllTypes)(nil), (*testpb.TestAllExtensions)(nil), } { mt := dynamicpb.NewMessageType(message.ProtoReflect().Descriptor()) prototest.Message{}.Test(t, mt) } } func TestDynamicExtensions(t *testing.T) { for _, message := range []proto.Message{ (*testpb.TestAllExtensions)(nil), } { mt := dynamicpb.NewMessageType(message.ProtoReflect().Descriptor()) prototest.Message{ Resolver: extResolver{}, }.Test(t, mt) } } func TestDynamicEnums(t *testing.T) { for _, enum := range []pref.Enum{ testpb.TestAllTypes_FOO, test3pb.TestAllTypes_FOO, } { et := dynamicpb.NewEnumType(enum.Descriptor()) prototest.Enum{}.Test(t, et) } } type extResolver struct{} func (extResolver) FindExtensionByName(field pref.FullName) (pref.ExtensionType, error) { xt, err := preg.GlobalTypes.FindExtensionByName(field) if err != nil { return nil, err } return dynamicpb.NewExtensionType(xt.TypeDescriptor().Descriptor()), nil } func (extResolver) FindExtensionByNumber(message pref.FullName, field pref.FieldNumber) (pref.ExtensionType, error) { xt, err := preg.GlobalTypes.FindExtensionByNumber(message, field) if err != nil { return nil, err } return dynamicpb.NewExtensionType(xt.TypeDescriptor().Descriptor()), nil } func (extResolver) RangeExtensionsByMessage(message pref.FullName, f func(pref.ExtensionType) bool) { preg.GlobalTypes.RangeExtensionsByMessage(message, func(xt pref.ExtensionType) bool { return f(dynamicpb.NewExtensionType(xt.TypeDescriptor().Descriptor())) }) } golang-google-protobuf-1.27.1/types/known/000077500000000000000000000000001411250152500204555ustar00rootroot00000000000000golang-google-protobuf-1.27.1/types/known/anypb/000077500000000000000000000000001411250152500215665ustar00rootroot00000000000000golang-google-protobuf-1.27.1/types/known/anypb/any.pb.go000066400000000000000000000420631411250152500233110ustar00rootroot00000000000000// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Code generated by protoc-gen-go. DO NOT EDIT. // source: google/protobuf/any.proto // Package anypb contains generated types for google/protobuf/any.proto. // // The Any message is a dynamic representation of any other message value. // It is functionally a tuple of the full name of the remote message type and // the serialized bytes of the remote message value. // // // Constructing an Any // // An Any message containing another message value is constructed using New: // // any, err := anypb.New(m) // if err != nil { // ... // handle error // } // ... // make use of any // // // Unmarshaling an Any // // With a populated Any message, the underlying message can be serialized into // a remote concrete message value in a few ways. // // If the exact concrete type is known, then a new (or pre-existing) instance // of that message can be passed to the UnmarshalTo method: // // m := new(foopb.MyMessage) // if err := any.UnmarshalTo(m); err != nil { // ... // handle error // } // ... // make use of m // // If the exact concrete type is not known, then the UnmarshalNew method can be // used to unmarshal the contents into a new instance of the remote message type: // // m, err := any.UnmarshalNew() // if err != nil { // ... // handle error // } // ... // make use of m // // UnmarshalNew uses the global type registry to resolve the message type and // construct a new instance of that message to unmarshal into. In order for a // message type to appear in the global registry, the Go type representing that // protobuf message type must be linked into the Go binary. For messages // generated by protoc-gen-go, this is achieved through an import of the // generated Go package representing a .proto file. // // A common pattern with UnmarshalNew is to use a type switch with the resulting // proto.Message value: // // switch m := m.(type) { // case *foopb.MyMessage: // ... // make use of m as a *foopb.MyMessage // case *barpb.OtherMessage: // ... // make use of m as a *barpb.OtherMessage // case *bazpb.SomeMessage: // ... // make use of m as a *bazpb.SomeMessage // } // // This pattern ensures that the generated packages containing the message types // listed in the case clauses are linked into the Go binary and therefore also // registered in the global registry. // // // Type checking an Any // // In order to type check whether an Any message represents some other message, // then use the MessageIs method: // // if any.MessageIs((*foopb.MyMessage)(nil)) { // ... // make use of any, knowing that it contains a foopb.MyMessage // } // // The MessageIs method can also be used with an allocated instance of the target // message type if the intention is to unmarshal into it if the type matches: // // m := new(foopb.MyMessage) // if any.MessageIs(m) { // if err := any.UnmarshalTo(m); err != nil { // ... // handle error // } // ... // make use of m // } // package anypb import ( proto "google.golang.org/protobuf/proto" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoregistry "google.golang.org/protobuf/reflect/protoregistry" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" strings "strings" sync "sync" ) // `Any` contains an arbitrary serialized protocol buffer message along with a // URL that describes the type of the serialized message. // // Protobuf library provides support to pack/unpack Any values in the form // of utility functions or additional generated methods of the Any type. // // Example 1: Pack and unpack a message in C++. // // Foo foo = ...; // Any any; // any.PackFrom(foo); // ... // if (any.UnpackTo(&foo)) { // ... // } // // Example 2: Pack and unpack a message in Java. // // Foo foo = ...; // Any any = Any.pack(foo); // ... // if (any.is(Foo.class)) { // foo = any.unpack(Foo.class); // } // // Example 3: Pack and unpack a message in Python. // // foo = Foo(...) // any = Any() // any.Pack(foo) // ... // if any.Is(Foo.DESCRIPTOR): // any.Unpack(foo) // ... // // Example 4: Pack and unpack a message in Go // // foo := &pb.Foo{...} // any, err := anypb.New(foo) // if err != nil { // ... // } // ... // foo := &pb.Foo{} // if err := any.UnmarshalTo(foo); err != nil { // ... // } // // The pack methods provided by protobuf library will by default use // 'type.googleapis.com/full.type.name' as the type URL and the unpack // methods only use the fully qualified type name after the last '/' // in the type URL, for example "foo.bar.com/x/y.z" will yield type // name "y.z". // // // JSON // ==== // The JSON representation of an `Any` value uses the regular // representation of the deserialized, embedded message, with an // additional field `@type` which contains the type URL. Example: // // package google.profile; // message Person { // string first_name = 1; // string last_name = 2; // } // // { // "@type": "type.googleapis.com/google.profile.Person", // "firstName": , // "lastName": // } // // If the embedded message type is well-known and has a custom JSON // representation, that representation will be embedded adding a field // `value` which holds the custom JSON in addition to the `@type` // field. Example (for message [google.protobuf.Duration][]): // // { // "@type": "type.googleapis.com/google.protobuf.Duration", // "value": "1.212s" // } // type Any struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A URL/resource name that uniquely identifies the type of the serialized // protocol buffer message. This string must contain at least // one "/" character. The last segment of the URL's path must represent // the fully qualified name of the type (as in // `path/google.protobuf.Duration`). The name should be in a canonical form // (e.g., leading "." is not accepted). // // In practice, teams usually precompile into the binary all types that they // expect it to use in the context of Any. However, for URLs which use the // scheme `http`, `https`, or no scheme, one can optionally set up a type // server that maps type URLs to message definitions as follows: // // * If no scheme is provided, `https` is assumed. // * An HTTP GET on the URL must yield a [google.protobuf.Type][] // value in binary format, or produce an error. // * Applications are allowed to cache lookup results based on the // URL, or have them precompiled into a binary to avoid any // lookup. Therefore, binary compatibility needs to be preserved // on changes to types. (Use versioned type names to manage // breaking changes.) // // Note: this functionality is not currently available in the official // protobuf release, and it is not used for type URLs beginning with // type.googleapis.com. // // Schemes other than `http`, `https` (or the empty scheme) might be // used with implementation specific semantics. // TypeUrl string `protobuf:"bytes,1,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"` // Must be a valid serialized protocol buffer of the above specified type. Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` } // New marshals src into a new Any instance. func New(src proto.Message) (*Any, error) { dst := new(Any) if err := dst.MarshalFrom(src); err != nil { return nil, err } return dst, nil } // MarshalFrom marshals src into dst as the underlying message // using the provided marshal options. // // If no options are specified, call dst.MarshalFrom instead. func MarshalFrom(dst *Any, src proto.Message, opts proto.MarshalOptions) error { const urlPrefix = "type.googleapis.com/" if src == nil { return protoimpl.X.NewError("invalid nil source message") } b, err := opts.Marshal(src) if err != nil { return err } dst.TypeUrl = urlPrefix + string(src.ProtoReflect().Descriptor().FullName()) dst.Value = b return nil } // UnmarshalTo unmarshals the underlying message from src into dst // using the provided unmarshal options. // It reports an error if dst is not of the right message type. // // If no options are specified, call src.UnmarshalTo instead. func UnmarshalTo(src *Any, dst proto.Message, opts proto.UnmarshalOptions) error { if src == nil { return protoimpl.X.NewError("invalid nil source message") } if !src.MessageIs(dst) { got := dst.ProtoReflect().Descriptor().FullName() want := src.MessageName() return protoimpl.X.NewError("mismatched message type: got %q, want %q", got, want) } return opts.Unmarshal(src.GetValue(), dst) } // UnmarshalNew unmarshals the underlying message from src into dst, // which is newly created message using a type resolved from the type URL. // The message type is resolved according to opt.Resolver, // which should implement protoregistry.MessageTypeResolver. // It reports an error if the underlying message type could not be resolved. // // If no options are specified, call src.UnmarshalNew instead. func UnmarshalNew(src *Any, opts proto.UnmarshalOptions) (dst proto.Message, err error) { if src.GetTypeUrl() == "" { return nil, protoimpl.X.NewError("invalid empty type URL") } if opts.Resolver == nil { opts.Resolver = protoregistry.GlobalTypes } r, ok := opts.Resolver.(protoregistry.MessageTypeResolver) if !ok { return nil, protoregistry.NotFound } mt, err := r.FindMessageByURL(src.GetTypeUrl()) if err != nil { if err == protoregistry.NotFound { return nil, err } return nil, protoimpl.X.NewError("could not resolve %q: %v", src.GetTypeUrl(), err) } dst = mt.New().Interface() return dst, opts.Unmarshal(src.GetValue(), dst) } // MessageIs reports whether the underlying message is of the same type as m. func (x *Any) MessageIs(m proto.Message) bool { if m == nil { return false } url := x.GetTypeUrl() name := string(m.ProtoReflect().Descriptor().FullName()) if !strings.HasSuffix(url, name) { return false } return len(url) == len(name) || url[len(url)-len(name)-1] == '/' } // MessageName reports the full name of the underlying message, // returning an empty string if invalid. func (x *Any) MessageName() protoreflect.FullName { url := x.GetTypeUrl() name := protoreflect.FullName(url) if i := strings.LastIndexByte(url, '/'); i >= 0 { name = name[i+len("/"):] } if !name.IsValid() { return "" } return name } // MarshalFrom marshals m into x as the underlying message. func (x *Any) MarshalFrom(m proto.Message) error { return MarshalFrom(x, m, proto.MarshalOptions{}) } // UnmarshalTo unmarshals the contents of the underlying message of x into m. // It resets m before performing the unmarshal operation. // It reports an error if m is not of the right message type. func (x *Any) UnmarshalTo(m proto.Message) error { return UnmarshalTo(x, m, proto.UnmarshalOptions{}) } // UnmarshalNew unmarshals the contents of the underlying message of x into // a newly allocated message of the specified type. // It reports an error if the underlying message type could not be resolved. func (x *Any) UnmarshalNew() (proto.Message, error) { return UnmarshalNew(x, proto.UnmarshalOptions{}) } func (x *Any) Reset() { *x = Any{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_any_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Any) String() string { return protoimpl.X.MessageStringOf(x) } func (*Any) ProtoMessage() {} func (x *Any) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_any_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Any.ProtoReflect.Descriptor instead. func (*Any) Descriptor() ([]byte, []int) { return file_google_protobuf_any_proto_rawDescGZIP(), []int{0} } func (x *Any) GetTypeUrl() string { if x != nil { return x.TypeUrl } return "" } func (x *Any) GetValue() []byte { if x != nil { return x.Value } return nil } var File_google_protobuf_any_proto protoreflect.FileDescriptor var file_google_protobuf_any_proto_rawDesc = []byte{ 0x0a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x22, 0x36, 0x0a, 0x03, 0x41, 0x6e, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x79, 0x70, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x76, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x08, 0x41, 0x6e, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2f, 0x61, 0x6e, 0x79, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_google_protobuf_any_proto_rawDescOnce sync.Once file_google_protobuf_any_proto_rawDescData = file_google_protobuf_any_proto_rawDesc ) func file_google_protobuf_any_proto_rawDescGZIP() []byte { file_google_protobuf_any_proto_rawDescOnce.Do(func() { file_google_protobuf_any_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_any_proto_rawDescData) }) return file_google_protobuf_any_proto_rawDescData } var file_google_protobuf_any_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_google_protobuf_any_proto_goTypes = []interface{}{ (*Any)(nil), // 0: google.protobuf.Any } var file_google_protobuf_any_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_google_protobuf_any_proto_init() } func file_google_protobuf_any_proto_init() { if File_google_protobuf_any_proto != nil { return } if !protoimpl.UnsafeEnabled { file_google_protobuf_any_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Any); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_protobuf_any_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_google_protobuf_any_proto_goTypes, DependencyIndexes: file_google_protobuf_any_proto_depIdxs, MessageInfos: file_google_protobuf_any_proto_msgTypes, }.Build() File_google_protobuf_any_proto = out.File file_google_protobuf_any_proto_rawDesc = nil file_google_protobuf_any_proto_goTypes = nil file_google_protobuf_any_proto_depIdxs = nil } golang-google-protobuf-1.27.1/types/known/anypb/any_test.go000066400000000000000000000117501411250152500237470ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package anypb_test import ( "testing" "github.com/google/go-cmp/cmp" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/testing/protocmp" testpb "google.golang.org/protobuf/internal/testprotos/test" apb "google.golang.org/protobuf/types/known/anypb" epb "google.golang.org/protobuf/types/known/emptypb" wpb "google.golang.org/protobuf/types/known/wrapperspb" ) func mustMarshal(m proto.Message) []byte { b, err := proto.MarshalOptions{AllowPartial: true, Deterministic: true}.Marshal(m) if err != nil { panic(err) } return b } func TestMessage(t *testing.T) { tests := []struct { inAny *apb.Any inTarget proto.Message wantIs bool wantName protoreflect.FullName }{{ inAny: nil, inTarget: nil, wantIs: false, wantName: "", }, { inAny: new(apb.Any), inTarget: nil, wantIs: false, wantName: "", }, { inAny: new(apb.Any), inTarget: (*testpb.TestAllTypes)(nil), wantIs: false, wantName: "", }, { inAny: &apb.Any{TypeUrl: "foo"}, inTarget: (*testpb.TestAllTypes)(nil), wantIs: false, wantName: "foo", }, { inAny: &apb.Any{TypeUrl: "foo$"}, inTarget: (*testpb.TestAllTypes)(nil), wantIs: false, wantName: "", }, { inAny: &apb.Any{TypeUrl: "/foo"}, inTarget: (*testpb.TestAllTypes)(nil), wantIs: false, wantName: "foo", }, { inAny: &apb.Any{TypeUrl: "/bar/foo"}, inTarget: (*testpb.TestAllTypes)(nil), wantIs: false, wantName: "foo", }, { inAny: &apb.Any{TypeUrl: "google.golang.org/bar/foo"}, inTarget: (*testpb.TestAllTypes)(nil), wantIs: false, wantName: "foo", }, { inAny: &apb.Any{TypeUrl: "goproto.proto.test.TestAllTypes"}, inTarget: (*testpb.TestAllTypes)(nil), wantIs: true, wantName: "goproto.proto.test.TestAllTypes", }, { inAny: &apb.Any{TypeUrl: "goproto.proto.test.TestAllTypes$"}, inTarget: (*testpb.TestAllTypes)(nil), wantIs: false, wantName: "", }, { inAny: &apb.Any{TypeUrl: "/goproto.proto.test.TestAllTypes"}, inTarget: (*testpb.TestAllTypes)(nil), wantIs: true, wantName: "goproto.proto.test.TestAllTypes", }, { inAny: &apb.Any{TypeUrl: "google.golang.org/foo/goproto.proto.test.TestAllTypes"}, inTarget: (*testpb.TestAllTypes)(nil), wantIs: true, wantName: "goproto.proto.test.TestAllTypes", }} for _, tt := range tests { gotIs := tt.inAny.MessageIs(tt.inTarget) if gotIs != tt.wantIs { t.Errorf("MessageIs(%v, %v) = %v, want %v", tt.inAny, tt.inTarget, gotIs, tt.wantIs) } gotName := tt.inAny.MessageName() if gotName != tt.wantName { t.Errorf("MessageName(%v) = %v, want %v", tt.inAny, gotName, tt.wantName) } } } func TestRoundtrip(t *testing.T) { tests := []struct { msg proto.Message any *apb.Any }{{ msg: &testpb.TestAllTypes{}, any: &apb.Any{ TypeUrl: "type.googleapis.com/goproto.proto.test.TestAllTypes", }, }, { msg: &testpb.TestAllTypes{ OptionalString: proto.String("hello, world!"), }, any: &apb.Any{ TypeUrl: "type.googleapis.com/goproto.proto.test.TestAllTypes", Value: mustMarshal(&testpb.TestAllTypes{ OptionalString: proto.String("hello, world!"), }), }, }, { msg: &wpb.StringValue{Value: ""}, any: &apb.Any{ TypeUrl: "type.googleapis.com/google.protobuf.StringValue", }, }, { msg: wpb.String("hello, world"), any: &apb.Any{ TypeUrl: "type.googleapis.com/google.protobuf.StringValue", Value: mustMarshal(wpb.String("hello, world")), }, }, { msg: &apb.Any{ TypeUrl: "type.googleapis.com/google.protobuf.StringValue", Value: mustMarshal(wpb.String("hello, world")), }, any: &apb.Any{ TypeUrl: "type.googleapis.com/google.protobuf.Any", Value: mustMarshal(&apb.Any{ TypeUrl: "type.googleapis.com/google.protobuf.StringValue", Value: mustMarshal(wpb.String("hello, world")), }), }, }} for _, tt := range tests { // Unmarshal to the wrong message type. var empty epb.Empty if err := tt.any.UnmarshalTo(&empty); err == nil { t.Errorf("UnmarshalTo(empty) = nil, want non-nil") } gotAny := new(apb.Any) if err := gotAny.MarshalFrom(tt.msg); err != nil { t.Errorf("MarshalFrom() error: %v", err) } if diff := cmp.Diff(tt.any, gotAny, protocmp.Transform()); diff != "" { t.Errorf("MarshalFrom() output mismatch (-want +got):\n%s", diff) } gotPB := tt.msg.ProtoReflect().New().Interface() if err := tt.any.UnmarshalTo(gotPB); err != nil { t.Errorf("UnmarshalTo() error: %v", err) } if diff := cmp.Diff(tt.msg, gotPB, protocmp.Transform()); diff != "" { t.Errorf("UnmarshalTo() output mismatch (-want +got):\n%s", diff) } gotPB, err := tt.any.UnmarshalNew() if err != nil { t.Errorf("UnmarshalNew() error: %v", err) } if diff := cmp.Diff(tt.msg, gotPB, protocmp.Transform()); diff != "" { t.Errorf("UnmarshalNew() output mismatch (-want +got):\n%s", diff) } } } golang-google-protobuf-1.27.1/types/known/apipb/000077500000000000000000000000001411250152500215505ustar00rootroot00000000000000golang-google-protobuf-1.27.1/types/known/apipb/api.pb.go000066400000000000000000000536411411250152500232610ustar00rootroot00000000000000// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Code generated by protoc-gen-go. DO NOT EDIT. // source: google/protobuf/api.proto package apipb import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" sourcecontextpb "google.golang.org/protobuf/types/known/sourcecontextpb" typepb "google.golang.org/protobuf/types/known/typepb" reflect "reflect" sync "sync" ) // Api is a light-weight descriptor for an API Interface. // // Interfaces are also described as "protocol buffer services" in some contexts, // such as by the "service" keyword in a .proto file, but they are different // from API Services, which represent a concrete implementation of an interface // as opposed to simply a description of methods and bindings. They are also // sometimes simply referred to as "APIs" in other contexts, such as the name of // this message itself. See https://cloud.google.com/apis/design/glossary for // detailed terminology. type Api struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The fully qualified name of this interface, including package name // followed by the interface's simple name. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The methods of this interface, in unspecified order. Methods []*Method `protobuf:"bytes,2,rep,name=methods,proto3" json:"methods,omitempty"` // Any metadata attached to the interface. Options []*typepb.Option `protobuf:"bytes,3,rep,name=options,proto3" json:"options,omitempty"` // A version string for this interface. If specified, must have the form // `major-version.minor-version`, as in `1.10`. If the minor version is // omitted, it defaults to zero. If the entire version field is empty, the // major version is derived from the package name, as outlined below. If the // field is not empty, the version in the package name will be verified to be // consistent with what is provided here. // // The versioning schema uses [semantic // versioning](http://semver.org) where the major version number // indicates a breaking change and the minor version an additive, // non-breaking change. Both version numbers are signals to users // what to expect from different versions, and should be carefully // chosen based on the product plan. // // The major version is also reflected in the package name of the // interface, which must end in `v`, as in // `google.feature.v1`. For major versions 0 and 1, the suffix can // be omitted. Zero major versions must only be used for // experimental, non-GA interfaces. // // Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` // Source context for the protocol buffer service represented by this // message. SourceContext *sourcecontextpb.SourceContext `protobuf:"bytes,5,opt,name=source_context,json=sourceContext,proto3" json:"source_context,omitempty"` // Included interfaces. See [Mixin][]. Mixins []*Mixin `protobuf:"bytes,6,rep,name=mixins,proto3" json:"mixins,omitempty"` // The source syntax of the service. Syntax typepb.Syntax `protobuf:"varint,7,opt,name=syntax,proto3,enum=google.protobuf.Syntax" json:"syntax,omitempty"` } func (x *Api) Reset() { *x = Api{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_api_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Api) String() string { return protoimpl.X.MessageStringOf(x) } func (*Api) ProtoMessage() {} func (x *Api) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_api_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Api.ProtoReflect.Descriptor instead. func (*Api) Descriptor() ([]byte, []int) { return file_google_protobuf_api_proto_rawDescGZIP(), []int{0} } func (x *Api) GetName() string { if x != nil { return x.Name } return "" } func (x *Api) GetMethods() []*Method { if x != nil { return x.Methods } return nil } func (x *Api) GetOptions() []*typepb.Option { if x != nil { return x.Options } return nil } func (x *Api) GetVersion() string { if x != nil { return x.Version } return "" } func (x *Api) GetSourceContext() *sourcecontextpb.SourceContext { if x != nil { return x.SourceContext } return nil } func (x *Api) GetMixins() []*Mixin { if x != nil { return x.Mixins } return nil } func (x *Api) GetSyntax() typepb.Syntax { if x != nil { return x.Syntax } return typepb.Syntax(0) } // Method represents a method of an API interface. type Method struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The simple name of this method. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // A URL of the input message type. RequestTypeUrl string `protobuf:"bytes,2,opt,name=request_type_url,json=requestTypeUrl,proto3" json:"request_type_url,omitempty"` // If true, the request is streamed. RequestStreaming bool `protobuf:"varint,3,opt,name=request_streaming,json=requestStreaming,proto3" json:"request_streaming,omitempty"` // The URL of the output message type. ResponseTypeUrl string `protobuf:"bytes,4,opt,name=response_type_url,json=responseTypeUrl,proto3" json:"response_type_url,omitempty"` // If true, the response is streamed. ResponseStreaming bool `protobuf:"varint,5,opt,name=response_streaming,json=responseStreaming,proto3" json:"response_streaming,omitempty"` // Any metadata attached to the method. Options []*typepb.Option `protobuf:"bytes,6,rep,name=options,proto3" json:"options,omitempty"` // The source syntax of this method. Syntax typepb.Syntax `protobuf:"varint,7,opt,name=syntax,proto3,enum=google.protobuf.Syntax" json:"syntax,omitempty"` } func (x *Method) Reset() { *x = Method{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_api_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Method) String() string { return protoimpl.X.MessageStringOf(x) } func (*Method) ProtoMessage() {} func (x *Method) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_api_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Method.ProtoReflect.Descriptor instead. func (*Method) Descriptor() ([]byte, []int) { return file_google_protobuf_api_proto_rawDescGZIP(), []int{1} } func (x *Method) GetName() string { if x != nil { return x.Name } return "" } func (x *Method) GetRequestTypeUrl() string { if x != nil { return x.RequestTypeUrl } return "" } func (x *Method) GetRequestStreaming() bool { if x != nil { return x.RequestStreaming } return false } func (x *Method) GetResponseTypeUrl() string { if x != nil { return x.ResponseTypeUrl } return "" } func (x *Method) GetResponseStreaming() bool { if x != nil { return x.ResponseStreaming } return false } func (x *Method) GetOptions() []*typepb.Option { if x != nil { return x.Options } return nil } func (x *Method) GetSyntax() typepb.Syntax { if x != nil { return x.Syntax } return typepb.Syntax(0) } // Declares an API Interface to be included in this interface. The including // interface must redeclare all the methods from the included interface, but // documentation and options are inherited as follows: // // - If after comment and whitespace stripping, the documentation // string of the redeclared method is empty, it will be inherited // from the original method. // // - Each annotation belonging to the service config (http, // visibility) which is not set in the redeclared method will be // inherited. // // - If an http annotation is inherited, the path pattern will be // modified as follows. Any version prefix will be replaced by the // version of the including interface plus the [root][] path if // specified. // // Example of a simple mixin: // // package google.acl.v1; // service AccessControl { // // Get the underlying ACL object. // rpc GetAcl(GetAclRequest) returns (Acl) { // option (google.api.http).get = "/v1/{resource=**}:getAcl"; // } // } // // package google.storage.v2; // service Storage { // rpc GetAcl(GetAclRequest) returns (Acl); // // // Get a data record. // rpc GetData(GetDataRequest) returns (Data) { // option (google.api.http).get = "/v2/{resource=**}"; // } // } // // Example of a mixin configuration: // // apis: // - name: google.storage.v2.Storage // mixins: // - name: google.acl.v1.AccessControl // // The mixin construct implies that all methods in `AccessControl` are // also declared with same name and request/response types in // `Storage`. A documentation generator or annotation processor will // see the effective `Storage.GetAcl` method after inheriting // documentation and annotations as follows: // // service Storage { // // Get the underlying ACL object. // rpc GetAcl(GetAclRequest) returns (Acl) { // option (google.api.http).get = "/v2/{resource=**}:getAcl"; // } // ... // } // // Note how the version in the path pattern changed from `v1` to `v2`. // // If the `root` field in the mixin is specified, it should be a // relative path under which inherited HTTP paths are placed. Example: // // apis: // - name: google.storage.v2.Storage // mixins: // - name: google.acl.v1.AccessControl // root: acls // // This implies the following inherited HTTP annotation: // // service Storage { // // Get the underlying ACL object. // rpc GetAcl(GetAclRequest) returns (Acl) { // option (google.api.http).get = "/v2/acls/{resource=**}:getAcl"; // } // ... // } type Mixin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The fully qualified name of the interface which is included. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // If non-empty specifies a path under which inherited HTTP paths // are rooted. Root string `protobuf:"bytes,2,opt,name=root,proto3" json:"root,omitempty"` } func (x *Mixin) Reset() { *x = Mixin{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_api_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Mixin) String() string { return protoimpl.X.MessageStringOf(x) } func (*Mixin) ProtoMessage() {} func (x *Mixin) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_api_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Mixin.ProtoReflect.Descriptor instead. func (*Mixin) Descriptor() ([]byte, []int) { return file_google_protobuf_api_proto_rawDescGZIP(), []int{2} } func (x *Mixin) GetName() string { if x != nil { return x.Name } return "" } func (x *Mixin) GetRoot() string { if x != nil { return x.Root } return "" } var File_google_protobuf_api_proto protoreflect.FileDescriptor var file_google_protobuf_api_proto_rawDesc = []byte{ 0x0a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x1a, 0x24, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc1, 0x02, 0x0a, 0x03, 0x41, 0x70, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x12, 0x31, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x2e, 0x0a, 0x06, 0x6d, 0x69, 0x78, 0x69, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x69, 0x78, 0x69, 0x6e, 0x52, 0x06, 0x6d, 0x69, 0x78, 0x69, 0x6e, 0x73, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x22, 0xb2, 0x02, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x31, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x22, 0x2f, 0x0a, 0x05, 0x4d, 0x69, 0x78, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x42, 0x76, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x08, 0x41, 0x70, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_google_protobuf_api_proto_rawDescOnce sync.Once file_google_protobuf_api_proto_rawDescData = file_google_protobuf_api_proto_rawDesc ) func file_google_protobuf_api_proto_rawDescGZIP() []byte { file_google_protobuf_api_proto_rawDescOnce.Do(func() { file_google_protobuf_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_api_proto_rawDescData) }) return file_google_protobuf_api_proto_rawDescData } var file_google_protobuf_api_proto_msgTypes = make([]protoimpl.MessageInfo, 3) var file_google_protobuf_api_proto_goTypes = []interface{}{ (*Api)(nil), // 0: google.protobuf.Api (*Method)(nil), // 1: google.protobuf.Method (*Mixin)(nil), // 2: google.protobuf.Mixin (*typepb.Option)(nil), // 3: google.protobuf.Option (*sourcecontextpb.SourceContext)(nil), // 4: google.protobuf.SourceContext (typepb.Syntax)(0), // 5: google.protobuf.Syntax } var file_google_protobuf_api_proto_depIdxs = []int32{ 1, // 0: google.protobuf.Api.methods:type_name -> google.protobuf.Method 3, // 1: google.protobuf.Api.options:type_name -> google.protobuf.Option 4, // 2: google.protobuf.Api.source_context:type_name -> google.protobuf.SourceContext 2, // 3: google.protobuf.Api.mixins:type_name -> google.protobuf.Mixin 5, // 4: google.protobuf.Api.syntax:type_name -> google.protobuf.Syntax 3, // 5: google.protobuf.Method.options:type_name -> google.protobuf.Option 5, // 6: google.protobuf.Method.syntax:type_name -> google.protobuf.Syntax 7, // [7:7] is the sub-list for method output_type 7, // [7:7] is the sub-list for method input_type 7, // [7:7] is the sub-list for extension type_name 7, // [7:7] is the sub-list for extension extendee 0, // [0:7] is the sub-list for field type_name } func init() { file_google_protobuf_api_proto_init() } func file_google_protobuf_api_proto_init() { if File_google_protobuf_api_proto != nil { return } if !protoimpl.UnsafeEnabled { file_google_protobuf_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Api); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Method); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Mixin); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_protobuf_api_proto_rawDesc, NumEnums: 0, NumMessages: 3, NumExtensions: 0, NumServices: 0, }, GoTypes: file_google_protobuf_api_proto_goTypes, DependencyIndexes: file_google_protobuf_api_proto_depIdxs, MessageInfos: file_google_protobuf_api_proto_msgTypes, }.Build() File_google_protobuf_api_proto = out.File file_google_protobuf_api_proto_rawDesc = nil file_google_protobuf_api_proto_goTypes = nil file_google_protobuf_api_proto_depIdxs = nil } golang-google-protobuf-1.27.1/types/known/durationpb/000077500000000000000000000000001411250152500226245ustar00rootroot00000000000000golang-google-protobuf-1.27.1/types/known/durationpb/duration.pb.go000066400000000000000000000332461411250152500254100ustar00rootroot00000000000000// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Code generated by protoc-gen-go. DO NOT EDIT. // source: google/protobuf/duration.proto // Package durationpb contains generated types for google/protobuf/duration.proto. // // The Duration message represents a signed span of time. // // // Conversion to a Go Duration // // The AsDuration method can be used to convert a Duration message to a // standard Go time.Duration value: // // d := dur.AsDuration() // ... // make use of d as a time.Duration // // Converting to a time.Duration is a common operation so that the extensive // set of time-based operations provided by the time package can be leveraged. // See https://golang.org/pkg/time for more information. // // The AsDuration method performs the conversion on a best-effort basis. // Durations with denormal values (e.g., nanoseconds beyond -99999999 and // +99999999, inclusive; or seconds and nanoseconds with opposite signs) // are normalized during the conversion to a time.Duration. To manually check for // invalid Duration per the documented limitations in duration.proto, // additionally call the CheckValid method: // // if err := dur.CheckValid(); err != nil { // ... // handle error // } // // Note that the documented limitations in duration.proto does not protect a // Duration from overflowing the representable range of a time.Duration in Go. // The AsDuration method uses saturation arithmetic such that an overflow clamps // the resulting value to the closest representable value (e.g., math.MaxInt64 // for positive overflow and math.MinInt64 for negative overflow). // // // Conversion from a Go Duration // // The durationpb.New function can be used to construct a Duration message // from a standard Go time.Duration value: // // dur := durationpb.New(d) // ... // make use of d as a *durationpb.Duration // package durationpb import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" math "math" reflect "reflect" sync "sync" time "time" ) // A Duration represents a signed, fixed-length span of time represented // as a count of seconds and fractions of seconds at nanosecond // resolution. It is independent of any calendar and concepts like "day" // or "month". It is related to Timestamp in that the difference between // two Timestamp values is a Duration and it can be added or subtracted // from a Timestamp. Range is approximately +-10,000 years. // // # Examples // // Example 1: Compute Duration from two Timestamps in pseudo code. // // Timestamp start = ...; // Timestamp end = ...; // Duration duration = ...; // // duration.seconds = end.seconds - start.seconds; // duration.nanos = end.nanos - start.nanos; // // if (duration.seconds < 0 && duration.nanos > 0) { // duration.seconds += 1; // duration.nanos -= 1000000000; // } else if (duration.seconds > 0 && duration.nanos < 0) { // duration.seconds -= 1; // duration.nanos += 1000000000; // } // // Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. // // Timestamp start = ...; // Duration duration = ...; // Timestamp end = ...; // // end.seconds = start.seconds + duration.seconds; // end.nanos = start.nanos + duration.nanos; // // if (end.nanos < 0) { // end.seconds -= 1; // end.nanos += 1000000000; // } else if (end.nanos >= 1000000000) { // end.seconds += 1; // end.nanos -= 1000000000; // } // // Example 3: Compute Duration from datetime.timedelta in Python. // // td = datetime.timedelta(days=3, minutes=10) // duration = Duration() // duration.FromTimedelta(td) // // # JSON Mapping // // In JSON format, the Duration type is encoded as a string rather than an // object, where the string ends in the suffix "s" (indicating seconds) and // is preceded by the number of seconds, with nanoseconds expressed as // fractional seconds. For example, 3 seconds with 0 nanoseconds should be // encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should // be expressed in JSON format as "3.000000001s", and 3 seconds and 1 // microsecond should be expressed in JSON format as "3.000001s". // // type Duration struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Signed seconds of the span of time. Must be from -315,576,000,000 // to +315,576,000,000 inclusive. Note: these bounds are computed from: // 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"` // Signed fractions of a second at nanosecond resolution of the span // of time. Durations less than one second are represented with a 0 // `seconds` field and a positive or negative `nanos` field. For durations // of one second or more, a non-zero value for the `nanos` field must be // of the same sign as the `seconds` field. Must be from -999,999,999 // to +999,999,999 inclusive. Nanos int32 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"` } // New constructs a new Duration from the provided time.Duration. func New(d time.Duration) *Duration { nanos := d.Nanoseconds() secs := nanos / 1e9 nanos -= secs * 1e9 return &Duration{Seconds: int64(secs), Nanos: int32(nanos)} } // AsDuration converts x to a time.Duration, // returning the closest duration value in the event of overflow. func (x *Duration) AsDuration() time.Duration { secs := x.GetSeconds() nanos := x.GetNanos() d := time.Duration(secs) * time.Second overflow := d/time.Second != time.Duration(secs) d += time.Duration(nanos) * time.Nanosecond overflow = overflow || (secs < 0 && nanos < 0 && d > 0) overflow = overflow || (secs > 0 && nanos > 0 && d < 0) if overflow { switch { case secs < 0: return time.Duration(math.MinInt64) case secs > 0: return time.Duration(math.MaxInt64) } } return d } // IsValid reports whether the duration is valid. // It is equivalent to CheckValid == nil. func (x *Duration) IsValid() bool { return x.check() == 0 } // CheckValid returns an error if the duration is invalid. // In particular, it checks whether the value is within the range of // -10000 years to +10000 years inclusive. // An error is reported for a nil Duration. func (x *Duration) CheckValid() error { switch x.check() { case invalidNil: return protoimpl.X.NewError("invalid nil Duration") case invalidUnderflow: return protoimpl.X.NewError("duration (%v) exceeds -10000 years", x) case invalidOverflow: return protoimpl.X.NewError("duration (%v) exceeds +10000 years", x) case invalidNanosRange: return protoimpl.X.NewError("duration (%v) has out-of-range nanos", x) case invalidNanosSign: return protoimpl.X.NewError("duration (%v) has seconds and nanos with different signs", x) default: return nil } } const ( _ = iota invalidNil invalidUnderflow invalidOverflow invalidNanosRange invalidNanosSign ) func (x *Duration) check() uint { const absDuration = 315576000000 // 10000yr * 365.25day/yr * 24hr/day * 60min/hr * 60sec/min secs := x.GetSeconds() nanos := x.GetNanos() switch { case x == nil: return invalidNil case secs < -absDuration: return invalidUnderflow case secs > +absDuration: return invalidOverflow case nanos <= -1e9 || nanos >= +1e9: return invalidNanosRange case (secs > 0 && nanos < 0) || (secs < 0 && nanos > 0): return invalidNanosSign default: return 0 } } func (x *Duration) Reset() { *x = Duration{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_duration_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Duration) String() string { return protoimpl.X.MessageStringOf(x) } func (*Duration) ProtoMessage() {} func (x *Duration) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_duration_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Duration.ProtoReflect.Descriptor instead. func (*Duration) Descriptor() ([]byte, []int) { return file_google_protobuf_duration_proto_rawDescGZIP(), []int{0} } func (x *Duration) GetSeconds() int64 { if x != nil { return x.Seconds } return 0 } func (x *Duration) GetNanos() int32 { if x != nil { return x.Nanos } return 0 } var File_google_protobuf_duration_proto protoreflect.FileDescriptor var file_google_protobuf_duration_proto_rawDesc = []byte{ 0x0a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x22, 0x3a, 0x0a, 0x08, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x42, 0x83, 0x01, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x0d, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_google_protobuf_duration_proto_rawDescOnce sync.Once file_google_protobuf_duration_proto_rawDescData = file_google_protobuf_duration_proto_rawDesc ) func file_google_protobuf_duration_proto_rawDescGZIP() []byte { file_google_protobuf_duration_proto_rawDescOnce.Do(func() { file_google_protobuf_duration_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_duration_proto_rawDescData) }) return file_google_protobuf_duration_proto_rawDescData } var file_google_protobuf_duration_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_google_protobuf_duration_proto_goTypes = []interface{}{ (*Duration)(nil), // 0: google.protobuf.Duration } var file_google_protobuf_duration_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_google_protobuf_duration_proto_init() } func file_google_protobuf_duration_proto_init() { if File_google_protobuf_duration_proto != nil { return } if !protoimpl.UnsafeEnabled { file_google_protobuf_duration_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Duration); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_protobuf_duration_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_google_protobuf_duration_proto_goTypes, DependencyIndexes: file_google_protobuf_duration_proto_depIdxs, MessageInfos: file_google_protobuf_duration_proto_msgTypes, }.Build() File_google_protobuf_duration_proto = out.File file_google_protobuf_duration_proto_rawDesc = nil file_google_protobuf_duration_proto_goTypes = nil file_google_protobuf_duration_proto_depIdxs = nil } golang-google-protobuf-1.27.1/types/known/durationpb/duration_test.go000066400000000000000000000122241411250152500260400ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package durationpb_test import ( "math" "strings" "testing" "time" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "google.golang.org/protobuf/internal/detrand" "google.golang.org/protobuf/testing/protocmp" durpb "google.golang.org/protobuf/types/known/durationpb" ) func init() { detrand.Disable() } const ( minGoSeconds = math.MinInt64 / int64(1e9) maxGoSeconds = math.MaxInt64 / int64(1e9) absSeconds = 315576000000 // 10000yr * 365.25day/yr * 24hr/day * 60min/hr * 60sec/min ) func TestToDuration(t *testing.T) { tests := []struct { in time.Duration want *durpb.Duration }{ {in: time.Duration(0), want: &durpb.Duration{Seconds: 0, Nanos: 0}}, {in: -time.Second, want: &durpb.Duration{Seconds: -1, Nanos: 0}}, {in: +time.Second, want: &durpb.Duration{Seconds: +1, Nanos: 0}}, {in: -time.Second - time.Millisecond, want: &durpb.Duration{Seconds: -1, Nanos: -1e6}}, {in: +time.Second + time.Millisecond, want: &durpb.Duration{Seconds: +1, Nanos: +1e6}}, {in: time.Duration(math.MinInt64), want: &durpb.Duration{Seconds: minGoSeconds, Nanos: int32(math.MinInt64 - 1e9*minGoSeconds)}}, {in: time.Duration(math.MaxInt64), want: &durpb.Duration{Seconds: maxGoSeconds, Nanos: int32(math.MaxInt64 - 1e9*maxGoSeconds)}}, } for _, tt := range tests { got := durpb.New(tt.in) if diff := cmp.Diff(tt.want, got, protocmp.Transform()); diff != "" { t.Errorf("New(%v) mismatch (-want +got):\n%s", tt.in, diff) } } } func TestFromDuration(t *testing.T) { tests := []struct { in *durpb.Duration wantDur time.Duration wantErr error }{ {in: nil, wantDur: time.Duration(0), wantErr: textError("invalid nil Duration")}, {in: new(durpb.Duration), wantDur: time.Duration(0)}, {in: &durpb.Duration{Seconds: -1, Nanos: 0}, wantDur: -time.Second}, {in: &durpb.Duration{Seconds: +1, Nanos: 0}, wantDur: +time.Second}, {in: &durpb.Duration{Seconds: 0, Nanos: -1}, wantDur: -time.Nanosecond}, {in: &durpb.Duration{Seconds: 0, Nanos: +1}, wantDur: +time.Nanosecond}, {in: &durpb.Duration{Seconds: -100, Nanos: 0}, wantDur: -100 * time.Second}, {in: &durpb.Duration{Seconds: +100, Nanos: 0}, wantDur: +100 * time.Second}, {in: &durpb.Duration{Seconds: -100, Nanos: -987}, wantDur: -100*time.Second - 987*time.Nanosecond}, {in: &durpb.Duration{Seconds: +100, Nanos: +987}, wantDur: +100*time.Second + 987*time.Nanosecond}, {in: &durpb.Duration{Seconds: minGoSeconds, Nanos: int32(math.MinInt64 - 1e9*minGoSeconds)}, wantDur: time.Duration(math.MinInt64)}, {in: &durpb.Duration{Seconds: maxGoSeconds, Nanos: int32(math.MaxInt64 - 1e9*maxGoSeconds)}, wantDur: time.Duration(math.MaxInt64)}, {in: &durpb.Duration{Seconds: minGoSeconds - 1, Nanos: int32(math.MinInt64 - 1e9*minGoSeconds)}, wantDur: time.Duration(math.MinInt64)}, {in: &durpb.Duration{Seconds: maxGoSeconds + 1, Nanos: int32(math.MaxInt64 - 1e9*maxGoSeconds)}, wantDur: time.Duration(math.MaxInt64)}, {in: &durpb.Duration{Seconds: minGoSeconds, Nanos: int32(math.MinInt64-1e9*minGoSeconds) - 1}, wantDur: time.Duration(math.MinInt64)}, {in: &durpb.Duration{Seconds: maxGoSeconds, Nanos: int32(math.MaxInt64-1e9*maxGoSeconds) + 1}, wantDur: time.Duration(math.MaxInt64)}, {in: &durpb.Duration{Seconds: -123, Nanos: +456}, wantDur: -123*time.Second + 456*time.Nanosecond, wantErr: textError("duration (seconds:-123 nanos:456) has seconds and nanos with different signs")}, {in: &durpb.Duration{Seconds: +123, Nanos: -456}, wantDur: +123*time.Second - 456*time.Nanosecond, wantErr: textError("duration (seconds:123 nanos:-456) has seconds and nanos with different signs")}, {in: &durpb.Duration{Seconds: math.MinInt64}, wantDur: time.Duration(math.MinInt64), wantErr: textError("duration (seconds:-9223372036854775808) exceeds -10000 years")}, {in: &durpb.Duration{Seconds: math.MaxInt64}, wantDur: time.Duration(math.MaxInt64), wantErr: textError("duration (seconds:9223372036854775807) exceeds +10000 years")}, {in: &durpb.Duration{Seconds: -absSeconds, Nanos: -(1e9 - 1)}, wantDur: time.Duration(math.MinInt64)}, {in: &durpb.Duration{Seconds: +absSeconds, Nanos: +(1e9 - 1)}, wantDur: time.Duration(math.MaxInt64)}, {in: &durpb.Duration{Seconds: -absSeconds - 1, Nanos: 0}, wantDur: time.Duration(math.MinInt64), wantErr: textError("duration (seconds:-315576000001) exceeds -10000 years")}, {in: &durpb.Duration{Seconds: +absSeconds + 1, Nanos: 0}, wantDur: time.Duration(math.MaxInt64), wantErr: textError("duration (seconds:315576000001) exceeds +10000 years")}, } for _, tt := range tests { gotDur := tt.in.AsDuration() if diff := cmp.Diff(tt.wantDur, gotDur); diff != "" { t.Errorf("AsDuration(%v) mismatch (-want +got):\n%s", tt.in, diff) } gotErr := tt.in.CheckValid() if diff := cmp.Diff(tt.wantErr, gotErr, cmpopts.EquateErrors()); diff != "" { t.Errorf("CheckValid(%v) mismatch (-want +got):\n%s", tt.in, diff) } } } type textError string func (e textError) Error() string { return string(e) } func (e textError) Is(err error) bool { return err != nil && strings.Contains(err.Error(), e.Error()) } golang-google-protobuf-1.27.1/types/known/emptypb/000077500000000000000000000000001411250152500221355ustar00rootroot00000000000000golang-google-protobuf-1.27.1/types/known/emptypb/empty.pb.go000066400000000000000000000147441411250152500242340ustar00rootroot00000000000000// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Code generated by protoc-gen-go. DO NOT EDIT. // source: google/protobuf/empty.proto package emptypb import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) // A generic empty message that you can re-use to avoid defining duplicated // empty messages in your APIs. A typical example is to use it as the request // or the response type of an API method. For instance: // // service Foo { // rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); // } // // The JSON representation for `Empty` is empty JSON object `{}`. type Empty struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Empty) Reset() { *x = Empty{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_empty_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Empty) String() string { return protoimpl.X.MessageStringOf(x) } func (*Empty) ProtoMessage() {} func (x *Empty) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_empty_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Empty.ProtoReflect.Descriptor instead. func (*Empty) Descriptor() ([]byte, []int) { return file_google_protobuf_empty_proto_rawDescGZIP(), []int{0} } var File_google_protobuf_empty_proto protoreflect.FileDescriptor var file_google_protobuf_empty_proto_rawDesc = []byte{ 0x0a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x7d, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x0a, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_google_protobuf_empty_proto_rawDescOnce sync.Once file_google_protobuf_empty_proto_rawDescData = file_google_protobuf_empty_proto_rawDesc ) func file_google_protobuf_empty_proto_rawDescGZIP() []byte { file_google_protobuf_empty_proto_rawDescOnce.Do(func() { file_google_protobuf_empty_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_empty_proto_rawDescData) }) return file_google_protobuf_empty_proto_rawDescData } var file_google_protobuf_empty_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_google_protobuf_empty_proto_goTypes = []interface{}{ (*Empty)(nil), // 0: google.protobuf.Empty } var file_google_protobuf_empty_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_google_protobuf_empty_proto_init() } func file_google_protobuf_empty_proto_init() { if File_google_protobuf_empty_proto != nil { return } if !protoimpl.UnsafeEnabled { file_google_protobuf_empty_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Empty); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_protobuf_empty_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_google_protobuf_empty_proto_goTypes, DependencyIndexes: file_google_protobuf_empty_proto_depIdxs, MessageInfos: file_google_protobuf_empty_proto_msgTypes, }.Build() File_google_protobuf_empty_proto = out.File file_google_protobuf_empty_proto_rawDesc = nil file_google_protobuf_empty_proto_goTypes = nil file_google_protobuf_empty_proto_depIdxs = nil } golang-google-protobuf-1.27.1/types/known/fieldmaskpb/000077500000000000000000000000001411250152500227365ustar00rootroot00000000000000golang-google-protobuf-1.27.1/types/known/fieldmaskpb/field_mask.pb.go000066400000000000000000000462201411250152500257670ustar00rootroot00000000000000// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Code generated by protoc-gen-go. DO NOT EDIT. // source: google/protobuf/field_mask.proto // Package fieldmaskpb contains generated types for google/protobuf/field_mask.proto. // // The FieldMask message represents a set of symbolic field paths. // The paths are specific to some target message type, // which is not stored within the FieldMask message itself. // // // Constructing a FieldMask // // The New function is used construct a FieldMask: // // var messageType *descriptorpb.DescriptorProto // fm, err := fieldmaskpb.New(messageType, "field.name", "field.number") // if err != nil { // ... // handle error // } // ... // make use of fm // // The "field.name" and "field.number" paths are valid paths according to the // google.protobuf.DescriptorProto message. Use of a path that does not correlate // to valid fields reachable from DescriptorProto would result in an error. // // Once a FieldMask message has been constructed, // the Append method can be used to insert additional paths to the path set: // // var messageType *descriptorpb.DescriptorProto // if err := fm.Append(messageType, "options"); err != nil { // ... // handle error // } // // // Type checking a FieldMask // // In order to verify that a FieldMask represents a set of fields that are // reachable from some target message type, use the IsValid method: // // var messageType *descriptorpb.DescriptorProto // if fm.IsValid(messageType) { // ... // make use of fm // } // // IsValid needs to be passed the target message type as an input since the // FieldMask message itself does not store the message type that the set of paths // are for. package fieldmaskpb import ( proto "google.golang.org/protobuf/proto" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sort "sort" strings "strings" sync "sync" ) // `FieldMask` represents a set of symbolic field paths, for example: // // paths: "f.a" // paths: "f.b.d" // // Here `f` represents a field in some root message, `a` and `b` // fields in the message found in `f`, and `d` a field found in the // message in `f.b`. // // Field masks are used to specify a subset of fields that should be // returned by a get operation or modified by an update operation. // Field masks also have a custom JSON encoding (see below). // // # Field Masks in Projections // // When used in the context of a projection, a response message or // sub-message is filtered by the API to only contain those fields as // specified in the mask. For example, if the mask in the previous // example is applied to a response message as follows: // // f { // a : 22 // b { // d : 1 // x : 2 // } // y : 13 // } // z: 8 // // The result will not contain specific values for fields x,y and z // (their value will be set to the default, and omitted in proto text // output): // // // f { // a : 22 // b { // d : 1 // } // } // // A repeated field is not allowed except at the last position of a // paths string. // // If a FieldMask object is not present in a get operation, the // operation applies to all fields (as if a FieldMask of all fields // had been specified). // // Note that a field mask does not necessarily apply to the // top-level response message. In case of a REST get operation, the // field mask applies directly to the response, but in case of a REST // list operation, the mask instead applies to each individual message // in the returned resource list. In case of a REST custom method, // other definitions may be used. Where the mask applies will be // clearly documented together with its declaration in the API. In // any case, the effect on the returned resource/resources is required // behavior for APIs. // // # Field Masks in Update Operations // // A field mask in update operations specifies which fields of the // targeted resource are going to be updated. The API is required // to only change the values of the fields as specified in the mask // and leave the others untouched. If a resource is passed in to // describe the updated values, the API ignores the values of all // fields not covered by the mask. // // If a repeated field is specified for an update operation, new values will // be appended to the existing repeated field in the target resource. Note that // a repeated field is only allowed in the last position of a `paths` string. // // If a sub-message is specified in the last position of the field mask for an // update operation, then new value will be merged into the existing sub-message // in the target resource. // // For example, given the target message: // // f { // b { // d: 1 // x: 2 // } // c: [1] // } // // And an update message: // // f { // b { // d: 10 // } // c: [2] // } // // then if the field mask is: // // paths: ["f.b", "f.c"] // // then the result will be: // // f { // b { // d: 10 // x: 2 // } // c: [1, 2] // } // // An implementation may provide options to override this default behavior for // repeated and message fields. // // In order to reset a field's value to the default, the field must // be in the mask and set to the default value in the provided resource. // Hence, in order to reset all fields of a resource, provide a default // instance of the resource and set all fields in the mask, or do // not provide a mask as described below. // // If a field mask is not present on update, the operation applies to // all fields (as if a field mask of all fields has been specified). // Note that in the presence of schema evolution, this may mean that // fields the client does not know and has therefore not filled into // the request will be reset to their default. If this is unwanted // behavior, a specific service may require a client to always specify // a field mask, producing an error if not. // // As with get operations, the location of the resource which // describes the updated values in the request message depends on the // operation kind. In any case, the effect of the field mask is // required to be honored by the API. // // ## Considerations for HTTP REST // // The HTTP kind of an update operation which uses a field mask must // be set to PATCH instead of PUT in order to satisfy HTTP semantics // (PUT must only be used for full updates). // // # JSON Encoding of Field Masks // // In JSON, a field mask is encoded as a single string where paths are // separated by a comma. Fields name in each path are converted // to/from lower-camel naming conventions. // // As an example, consider the following message declarations: // // message Profile { // User user = 1; // Photo photo = 2; // } // message User { // string display_name = 1; // string address = 2; // } // // In proto a field mask for `Profile` may look as such: // // mask { // paths: "user.display_name" // paths: "photo" // } // // In JSON, the same mask is represented as below: // // { // mask: "user.displayName,photo" // } // // # Field Masks and Oneof Fields // // Field masks treat fields in oneofs just as regular fields. Consider the // following message: // // message SampleMessage { // oneof test_oneof { // string name = 4; // SubMessage sub_message = 9; // } // } // // The field mask can be: // // mask { // paths: "name" // } // // Or: // // mask { // paths: "sub_message" // } // // Note that oneof type names ("test_oneof" in this case) cannot be used in // paths. // // ## Field Mask Verification // // The implementation of any API method which has a FieldMask type field in the // request should verify the included field paths, and return an // `INVALID_ARGUMENT` error if any path is unmappable. type FieldMask struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The set of field mask paths. Paths []string `protobuf:"bytes,1,rep,name=paths,proto3" json:"paths,omitempty"` } // New constructs a field mask from a list of paths and verifies that // each one is valid according to the specified message type. func New(m proto.Message, paths ...string) (*FieldMask, error) { x := new(FieldMask) return x, x.Append(m, paths...) } // Union returns the union of all the paths in the input field masks. func Union(mx *FieldMask, my *FieldMask, ms ...*FieldMask) *FieldMask { var out []string out = append(out, mx.GetPaths()...) out = append(out, my.GetPaths()...) for _, m := range ms { out = append(out, m.GetPaths()...) } return &FieldMask{Paths: normalizePaths(out)} } // Intersect returns the intersection of all the paths in the input field masks. func Intersect(mx *FieldMask, my *FieldMask, ms ...*FieldMask) *FieldMask { var ss1, ss2 []string // reused buffers for performance intersect := func(out, in []string) []string { ss1 = normalizePaths(append(ss1[:0], in...)) ss2 = normalizePaths(append(ss2[:0], out...)) out = out[:0] for i1, i2 := 0, 0; i1 < len(ss1) && i2 < len(ss2); { switch s1, s2 := ss1[i1], ss2[i2]; { case hasPathPrefix(s1, s2): out = append(out, s1) i1++ case hasPathPrefix(s2, s1): out = append(out, s2) i2++ case lessPath(s1, s2): i1++ case lessPath(s2, s1): i2++ } } return out } out := Union(mx, my, ms...).GetPaths() out = intersect(out, mx.GetPaths()) out = intersect(out, my.GetPaths()) for _, m := range ms { out = intersect(out, m.GetPaths()) } return &FieldMask{Paths: normalizePaths(out)} } // IsValid reports whether all the paths are syntactically valid and // refer to known fields in the specified message type. // It reports false for a nil FieldMask. func (x *FieldMask) IsValid(m proto.Message) bool { paths := x.GetPaths() return x != nil && numValidPaths(m, paths) == len(paths) } // Append appends a list of paths to the mask and verifies that each one // is valid according to the specified message type. // An invalid path is not appended and breaks insertion of subsequent paths. func (x *FieldMask) Append(m proto.Message, paths ...string) error { numValid := numValidPaths(m, paths) x.Paths = append(x.Paths, paths[:numValid]...) paths = paths[numValid:] if len(paths) > 0 { name := m.ProtoReflect().Descriptor().FullName() return protoimpl.X.NewError("invalid path %q for message %q", paths[0], name) } return nil } func numValidPaths(m proto.Message, paths []string) int { md0 := m.ProtoReflect().Descriptor() for i, path := range paths { md := md0 if !rangeFields(path, func(field string) bool { // Search the field within the message. if md == nil { return false // not within a message } fd := md.Fields().ByName(protoreflect.Name(field)) // The real field name of a group is the message name. if fd == nil { gd := md.Fields().ByName(protoreflect.Name(strings.ToLower(field))) if gd != nil && gd.Kind() == protoreflect.GroupKind && string(gd.Message().Name()) == field { fd = gd } } else if fd.Kind() == protoreflect.GroupKind && string(fd.Message().Name()) != field { fd = nil } if fd == nil { return false // message has does not have this field } // Identify the next message to search within. md = fd.Message() // may be nil // Repeated fields are only allowed at the last postion. if fd.IsList() || fd.IsMap() { md = nil } return true }) { return i } } return len(paths) } // Normalize converts the mask to its canonical form where all paths are sorted // and redundant paths are removed. func (x *FieldMask) Normalize() { x.Paths = normalizePaths(x.Paths) } func normalizePaths(paths []string) []string { sort.Slice(paths, func(i, j int) bool { return lessPath(paths[i], paths[j]) }) // Elide any path that is a prefix match on the previous. out := paths[:0] for _, path := range paths { if len(out) > 0 && hasPathPrefix(path, out[len(out)-1]) { continue } out = append(out, path) } return out } // hasPathPrefix is like strings.HasPrefix, but further checks for either // an exact matche or that the prefix is delimited by a dot. func hasPathPrefix(path, prefix string) bool { return strings.HasPrefix(path, prefix) && (len(path) == len(prefix) || path[len(prefix)] == '.') } // lessPath is a lexicographical comparison where dot is specially treated // as the smallest symbol. func lessPath(x, y string) bool { for i := 0; i < len(x) && i < len(y); i++ { if x[i] != y[i] { return (x[i] - '.') < (y[i] - '.') } } return len(x) < len(y) } // rangeFields is like strings.Split(path, "."), but avoids allocations by // iterating over each field in place and calling a iterator function. func rangeFields(path string, f func(field string) bool) bool { for { var field string if i := strings.IndexByte(path, '.'); i >= 0 { field, path = path[:i], path[i:] } else { field, path = path, "" } if !f(field) { return false } if len(path) == 0 { return true } path = strings.TrimPrefix(path, ".") } } func (x *FieldMask) Reset() { *x = FieldMask{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_field_mask_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FieldMask) String() string { return protoimpl.X.MessageStringOf(x) } func (*FieldMask) ProtoMessage() {} func (x *FieldMask) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_field_mask_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FieldMask.ProtoReflect.Descriptor instead. func (*FieldMask) Descriptor() ([]byte, []int) { return file_google_protobuf_field_mask_proto_rawDescGZIP(), []int{0} } func (x *FieldMask) GetPaths() []string { if x != nil { return x.Paths } return nil } var File_google_protobuf_field_mask_proto protoreflect.FileDescriptor var file_google_protobuf_field_mask_proto_rawDesc = []byte{ 0x0a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x22, 0x21, 0x0a, 0x09, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x42, 0x85, 0x01, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x0e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x6d, 0x61, 0x73, 0x6b, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_google_protobuf_field_mask_proto_rawDescOnce sync.Once file_google_protobuf_field_mask_proto_rawDescData = file_google_protobuf_field_mask_proto_rawDesc ) func file_google_protobuf_field_mask_proto_rawDescGZIP() []byte { file_google_protobuf_field_mask_proto_rawDescOnce.Do(func() { file_google_protobuf_field_mask_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_field_mask_proto_rawDescData) }) return file_google_protobuf_field_mask_proto_rawDescData } var file_google_protobuf_field_mask_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_google_protobuf_field_mask_proto_goTypes = []interface{}{ (*FieldMask)(nil), // 0: google.protobuf.FieldMask } var file_google_protobuf_field_mask_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_google_protobuf_field_mask_proto_init() } func file_google_protobuf_field_mask_proto_init() { if File_google_protobuf_field_mask_proto != nil { return } if !protoimpl.UnsafeEnabled { file_google_protobuf_field_mask_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FieldMask); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_protobuf_field_mask_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_google_protobuf_field_mask_proto_goTypes, DependencyIndexes: file_google_protobuf_field_mask_proto_depIdxs, MessageInfos: file_google_protobuf_field_mask_proto_msgTypes, }.Build() File_google_protobuf_field_mask_proto = out.File file_google_protobuf_field_mask_proto_rawDesc = nil file_google_protobuf_field_mask_proto_goTypes = nil file_google_protobuf_field_mask_proto_depIdxs = nil } golang-google-protobuf-1.27.1/types/known/fieldmaskpb/field_mask_test.go000066400000000000000000000224571411250152500264340ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package fieldmaskpb_test import ( "testing" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "google.golang.org/protobuf/proto" testpb "google.golang.org/protobuf/internal/testprotos/test" fmpb "google.golang.org/protobuf/types/known/fieldmaskpb" ) func TestAppend(t *testing.T) { tests := []struct { inMessage proto.Message inPaths []string wantPaths []string wantError error }{{ inMessage: (*fmpb.FieldMask)(nil), inPaths: []string{}, wantPaths: []string{}, }, { inMessage: (*fmpb.FieldMask)(nil), inPaths: []string{"paths", "paths"}, wantPaths: []string{"paths", "paths"}, }, { inMessage: (*fmpb.FieldMask)(nil), inPaths: []string{"paths", "", "paths"}, wantPaths: []string{"paths"}, wantError: cmpopts.AnyError, }, { inMessage: (*testpb.TestAllTypes)(nil), inPaths: []string{"optional_int32", "OptionalGroup.optional_nested_message", "map_uint32_uint32", "map_string_nested_message.corecursive", "oneof_bool"}, wantPaths: []string{"optional_int32", "OptionalGroup.optional_nested_message", "map_uint32_uint32"}, wantError: cmpopts.AnyError, }, { inMessage: (*testpb.TestAllTypes)(nil), inPaths: []string{"optional_nested_message", "optional_nested_message.corecursive", "optional_nested_message.corecursive.optional_nested_message", "optional_nested_message.corecursive.optional_nested_message.corecursive"}, wantPaths: []string{"optional_nested_message", "optional_nested_message.corecursive", "optional_nested_message.corecursive.optional_nested_message", "optional_nested_message.corecursive.optional_nested_message.corecursive"}, }, { inMessage: (*testpb.TestAllTypes)(nil), inPaths: []string{"optional_int32", "optional_nested_message.corecursive.optional_int64", "optional_nested_message.corecursive.", "optional_int64"}, wantPaths: []string{"optional_int32", "optional_nested_message.corecursive.optional_int64"}, wantError: cmpopts.AnyError, }, { inMessage: (*testpb.TestAllTypes)(nil), inPaths: []string{"optional_int32", "optional_nested_message.corecursive.oneof_uint32", "optional_nested_message.oneof_field", "optional_int64"}, wantPaths: []string{"optional_int32", "optional_nested_message.corecursive.oneof_uint32"}, wantError: cmpopts.AnyError, }} for _, tt := range tests { t.Run("", func(t *testing.T) { var mask fmpb.FieldMask gotError := mask.Append(tt.inMessage, tt.inPaths...) gotPaths := mask.GetPaths() if diff := cmp.Diff(tt.wantPaths, gotPaths, cmpopts.EquateEmpty()); diff != "" { t.Errorf("Append() paths mismatch (-want +got):\n%s", diff) } if diff := cmp.Diff(tt.wantError, gotError, cmpopts.EquateErrors()); diff != "" { t.Errorf("Append() error mismatch (-want +got):\n%s", diff) } }) } } func TestCombine(t *testing.T) { tests := []struct { in [][]string wantUnion []string wantIntersect []string }{{ in: [][]string{ {}, {}, }, wantUnion: []string{}, wantIntersect: []string{}, }, { in: [][]string{ {"a"}, {}, }, wantUnion: []string{"a"}, wantIntersect: []string{}, }, { in: [][]string{ {"a"}, {"a"}, }, wantUnion: []string{"a"}, wantIntersect: []string{"a"}, }, { in: [][]string{ {"a"}, {"b"}, {"c"}, }, wantUnion: []string{"a", "b", "c"}, wantIntersect: []string{}, }, { in: [][]string{ {"a", "b"}, {"b.b"}, {"b"}, {"b", "a.A"}, {"b", "c", "c.a", "c.b"}, }, wantUnion: []string{"a", "b", "c"}, wantIntersect: []string{"b.b"}, }, { in: [][]string{ {"a.b", "a.c.d"}, {"a"}, }, wantUnion: []string{"a"}, wantIntersect: []string{"a.b", "a.c.d"}, }, { in: [][]string{ {}, {"a.b", "a.c", "d"}, }, wantUnion: []string{"a.b", "a.c", "d"}, wantIntersect: []string{}, }} for _, tt := range tests { t.Run("", func(t *testing.T) { var masks []*fmpb.FieldMask for _, paths := range tt.in { masks = append(masks, &fmpb.FieldMask{Paths: paths}) } union := fmpb.Union(masks[0], masks[1], masks[2:]...) gotUnion := union.GetPaths() if diff := cmp.Diff(tt.wantUnion, gotUnion, cmpopts.EquateEmpty()); diff != "" { t.Errorf("Union() mismatch (-want +got):\n%s", diff) } intersect := fmpb.Intersect(masks[0], masks[1], masks[2:]...) gotIntersect := intersect.GetPaths() if diff := cmp.Diff(tt.wantIntersect, gotIntersect, cmpopts.EquateEmpty()); diff != "" { t.Errorf("Intersect() mismatch (-want +got):\n%s", diff) } }) } } func TestNormalize(t *testing.T) { tests := []struct { in []string want []string }{{ in: []string{}, want: []string{}, }, { in: []string{"a"}, want: []string{"a"}, }, { in: []string{"foo", "foo.bar", "foo.baz"}, want: []string{"foo"}, }, { in: []string{"foo.bar", "foo.baz"}, want: []string{"foo.bar", "foo.baz"}, }, { in: []string{"", "a.", ".b", "a.b", ".", "", "a.", ".b", "a.b", "."}, want: []string{"", "a.", "a.b"}, }, { in: []string{"e.a", "e.b", "e.c", "e.d", "e.f", "e.g", "e.b.a", "e$c", "e.b.c"}, want: []string{"e.a", "e.b", "e.c", "e.d", "e.f", "e.g", "e$c"}, }, { in: []string{"a", "aa", "aaa", "a$", "AAA", "aA.a", "a.a", "a", "aa", "aaa", "a$", "AAA", "aA.a"}, want: []string{"AAA", "a", "aA.a", "aa", "aaa", "a$"}, }, { in: []string{"a.b", "aa.bb.cc", ".", "a$b", "aa", "a.", "a", "b.c.d", ".a", "", "a$", "a$", "a.b", "a", "a.bb", ""}, want: []string{"", "a", "aa", "a$", "a$b", "b.c.d"}, }} for _, tt := range tests { t.Run("", func(t *testing.T) { mask := &fmpb.FieldMask{ Paths: append([]string(nil), tt.in...), } mask.Normalize() got := mask.GetPaths() if diff := cmp.Diff(tt.want, got, cmpopts.EquateEmpty()); diff != "" { t.Errorf("Normalize() mismatch (-want +got):\n%s", diff) } }) } } func TestIsValid(t *testing.T) { tests := []struct { message proto.Message paths []string want bool }{{ message: (*testpb.TestAllTypes)(nil), paths: []string{"no_such_field"}, want: false, }, { message: (*testpb.TestAllTypes)(nil), paths: []string{""}, want: false, }, { message: (*testpb.TestAllTypes)(nil), paths: []string{ "optional_int32", "optional_int32", "optional_int64", "optional_uint32", "optional_uint64", "optional_sint32", "optional_sint64", "optional_fixed32", "optional_fixed64", "optional_sfixed32", "optional_sfixed64", "optional_float", "optional_double", "optional_bool", "optional_string", "optional_bytes", "OptionalGroup", "optional_nested_message", "optional_foreign_message", "optional_import_message", "optional_nested_enum", "optional_foreign_enum", "optional_import_enum", "repeated_int32", "repeated_int64", "repeated_uint32", "repeated_uint64", "repeated_sint32", "repeated_sint64", "repeated_fixed32", "repeated_fixed64", "repeated_sfixed32", "repeated_sfixed64", "repeated_float", "repeated_double", "repeated_bool", "repeated_string", "repeated_bytes", "RepeatedGroup", "repeated_nested_message", "repeated_foreign_message", "repeated_importmessage", "repeated_nested_enum", "repeated_foreign_enum", "repeated_importenum", "map_int32_int32", "map_int64_int64", "map_uint32_uint32", "map_uint64_uint64", "map_sint32_sint32", "map_sint64_sint64", "map_fixed32_fixed32", "map_fixed64_fixed64", "map_sfixed32_sfixed32", "map_sfixed64_sfixed64", "map_int32_float", "map_int32_double", "map_bool_bool", "map_string_string", "map_string_bytes", "map_string_nested_message", "map_string_nested_enum", "oneof_uint32", "oneof_nested_message", "oneof_string", "oneof_bytes", "oneof_bool", "oneof_uint64", "oneof_float", "oneof_double", "oneof_enum", "OneofGroup", }, want: true, }, { message: (*testpb.TestAllTypes)(nil), paths: []string{ "optional_nested_message.a", "optional_nested_message.corecursive", "optional_nested_message.corecursive.optional_int32", "optional_nested_message.corecursive.optional_nested_message.corecursive.optional_nested_message.a", "OptionalGroup.a", "OptionalGroup.optional_nested_message", "OptionalGroup.optional_nested_message.corecursive", "oneof_nested_message.a", "oneof_nested_message.corecursive", }, want: true, }, { message: (*testpb.TestAllTypes)(nil), paths: []string{"repeated_nested_message.a"}, want: false, }, { message: (*testpb.TestAllTypes)(nil), paths: []string{"repeated_nested_message[0]"}, want: false, }, { message: (*testpb.TestAllTypes)(nil), paths: []string{"repeated_nested_message[0].a"}, want: false, }, { message: (*testpb.TestAllTypes)(nil), paths: []string{"map_string_nested_message.a"}, want: false, }, { message: (*testpb.TestAllTypes)(nil), paths: []string{`map_string_nested_message["key"]`}, want: false, }, { message: (*testpb.TestAllExtensions)(nil), paths: []string{"nested_string_extension"}, want: false, }} for _, tt := range tests { t.Run("", func(t *testing.T) { mask := &fmpb.FieldMask{Paths: tt.paths} got := mask.IsValid(tt.message) if got != tt.want { t.Errorf("IsValid() returns %v want %v", got, tt.want) } }) } } golang-google-protobuf-1.27.1/types/known/sourcecontextpb/000077500000000000000000000000001411250152500237045ustar00rootroot00000000000000golang-google-protobuf-1.27.1/types/known/sourcecontextpb/source_context.pb.go000066400000000000000000000164271411250152500277110ustar00rootroot00000000000000// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Code generated by protoc-gen-go. DO NOT EDIT. // source: google/protobuf/source_context.proto package sourcecontextpb import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) // `SourceContext` represents information about the source of a // protobuf element, like the file in which it is defined. type SourceContext struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The path-qualified name of the .proto file that contained the associated // protobuf element. For example: `"google/protobuf/source_context.proto"`. FileName string `protobuf:"bytes,1,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"` } func (x *SourceContext) Reset() { *x = SourceContext{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_source_context_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SourceContext) String() string { return protoimpl.X.MessageStringOf(x) } func (*SourceContext) ProtoMessage() {} func (x *SourceContext) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_source_context_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SourceContext.ProtoReflect.Descriptor instead. func (*SourceContext) Descriptor() ([]byte, []int) { return file_google_protobuf_source_context_proto_rawDescGZIP(), []int{0} } func (x *SourceContext) GetFileName() string { if x != nil { return x.FileName } return "" } var File_google_protobuf_source_context_proto protoreflect.FileDescriptor var file_google_protobuf_source_context_proto_rawDesc = []byte{ 0x0a, 0x24, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x22, 0x2c, 0x0a, 0x0d, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x8a, 0x01, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x12, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_google_protobuf_source_context_proto_rawDescOnce sync.Once file_google_protobuf_source_context_proto_rawDescData = file_google_protobuf_source_context_proto_rawDesc ) func file_google_protobuf_source_context_proto_rawDescGZIP() []byte { file_google_protobuf_source_context_proto_rawDescOnce.Do(func() { file_google_protobuf_source_context_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_source_context_proto_rawDescData) }) return file_google_protobuf_source_context_proto_rawDescData } var file_google_protobuf_source_context_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_google_protobuf_source_context_proto_goTypes = []interface{}{ (*SourceContext)(nil), // 0: google.protobuf.SourceContext } var file_google_protobuf_source_context_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_google_protobuf_source_context_proto_init() } func file_google_protobuf_source_context_proto_init() { if File_google_protobuf_source_context_proto != nil { return } if !protoimpl.UnsafeEnabled { file_google_protobuf_source_context_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SourceContext); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_protobuf_source_context_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_google_protobuf_source_context_proto_goTypes, DependencyIndexes: file_google_protobuf_source_context_proto_depIdxs, MessageInfos: file_google_protobuf_source_context_proto_msgTypes, }.Build() File_google_protobuf_source_context_proto = out.File file_google_protobuf_source_context_proto_rawDesc = nil file_google_protobuf_source_context_proto_goTypes = nil file_google_protobuf_source_context_proto_depIdxs = nil } golang-google-protobuf-1.27.1/types/known/structpb/000077500000000000000000000000001411250152500223235ustar00rootroot00000000000000golang-google-protobuf-1.27.1/types/known/structpb/struct.pb.go000066400000000000000000000660071411250152500246070ustar00rootroot00000000000000// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Code generated by protoc-gen-go. DO NOT EDIT. // source: google/protobuf/struct.proto // Package structpb contains generated types for google/protobuf/struct.proto. // // The messages (i.e., Value, Struct, and ListValue) defined in struct.proto are // used to represent arbitrary JSON. The Value message represents a JSON value, // the Struct message represents a JSON object, and the ListValue message // represents a JSON array. See https://json.org for more information. // // The Value, Struct, and ListValue types have generated MarshalJSON and // UnmarshalJSON methods such that they serialize JSON equivalent to what the // messages themselves represent. Use of these types with the // "google.golang.org/protobuf/encoding/protojson" package // ensures that they will be serialized as their JSON equivalent. // // // Conversion to and from a Go interface // // The standard Go "encoding/json" package has functionality to serialize // arbitrary types to a large degree. The Value.AsInterface, Struct.AsMap, and // ListValue.AsSlice methods can convert the protobuf message representation into // a form represented by interface{}, map[string]interface{}, and []interface{}. // This form can be used with other packages that operate on such data structures // and also directly with the standard json package. // // In order to convert the interface{}, map[string]interface{}, and []interface{} // forms back as Value, Struct, and ListValue messages, use the NewStruct, // NewList, and NewValue constructor functions. // // // Example usage // // Consider the following example JSON object: // // { // "firstName": "John", // "lastName": "Smith", // "isAlive": true, // "age": 27, // "address": { // "streetAddress": "21 2nd Street", // "city": "New York", // "state": "NY", // "postalCode": "10021-3100" // }, // "phoneNumbers": [ // { // "type": "home", // "number": "212 555-1234" // }, // { // "type": "office", // "number": "646 555-4567" // } // ], // "children": [], // "spouse": null // } // // To construct a Value message representing the above JSON object: // // m, err := structpb.NewValue(map[string]interface{}{ // "firstName": "John", // "lastName": "Smith", // "isAlive": true, // "age": 27, // "address": map[string]interface{}{ // "streetAddress": "21 2nd Street", // "city": "New York", // "state": "NY", // "postalCode": "10021-3100", // }, // "phoneNumbers": []interface{}{ // map[string]interface{}{ // "type": "home", // "number": "212 555-1234", // }, // map[string]interface{}{ // "type": "office", // "number": "646 555-4567", // }, // }, // "children": []interface{}{}, // "spouse": nil, // }) // if err != nil { // ... // handle error // } // ... // make use of m as a *structpb.Value // package structpb import ( base64 "encoding/base64" protojson "google.golang.org/protobuf/encoding/protojson" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" math "math" reflect "reflect" sync "sync" utf8 "unicode/utf8" ) // `NullValue` is a singleton enumeration to represent the null value for the // `Value` type union. // // The JSON representation for `NullValue` is JSON `null`. type NullValue int32 const ( // Null value. NullValue_NULL_VALUE NullValue = 0 ) // Enum value maps for NullValue. var ( NullValue_name = map[int32]string{ 0: "NULL_VALUE", } NullValue_value = map[string]int32{ "NULL_VALUE": 0, } ) func (x NullValue) Enum() *NullValue { p := new(NullValue) *p = x return p } func (x NullValue) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (NullValue) Descriptor() protoreflect.EnumDescriptor { return file_google_protobuf_struct_proto_enumTypes[0].Descriptor() } func (NullValue) Type() protoreflect.EnumType { return &file_google_protobuf_struct_proto_enumTypes[0] } func (x NullValue) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use NullValue.Descriptor instead. func (NullValue) EnumDescriptor() ([]byte, []int) { return file_google_protobuf_struct_proto_rawDescGZIP(), []int{0} } // `Struct` represents a structured data value, consisting of fields // which map to dynamically typed values. In some languages, `Struct` // might be supported by a native representation. For example, in // scripting languages like JS a struct is represented as an // object. The details of that representation are described together // with the proto support for the language. // // The JSON representation for `Struct` is JSON object. type Struct struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Unordered map of dynamically typed values. Fields map[string]*Value `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } // NewStruct constructs a Struct from a general-purpose Go map. // The map keys must be valid UTF-8. // The map values are converted using NewValue. func NewStruct(v map[string]interface{}) (*Struct, error) { x := &Struct{Fields: make(map[string]*Value, len(v))} for k, v := range v { if !utf8.ValidString(k) { return nil, protoimpl.X.NewError("invalid UTF-8 in string: %q", k) } var err error x.Fields[k], err = NewValue(v) if err != nil { return nil, err } } return x, nil } // AsMap converts x to a general-purpose Go map. // The map values are converted by calling Value.AsInterface. func (x *Struct) AsMap() map[string]interface{} { vs := make(map[string]interface{}) for k, v := range x.GetFields() { vs[k] = v.AsInterface() } return vs } func (x *Struct) MarshalJSON() ([]byte, error) { return protojson.Marshal(x) } func (x *Struct) UnmarshalJSON(b []byte) error { return protojson.Unmarshal(b, x) } func (x *Struct) Reset() { *x = Struct{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_struct_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Struct) String() string { return protoimpl.X.MessageStringOf(x) } func (*Struct) ProtoMessage() {} func (x *Struct) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_struct_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Struct.ProtoReflect.Descriptor instead. func (*Struct) Descriptor() ([]byte, []int) { return file_google_protobuf_struct_proto_rawDescGZIP(), []int{0} } func (x *Struct) GetFields() map[string]*Value { if x != nil { return x.Fields } return nil } // `Value` represents a dynamically typed value which can be either // null, a number, a string, a boolean, a recursive struct value, or a // list of values. A producer of value is expected to set one of that // variants, absence of any variant indicates an error. // // The JSON representation for `Value` is JSON value. type Value struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The kind of value. // // Types that are assignable to Kind: // *Value_NullValue // *Value_NumberValue // *Value_StringValue // *Value_BoolValue // *Value_StructValue // *Value_ListValue Kind isValue_Kind `protobuf_oneof:"kind"` } // NewValue constructs a Value from a general-purpose Go interface. // // ╔════════════════════════╤════════════════════════════════════════════╗ // ║ Go type │ Conversion ║ // ╠════════════════════════╪════════════════════════════════════════════╣ // ║ nil │ stored as NullValue ║ // ║ bool │ stored as BoolValue ║ // ║ int, int32, int64 │ stored as NumberValue ║ // ║ uint, uint32, uint64 │ stored as NumberValue ║ // ║ float32, float64 │ stored as NumberValue ║ // ║ string │ stored as StringValue; must be valid UTF-8 ║ // ║ []byte │ stored as StringValue; base64-encoded ║ // ║ map[string]interface{} │ stored as StructValue ║ // ║ []interface{} │ stored as ListValue ║ // ╚════════════════════════╧════════════════════════════════════════════╝ // // When converting an int64 or uint64 to a NumberValue, numeric precision loss // is possible since they are stored as a float64. func NewValue(v interface{}) (*Value, error) { switch v := v.(type) { case nil: return NewNullValue(), nil case bool: return NewBoolValue(v), nil case int: return NewNumberValue(float64(v)), nil case int32: return NewNumberValue(float64(v)), nil case int64: return NewNumberValue(float64(v)), nil case uint: return NewNumberValue(float64(v)), nil case uint32: return NewNumberValue(float64(v)), nil case uint64: return NewNumberValue(float64(v)), nil case float32: return NewNumberValue(float64(v)), nil case float64: return NewNumberValue(float64(v)), nil case string: if !utf8.ValidString(v) { return nil, protoimpl.X.NewError("invalid UTF-8 in string: %q", v) } return NewStringValue(v), nil case []byte: s := base64.StdEncoding.EncodeToString(v) return NewStringValue(s), nil case map[string]interface{}: v2, err := NewStruct(v) if err != nil { return nil, err } return NewStructValue(v2), nil case []interface{}: v2, err := NewList(v) if err != nil { return nil, err } return NewListValue(v2), nil default: return nil, protoimpl.X.NewError("invalid type: %T", v) } } // NewNullValue constructs a new null Value. func NewNullValue() *Value { return &Value{Kind: &Value_NullValue{NullValue: NullValue_NULL_VALUE}} } // NewBoolValue constructs a new boolean Value. func NewBoolValue(v bool) *Value { return &Value{Kind: &Value_BoolValue{BoolValue: v}} } // NewNumberValue constructs a new number Value. func NewNumberValue(v float64) *Value { return &Value{Kind: &Value_NumberValue{NumberValue: v}} } // NewStringValue constructs a new string Value. func NewStringValue(v string) *Value { return &Value{Kind: &Value_StringValue{StringValue: v}} } // NewStructValue constructs a new struct Value. func NewStructValue(v *Struct) *Value { return &Value{Kind: &Value_StructValue{StructValue: v}} } // NewListValue constructs a new list Value. func NewListValue(v *ListValue) *Value { return &Value{Kind: &Value_ListValue{ListValue: v}} } // AsInterface converts x to a general-purpose Go interface. // // Calling Value.MarshalJSON and "encoding/json".Marshal on this output produce // semantically equivalent JSON (assuming no errors occur). // // Floating-point values (i.e., "NaN", "Infinity", and "-Infinity") are // converted as strings to remain compatible with MarshalJSON. func (x *Value) AsInterface() interface{} { switch v := x.GetKind().(type) { case *Value_NumberValue: if v != nil { switch { case math.IsNaN(v.NumberValue): return "NaN" case math.IsInf(v.NumberValue, +1): return "Infinity" case math.IsInf(v.NumberValue, -1): return "-Infinity" default: return v.NumberValue } } case *Value_StringValue: if v != nil { return v.StringValue } case *Value_BoolValue: if v != nil { return v.BoolValue } case *Value_StructValue: if v != nil { return v.StructValue.AsMap() } case *Value_ListValue: if v != nil { return v.ListValue.AsSlice() } } return nil } func (x *Value) MarshalJSON() ([]byte, error) { return protojson.Marshal(x) } func (x *Value) UnmarshalJSON(b []byte) error { return protojson.Unmarshal(b, x) } func (x *Value) Reset() { *x = Value{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_struct_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Value) String() string { return protoimpl.X.MessageStringOf(x) } func (*Value) ProtoMessage() {} func (x *Value) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_struct_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Value.ProtoReflect.Descriptor instead. func (*Value) Descriptor() ([]byte, []int) { return file_google_protobuf_struct_proto_rawDescGZIP(), []int{1} } func (m *Value) GetKind() isValue_Kind { if m != nil { return m.Kind } return nil } func (x *Value) GetNullValue() NullValue { if x, ok := x.GetKind().(*Value_NullValue); ok { return x.NullValue } return NullValue_NULL_VALUE } func (x *Value) GetNumberValue() float64 { if x, ok := x.GetKind().(*Value_NumberValue); ok { return x.NumberValue } return 0 } func (x *Value) GetStringValue() string { if x, ok := x.GetKind().(*Value_StringValue); ok { return x.StringValue } return "" } func (x *Value) GetBoolValue() bool { if x, ok := x.GetKind().(*Value_BoolValue); ok { return x.BoolValue } return false } func (x *Value) GetStructValue() *Struct { if x, ok := x.GetKind().(*Value_StructValue); ok { return x.StructValue } return nil } func (x *Value) GetListValue() *ListValue { if x, ok := x.GetKind().(*Value_ListValue); ok { return x.ListValue } return nil } type isValue_Kind interface { isValue_Kind() } type Value_NullValue struct { // Represents a null value. NullValue NullValue `protobuf:"varint,1,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue,oneof"` } type Value_NumberValue struct { // Represents a double value. NumberValue float64 `protobuf:"fixed64,2,opt,name=number_value,json=numberValue,proto3,oneof"` } type Value_StringValue struct { // Represents a string value. StringValue string `protobuf:"bytes,3,opt,name=string_value,json=stringValue,proto3,oneof"` } type Value_BoolValue struct { // Represents a boolean value. BoolValue bool `protobuf:"varint,4,opt,name=bool_value,json=boolValue,proto3,oneof"` } type Value_StructValue struct { // Represents a structured value. StructValue *Struct `protobuf:"bytes,5,opt,name=struct_value,json=structValue,proto3,oneof"` } type Value_ListValue struct { // Represents a repeated `Value`. ListValue *ListValue `protobuf:"bytes,6,opt,name=list_value,json=listValue,proto3,oneof"` } func (*Value_NullValue) isValue_Kind() {} func (*Value_NumberValue) isValue_Kind() {} func (*Value_StringValue) isValue_Kind() {} func (*Value_BoolValue) isValue_Kind() {} func (*Value_StructValue) isValue_Kind() {} func (*Value_ListValue) isValue_Kind() {} // `ListValue` is a wrapper around a repeated field of values. // // The JSON representation for `ListValue` is JSON array. type ListValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Repeated field of dynamically typed values. Values []*Value `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"` } // NewList constructs a ListValue from a general-purpose Go slice. // The slice elements are converted using NewValue. func NewList(v []interface{}) (*ListValue, error) { x := &ListValue{Values: make([]*Value, len(v))} for i, v := range v { var err error x.Values[i], err = NewValue(v) if err != nil { return nil, err } } return x, nil } // AsSlice converts x to a general-purpose Go slice. // The slice elements are converted by calling Value.AsInterface. func (x *ListValue) AsSlice() []interface{} { vs := make([]interface{}, len(x.GetValues())) for i, v := range x.GetValues() { vs[i] = v.AsInterface() } return vs } func (x *ListValue) MarshalJSON() ([]byte, error) { return protojson.Marshal(x) } func (x *ListValue) UnmarshalJSON(b []byte) error { return protojson.Unmarshal(b, x) } func (x *ListValue) Reset() { *x = ListValue{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_struct_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListValue) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListValue) ProtoMessage() {} func (x *ListValue) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_struct_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListValue.ProtoReflect.Descriptor instead. func (*ListValue) Descriptor() ([]byte, []int) { return file_google_protobuf_struct_proto_rawDescGZIP(), []int{2} } func (x *ListValue) GetValues() []*Value { if x != nil { return x.Values } return nil } var File_google_protobuf_struct_proto protoreflect.FileDescriptor var file_google_protobuf_struct_proto_rawDesc = []byte{ 0x0a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x22, 0x98, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x3b, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x51, 0x0a, 0x0b, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb2, 0x02, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x3b, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2e, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2a, 0x1b, 0x0a, 0x09, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x55, 0x4c, 0x4c, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x00, 0x42, 0x7f, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x0b, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_google_protobuf_struct_proto_rawDescOnce sync.Once file_google_protobuf_struct_proto_rawDescData = file_google_protobuf_struct_proto_rawDesc ) func file_google_protobuf_struct_proto_rawDescGZIP() []byte { file_google_protobuf_struct_proto_rawDescOnce.Do(func() { file_google_protobuf_struct_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_struct_proto_rawDescData) }) return file_google_protobuf_struct_proto_rawDescData } var file_google_protobuf_struct_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_google_protobuf_struct_proto_msgTypes = make([]protoimpl.MessageInfo, 4) var file_google_protobuf_struct_proto_goTypes = []interface{}{ (NullValue)(0), // 0: google.protobuf.NullValue (*Struct)(nil), // 1: google.protobuf.Struct (*Value)(nil), // 2: google.protobuf.Value (*ListValue)(nil), // 3: google.protobuf.ListValue nil, // 4: google.protobuf.Struct.FieldsEntry } var file_google_protobuf_struct_proto_depIdxs = []int32{ 4, // 0: google.protobuf.Struct.fields:type_name -> google.protobuf.Struct.FieldsEntry 0, // 1: google.protobuf.Value.null_value:type_name -> google.protobuf.NullValue 1, // 2: google.protobuf.Value.struct_value:type_name -> google.protobuf.Struct 3, // 3: google.protobuf.Value.list_value:type_name -> google.protobuf.ListValue 2, // 4: google.protobuf.ListValue.values:type_name -> google.protobuf.Value 2, // 5: google.protobuf.Struct.FieldsEntry.value:type_name -> google.protobuf.Value 6, // [6:6] is the sub-list for method output_type 6, // [6:6] is the sub-list for method input_type 6, // [6:6] is the sub-list for extension type_name 6, // [6:6] is the sub-list for extension extendee 0, // [0:6] is the sub-list for field type_name } func init() { file_google_protobuf_struct_proto_init() } func file_google_protobuf_struct_proto_init() { if File_google_protobuf_struct_proto != nil { return } if !protoimpl.UnsafeEnabled { file_google_protobuf_struct_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Struct); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_struct_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Value); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_struct_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListValue); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_google_protobuf_struct_proto_msgTypes[1].OneofWrappers = []interface{}{ (*Value_NullValue)(nil), (*Value_NumberValue)(nil), (*Value_StringValue)(nil), (*Value_BoolValue)(nil), (*Value_StructValue)(nil), (*Value_ListValue)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_protobuf_struct_proto_rawDesc, NumEnums: 1, NumMessages: 4, NumExtensions: 0, NumServices: 0, }, GoTypes: file_google_protobuf_struct_proto_goTypes, DependencyIndexes: file_google_protobuf_struct_proto_depIdxs, EnumInfos: file_google_protobuf_struct_proto_enumTypes, MessageInfos: file_google_protobuf_struct_proto_msgTypes, }.Build() File_google_protobuf_struct_proto = out.File file_google_protobuf_struct_proto_rawDesc = nil file_google_protobuf_struct_proto_goTypes = nil file_google_protobuf_struct_proto_depIdxs = nil } golang-google-protobuf-1.27.1/types/known/structpb/struct_test.go000066400000000000000000000351751411250152500252500ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package structpb_test import ( "encoding/json" "math" "testing" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/testing/protocmp" spb "google.golang.org/protobuf/types/known/structpb" ) var equateJSON = cmpopts.AcyclicTransformer("UnmarshalJSON", func(in []byte) (out interface{}) { if err := json.Unmarshal(in, &out); err != nil { return in } return out }) func TestToStruct(t *testing.T) { tests := []struct { in map[string]interface{} wantPB *spb.Struct wantErr error }{{ in: nil, wantPB: new(spb.Struct), }, { in: make(map[string]interface{}), wantPB: new(spb.Struct), }, { in: map[string]interface{}{ "nil": nil, "bool": bool(false), "int": int(-123), "int32": int32(math.MinInt32), "int64": int64(math.MinInt64), "uint": uint(123), "uint32": uint32(math.MaxInt32), "uint64": uint64(math.MaxInt64), "float32": float32(123.456), "float64": float64(123.456), "string": string("hello, world!"), "bytes": []byte("\xde\xad\xbe\xef"), "map": map[string]interface{}{"k1": "v1", "k2": "v2"}, "slice": []interface{}{"one", "two", "three"}, }, wantPB: &spb.Struct{Fields: map[string]*spb.Value{ "nil": spb.NewNullValue(), "bool": spb.NewBoolValue(false), "int": spb.NewNumberValue(float64(-123)), "int32": spb.NewNumberValue(float64(math.MinInt32)), "int64": spb.NewNumberValue(float64(math.MinInt64)), "uint": spb.NewNumberValue(float64(123)), "uint32": spb.NewNumberValue(float64(math.MaxInt32)), "uint64": spb.NewNumberValue(float64(math.MaxInt64)), "float32": spb.NewNumberValue(float64(float32(123.456))), "float64": spb.NewNumberValue(float64(float64(123.456))), "string": spb.NewStringValue("hello, world!"), "bytes": spb.NewStringValue("3q2+7w=="), "map": spb.NewStructValue(&spb.Struct{Fields: map[string]*spb.Value{ "k1": spb.NewStringValue("v1"), "k2": spb.NewStringValue("v2"), }}), "slice": spb.NewListValue(&spb.ListValue{Values: []*spb.Value{ spb.NewStringValue("one"), spb.NewStringValue("two"), spb.NewStringValue("three"), }}), }}, }, { in: map[string]interface{}{"\xde\xad\xbe\xef": ""}, wantErr: cmpopts.AnyError, }, { in: map[string]interface{}{"": "\xde\xad\xbe\xef"}, wantErr: cmpopts.AnyError, }, { in: map[string]interface{}{"key": protoreflect.Name("named string")}, wantErr: cmpopts.AnyError, }} for _, tt := range tests { gotPB, gotErr := spb.NewStruct(tt.in) if diff := cmp.Diff(tt.wantPB, gotPB, protocmp.Transform()); diff != "" { t.Errorf("NewStruct(%v) output mismatch (-want +got):\n%s", tt.in, diff) } if diff := cmp.Diff(tt.wantErr, gotErr, cmpopts.EquateErrors()); diff != "" { t.Errorf("NewStruct(%v) error mismatch (-want +got):\n%s", tt.in, diff) } } } func TestFromStruct(t *testing.T) { tests := []struct { in *spb.Struct want map[string]interface{} }{{ in: nil, want: make(map[string]interface{}), }, { in: new(spb.Struct), want: make(map[string]interface{}), }, { in: &spb.Struct{Fields: make(map[string]*spb.Value)}, want: make(map[string]interface{}), }, { in: &spb.Struct{Fields: map[string]*spb.Value{ "nil": spb.NewNullValue(), "bool": spb.NewBoolValue(false), "int": spb.NewNumberValue(float64(-123)), "int32": spb.NewNumberValue(float64(math.MinInt32)), "int64": spb.NewNumberValue(float64(math.MinInt64)), "uint": spb.NewNumberValue(float64(123)), "uint32": spb.NewNumberValue(float64(math.MaxInt32)), "uint64": spb.NewNumberValue(float64(math.MaxInt64)), "float32": spb.NewNumberValue(float64(float32(123.456))), "float64": spb.NewNumberValue(float64(float64(123.456))), "string": spb.NewStringValue("hello, world!"), "bytes": spb.NewStringValue("3q2+7w=="), "map": spb.NewStructValue(&spb.Struct{Fields: map[string]*spb.Value{ "k1": spb.NewStringValue("v1"), "k2": spb.NewStringValue("v2"), }}), "slice": spb.NewListValue(&spb.ListValue{Values: []*spb.Value{ spb.NewStringValue("one"), spb.NewStringValue("two"), spb.NewStringValue("three"), }}), }}, want: map[string]interface{}{ "nil": nil, "bool": bool(false), "int": float64(-123), "int32": float64(math.MinInt32), "int64": float64(math.MinInt64), "uint": float64(123), "uint32": float64(math.MaxInt32), "uint64": float64(math.MaxInt64), "float32": float64(float32(123.456)), "float64": float64(float64(123.456)), "string": string("hello, world!"), "bytes": string("3q2+7w=="), "map": map[string]interface{}{"k1": "v1", "k2": "v2"}, "slice": []interface{}{"one", "two", "three"}, }, }} for _, tt := range tests { got := tt.in.AsMap() if diff := cmp.Diff(tt.want, got); diff != "" { t.Errorf("AsMap(%v) mismatch (-want +got):\n%s", tt.in, diff) } gotJSON, err := json.Marshal(got) if err != nil { t.Errorf("Marshal error: %v", err) } wantJSON, err := tt.in.MarshalJSON() if err != nil { t.Errorf("Marshal error: %v", err) } if diff := cmp.Diff(wantJSON, gotJSON, equateJSON); diff != "" { t.Errorf("MarshalJSON(%v) mismatch (-want +got):\n%s", tt.in, diff) } } } func TestToListValue(t *testing.T) { tests := []struct { in []interface{} wantPB *spb.ListValue wantErr error }{{ in: nil, wantPB: new(spb.ListValue), }, { in: make([]interface{}, 0), wantPB: new(spb.ListValue), }, { in: []interface{}{ nil, bool(false), int(-123), int32(math.MinInt32), int64(math.MinInt64), uint(123), uint32(math.MaxInt32), uint64(math.MaxInt64), float32(123.456), float64(123.456), string("hello, world!"), []byte("\xde\xad\xbe\xef"), map[string]interface{}{"k1": "v1", "k2": "v2"}, []interface{}{"one", "two", "three"}, }, wantPB: &spb.ListValue{Values: []*spb.Value{ spb.NewNullValue(), spb.NewBoolValue(false), spb.NewNumberValue(float64(-123)), spb.NewNumberValue(float64(math.MinInt32)), spb.NewNumberValue(float64(math.MinInt64)), spb.NewNumberValue(float64(123)), spb.NewNumberValue(float64(math.MaxInt32)), spb.NewNumberValue(float64(math.MaxInt64)), spb.NewNumberValue(float64(float32(123.456))), spb.NewNumberValue(float64(float64(123.456))), spb.NewStringValue("hello, world!"), spb.NewStringValue("3q2+7w=="), spb.NewStructValue(&spb.Struct{Fields: map[string]*spb.Value{ "k1": spb.NewStringValue("v1"), "k2": spb.NewStringValue("v2"), }}), spb.NewListValue(&spb.ListValue{Values: []*spb.Value{ spb.NewStringValue("one"), spb.NewStringValue("two"), spb.NewStringValue("three"), }}), }}, }, { in: []interface{}{"\xde\xad\xbe\xef"}, wantErr: cmpopts.AnyError, }, { in: []interface{}{protoreflect.Name("named string")}, wantErr: cmpopts.AnyError, }} for _, tt := range tests { gotPB, gotErr := spb.NewList(tt.in) if diff := cmp.Diff(tt.wantPB, gotPB, protocmp.Transform()); diff != "" { t.Errorf("NewListValue(%v) output mismatch (-want +got):\n%s", tt.in, diff) } if diff := cmp.Diff(tt.wantErr, gotErr, cmpopts.EquateErrors()); diff != "" { t.Errorf("NewListValue(%v) error mismatch (-want +got):\n%s", tt.in, diff) } } } func TestFromListValue(t *testing.T) { tests := []struct { in *spb.ListValue want []interface{} }{{ in: nil, want: make([]interface{}, 0), }, { in: new(spb.ListValue), want: make([]interface{}, 0), }, { in: &spb.ListValue{Values: make([]*spb.Value, 0)}, want: make([]interface{}, 0), }, { in: &spb.ListValue{Values: []*spb.Value{ spb.NewNullValue(), spb.NewBoolValue(false), spb.NewNumberValue(float64(-123)), spb.NewNumberValue(float64(math.MinInt32)), spb.NewNumberValue(float64(math.MinInt64)), spb.NewNumberValue(float64(123)), spb.NewNumberValue(float64(math.MaxInt32)), spb.NewNumberValue(float64(math.MaxInt64)), spb.NewNumberValue(float64(float32(123.456))), spb.NewNumberValue(float64(float64(123.456))), spb.NewStringValue("hello, world!"), spb.NewStringValue("3q2+7w=="), spb.NewStructValue(&spb.Struct{Fields: map[string]*spb.Value{ "k1": spb.NewStringValue("v1"), "k2": spb.NewStringValue("v2"), }}), spb.NewListValue(&spb.ListValue{Values: []*spb.Value{ spb.NewStringValue("one"), spb.NewStringValue("two"), spb.NewStringValue("three"), }}), }}, want: []interface{}{ nil, bool(false), float64(-123), float64(math.MinInt32), float64(math.MinInt64), float64(123), float64(math.MaxInt32), float64(math.MaxInt64), float64(float32(123.456)), float64(float64(123.456)), string("hello, world!"), string("3q2+7w=="), map[string]interface{}{"k1": "v1", "k2": "v2"}, []interface{}{"one", "two", "three"}, }, }} for _, tt := range tests { got := tt.in.AsSlice() if diff := cmp.Diff(tt.want, got); diff != "" { t.Errorf("AsSlice(%v) mismatch (-want +got):\n%s", tt.in, diff) } gotJSON, err := json.Marshal(got) if err != nil { t.Errorf("Marshal error: %v", err) } wantJSON, err := tt.in.MarshalJSON() if err != nil { t.Errorf("Marshal error: %v", err) } if diff := cmp.Diff(wantJSON, gotJSON, equateJSON); diff != "" { t.Errorf("MarshalJSON(%v) mismatch (-want +got):\n%s", tt.in, diff) } } } func TestToValue(t *testing.T) { tests := []struct { in interface{} wantPB *spb.Value wantErr error }{{ in: nil, wantPB: spb.NewNullValue(), }, { in: bool(false), wantPB: spb.NewBoolValue(false), }, { in: int(-123), wantPB: spb.NewNumberValue(float64(-123)), }, { in: int32(math.MinInt32), wantPB: spb.NewNumberValue(float64(math.MinInt32)), }, { in: int64(math.MinInt64), wantPB: spb.NewNumberValue(float64(math.MinInt64)), }, { in: uint(123), wantPB: spb.NewNumberValue(float64(123)), }, { in: uint32(math.MaxInt32), wantPB: spb.NewNumberValue(float64(math.MaxInt32)), }, { in: uint64(math.MaxInt64), wantPB: spb.NewNumberValue(float64(math.MaxInt64)), }, { in: float32(123.456), wantPB: spb.NewNumberValue(float64(float32(123.456))), }, { in: float64(123.456), wantPB: spb.NewNumberValue(float64(float64(123.456))), }, { in: string("hello, world!"), wantPB: spb.NewStringValue("hello, world!"), }, { in: []byte("\xde\xad\xbe\xef"), wantPB: spb.NewStringValue("3q2+7w=="), }, { in: map[string]interface{}(nil), wantPB: spb.NewStructValue(nil), }, { in: make(map[string]interface{}), wantPB: spb.NewStructValue(nil), }, { in: map[string]interface{}{"k1": "v1", "k2": "v2"}, wantPB: spb.NewStructValue(&spb.Struct{Fields: map[string]*spb.Value{ "k1": spb.NewStringValue("v1"), "k2": spb.NewStringValue("v2"), }}), }, { in: []interface{}(nil), wantPB: spb.NewListValue(nil), }, { in: make([]interface{}, 0), wantPB: spb.NewListValue(nil), }, { in: []interface{}{"one", "two", "three"}, wantPB: spb.NewListValue(&spb.ListValue{Values: []*spb.Value{ spb.NewStringValue("one"), spb.NewStringValue("two"), spb.NewStringValue("three"), }}), }, { in: "\xde\xad\xbe\xef", wantErr: cmpopts.AnyError, }, { in: protoreflect.Name("named string"), wantErr: cmpopts.AnyError, }} for _, tt := range tests { gotPB, gotErr := spb.NewValue(tt.in) if diff := cmp.Diff(tt.wantPB, gotPB, protocmp.Transform()); diff != "" { t.Errorf("NewValue(%v) output mismatch (-want +got):\n%s", tt.in, diff) } if diff := cmp.Diff(tt.wantErr, gotErr, cmpopts.EquateErrors()); diff != "" { t.Errorf("NewValue(%v) error mismatch (-want +got):\n%s", tt.in, diff) } } } func TestFromValue(t *testing.T) { tests := []struct { in *spb.Value want interface{} }{{ in: nil, want: nil, }, { in: new(spb.Value), want: nil, }, { in: &spb.Value{Kind: (*spb.Value_NullValue)(nil)}, want: nil, }, { in: spb.NewNullValue(), want: nil, }, { in: &spb.Value{Kind: &spb.Value_NullValue{NullValue: math.MinInt32}}, want: nil, }, { in: &spb.Value{Kind: (*spb.Value_BoolValue)(nil)}, want: nil, }, { in: spb.NewBoolValue(false), want: bool(false), }, { in: &spb.Value{Kind: (*spb.Value_NumberValue)(nil)}, want: nil, }, { in: spb.NewNumberValue(float64(math.MinInt32)), want: float64(math.MinInt32), }, { in: spb.NewNumberValue(float64(math.MinInt64)), want: float64(math.MinInt64), }, { in: spb.NewNumberValue(float64(123)), want: float64(123), }, { in: spb.NewNumberValue(float64(math.MaxInt32)), want: float64(math.MaxInt32), }, { in: spb.NewNumberValue(float64(math.MaxInt64)), want: float64(math.MaxInt64), }, { in: spb.NewNumberValue(float64(float32(123.456))), want: float64(float32(123.456)), }, { in: spb.NewNumberValue(float64(float64(123.456))), want: float64(float64(123.456)), }, { in: spb.NewNumberValue(math.NaN()), want: string("NaN"), }, { in: spb.NewNumberValue(math.Inf(-1)), want: string("-Infinity"), }, { in: spb.NewNumberValue(math.Inf(+1)), want: string("Infinity"), }, { in: &spb.Value{Kind: (*spb.Value_StringValue)(nil)}, want: nil, }, { in: spb.NewStringValue("hello, world!"), want: string("hello, world!"), }, { in: spb.NewStringValue("3q2+7w=="), want: string("3q2+7w=="), }, { in: &spb.Value{Kind: (*spb.Value_StructValue)(nil)}, want: nil, }, { in: &spb.Value{Kind: &spb.Value_StructValue{}}, want: make(map[string]interface{}), }, { in: spb.NewListValue(&spb.ListValue{Values: []*spb.Value{ spb.NewStringValue("one"), spb.NewStringValue("two"), spb.NewStringValue("three"), }}), want: []interface{}{"one", "two", "three"}, }, { in: &spb.Value{Kind: (*spb.Value_ListValue)(nil)}, want: nil, }, { in: &spb.Value{Kind: &spb.Value_ListValue{}}, want: make([]interface{}, 0), }, { in: spb.NewListValue(&spb.ListValue{Values: []*spb.Value{ spb.NewStringValue("one"), spb.NewStringValue("two"), spb.NewStringValue("three"), }}), want: []interface{}{"one", "two", "three"}, }} for _, tt := range tests { got := tt.in.AsInterface() if diff := cmp.Diff(tt.want, got); diff != "" { t.Errorf("AsInterface(%v) mismatch (-want +got):\n%s", tt.in, diff) } gotJSON, gotErr := json.Marshal(got) if gotErr != nil { t.Errorf("Marshal error: %v", gotErr) } wantJSON, wantErr := tt.in.MarshalJSON() if diff := cmp.Diff(wantJSON, gotJSON, equateJSON); diff != "" && wantErr == nil { t.Errorf("MarshalJSON(%v) mismatch (-want +got):\n%s", tt.in, diff) } } } golang-google-protobuf-1.27.1/types/known/timestamppb/000077500000000000000000000000001411250152500230025ustar00rootroot00000000000000golang-google-protobuf-1.27.1/types/known/timestamppb/timestamp.pb.go000066400000000000000000000350251411250152500257410ustar00rootroot00000000000000// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Code generated by protoc-gen-go. DO NOT EDIT. // source: google/protobuf/timestamp.proto // Package timestamppb contains generated types for google/protobuf/timestamp.proto. // // The Timestamp message represents a timestamp, // an instant in time since the Unix epoch (January 1st, 1970). // // // Conversion to a Go Time // // The AsTime method can be used to convert a Timestamp message to a // standard Go time.Time value in UTC: // // t := ts.AsTime() // ... // make use of t as a time.Time // // Converting to a time.Time is a common operation so that the extensive // set of time-based operations provided by the time package can be leveraged. // See https://golang.org/pkg/time for more information. // // The AsTime method performs the conversion on a best-effort basis. Timestamps // with denormal values (e.g., nanoseconds beyond 0 and 99999999, inclusive) // are normalized during the conversion to a time.Time. To manually check for // invalid Timestamps per the documented limitations in timestamp.proto, // additionally call the CheckValid method: // // if err := ts.CheckValid(); err != nil { // ... // handle error // } // // // Conversion from a Go Time // // The timestamppb.New function can be used to construct a Timestamp message // from a standard Go time.Time value: // // ts := timestamppb.New(t) // ... // make use of ts as a *timestamppb.Timestamp // // In order to construct a Timestamp representing the current time, use Now: // // ts := timestamppb.Now() // ... // make use of ts as a *timestamppb.Timestamp // package timestamppb import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" time "time" ) // A Timestamp represents a point in time independent of any time zone or local // calendar, encoded as a count of seconds and fractions of seconds at // nanosecond resolution. The count is relative to an epoch at UTC midnight on // January 1, 1970, in the proleptic Gregorian calendar which extends the // Gregorian calendar backwards to year one. // // All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap // second table is needed for interpretation, using a [24-hour linear // smear](https://developers.google.com/time/smear). // // The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By // restricting to that range, we ensure that we can convert to and from [RFC // 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. // // # Examples // // Example 1: Compute Timestamp from POSIX `time()`. // // Timestamp timestamp; // timestamp.set_seconds(time(NULL)); // timestamp.set_nanos(0); // // Example 2: Compute Timestamp from POSIX `gettimeofday()`. // // struct timeval tv; // gettimeofday(&tv, NULL); // // Timestamp timestamp; // timestamp.set_seconds(tv.tv_sec); // timestamp.set_nanos(tv.tv_usec * 1000); // // Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. // // FILETIME ft; // GetSystemTimeAsFileTime(&ft); // UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; // // // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. // Timestamp timestamp; // timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); // timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); // // Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. // // long millis = System.currentTimeMillis(); // // Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) // .setNanos((int) ((millis % 1000) * 1000000)).build(); // // // Example 5: Compute Timestamp from Java `Instant.now()`. // // Instant now = Instant.now(); // // Timestamp timestamp = // Timestamp.newBuilder().setSeconds(now.getEpochSecond()) // .setNanos(now.getNano()).build(); // // // Example 6: Compute Timestamp from current time in Python. // // timestamp = Timestamp() // timestamp.GetCurrentTime() // // # JSON Mapping // // In JSON format, the Timestamp type is encoded as a string in the // [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the // format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" // where {year} is always expressed using four digits while {month}, {day}, // {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional // seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), // are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone // is required. A proto3 JSON serializer should always use UTC (as indicated by // "Z") when printing the Timestamp type and a proto3 JSON parser should be // able to accept both UTC and other timezones (as indicated by an offset). // // For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past // 01:30 UTC on January 15, 2017. // // In JavaScript, one can convert a Date object to this format using the // standard // [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) // method. In Python, a standard `datetime.datetime` object can be converted // to this format using // [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with // the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use // the Joda Time's [`ISODateTimeFormat.dateTime()`]( // http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D // ) to obtain a formatter capable of generating timestamps in this format. // // type Timestamp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Represents seconds of UTC time since Unix epoch // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to // 9999-12-31T23:59:59Z inclusive. Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"` // Non-negative fractions of a second at nanosecond resolution. Negative // second values with fractions must still have non-negative nanos values // that count forward in time. Must be from 0 to 999,999,999 // inclusive. Nanos int32 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"` } // Now constructs a new Timestamp from the current time. func Now() *Timestamp { return New(time.Now()) } // New constructs a new Timestamp from the provided time.Time. func New(t time.Time) *Timestamp { return &Timestamp{Seconds: int64(t.Unix()), Nanos: int32(t.Nanosecond())} } // AsTime converts x to a time.Time. func (x *Timestamp) AsTime() time.Time { return time.Unix(int64(x.GetSeconds()), int64(x.GetNanos())).UTC() } // IsValid reports whether the timestamp is valid. // It is equivalent to CheckValid == nil. func (x *Timestamp) IsValid() bool { return x.check() == 0 } // CheckValid returns an error if the timestamp is invalid. // In particular, it checks whether the value represents a date that is // in the range of 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive. // An error is reported for a nil Timestamp. func (x *Timestamp) CheckValid() error { switch x.check() { case invalidNil: return protoimpl.X.NewError("invalid nil Timestamp") case invalidUnderflow: return protoimpl.X.NewError("timestamp (%v) before 0001-01-01", x) case invalidOverflow: return protoimpl.X.NewError("timestamp (%v) after 9999-12-31", x) case invalidNanos: return protoimpl.X.NewError("timestamp (%v) has out-of-range nanos", x) default: return nil } } const ( _ = iota invalidNil invalidUnderflow invalidOverflow invalidNanos ) func (x *Timestamp) check() uint { const minTimestamp = -62135596800 // Seconds between 1970-01-01T00:00:00Z and 0001-01-01T00:00:00Z, inclusive const maxTimestamp = +253402300799 // Seconds between 1970-01-01T00:00:00Z and 9999-12-31T23:59:59Z, inclusive secs := x.GetSeconds() nanos := x.GetNanos() switch { case x == nil: return invalidNil case secs < minTimestamp: return invalidUnderflow case secs > maxTimestamp: return invalidOverflow case nanos < 0 || nanos >= 1e9: return invalidNanos default: return 0 } } func (x *Timestamp) Reset() { *x = Timestamp{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_timestamp_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Timestamp) String() string { return protoimpl.X.MessageStringOf(x) } func (*Timestamp) ProtoMessage() {} func (x *Timestamp) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_timestamp_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Timestamp.ProtoReflect.Descriptor instead. func (*Timestamp) Descriptor() ([]byte, []int) { return file_google_protobuf_timestamp_proto_rawDescGZIP(), []int{0} } func (x *Timestamp) GetSeconds() int64 { if x != nil { return x.Seconds } return 0 } func (x *Timestamp) GetNanos() int32 { if x != nil { return x.Nanos } return 0 } var File_google_protobuf_timestamp_proto protoreflect.FileDescriptor var file_google_protobuf_timestamp_proto_rawDesc = []byte{ 0x0a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x22, 0x3b, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x42, 0x85, 0x01, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_google_protobuf_timestamp_proto_rawDescOnce sync.Once file_google_protobuf_timestamp_proto_rawDescData = file_google_protobuf_timestamp_proto_rawDesc ) func file_google_protobuf_timestamp_proto_rawDescGZIP() []byte { file_google_protobuf_timestamp_proto_rawDescOnce.Do(func() { file_google_protobuf_timestamp_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_timestamp_proto_rawDescData) }) return file_google_protobuf_timestamp_proto_rawDescData } var file_google_protobuf_timestamp_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_google_protobuf_timestamp_proto_goTypes = []interface{}{ (*Timestamp)(nil), // 0: google.protobuf.Timestamp } var file_google_protobuf_timestamp_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_google_protobuf_timestamp_proto_init() } func file_google_protobuf_timestamp_proto_init() { if File_google_protobuf_timestamp_proto != nil { return } if !protoimpl.UnsafeEnabled { file_google_protobuf_timestamp_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Timestamp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_protobuf_timestamp_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_google_protobuf_timestamp_proto_goTypes, DependencyIndexes: file_google_protobuf_timestamp_proto_depIdxs, MessageInfos: file_google_protobuf_timestamp_proto_msgTypes, }.Build() File_google_protobuf_timestamp_proto = out.File file_google_protobuf_timestamp_proto_rawDesc = nil file_google_protobuf_timestamp_proto_goTypes = nil file_google_protobuf_timestamp_proto_depIdxs = nil } golang-google-protobuf-1.27.1/types/known/timestamppb/timestamp_test.go000066400000000000000000000142161411250152500263770ustar00rootroot00000000000000// Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package timestamppb_test import ( "math" "strings" "testing" "time" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "google.golang.org/protobuf/internal/detrand" "google.golang.org/protobuf/testing/protocmp" tspb "google.golang.org/protobuf/types/known/timestamppb" ) func init() { detrand.Disable() } const ( minTimestamp = -62135596800 // Seconds between 1970-01-01T00:00:00Z and 0001-01-01T00:00:00Z, inclusive maxTimestamp = +253402300799 // Seconds between 1970-01-01T00:00:00Z and 9999-12-31T23:59:59Z, inclusive ) func TestToTimestamp(t *testing.T) { tests := []struct { in time.Time want *tspb.Timestamp }{ {in: time.Time{}, want: &tspb.Timestamp{Seconds: -62135596800, Nanos: 0}}, {in: time.Unix(0, 0), want: &tspb.Timestamp{Seconds: 0, Nanos: 0}}, {in: time.Unix(math.MinInt64, 0), want: &tspb.Timestamp{Seconds: math.MinInt64, Nanos: 0}}, {in: time.Unix(math.MaxInt64, 1e9-1), want: &tspb.Timestamp{Seconds: math.MaxInt64, Nanos: 1e9 - 1}}, {in: time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC), want: &tspb.Timestamp{Seconds: minTimestamp, Nanos: 0}}, {in: time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC).Add(-time.Nanosecond), want: &tspb.Timestamp{Seconds: minTimestamp - 1, Nanos: 1e9 - 1}}, {in: time.Date(9999, 12, 31, 23, 59, 59, 1e9-1, time.UTC), want: &tspb.Timestamp{Seconds: maxTimestamp, Nanos: 1e9 - 1}}, {in: time.Date(9999, 12, 31, 23, 59, 59, 1e9-1, time.UTC).Add(+time.Nanosecond), want: &tspb.Timestamp{Seconds: maxTimestamp + 1}}, {in: time.Date(1961, 1, 26, 0, 0, 0, 0, time.UTC), want: &tspb.Timestamp{Seconds: -281836800, Nanos: 0}}, {in: time.Date(2011, 1, 26, 0, 0, 0, 0, time.UTC), want: &tspb.Timestamp{Seconds: 1296000000, Nanos: 0}}, {in: time.Date(2011, 1, 26, 3, 25, 45, 940483, time.UTC), want: &tspb.Timestamp{Seconds: 1296012345, Nanos: 940483}}, } for _, tt := range tests { got := tspb.New(tt.in) if diff := cmp.Diff(tt.want, got, protocmp.Transform()); diff != "" { t.Errorf("New(%v) mismatch (-want +got):\n%s", tt.in, diff) } } } func TestFromTimestamp(t *testing.T) { tests := []struct { in *tspb.Timestamp wantTime time.Time wantErr error }{ {in: nil, wantTime: time.Unix(0, 0), wantErr: textError("invalid nil Timestamp")}, {in: new(tspb.Timestamp), wantTime: time.Unix(0, 0)}, {in: &tspb.Timestamp{Seconds: -62135596800, Nanos: 0}, wantTime: time.Time{}}, {in: &tspb.Timestamp{Seconds: -1, Nanos: -1}, wantTime: time.Unix(-1, -1), wantErr: textError("timestamp (seconds:-1 nanos:-1) has out-of-range nanos")}, {in: &tspb.Timestamp{Seconds: -1, Nanos: 0}, wantTime: time.Unix(-1, 0)}, {in: &tspb.Timestamp{Seconds: -1, Nanos: +1}, wantTime: time.Unix(-1, +1)}, {in: &tspb.Timestamp{Seconds: 0, Nanos: -1}, wantTime: time.Unix(0, -1), wantErr: textError("timestamp (nanos:-1) has out-of-range nanos")}, {in: &tspb.Timestamp{Seconds: 0, Nanos: 0}, wantTime: time.Unix(0, 0)}, {in: &tspb.Timestamp{Seconds: 0, Nanos: +1}, wantTime: time.Unix(0, +1)}, {in: &tspb.Timestamp{Seconds: +1, Nanos: -1}, wantTime: time.Unix(+1, -1), wantErr: textError("timestamp (seconds:1 nanos:-1) has out-of-range nanos")}, {in: &tspb.Timestamp{Seconds: +1, Nanos: 0}, wantTime: time.Unix(+1, 0)}, {in: &tspb.Timestamp{Seconds: +1, Nanos: +1}, wantTime: time.Unix(+1, +1)}, {in: &tspb.Timestamp{Seconds: -9876543210, Nanos: -1098765432}, wantTime: time.Unix(-9876543210, -1098765432), wantErr: textError("timestamp (seconds:-9876543210 nanos:-1098765432) has out-of-range nanos")}, {in: &tspb.Timestamp{Seconds: +9876543210, Nanos: -1098765432}, wantTime: time.Unix(+9876543210, -1098765432), wantErr: textError("timestamp (seconds:9876543210 nanos:-1098765432) has out-of-range nanos")}, {in: &tspb.Timestamp{Seconds: -9876543210, Nanos: +1098765432}, wantTime: time.Unix(-9876543210, +1098765432), wantErr: textError("timestamp (seconds:-9876543210 nanos:1098765432) has out-of-range nanos")}, {in: &tspb.Timestamp{Seconds: +9876543210, Nanos: +1098765432}, wantTime: time.Unix(+9876543210, +1098765432), wantErr: textError("timestamp (seconds:9876543210 nanos:1098765432) has out-of-range nanos")}, {in: &tspb.Timestamp{Seconds: math.MinInt64, Nanos: 0}, wantTime: time.Unix(math.MinInt64, 0), wantErr: textError("timestamp (seconds:-9223372036854775808) before 0001-01-01")}, {in: &tspb.Timestamp{Seconds: math.MaxInt64, Nanos: 1e9 - 1}, wantTime: time.Unix(math.MaxInt64, 1e9-1), wantErr: textError("timestamp (seconds:9223372036854775807 nanos:999999999) after 9999-12-31")}, {in: &tspb.Timestamp{Seconds: minTimestamp, Nanos: 0}, wantTime: time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC)}, {in: &tspb.Timestamp{Seconds: minTimestamp - 1, Nanos: 1e9 - 1}, wantTime: time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC).Add(-time.Nanosecond), wantErr: textError("timestamp (seconds:-62135596801 nanos:999999999) before 0001-01-01")}, {in: &tspb.Timestamp{Seconds: maxTimestamp, Nanos: 1e9 - 1}, wantTime: time.Date(9999, 12, 31, 23, 59, 59, 1e9-1, time.UTC)}, {in: &tspb.Timestamp{Seconds: maxTimestamp + 1}, wantTime: time.Date(9999, 12, 31, 23, 59, 59, 1e9-1, time.UTC).Add(+time.Nanosecond), wantErr: textError("timestamp (seconds:253402300800) after 9999-12-31")}, {in: &tspb.Timestamp{Seconds: -281836800, Nanos: 0}, wantTime: time.Date(1961, 1, 26, 0, 0, 0, 0, time.UTC)}, {in: &tspb.Timestamp{Seconds: 1296000000, Nanos: 0}, wantTime: time.Date(2011, 1, 26, 0, 0, 0, 0, time.UTC)}, {in: &tspb.Timestamp{Seconds: 1296012345, Nanos: 940483}, wantTime: time.Date(2011, 1, 26, 3, 25, 45, 940483, time.UTC)}, } for _, tt := range tests { gotTime := tt.in.AsTime() if diff := cmp.Diff(tt.wantTime, gotTime); diff != "" { t.Errorf("AsTime(%v) mismatch (-want +got):\n%s", tt.in, diff) } gotErr := tt.in.CheckValid() if diff := cmp.Diff(tt.wantErr, gotErr, cmpopts.EquateErrors()); diff != "" { t.Errorf("CheckValid(%v) mismatch (-want +got):\n%s", tt.in, diff) } } } type textError string func (e textError) Error() string { return string(e) } func (e textError) Is(err error) bool { return err != nil && strings.Contains(err.Error(), e.Error()) } golang-google-protobuf-1.27.1/types/known/typepb/000077500000000000000000000000001411250152500217605ustar00rootroot00000000000000golang-google-protobuf-1.27.1/types/known/typepb/type.pb.go000066400000000000000000001046711411250152500237010ustar00rootroot00000000000000// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Code generated by protoc-gen-go. DO NOT EDIT. // source: google/protobuf/type.proto package typepb import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" anypb "google.golang.org/protobuf/types/known/anypb" sourcecontextpb "google.golang.org/protobuf/types/known/sourcecontextpb" reflect "reflect" sync "sync" ) // The syntax in which a protocol buffer element is defined. type Syntax int32 const ( // Syntax `proto2`. Syntax_SYNTAX_PROTO2 Syntax = 0 // Syntax `proto3`. Syntax_SYNTAX_PROTO3 Syntax = 1 ) // Enum value maps for Syntax. var ( Syntax_name = map[int32]string{ 0: "SYNTAX_PROTO2", 1: "SYNTAX_PROTO3", } Syntax_value = map[string]int32{ "SYNTAX_PROTO2": 0, "SYNTAX_PROTO3": 1, } ) func (x Syntax) Enum() *Syntax { p := new(Syntax) *p = x return p } func (x Syntax) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Syntax) Descriptor() protoreflect.EnumDescriptor { return file_google_protobuf_type_proto_enumTypes[0].Descriptor() } func (Syntax) Type() protoreflect.EnumType { return &file_google_protobuf_type_proto_enumTypes[0] } func (x Syntax) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Syntax.Descriptor instead. func (Syntax) EnumDescriptor() ([]byte, []int) { return file_google_protobuf_type_proto_rawDescGZIP(), []int{0} } // Basic field types. type Field_Kind int32 const ( // Field type unknown. Field_TYPE_UNKNOWN Field_Kind = 0 // Field type double. Field_TYPE_DOUBLE Field_Kind = 1 // Field type float. Field_TYPE_FLOAT Field_Kind = 2 // Field type int64. Field_TYPE_INT64 Field_Kind = 3 // Field type uint64. Field_TYPE_UINT64 Field_Kind = 4 // Field type int32. Field_TYPE_INT32 Field_Kind = 5 // Field type fixed64. Field_TYPE_FIXED64 Field_Kind = 6 // Field type fixed32. Field_TYPE_FIXED32 Field_Kind = 7 // Field type bool. Field_TYPE_BOOL Field_Kind = 8 // Field type string. Field_TYPE_STRING Field_Kind = 9 // Field type group. Proto2 syntax only, and deprecated. Field_TYPE_GROUP Field_Kind = 10 // Field type message. Field_TYPE_MESSAGE Field_Kind = 11 // Field type bytes. Field_TYPE_BYTES Field_Kind = 12 // Field type uint32. Field_TYPE_UINT32 Field_Kind = 13 // Field type enum. Field_TYPE_ENUM Field_Kind = 14 // Field type sfixed32. Field_TYPE_SFIXED32 Field_Kind = 15 // Field type sfixed64. Field_TYPE_SFIXED64 Field_Kind = 16 // Field type sint32. Field_TYPE_SINT32 Field_Kind = 17 // Field type sint64. Field_TYPE_SINT64 Field_Kind = 18 ) // Enum value maps for Field_Kind. var ( Field_Kind_name = map[int32]string{ 0: "TYPE_UNKNOWN", 1: "TYPE_DOUBLE", 2: "TYPE_FLOAT", 3: "TYPE_INT64", 4: "TYPE_UINT64", 5: "TYPE_INT32", 6: "TYPE_FIXED64", 7: "TYPE_FIXED32", 8: "TYPE_BOOL", 9: "TYPE_STRING", 10: "TYPE_GROUP", 11: "TYPE_MESSAGE", 12: "TYPE_BYTES", 13: "TYPE_UINT32", 14: "TYPE_ENUM", 15: "TYPE_SFIXED32", 16: "TYPE_SFIXED64", 17: "TYPE_SINT32", 18: "TYPE_SINT64", } Field_Kind_value = map[string]int32{ "TYPE_UNKNOWN": 0, "TYPE_DOUBLE": 1, "TYPE_FLOAT": 2, "TYPE_INT64": 3, "TYPE_UINT64": 4, "TYPE_INT32": 5, "TYPE_FIXED64": 6, "TYPE_FIXED32": 7, "TYPE_BOOL": 8, "TYPE_STRING": 9, "TYPE_GROUP": 10, "TYPE_MESSAGE": 11, "TYPE_BYTES": 12, "TYPE_UINT32": 13, "TYPE_ENUM": 14, "TYPE_SFIXED32": 15, "TYPE_SFIXED64": 16, "TYPE_SINT32": 17, "TYPE_SINT64": 18, } ) func (x Field_Kind) Enum() *Field_Kind { p := new(Field_Kind) *p = x return p } func (x Field_Kind) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Field_Kind) Descriptor() protoreflect.EnumDescriptor { return file_google_protobuf_type_proto_enumTypes[1].Descriptor() } func (Field_Kind) Type() protoreflect.EnumType { return &file_google_protobuf_type_proto_enumTypes[1] } func (x Field_Kind) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Field_Kind.Descriptor instead. func (Field_Kind) EnumDescriptor() ([]byte, []int) { return file_google_protobuf_type_proto_rawDescGZIP(), []int{1, 0} } // Whether a field is optional, required, or repeated. type Field_Cardinality int32 const ( // For fields with unknown cardinality. Field_CARDINALITY_UNKNOWN Field_Cardinality = 0 // For optional fields. Field_CARDINALITY_OPTIONAL Field_Cardinality = 1 // For required fields. Proto2 syntax only. Field_CARDINALITY_REQUIRED Field_Cardinality = 2 // For repeated fields. Field_CARDINALITY_REPEATED Field_Cardinality = 3 ) // Enum value maps for Field_Cardinality. var ( Field_Cardinality_name = map[int32]string{ 0: "CARDINALITY_UNKNOWN", 1: "CARDINALITY_OPTIONAL", 2: "CARDINALITY_REQUIRED", 3: "CARDINALITY_REPEATED", } Field_Cardinality_value = map[string]int32{ "CARDINALITY_UNKNOWN": 0, "CARDINALITY_OPTIONAL": 1, "CARDINALITY_REQUIRED": 2, "CARDINALITY_REPEATED": 3, } ) func (x Field_Cardinality) Enum() *Field_Cardinality { p := new(Field_Cardinality) *p = x return p } func (x Field_Cardinality) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Field_Cardinality) Descriptor() protoreflect.EnumDescriptor { return file_google_protobuf_type_proto_enumTypes[2].Descriptor() } func (Field_Cardinality) Type() protoreflect.EnumType { return &file_google_protobuf_type_proto_enumTypes[2] } func (x Field_Cardinality) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Field_Cardinality.Descriptor instead. func (Field_Cardinality) EnumDescriptor() ([]byte, []int) { return file_google_protobuf_type_proto_rawDescGZIP(), []int{1, 1} } // A protocol buffer message type. type Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The fully qualified message name. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The list of fields. Fields []*Field `protobuf:"bytes,2,rep,name=fields,proto3" json:"fields,omitempty"` // The list of types appearing in `oneof` definitions in this type. Oneofs []string `protobuf:"bytes,3,rep,name=oneofs,proto3" json:"oneofs,omitempty"` // The protocol buffer options. Options []*Option `protobuf:"bytes,4,rep,name=options,proto3" json:"options,omitempty"` // The source context. SourceContext *sourcecontextpb.SourceContext `protobuf:"bytes,5,opt,name=source_context,json=sourceContext,proto3" json:"source_context,omitempty"` // The source syntax. Syntax Syntax `protobuf:"varint,6,opt,name=syntax,proto3,enum=google.protobuf.Syntax" json:"syntax,omitempty"` } func (x *Type) Reset() { *x = Type{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_type_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Type) String() string { return protoimpl.X.MessageStringOf(x) } func (*Type) ProtoMessage() {} func (x *Type) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_type_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Type.ProtoReflect.Descriptor instead. func (*Type) Descriptor() ([]byte, []int) { return file_google_protobuf_type_proto_rawDescGZIP(), []int{0} } func (x *Type) GetName() string { if x != nil { return x.Name } return "" } func (x *Type) GetFields() []*Field { if x != nil { return x.Fields } return nil } func (x *Type) GetOneofs() []string { if x != nil { return x.Oneofs } return nil } func (x *Type) GetOptions() []*Option { if x != nil { return x.Options } return nil } func (x *Type) GetSourceContext() *sourcecontextpb.SourceContext { if x != nil { return x.SourceContext } return nil } func (x *Type) GetSyntax() Syntax { if x != nil { return x.Syntax } return Syntax_SYNTAX_PROTO2 } // A single field of a message type. type Field struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The field type. Kind Field_Kind `protobuf:"varint,1,opt,name=kind,proto3,enum=google.protobuf.Field_Kind" json:"kind,omitempty"` // The field cardinality. Cardinality Field_Cardinality `protobuf:"varint,2,opt,name=cardinality,proto3,enum=google.protobuf.Field_Cardinality" json:"cardinality,omitempty"` // The field number. Number int32 `protobuf:"varint,3,opt,name=number,proto3" json:"number,omitempty"` // The field name. Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` // The field type URL, without the scheme, for message or enumeration // types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`. TypeUrl string `protobuf:"bytes,6,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"` // The index of the field type in `Type.oneofs`, for message or enumeration // types. The first type has index 1; zero means the type is not in the list. OneofIndex int32 `protobuf:"varint,7,opt,name=oneof_index,json=oneofIndex,proto3" json:"oneof_index,omitempty"` // Whether to use alternative packed wire representation. Packed bool `protobuf:"varint,8,opt,name=packed,proto3" json:"packed,omitempty"` // The protocol buffer options. Options []*Option `protobuf:"bytes,9,rep,name=options,proto3" json:"options,omitempty"` // The field JSON name. JsonName string `protobuf:"bytes,10,opt,name=json_name,json=jsonName,proto3" json:"json_name,omitempty"` // The string value of the default value of this field. Proto2 syntax only. DefaultValue string `protobuf:"bytes,11,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"` } func (x *Field) Reset() { *x = Field{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_type_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Field) String() string { return protoimpl.X.MessageStringOf(x) } func (*Field) ProtoMessage() {} func (x *Field) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_type_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Field.ProtoReflect.Descriptor instead. func (*Field) Descriptor() ([]byte, []int) { return file_google_protobuf_type_proto_rawDescGZIP(), []int{1} } func (x *Field) GetKind() Field_Kind { if x != nil { return x.Kind } return Field_TYPE_UNKNOWN } func (x *Field) GetCardinality() Field_Cardinality { if x != nil { return x.Cardinality } return Field_CARDINALITY_UNKNOWN } func (x *Field) GetNumber() int32 { if x != nil { return x.Number } return 0 } func (x *Field) GetName() string { if x != nil { return x.Name } return "" } func (x *Field) GetTypeUrl() string { if x != nil { return x.TypeUrl } return "" } func (x *Field) GetOneofIndex() int32 { if x != nil { return x.OneofIndex } return 0 } func (x *Field) GetPacked() bool { if x != nil { return x.Packed } return false } func (x *Field) GetOptions() []*Option { if x != nil { return x.Options } return nil } func (x *Field) GetJsonName() string { if x != nil { return x.JsonName } return "" } func (x *Field) GetDefaultValue() string { if x != nil { return x.DefaultValue } return "" } // Enum type definition. type Enum struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Enum type name. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Enum value definitions. Enumvalue []*EnumValue `protobuf:"bytes,2,rep,name=enumvalue,proto3" json:"enumvalue,omitempty"` // Protocol buffer options. Options []*Option `protobuf:"bytes,3,rep,name=options,proto3" json:"options,omitempty"` // The source context. SourceContext *sourcecontextpb.SourceContext `protobuf:"bytes,4,opt,name=source_context,json=sourceContext,proto3" json:"source_context,omitempty"` // The source syntax. Syntax Syntax `protobuf:"varint,5,opt,name=syntax,proto3,enum=google.protobuf.Syntax" json:"syntax,omitempty"` } func (x *Enum) Reset() { *x = Enum{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_type_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Enum) String() string { return protoimpl.X.MessageStringOf(x) } func (*Enum) ProtoMessage() {} func (x *Enum) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_type_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Enum.ProtoReflect.Descriptor instead. func (*Enum) Descriptor() ([]byte, []int) { return file_google_protobuf_type_proto_rawDescGZIP(), []int{2} } func (x *Enum) GetName() string { if x != nil { return x.Name } return "" } func (x *Enum) GetEnumvalue() []*EnumValue { if x != nil { return x.Enumvalue } return nil } func (x *Enum) GetOptions() []*Option { if x != nil { return x.Options } return nil } func (x *Enum) GetSourceContext() *sourcecontextpb.SourceContext { if x != nil { return x.SourceContext } return nil } func (x *Enum) GetSyntax() Syntax { if x != nil { return x.Syntax } return Syntax_SYNTAX_PROTO2 } // Enum value definition. type EnumValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Enum value name. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Enum value number. Number int32 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"` // Protocol buffer options. Options []*Option `protobuf:"bytes,3,rep,name=options,proto3" json:"options,omitempty"` } func (x *EnumValue) Reset() { *x = EnumValue{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_type_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EnumValue) String() string { return protoimpl.X.MessageStringOf(x) } func (*EnumValue) ProtoMessage() {} func (x *EnumValue) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_type_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use EnumValue.ProtoReflect.Descriptor instead. func (*EnumValue) Descriptor() ([]byte, []int) { return file_google_protobuf_type_proto_rawDescGZIP(), []int{3} } func (x *EnumValue) GetName() string { if x != nil { return x.Name } return "" } func (x *EnumValue) GetNumber() int32 { if x != nil { return x.Number } return 0 } func (x *EnumValue) GetOptions() []*Option { if x != nil { return x.Options } return nil } // A protocol buffer option, which can be attached to a message, field, // enumeration, etc. type Option struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The option's name. For protobuf built-in options (options defined in // descriptor.proto), this is the short name. For example, `"map_entry"`. // For custom options, it should be the fully-qualified name. For example, // `"google.api.http"`. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The option's value packed in an Any message. If the value is a primitive, // the corresponding wrapper type defined in google/protobuf/wrappers.proto // should be used. If the value is an enum, it should be stored as an int32 // value using the google.protobuf.Int32Value type. Value *anypb.Any `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` } func (x *Option) Reset() { *x = Option{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_type_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Option) String() string { return protoimpl.X.MessageStringOf(x) } func (*Option) ProtoMessage() {} func (x *Option) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_type_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Option.ProtoReflect.Descriptor instead. func (*Option) Descriptor() ([]byte, []int) { return file_google_protobuf_type_proto_rawDescGZIP(), []int{4} } func (x *Option) GetName() string { if x != nil { return x.Name } return "" } func (x *Option) GetValue() *anypb.Any { if x != nil { return x.Value } return nil } var File_google_protobuf_type_proto protoreflect.FileDescriptor var file_google_protobuf_type_proto_rawDesc = []byte{ 0x0a, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8d, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x73, 0x12, 0x31, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x45, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x22, 0xb4, 0x06, 0x0a, 0x05, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x2f, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x44, 0x0a, 0x0b, 0x63, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x79, 0x70, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc8, 0x02, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x74, 0x0a, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x41, 0x52, 0x44, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x41, 0x52, 0x44, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x41, 0x52, 0x44, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x41, 0x52, 0x44, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x03, 0x22, 0xff, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x45, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x22, 0x6a, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x31, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x48, 0x0a, 0x06, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2a, 0x2e, 0x0a, 0x06, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x59, 0x4e, 0x54, 0x41, 0x58, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x32, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x59, 0x4e, 0x54, 0x41, 0x58, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x33, 0x10, 0x01, 0x42, 0x7b, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x09, 0x54, 0x79, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_google_protobuf_type_proto_rawDescOnce sync.Once file_google_protobuf_type_proto_rawDescData = file_google_protobuf_type_proto_rawDesc ) func file_google_protobuf_type_proto_rawDescGZIP() []byte { file_google_protobuf_type_proto_rawDescOnce.Do(func() { file_google_protobuf_type_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_type_proto_rawDescData) }) return file_google_protobuf_type_proto_rawDescData } var file_google_protobuf_type_proto_enumTypes = make([]protoimpl.EnumInfo, 3) var file_google_protobuf_type_proto_msgTypes = make([]protoimpl.MessageInfo, 5) var file_google_protobuf_type_proto_goTypes = []interface{}{ (Syntax)(0), // 0: google.protobuf.Syntax (Field_Kind)(0), // 1: google.protobuf.Field.Kind (Field_Cardinality)(0), // 2: google.protobuf.Field.Cardinality (*Type)(nil), // 3: google.protobuf.Type (*Field)(nil), // 4: google.protobuf.Field (*Enum)(nil), // 5: google.protobuf.Enum (*EnumValue)(nil), // 6: google.protobuf.EnumValue (*Option)(nil), // 7: google.protobuf.Option (*sourcecontextpb.SourceContext)(nil), // 8: google.protobuf.SourceContext (*anypb.Any)(nil), // 9: google.protobuf.Any } var file_google_protobuf_type_proto_depIdxs = []int32{ 4, // 0: google.protobuf.Type.fields:type_name -> google.protobuf.Field 7, // 1: google.protobuf.Type.options:type_name -> google.protobuf.Option 8, // 2: google.protobuf.Type.source_context:type_name -> google.protobuf.SourceContext 0, // 3: google.protobuf.Type.syntax:type_name -> google.protobuf.Syntax 1, // 4: google.protobuf.Field.kind:type_name -> google.protobuf.Field.Kind 2, // 5: google.protobuf.Field.cardinality:type_name -> google.protobuf.Field.Cardinality 7, // 6: google.protobuf.Field.options:type_name -> google.protobuf.Option 6, // 7: google.protobuf.Enum.enumvalue:type_name -> google.protobuf.EnumValue 7, // 8: google.protobuf.Enum.options:type_name -> google.protobuf.Option 8, // 9: google.protobuf.Enum.source_context:type_name -> google.protobuf.SourceContext 0, // 10: google.protobuf.Enum.syntax:type_name -> google.protobuf.Syntax 7, // 11: google.protobuf.EnumValue.options:type_name -> google.protobuf.Option 9, // 12: google.protobuf.Option.value:type_name -> google.protobuf.Any 13, // [13:13] is the sub-list for method output_type 13, // [13:13] is the sub-list for method input_type 13, // [13:13] is the sub-list for extension type_name 13, // [13:13] is the sub-list for extension extendee 0, // [0:13] is the sub-list for field type_name } func init() { file_google_protobuf_type_proto_init() } func file_google_protobuf_type_proto_init() { if File_google_protobuf_type_proto != nil { return } if !protoimpl.UnsafeEnabled { file_google_protobuf_type_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Type); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_type_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Field); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_type_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Enum); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_type_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EnumValue); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_type_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Option); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_protobuf_type_proto_rawDesc, NumEnums: 3, NumMessages: 5, NumExtensions: 0, NumServices: 0, }, GoTypes: file_google_protobuf_type_proto_goTypes, DependencyIndexes: file_google_protobuf_type_proto_depIdxs, EnumInfos: file_google_protobuf_type_proto_enumTypes, MessageInfos: file_google_protobuf_type_proto_msgTypes, }.Build() File_google_protobuf_type_proto = out.File file_google_protobuf_type_proto_rawDesc = nil file_google_protobuf_type_proto_goTypes = nil file_google_protobuf_type_proto_depIdxs = nil } golang-google-protobuf-1.27.1/types/known/wrapperspb/000077500000000000000000000000001411250152500226425ustar00rootroot00000000000000golang-google-protobuf-1.27.1/types/known/wrapperspb/wrappers.pb.go000066400000000000000000000555351411250152500254510ustar00rootroot00000000000000// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Wrappers for primitive (non-message) types. These types are useful // for embedding primitives in the `google.protobuf.Any` type and for places // where we need to distinguish between the absence of a primitive // typed field and its default value. // // These wrappers have no meaningful use within repeated fields as they lack // the ability to detect presence on individual elements. // These wrappers have no meaningful use within a map or a oneof since // individual entries of a map or fields of a oneof can already detect presence. // Code generated by protoc-gen-go. DO NOT EDIT. // source: google/protobuf/wrappers.proto package wrapperspb import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) // Wrapper message for `double`. // // The JSON representation for `DoubleValue` is JSON number. type DoubleValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The double value. Value float64 `protobuf:"fixed64,1,opt,name=value,proto3" json:"value,omitempty"` } // Double stores v in a new DoubleValue and returns a pointer to it. func Double(v float64) *DoubleValue { return &DoubleValue{Value: v} } func (x *DoubleValue) Reset() { *x = DoubleValue{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_wrappers_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DoubleValue) String() string { return protoimpl.X.MessageStringOf(x) } func (*DoubleValue) ProtoMessage() {} func (x *DoubleValue) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_wrappers_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DoubleValue.ProtoReflect.Descriptor instead. func (*DoubleValue) Descriptor() ([]byte, []int) { return file_google_protobuf_wrappers_proto_rawDescGZIP(), []int{0} } func (x *DoubleValue) GetValue() float64 { if x != nil { return x.Value } return 0 } // Wrapper message for `float`. // // The JSON representation for `FloatValue` is JSON number. type FloatValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The float value. Value float32 `protobuf:"fixed32,1,opt,name=value,proto3" json:"value,omitempty"` } // Float stores v in a new FloatValue and returns a pointer to it. func Float(v float32) *FloatValue { return &FloatValue{Value: v} } func (x *FloatValue) Reset() { *x = FloatValue{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_wrappers_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FloatValue) String() string { return protoimpl.X.MessageStringOf(x) } func (*FloatValue) ProtoMessage() {} func (x *FloatValue) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_wrappers_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FloatValue.ProtoReflect.Descriptor instead. func (*FloatValue) Descriptor() ([]byte, []int) { return file_google_protobuf_wrappers_proto_rawDescGZIP(), []int{1} } func (x *FloatValue) GetValue() float32 { if x != nil { return x.Value } return 0 } // Wrapper message for `int64`. // // The JSON representation for `Int64Value` is JSON string. type Int64Value struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The int64 value. Value int64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` } // Int64 stores v in a new Int64Value and returns a pointer to it. func Int64(v int64) *Int64Value { return &Int64Value{Value: v} } func (x *Int64Value) Reset() { *x = Int64Value{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_wrappers_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Int64Value) String() string { return protoimpl.X.MessageStringOf(x) } func (*Int64Value) ProtoMessage() {} func (x *Int64Value) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_wrappers_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Int64Value.ProtoReflect.Descriptor instead. func (*Int64Value) Descriptor() ([]byte, []int) { return file_google_protobuf_wrappers_proto_rawDescGZIP(), []int{2} } func (x *Int64Value) GetValue() int64 { if x != nil { return x.Value } return 0 } // Wrapper message for `uint64`. // // The JSON representation for `UInt64Value` is JSON string. type UInt64Value struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The uint64 value. Value uint64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` } // UInt64 stores v in a new UInt64Value and returns a pointer to it. func UInt64(v uint64) *UInt64Value { return &UInt64Value{Value: v} } func (x *UInt64Value) Reset() { *x = UInt64Value{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_wrappers_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UInt64Value) String() string { return protoimpl.X.MessageStringOf(x) } func (*UInt64Value) ProtoMessage() {} func (x *UInt64Value) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_wrappers_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UInt64Value.ProtoReflect.Descriptor instead. func (*UInt64Value) Descriptor() ([]byte, []int) { return file_google_protobuf_wrappers_proto_rawDescGZIP(), []int{3} } func (x *UInt64Value) GetValue() uint64 { if x != nil { return x.Value } return 0 } // Wrapper message for `int32`. // // The JSON representation for `Int32Value` is JSON number. type Int32Value struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The int32 value. Value int32 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` } // Int32 stores v in a new Int32Value and returns a pointer to it. func Int32(v int32) *Int32Value { return &Int32Value{Value: v} } func (x *Int32Value) Reset() { *x = Int32Value{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_wrappers_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Int32Value) String() string { return protoimpl.X.MessageStringOf(x) } func (*Int32Value) ProtoMessage() {} func (x *Int32Value) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_wrappers_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Int32Value.ProtoReflect.Descriptor instead. func (*Int32Value) Descriptor() ([]byte, []int) { return file_google_protobuf_wrappers_proto_rawDescGZIP(), []int{4} } func (x *Int32Value) GetValue() int32 { if x != nil { return x.Value } return 0 } // Wrapper message for `uint32`. // // The JSON representation for `UInt32Value` is JSON number. type UInt32Value struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The uint32 value. Value uint32 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` } // UInt32 stores v in a new UInt32Value and returns a pointer to it. func UInt32(v uint32) *UInt32Value { return &UInt32Value{Value: v} } func (x *UInt32Value) Reset() { *x = UInt32Value{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_wrappers_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UInt32Value) String() string { return protoimpl.X.MessageStringOf(x) } func (*UInt32Value) ProtoMessage() {} func (x *UInt32Value) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_wrappers_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UInt32Value.ProtoReflect.Descriptor instead. func (*UInt32Value) Descriptor() ([]byte, []int) { return file_google_protobuf_wrappers_proto_rawDescGZIP(), []int{5} } func (x *UInt32Value) GetValue() uint32 { if x != nil { return x.Value } return 0 } // Wrapper message for `bool`. // // The JSON representation for `BoolValue` is JSON `true` and `false`. type BoolValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The bool value. Value bool `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` } // Bool stores v in a new BoolValue and returns a pointer to it. func Bool(v bool) *BoolValue { return &BoolValue{Value: v} } func (x *BoolValue) Reset() { *x = BoolValue{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_wrappers_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BoolValue) String() string { return protoimpl.X.MessageStringOf(x) } func (*BoolValue) ProtoMessage() {} func (x *BoolValue) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_wrappers_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BoolValue.ProtoReflect.Descriptor instead. func (*BoolValue) Descriptor() ([]byte, []int) { return file_google_protobuf_wrappers_proto_rawDescGZIP(), []int{6} } func (x *BoolValue) GetValue() bool { if x != nil { return x.Value } return false } // Wrapper message for `string`. // // The JSON representation for `StringValue` is JSON string. type StringValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The string value. Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` } // String stores v in a new StringValue and returns a pointer to it. func String(v string) *StringValue { return &StringValue{Value: v} } func (x *StringValue) Reset() { *x = StringValue{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_wrappers_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StringValue) String() string { return protoimpl.X.MessageStringOf(x) } func (*StringValue) ProtoMessage() {} func (x *StringValue) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_wrappers_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StringValue.ProtoReflect.Descriptor instead. func (*StringValue) Descriptor() ([]byte, []int) { return file_google_protobuf_wrappers_proto_rawDescGZIP(), []int{7} } func (x *StringValue) GetValue() string { if x != nil { return x.Value } return "" } // Wrapper message for `bytes`. // // The JSON representation for `BytesValue` is JSON string. type BytesValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The bytes value. Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` } // Bytes stores v in a new BytesValue and returns a pointer to it. func Bytes(v []byte) *BytesValue { return &BytesValue{Value: v} } func (x *BytesValue) Reset() { *x = BytesValue{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_wrappers_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BytesValue) String() string { return protoimpl.X.MessageStringOf(x) } func (*BytesValue) ProtoMessage() {} func (x *BytesValue) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_wrappers_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BytesValue.ProtoReflect.Descriptor instead. func (*BytesValue) Descriptor() ([]byte, []int) { return file_google_protobuf_wrappers_proto_rawDescGZIP(), []int{8} } func (x *BytesValue) GetValue() []byte { if x != nil { return x.Value } return nil } var File_google_protobuf_wrappers_proto protoreflect.FileDescriptor var file_google_protobuf_wrappers_proto_rawDesc = []byte{ 0x0a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x22, 0x23, 0x0a, 0x0b, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x22, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x22, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x22, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x21, 0x0a, 0x09, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x22, 0x0a, 0x0a, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x83, 0x01, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x0d, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_google_protobuf_wrappers_proto_rawDescOnce sync.Once file_google_protobuf_wrappers_proto_rawDescData = file_google_protobuf_wrappers_proto_rawDesc ) func file_google_protobuf_wrappers_proto_rawDescGZIP() []byte { file_google_protobuf_wrappers_proto_rawDescOnce.Do(func() { file_google_protobuf_wrappers_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_wrappers_proto_rawDescData) }) return file_google_protobuf_wrappers_proto_rawDescData } var file_google_protobuf_wrappers_proto_msgTypes = make([]protoimpl.MessageInfo, 9) var file_google_protobuf_wrappers_proto_goTypes = []interface{}{ (*DoubleValue)(nil), // 0: google.protobuf.DoubleValue (*FloatValue)(nil), // 1: google.protobuf.FloatValue (*Int64Value)(nil), // 2: google.protobuf.Int64Value (*UInt64Value)(nil), // 3: google.protobuf.UInt64Value (*Int32Value)(nil), // 4: google.protobuf.Int32Value (*UInt32Value)(nil), // 5: google.protobuf.UInt32Value (*BoolValue)(nil), // 6: google.protobuf.BoolValue (*StringValue)(nil), // 7: google.protobuf.StringValue (*BytesValue)(nil), // 8: google.protobuf.BytesValue } var file_google_protobuf_wrappers_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_google_protobuf_wrappers_proto_init() } func file_google_protobuf_wrappers_proto_init() { if File_google_protobuf_wrappers_proto != nil { return } if !protoimpl.UnsafeEnabled { file_google_protobuf_wrappers_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DoubleValue); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_wrappers_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FloatValue); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_wrappers_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Int64Value); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_wrappers_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UInt64Value); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_wrappers_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Int32Value); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_wrappers_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UInt32Value); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_wrappers_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BoolValue); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_wrappers_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StringValue); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_wrappers_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BytesValue); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_protobuf_wrappers_proto_rawDesc, NumEnums: 0, NumMessages: 9, NumExtensions: 0, NumServices: 0, }, GoTypes: file_google_protobuf_wrappers_proto_goTypes, DependencyIndexes: file_google_protobuf_wrappers_proto_depIdxs, MessageInfos: file_google_protobuf_wrappers_proto_msgTypes, }.Build() File_google_protobuf_wrappers_proto = out.File file_google_protobuf_wrappers_proto_rawDesc = nil file_google_protobuf_wrappers_proto_goTypes = nil file_google_protobuf_wrappers_proto_depIdxs = nil } golang-google-protobuf-1.27.1/types/pluginpb/000077500000000000000000000000001411250152500211415ustar00rootroot00000000000000golang-google-protobuf-1.27.1/types/pluginpb/plugin.pb.go000066400000000000000000000660261411250152500234000ustar00rootroot00000000000000// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // https://developers.google.com/protocol-buffers/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Author: kenton@google.com (Kenton Varda) // // WARNING: The plugin interface is currently EXPERIMENTAL and is subject to // change. // // protoc (aka the Protocol Compiler) can be extended via plugins. A plugin is // just a program that reads a CodeGeneratorRequest from stdin and writes a // CodeGeneratorResponse to stdout. // // Plugins written using C++ can use google/protobuf/compiler/plugin.h instead // of dealing with the raw protocol defined here. // // A plugin executable needs only to be placed somewhere in the path. The // plugin should be named "protoc-gen-$NAME", and will then be used when the // flag "--${NAME}_out" is passed to protoc. // Code generated by protoc-gen-go. DO NOT EDIT. // source: google/protobuf/compiler/plugin.proto package pluginpb import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" descriptorpb "google.golang.org/protobuf/types/descriptorpb" reflect "reflect" sync "sync" ) // Sync with code_generator.h. type CodeGeneratorResponse_Feature int32 const ( CodeGeneratorResponse_FEATURE_NONE CodeGeneratorResponse_Feature = 0 CodeGeneratorResponse_FEATURE_PROTO3_OPTIONAL CodeGeneratorResponse_Feature = 1 ) // Enum value maps for CodeGeneratorResponse_Feature. var ( CodeGeneratorResponse_Feature_name = map[int32]string{ 0: "FEATURE_NONE", 1: "FEATURE_PROTO3_OPTIONAL", } CodeGeneratorResponse_Feature_value = map[string]int32{ "FEATURE_NONE": 0, "FEATURE_PROTO3_OPTIONAL": 1, } ) func (x CodeGeneratorResponse_Feature) Enum() *CodeGeneratorResponse_Feature { p := new(CodeGeneratorResponse_Feature) *p = x return p } func (x CodeGeneratorResponse_Feature) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (CodeGeneratorResponse_Feature) Descriptor() protoreflect.EnumDescriptor { return file_google_protobuf_compiler_plugin_proto_enumTypes[0].Descriptor() } func (CodeGeneratorResponse_Feature) Type() protoreflect.EnumType { return &file_google_protobuf_compiler_plugin_proto_enumTypes[0] } func (x CodeGeneratorResponse_Feature) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *CodeGeneratorResponse_Feature) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = CodeGeneratorResponse_Feature(num) return nil } // Deprecated: Use CodeGeneratorResponse_Feature.Descriptor instead. func (CodeGeneratorResponse_Feature) EnumDescriptor() ([]byte, []int) { return file_google_protobuf_compiler_plugin_proto_rawDescGZIP(), []int{2, 0} } // The version number of protocol compiler. type Version struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Major *int32 `protobuf:"varint,1,opt,name=major" json:"major,omitempty"` Minor *int32 `protobuf:"varint,2,opt,name=minor" json:"minor,omitempty"` Patch *int32 `protobuf:"varint,3,opt,name=patch" json:"patch,omitempty"` // A suffix for alpha, beta or rc release, e.g., "alpha-1", "rc2". It should // be empty for mainline stable releases. Suffix *string `protobuf:"bytes,4,opt,name=suffix" json:"suffix,omitempty"` } func (x *Version) Reset() { *x = Version{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_compiler_plugin_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Version) String() string { return protoimpl.X.MessageStringOf(x) } func (*Version) ProtoMessage() {} func (x *Version) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_compiler_plugin_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Version.ProtoReflect.Descriptor instead. func (*Version) Descriptor() ([]byte, []int) { return file_google_protobuf_compiler_plugin_proto_rawDescGZIP(), []int{0} } func (x *Version) GetMajor() int32 { if x != nil && x.Major != nil { return *x.Major } return 0 } func (x *Version) GetMinor() int32 { if x != nil && x.Minor != nil { return *x.Minor } return 0 } func (x *Version) GetPatch() int32 { if x != nil && x.Patch != nil { return *x.Patch } return 0 } func (x *Version) GetSuffix() string { if x != nil && x.Suffix != nil { return *x.Suffix } return "" } // An encoded CodeGeneratorRequest is written to the plugin's stdin. type CodeGeneratorRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The .proto files that were explicitly listed on the command-line. The // code generator should generate code only for these files. Each file's // descriptor will be included in proto_file, below. FileToGenerate []string `protobuf:"bytes,1,rep,name=file_to_generate,json=fileToGenerate" json:"file_to_generate,omitempty"` // The generator parameter passed on the command-line. Parameter *string `protobuf:"bytes,2,opt,name=parameter" json:"parameter,omitempty"` // FileDescriptorProtos for all files in files_to_generate and everything // they import. The files will appear in topological order, so each file // appears before any file that imports it. // // protoc guarantees that all proto_files will be written after // the fields above, even though this is not technically guaranteed by the // protobuf wire format. This theoretically could allow a plugin to stream // in the FileDescriptorProtos and handle them one by one rather than read // the entire set into memory at once. However, as of this writing, this // is not similarly optimized on protoc's end -- it will store all fields in // memory at once before sending them to the plugin. // // Type names of fields and extensions in the FileDescriptorProto are always // fully qualified. ProtoFile []*descriptorpb.FileDescriptorProto `protobuf:"bytes,15,rep,name=proto_file,json=protoFile" json:"proto_file,omitempty"` // The version number of protocol compiler. CompilerVersion *Version `protobuf:"bytes,3,opt,name=compiler_version,json=compilerVersion" json:"compiler_version,omitempty"` } func (x *CodeGeneratorRequest) Reset() { *x = CodeGeneratorRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_compiler_plugin_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CodeGeneratorRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CodeGeneratorRequest) ProtoMessage() {} func (x *CodeGeneratorRequest) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_compiler_plugin_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CodeGeneratorRequest.ProtoReflect.Descriptor instead. func (*CodeGeneratorRequest) Descriptor() ([]byte, []int) { return file_google_protobuf_compiler_plugin_proto_rawDescGZIP(), []int{1} } func (x *CodeGeneratorRequest) GetFileToGenerate() []string { if x != nil { return x.FileToGenerate } return nil } func (x *CodeGeneratorRequest) GetParameter() string { if x != nil && x.Parameter != nil { return *x.Parameter } return "" } func (x *CodeGeneratorRequest) GetProtoFile() []*descriptorpb.FileDescriptorProto { if x != nil { return x.ProtoFile } return nil } func (x *CodeGeneratorRequest) GetCompilerVersion() *Version { if x != nil { return x.CompilerVersion } return nil } // The plugin writes an encoded CodeGeneratorResponse to stdout. type CodeGeneratorResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Error message. If non-empty, code generation failed. The plugin process // should exit with status code zero even if it reports an error in this way. // // This should be used to indicate errors in .proto files which prevent the // code generator from generating correct code. Errors which indicate a // problem in protoc itself -- such as the input CodeGeneratorRequest being // unparseable -- should be reported by writing a message to stderr and // exiting with a non-zero status code. Error *string `protobuf:"bytes,1,opt,name=error" json:"error,omitempty"` // A bitmask of supported features that the code generator supports. // This is a bitwise "or" of values from the Feature enum. SupportedFeatures *uint64 `protobuf:"varint,2,opt,name=supported_features,json=supportedFeatures" json:"supported_features,omitempty"` File []*CodeGeneratorResponse_File `protobuf:"bytes,15,rep,name=file" json:"file,omitempty"` } func (x *CodeGeneratorResponse) Reset() { *x = CodeGeneratorResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_compiler_plugin_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CodeGeneratorResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CodeGeneratorResponse) ProtoMessage() {} func (x *CodeGeneratorResponse) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_compiler_plugin_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CodeGeneratorResponse.ProtoReflect.Descriptor instead. func (*CodeGeneratorResponse) Descriptor() ([]byte, []int) { return file_google_protobuf_compiler_plugin_proto_rawDescGZIP(), []int{2} } func (x *CodeGeneratorResponse) GetError() string { if x != nil && x.Error != nil { return *x.Error } return "" } func (x *CodeGeneratorResponse) GetSupportedFeatures() uint64 { if x != nil && x.SupportedFeatures != nil { return *x.SupportedFeatures } return 0 } func (x *CodeGeneratorResponse) GetFile() []*CodeGeneratorResponse_File { if x != nil { return x.File } return nil } // Represents a single generated file. type CodeGeneratorResponse_File struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The file name, relative to the output directory. The name must not // contain "." or ".." components and must be relative, not be absolute (so, // the file cannot lie outside the output directory). "/" must be used as // the path separator, not "\". // // If the name is omitted, the content will be appended to the previous // file. This allows the generator to break large files into small chunks, // and allows the generated text to be streamed back to protoc so that large // files need not reside completely in memory at one time. Note that as of // this writing protoc does not optimize for this -- it will read the entire // CodeGeneratorResponse before writing files to disk. Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` // If non-empty, indicates that the named file should already exist, and the // content here is to be inserted into that file at a defined insertion // point. This feature allows a code generator to extend the output // produced by another code generator. The original generator may provide // insertion points by placing special annotations in the file that look // like: // @@protoc_insertion_point(NAME) // The annotation can have arbitrary text before and after it on the line, // which allows it to be placed in a comment. NAME should be replaced with // an identifier naming the point -- this is what other generators will use // as the insertion_point. Code inserted at this point will be placed // immediately above the line containing the insertion point (thus multiple // insertions to the same point will come out in the order they were added). // The double-@ is intended to make it unlikely that the generated code // could contain things that look like insertion points by accident. // // For example, the C++ code generator places the following line in the // .pb.h files that it generates: // // @@protoc_insertion_point(namespace_scope) // This line appears within the scope of the file's package namespace, but // outside of any particular class. Another plugin can then specify the // insertion_point "namespace_scope" to generate additional classes or // other declarations that should be placed in this scope. // // Note that if the line containing the insertion point begins with // whitespace, the same whitespace will be added to every line of the // inserted text. This is useful for languages like Python, where // indentation matters. In these languages, the insertion point comment // should be indented the same amount as any inserted code will need to be // in order to work correctly in that context. // // The code generator that generates the initial file and the one which // inserts into it must both run as part of a single invocation of protoc. // Code generators are executed in the order in which they appear on the // command line. // // If |insertion_point| is present, |name| must also be present. InsertionPoint *string `protobuf:"bytes,2,opt,name=insertion_point,json=insertionPoint" json:"insertion_point,omitempty"` // The file contents. Content *string `protobuf:"bytes,15,opt,name=content" json:"content,omitempty"` // Information describing the file content being inserted. If an insertion // point is used, this information will be appropriately offset and inserted // into the code generation metadata for the generated files. GeneratedCodeInfo *descriptorpb.GeneratedCodeInfo `protobuf:"bytes,16,opt,name=generated_code_info,json=generatedCodeInfo" json:"generated_code_info,omitempty"` } func (x *CodeGeneratorResponse_File) Reset() { *x = CodeGeneratorResponse_File{} if protoimpl.UnsafeEnabled { mi := &file_google_protobuf_compiler_plugin_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CodeGeneratorResponse_File) String() string { return protoimpl.X.MessageStringOf(x) } func (*CodeGeneratorResponse_File) ProtoMessage() {} func (x *CodeGeneratorResponse_File) ProtoReflect() protoreflect.Message { mi := &file_google_protobuf_compiler_plugin_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CodeGeneratorResponse_File.ProtoReflect.Descriptor instead. func (*CodeGeneratorResponse_File) Descriptor() ([]byte, []int) { return file_google_protobuf_compiler_plugin_proto_rawDescGZIP(), []int{2, 0} } func (x *CodeGeneratorResponse_File) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } func (x *CodeGeneratorResponse_File) GetInsertionPoint() string { if x != nil && x.InsertionPoint != nil { return *x.InsertionPoint } return "" } func (x *CodeGeneratorResponse_File) GetContent() string { if x != nil && x.Content != nil { return *x.Content } return "" } func (x *CodeGeneratorResponse_File) GetGeneratedCodeInfo() *descriptorpb.GeneratedCodeInfo { if x != nil { return x.GeneratedCodeInfo } return nil } var File_google_protobuf_compiler_plugin_proto protoreflect.FileDescriptor var file_google_protobuf_compiler_plugin_proto_rawDesc = []byte{ 0x0a, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x63, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x22, 0xf1, 0x01, 0x0a, 0x14, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x6f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x43, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x4c, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x94, 0x03, 0x0a, 0x15, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x2d, 0x0a, 0x12, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0xb1, 0x01, 0x0a, 0x04, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x13, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x11, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x38, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x33, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x42, 0x57, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x42, 0x0c, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x5a, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x70, 0x62, } var ( file_google_protobuf_compiler_plugin_proto_rawDescOnce sync.Once file_google_protobuf_compiler_plugin_proto_rawDescData = file_google_protobuf_compiler_plugin_proto_rawDesc ) func file_google_protobuf_compiler_plugin_proto_rawDescGZIP() []byte { file_google_protobuf_compiler_plugin_proto_rawDescOnce.Do(func() { file_google_protobuf_compiler_plugin_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_compiler_plugin_proto_rawDescData) }) return file_google_protobuf_compiler_plugin_proto_rawDescData } var file_google_protobuf_compiler_plugin_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_google_protobuf_compiler_plugin_proto_msgTypes = make([]protoimpl.MessageInfo, 4) var file_google_protobuf_compiler_plugin_proto_goTypes = []interface{}{ (CodeGeneratorResponse_Feature)(0), // 0: google.protobuf.compiler.CodeGeneratorResponse.Feature (*Version)(nil), // 1: google.protobuf.compiler.Version (*CodeGeneratorRequest)(nil), // 2: google.protobuf.compiler.CodeGeneratorRequest (*CodeGeneratorResponse)(nil), // 3: google.protobuf.compiler.CodeGeneratorResponse (*CodeGeneratorResponse_File)(nil), // 4: google.protobuf.compiler.CodeGeneratorResponse.File (*descriptorpb.FileDescriptorProto)(nil), // 5: google.protobuf.FileDescriptorProto (*descriptorpb.GeneratedCodeInfo)(nil), // 6: google.protobuf.GeneratedCodeInfo } var file_google_protobuf_compiler_plugin_proto_depIdxs = []int32{ 5, // 0: google.protobuf.compiler.CodeGeneratorRequest.proto_file:type_name -> google.protobuf.FileDescriptorProto 1, // 1: google.protobuf.compiler.CodeGeneratorRequest.compiler_version:type_name -> google.protobuf.compiler.Version 4, // 2: google.protobuf.compiler.CodeGeneratorResponse.file:type_name -> google.protobuf.compiler.CodeGeneratorResponse.File 6, // 3: google.protobuf.compiler.CodeGeneratorResponse.File.generated_code_info:type_name -> google.protobuf.GeneratedCodeInfo 4, // [4:4] is the sub-list for method output_type 4, // [4:4] is the sub-list for method input_type 4, // [4:4] is the sub-list for extension type_name 4, // [4:4] is the sub-list for extension extendee 0, // [0:4] is the sub-list for field type_name } func init() { file_google_protobuf_compiler_plugin_proto_init() } func file_google_protobuf_compiler_plugin_proto_init() { if File_google_protobuf_compiler_plugin_proto != nil { return } if !protoimpl.UnsafeEnabled { file_google_protobuf_compiler_plugin_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Version); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_compiler_plugin_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CodeGeneratorRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_compiler_plugin_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CodeGeneratorResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_protobuf_compiler_plugin_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CodeGeneratorResponse_File); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_protobuf_compiler_plugin_proto_rawDesc, NumEnums: 1, NumMessages: 4, NumExtensions: 0, NumServices: 0, }, GoTypes: file_google_protobuf_compiler_plugin_proto_goTypes, DependencyIndexes: file_google_protobuf_compiler_plugin_proto_depIdxs, EnumInfos: file_google_protobuf_compiler_plugin_proto_enumTypes, MessageInfos: file_google_protobuf_compiler_plugin_proto_msgTypes, }.Build() File_google_protobuf_compiler_plugin_proto = out.File file_google_protobuf_compiler_plugin_proto_rawDesc = nil file_google_protobuf_compiler_plugin_proto_goTypes = nil file_google_protobuf_compiler_plugin_proto_depIdxs = nil }